From 4e112ae8b9978403b721621b5c281ea09f538a4b Mon Sep 17 00:00:00 2001 From: Cristian Cavalli Date: Thu, 6 Apr 2017 10:20:36 -0700 Subject: [PATCH 001/527] Stage errors for repo integration (#2017) --- .../error-reporting/.clang-format.yaml | 2 + handwritten/error-reporting/.gitignore | 9 + handwritten/error-reporting/.jshintignore | 4 + handwritten/error-reporting/.jshintrc | 27 + handwritten/error-reporting/README.md | 230 ++++++ handwritten/error-reporting/config.tar.enc | Bin 0 -> 9232 bytes handwritten/error-reporting/package.json | 53 ++ .../src/classes/custom-stack-trace.js | 117 +++ .../src/classes/error-message.js | 291 ++++++++ .../classes/request-information-container.js | 130 ++++ .../error-reporting/src/configuration.js | 450 ++++++++++++ .../src/error-extractors/error.js | 49 ++ .../src/error-extractors/object.js | 80 ++ .../src/error-handlers/error.js | 46 ++ .../src/error-handlers/number.js | 45 ++ .../src/error-handlers/object.js | 45 ++ .../src/error-handlers/string.js | 47 ++ .../src/error-handlers/unknown.js | 37 + .../error-reporting/src/error-router.js | 63 ++ .../src/google-apis/auth-client.js | 164 +++++ handwritten/error-reporting/src/index.js | 148 ++++ .../error-reporting/src/interfaces/express.js | 81 +++ .../error-reporting/src/interfaces/hapi.js | 127 ++++ .../error-reporting/src/interfaces/koa.js | 68 ++ .../error-reporting/src/interfaces/manual.js | 103 +++ .../src/interfaces/message-builder.js | 44 ++ .../error-reporting/src/interfaces/restify.js | 159 ++++ .../src/interfaces/uncaught.js | 67 ++ handwritten/error-reporting/src/logger.js | 64 ++ .../src/request-extractors/express.js | 77 ++ .../src/request-extractors/hapi.js | 103 +++ .../src/request-extractors/koa.js | 55 ++ .../src/request-extractors/manual.js | 85 +++ .../system-test/testAuthClient.js | 349 +++++++++ .../test/fixtures/configuration.js | 27 + .../test/fixtures/gcloud-credentials.json | 6 + .../test/fixtures/uncaughtExitBehaviour.js | 93 +++ .../test-servers/express_scaffold_server.js | 134 ++++ .../test/test-servers/hapi_scaffold_server.js | 55 ++ .../test/test-servers/koa_scaffold_server.js | 57 ++ .../test-servers/manual_scaffold_server.js | 25 + .../test-servers/restify_scaffold_server.js | 33 + .../test/unit/testConfiguration.js | 314 ++++++++ .../test/unit/testCustomStackTrace.js | 77 ++ .../test/unit/testErrorMessage.js | 682 ++++++++++++++++++ .../test/unit/testExpressInterface.js | 90 +++ .../testExpressRequestInformationExtractor.js | 157 ++++ .../test/unit/testExtractFromErrorClass.js | 107 +++ .../test/unit/testExtractFromObject.js | 108 +++ .../test/unit/testHandleErrorClassError.js | 56 ++ .../test/unit/testHandleNumberAsError.js | 44 ++ .../test/unit/testHandleObjectAsError.js | 44 ++ .../test/unit/testHandleStringAsError.js | 44 ++ .../test/unit/testHandleUnknownAsError.js | 47 ++ .../test/unit/testHapiInterface.js | 147 ++++ .../testHapiRequestInformationExtractor.js | 127 ++++ .../testKoaRequestInformationExtractor.js | 71 ++ .../error-reporting/test/unit/testLogger.js | 61 ++ .../test/unit/testManualHandler.js | 186 +++++ .../testManualRequestInformationExtractor.js | 114 +++ .../unit/testRequestInformationContainer.js | 96 +++ .../test/unit/testRestifyInterface.js | 136 ++++ .../test/unit/testServiceConfiguration.js | 233 ++++++ .../error-reporting/test/unit/testUncaught.js | 95 +++ handwritten/error-reporting/utils/fuzzer.js | 315 ++++++++ 65 files changed, 7200 insertions(+) create mode 100644 handwritten/error-reporting/.clang-format.yaml create mode 100644 handwritten/error-reporting/.gitignore create mode 100644 handwritten/error-reporting/.jshintignore create mode 100644 handwritten/error-reporting/.jshintrc create mode 100644 handwritten/error-reporting/README.md create mode 100644 handwritten/error-reporting/config.tar.enc create mode 100644 handwritten/error-reporting/package.json create mode 100644 handwritten/error-reporting/src/classes/custom-stack-trace.js create mode 100644 handwritten/error-reporting/src/classes/error-message.js create mode 100644 handwritten/error-reporting/src/classes/request-information-container.js create mode 100644 handwritten/error-reporting/src/configuration.js create mode 100644 handwritten/error-reporting/src/error-extractors/error.js create mode 100644 handwritten/error-reporting/src/error-extractors/object.js create mode 100644 handwritten/error-reporting/src/error-handlers/error.js create mode 100644 handwritten/error-reporting/src/error-handlers/number.js create mode 100644 handwritten/error-reporting/src/error-handlers/object.js create mode 100644 handwritten/error-reporting/src/error-handlers/string.js create mode 100644 handwritten/error-reporting/src/error-handlers/unknown.js create mode 100644 handwritten/error-reporting/src/error-router.js create mode 100644 handwritten/error-reporting/src/google-apis/auth-client.js create mode 100644 handwritten/error-reporting/src/index.js create mode 100644 handwritten/error-reporting/src/interfaces/express.js create mode 100644 handwritten/error-reporting/src/interfaces/hapi.js create mode 100644 handwritten/error-reporting/src/interfaces/koa.js create mode 100644 handwritten/error-reporting/src/interfaces/manual.js create mode 100644 handwritten/error-reporting/src/interfaces/message-builder.js create mode 100644 handwritten/error-reporting/src/interfaces/restify.js create mode 100644 handwritten/error-reporting/src/interfaces/uncaught.js create mode 100644 handwritten/error-reporting/src/logger.js create mode 100644 handwritten/error-reporting/src/request-extractors/express.js create mode 100644 handwritten/error-reporting/src/request-extractors/hapi.js create mode 100644 handwritten/error-reporting/src/request-extractors/koa.js create mode 100644 handwritten/error-reporting/src/request-extractors/manual.js create mode 100644 handwritten/error-reporting/system-test/testAuthClient.js create mode 100644 handwritten/error-reporting/test/fixtures/configuration.js create mode 100644 handwritten/error-reporting/test/fixtures/gcloud-credentials.json create mode 100644 handwritten/error-reporting/test/fixtures/uncaughtExitBehaviour.js create mode 100644 handwritten/error-reporting/test/test-servers/express_scaffold_server.js create mode 100644 handwritten/error-reporting/test/test-servers/hapi_scaffold_server.js create mode 100644 handwritten/error-reporting/test/test-servers/koa_scaffold_server.js create mode 100644 handwritten/error-reporting/test/test-servers/manual_scaffold_server.js create mode 100644 handwritten/error-reporting/test/test-servers/restify_scaffold_server.js create mode 100644 handwritten/error-reporting/test/unit/testConfiguration.js create mode 100644 handwritten/error-reporting/test/unit/testCustomStackTrace.js create mode 100644 handwritten/error-reporting/test/unit/testErrorMessage.js create mode 100644 handwritten/error-reporting/test/unit/testExpressInterface.js create mode 100644 handwritten/error-reporting/test/unit/testExpressRequestInformationExtractor.js create mode 100644 handwritten/error-reporting/test/unit/testExtractFromErrorClass.js create mode 100644 handwritten/error-reporting/test/unit/testExtractFromObject.js create mode 100644 handwritten/error-reporting/test/unit/testHandleErrorClassError.js create mode 100644 handwritten/error-reporting/test/unit/testHandleNumberAsError.js create mode 100644 handwritten/error-reporting/test/unit/testHandleObjectAsError.js create mode 100644 handwritten/error-reporting/test/unit/testHandleStringAsError.js create mode 100644 handwritten/error-reporting/test/unit/testHandleUnknownAsError.js create mode 100644 handwritten/error-reporting/test/unit/testHapiInterface.js create mode 100644 handwritten/error-reporting/test/unit/testHapiRequestInformationExtractor.js create mode 100644 handwritten/error-reporting/test/unit/testKoaRequestInformationExtractor.js create mode 100644 handwritten/error-reporting/test/unit/testLogger.js create mode 100644 handwritten/error-reporting/test/unit/testManualHandler.js create mode 100644 handwritten/error-reporting/test/unit/testManualRequestInformationExtractor.js create mode 100644 handwritten/error-reporting/test/unit/testRequestInformationContainer.js create mode 100644 handwritten/error-reporting/test/unit/testRestifyInterface.js create mode 100644 handwritten/error-reporting/test/unit/testServiceConfiguration.js create mode 100644 handwritten/error-reporting/test/unit/testUncaught.js create mode 100644 handwritten/error-reporting/utils/fuzzer.js diff --git a/handwritten/error-reporting/.clang-format.yaml b/handwritten/error-reporting/.clang-format.yaml new file mode 100644 index 00000000000..e1a95210184 --- /dev/null +++ b/handwritten/error-reporting/.clang-format.yaml @@ -0,0 +1,2 @@ +BasedOnStyle: Google +Language: Javascript diff --git a/handwritten/error-reporting/.gitignore b/handwritten/error-reporting/.gitignore new file mode 100644 index 00000000000..43e232a9716 --- /dev/null +++ b/handwritten/error-reporting/.gitignore @@ -0,0 +1,9 @@ +node_modules +coverage +npm-debug.log +.DS_Store +.eslintrc.js +docs +tests/configuration +.nyc_output +*.patch diff --git a/handwritten/error-reporting/.jshintignore b/handwritten/error-reporting/.jshintignore new file mode 100644 index 00000000000..db20f1d7121 --- /dev/null +++ b/handwritten/error-reporting/.jshintignore @@ -0,0 +1,4 @@ +node_modules +test/e2e/node_modules +test/fixtures +coverage diff --git a/handwritten/error-reporting/.jshintrc b/handwritten/error-reporting/.jshintrc new file mode 100644 index 00000000000..53d73b7e997 --- /dev/null +++ b/handwritten/error-reporting/.jshintrc @@ -0,0 +1,27 @@ +{ + "bitwise": true, + "curly": true, + "eqeqeq": true, + "esnext": true, + "freeze": true, + "immed": true, + "indent": 2, + "latedef": "nofunc", + "maxlen": 100, + "newcap": true, + "node": true, + "noarg": true, + "quotmark": "single", + "strict": true, + "trailing": true, + "undef": true, + "unused": "vars", + "globals": { + "describe": false, + "it": false, + "before": false, + "beforeEach": false, + "after": false, + "afterEach": false + } +} diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md new file mode 100644 index 00000000000..54f56ab2b7c --- /dev/null +++ b/handwritten/error-reporting/README.md @@ -0,0 +1,230 @@ +# Node.js module for Stackdriver Error Reporting + +[![NPM Version][npm-image]][npm-url] +[![Known Vulnerabilities][snyk-image]][snyk-url] + +> **This is not an official Google product.** This module is experimental and may not be ready for use. +> This module uses APIs that may be undocumented and are subject to change without notice. + +This module provides Stackdriver Error Reporting support for Node.js applications. +[Stackdriver Error Reporting](https://cloud.google.com/error-reporting/) is a feature of +Google Cloud Platform that allows in-depth monitoring and viewing of errors reported by +applications running in almost any environment. Here's an introductory video: + +[![Learn about Error Reporting in Stackdriver](https://img.youtube.com/vi/cVpWVD75Hs8/0.jpg)](https://www.youtube.com/watch?v=cVpWVD75Hs8) + +## Prerequisites + +1. Your application needs to use Node.js version 4.x or greater. +1. You need a [Google Cloud project](https://console.cloud.google.com). Your application can run anywhere, but errors are reported to a particular project. +1. [Enable the Stackdriver Error Reporting API](https://console.cloud.google.com/apis/api/clouderrorreporting.googleapis.com/overview) for your project. +1. The module will only send errors when the `NODE_ENV` environment variable is +set to `production` or the `ignoreEnvironmentCheck` property given in the +runtime configuration object is set to `true`. + +## Quick Start + +1. **Install the module:** + + In your project, on the command line: + + ``` + # Install through npm while saving to the local 'package.json' + npm install --save @google-cloud/error-reporting + ``` +1. **Instrument your application:** + +```js +// Require the library and initialize the error handler +var errors = require('@google-cloud/error-reporting')({ + serviceContext: {service: 'my-service'} // not needed on Google Cloud +}); + +// Report an error to the Stackdriver Error Reporting API +errors.report(new Error('Something broke!')); +``` + +1. **View reported errors:** + + Open Stackdriver Error Reporting at https://console.cloud.google.com/errors to view the reported errors. + +## Running on Google Cloud Platform + +### Google App Engine Flexible environment + +If you are using [Google App Engine flexible environment](https://cloud.google.com/appengine/docs/flexible/), you do not have to do any additional configuration. + +### Google Compute Engine + +Your VM instances need to be created with the `https://www.googleapis.com/auth/cloud-platform` scope if created via the [gcloud](https://cloud.google.com/sdk) CLI or the Google Cloud Platform API, or by enabling at least one of the Stackdriver APIs if created through the browser-based console. + +If you already have VMs that were created without API access and do not wish to recreate it, you can follow the instructions for using a service account under [running elsewhere](#running-elsewhere). + +### Google Container Engine + +Container Engine nodes need to also be created with the `https://www.googleapis.com/auth/cloud-platform` scope, which is configurable during cluster creation. Alternatively, you can follow the instructions for using a service account under [running elsewhere](#running-elsewhere). It's recommended that you store the service account credentials as [Kubernetes Secret](http://kubernetes.io/v1.1/docs/user-guide/secrets.html). + +## Running Elsewhere + +If your application is running outside of Google Cloud Platform, such as locally, on-premise, or on another cloud provider, you can still use Stackdriver Errors. + +1. You will need to specify your project ID when starting the errors agent. + + GCLOUD_PROJECT=particular-future-12345 node myapp.js + +1. You need to provide service account credentials to your application. + * The recommended way is via [Application Default Credentials][app-default-credentials]. + 1. [Create a new JSON service account key][service-account]. + 1. Copy the key somewhere your application can access it. Be sure not to expose the key publicly. + 1. Set the environment variable `GOOGLE_APPLICATION_CREDENTIALS` to the full path to the key. The trace agent will automatically look for this environment variable. + * If you are running your application on a development machine or test environment where you are using the [`gcloud` command line tools][gcloud-sdk], and are logged using `gcloud beta auth application-default login`, you already have sufficient credentials, and a service account key is not required. + * Alternatively, you may set the `keyFilename` or `credentials` configuration field to the full path or contents to the key file, respectively. Setting either of these fields will override either setting `GOOGLE_APPLICATION_CREDENTIALS` or logging in using `gcloud`. For example: + +```js + // Require and start the agent with configuration options + var errors = require('@google-cloud/error-reporting')({ + // The path to your key file: + keyFilename: '/path/to/keyfile.json', + + // Or the contents of the key file: + credentials: require('./path/to/keyfile.json') + }); +``` + +When running on Google Cloud Platform, we handle these for you automatically. + +## Configuration + +The following code snippet lists all available configuration options. All configuration options are optional. + +```js +var errors = require('@google-cloud/error-reporting')({ + projectId: 'my-project-id', + keyFilename: '/path/to/keyfile.json', + credentials: require('./path/to/keyfile.json'), + // if true library will attempt to report errors to the service regardless + // of the value of NODE_ENV + // defaults to false + ignoreEnvironmentCheck: false, + // determines if the library will attempt to report uncaught exceptions + // defaults to true + reportUncaughtExceptions: true, + // determines the logging level internal to the library; levels range 0-5 + // defaults to 2 (warnings) + logLevel: 2, + serviceContext: { + service: 'my-service', + version: 'my-service-version' + } +}); +``` + +## Examples + +### Reporting Manually + +```js +var errors = require('@google-cloud/error-reporting')(); +// Use the error message builder to custom set all message fields +var errorEvt = errors.event() + .setMessage('My error message') + .setUser('root@nexus'); +errors.report(errorEvt, () => console.log('done!')); +// Or just use a regular error +errors.report(new Error('My error message'), () => console.log('done!')); +// One can even just use a string +errors.report('My error message'); +``` + +### Using Express + +```js +var express = require('express'); +var app = express(); +// Will create an errors instance based off env variables +var errors = require('@google-cloud/error-reporting')(); + +app.get('/error', (req, res, next) => { + res.send('Something broke!'); + next(new Error('Custom error message')); +}); + +app.get('/exception', () => { + JSON.parse('{\"malformedJson\": true'); +}); + +app.use(errors.express); + +app.listen(3000); +``` + +### Using Hapi + +```js +var hapi = require('hapi'); +var errors = require('@google-cloud/error-reporting')(); + +var server = new hapi.Server(); +server.connection({ port: 3000 }); +server.start(); + +server.route({ + method: 'GET', + path: '/error', + handler: (request, reply) => { + reply('Something broke!'); + throw new Error('Custom error message'); + } +}); + +server.register({ register: errors.hapi }); +``` + +### Using Koa + +```js +var errors = require('@google-cloud/error-reporting')(); +var koa = require('koa'); +var app = koa(); + +app.use(errors.koa); + +app.use(function *(next) { + //This will set status and message + this.throw('Error Message', 500); +}); + +// response +app.use(function *(){ + this.body = 'Hello World'; +}); + +app.listen(3000); +``` + +### Using Restify + +```js +function respond(req, res, next) { + next(new Error('this is a restify error')); +} + +var restify = require('restify'); +var errors = require('@google-cloud/error-reporting')(); + +var server = restify.createServer(); + +server.use(errors.restify(server)); +server.get('/hello/:name', respond); +server.head('/hello/:name', respond); + +server.listen(8080); +``` + +[gcloud-sdk]: https://cloud.google.com/sdk/gcloud/ +[app-default-credentials]: https://developers.google.com/identity/protocols/application-default-credentials +[service-account]: https://console.developers.google.com/apis/credentials/serviceaccountkey +[npm-image]: https://badge.fury.io/js/%40google-cloud%2Ferror-reporting.svg +[npm-url]: https://npmjs.org/package/@google-cloud/error-reporting +[snyk-image]: https://snyk.io/test/npm/@google-cloud/error-reporting/badge.svg +[snyk-url]: https://snyk.io/test/npm/@google-cloud/error-reporting diff --git a/handwritten/error-reporting/config.tar.enc b/handwritten/error-reporting/config.tar.enc new file mode 100644 index 0000000000000000000000000000000000000000..ed17326de570eff6820ab5ed1b0d8009476e7fc4 GIT binary patch literal 9232 zcmV+rB=6hr0IYH{j!loT!9hObHJy7}mrQpR&908QnM$XKuhfFOpx#x9%n~Ik80EXj zHwG2S41-?H?=R;G)LD-c&Zv{DRQ-(SJynpf4e3R)d; z#uda4I5U8;PjwGFNmD{Zdtv&Wa+S#L7%Wml9+35zs*qz~5g8?O-Cq+U`=dTuXW z&ZPvf$2J;fPmh~Lw+HZ+sc2$VT27ZcMwF@WL@uf6(Up%J^_f%|P@K`_8upHpJ6ZR`PU;+LDPG>nDBGTObaWG5A z)ed9Afh7S8V`8m&|E7Bt2Ui<5QW|Gm6tt`C%#j1WF8kxyV7^9?$3b3s=f4D5^^^kgS+TUTqD*xOGiP6;@iqTQ??>#5^1CIgQvsEaKX;Qd!^`TtOWst3;rK|2eP_3fasAf|vm*@+O zT(HcaYWMm|xiOpa!a9W>ZG9sm@RjbQTTDV@Bj=PFthN9`03F_`KYV}g zPtpEL{Qz}jG&RT;3lzqRV0H>J{O!;_=bt-Xx#r--VwFJ0qopwR4F9o+OJR)Cw`20s z3g2RXc}?PG6k_evg{)V&YJO^o#Sn&62h5-dq`*tf0Dr_1K@08S0r?@R(x$4kPR^r0 z|B7W|(yW)_7e!qxpcSL!^Kw#(#8pSg$O11tX&MTG$OKo^#MmdMNpyc}Uu-zfKo{W^q{2Q_ zxA0a)?$H)Z{#Z&Up(4_Fu*dVBiO#gWv`cKq9>EHjSFJ67pl~thMcr>ZsOO_Z78Tzu zt90%Lt$$ z0coT%5c%o@e>ax7pj0`vP6?dd_nw*I?~hLp1F@X3c&l;4I?C9{6}>PWIgwAA=kzij zH}H$n!k7$mwL^d5Le`h6nYBfsfP&5dqwvxt?3_KUY2D(ckul*?p>u*|)+?{A+u zsh09PL@cRi>w7b~_dr~mh`T0?ZxJ`g7ZquHG@Bgff&ZOyie0*A9zok*@tFkxph(9B zyX&BqT;Z#+pKO^|NJ_YW zuJm^JU6KPQp5y zWj8t9B}0`tC_0>*_^GOu4(n_x#G&?L5h3%yYB24-dM-=Pc2{nPCl;&MR~V#4T}tt5+kI(%bBO(SZ9x`BeZ_ZqVj!7ZD*yGLo|pVk=p6q8|vn`G~cn!Hi zDOIRqDiF4H5Vc9Q#j-H4HZ8S0x)k2;S{ zW}?CARjg|ik<*>JB)i8j69#2%7SXUad?V`NSF4`X)8V{h{*E-%3Bqr){#Y3*Am}+N z=XazjGyWeML8V#b$W|YcJn9Q^A)0&}hipGzhaNYm<69zO-vuliTqbvPP!JMV(DIm!RhLlkD6`K zE1cr@5%MvjK|A@*$Br8qd^?A6WS**K&#yH(uo?$rOW@p=t|;`k&%~d!ZJv=hFHNd_ zwIo*({!Ip7&nJB>Q00;Lm?4|kZqk;qADKHe_Dvjq_NBo4H3eK_adjCmhf zD2>Vhm~8n3#lEcaS)JcXHdjaO1cw%?XzQo-%^@mo+9}hLQd{8|`2;`f0;S?L%y79) z@M2MknOmyTM*7#6T;_Gc{qx3Nh;QsaCRXQ!z91FY`X09>i}CmDhb7{JXQh%;E^ILJLbkMxI7PPz4SDh~K2Z8C!(e~*S#0=ocrkhy#U(E{V z%pX1|^SShgbIaIa(7tv>=A4?9ovmT%CFz7a6W=;`ef_KZ1k70myVP5+6a0O@^27^p zmLIzR0=06)f!Db5yf;8U8=~0Hm$CW&)XKitG|(Kg?d7Lr)nar|gecy=m|1fjO%sa% z`~{ZVo0-wpMyQN!pE+t3fhM4sK*h>3%0k+5XN-&bNFiCO)6On)QpCf{7;P5x+;bUk z&CsSYK6Bd4L~4B{Fd*%xrLR;=biiOcs>3*a4>KEDQj*T2hML29I-Xe&Cxt0%7TM#FKmWmUU zzEhJD@@{hdsZ!elV)Tc{aC>}bi zDk7Gxy8>y&)Lzv+e1cwJ%ayICj^EFy10)||2GprW>{O0UoRjY~l@jpEMShGE!@&)* z4>FKvGSQ)h-FzLXkLAr3oiGmYXi+%T zE;^YDXK6ihn@}6C@D@3{<5Jhnn2tBLbwBvmwSm2;m*lXX{ny3c3B#oQ%6a8f50k`8ATf<0I1H=FttC-0;m?AiOh)R(GJl zWnclQ;b%f6)dhOy%bBPba%f50I9S|X;!FtN7Sgaq_vBIQnp3C#Vn7hlkK4hUjYu-- zk!$OR-0gGv17!t*gjCb3%{@KjmXuC|Kf&!N@M;N>AIDh)ssk18T-3B;SUnhaTQ4S% z*6LjiJp3u_(!9FIh{)g;%msf0YaM5W4iYE3N8nwPw(3Dy>L{+$F$HP>K8s^{I#mMo z?77PesT~Nl z{!7n<&xQuj`MPPUvnlv5q<)po2$ZBdL9O6xuQdYu`HiEp=BZy(MJA%~Mx@v_FsF`|yjtba%ocex>|ivUvgxA2J6bf9N9(L! z8uv_krTcr|T{N=w`LqgJDMu4fNQ1AXRgprAPPvN0(t4*r5D=Lv0naa*bm-ewsV{#f ziZGPf>^5v+Go8^$k+|o?luX>7%-S01c9#P-shD+DSP$F4OW^4r8w*^~#7dqKL2l*H z@dY>Uzt)X~e%F>@$bi?QrudF#%%S$H`gg^2`jxju9~KKp)1^x9MTD?bzE$8e zAjd&BWlz5&N8$;b0A*T)fBOf7$>b80dP7-F!+ z?Vc&_U?0Pl$msmxYp#9cSwoHNugN>T{=f=qa0}bk>1*h(Gc#WQKr?4nGKjATp8vA( zo_^4&`b1iA9MLQ0L9#Qg5EwUNIU~W|X~vWE9U}nb&7n76(2hV>M8udR4cAj$g8XLP zRxQ%mJMX@-nbBZuLhpIrXmK&pXsq}#g_9pf^~cH zT{i$fuvrv_ZbGP2(q%s!8hgr&c3)NNMSUA^9DQH(GT z;)@^3Z51QSu6fUFThmSkeMvd)G$M=F|h{76@N9XE=oK5GU)4w7e}j`v_>-(7iVZix?;ro~0X0F7V=tcVMnu)35b*T2MhK&j9%&yj zPOpG=9jsj{H*JyN z>tGC^k#pW(jxfZZBh+_1R2fKBh_`5(dsDjanrH_1{*&wpTavV_Z)2@_=5X|iSX%|$ z-;CQ#AQ^_4lAPEodp-DyWzhK;g1ON|LlJ%k$;KW#^HgwX9krtmEv|A}X~{zuwE>&3 z7Q?FlfqIYEuE&C_lJ9Jv!>46$A1VOeke_9@8fPNGT9wEW~Pg^#Yq6Vp;E z+j;32a&ZSUE$dkzM}&RWHON|IhA?ZSOANEqpeZxy-g`7Sg}dFw<^iCwxT;k@sJ3on zDt1Y~0@G0g2g>sr9(fA&Ob>IKGlz!v1A3qX|84Q6AAz1iE&%#Ep#mB7w^9z}`66=@ z(oE=rEUcckIcsV1HW2_@+dyJ&QtKhhq#Mq0QMe+D?j5->G5WM6r84B?I0%>k&~luR zKx!O3B&$bH(M6ETpYDqh;rUt+<-2o>{fzU2UKZ`*V*r`h|Vr=%0=gvvuDGDrjD~r=%t@(s#LsMn5{5Ci9VOX)M2oalQ2NsLd zA!)r=o#Xrp&RX{)s6vIlqHZdAa-26h>p+l0J3k&%KCWxNuB#7Q-t7wX_F5>G92IuHvNQ9P5Jn^m?$5n$i)*xA9=CCE}+g(i3l) zrqmAC*KdRbXvGJYL^M#b32_MM)u|(UO}ggM1JFgl)uwg;A?o){>H=u8qB9A9S#|B7 z4OeVW()6^WLQ{pHYtTzcOU!hPL?}N@uF+WsBO`roO@&>nMWX(p#4!*d+CYzkiq+mK;HdWMscR=_#H#Kj8~6ks zF{3F;Ax&!6{E#=yBN$x;0&QtAhwkGSm+NWz%sI$?`X=tu`2k}gafXBomm^}a(h(Ek zFrIeRZKPTkn=-{NqhZP;#<2K7Baa`xymlaRdX`K&OT3(a`hKdo$SJ8J3%xlqK~jRG z%+x6%K;jC`&1l~KFIp85Aohe8GuAHbVS?jlOK{tW2<0`q{&`yM`*LOmVH6Q%U zBd@q7DVcr{o}ihy9V91a$q(P_D4_Qc=M#ul$;bDk+=rI097eHA52xZBA#gI`LpRlf zxh@RnWT@H#wrjPecq@u`pxRZqUE6W|kKW)CZ%X)-kwoE^iG{3tnG$OZ7z#n;!)F$& zUWUuM3$OPBmqR+UW~pBNMB!$J%24um-0xSb^AuUUg~wwUMQ@Wwnb7u71YC$w`mc%R z3qT}Gb2Ft8HpLXfzD|?j89hCfrrT100|jDqQS_XQJ!&Ra|ce zT@XHVA}ZjJ9_;n23L>>?+&VCRA&iv1tcZBXCbaPN<}8LiJku;3eHUa+X>Zm_-|flc znV#i!)SLY?HZi=*gH19hMaY@jdlA4E!+}aHyvZScOZ+-w8TAh|LRs`O~B9{4f>pJSX2AF46w(LFg+uJ9~pa_~Cyg~&MTqy`${=ZbEIYD~A#8~T6 zRT@f5YfTz>yW*0?aSOoVY3dUP@GPBbSqsib{p;m}y)3ub9Vw&CbUWz70awi=B@UPo z3J69F6WLg2rQb0%_x1%xGhW^{0lRI!GcUc(lQxB?OWc$yfo!1Zeri`4En5 zp-o6BK|e}Q#+il4{xnK+XxC&{z%deL$Iu=M@b|Z+WC*a2jpEfYkGz3f;p{k{QmcGQ zzxaW03X1v3_oC`D96K=0v6npg=2_wCCDg=^UjN34GM7g~(ISReKNKL4&cMX~j=}Ti z8Pca2Q=fXCju|*&OMOa1T~;ob3HSP=J2}nMLP$a~chE#Nsq6qkg5NjY5e*qT5H?6O zIpj{Rn6pe53G#K3YoGKa?D3z8=(w{piieeFR!&5p+Kh8C;%WhoqvSdO@v%wE3~ebT zPNWc#;cy8Ktg~mpos*$vhw4mWAK@ZPATeI?v;5~Ya4lDZw)SjLZA!Q?rWb)@*P38L zVm4%AgDn_vMWl#rwnzB>o{fXE$`pHhM*81}lCI>6STSoBy{h)jZhVowyF8&5lO|!| z65xjN+caF_==`c~^7GVPt3S%#JdJ?^tL>Q9D1kjeHK=4{=tozHjJyKP{}SkT(wCO? z3_lE1Bi6^H(37f?`*x96<)=S}ZvhDL&j2>*(o!W^5V(f?2I(tA+-U4{uOeaBNHBnP z>lLv>%4(lp8?QH{RE#|-jw@!EC$cN}&Jr<^$F26P{$neq<@Tn8RbALGh*{w3Y4tTW z%6`6>ZOc}RqV2L}k^LAf9dyW8LT87C!8ye9U@xX}Qm{Nr0!YGljx;!5^x~`PuD9w- z(&yNH9Ckd;^QX!OA~?8ZE40%<%4QvA?N)L-VkrWYO^V>q3Sm7Vz6Pbd$0l#p56 z>%6V|Qw#sLoJy+2&iT9I2k8)^0Up+2#xAhBpHjB{uAs&qhW)Xy*hyz^q>dF^w}VWX zwCOns5g0JV4sB9xD$k0q$nYqBbloFQPxaAqbxUrpK)rD6-|FcT4S{n9 zoi&XWymj8wFsdp0>U8eDxNS+xH*blOy(9X14h5IBHTO{0lYy_%^;4HKQq_bE{rzHC z`UMh$CP%ZkKV~Hx=YS#g#O*jjX00($dMwzS`6k{yTTX*y%0@CxDS((#Vp6dsh-Ekc zf(HvaR0#&s=f{vIKjuNg?}jJ$!_>cE{hPPwb}aj24PJ=u!`Nj_U#c)$*c4Et+BA;< zl9L;?Lt0J}9!1>LqG$@-fAH}az|>X2EAdLR%lP7VC=s6<75RTr0Fsi8eVdZ-rw5QE zd;iu{SOs(O(q2dG$+AIce$PiQielywwB)~ItaPKJe37v7ed-~ZZuGy6_>B*X5AUkJ zy?#mze6K;M3S@C|*G!;p;dXkcdQwk1(Fi+hukYu-&tuvkBF_M~nBX9df5`Z+~&VIV48&DPLaMEDfTB4qh+3kqvM~KaS6RA14Ka!4~G21+9T58J7y}5v`OK zE1uu6X%WY<9Ze&C(nS-5OIl(}zO*lIpK_;zt&|&hXRyyJ1|dsDuFBX7IGC5d<^m$p zlV_k2*YtBJ0idX56$Pkp_LoOlJ_C!w+xjOf{V-W!yv%Lflfr@j$BmTFidpw&>+qU1MhmboLWfnS!q;6ZX+7#?ukhP&6bOpd<1E-uBmU;Kx|(cz_%)*RYu z2}qO~97QB3;_&wQwvWpji&fg1-glr@5eLdhLh>P*9rwi!pRI9#nrFgEM$NM1hYe%7 zMe0pm8Oy>EF@gilmAJvy+)1s%^C+n2<-_uV;o^)ZYgR1icF1H_)+61b*O;g$bQgv< zZSiRc*4$xPf3}-q)fDj%juUzGH3L$gR7?kbDVWLrq2Krf*>uxyuflfC!)oYJ-c~0= zwB6)XXzn%0C{Ve}96w!;U2?jQwBwU@F!@ybq*Ecj+@+abn+eW%7a>zkg@b|Y`S-(f zg&g1mkD{(l8B*;DYFJ=+li8a6asr1U*b(XX&C9 zO#}EvB6%o2Y43lqFWh}VNF61*hIt*2D$b_9$H4K^-hI{+c|OFL+u`v7ixqu&r{Fyr z71#?;VEZ7^`SL<+k3R1y`Cn^r@L7_xy^WxR?udu?|7Y|-O^v}MuBKknHt1mX1H%yF=R}l6(}MV45H@78`W4mUUA;Nx6|<% zl1GFY#X@Sr$NQ}1)!okBAH-XiDt@PaI&fal^^d_{Ie8^$b{4Yo5b_(|9on;{6l8D} zOEkY%L0U_7w|lxnFV%A%J0PdK2HPe`RqW=5=Q1m1{i0Upv&gVasF*fZBz;3S~5E#^E`Z**eR1c&hv5yL10p63^nXQcy+kOG*6Mmf^gus-#fl z7K~BlM#<3<=W-VI0Eo_!qJSiICC7`vdV;pnv#$QESuPM#%a*3^C0lrj(Nm!seU&}V zhcCPAt`@v9wc&iMrbSlMS9%e8hQJ;t~zS@lA1`mgTI zZeN0CddHTcNFOT|pMd4vLww+uyu|uvkB?9FLeHcgQLv^#ZsOd^W%V?zDAF z#;q&=4.0" + }, + "files": [ + "src", + "utils", + "index.js" + ] +} diff --git a/handwritten/error-reporting/src/classes/custom-stack-trace.js b/handwritten/error-reporting/src/classes/custom-stack-trace.js new file mode 100644 index 00000000000..7e9d3ea8eba --- /dev/null +++ b/handwritten/error-reporting/src/classes/custom-stack-trace.js @@ -0,0 +1,117 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; +var is = require('is'); +var isString = is.string; +var isNumber = is.number; +var isFunction = is.fn; + +/** + * A function which is used as a default substitute to handle cases where an + * Error's call site array was not properly generated or its length was not + * greater than 0. This function aims to produce a basic notification that + * CallSite extraction failed. + * @function stubbedNoOp + * @returns {String} - A JSON object serving as a notification with one + * property: error whose value is a string describing that a stack trace could + * not be captured. + */ +function stubbedNoOp() { + + return JSON.stringify({error: 'Unable to capture stack trace information'}); +} + +/** + * The constuctor for CustomStackTrace takes no arugments and is solely meant + * to instantiate properties on the instance. Each property should be externally + * set using the corresponding set function. + * @class CustomStackTrace + * @classdesc CustomStackTrace is a class which is meant to store and control- + * for top-frame values on a stack trace dump. This class can be stringified + * for representation in JSON. + * @property {String} filePath - The file path of CallSite object + * @property {Number} lineNumber - The line number of the CallSite object + * @property {String} functionName - The function name of the CallSite object + * @property {Function} stringifyStucturedCallList - A function which is meant + * to produce the JSON representation of the full stack trace. + */ +function CustomStackTrace() { + + this.filePath = ''; + this.lineNumber = 0; + this.functionName = ''; + this.stringifyStucturedCallList = stubbedNoOp; +} + +/** + * Sets the filePath property on the instance + * @function setFilePath + * @chainable + * @param {String} filePath - the file path of the CallSite object + * @returns {this} - returns the instance for chaining + */ +CustomStackTrace.prototype.setFilePath = function(filePath) { + + this.filePath = isString(filePath) ? filePath : ''; + + return this; +}; + +/** + * Sets the lineNumber property on the instance + * @function setLineNumber + * @chainable + * @param {Number} lineNumber - the line number of the CallSite object + * @returns {this} - returns the instance for chaining + */ +CustomStackTrace.prototype.setLineNumber = function(lineNumber) { + + this.lineNumber = isNumber(lineNumber) ? lineNumber : 0; + + return this; +}; + +/** + * Sets the functionName property on the instance + * @function setFunctionName + * @chainable + * @param {String} functionName - the function name of the CallSite object + * @returns {this} - returns the instance for chaining + */ +CustomStackTrace.prototype.setFunctionName = function(functionName) { + + this.functionName = isString(functionName) ? functionName : ''; + + return this; +}; + +/** + * Sets the stringifyStucturedCallList on the instance + * @function setStringifyStructuredCallList + * @chainable + * @param {Function} op - the function to produce the JSON representation of + * the full stack trace + * @returns {this} - returns the instance for chaining + */ +CustomStackTrace.prototype.setStringifyStructuredCallList = function(op) { + + this.stringifyStucturedCallList = isFunction(op) ? op : stubbedNoOp; + + return this; +}; + +module.exports = CustomStackTrace; diff --git a/handwritten/error-reporting/src/classes/error-message.js b/handwritten/error-reporting/src/classes/error-message.js new file mode 100644 index 00000000000..9683c87f08d --- /dev/null +++ b/handwritten/error-reporting/src/classes/error-message.js @@ -0,0 +1,291 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; +var is = require('is'); +var isString = is.string; +var isNumber = is.number; +var isObject = is.object; + +/** + * The constructor for ErrorMessage takes no arguments and is solely meant to + * to instantiate properties on the instance. Each property should be externally + * set using the corresponding set function with the exception of eventTime + * which can be set externally but does not need to be since it is inited to + * an ISO-8601 compliant time string. + * @type {Object} + * @class ErrorMessage + * @classdesc ErrorMessage is a class which is meant to store and control-for + * Stackdriver Error API submittable values. Meant to be JSON string-ifiable + * representation of the final values which will be submitted to the Error API + * this class enforces type-checking on every setter function and will write + * default type-friendly values to instance properties if given values which + * are type-incompatible to expectations. These type-friendly default + * substitutions will occur silently and no errors will be thrown on attempted + * invalid input under the premise that during misassignment some error + * information sent to the Error API is better than no error information + * due to the Error library failing under invalid input. + * @property {String} eventTime - an ISO-8601 compliant string representing when + * the error was created + * @property {Object} serviceContext - The service information for the error + * @property {String} serviceContext.service - The service that the error was + * was produced on + * @property {String|Undefined} serviceContext.version - The service version + * that the error was produced on + * @property {String} message - The error message + * @property {Object} context - the request, user and report context + * @property {Object} context.httpRequest - the request context + * @property {String} context.httpRequest.method - the request method (e.g. GET) + * @property {String} context.httpRequest.url - the request url or path + * @property {String} context.httpRequest.userAgent - the requesting user-agent + * @property {String} context.httpRequest.referrer - the request referrer + * @property {Number} context.httpRequest.responseStatusCode - the request + * status-code + * @property {String} context.httpRequest.remoteIp - the requesting remote ip + * @property {String} context.user - the vm instances user + * @property {Object} context.reportLocation - the report context + * @property {String} context.reportLocation.filePath - the file path of the + * report site + * @property {Number} context.reportLocation.lineNumber - the line number of the + * report site + * @property {String} context.reportLocation.functionName - the function name of + * the report site + */ +function ErrorMessage() { + + this.eventTime = (new Date()).toISOString(); + this.serviceContext = {service: 'node', version: undefined}; + this.message = ''; + this.context = { + httpRequest: { + method: '', + url: '', + userAgent: '', + referrer: '', + responseStatusCode: 0, + remoteIp: '' + }, + user: '', + reportLocation: {filePath: '', lineNumber: 0, functionName: ''} + }; +} + +/** + * Sets the eventTime property on the instance to an ISO-8601 compliant string + * representing the current time at invocation. + * @function setEventTimeToNow + * @chainable + * @returns {this} - returns the instance for chaining + */ +ErrorMessage.prototype.setEventTimeToNow = function() { + + this.eventTime = (new Date()).toISOString(); + + return this; +}; + +/** + * Sets the serviceContext property on the instance and its two constituent + * properties: service and version. + * @function setServiceContext + * @chainable + * @param {String} service - the service the error was reported on + * @param {String|Undefined} version - the version the service was on when the + * error was reported + * @returns {this} - returns the instance for chaining + */ +ErrorMessage.prototype.setServiceContext = function(service, version) { + + this.serviceContext.service = isString(service) ? service : 'node'; + this.serviceContext.version = isString(version) ? version : undefined; + + return this; +}; + +/** + * Sets the message property on the instance. + * @chainable + * @param {String} message - the error message + * @returns {this} - returns the instance for chaining + */ +ErrorMessage.prototype.setMessage = function(message) { + + this.message = isString(message) ? message : ''; + + return this; +}; + +/** + * Sets the context.httpRequest.method property on the instance. + * @chainable + * @param {String} method - the HTTP method on the request which caused the + * errors instantiation + * @returns {this} - returns the instance for chaining + */ +ErrorMessage.prototype.setHttpMethod = function(method) { + + this.context.httpRequest.method = isString(method) ? method : ''; + + return this; +}; + +/** + * Sets the context.httpRequest.url property on the instance. + * @chainable + * @param {String} url - the requests target url + * @returns {this} - returns the instance for chaining + */ +ErrorMessage.prototype.setUrl = function(url) { + + this.context.httpRequest.url = isString(url) ? url : ''; + + return this; +}; + +/** + * Sets the context.httpRequest.userAgent property on the instance. + * @chainable + * @param {String} userAgent - the requests user-agent + * @returns {this} - returns the instance for chaining + */ +ErrorMessage.prototype.setUserAgent = function(userAgent) { + + this.context.httpRequest.userAgent = isString(userAgent) ? userAgent : ''; + + return this; +}; + +/** + * Sets the context.httpRequest.referrer property on the instance. + * @chainable + * @param {String} referrer - the requests referrer + * @returns {this} - returns the instance for chaining + */ +ErrorMessage.prototype.setReferrer = function(referrer) { + + this.context.httpRequest.referrer = isString(referrer) ? referrer : ''; + + return this; +}; + +/** + * Sets the context.httpRequest.responseStatusCode property on the instance. + * @chainable + * @param {Number} responseStatusCode - the response status code + * @returns {this} - returns the instance for chaining + */ +ErrorMessage.prototype.setResponseStatusCode = function(responseStatusCode) { + + this.context.httpRequest.responseStatusCode = + isNumber(responseStatusCode) ? responseStatusCode : 0; + + return this; +}; + +/** + * Sets the context.httpRequest.remoteIp property on the instance + * @chainable + * @param {String} remoteIp - the requesters remote IP + * @returns {this} - returns the instance for chaining + */ +ErrorMessage.prototype.setRemoteIp = function(remoteIp) { + + this.context.httpRequest.remoteIp = isString(remoteIp) ? remoteIp : ''; + + return this; +}; + +/** + * Sets the context.user property on the instance + * @chainable + * @param {String} user - the vm instances user + * @returns {this} - returns the instance for chaining + */ +ErrorMessage.prototype.setUser = function(user) { + + this.context.user = isString(user) ? user : ''; + + return this; +}; + +/** + * Sets the context.reportLocation.filePath property on the instance + * @chainable + * @param {String} filePath - the vm instances filePath + * @returns {this} - returns the instance for chaining + */ +ErrorMessage.prototype.setFilePath = function(filePath) { + + this.context.reportLocation.filePath = isString(filePath) ? filePath : ''; + + return this; +}; + +/** + * Sets the context.reportLocation.lineNumber property on the instance + * @chainable + * @param {Number} lineNumber - the line number of the report context + * @returns {this} - returns the instance for chaining + */ +ErrorMessage.prototype.setLineNumber = function(lineNumber) { + + this.context.reportLocation.lineNumber = + isNumber(lineNumber) ? lineNumber : 0; + + return this; +}; + +/** + * Sets the context.reportLocation.functionName property on the instance + * @chainable + * @param {String} functionName - the function name of the report context + * @returns {this} - returns the instance for chaining + */ +ErrorMessage.prototype.setFunctionName = function(functionName) { + + this.context.reportLocation.functionName = + isString(functionName) ? functionName : ''; + + return this; +}; + +/** + * Consumes the standard object created by the requestInformationExtractors + * and assigns the properties of the object onto the instance. + * @chainable + * @param {Object} requestInformation - the standardized object created by the + * information extractors + * @returns {this} - returns the instance for chaining + */ +ErrorMessage.prototype.consumeRequestInformation = function( + requestInformation) { + + if (!isObject(requestInformation)) { + + return this; + } + + this.setHttpMethod(requestInformation.method) + .setUrl(requestInformation.url) + .setUserAgent(requestInformation.userAgent) + .setReferrer(requestInformation.referrer) + .setResponseStatusCode(requestInformation.statusCode) + .setRemoteIp(requestInformation.remoteAddress); + + return this; +}; + +module.exports = ErrorMessage; diff --git a/handwritten/error-reporting/src/classes/request-information-container.js b/handwritten/error-reporting/src/classes/request-information-container.js new file mode 100644 index 00000000000..70c76b846d9 --- /dev/null +++ b/handwritten/error-reporting/src/classes/request-information-container.js @@ -0,0 +1,130 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; +var is = require('is'); +var isString = is.string; +var isNumber = is.number; + +/** + * The constructor for RequestInformationContainer does not take any arugments + * and is solely meant to allocate several properties on the instance. The + * constructor will init properties which closely relate to the ErrorMessage + * context.httpRequest object properties. The properties on the instance should + * be set through there corresponding setters as these will enforce type + * validation around input. + * @class RequestInformationContainer + * @classdesc RequestInformationContainer is a class which is meant to + * standardize and contain values corresponding to request information around + * an error-inducing request. This class is meant to be a temporary container + * for request information and essentially a standardized interface consumed by + * the ErrorMessage class itself. + * @property {String} url - The route/url that the request addressed + * @property {String} method - The method that the request used + * @property {String} referrer - The referrer of the request + * @property {String} userAgent - The user-agent of the requester + * @property {String} remoteAddress - The IP address of the requester + * @property {Number} statusCode - The response status code + */ +function RequestInformationContainer() { + + this.url = ''; + this.method = ''; + this.referrer = ''; + this.userAgent = ''; + this.remoteAddress = ''; + this.statusCode = 0; +} + +/** + * Sets the url property on the instance. + * @chainable + * @param {String} url - the url of the request + * @returns {this} - returns the instance for chaining + */ +RequestInformationContainer.prototype.setUrl = function(url) { + + this.url = isString(url) ? url : ''; + + return this; +}; + +/** + * Sets the method property on the instance. + * @chainable + * @param {String} method - the method of the request + * @returns {this} - returns the instance for chaining + */ +RequestInformationContainer.prototype.setMethod = function(method) { + + this.method = isString(method) ? method : ''; + + return this; +}; + +/** + * Sets the referrer property on the instance. + * @chainable + * @param {String} referrer - the referrer of the request + * @returns {this} - returns the instance for chaining + */ +RequestInformationContainer.prototype.setReferrer = function(referrer) { + + this.referrer = isString(referrer) ? referrer : ''; + + return this; +}; + +/** + * Sets the userAgent property on the instance. + * @chainable + * @param {String} userAgent - the user agent committing the request + * @returns {this} - returns the instance for chaining + */ +RequestInformationContainer.prototype.setUserAgent = function(userAgent) { + + this.userAgent = isString(userAgent) ? userAgent : ''; + + return this; +}; + +/** + * Sets the remoteAddress property on the instance. + * @chainable + * @param {String} remoteIp - the remote IP of the requester + * @returns {this} - returns the instance for chaining + */ +RequestInformationContainer.prototype.setRemoteAddress = function(remoteIp) { + + this.remoteAddress = isString(remoteIp) ? remoteIp : ''; + + return this; +}; + +/** + * Sets the statusCode property on the instance. + * @chainable + * @param {Number} statusCode - the status code of the response to the request + * @returns {this} - returns the instance for chaining + */ +RequestInformationContainer.prototype.setStatusCode = function(statusCode) { + + this.statusCode = isNumber(statusCode) ? statusCode : 0; + + return this; +}; + +module.exports = RequestInformationContainer; diff --git a/handwritten/error-reporting/src/configuration.js b/handwritten/error-reporting/src/configuration.js new file mode 100644 index 00000000000..36add709104 --- /dev/null +++ b/handwritten/error-reporting/src/configuration.js @@ -0,0 +1,450 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; +var env = process.env; +var has = require('lodash.has'); +var is = require('is'); +var isObject = is.object; +var isBoolean = is.boolean; +var isString = is.string; +var isNumber = is.number; +var isEmpty = is.empty; +var isNull = is.null; +var version = require('../package.json').version; + +/** + * The Configuration constructor function initializes several internal + * properties on the Configuration instance and accepts a runtime-given + * configuration object which may be used by the Configuration instance + * depending on the initialization transaction that occurs with the meta-data + * service. + * @class Configuration + * @classdesc The Configuration class represents the runtime configuration of + * the Stackdriver error handling library. This Configuration class accepts the + * configuration options potentially given through the application interface + * but it also preferences values received from the metadata service over + * values given through the application interface. Becuase the Configuration + * class must handle async network I/O it exposes some methods as async + * functions which may cache their interactions results to speed access to + * properties. + * @param {ConfigurationOptions} givenConfig - The config given by the + * hosting application at runtime. Configuration values will only be observed + * if they are given as a plain JS object; all other values will be ignored. + * @param {Object} logger - The logger instance created when the library API has + * been initialized. + */ +var Configuration = function(givenConfig, logger) { + /** + * The _logger property caches the logger instance created at the top-level + * for configuration logging purposes. + * @memberof Configuration + * @private + * @type {Object} + * @defaultvalue Object + */ + this._logger = logger; + /** + * The _reportUncaughtExceptions property is meant to contain the optional + * runtime configuration property reportUncaughtExceptions. This property will + * default to true if not given false through the runtime configuration + * meaning that the default behavior is to catch uncaught exceptions, report + * them to the Stackdriver Errors API and then exit. If given false uncaught + * exceptions will not be listened for and not be caught or reported. + * @memberof Configuration + * @private + * @type {Boolean} + * @defaultvalue true + */ + this._reportUncaughtExceptions = true; + /** + * The _shouldReportErrorsToAPI property is meant to denote whether or not + * the Stackdriver error reporting library will actually try to report Errors + * to the Stackdriver Error API. The value of this property is derived from + * the `NODE_ENV` environmental variable or the value of ignoreEnvironmentChec + * property if present in the runtime configuration. If either the `NODE_ENV` + * variable is set to 'production' or the ignoreEnvironmentCheck propery on + * the runtime configuration is set to true then the error reporting library + * attempt to send errors to the Error API. Otherwise the value will remain + * false and errors will not be reported to the API. + * @memberof Configuration + * @private + * @type {Boolean} + * @defaultvalue false + */ + this._shouldReportErrorsToAPI = false; + /** + * The _projectId property is meant to contain the string project id that the + * hosting application is running under. The project id is a unique string + * identifier for the project. If the Configuration instance is not able to + * retrieve a project id from the metadata service or the runtime-given + * configuration then the property will remain null. If given both a project + * id through the metadata service and the runtime configuration then the + * instance will assign the value given by the metadata service over the + * runtime configuration. If the instance is unable to retrieve a valid + * project id or number from runtime configuration and the metadata service + * then this will trigger the `error` event in which listening components must + * operate in 'offline' mode. + * {@link https://cloud.google.com/compute/docs/storing-retrieving-metadata} + * @memberof Configuration + * @private + * @type {String|Null} + * @defaultvalue null + */ + this._projectId = null; + /** + * The _key property is meant to contain the optional Stackdriver API key that + * may be used in place of default application credentials to authenticate + * with the Stackdriver Error API. This property will remain null if a key + * is not given in the runtime configuration or an invalid type is given as + * the runtime configuration. + * {@link https://support.google.com/cloud/answer/6158862?hl=en} + * @memberof Configuration + * @private + * @type {String|Null} + * @defaultvalue null + */ + this._key = null; + /** + * The _keyFilename property is meant to contain a path to a file containing + * user or service account credentials, which will be used in place of + * application default credentials. This property will remain null if no + * value for keyFilename is given in the runtime configuration. + * @memberof Configuration + * @private + * @type {String|Null} + * @defaultvalue null + */ + this._keyFilename = null; + /** + * The _credentials property is meant to contain an object representation of + * user or service account credentials, which will be used in place of + * application default credentials. This property will remain null if no + * value for credentials is given in the runtime configuration. + * @memberof Configuration + * @private + * @type {Credentials|Null} + * @defaultvalue null + */ + this._credentials = null; + /** + * The _serviceContext property is meant to contain the optional service + * context information which may be given in the runtime configuration. If + * not given in the runtime configuration then the property value will remain + * null. + * @memberof Configuration + * @private + * @type {Object} + */ + this._serviceContext = {service: 'nodejs', version: ''}; + /** + * The _version of the Error reporting library that is currently being run. + * This information will be logged in errors communicated to the Stackdriver + * Error API. + * @memberof Configuration + * @private + * @type {String} + */ + this._version = version; + /** + * Boolean flag indicating whether or not the configuration instance was able + * to find a set of usable credentials to attempt authorization against the + * Stackdriver API. + * @memberof Configuration + * @private + * @type {Boolean} + */ + this._lacksValidCredentials = true; + /** + * The _givenConfiguration property holds a ConfigurationOptions object + * which, if valid, will be merged against by the values taken from the meta- + * data service. If the _givenConfiguration property is not valid then only + * metadata values will be used in the Configuration instance. + * @memberof Configuration + * @private + * @type {Object|Null} + * @defaultvalue null + */ + this._givenConfiguration = isObject(givenConfig) ? givenConfig : {}; + this._checkLocalServiceContext(); + this._gatherLocalConfiguration(); +}; +/** + * The _checkLocalServiceContext function is responsible for attempting to + * source the _serviceContext objects values from runtime configuration and the + * environment. First the function will check the env for known service context + * names, if these are not set then it will defer to the _givenConfiguration + * property if it is set on the instance. The function will check env variables + * `GAE_MODULE_NAME` and `GAE_MODULE_VERSION` for `_serviceContext.service` and + * `_serviceContext.version` respectively. If these are not set the + * `_serviceContext` properties will be left at default unless the given runtime + * configuration supplies any values as substitutes. + * @memberof Configuration + * @private + * @function _checkLocalServiceContext + * @returns {Undefined} - does not return anything + */ +Configuration.prototype._checkLocalServiceContext = function() { + // Note: The GAE_MODULE_NAME environment variable is set on GAE. + // If the code is, in particular, running on GCF, then the + // FUNCTION_NAME environment variable is set. + // + // To determine the service name to use: + // If the user specified a service name it should be used, otherwise + // if the FUNCTION_NAME environment variable is set (indicating that the + // code is running on GCF) then the FUNCTION_NAME value should be used as + // the service name. If neither of these conditions are true, the + // value of the GAE_MODULE_NAME environment variable should be used as the + // service name. + // + // To determine the service version to use: + // If the user species a version, then that version will be used. + // Otherwise, the value of the environment variable GAE_MODULE_VERSION + // will be used if and only if the FUNCTION_NAME environment variable is + // not set. + var service; + var version; + + if (env.FUNCTION_NAME) { + service = env.FUNCTION_NAME; + } else if (env.GAE_SERVICE) { + service = env.GAE_SERVICE; + version = env.GAE_VERSION; + } else if (env.GAE_MODULE_NAME) { + service = env.GAE_MODULE_NAME; + version = env.GAE_MODULE_VERSION; + } + + this._serviceContext.service = isString(service) ? service : 'node'; + this._serviceContext.version = isString(version) ? version : undefined; + + if (isObject(this._givenConfiguration.serviceContext)) { + if (isString(this._givenConfiguration.serviceContext.service)) { + this._serviceContext.service = + this._givenConfiguration.serviceContext.service; + } else if (has(this._givenConfiguration.serviceContext, 'service')) { + throw new Error('config.serviceContext.service must be a string'); + } + + if (isString(this._givenConfiguration.serviceContext.version)) { + this._serviceContext.version = + this._givenConfiguration.serviceContext.version; + } else if (has(this._givenConfiguration.serviceContext, 'version')) { + throw new Error('config.serviceContext.version must be a string'); + } + } +}; +/** + * The _gatherLocalConfiguration function is responsible for determining + * directly determing whether the properties `reportUncaughtExceptions` and + * `key`, which can be optionally supplied in the runtime configuration, should + * be merged into the instance. This function also calls several specialized + * environmental variable checkers which not only check for the optional runtime + * configuration supplied values but also the processes environmental values. + * @memberof Configuration + * @private + * @function _gatherLocalConfiguration + * @returns {Undefined} - does not return anything + */ +Configuration.prototype._gatherLocalConfiguration = function() { + if (this._givenConfiguration.ignoreEnvironmentCheck === true) { + this._shouldReportErrorsToAPI = true; + } else if (has(this._givenConfiguration, 'ignoreEnvironmentCheck') && + !isBoolean(this._givenConfiguration.ignoreEnvironmentCheck)) { + throw new Error('config.ignoreEnvironmentCheck must be a boolean'); + } else { + this._shouldReportErrorsToAPI = env.NODE_ENV === 'production'; + } + if (!this._shouldReportErrorsToAPI) { + this._logger.warn([ + 'Stackdriver error reporting client has not been configured to send', + 'errors, please check the NODE_ENV environment variable and make sure it', + 'is set to "production" or the ignoreEnvironmentCheck property is set to', + 'true in the runtime configuration object' + ].join(' ')); + } + if (isBoolean(this._givenConfiguration.reportUncaughtExceptions)) { + this._reportUncaughtExceptions = this._givenConfiguration + .reportUncaughtExceptions; + } else if (has(this._givenConfiguration, 'reportUncaughtExceptions')) { + throw new Error('config.reportUncaughtExceptions must be a boolean'); + } + if (isString(this._givenConfiguration.key)) { + this._key = this._givenConfiguration.key; + } else if (has(this._givenConfiguration, 'key')) { + throw new Error('config.key must be a string'); + } + if (isString(this._givenConfiguration.keyFilename)) { + this._keyFilename = this._givenConfiguration.keyFilename; + } else if (has(this._givenConfiguration, 'keyFilename')) { + throw new Error('config.keyFilename must be a string'); + } + if (isObject(this._givenConfiguration.credentials)) { + this._credentials = this._givenConfiguration.credentials; + } else if (has(this._givenConfiguration, 'credentials')) { + throw new Error('config.credentials must be a valid credentials object'); + } + this._checkAuthConfiguration(); +}; +/** + * The _checkAuthConfiguration function is responsible for determining whether + * or not a configuration instance, after having gathered configuration from + * environment and runtime, has credentials information enough to attempt + * authorization with the Stackdriver Errors API. + * @memberof Configuration + * @private + * @function _checkAuthConfiguration + * @returns {Undefined} - does not return anything + */ +Configuration.prototype._checkAuthConfiguration = function() { + if (!isNull(this._key) || !isNull(this._keyFilename) || + !isNull(this._credentials) || + !isEmpty(process.env.GOOGLE_APPLICATION_CREDENTIALS)) { + this._lacksValidCredentials = false; + } else { + this._logger.warn([ + 'Unable to find credential information on instance. This library will', + 'be unable to communicate with the Stackdriver API to save errors.' + ].join(' ')); + } +}; +/** + * The _checkLocalProjectId function is responsible for determing whether the + * _projectId property was set by the metadata service and whether or not the + * _projectId property should/can be set with a environmental or runtime + * configuration variable. If, upon execution of the _checkLocalProjectId + * function, the _projectId property has already been set to a string then it is + * assumed that this property has been set with the metadata services response. + * The metadata value for the project id always take precedence over any other + * locally configured project id value. Given that the metadata service did not + * set the project id this function will defer next to the value set in the + * environment named `GCLOUD_PROJECT` if it is set and of type string. If this + * environmental variable is not set the function will defer to the + * _givenConfiguration property if it is of type object and has a string + * property named projectId. If none of these conditions are met then the + * _projectId property will be left at its default value. + * @memberof Configuration + * @private + * @function _checkLocalProjectId + * @param {Function} cb - The original user callback to invoke with the project + * id or error encountered during id capture + * @returns {Undefined} - does not return anything + */ +Configuration.prototype._checkLocalProjectId = function(cb) { + if (isString(this._projectId)) { + // already has been set by the metadata service + return this._projectId; + } + if (has(this._givenConfiguration, 'projectId')) { + if (isString(this._givenConfiguration.projectId)) { + this._projectId = this._givenConfiguration.projectId; + } else if (isNumber(this._givenConfiguration.projectId)) { + this._projectId = this._givenConfiguration.projectId.toString(); + } + } + return this._projectId; +}; +/** + * Returns the _reportUncaughtExceptions property on the instance. + * @memberof Configuration + * @public + * @function getReportUncaughtExceptions + * @returns {Boolean} - returns the _reportUncaughtExceptions property + */ +Configuration.prototype.getReportUncaughtExceptions = function() { + return this._reportUncaughtExceptions; +}; +/** + * Returns the _shouldReportErrorsToAPI property on the instance. + * @memberof Configuration + * @public + * @function getShouldReportErrorsToAPI + * @returns {Boolean} - returns the _shouldReportErrorsToAPI property + */ +Configuration.prototype.getShouldReportErrorsToAPI = function() { + return this._shouldReportErrorsToAPI; +}; +/** + * Returns the _projectId property on the instance. + * @memberof Configuration + * @public + * @function getProjectId + * @returns {String|Null} - returns the _projectId property + */ +Configuration.prototype.getProjectId = function(cb) { + return this._checkLocalProjectId(); +}; +/** + * Returns the _key property on the instance. + * @memberof Configuration + * @public + * @function getKey + * @returns {String|Null} - returns the _key property + */ +Configuration.prototype.getKey = function() { + return this._key; +}; +/** + * Returns the _keyFilename property on the instance. + * @memberof Configuration + * @public + * @function getKeyFilename + * @returns {String|Null} - returns the _keyFilename property + */ +Configuration.prototype.getKeyFilename = function() { + return this._keyFilename; +}; +/** + * Returns the _credentials property on the instance. + * @memberof Configuration + * @public + * @function getCredentials + * @returns {Credentials|Null} - returns the _credentials property + */ +Configuration.prototype.getCredentials = function() { + return this._credentials; +}; +/** + * Returns the _serviceContext property on the instance. + * @memberof Configuration + * @public + * @function getKey + * @returns {Object|Null} - returns the _serviceContext property + */ +Configuration.prototype.getServiceContext = function() { + return this._serviceContext; +}; +/** + * Returns the _version property on the instance. + * @memberof Configuration + * @public + * @function getVersion + * @returns {String} - returns the _version property + */ +Configuration.prototype.getVersion = function() { + return this._version; +}; +/** + * Returns the _lacksValidCredentials property on the instance. + * @memberof Configuration + * @public + * @function getVersion + * @returns {Boolean} - returns the _lacksValidCredentials property + */ +Configuration.prototype.lacksCredentials = function() { + return this._lacksValidCredentials; +}; +module.exports = Configuration; diff --git a/handwritten/error-reporting/src/error-extractors/error.js b/handwritten/error-reporting/src/error-extractors/error.js new file mode 100644 index 00000000000..e2abe83ec5d --- /dev/null +++ b/handwritten/error-reporting/src/error-extractors/error.js @@ -0,0 +1,49 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; +var has = require('lodash.has'); +var is = require('is'); +var isObject = is.object; + +/** + * Extracts error information from an instance of the Error class and marshals + * that information into the provided instance of error message. This function + * will check before accessing any part of the error for propety presence but + * will not check the types of these property values that is instead work that + * is allocated to the error message instance itself. + * @param {Error} err - the error instance + * @param {ErrorMessage} errorMessage - the error message instance to have the + * error information marshaled into + * @returns {Undefined} - does not return anything + */ +function extractFromErrorClass(err, errorMessage) { + + errorMessage.setMessage(err.stack); + + if (has(err, 'user')) { + + errorMessage.setUser(err.user); + } + + if (has(err, 'serviceContext') && isObject(err.serviceContext)) { + + errorMessage.setServiceContext(err.serviceContext.service, + err.serviceContext.version); + } +} + +module.exports = extractFromErrorClass; diff --git a/handwritten/error-reporting/src/error-extractors/object.js b/handwritten/error-reporting/src/error-extractors/object.js new file mode 100644 index 00000000000..f1b155177e4 --- /dev/null +++ b/handwritten/error-reporting/src/error-extractors/object.js @@ -0,0 +1,80 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; +var has = require('lodash.has'); +var is = require('is'); +var isObject = is.object; + +/** + * Attempts to extract error information given an object as the input for the + * error. This function will check presence of each property before attempting + * to access the given property on the object but will not check for type + * compliance as that is allocated to the instance of the error message itself. + * @function extractFromObject + * @param {Object} err - the Object given as the content of the error + * @param {String} [err.message] - the error message + * @param {String} [err.user] - the user the error occurred for + * @param {String} [err.filePath] - the file path and file where the error + * occurred at + * @param {Number} [err.lineNumber] - the line number where the error occurred + * at + * @param {String} [err.functionName] - the function where the error occurred at + * @param {Object} [err.serviceContext] - the service context object of the + * error + * @param {String} [err.serviceContext.service] - the service the error occurred + * on + * @param {String} [err.serviceContext.version] - the version of the application + * that the error occurred on + * @param {ErrorMessage} errorMessage - the error message instance to marshal + * error information into + * @returns {Undefined} - does not return anything + */ +function extractFromObject(err, errorMessage) { + + if (has(err, 'message')) { + + errorMessage.setMessage(err.message); + } + + if (has(err, 'user')) { + + errorMessage.setUser(err.user); + } + + if (has(err, 'filePath')) { + + errorMessage.setFilePath(err.filePath); + } + + if (has(err, 'lineNumber')) { + + errorMessage.setLineNumber(err.lineNumber); + } + + if (has(err, 'functionName')) { + + errorMessage.setFunctionName(err.functionName); + } + + if (has(err, 'serviceContext') && isObject(err.serviceContext)) { + + errorMessage.setServiceContext(err.serviceContext.service, + err.serviceContext.version); + } +} + +module.exports = extractFromObject; diff --git a/handwritten/error-reporting/src/error-handlers/error.js b/handwritten/error-reporting/src/error-handlers/error.js new file mode 100644 index 00000000000..a3ca5a938e6 --- /dev/null +++ b/handwritten/error-reporting/src/error-handlers/error.js @@ -0,0 +1,46 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; +var handleUnknownAsError = require('./unknown.js'); +var extractFromErrorClass = require('../error-extractors/error.js'); + +/** + * Handles routing and validation for parsing an errorMessage that was + * flagged as an instance of the Error class. This function does not + * discriminate against regular objects, checking only to see if the err + * parameter is itself a basic object and has the function property + * hasOwnProperty. Given that the input passes this basic test the input + * will undergo extraction by the extractFromErrorClass function, otherwise + * it will be treated and processed as an unknown. + * @function handleErrorClassError + * @param {Error} err - the error instance to extract information from + * @param {ErrorMessage} errorMessage - the error message to marshal error + * information into. + * @returns {Undefined} - does not return anything + */ +function handleErrorClassError(err, errorMessage) { + + if (err instanceof Error) { + + extractFromErrorClass(err, errorMessage); + } else { + + handleUnknownAsError(err, errorMessage); + } +} + +module.exports = handleErrorClassError; diff --git a/handwritten/error-reporting/src/error-handlers/number.js b/handwritten/error-reporting/src/error-handlers/number.js new file mode 100644 index 00000000000..ebec109028e --- /dev/null +++ b/handwritten/error-reporting/src/error-handlers/number.js @@ -0,0 +1,45 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; +var is = require('is'); +var isNumber = is.number; +var isFunction = is.function; + +/** + * Handles routing and validation for parsing an error which has been indicated + * to be of type Number. This handler will manufacture a new Error to create + * a stack-trace for submission to the Error API and will attempt to caste the + * given number to a string for submission to the Error API. + * @function handleNumberAsError + * @param {Number} err - the number submitted as content for the error message + * @param {ErrorMessage} errorMessage - the error messag instance to marshall + * error information into. + * @returns {Undefined} - does not return anything + */ +function handleNumberAsError(err, errorMessage) { + var fauxError = new Error(); + var errChecked = fauxError.stack; + + if (isNumber(err) && isFunction(err.toString)) { + + errChecked = err.toString(); + } + + errorMessage.setMessage(errChecked); +} + +module.exports = handleNumberAsError; diff --git a/handwritten/error-reporting/src/error-handlers/object.js b/handwritten/error-reporting/src/error-handlers/object.js new file mode 100644 index 00000000000..2b3c11a13c2 --- /dev/null +++ b/handwritten/error-reporting/src/error-handlers/object.js @@ -0,0 +1,45 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; +var is = require('is'); +var isObject = is.object; +var extractFromObject = require('../error-extractors/object.js'); +var handleUnknownAsError = require('./unknown.js'); + +/** + * Handles routing and validation for parsing an error that has been indicated + * to be of type object. If the value submitted for err passes a basic check + * for being of type Object than the input will extracted as such, otherwise the + * input will be treated as unknown. + * @function handleObjectAsError + * @param {Object} err - the error information object to extract from + * @param {ErrorMessage} errorMessage - the error message instance to marshal + * error information into + * @returns {Undefined} - does not return anything + */ +function handleObjectAsError(err, errorMessage) { + + if (isObject(err)) { + + extractFromObject(err, errorMessage); + } else { + + handleUnknownAsError(err, errorMessage); + } +} + +module.exports = handleObjectAsError; diff --git a/handwritten/error-reporting/src/error-handlers/string.js b/handwritten/error-reporting/src/error-handlers/string.js new file mode 100644 index 00000000000..8e2e0fb816f --- /dev/null +++ b/handwritten/error-reporting/src/error-handlers/string.js @@ -0,0 +1,47 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; +var isString = require('is').string; + +/** + * Handles validation of an error which has been indicated to be of type String. + * This function will create a new instance of the Error class to produce a + * stack trace for submission to the API and check to confirm that the given + * value is of type string. + * @function handleStringAsError + * @param {String} err - the String indicated as the content of the error + * @param {ErrorMessage} errorMessage - the error message instance to marshal + * error information into. + * @returns {Undefined} - does not return anything + */ +function handleStringAsError(err, errorMessage) { + var fauxError = new Error(); + var fullStack = fauxError.stack.split('\n'); + var cleanedStack = fullStack.slice(0, 1).concat(fullStack.slice(4)); + var errChecked = ''; + + if (isString(err)) { + // Replace the generic error message with the user-provided string + cleanedStack[0] = err; + } + + errChecked = cleanedStack.join('\n'); + + errorMessage.setMessage(errChecked); +} + +module.exports = handleStringAsError; diff --git a/handwritten/error-reporting/src/error-handlers/unknown.js b/handwritten/error-reporting/src/error-handlers/unknown.js new file mode 100644 index 00000000000..6243f184bc5 --- /dev/null +++ b/handwritten/error-reporting/src/error-handlers/unknown.js @@ -0,0 +1,37 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; + +/** + * Handles unknown/unsupported input as the content of the error message. Since + * the problem-space is not defined for this path the library only attempts to + * manufacture a stack trace for submission to the API and discards the input + * that was given as the error content. + * @function handleUnknownAsError + * @param {Any} err - the unknown/unsupported input indicated as the content of + * the error. + * @param {ErrorMessage} errorMessage - the error message instance to marshal + * error information into. + * @returns {Undefined} - does not return anything + */ +function handleUnknownAsError(err, errorMessage) { + var fauxError = new Error(); + + errorMessage.setMessage(fauxError.stack); +} + +module.exports = handleUnknownAsError; diff --git a/handwritten/error-reporting/src/error-router.js b/handwritten/error-reporting/src/error-router.js new file mode 100644 index 00000000000..d8dbcf5ab8e --- /dev/null +++ b/handwritten/error-reporting/src/error-router.js @@ -0,0 +1,63 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; +var handleErrorClassError = require('./error-handlers/error.js'); +var handleObjectAsError = require('./error-handlers/object.js'); +var handleStringAsError = require('./error-handlers/string.js'); +var handleNumberAsError = require('./error-handlers/number.js'); +var handleUnknownAsError = require('./error-handlers/unknown.js'); + +/** + * The Error handler router is responsible for taking an error of some type and + * and Error message container, analyzing the type of the error and routing it + * to the proper handler so that the error information can be marshaled into the + * the error message container. + * @function errorHandlerRouter + * @param {Any} err - the error information to extract from + * @param {ErrorMessage} em - an instance of ErrorMessage to marshal error + * information into + * @returns {Undefined} - does not return a value + */ +function errorHandlerRouter(err, em) { + + if (err instanceof Error) { + + handleErrorClassError(err, em); + + return; + } + + switch (typeof err) { + case 'object': { + handleObjectAsError(err, em); + break; + } + case 'string': { + handleStringAsError(err, em); + break; + } + case 'number': { + handleNumberAsError(err, em); + break; + } + default: { + handleUnknownAsError(err, em); + } + } +} + +module.exports = errorHandlerRouter; diff --git a/handwritten/error-reporting/src/google-apis/auth-client.js b/handwritten/error-reporting/src/google-apis/auth-client.js new file mode 100644 index 00000000000..d5c31fa0b9c --- /dev/null +++ b/handwritten/error-reporting/src/google-apis/auth-client.js @@ -0,0 +1,164 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*jshint unused:false*/ + +'use strict'; +const common = require('@google-cloud/common'); +const pkg = require('../../package.json'); +var logger = require('../logger.js'); +var is = require('is'); +var isFunction = is.fn; +var isString = is.string; + +/* @const {Array} list of scopes needed to work with the errors api. */ +var SCOPES = ['https://www.googleapis.com/auth/cloud-platform']; + +/* @const {String} Base Error Reporting API */ +var API = 'https://clouderrorreporting.googleapis.com/v1beta1/projects'; + +/** + * The RequestHandler constructor initializes several properties on the + * RequestHandler instance and create a new request factory for requesting + * against the Error Reporting API. + * @param {Configuration} config - The configuration instance + * @param {Object} logger - the logger instance + * @class RequestHandler + * @classdesc The RequestHandler class provides a centralized way of managing a + * pool of ongoing requests and routing there callback execution to the right + * handlers. The RequestHandler relies on the diag-common request factory + * and therefore only manages the routing of execution to the proper callback + * and does not do any queueing/batching. The RequestHandler instance has + * several properties: the projectId property is used to create a correct url + * for interacting with the API and key property can be optionally provided a + * value which can be used in place of default application authentication. The + * shouldReportErrors property will dictate whether or not the handler instance + * will attempt to send payloads to the API. If it is false the handler will + * immediately call back to the completion callback with a constant error value. + * @property {Function} _request - a npm.im/request style request function that + * provides the transport layer for requesting against the Error Reporting API. + * It includes retry and authorization logic. + * @property {String} _projectId - the project id used to uniquely identify and + * address the correct project in the Error Reporting API + * @property {Object} _logger - the instance-cached logger instance + */ +class RequestHandler extends common.Service { + /** + * Returns a query-string request object if a string key is given, otherwise + * will return null. + * @param {String|Null} [key] - the API key used to authenticate against the + * service in place of application default credentials. + * @returns {Object|Null} api key query string object for use with request or + * null in case no api key is given + * @static + */ + static manufactureQueryString(key) { + if (isString(key)) { + return {key: key}; + } + return null; + } + /** + * No-operation stub function for user callback substitution + * @param {Error|Null} err - the error + * @param {Object|Null} response - the response object + * @param {Any} body - the response body + * @returns {Null} + * @static + */ + static noOp(err, response, body) { + return null; + } + /** + * @constructor + * @param {Configuration} config - an instance of the Configuration class + * @param {Logger} logger - an instance of logger + */ + constructor(config, logger) { + var pid = config.getProjectId(); + super({ + packageJson: pkg, + baseUrl: 'https://clouderrorreporting.googleapis.com/v1beta1/', + scopes: SCOPES, + projectId: pid !== null ? pid : undefined, + projectIdRequired: true + }, config); + this._config = config; + this._logger = logger; + } + /** + * Creates a request options object given the value of the error message and + * will callback to the user supplied callback if given one. If a callback is + * not given then the request will execute and silently dissipate. + * @function sendError + * @param {ErrorMessage} payload - the ErrorMessage instance to JSON.stringify + * for submission to the service + * @param {RequestHandler~requestCallback} [userCb] - function called when the + * request has succeeded or failed. + * @returns {Undefined} - does not return anything + * @instance + */ + sendError(errorMessage, userCb) { + var self = this; + var cb = isFunction(userCb) ? userCb : RequestHandler.noOp; + if (this._config.getShouldReportErrorsToAPI()) { + this.request({ + uri: 'events:report', + qs: RequestHandler.manufactureQueryString(this._config.getKey()), + method: 'POST', + json: errorMessage + }, (err, body, response) => { + if (err) { + this._logger.error([ + 'Encountered an error while attempting to transmit an error to', + 'the Stackdriver Error Reporting API.' + ].join(' '), err); + } + cb(err, response, body); + }); + } else { + cb(new Error([ + 'Stackdriver error reporting client has not been configured to send', + 'errors, please check the NODE_ENV environment variable and make sure', + 'it is set to "production" or set the ignoreEnvironmentCheck property', + 'to true in the runtime configuration object' + ].join(' ')), null, null); + } + } +} + +/** + * The requestCallback callback function is called on completion of an API + * request whether that completion is success or failure. The request can either + * fail by reaching the max number of retries or encountering an unrecoverable + * response from the API. The first parameter to any invocation of the + * requestCallback function type will be the applicable error if one was + * generated during the request-response transaction. If an error was not + * generated during the transaction then the first parameter will be of type + * Null. The second parameter is the entire response from the transaction, this + * is an object that as well as containing the body of the response from the + * transaction will also include transaction information. The third parameter is + * the body of the response, this can be an object, a string or any type given + * by the response object. + * @callback RequestHandler~requestCallback cb - The function that will be + * invoked once the transaction has completed + * @param {Error|Null} err - The error, if applicable, generated during the + * transaction + * @param {Object|Undefined|Null} response - The response, if applicable, + * received during the transaction + * @param {Any} body - The response body if applicable + */ + +module.exports = RequestHandler; diff --git a/handwritten/error-reporting/src/index.js b/handwritten/error-reporting/src/index.js new file mode 100644 index 00000000000..8a134e8bd29 --- /dev/null +++ b/handwritten/error-reporting/src/index.js @@ -0,0 +1,148 @@ +/*! + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +'use strict'; + +var Configuration = require('./configuration.js'); +var AuthClient = require('./google-apis/auth-client.js'); +// Begin error reporting interfaces + +var koa = require('./interfaces/koa.js'); +var hapi = require('./interfaces/hapi.js'); +var manual = require('./interfaces/manual.js'); +var express = require('./interfaces/express.js'); +var restify = require('./interfaces/restify'); +var messageBuilder = require('./interfaces/message-builder.js'); +var uncaughtException = require('./interfaces/uncaught.js'); +var createLogger = require('./logger.js'); + +/** + * @typedef ConfigurationOptions + * @type Object + * @property {String} [projectId] - the projectId of the project deployed + * @property {String} [keyFilename] - path to a key file to use for an API key + * @property {String|Number} logLevel - a integer between and including 0-5 or a + * decimal representation of an integer including and between 0-5 in String + * form + * @property {String} [key] - API key to use for communication with the service + * @property {uncaughtHandlingEnum} + * [onUncaughtException=uncaughtHandlingEnum.ignore] - one of the uncaught + * handling options + * @property {Object} [serviceContext] - the service context of the application + * @property {String} [serviceContext.service] - the service the application is + * running on + * @property {String} [serviceContext.version] - the version the hosting + * application is currently labelled as + * @property {Boolean} [ignoreEnvironmentCheck] - flag indicating whether or not + * to communicate errors to the Stackdriver service even if NODE_ENV is not set + * to production + */ + +/** + * @typedef ApplicationErrorReportingInterface + * @type Object + * @property {Object} hapi - The hapi plugin for Stackdriver Error Reporting + * @property {Function} report - The manual interface to report Errors to the + * Stackdriver Error Reporting Service + * @property {Function} express - The express plugin for Stackdriver Error + * Reporting + * @property {Function} message - Returns a new ErrorMessage class instance + */ + +// TODO: Update this documentation +/** + * The entry point for initializing the Error Reporting Middleware. This + * function will invoke configuration gathering and attempt to create a API + * client which will send errors to the Error Reporting Service. Invocation of + * this function will also return an interface which can be used manually via + * the `report` function property, with hapi via the `hapi` object property or + * with express via the `express` function property. + * @function Errors + * @param {ConfigurationOptions} initConfiguration - the desired project/error + * reporting configuration + * @constructor + * @alias module:error-reporting + */ +function Errors(initConfiguration) { + if (!(this instanceof Errors)) { + return new Errors(initConfiguration); + } + + var logger = createLogger(initConfiguration); + var config = new Configuration(initConfiguration, logger); + var client = new AuthClient(config, logger); + + // Setup the uncaught exception handler + uncaughtException(client, config); + + // Build the application interfaces for use by the hosting application + /** + * @example + * // Use to report errors manually like so + * errors.report(new Error('xyz'), function () { + * console.log('done!'); + * }); + */ + this.report = manual(client, config); + /** + * @example + * // Use to create and report errors manually with a high-degree + * // of manual control + * var err = errors.event() + * .setMessage('My error message') + * .setUser('root@nexus'); + * errors.report(err, function () { + * console.log('done!'); + * }); + */ + this.event = messageBuilder(config); + /** + * @example + * var hapi = require('hapi'); + * var server = new hapi.Server(); + * server.connection({ port: 3000 }); + * server.start(); + * // AFTER ALL OTHER ROUTE HANDLERS + * server.register({register: errors.hapi}); + */ + this.hapi = hapi(client, config); + /** + * @example + * var express = require('express'); + * var app = express(); + * // AFTER ALL OTHER ROUTE HANDLERS + * app.use(errors.express); + * app.listen(3000); + */ + this.express = express(client, config); + /** + * @example + * var restify = require('restify'); + * var server = restify.createServer(); + * // BEFORE ALL OTHER ROUTE HANDLERS + * server.use(errors.restify(server)); + */ + this.restify = restify(client, config); + /** + * @example + * var koa = require('koa'); + * var app = koa(); + * // BEFORE ALL OTHER ROUTE HANDLERS HANDLERS + * app.use(errors.koa); + */ + this.koa = koa(client, config); +} + +module.exports = Errors; diff --git a/handwritten/error-reporting/src/interfaces/express.js b/handwritten/error-reporting/src/interfaces/express.js new file mode 100644 index 00000000000..07a0614a603 --- /dev/null +++ b/handwritten/error-reporting/src/interfaces/express.js @@ -0,0 +1,81 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; +var is = require('is'); +var isObject = is.object; +var isFunction = is.fn; +var ErrorMessage = require('../classes/error-message.js'); +var expressRequestInformationExtractor = + require('../request-extractors/express.js'); +var errorHandlerRouter = require('../error-router.js'); + +/** + * Returns a function that can be used as an express error handling middleware. + * @function makeExpressHandler + * @param {AuthClient} client - an inited Auth Client instance + * @param {NormalizedConfigurationVariables} config - the environmental + * configuration + * @returns {expressErrorHandler} - a function that can be used as an express + * error handling middleware. + */ +function makeExpressHandler(client, config) { + /** + * The Express Error Handler function is an interface for the error handler + * stack into the Express architecture. + * @function expressErrorHandler + * @param {Any} err - a error of some type propagated by the express plugin + * stack + * @param {Object} req - an Express request object + * @param {Object} res - an Express response object + * @param {Function} next - an Express continuation callback + * @returns {ErrorMessage} - Returns the ErrorMessage instance + */ + function expressErrorHandler(err, req, res, next) { + var ctxService = ''; + var ctxVersion = ''; + + if (config.lacksCredentials()) { + next(err); + } + + if (isObject(config)) { + ctxService = config.getServiceContext().service; + ctxVersion = config.getServiceContext().version; + } + + var em = new ErrorMessage() + .consumeRequestInformation( + expressRequestInformationExtractor(req, res)) + .setServiceContext(ctxService, ctxVersion); + + errorHandlerRouter(err, em); + + if (isObject(client) && isFunction(client.sendError)) { + client.sendError(em); + } + + if (isFunction(next)) { + next(err); + } + + return em; + } + + return expressErrorHandler; +} + +module.exports = makeExpressHandler; diff --git a/handwritten/error-reporting/src/interfaces/hapi.js b/handwritten/error-reporting/src/interfaces/hapi.js new file mode 100644 index 00000000000..10f542c8863 --- /dev/null +++ b/handwritten/error-reporting/src/interfaces/hapi.js @@ -0,0 +1,127 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; +var is = require('is'); +var isObject = is.object; +var isFunction = is.fn; +var ErrorMessage = require('../classes/error-message.js'); +var hapiRequestInformationExtractor = require('../request-extractors/hapi.js'); +var errorHandlerRouter = require('../error-router.js'); + +/** + * The Hapi error handler function serves simply to create an error message + * and begin that error message on the path of correct population. + * @function hapiErrorHandler + * @param {Object} req - The Hapi request object + * @param {Any} err - The error input + * @param {Object} config - the env configuration + * @returns {ErrorMessage} - a partially or fully populated instance of + * ErrorMessage + */ +function hapiErrorHandler(req, err, config) { + var service = ''; + var version = ''; + + if (isObject(config)) { + service = config.getServiceContext().service; + version = config.getServiceContext().version; + } + + var em = new ErrorMessage() + .consumeRequestInformation(hapiRequestInformationExtractor(req)) + .setServiceContext(service, version); + + errorHandlerRouter(err, em); + + return em; +} + + +/** + * Creates a Hapi plugin object which can be used to handle errors in Hapi. + * @param {AuthClient} client - an inited auth client instance + * @param {NormalizedConfigurationVariables} config - the environmental + * configuration + * @returns {Object} - the actual Hapi plugin + */ +function makeHapiPlugin(client, config) { + + /** + * The register function serves to attach the hapiErrorHandler to specific + * points in the hapi request-response lifecycle. Namely: it attaches to the + * 'request-error' event in Hapi which is emitted when a plugin or receiver + * throws an error while executing and the 'onPreResponse' event to intercept + * error code carrying requests before they are sent back to the client so + * that the errors can be logged to the Error Reporting API. + * @function hapiRegisterFunction + * @param {Hapi.Server} server - A Hapi server instance + * @param {Object} options - The server configuration options object + * @param {Function} next - The Hapi callback to move execution to the next + * plugin + * @returns {Undefined} - returns the execution of the next callback + */ + function hapiRegisterFunction(server, options, next) { + if (isObject(server)) { + if (isFunction(server.on)) { + server.on('request-error', function(req, err) { + var em = hapiErrorHandler(req, err, config); + + if (!config.lacksCredentials()) { + client.sendError(em); + } + }); + } + + if (isFunction(server.ext)) { + server.ext('onPreResponse', function(request, reply) { + var em = null; + + if (isObject(request) && isObject(request.response) && + request.response.isBoom) { + em = hapiErrorHandler(request, new Error(request.response.message), + config); + + if (!config.lacksCredentials()) { + client.sendError(em); + } + } + + if (isObject(reply) && isFunction(reply.continue)) { + reply.continue(); + } + }); + } + } + + if (isFunction(next)) { + return next(); + } + } + + var hapiPlugin = {register: hapiRegisterFunction}; + var version = (isObject(config) && config.getVersion()) ? + config.getVersion(): '0.0.0'; + + hapiPlugin.register.attributes = { + name: '@google/cloud-errors', + version: version + }; + + return hapiPlugin; +} + +module.exports = makeHapiPlugin; diff --git a/handwritten/error-reporting/src/interfaces/koa.js b/handwritten/error-reporting/src/interfaces/koa.js new file mode 100644 index 00000000000..e3f4751d068 --- /dev/null +++ b/handwritten/error-reporting/src/interfaces/koa.js @@ -0,0 +1,68 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; +var ErrorMessage = require('../classes/error-message.js'); +var koaRequestInformationExtractor = require('../request-extractors/koa.js'); +var errorHandlerRouter = require('../error-router.js'); + +/** + * The koaErrorHandler should be placed at the beginning of the koa middleware + * stack and should catch the yield of the output of the request handling chain. + * The Koa error handler returns the actual error handler which will be used in + * the request chain handling and this function corresponds to the format given + * in: https://github.com/koajs/koa/wiki/Error-Handling. + * @function koaErrorHandler + * @param {AuthClient} - The API client instance to report errors to Stackdriver + * @param {NormalizedConfigurationVariables} - The application configuration + * @returns {Function} - The function used to catch errors yielded by downstream + * request handlers. + */ +function koaErrorHandler(client, config) { + + /** + * The actual error handler for the Koa plugin attempts to yield the results + * of downstream request handlers and will attempt to catch errors emitted by + * these handlers. + * @param {Function} next - the result of the request handlers to yield + * @returns {Undefined} does not return anything + */ + return function *(next) { + var em; + var svc = config.getServiceContext(); + + try { + + yield next; + } catch (err) { + if (config.lacksCredentials()) { + return; + } + + em = new ErrorMessage() + .consumeRequestInformation( + koaRequestInformationExtractor(this.request, this.response)) + .setServiceContext(svc.service, + svc.version); + + errorHandlerRouter(err, em); + + client.sendError(em); + } + }; +} + +module.exports = koaErrorHandler; diff --git a/handwritten/error-reporting/src/interfaces/manual.js b/handwritten/error-reporting/src/interfaces/manual.js new file mode 100644 index 00000000000..f2c7230158f --- /dev/null +++ b/handwritten/error-reporting/src/interfaces/manual.js @@ -0,0 +1,103 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; +var is = require('is'); +var isString = is.string; +var isObject = is.object; +var isFunction = is.fn; +var ErrorMessage = require('../classes/error-message.js'); +var manualRequestInformationExtractor = + require('../request-extractors/manual.js'); +var errorHandlerRouter = require('../error-router.js'); + +/** + * The handler setup function serves to produce a bound instance of the + * reportManualError function with no bound context, a bound first arugment + * which is intended to be an initialized instance of the API client and a bound + * second argument which is the environmental configuration. + * @function handlerSetup + * @param {AuthClient} client - an initialized API client + * @param {NormalizedConfigurationVariables} config - the environmental + * configuration + * @returns {reportManualError} - a bound version of the reportManualError + * function + */ +function handlerSetup(client, config) { + /** + * The interface for manually reporting errors to the Google Error API in + * application code. + * @param {Any|ErrorMessage} err - error information of any type or content. + * This can be of any type but by giving an instance of ErrorMessage as the + * error arugment one can manually provide values to all fields of the + * potential payload. + * @param {Object} [request] - an object containing request information. This + * is expected to be an object similar to the Node/Express request object. + * @param {String} [additionalMessage] - a string containing error message + * information to override the builtin message given by an Error/Exception + * @param {Function} [callback] - a callback to be invoked once the message + * has been successfully submitted to the error reporting API or has failed + * after four attempts with the success or error response. + * @returns {ErrorMessage} - returns the error message created through with + * the parameters given. + */ + function reportManualError(err, request, additionalMessage, callback) { + var em; + if (config.lacksCredentials()) { + return; + } + if (isString(request)) { + // no request given + callback = additionalMessage; + additionalMessage = request; + request = undefined; + } else if (isFunction(request)) { + // neither request nor additionalMessage given + callback = request; + request = undefined; + additionalMessage = undefined; + } + + if (isFunction(additionalMessage)) { + callback = additionalMessage; + additionalMessage = undefined; + } + + if (err instanceof ErrorMessage) { + em = err; + } else { + em = new ErrorMessage(); + em.setServiceContext(config.getServiceContext().service, + config.getServiceContext().version); + errorHandlerRouter(err, em); + } + + if (isObject(request)) { + em.consumeRequestInformation(manualRequestInformationExtractor(request)); + } + + if (isString(additionalMessage)) { + em.setMessage(additionalMessage); + } + + client.sendError(em, callback); + return em; + } + + return reportManualError; +} + +module.exports = handlerSetup; diff --git a/handwritten/error-reporting/src/interfaces/message-builder.js b/handwritten/error-reporting/src/interfaces/message-builder.js new file mode 100644 index 00000000000..c22f3c11cc0 --- /dev/null +++ b/handwritten/error-reporting/src/interfaces/message-builder.js @@ -0,0 +1,44 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; +var ErrorMessage = require('../classes/error-message.js'); + +/** + * The handler setup function serves to produce a bound instance of the + * of a factory for ErrorMessage class instances with configuration-supplied + * service contexts automatically set. + * @function handlerSetup + * @param {NormalizedConfigurationVariables} config - the environmental + * configuration + * @returns {ErrorMessage} - a new ErrorMessage instance + */ +function handlerSetup(config) { + /** + * The interface for creating new instances of the ErrorMessage class which + * can be used to send custom payloads to the Error reporting service. + * @returns {ErrorMessage} - returns a new instance of the ErrorMessage class + */ + function newMessage() { + return new ErrorMessage().setServiceContext( + config.getServiceContext().service, + config.getServiceContext().version); + } + + return newMessage; +} + +module.exports = handlerSetup; diff --git a/handwritten/error-reporting/src/interfaces/restify.js b/handwritten/error-reporting/src/interfaces/restify.js new file mode 100644 index 00000000000..df03996aae4 --- /dev/null +++ b/handwritten/error-reporting/src/interfaces/restify.js @@ -0,0 +1,159 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; +var is = require('is'); +var isObject = is.object; +var isFunction = is.function; +var ErrorMessage = require('../classes/error-message.js'); +var expressRequestInformationExtractor = + require('../request-extractors/express.js'); +var errorHandlerRouter = require('../error-router.js'); + +/** + * The restifyErrorHandler is responsible for taking the captured error, setting + * the serviceContext property on the corresponding ErrorMessage instance, + * routing the captured error to the right handler so that it can be correctly + * marshaled into the ErrorMessage instance and then attempting to send it to + * the Stackdriver API via the given API client instance. + * @function restifyErrorHandler + * @param {AuthClient} client - the API client + * @param {NormalizedConfigurationVariables} config - the application + * configuration + * @param {Any} err - the error being handled + * @param {ErrorMessage} - the error message instance container + * @returns {Undefined} - does not return anything + */ +function restifyErrorHandler(client, config, err, em) { + var svc = config.getServiceContext(); + em.setServiceContext(svc.service, svc.version); + + errorHandlerRouter(err, em); + + client.sendError(em); +} + +/** + * The restifyRequestFinishHandler will be called once the response has emitted + * the `finish` event and is now in its finalized state. This function will + * attempt to determine whether or not the body of response is an instance of + * the Error class or its status codes indicate that the response ended in an + * error state. If either of the preceding are true then the restifyErrorHandler + * will be called with the error to be routed to the Stackdriver service. + * @function restifyRequestFinishHandler + * @param {AuthClient} client - the API client + * @param {NormalizedConfigurationVariables} config - the application + * configuration + * @param {Object} req - the restify request + * @param {Object} res - the restify response + * @returns {Undefined} - does not return anything + */ +function restifyRequestFinishHandler(client, config, req, res) { + var em; + + if (res._body instanceof Error || + res.statusCode > 309 && res.statusCode < 512) { + em = new ErrorMessage().consumeRequestInformation( + expressRequestInformationExtractor(req, res)); + + restifyErrorHandler(client, config, res._body, em); + } +} + +/** + * The restifyRequestHandler attaches the restifyRequestFinishHandler to each + * responses 'finish' event wherein the callback function will determine + * whether or not the response is an error response or not. The finish event is + * used since the restify response object will not have any error information + * contained within it until the downstream request handlers have had the + * opportunity to deal with the request and create a contextually significant + * response. + * @function restifyRequestHandler + * @param {AuthClient} client - the API client + * @param {NormalizedConfigurationVariables} config - the application + * configuration + * @param {Object} req - the current request + * @param {Object} res - the current response + * @param {Function} next - the callback function to pass the request onto the + * downstream request handlers + * @returns {Any} - the result of the next function + */ +function restifyRequestHandler(client, config, req, res, next) { + var listener = {}; + + if (isObject(res) && isFunction(res.on) && isFunction(res.removeListener)) { + + listener = function() { + + restifyRequestFinishHandler(client, config, req, res); + res.removeListener('finish', listener); + }; + + res.on('finish', listener); + } + + return next(); +} + +/** + * The serverErrorHandler is the actual function used by the restify error + * handling stack and should be used as a bound instance with its first two + * arguments (client & config) bound to it. The serverErrorHandler function must + * be given the restify server instance as a parameter so that it can listen + * to the `uncaughtException` event in the restify request handling stack. This + * event is emitted when an uncaught error is thrown inside a restify request + * handler. This init function will return the actual request handler function + * which will attach to outgoing responses, determine if they are instances of + * errors and then attempt to send this information to the Stackdriver API. + * @function serverErrorHandler + * @param {AuthClient} client - the API client + * @param {NormalizedConfigurationVariables} config - the application + * configuration + * @param {Object} server - the restify server instance + * @returns {Function} - the actual request error handler + */ +function serverErrorHandler(client, config, server) { + + server.on('uncaughtException', function(req, res, reqConfig, err) { + if (config.lacksCredentials()) { + return; + } + var em = new ErrorMessage().consumeRequestInformation( + expressRequestInformationExtractor(req, res)); + + restifyErrorHandler(client, config, err, em); + }); + + return restifyRequestHandler.bind(null, client, config); +} + +/** + * The handler setup function serves to provide a simple interface to init the + * the restify server error handler by binding the needed client and config + * variables to the error-handling chain. + * @function handlerSetup + * @param {AuthClient} client - the API client + * @param {NormalizedConfigurationVariables} config - the application + * configuration + * @returns {Function} - returns the serverErrorHandler function for use in the + * restify middleware stack + */ +function handlerSetup(client, config) { + + return serverErrorHandler.bind(null, client, config); +} + +module.exports = handlerSetup; diff --git a/handwritten/error-reporting/src/interfaces/uncaught.js b/handwritten/error-reporting/src/interfaces/uncaught.js new file mode 100644 index 00000000000..e426e5d25e0 --- /dev/null +++ b/handwritten/error-reporting/src/interfaces/uncaught.js @@ -0,0 +1,67 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; +var errorHandlerRouter = require('../error-router.js'); +var ErrorMessage = require('../classes/error-message.js'); + +/** + * Exits the process with exit code `1` which indicates that an unhandled error + * occurred. !! Invocation of this function will terminate the process !! + * @function handleProcessExit + * @return {Undefined} - does not return a value + */ +function handleProcessExit() { process.exit(1); } + +/** + * If the configuraiton allows, install an uncaught exception handler that will + * report the uncaught error to the API and then terminate the process. + * @function handlerSetup + * @param {AuthClient} client - the API client for communication with the + * Stackdriver Error API + * @param {Configuration} config - the init configuration + * @returns {Null|process} - Returns null if the config demands ignoring + * uncaught + * exceptions, otherwise return the process instance + */ +function handlerSetup(client, config) { + /** + * The actual exception handler creates a new instance of `ErrorMessage`, + * extracts infomation from the propagated `Error` and marshals it into the + * `ErrorMessage` instance, attempts to send this `ErrorMessage` instance to + * the Stackdriver Error Reporting API. Subsequently the process is + * terminated. + * @function uncaughtExceptionHandler + * @listens module:process~event:uncaughtException + * @param {Error} err - The error that has been uncaught to this point + * @returns {Undefined} - does not return a value + */ + function uncaughtExceptionHandler(err) { + var em = new ErrorMessage(); + errorHandlerRouter(err, em); + client.sendError(em, handleProcessExit); + setTimeout(handleProcessExit, 2000); + } + + if (!config.getReportUncaughtExceptions() || config.lacksCredentials()) { + // Do not attach a listener to the process + return null; + } + + return process.on('uncaughtException', uncaughtExceptionHandler); +} + +module.exports = handlerSetup; diff --git a/handwritten/error-reporting/src/logger.js b/handwritten/error-reporting/src/logger.js new file mode 100644 index 00000000000..9024814ee44 --- /dev/null +++ b/handwritten/error-reporting/src/logger.js @@ -0,0 +1,64 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*jshint bitwise: false*/ + +'use strict'; +var has = require('lodash.has'); +var is = require('is'); +var isObject = is.object; +var isString = is.string; +var isNumber = is.number; +var logger = require('@google-cloud/common').logger; +/** + * Creates an instance of the Google Cloud Diagnostics logger class. This + * instance will be configured to log at the level given by the environment or + * the runtime configuration property `logLevel`. If neither of these inputs are + * given or valid then the logger will default to logging at log level `WARN`. + * Order of precedence for logging level is: + * 1) Environmental variable `GCLOUD_ERRORS_LOGLEVEL` + * 2) Runtime configuration property `logLevel` + * 3) Default log level of `WARN` (2) + * @function createLogger + * @param {ConfigurationOptions} initConfiguration - the desired project/error + * reporting configuration. Will look for the `logLevel` property which, if + * supplied, must be a number or stringified decimal representation of a + * number between and including 1 through 5 + * @returns {Object} - returns an instance of the logger created with the given/ + * default options + */ +function createLogger(initConfiguration) { + // Default to log level: warn (2) + var level = logger.WARN; + if (has(process.env, 'GCLOUD_ERRORS_LOGLEVEL')) { + // Cast env string as integer + level = logger.LEVELS[~~process.env.GCLOUD_ERRORS_LOGLEVEL] || + logger.LEVELS.warn; + } else if (isObject(initConfiguration) && + has(initConfiguration, 'logLevel')) { + if (isString(initConfiguration.logLevel)) { + // Cast string as integer + level = logger.LEVELS[~~initConfiguration.logLevel] || logger.LEVELS.warn; + } else if (isNumber(initConfiguration.logLevel)) { + level = logger.LEVELS[initConfiguration.logLevel] || logger.LEVELS.warn; + } else { + throw new Error('config.logLevel must be a number or decimal ' + + 'representation of a number in string form'); + } + } + return logger({level: level, tag: '@google/cloud-errors'}); +} + +module.exports = createLogger; diff --git a/handwritten/error-reporting/src/request-extractors/express.js b/handwritten/error-reporting/src/request-extractors/express.js new file mode 100644 index 00000000000..197e73978b7 --- /dev/null +++ b/handwritten/error-reporting/src/request-extractors/express.js @@ -0,0 +1,77 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// jscs:disable requireEarlyReturn +'use strict'; +var is = require('is'); +var isFunction = is.fn; +var isObject = is.object; +var RequestInformationContainer = + require('../classes/request-information-container.js'); + +/** + * This function checks for the presence of an `x-forwarded-for` header on the + * request to check for remote address forwards, if that is header is not + * present in the request then the function will attempt to extract the remote + * address from the express request object. + * @function extractRemoteAddressFromRequest + * @param {Object} req - the express request object + * @returns {String} - the remote address or, if one cannot be found, an empty + * string + */ +function extractRemoteAddressFromRequest(req) { + + if (typeof req.header('x-forwarded-for') !== 'undefined') { + + return req.header('x-forwarded-for'); + } else if (isObject(req.connection)) { + + return req.connection.remoteAddress; + } + + return ''; +} + +/** + * The expressRequestInformationExtractor is a function which is made to extract + * request information from a express request object. This function will do a + * basic check for type and method presence but will not check for the presence + * of properties on the request object. + * @function expressRequestInformationExtractor + * @param {Object} req - the express request object + * @param {Object} res - the express response object + * @returns {RequestInformationContainer} - an object containing the request + * information in a standardized format + */ +function expressRequestInformationExtractor(req, res) { + + var returnObject = new RequestInformationContainer(); + + if (!isObject(req) || !isFunction(req.header) || !isObject(res)) { + + return returnObject; + } + + returnObject.setMethod(req.method) + .setUrl(req.url) + .setUserAgent(req.header('user-agent')) + .setReferrer(req.header('referrer')) + .setStatusCode(res.statusCode) + .setRemoteAddress(extractRemoteAddressFromRequest(req)); + + return returnObject; +} + +module.exports = expressRequestInformationExtractor; diff --git a/handwritten/error-reporting/src/request-extractors/hapi.js b/handwritten/error-reporting/src/request-extractors/hapi.js new file mode 100644 index 00000000000..cc44bf1764d --- /dev/null +++ b/handwritten/error-reporting/src/request-extractors/hapi.js @@ -0,0 +1,103 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// jscs:disable requireEarlyReturn +'use strict'; +var has = require('lodash.has'); +var is = require('is'); +var isObject = is.object; +var isFunction = is.function; +var isArray = is.array; +var RequestInformationContainer = + require('../classes/request-information-container.js'); + +/** + * This function is used to check for a pending status code on the response + * or a set status code on the response.output object property. If neither of + * these properties can be found then -1 will be returned as the output. + * @function attemptToExtractStatusCode + * @param {Object} req - the request information object to extract from + * @returns {Number} - Either an HTTP status code or -1 in absence of an + * extractable status code. + */ +function attemptToExtractStatusCode(req) { + + if (has(req, 'response') && isObject(req.response) && + has(req.response, 'statusCode')) { + + return req.response.statusCode; + } else if (has(req, 'response') && isObject(req.response) && + isObject(req.response.output)) { + + return req.response.output.statusCode; + } + + return 0; +} + +/** + * This function is used to check for the x-forwarded-for header first to + * identify source IP connnections. If this header is not present, then the + * function will attempt to extract the remoteAddress from the request.info + * object property. If neither of these properties can be found then an empty + * string will be returned. + * @function extractRemoteAddressFromRequest + * @param {Object} req - the request information object to extract from + * @returns {String} - Either an empty string if the IP cannot be extracted or + * a string that represents the remote IP address + */ +function extractRemoteAddressFromRequest(req) { + + if (has(req.headers, 'x-forwarded-for')) { + + return req.headers['x-forwarded-for']; + } else if (isObject(req.info)) { + + return req.info.remoteAddress; + } + + return ''; +} + +/** + * This function is used to extract request information from a hapi request + * object. This function will not check for the presence of properties on the + * request object. + * @function hapiRequestInformationExtractor + * @param {Object} req - the hapi request object to extract from + * @returns {RequestInformationContainer} - an object containing the request + * information in a standardized format + */ +function hapiRequestInformationExtractor(req) { + + var returnObject = new RequestInformationContainer(); + + if (!isObject(req) || !isObject(req.headers) || isFunction(req) || + isArray(req)) { + + return returnObject; + } + + returnObject.setMethod(req.method) + .setUrl(req.url) + .setUserAgent(req.headers['user-agent']) + .setReferrer(req.headers.referrer) + .setStatusCode(attemptToExtractStatusCode(req)) + .setRemoteAddress(extractRemoteAddressFromRequest(req)); + + return returnObject; +} + +module.exports = hapiRequestInformationExtractor; diff --git a/handwritten/error-reporting/src/request-extractors/koa.js b/handwritten/error-reporting/src/request-extractors/koa.js new file mode 100644 index 00000000000..5dceb5aeec9 --- /dev/null +++ b/handwritten/error-reporting/src/request-extractors/koa.js @@ -0,0 +1,55 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; +var is = require('is'); +var isObject = is.object; +var isFunction = is.function; +var isArray = is.array; +var RequestInformationContainer = + require('../classes/request-information-container.js'); + +/** + * The koaRequestInformationExtractor attempts to extract information from a Koa + * request/reponse set and marshal it into a RequestInformationContainer + * instance. + * @function koaRequestInformationExtractor + * @param {Object} req - the Koa request object + * @param {Object} res - the Koa response object + * @returns {RequestInformationContainer} - returns a request information + * container instance that may be in its initial state + */ +function koaRequestInformationExtractor(req, res) { + + var returnObject = new RequestInformationContainer(); + + if (!isObject(req) || !isObject(res) || isFunction(req) || isFunction(res) || + isArray(req) || isArray(res) || !isObject(req.headers)) { + + return returnObject; + } + + returnObject.setMethod(req.method) + .setUrl(req.url) + .setUserAgent(req.headers['user-agent']) + .setReferrer(req.headers.referrer) + .setStatusCode(res.status) + .setRemoteAddress(req.ip); + + return returnObject; +} + +module.exports = koaRequestInformationExtractor; diff --git a/handwritten/error-reporting/src/request-extractors/manual.js b/handwritten/error-reporting/src/request-extractors/manual.js new file mode 100644 index 00000000000..706e8a0c88a --- /dev/null +++ b/handwritten/error-reporting/src/request-extractors/manual.js @@ -0,0 +1,85 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +'use strict'; +var has = require('lodash.has'); +var is = require('is'); +var isObject = is.object; +var isArray = is.array; +var isFunction = is.fn; +var RequestInformationContainer = + require('../classes/request-information-container.js'); + +/** + * The manualRequestInformationExtractor is meant to take a standard object + * and extract request information based on the inclusion of several properties. + * This function will check the presence of properties before attempting to + * access them on the object but it will not attempt to check for these + * properties types as this is allocated to the RequestInformationContainer. + * @function manualRequestInformationExtractor + * @param {Object} req - the request information object to extract from + * @param {String} [req.method] - the request method (ex GET, PUT, POST, DELETE) + * @param {String} [req.url] - the request url + * @param {String} [req.userAgent] - the requesters user-agent + * @param {String} [req.referrer] - the requesters referrer + * @param {Number} [req.statusCode] - the status code given in response to the + * request + * @param {String} [req.remoteAddress] - the remote address of the requester + * @returns {RequestInformationContainer} - an object containing the request + * information in a standardized format + */ +function manualRequestInformationExtractor(req) { + + var returnObject = new RequestInformationContainer(); + + if (!isObject(req) || isArray(req) || isFunction(req)) { + + return returnObject; + } + + if (has(req, 'method')) { + + returnObject.setMethod(req.method); + } + + if (has(req, 'url')) { + + returnObject.setUrl(req.url); + } + + if (has(req, 'userAgent')) { + + returnObject.setUserAgent(req.userAgent); + } + + if (has(req, 'referrer')) { + + returnObject.setReferrer(req.referrer); + } + + if (has(req, 'statusCode')) { + + returnObject.setStatusCode(req.statusCode); + } + + if (has(req, 'remoteAddress')) { + + returnObject.setRemoteAddress(req.remoteAddress); + } + + return returnObject; +} + +module.exports = manualRequestInformationExtractor; diff --git a/handwritten/error-reporting/system-test/testAuthClient.js b/handwritten/error-reporting/system-test/testAuthClient.js new file mode 100644 index 00000000000..c0b02ab1ba4 --- /dev/null +++ b/handwritten/error-reporting/system-test/testAuthClient.js @@ -0,0 +1,349 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; +var assert = require('assert'); +var nock = require('nock'); +var RequestHandler = require('../src/google-apis/auth-client.js'); +var ErrorMessage = require('../src/classes/error-message.js'); +var Configuration = require('../test/fixtures/configuration.js'); +var createLogger = require('../src/logger.js'); +var is = require('is'); +var isObject = is.object; +var isString = is.string; +var isEmpty = is.empty; +var forEach = require('lodash.foreach'); +var assign = require('lodash.assign'); +const ERR_TOKEN = '_@google_STACKDRIVER_INTEGRATION_TEST_ERROR__'; + + +describe('Behvaiour acceptance testing', function() { + before(function() { + // Before starting the suite make sure we have the proper resources + if (!isString(process.env.GCLOUD_PROJECT)) { + throw new Error( + 'The gcloud project id (GCLOUD_PROJECT) was not set in the env'); + } else if (!isString(process.env.STUBBED_API_KEY)) { + throw new Error( + 'The api key (STUBBED_API_KEY) was not set as an env variable'); + } else if (!isString(process.env.STUBBED_PROJECT_NUM)) { + throw new Error( + 'The project number (STUBBED_PROJECT_NUM) was not set in the env'); + } else if (process.env.NODE_ENV !== 'production') { + throw new Error( + 'The NODE_ENV is not set to production as an env variable. Please ' + + 'set NODE_ENV to production'); + } + // In case we are running after unit mocks which were not destroyed properly + nock.cleanAll(); + }); + describe('Request/Response lifecycle mocking', function() { + var sampleError = new Error(ERR_TOKEN); + var errorMessage = new ErrorMessage().setMessage(sampleError); + var fakeService, client, logger; + beforeEach(function() { + fakeService = nock( + 'https://clouderrorreporting.googleapis.com/v1beta1/projects/' + + process.env.GCLOUD_PROJECT + ).persist().post('/events:report'); + logger = createLogger({logLevel: 5}); + client = new RequestHandler( + new Configuration({ignoreEnvironmentCheck: true}, logger), logger); + }); + afterEach(function() { + nock.cleanAll(); + }); + describe('Receiving non-retryable errors', function() { + it('Should fail', function(done) { + this.timeout(5000); + client.sendError({}, function(err, response, body) { + assert(err instanceof Error); + assert.strictEqual(err.message.toLowerCase(), + 'message cannot be empty.'); + assert(isObject(response)); + assert.strictEqual(response.statusCode, 400); + done(); + }); + }); + }); + describe('Receiving retryable errors', function() { + it('Should retry', function(done) { + this.timeout(25000); + var tries = 0; + var intendedTries = 4; + fakeService.reply(429, function() { + tries += 1; + console.log('Mock Server Received Request:', tries + '/' + + intendedTries); + return {error: 'Please try again later'}; + }); + client.sendError(errorMessage, function(err, response, body) { + assert.strictEqual(tries, intendedTries); + done(); + }); + }); + }); + describe('Using an API key', function() { + it('Should provide the key as a query string on outgoing requests', + function(done) { + var key = process.env.STUBBED_API_KEY; + var client = new RequestHandler(new Configuration( + {key: key, ignoreEnvironmentCheck: true}, + createLogger({logLevel: 5}))); + fakeService.query({key: key}).reply(200, function(uri) { + assert(uri.indexOf('key=' + key) > -1); + return {}; + }); + client.sendError(errorMessage, function() { + done(); + }); + } + ); + }); + describe('Callback-less invocation', function() { + it('Should still execute the request', function(done) { + fakeService.reply(200, function() { + done(); + }); + client.sendError(errorMessage); + }); + }); + }); + describe('System-live integration testing', function() { + var sampleError = new Error(ERR_TOKEN); + var errorMessage = new ErrorMessage().setMessage(sampleError.stack); + var oldEnv = { + GCLOUD_PROJECT: process.env.GCLOUD_PROJECT, + STUBBED_PROJECT_NUM: process.env.STUBBED_PROJECT_NUM, + NODE_ENV: process.env.NODE_ENV + }; + function sterilizeEnv() { + forEach(oldEnv, function(val, key) { + delete process.env[key]; + }); + } + function restoreEnv() { + assign(process.env, oldEnv); + } + describe('Client creation', function() { + describe('Using only project id', function() { + describe('As a runtime argument', function() { + var cfg, logger; + before(function() { + sterilizeEnv(); + logger = createLogger({logLevel: 5}); + cfg = new Configuration({projectId: oldEnv.GCLOUD_PROJECT, + ignoreEnvironmentCheck: true}, logger); + }); + after(restoreEnv); + it('Should not throw on initialization', function(done) { + this.timeout(10000); + assert.doesNotThrow(function() { + (new RequestHandler(cfg, logger)).sendError(errorMessage, + function(err, response, body) { + assert.strictEqual(err, null); + assert.strictEqual(response.statusCode, 200); + assert(isObject(body) && isEmpty(body)); + done(); + } + ); + }); + }); + }); + describe('As an env variable', function() { + var cfg, logger; + before(function() { + sterilizeEnv(); + process.env.GCLOUD_PROJECT = oldEnv.GCLOUD_PROJECT; + logger = createLogger({logLevel: 5}); + cfg = new Configuration({ignoreEnvironmentCheck: true}, logger); + }); + after(restoreEnv); + it('Should not throw on initialization', function(done) { + this.timeout(10000); + assert.doesNotThrow(function() { + (new RequestHandler(cfg, logger)).sendError(errorMessage, + function(err, response, body) { + assert.strictEqual(err, null); + assert.strictEqual(response.statusCode, 200); + assert(isObject(body) && isEmpty(body)); + done(); + } + ); + }); + }); + }); + }); + describe('Using only project number', function() { + describe('As a runtime argument', function() { + var cfg, logger; + before(function() { + sterilizeEnv(); + logger = createLogger({logLevel: 5}); + cfg = new Configuration({ + projectId: parseInt(oldEnv.STUBBED_PROJECT_NUM), + ignoreEnvironmentCheck: true + }, logger); + }); + after(restoreEnv); + it('Should not throw on initialization', function(done) { + this.timeout(10000); + assert.doesNotThrow(function() { + (new RequestHandler(cfg, logger)).sendError(errorMessage, + function(err, response, body) { + assert.strictEqual(err, null); + assert.strictEqual(response.statusCode, 200); + assert(isObject(body) && isEmpty(body)); + done(); + } + ); + }); + }); + }); + describe('As an env variable', function() { + var cfg, logger; + before(function() { + sterilizeEnv(); + process.env.GCLOUD_PROJECT = oldEnv.STUBBED_PROJECT_NUM; + logger = createLogger({logLevel: 5}); + cfg = new Configuration({ignoreEnvironmentCheck: true}, logger); + }); + after(restoreEnv); + it('Should not throw on initialization', function(done) { + this.timeout(10000); + assert.doesNotThrow(function() { + (new RequestHandler(cfg, logger)).sendError(errorMessage, + function(err, response, body) { + assert.strictEqual(err, null); + assert.strictEqual(response.statusCode, 200); + assert(isObject(body) && isEmpty(body)); + done(); + } + ); + }); + }); + }); + }); + }); + describe('Error behvaiour', function() { + describe('With a configuration to not report errors', function() { + var ERROR_STRING = [ + 'Stackdriver error reporting client has not been configured to send', + 'errors, please check the NODE_ENV environment variable and make', + 'sure it is set to "production" or set the ignoreEnvironmentCheck', + 'property to true in the runtime configuration object' + ].join(' '); + var logger, client; + before(function() { + delete process.env.NODE_ENV; + logger = createLogger({logLevel: 5}); + client = new RequestHandler(new Configuration(undefined, logger), + logger); + }); + after(function() { + process.env.NODE_ENV = oldEnv.NODE_ENV; + }); + it('Should callback with an error', function(done) { + client.sendError({}, function(err, response, body) { + assert(err instanceof Error); + assert.strictEqual(err.message, ERROR_STRING); + assert.strictEqual(response, null); + done(); + }); + }); + }); + // describe('An invalid env configuration', function() { + // var ERROR_STRING = [ + // 'Unable to find the project Id for communication with the', + // 'Stackdriver Error Reporting service. This app will be unable to', + // 'send errors to the reporting service unless a valid project Id', + // 'is supplied via runtime configuration or the GCLOUD_PROJECT', + // 'environmental variable.' + // ].join(' '); + // var logger, client; + // before(function() { + // delete process.env.GCLOUD_PROJECT; + // logger = createLogger({logLevel: 5}); + // client = new RequestHandler(new Configuration( + // {ignoreEnvironmentCheck: true}, logger), logger); + // }); + // after(function() { + // process.env.GCLOUD_PROJECT = oldEnv.GCLOUD_PROJECT; + // }); + // it('Should callback with an error', function(done) { + // client.sendError(errorMessage, function(err, response, body) { + // assert(err instanceof Error); + // assert.strictEqual(err.message, ERROR_STRING); + // assert.strictEqual(response, null); + // done(); + // }); + // }); + // }); + }); + describe('Success behaviour', function() { + var er = new Error(ERR_TOKEN); + var em = new ErrorMessage().setMessage(er.stack); + describe('Given a valid project id', function() { + var logger, client, cfg; + before(function() { + sterilizeEnv(); + logger = createLogger({logLevel: 5}); + cfg = new Configuration({ + projectId: oldEnv.GCLOUD_PROJECT, + ignoreEnvironmentCheck: true + }, logger); + client = new RequestHandler(cfg, logger); + }); + after(restoreEnv); + it('Should succeed in its request', function(done) { + client.sendError(em, function(err, response, body) { + assert.strictEqual(err, null); + assert(isObject(body)); + assert(isEmpty(body)); + assert.strictEqual(response.statusCode, 200); + done(); + }); + }); + }); + describe('Given a valid project number', function() { + var logger, client, cfg; + before(function() { + forEach(oldEnv, function(val, key) { + delete process.env[key]; + }); + logger = createLogger({logLevel: 5}); + cfg = new Configuration({ + projectId: parseInt(oldEnv.STUBBED_PROJECT_NUM), + ignoreEnvironmentCheck: true + }, logger); + client = new RequestHandler(cfg, logger); + }); + after(function() { + assign(process.env, oldEnv); + }); + it('Should succeed in its request', function(done) { + client.sendError(em, function(err, response, body) { + assert.strictEqual(err, null); + assert(isObject(body)); + assert(isEmpty(body)); + assert.strictEqual(response.statusCode, 200); + done(); + }); + }); + }); + }); + }); +}); diff --git a/handwritten/error-reporting/test/fixtures/configuration.js b/handwritten/error-reporting/test/fixtures/configuration.js new file mode 100644 index 00000000000..2e0834e6e61 --- /dev/null +++ b/handwritten/error-reporting/test/fixtures/configuration.js @@ -0,0 +1,27 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; + +var Configuration = require('../../src/configuration.js'); + +var FakeConfiguration = function(config) { + return Configuration.call(this, config, { warn: function() {} }); +}; + +FakeConfiguration.prototype = Object.create(Configuration.prototype); + +module.exports = FakeConfiguration; diff --git a/handwritten/error-reporting/test/fixtures/gcloud-credentials.json b/handwritten/error-reporting/test/fixtures/gcloud-credentials.json new file mode 100644 index 00000000000..3499fcc9c3d --- /dev/null +++ b/handwritten/error-reporting/test/fixtures/gcloud-credentials.json @@ -0,0 +1,6 @@ +{ + "client_id": "x", + "client_secret": "y", + "refresh_token": "z", + "type": "authorized_user" +} diff --git a/handwritten/error-reporting/test/fixtures/uncaughtExitBehaviour.js b/handwritten/error-reporting/test/fixtures/uncaughtExitBehaviour.js new file mode 100644 index 00000000000..7f4b8728ad0 --- /dev/null +++ b/handwritten/error-reporting/test/fixtures/uncaughtExitBehaviour.js @@ -0,0 +1,93 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; +var uncaughtSetup = require('../../src/interfaces/uncaught.js'); +var nock = require('nock'); +var createLogger = require('../../src/logger.js'); +var isString = require('is').string; +var Configuration = require('../fixtures/configuration.js'); +var RequestHandler = require('../../src/google-apis/auth-client.js'); +var originalHandlers = process.listeners('uncaughtException'); +var UNCAUGHT = 'uncaughtException'; +var client; + +function reattachOriginalListeners() { + for (var i = 0; i < originalHandlers.length; i++) { + process.on(UNCAUGHT, originalHandlers[i]); + } +} +var env = { + NODE_ENV: process.env.NODE_ENV +}; +function setEnv() { + process.env.NODE_ENV = 'production'; +} +function restoreEnv() { + process.env.NODE_ENV = env.NODE_ENV; +} + +describe('Uncaught Exception exit behaviour', function() { + before(function() { + process.removeAllListeners(UNCAUGHT); + if (!isString(process.env.GCLOUD_PROJECT)) { + // The gcloud project id (GCLOUD_PROJECT) was not set as an env variable + this.skip(); + process.exit(1); + } else if (!isString(process.env.GOOGLE_APPLICATION_CREDENTIALS)) { + // The app credentials (GOOGLE_APPLICATION_CREDENTIALS) + // was not set as an env variable + this.skip(); + process.exit(1); + } + setEnv(); + }); + after(function() { + nock.cleanAll(); + nock.enableNetConnect(); + reattachOriginalListeners(); + restoreEnv(); + }); + it('Should attempt to report the uncaught exception', function(done) { + var id = 'xyz'; + nock( + 'http://metadata.google.internal/computeMetadata/v1/project' + ).get('/project-id').times(1).reply(200, id); + nock('https://accounts.google.com:443/o/oauth2') + .post('/token').query(function() {return true;}).reply(200, { + refresh_token: 'hello', + access_token: 'goodbye', + expiry_date: new Date(9999, 1, 1) + }); + this.timeout(2000); + nock( + 'https://clouderrorreporting.googleapis.com/v1beta1/projects/' + id + ).post('/events:report').once().reply(200, function() { + done(); + return {success: true}; + }); + var cfg = new Configuration( + {reportUncaughtExceptions: true, projectId: 'xyz'}); + cfg.lacksCredentials = function() { + return false; + }; + client = new RequestHandler(cfg, createLogger({logLevel: 4})); + uncaughtSetup(client, cfg); + setTimeout(function() { + throw new Error('This error was supposed to be thrown'); + }, 10); + }); +}); diff --git a/handwritten/error-reporting/test/test-servers/express_scaffold_server.js b/handwritten/error-reporting/test/test-servers/express_scaffold_server.js new file mode 100644 index 00000000000..f9a6efeca79 --- /dev/null +++ b/handwritten/error-reporting/test/test-servers/express_scaffold_server.js @@ -0,0 +1,134 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the 'License'); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an 'AS IS' BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// jscs:disable requireEarlyReturn + +'use strict'; + +var WARNING_HEADER = '\n!! -WARNING-'; +var EXCLAMATION_LN = '\n!!'; +var has = require('lodash.has'); +var express = require('express'); +var app = express(); +var errorHandler = require('../../src/index.js')({ + onUncaughtException: 'report', + key: process.env.STUBBED_API_KEY, + projectId: process.env.STUBBED_PROJECT_NUM +}); +var bodyParser = require('body-parser'); + +app.use(bodyParser.json()); + +app.post('/testErrorHandling', function(req, res, next) { + + + if (has(req.body, 'test') && req.body.test !== true) { + + return next(new Error('Error on Express Regular Error POST Route')); + } else { + + res.send('Success'); + res.end(); + } +} +); + +app.get( + '/customError', function(req, res, next) { + + errorHandler.report( + 'Error on Express Custom Error GET Route', function(err, res) { + + if (err) { + + console.log(WARNING_HEADER); + console.log('Error in sending custom get error to api'); + console.log(err); + console.log(EXCLAMATION_LN); + } else { + + console.log(EXCLAMATION_LN); + console.log('Successfully sent custom get error to api'); + console.log(EXCLAMATION_LN); + } + } + ); + + res.send('Success'); + res.end(); + + next(); + } +); + +app.get( + '/getError', function(req, res, next) { + + return next(new Error('Error on Express Regular Error GET Route')); + } +); + +app.use(errorHandler.express); + +function throwUncaughtError() { + console.log('Throwing an uncaught error..'); + throw new Error('This is an uncaught error'); +} + +function reportManualError() { + console.log('Reporting a manual error..'); + errorHandler.report( + new Error('This is a manually reported error'), null, null, + function(err, res) { + + if (err) { + + console.log(WARNING_HEADER); + console.log('Got an error in sending error information to the API'); + console.log(err); + console.log(EXCLAMATION_LN); + } else { + + console.log(EXCLAMATION_LN); + console.log('Successfully sent error information to the API'); + console.log(EXCLAMATION_LN); + } + + if (process.env.THROW_ON_STARTUP) { + throwUncaughtError(); + } + } + ); +} +console.log('reporting a manual error first'); +errorHandler.report( + new Error('This is a test'), + (err, res) => { + console.log('reported first manual error'); + if (err) { + console.log('Error was unable to be reported', err); + } else { + console.log('Error reported!'); + } + } +); + +app.listen( + 3000, + function() { + console.log('Scaffold Server has been started on port 3000'); + reportManualError(); + } +); diff --git a/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.js b/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.js new file mode 100644 index 00000000000..e16e50d8220 --- /dev/null +++ b/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.js @@ -0,0 +1,55 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the 'License'); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an 'AS IS' BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +'use strict'; + +var hapi = require('hapi'); +var errorHandler = require('../../src/index.js')(); + +var server = new hapi.Server(); +server.connection({ port: 3000 }); + +server.start( + (err) => { + if (err) { + throw err; + } + console.log( + 'Server running at', server.info.uri); + } +); + +server.route({ + method: 'GET', path: '/get', handler: function(request, reply) { + console.log('Got a GET'); + throw new Error('an error'); + } +}); + +server.route({ + method: 'POST', path: '/post', handler: function(request, reply) { + console.log('Got a POST', request.payload); + throw new Error('An error on the hapi post route'); + } +}); + + +server.register( + { register: errorHandler.hapi }, (err) => { + if (err) { + console.error('There was an error in registering the plugin', err); + } + } +); diff --git a/handwritten/error-reporting/test/test-servers/koa_scaffold_server.js b/handwritten/error-reporting/test/test-servers/koa_scaffold_server.js new file mode 100644 index 00000000000..6e9bf3aceb8 --- /dev/null +++ b/handwritten/error-reporting/test/test-servers/koa_scaffold_server.js @@ -0,0 +1,57 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// jscs doesn't understand koa.. +// jscs:disable +'use strict'; + +var errorHandler = require('../../src/index.js')({ + onUncaughtException: 'report' +}); +var koa = require('koa'); +var app = koa(); + +app.use(errorHandler.koa); + +app.use(function *(next) { + //This will set status and message + this.throw('Error Message', 500); + yield next; +}); + + +app.use(function *(next){ + var start = new Date(); + yield next; + var ms = new Date() - start; + this.set('X-Response-Time', ms + 'ms'); +}); + +// logger + +app.use(function *(next){ + var start = new Date(); + yield next; + var ms = new Date() - start; + console.log('%s %s - %s', this.method, this.url, ms); +}); + +// response +app.use(function *(next){ + this.body = 'Hello World'; + yield next; +}); + +app.listen(3000); diff --git a/handwritten/error-reporting/test/test-servers/manual_scaffold_server.js b/handwritten/error-reporting/test/test-servers/manual_scaffold_server.js new file mode 100644 index 00000000000..1831bc18d22 --- /dev/null +++ b/handwritten/error-reporting/test/test-servers/manual_scaffold_server.js @@ -0,0 +1,25 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +'use strict'; + +const errors = require('../../src/index.js')(); +errors.report('Sample test string', (err, response, body) => { + console.log( + 'Callback from report:\n', + '\tError: ', err, '\n', + '\tResponse Body:' + ); +}); \ No newline at end of file diff --git a/handwritten/error-reporting/test/test-servers/restify_scaffold_server.js b/handwritten/error-reporting/test/test-servers/restify_scaffold_server.js new file mode 100644 index 00000000000..8b8d4655a73 --- /dev/null +++ b/handwritten/error-reporting/test/test-servers/restify_scaffold_server.js @@ -0,0 +1,33 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +'use strict'; + +function respond(req, res, next) { + next(new Error('this is a restify error')); +} + +var restify = require('restify'); +var errorHandler = require('../../src/index.js')(); + +var server = restify.createServer(); + +server.use(errorHandler.restify(server)); +server.get('/hello/:name', respond); +server.head('/hello/:name', respond); + +server.listen(8080, function() { + console.log('%s listening at %s', server.name, server.url); +}); diff --git a/handwritten/error-reporting/test/unit/testConfiguration.js b/handwritten/error-reporting/test/unit/testConfiguration.js new file mode 100644 index 00000000000..13529cfca04 --- /dev/null +++ b/handwritten/error-reporting/test/unit/testConfiguration.js @@ -0,0 +1,314 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; +var assert = require('assert'); +var isNumber = require('is').number; +var merge = require('lodash.merge'); +var Configuration = require('../fixtures/configuration.js'); +var version = require('../../package.json').version; +var Fuzzer = require('../../utils/fuzzer.js'); +var level = process.env.GCLOUD_ERRORS_LOGLEVEL; +var logger = require('../../src/logger.js')({ + logLevel: isNumber(level) ? level : 4 +}); +var nock = require('nock'); + +var METADATA_URL = 'http://metadata.google.internal/computeMetadata/v1/project'; + +process.removeAllListeners('uncaughtException'); +var env = { + NODE_ENV: process.env.NODE_ENV, + GCLOUD_PROJECT: process.env.GCLOUD_PROJECT, + GAE_MODULE_NAME: process.env.GAE_MODULE_NAME, + GAE_MODULE_VERSION: process.env.GAE_MODULE_VERSION +}; +function sterilizeEnv() { + delete process.env.NODE_ENV; + delete process.env.GCLOUD_PROJECT; + delete process.env.GAE_MODULE_NAME; + delete process.env.GAE_MODULE_VERSION; +} +function restoreEnv() { + process.env.NODE_ENV = env.NODE_ENV; + process.env.GCLOUD_PROJECT = env.GCLOUD_PROJECT; + process.env.GAE_MODULE_NAME = env.GAE_MODULE_NAME; + process.env.GAE_MODULE_VERSION = env.GAE_MODULE_VERSION; +} +function createDeadMetadataService() { + return nock(METADATA_URL).get('/project-id').times(1).reply(500); +} + +describe('Configuration class', function() { + before(function() {sterilizeEnv();}); + after(function() {restoreEnv();}); + describe( + 'Initialization', + function() { + var f = new Fuzzer(); + var stubConfig = {test: true}; + describe('fuzzing the constructor', function() { + it('Should return default values', function() { + var c; + f.fuzzFunctionForTypes( + function(givenConfigFuzz) { + c = new Configuration(givenConfigFuzz, logger); + assert.deepEqual(c._givenConfiguration, {}); + }, + ['object'] + ); + }); + }); + describe('valid config and default values', function() { + var c; + before(function() {process.env.NODE_ENV = 'development';}); + after(function() {sterilizeEnv();}); + it('Should not throw with a valid configuration', function() { + assert.doesNotThrow(function() { + c = new Configuration(stubConfig, logger); + }); + }); + it('Should have a property reflecting the config argument', function() { + assert.deepEqual(c._givenConfiguration, stubConfig); + }); + it('Should reportUncaughtExceptions', function() { + assert.strictEqual(c.getReportUncaughtExceptions(), true); + }); + it('Should not reportUncaughtExceptions', function() { + assert.strictEqual(c.getShouldReportErrorsToAPI(), false); + }); + it('Should not have a project id', function() { + assert.strictEqual(c._projectId, null); + }); + it('Should not have a key', function() { + assert.strictEqual(c.getKey(), null); + }); + it('Should have a default service context', function() { + assert.deepEqual(c.getServiceContext(), + {service: 'node', version: undefined}); + }); + it('Should have a version corresponding to package.json', function() { + assert.strictEqual(c.getVersion(), version); + }); + }); + describe('with ignoreEnvironmentCheck', function() { + var conf = merge({}, stubConfig, {ignoreEnvironmentCheck: true}); + var c = new Configuration(conf, logger); + it('Should reportErrorsToAPI', function() { + assert.strictEqual(c.getShouldReportErrorsToAPI(), true); + }); + }); + describe('without ignoreEnvironmentCheck', function() { + describe('report behaviour with production env', function() { + var c; + before(function() { + sterilizeEnv(); + process.env.NODE_ENV = 'production'; + c = new Configuration(undefined, logger); + }); + after(function() {sterilizeEnv();}); + it('Should reportErrorsToAPI', function() { + assert.strictEqual(c.getShouldReportErrorsToAPI(), true); + }); + }); + describe('exception behaviour', function() { + it('Should throw', function() { + assert.throws(function() { + new Configuration({reportUncaughtExceptions: 1}, logger); + }); + }); + it('Should throw if invalid type for key', function() { + assert.throws(function() { + new Configuration({key: null}, logger); + }); + }); + it('Should throw if invalid for ignoreEnvironmentCheck', function() { + assert.throws(function() { + new Configuration({ignoreEnvironmentCheck: null}, logger); + }); + }); + it('Should throw if invalid for serviceContext.service', function() { + assert.throws(function() { + new Configuration({serviceContext: {service: false}}, logger); + }); + }); + it('Should throw if invalid for serviceContext.version', function() { + assert.throws(function() { + new Configuration({serviceContext: {version: true}}, logger); + }); + }); + it('Should not throw given an empty object for serviceContext', + function() { + assert.doesNotThrow(function() { + new Configuration({serviceContext: {}}, logger); + }); + } + ); + }); + }); + } + ); + describe('Configuration resource aquisition', function() { + before(function() {sterilizeEnv();}); + describe('project id from configuration instance', function() { + var pi = 'test'; + var c; + before(function() { + c = new Configuration({projectId: pi}, logger); + }); + after(function() {nock.cleanAll();}); + it('Should return the project id', function() { + assert.strictEqual(c.getProjectId(), pi); + }); + }); + describe('project number from configuration instance', function() { + var pn = 1234; + var serve, c; + before(function() { + sterilizeEnv(); + c = new Configuration({projectId: pn}, logger); + }); + after(function() {nock.cleanAll(); sterilizeEnv();}); + it('Should return the project number', function() { + assert.strictEqual(c.getProjectId(), pn.toString()); + }); + }); + }); + describe('Exception behaviour', function() { + describe('While lacking a project id', function() { + var serve, c; + before(function() { + sterilizeEnv(); + serve = createDeadMetadataService(); + c = new Configuration(undefined, logger); + }); + after(function() { + nock.cleanAll(); + sterilizeEnv(); + }); + it('Should return null', function() { + assert.strictEqual(c.getProjectId(), null); + }); + }); + describe('Invalid type for projectId in runtime config', function() { + var serve, c; + before(function() { + sterilizeEnv(); + serve = createDeadMetadataService(); + c = new Configuration({projectId: null}, logger); + }); + after(function() { + nock.cleanAll(); + sterilizeEnv(); + }); + it('Should return null', function() { + assert.strictEqual(c.getProjectId(), null); + }); + }); + }); + describe('Resource aquisition', function() { + after(function() { + /* + * !! IMPORTANT !! + * THE restoreEnv FUNCTION SHOULD BE CALLED LAST AS THIS TEST FILE EXITS + * AND SHOULD THEREFORE BE THE LAST THING TO EXECUTE FROM THIS FILE. + * !! IMPORTANT !! + */ + restoreEnv(); + }); + describe('via env', function() { + before(function() {sterilizeEnv();}); + afterEach(function() {sterilizeEnv();}); + describe('no longer tests env itself', function() { + var c; + var projectId = 'test-xyz'; + before(function() { + process.env.GCLOUD_PROJECT = projectId; + c = new Configuration(undefined, logger); + }); + it('Should assign', function() { + assert.strictEqual(c.getProjectId(), null); + }); + }); + describe('serviceContext', function() { + var c; + var projectId = 'test-abc'; + var serviceContext = { + service: 'test', + version: '1.x' + }; + before(function() { + process.env.GCLOUD_PROJECT = projectId; + process.env.GAE_MODULE_NAME = serviceContext.service; + process.env.GAE_MODULE_VERSION = serviceContext.version; + c = new Configuration(undefined, logger); + }); + it('Should assign', function() { + assert.deepEqual(c.getServiceContext(), serviceContext); + }); + }); + }); + describe('via runtime configuration', function() { + before(function() {sterilizeEnv();}); + describe('serviceContext', function() { + var c; + var projectId = 'xyz123'; + var serviceContext = { + service: 'evaluation', + version: '2.x' + }; + before(function() { + c = new Configuration({ + projectId: projectId, + serviceContext: serviceContext + }); + }); + it('Should assign', function() { + assert.deepEqual(c.getServiceContext(), serviceContext); + }); + }); + describe('api key', function() { + var c; + var projectId = '987abc'; + var key = '1337-api-key'; + before(function() { + c = new Configuration({ + key: key, + projectId: projectId + }, logger); + }); + it('Should assign', function() { + assert.strictEqual(c.getKey(), key); + }); + }); + describe('reportUncaughtExceptions', function() { + var c; + var projectId = '123-xyz'; + var reportUncaughtExceptions = false; + before(function() { + c = new Configuration({ + projectId: projectId, + reportUncaughtExceptions: reportUncaughtExceptions + }); + }); + it('Should assign', function() { + assert.strictEqual(c.getReportUncaughtExceptions(), + reportUncaughtExceptions); + }); + }); + }); + }); +}); diff --git a/handwritten/error-reporting/test/unit/testCustomStackTrace.js b/handwritten/error-reporting/test/unit/testCustomStackTrace.js new file mode 100644 index 00000000000..fe1f9ad5e64 --- /dev/null +++ b/handwritten/error-reporting/test/unit/testCustomStackTrace.js @@ -0,0 +1,77 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the 'License'); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an 'AS IS' BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +'use strict'; + +var assert = require('assert'); +var CustomStackTrace = require('../../src/classes/custom-stack-trace.js'); + +describe('Fuzzing the CustomStackTrace class', function() { + var testFunction = function testFunction() { + return ''; + }; + var cs; + beforeEach(function() { cs = new CustomStackTrace(); }); + it('Should accept value for file path', function() { + cs.setFilePath('test'); + assert( + cs.filePath === 'test', + 'Setting a valid string on the CustomStackTrace.filePath instance ' + + 'should result in assignment' + ); + }); + it('Should reject invalid type for file path', function() { + cs.setFilePath(null); + assert( + cs.filePath === '', + 'Setting an invalid type on the CustomStackTrace.filePath instance ' + + 'should result in default value of an empty string' + ); + }); + it('Should accept value for line number', function() { + cs.setLineNumber(10); + assert( + cs.lineNumber === 10, + 'Setting a valid number on the CustomStackTrace.lineNumber instance ' + + 'should result in assignment' + ); + }); + it('Should reject invalid type for line number', function() { + cs.setLineNumber('10'); + assert( + cs.lineNumber === 0, + 'Setting an invalid type on the CustomStackTrace.lineNumber instance ' + + 'should result in default value of number 0' + ); + }); + it('Should accept value for call list', function() { + cs.setStringifyStructuredCallList(testFunction); + assert.strictEqual( + cs.stringifyStucturedCallList, + testFunction, + 'Setting a valid function on the CustomStackTrace. ' + + 'setStringifyStructuredCallList should result in assignment' + ); + }); + it('Should reject incalid value for call list', function() { + cs.setStringifyStructuredCallList(null); + assert( + ((typeof cs.setStringifyStructuredCallList) === 'function'), + 'Setting an invalid setStringifyStructuredCallList on the ' + + 'CustomStackTrace. setStringifyStructuredCallList should result in a ' + + 'default value of a function' + ); + }); +}); diff --git a/handwritten/error-reporting/test/unit/testErrorMessage.js b/handwritten/error-reporting/test/unit/testErrorMessage.js new file mode 100644 index 00000000000..043d91b1f7b --- /dev/null +++ b/handwritten/error-reporting/test/unit/testErrorMessage.js @@ -0,0 +1,682 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the 'License'); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an 'AS IS' BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// jscs:disable +// jshint ignore: start + +var assert = require('assert'); +var ErrorMessage = require('../../src/classes/error-message.js'); + +describe('Instantiating a new ErrorMessage', function() { + var em; + beforeEach(function() {em = new ErrorMessage();}); + + it('Should have a default service context', function() { + assert.deepEqual( + em.serviceContext, + { service: 'node', version: undefined } + ); + }); + it('Should have a default message', function() { + assert.strictEqual(em.message, ''); + }); + it('Should have a default http context', function() { + assert.deepEqual( + em.context.httpRequest, + { + method: '', + url: '', + userAgent: '', + referrer: '', + responseStatusCode: 0, + remoteIp: '' + } + ); + }); + it('Should have a default reportLocation', function() { + assert.deepEqual( + em.context.reportLocation, + { + filePath: '', + lineNumber: 0, + functionName: '' + } + ); + }) +}); + +describe('Calling against setEventTimeToNow', function() { + var em; + beforeEach(function() {em = new ErrorMessage()}); + it('Should set the eventTime property', function() { + em.setEventTimeToNow(); + assert((typeof em.eventTime) === 'string'); + }); +}); + +describe('Fuzzing against setServiceContext', function() { + var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; + var DEFAULT_TEST_VALUE = 'DEFAULT'; + var DEFAULT_VERSION_VALUE = undefined; + var DEFAULT_SERVICE_VALUE = 'node'; + var em; + beforeEach(function() {em = new ErrorMessage()}); + + it('Should set the value for service context', function() { + em.setServiceContext(AFFIRMATIVE_TEST_VALUE, AFFIRMATIVE_TEST_VALUE); + assert.deepEqual( + em.serviceContext + , { + service: AFFIRMATIVE_TEST_VALUE + , version: AFFIRMATIVE_TEST_VALUE + } + , [ + 'In the affirmative case the value should be settable to a valid string' + , 'and by setting this value this should mutate the instance' + ].join(' ') + ); + }); + it('Should set the default values', function() { + em.setServiceContext(DEFAULT_TEST_VALUE, DEFAULT_TEST_VALUE); + assert.deepEqual( + em.serviceContext + , { + service: DEFAULT_TEST_VALUE + , version: DEFAULT_TEST_VALUE + } + , [ + 'In resetting to default valid values the instance should reflect the' + , 'value update' + ].join(' ') + ); + }); + it('Should still set version with affirmative value', function() { + em.setServiceContext(null, AFFIRMATIVE_TEST_VALUE); + assert.deepEqual( + em.serviceContext + , { + service: DEFAULT_SERVICE_VALUE + , version: AFFIRMATIVE_TEST_VALUE + } + , [ + 'Providing only a valid value to the second argument of' + , 'setServiceContext should set the service property as an empty string' + , 'but set the version property to the affirmative value.' + ].join(' ') + ); + }); + it('Should still set service with affirmative value', function() { + em.setServiceContext(AFFIRMATIVE_TEST_VALUE, null); + assert.deepEqual( + em.serviceContext + , { + service: AFFIRMATIVE_TEST_VALUE + , version: DEFAULT_VERSION_VALUE + } + , [ + 'Providing only a valid value to the first argument of' + , 'setServiceContext should set the version property as an empty string' + , 'but set the service property to the affirmative value.' + ].join(' ') + ); + }); + it('Should set default values on both', function() { + em.setServiceContext(null, null); + assert.deepEqual( + em.serviceContext + , { + service: DEFAULT_SERVICE_VALUE + , version: DEFAULT_VERSION_VALUE + } + , [ + 'Providing null as the value to both arguments should set both' + , 'properties as empty strings.' + ].join(' ') + ); + }); + it('Should set default values on both', function() { + em.setServiceContext(2, 1.3); + assert.deepEqual( + em.serviceContext + , { + service: DEFAULT_SERVICE_VALUE + , version: DEFAULT_VERSION_VALUE + } + , [ + 'Providing numbers as the value to both arguments should set both' + , 'properties as empty strings.' + ].join(' ') + ); + }); + it('Should set as default', function() { + em.setServiceContext({ test: 'true' }, []); + assert.deepEqual( + em.serviceContext + , { + service: DEFAULT_SERVICE_VALUE + , version: DEFAULT_VERSION_VALUE + } + , [ + 'Providing arrays or objects as the value to both arguments' + , 'should set both properties as empty strings.' + ].join(' ') + ); + }); + it('Should set as default', function() { + em.setServiceContext(); + assert.deepEqual( + em.serviceContext + , { + service: DEFAULT_SERVICE_VALUE + , version: DEFAULT_VERSION_VALUE + } + , 'Providing no arguments should set both properties as empty strings' + ); + }) +}); + +describe( + 'Fuzzing against setMessage', + function() { + var em; + beforeEach(function() {em = new ErrorMessage()}); + var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; + var NEGATIVE_TEST_VALUE = ''; + + it('Should set the message', function() { + em.setMessage(AFFIRMATIVE_TEST_VALUE); + assert( + em.message === AFFIRMATIVE_TEST_VALUE + , [ + 'In the affirmative case the value should be settable to a valid string' + , 'and by setting this value this should mutate the instance' + ].join(' ') + ); + }); + it('Should default', function() { + em.setMessage(); + assert( + em.message === NEGATIVE_TEST_VALUE + , [ + 'By providing no argument (undefined) to setMessage the property' + , 'message should be set to an empty string on the instance' + ].join(' ') + ); + }); + } +); + +describe( + 'Fuzzing against setHttpMethod', + function() { + var em; + var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; + var NEGATIVE_TEST_VALUE = ''; + beforeEach(function() {em = new ErrorMessage()}); + it('Should set the method', function() { + em.setHttpMethod(AFFIRMATIVE_TEST_VALUE); + assert( + em.context.httpRequest.method === AFFIRMATIVE_TEST_VALUE + , [ + 'In the affirmative case the value should be settable to a valid string' + , 'and by setting this value this should mutate the instance' + ].join(' ') + ); + }); + it('Should default', function() { + em.setHttpMethod(); + assert( + em.context.httpRequest.method === NEGATIVE_TEST_VALUE + , [ + 'By providing no argument (undefined) to setHttpMethod the property' + , 'message should be set to an empty string on the instance' + ].join(' ') + ); + }); + } +); + +describe( + 'Fuzzing against setUrl', + function() { + var em; + var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; + var NEGATIVE_TEST_VALUE = ''; + beforeEach(function() {em = new ErrorMessage()}); + it('Should set url', function() { + em.setUrl(AFFIRMATIVE_TEST_VALUE); + assert( + em.context.httpRequest.url === AFFIRMATIVE_TEST_VALUE + , [ + 'In the affirmative case the value should be settable to a valid string' + , 'and by setting this value this should mutate the instance' + ].join(' ') + ); + }); + it('Should default', function() { + em.setUrl(); + assert( + em.context.httpRequest.url === NEGATIVE_TEST_VALUE + , [ + 'By providing no argument (undefined) to setUrl the property' + , 'message should be set to an empty string on the instance' + ].join(' ') + ); + }); + } +); + + +describe( + 'Fuzzing against setUserAgent', + function() { + var em; + var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; + var NEGATIVE_TEST_VALUE = ''; + beforeEach(function() {em = new ErrorMessage()}); + it('Should set userAgent', function() { + em.setUserAgent(AFFIRMATIVE_TEST_VALUE); + assert( + em.context.httpRequest.userAgent === AFFIRMATIVE_TEST_VALUE + , [ + 'In the affirmative case the value should be settable to a valid string' + , 'and by setting this value this should mutate the instance' + ].join(' ') + ); + }); + it('Should default', function() { + em.setUserAgent(); + assert( + em.context.httpRequest.userAgent === NEGATIVE_TEST_VALUE + , [ + 'By providing no argument (undefined) to setUserAgent the property' + , 'message should be set to an empty string on the instance' + ].join(' ') + ); + }); + } +); + +describe('Fuzzing against setReferrer', function() { + var em; + var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; + var NEGATIVE_TEST_VALUE = ''; + beforeEach(function() {em = new ErrorMessage()}); + it('Should set referrer', function() { + em.setReferrer(AFFIRMATIVE_TEST_VALUE); + assert( + em.context.httpRequest.referrer === AFFIRMATIVE_TEST_VALUE + , [ + 'In the affirmative case the value should be settable to a valid string' + , 'and by setting this value this should mutate the instance' + ].join(' ') + ); + }); + it('Should default', function() { + em.setReferrer(); + assert( + em.context.httpRequest.referrer === NEGATIVE_TEST_VALUE + , [ + 'By providing no argument (undefined) to setReferrer the property' + , 'message should be set to an empty string on the instance' + ].join(' ') + ); + }); +}); + +describe('Fuzzing against setResponseStatusCode', function() { + var em; + var AFFIRMATIVE_TEST_VALUE = 200; + var NEGATIVE_TEST_VALUE = 0; + beforeEach(function() {em = new ErrorMessage()}); + it('Should set responseStatusCode', function() { + em.setResponseStatusCode(AFFIRMATIVE_TEST_VALUE); + assert( + em.context.httpRequest.responseStatusCode === AFFIRMATIVE_TEST_VALUE + , [ + 'In the affirmative case the value should be settable to a valid string' + , 'and by setting this value this should mutate the instance' + ].join(' ') + ); + }); + it('Should default', function() { + em.setResponseStatusCode(); + assert( + em.context.httpRequest.responseStatusCode === NEGATIVE_TEST_VALUE + , [ + 'By providing no argument (undefined) to setResponseStatusCode the property' + , 'message should be set to an empty string on the instance' + ].join(' ') + ); + }); +}); + +describe('Fuzzing against setRemoteIp', function() { + var em; + var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; + var NEGATIVE_TEST_VALUE = ''; + beforeEach(function() {em = new ErrorMessage()}); + it('Should set remoteIp', function() { + em.setRemoteIp(AFFIRMATIVE_TEST_VALUE); + assert( + em.context.httpRequest.remoteIp === AFFIRMATIVE_TEST_VALUE + , [ + 'In the affirmative case the value should be settable to a valid string' + , 'and by setting this value this should mutate the instance' + ].join(' ') + ); + }); + it('Should default', function() { + em.setRemoteIp(); + assert( + em.context.httpRequest.remoteIp === NEGATIVE_TEST_VALUE + , [ + 'By providing no argument (undefined) to setRemoteIp the property' + , 'message should be set to an empty string on the instance' + ].join(' ') + ); + }); +}); + +describe( + 'Fuzzing against setUser', + function() { + var em; + var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; + var NEGATIVE_TEST_VALUE = ''; + beforeEach(function() {em = new ErrorMessage()}); + it('Should set user', function() { + em.setUser(AFFIRMATIVE_TEST_VALUE); + assert( + em.context.user === AFFIRMATIVE_TEST_VALUE + , [ + 'In the affirmative case the value should be settable to a valid string' + , 'and by setting this value this should mutate the instance' + ].join(' ') + ); + }); + it('Should default', function() { + em.setUser(); + assert( + em.context.user === NEGATIVE_TEST_VALUE + , [ + 'By providing no argument (undefined) to setUser the property' + , 'user should be set to an empty string on the instance' + ].join(' ') + ); + }); + } +); + +describe('Fuzzing against setFilePath', function() { + var em; + var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; + var NEGATIVE_TEST_VALUE = ''; + beforeEach(function() {em = new ErrorMessage()}); + it('Should set filePath', function() { + em.setFilePath(AFFIRMATIVE_TEST_VALUE); + assert( + em.context.reportLocation.filePath === AFFIRMATIVE_TEST_VALUE + , [ + 'In the affirmative case the value should be settable to a valid string' + , 'and by setting this value this should mutate the instance' + ].join(' ') + ); + }); + it('Should default', function() { + em.setFilePath(); + assert( + em.context.reportLocation.filePath === NEGATIVE_TEST_VALUE + , [ + 'By providing no argument (undefined) to setFilePath the property' + , 'filePath should be set to an empty string on the instance' + ].join(' ') + ); + }); +}); + +describe('Fuzzing against setLineNumber', function() { + var em; + var AFFIRMATIVE_TEST_VALUE = 27; + var NEGATIVE_TEST_VALUE = 0; + beforeEach(function() {em = new ErrorMessage()}); + it('Should set lineNumber', function() { + em.setLineNumber(AFFIRMATIVE_TEST_VALUE); + assert( + em.context.reportLocation.lineNumber === AFFIRMATIVE_TEST_VALUE + , [ + 'In the affirmative case the value should be settable to a valid string' + , 'and by setting this value this should mutate the instance' + ].join(' ') + ); + }); + it('Should default', function() { + em.setLineNumber(); + assert( + em.context.reportLocation.lineNumber === NEGATIVE_TEST_VALUE + , [ + 'By providing no argument (undefined) to setLineNumber the property' + , 'lineNumber should be set to an empty string on the instance' + ].join(' ') + ); + }); +}); + +describe('Fuzzing against setFunctionName', function() { + var em; + var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; + var NEGATIVE_TEST_VALUE = ''; + beforeEach(function() {em = new ErrorMessage()}); + it('Should set functionName', function() { + em.setFunctionName(AFFIRMATIVE_TEST_VALUE); + assert( + em.context.reportLocation.functionName === AFFIRMATIVE_TEST_VALUE + , [ + 'In the affirmative case the value should be settable to a valid string' + , 'and by setting this value this should mutate the instance' + ].join(' ') + ); + }); + it('Should default', function() { + em.setFunctionName(); + assert( + em.context.reportLocation.functionName === NEGATIVE_TEST_VALUE + , [ + 'By providing no argument (undefined) to setFunctionName the property' + , 'functionName should be set to an empty string on the instance' + ].join(' ') + ); + }); +}); + +describe('Fuzzing against consumeRequestInformation', function() { + var em = new ErrorMessage(); + var A_VALID_STRING = 'A_VALID_STRING'; + var A_VALID_NUMBER = 201; + var NEGATIVE_STRING_CASE = ''; + var NEGATIVE_NUMBER_CASE = 0; + + var AFFIRMATIVE_TEST_VALUE = { + method: A_VALID_STRING + , url: A_VALID_STRING + , userAgent: A_VALID_STRING + , referrer: A_VALID_STRING + , statusCode: A_VALID_NUMBER + , remoteAddress: A_VALID_STRING + }; + var NEGATIVE_TEST_VALUE = { + method: null + , url: A_VALID_NUMBER + , userAgent: {} + , referrer: [] + , statusCode: A_VALID_STRING + , remoteAddress: undefined + }; + it('Should consume the stubbed request object', function() { + em.consumeRequestInformation(AFFIRMATIVE_TEST_VALUE); + assert( + em.context.httpRequest.method === A_VALID_STRING + , [ + 'The error messages method, given a valid string, should be' + , 'set to that value' + ].join(' ') + ); + assert( + em.context.httpRequest.url === A_VALID_STRING + , [ + 'The error messages url, given a valid string, should be' + , 'set to that value' + ].join(' ') + ); + assert( + em.context.httpRequest.userAgent === A_VALID_STRING + , [ + 'The error messages userAgent, given a valid string, should be' + , 'set to that value' + ].join(' ') + ); + assert( + em.context.httpRequest.referrer === A_VALID_STRING + , [ + 'The error messages referrer, given a valid string, should be' + , 'set to that value' + ].join(' ') + ); + assert( + em.context.httpRequest.responseStatusCode === A_VALID_NUMBER + , [ + 'The error messages responseStatusCode, given a valid number, should be' + , 'set to that value' + ].join(' ') + ); + assert( + em.context.httpRequest.remoteIp === A_VALID_STRING + , [ + 'The error messages remoteAddress, given a valid string, should be' + , 'set to that value' + ].join(' ') + ); + }); + it('Should default when consuming a malformed request object', function() { + em.consumeRequestInformation(null); + assert( + em.context.httpRequest.method === A_VALID_STRING + , [ + 'The error messages method, given an invalid type a the top-level' + , 'should remain untouched' + ].join(' ') + ); + assert( + em.context.httpRequest.url === A_VALID_STRING + , [ + 'The error messages url, given an invalid type a the top-level' + , 'should remain untouched' + ].join(' ') + ); + assert( + em.context.httpRequest.userAgent === A_VALID_STRING + , [ + 'The error messages userAgent, given an invalid type a the top-level' + , 'should remain untouched' + ].join(' ') + ); + assert( + em.context.httpRequest.referrer === A_VALID_STRING + , [ + 'The error messages referrer, given an invalid type a the top-level' + , 'should remain untouched' + ].join(' ') + ); + assert( + em.context.httpRequest.responseStatusCode === A_VALID_NUMBER + , [ + 'The error messages responseStatusCode, given an invalid type a the top-level' + , 'should remain untouched' + ].join(' ') + ); + assert( + em.context.httpRequest.remoteIp === A_VALID_STRING + , [ + 'The error messages remoteAddress, given an invalid type a the top-level' + , 'should remain untouched' + ].join(' ') + ); + }); + it('Should default when consuming mistyped response object properties', + function() { + em.consumeRequestInformation(NEGATIVE_TEST_VALUE); + assert( + em.context.httpRequest.method === NEGATIVE_STRING_CASE + , [ + 'The error messages method, given an invalid input should default to' + , 'the negative value' + ].join(' ') + ); + assert( + em.context.httpRequest.url === NEGATIVE_STRING_CASE + , [ + 'The error messages url, given an invalid input should default to' + , 'the negative value' + ].join(' ') + ); + assert( + em.context.httpRequest.userAgent === NEGATIVE_STRING_CASE + , [ + 'The error messages userAgent, ggiven an invalid input should default to' + , 'the negative value' + ].join(' ') + ); + assert( + em.context.httpRequest.referrer === NEGATIVE_STRING_CASE + , [ + 'The error messages referrer, given an invalid input should default to' + , 'the negative value' + ].join(' ') + ); + assert( + em.context.httpRequest.responseStatusCode === NEGATIVE_NUMBER_CASE + , [ + 'The error messages responseStatusCode, given an invalid input should default to' + , 'the negative value' + ].join(' ') + ); + assert( + em.context.httpRequest.remoteIp === NEGATIVE_STRING_CASE + , [ + 'The error messages remoteAddress, given an invalid input should default to' + , 'the negative value' + ].join(' ') + ); + } + ); + it('Should return the instance on calling consumeRequestInformation', + function() { + assert( + em.consumeRequestInformation(AFFIRMATIVE_TEST_VALUE) instanceof ErrorMessage + , [ + 'Calling consumeRequestInformation with valid input should return' + , 'the ErrorMessage instance' + ].join(' ') + ); + assert( + em.consumeRequestInformation() instanceof ErrorMessage + , [ + 'Calling consumeRequestInformation with invalid input should return' + , 'the ErrorMessage instance' + ].join(' ') + ); + } + ); +}); diff --git a/handwritten/error-reporting/test/unit/testExpressInterface.js b/handwritten/error-reporting/test/unit/testExpressInterface.js new file mode 100644 index 00000000000..33d2350f95c --- /dev/null +++ b/handwritten/error-reporting/test/unit/testExpressInterface.js @@ -0,0 +1,90 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the 'License'); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an 'AS IS' BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; + +var assert = require('assert'); +var merge = require('lodash.merge'); +var expressInterface = require('../../src/interfaces/express.js'); +var ErrorMessage = require('../../src/classes/error-message.js'); +var Fuzzer = require('../../utils/fuzzer.js'); +var Configuration = require('../fixtures/configuration.js'); +var createLogger = require('../../src/logger.js'); + +describe('expressInterface', function() { + describe('Exception handling', function() { + describe('Given invalid input', function() { + it('Should not throw errors', function() { + var f = new Fuzzer(); + assert.doesNotThrow( + function() { + f.fuzzFunctionForTypes( + expressInterface, ['object', 'object'] + ); + return; + } + ); + }); + }); + }); + describe('Intended behaviour', function() { + var stubbedConfig = new Configuration({ + serviceContext: { + service: 'a_test_service', version: 'a_version' + } + }, createLogger({logLevel: 4})); + stubbedConfig.lacksCredentials = function() { + return false; + }; + var client = { + sendError: function() { + return; + } + }; + var testError = new Error('This is a test'); + var validBoundHandler = expressInterface(client, stubbedConfig); + it('Should return the error message', function() { + var res = validBoundHandler(testError, null, null, null); + assert.deepEqual( + res, + merge(new ErrorMessage().setMessage(testError.stack) + .setServiceContext( + stubbedConfig._serviceContext.service, + stubbedConfig._serviceContext.version), + {eventTime: res.eventTime} + ) + ); + }); + describe('Calling back to express builtins', function() { + it('Should callback to next', function(done) { + var nextCb = function() { + done(); + }; + validBoundHandler(testError, null, null, nextCb); + }); + it('Should callback to sendError', function(done) { + var sendError = function() { + done(); + }; + var client = { + sendError: sendError + }; + var handler = expressInterface(client, stubbedConfig); + handler(testError, null, null, function() {return;}); + }); + }); + }); +}); diff --git a/handwritten/error-reporting/test/unit/testExpressRequestInformationExtractor.js b/handwritten/error-reporting/test/unit/testExpressRequestInformationExtractor.js new file mode 100644 index 00000000000..ad1b4594af6 --- /dev/null +++ b/handwritten/error-reporting/test/unit/testExpressRequestInformationExtractor.js @@ -0,0 +1,157 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the 'License'); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an 'AS IS' BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; + +var assert = require('assert'); +var expressRequestInformationExtractor = + require('../../src/request-extractors/express.js'); +var Fuzzer = require('../../utils/fuzzer.js'); +var extend = require('extend'); + +describe('Behaviour under varying input', + function() { + var f; + var DEFAULT_RETURN_VALUE = { + method: '', + url: '', + userAgent: '', + referrer: '', + statusCode: 0, + remoteAddress: '' + }; + beforeEach(function() {f = new Fuzzer();}); + it('Should return a default value given invalid input', function() { + var cbFn = function(value) { + assert.deepEqual(value, DEFAULT_RETURN_VALUE); + }; + f.fuzzFunctionForTypes(expressRequestInformationExtractor, + ['object', 'object'], cbFn); + }); + it('Should return valid request object given valid input', function() { + var FULL_REQ_DERIVATION_VALUE = { + method: 'STUB_METHOD', + url: 'www.TEST-URL.com', + 'user-agent': 'Something like Mozilla', + referrer: 'www.ANOTHER-TEST.com', + 'x-forwarded-for': '0.0.0.1', + connection: { + remoteAddress: '0.0.0.0' + } + }; + var FULL_RES_DERIVATION_VALUE = { + statusCode: 200 + }; + var FULL_REQ_EXPECTED_VALUE = { + method: 'STUB_METHOD', + url: 'www.TEST-URL.com', + userAgent: 'Something like Mozilla', + referrer: 'www.ANOTHER-TEST.com', + remoteAddress: '0.0.0.1', + statusCode: 200 + }; + + var PARTIAL_REQ_DERIVATION_VALUE = { + method: 'STUB_METHOD_#2', + url: 'www.SUPER-TEST.com', + 'user-agent': 'Something like Gecko', + referrer: 'www.SUPER-ANOTHER-TEST.com', + connection: { + remoteAddress: '0.0.2.1' + } + }; + var PARTIAL_RES_DERIVATION_VALUE = { + statusCode: 201 + }; + var PARTIAL_REQ_EXPECTED_VALUE = { + method: 'STUB_METHOD_#2', + url: 'www.SUPER-TEST.com', + userAgent: 'Something like Gecko', + referrer: 'www.SUPER-ANOTHER-TEST.com', + remoteAddress: '0.0.2.1', + statusCode: 201 + }; + + var ANOTHER_PARTIAL_REQ_DERIVATION_VALUE = { + method: 'STUB_METHOD_#2', + url: 'www.SUPER-TEST.com', + 'user-agent': 'Something like Gecko', + referrer: 'www.SUPER-ANOTHER-TEST.com' + }; + var ANOTHER_PARTIAL_RES_DERIVATION_VALUE = { + statusCode: 201 + }; + var ANOTHER_PARTIAL_REQ_EXPECTED_VALUE = { + method: 'STUB_METHOD_#2', + url: 'www.SUPER-TEST.com', + userAgent: 'Something like Gecko', + referrer: 'www.SUPER-ANOTHER-TEST.com', + remoteAddress: '', + statusCode: 201 + }; + var headerFactory = function(toDeriveFrom) { + var lrn = extend({}, toDeriveFrom); + lrn.header = function(toRet) { + if (lrn.hasOwnProperty(toRet)) { + return lrn[toRet]; + } + return undefined; + }; + return lrn; + }; + var tmpOutput = expressRequestInformationExtractor( + headerFactory(FULL_REQ_DERIVATION_VALUE), + FULL_RES_DERIVATION_VALUE + ); + assert.deepEqual(tmpOutput, FULL_REQ_EXPECTED_VALUE, + [ + 'Given a valid object input for the request parameter and an', + '\'x-forwarded-for\' parameter the request extractor should return', + 'the expected full req output and the \'x-forwarded-for\' value', + 'as the value for the \'remoteAddress\' property.' + ].join(' ') + ); + tmpOutput = expressRequestInformationExtractor( + headerFactory(PARTIAL_REQ_DERIVATION_VALUE), + PARTIAL_RES_DERIVATION_VALUE + ); + assert.deepEqual( + tmpOutput, + PARTIAL_REQ_EXPECTED_VALUE, + [ + 'Given a valid object input for the request parameter but sans an', + '\'x-forwarded-for\' parameter the request extractor should return', + 'the expected parital req output and the remoteAddress value', + 'as the value for the \'remoteAddress\' property.' + ].join(' ') + ); + tmpOutput = expressRequestInformationExtractor( + headerFactory(ANOTHER_PARTIAL_REQ_DERIVATION_VALUE), + ANOTHER_PARTIAL_RES_DERIVATION_VALUE + ); + assert.deepEqual( + tmpOutput, + ANOTHER_PARTIAL_REQ_EXPECTED_VALUE, + [ + 'Given a valid object input for the request parameter but sans an', + '\'x-forwarded-for\' parameter or a remoteAddress parameter', + 'the request extractor should return an empty string', + 'as the value for the \'remoteAddress\' property.' + ].join(' ') + ); + } + ); + }); diff --git a/handwritten/error-reporting/test/unit/testExtractFromErrorClass.js b/handwritten/error-reporting/test/unit/testExtractFromErrorClass.js new file mode 100644 index 00000000000..76c2a532975 --- /dev/null +++ b/handwritten/error-reporting/test/unit/testExtractFromErrorClass.js @@ -0,0 +1,107 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the 'License'); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an 'AS IS' BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; + +var assert = require('assert'); +var extractFromErrorClass = require('../../src/error-extractors/error.js'); +var ErrorMessage = require('../../src/classes/error-message.js'); + + +describe('Writing and reading ErrorMessage properties', function() { + describe('Message field', function() { + it('Should set the message as the stack of the given error', function() { + var TEST_MESSAGE = 'This is a test'; + var em = new ErrorMessage(); + var err = new Error(TEST_MESSAGE); + extractFromErrorClass(err, em); + assert.deepEqual(em.message, err.stack, 'Given a valid message the ' + + 'error message should absorb the error stack as the message' + ); + }); + }); + describe('User field', function() { + var em, err; + var TEST_USER_INVALID = 12; + beforeEach(function() { + em = new ErrorMessage(); + err = new Error(); + }); + it('Should set the user field if given valid input', function() { + var TEST_USER_VALID = 'TEST_USER'; + err.user = TEST_USER_VALID; + extractFromErrorClass(err, em); + assert.strictEqual(em.context.user, TEST_USER_VALID); + }); + it('Should default the user field if given invalid input', function() { + err.user = TEST_USER_INVALID; + extractFromErrorClass(err, em); + assert.strictEqual(em.context.user, ''); + }); + }); + describe('Service field', function() { + var em, err; + var TEST_SERVICE_DEFAULT = {service: 'node', version: undefined}; + beforeEach(function() { + em = new ErrorMessage(); + err = new Error(); + }); + it('Should set the field if given valid input', function() { + var TEST_SERVICE_VALID = {service: 'test', version: 'test'}; + err.serviceContext = TEST_SERVICE_VALID; + extractFromErrorClass(err, em); + assert.deepEqual(err.serviceContext, TEST_SERVICE_VALID); + }); + it('Should default the field if given invalid input', function() { + var TEST_SERVICE_INVALID = 12; + err.serviceContext = TEST_SERVICE_INVALID; + extractFromErrorClass(err, em); + assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); + }); + it('Should default the field if not given input', function() { + extractFromErrorClass(err, em); + assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); + }); + }); + describe('Report location field', function() { + var em, err; + var TEST_STACK_DEFAULT = { + filePath: '', + lineNumber: 0, + functionName: '' + }; + beforeEach(function() { + em = new ErrorMessage(); + err = new Error(); + }); + it('Should default the field if given invalid input', function() { + var TEST_STACK_INVALID_CONTENTS = { + filePath: null, + lineNumber: '2', + functionName: {} + }; + err.stack = TEST_STACK_INVALID_CONTENTS; + extractFromErrorClass(err, em); + assert.deepEqual(em.context.reportLocation, TEST_STACK_DEFAULT); + }); + it('Should default field if not given a valid type', function() { + var TEST_STACK_INVALID_TYPE = []; + err.stack = TEST_STACK_INVALID_TYPE; + extractFromErrorClass(err, em); + assert.deepEqual(em.context.reportLocation, TEST_STACK_DEFAULT); + }); + }); +}); diff --git a/handwritten/error-reporting/test/unit/testExtractFromObject.js b/handwritten/error-reporting/test/unit/testExtractFromObject.js new file mode 100644 index 00000000000..58c75ae6a3e --- /dev/null +++ b/handwritten/error-reporting/test/unit/testExtractFromObject.js @@ -0,0 +1,108 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; + +var assert = require('assert'); +var extractFromObject = require('../../src/error-extractors/object.js'); +var ErrorMessage = require('../../src/classes/error-message.js'); + +describe('Object value extraction as error message', function() { + var em, err; + beforeEach(function() { + em = new ErrorMessage(); + err = {}; + }); + describe('Message field', function() { + it('Should write to the field given valid input', function() { + var MESSAGE = 'test'; + err = {message: MESSAGE}; + extractFromObject(err, em); + assert.strictEqual(em.message, MESSAGE); + }); + it('Should default the field given lack-of input', function() { + extractFromObject(err, em); + assert.strictEqual(em.message, ''); + }); + }); + describe('User field', function() { + it('Should write to the field given valid input', function() { + var USER = 'test'; + err.user = USER; + extractFromObject(err, em); + assert.strictEqual(em.context.user, USER); + }); + it('Should default the field given lack-of input', function() { + extractFromObject(err, em); + assert.strictEqual(em.context.user, ''); + }); + }); + describe('filePath field', function() { + it('Should write to the field given valid input', function() { + var PATH = 'test'; + err.filePath = PATH; + extractFromObject(err, em); + assert.strictEqual(em.context.reportLocation.filePath, PATH); + }); + it('Should default the field given lack-of input', function() { + extractFromObject(err, em); + assert.strictEqual(em.context.reportLocation.filePath, ''); + }); + }); + describe('lineNumber field', function() { + it('Should write to the field given valid input', function() { + var LINE_NUMBER = 10; + err.lineNumber = LINE_NUMBER; + extractFromObject(err, em); + assert.strictEqual(em.context.reportLocation.lineNumber, LINE_NUMBER); + }); + it('Should default the field given lack-of input', function() { + extractFromObject(err, em); + assert.strictEqual(em.context.reportLocation.lineNumber, 0); + }); + }); + describe('functionName field', function() { + it('Should write to the field given valid input', function() { + var FUNCTION_NAME = 'test'; + err.functionName = FUNCTION_NAME; + extractFromObject(err, em); + assert.strictEqual(em.context.reportLocation.functionName, FUNCTION_NAME); + }); + it('Should default the field given lack-of input', function() { + extractFromObject(err, em); + assert.strictEqual(em.context.reportLocation.functionName, ''); + }); + }); + describe('serviceContext field', function() { + var TEST_SERVICE_DEFAULT = {service: 'node', version: undefined}; + it('Should write to the field given valid input', function() { + var TEST_SERVICE_VALID = {service: 'test', version: 'test'}; + err.serviceContext = TEST_SERVICE_VALID; + extractFromObject(err, em); + assert.deepEqual(em.serviceContext, TEST_SERVICE_VALID); + }); + it('Should default the field given invalid input', function() { + var TEST_SERVICE_INVALID = 12; + err.serviceContext = TEST_SERVICE_INVALID; + extractFromObject(err, em); + assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); + }); + it('Should default the field given lack-of input', function() { + extractFromObject(err, em); + assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); + }); + }); +}); diff --git a/handwritten/error-reporting/test/unit/testHandleErrorClassError.js b/handwritten/error-reporting/test/unit/testHandleErrorClassError.js new file mode 100644 index 00000000000..ba1ce9f5575 --- /dev/null +++ b/handwritten/error-reporting/test/unit/testHandleErrorClassError.js @@ -0,0 +1,56 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; + +var assert = require('assert'); +var ErrorMessage = require('../../src/classes/error-message.js'); +var handleErrorClassError = require('../../src/error-handlers/error.js'); + +describe('Behaviour under various type inputs', function() { + var em; + var adversarialObjectInput = { + stack: {} + }; + var adversarialObjectInputTwo = { + stack: [] + }; + beforeEach(function() {em = new ErrorMessage();}); + it('Should not throw given undefined', function() { + assert.doesNotThrow(handleErrorClassError.bind(null, undefined, em)); + }); + it('Should not throw given null', function() { + assert.doesNotThrow(handleErrorClassError.bind(null, null, em)); + }); + it('Should not throw given a string', function() { + assert.doesNotThrow(handleErrorClassError.bind(null, 'string_test', em)); + }); + it('Should not throw given a number', function() { + assert.doesNotThrow(handleErrorClassError.bind(null, 1.2, em)); + }); + it('Should not throw given an array', function() { + assert.doesNotThrow(handleErrorClassError.bind(null, [], em)); + }); + it('Should not throw given an object of invalid form', function() { + assert.doesNotThrow( + handleErrorClassError.bind(null, adversarialObjectInput, em)); + assert.doesNotThrow( + handleErrorClassError.bind(null, adversarialObjectInputTwo, em)); + }); + it('Should not throw given valid input', function() { + assert.doesNotThrow(handleErrorClassError.bind(null, new Error(), em)); + }); +}); diff --git a/handwritten/error-reporting/test/unit/testHandleNumberAsError.js b/handwritten/error-reporting/test/unit/testHandleNumberAsError.js new file mode 100644 index 00000000000..89a3198a441 --- /dev/null +++ b/handwritten/error-reporting/test/unit/testHandleNumberAsError.js @@ -0,0 +1,44 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; + +var assert = require('assert'); +var ErrorMessage = require('../../src/classes/error-message.js'); +var handleNumberAsError = require('../../src/error-handlers/number.js'); + +describe('handleNumberAsError behaviour under varying input', function() { + var em; + beforeEach(function() {em = new ErrorMessage();}); + it('Should not throw given undefined', function() { + assert.doesNotThrow(handleNumberAsError.bind(null, undefined, em)); + }); + it('Should not throw given null', function() { + assert.doesNotThrow(handleNumberAsError.bind(null, null, em)); + }); + it('Should not throw given a string', function() { + assert.doesNotThrow(handleNumberAsError.bind(null, 'test', em)); + }); + it('Should not throw given an instance of Error', function() { + assert.doesNotThrow(handleNumberAsError.bind(null, new Error(), em)); + }); + it('Should not throw given an object', function() { + assert.doesNotThrow(handleNumberAsError.bind(null, {}, em)); + }); + it('Should not throw given valid input', function() { + assert.doesNotThrow(handleNumberAsError.bind(null, 1.3, em)); + }); +}); diff --git a/handwritten/error-reporting/test/unit/testHandleObjectAsError.js b/handwritten/error-reporting/test/unit/testHandleObjectAsError.js new file mode 100644 index 00000000000..58f84c86f0c --- /dev/null +++ b/handwritten/error-reporting/test/unit/testHandleObjectAsError.js @@ -0,0 +1,44 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; + +var assert = require('assert'); +var ErrorMessage = require('../../src/classes/error-message.js'); +var handleObjectAsError = require('../../src/error-handlers/object.js'); + +describe('handleObjectAsError behaviour under varying inputs', function() { + var em; + beforeEach(function() {em = new ErrorMessage();}); + it('Should not throw given undefined', function() { + assert.doesNotThrow(handleObjectAsError.bind(null, undefined, em)); + }); + it('Should not throw given null', function() { + assert.doesNotThrow(handleObjectAsError.bind(null, null, em)); + }); + it('Should not throw given a string', function() { + assert.doesNotThrow(handleObjectAsError.bind(null, 'msg', em)); + }); + it('Should not throw given an instance of Error', function() { + assert.doesNotThrow(handleObjectAsError.bind(null, new Error(), em)); + }); + it('Should not throw given a number', function() { + assert.doesNotThrow(handleObjectAsError.bind(null, 1.3, em)); + }); + it('Should not throw given valid input', function() { + assert.doesNotThrow(handleObjectAsError.bind(null, {}, em)); + }); +}); diff --git a/handwritten/error-reporting/test/unit/testHandleStringAsError.js b/handwritten/error-reporting/test/unit/testHandleStringAsError.js new file mode 100644 index 00000000000..7218ef8513c --- /dev/null +++ b/handwritten/error-reporting/test/unit/testHandleStringAsError.js @@ -0,0 +1,44 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; + +var assert = require('assert'); +var ErrorMessage = require('../../src/classes/error-message.js'); +var handleStringAsError = require('../../src/error-handlers/string.js'); + +describe('handleStringAsError behaviour under varying inputs', function() { + var em; + beforeEach(function() {em = new ErrorMessage();}); + it('Should not throw given undefined', function() { + assert.doesNotThrow(handleStringAsError.bind(null, undefined, em)); + }); + it('Should not throw given null', function() { + assert.doesNotThrow(handleStringAsError.bind(null, null, em)); + }); + it('Should not throw given an object', function() { + assert.doesNotThrow(handleStringAsError.bind(null, {}, em)); + }); + it('Should not throw given an array', function() { + assert.doesNotThrow(handleStringAsError.bind(null, [], em)); + }); + it('Should not throw given an instance of Error', function() { + assert.doesNotThrow(handleStringAsError.bind(null, 1.3, em)); + }); + it('Should not throw given valid input', function() { + assert.doesNotThrow(handleStringAsError.bind(null, 'test', em)); + }); +}); diff --git a/handwritten/error-reporting/test/unit/testHandleUnknownAsError.js b/handwritten/error-reporting/test/unit/testHandleUnknownAsError.js new file mode 100644 index 00000000000..2865b64b538 --- /dev/null +++ b/handwritten/error-reporting/test/unit/testHandleUnknownAsError.js @@ -0,0 +1,47 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; + +var assert = require('assert'); +var ErrorMessage = require('../../src/classes/error-message.js'); +var handleUnknownAsError = require('../../src/error-handlers/unknown.js'); + +describe('handleUnknownAsError behvaiour under varying input', function() { + var em; + beforeEach(function() {em = new ErrorMessage();}); + it('Should not throw given undefined', function() { + assert.doesNotThrow(handleUnknownAsError.bind(null, undefined, em)); + }); + it('Should not throw given null', function() { + assert.doesNotThrow(handleUnknownAsError.bind(null, null, em)); + }); + it('Should not throw given an object', function() { + assert.doesNotThrow(handleUnknownAsError.bind(null, {}, em)); + }); + it('Should not throw given an array', function() { + assert.doesNotThrow(handleUnknownAsError.bind(null, [], em)); + }); + it('Should not throw given an instance of Error', function() { + assert.doesNotThrow(handleUnknownAsError.bind(null, new Error(), em)); + }); + it('Should not throw given a number', function() { + assert.doesNotThrow(handleUnknownAsError.bind(null, 1.3, em)); + }); + it('Should not throw given a string', function() { + assert.doesNotThrow(handleUnknownAsError.bind(null, 'msg', em)); + }); +}); diff --git a/handwritten/error-reporting/test/unit/testHapiInterface.js b/handwritten/error-reporting/test/unit/testHapiInterface.js new file mode 100644 index 00000000000..fe5d0213a40 --- /dev/null +++ b/handwritten/error-reporting/test/unit/testHapiInterface.js @@ -0,0 +1,147 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; + +var has = require('lodash.has'); +var is = require('is'); +var isFunction = is.fn; +var isObject = is.object; +var assert = require('assert'); +var hapiInterface = require('../../src/interfaces/hapi.js'); +var ErrorMessage = require('../../src/classes/error-message.js'); +var Fuzzer = require('../../utils/fuzzer.js'); +var EventEmitter = require('events').EventEmitter; +var Configuration = require('../fixtures/configuration.js'); + +describe('Hapi interface', function() { + describe('Fuzzing the setup handler', function() { + it('Should not throw when fuzzed with invalid types', function() { + var f = new Fuzzer(); + assert.doesNotThrow(function() { + f.fuzzFunctionForTypes(hapiInterface, ['object', 'object']); + return; + }); + }); + }); + describe('Providing valid input to the setup handler', function() { + var givenConfig = {getVersion: function() {return '1';}}; + var plugin; + beforeEach(function() {plugin = hapiInterface(null, givenConfig);}); + it('should have plain object as plugin', function() { + assert(isObject(plugin)); + }); + it('plugin should have a register function property', function() { + assert(has(plugin, 'register') && isFunction(plugin.register)); + }); + it('the plugin\'s register property should have an attributes property', + function() { + assert(has(plugin.register, 'attributes') && + isObject(plugin.register.attributes)); + } + ); + it('the plugin\'s attribute property should have a name property', + function() { + assert(has(plugin.register.attributes, 'name')); + assert.strictEqual(plugin.register.attributes.name, + '@google/cloud-errors'); + } + ); + it('the plugin\'s attribute property should have a version property', + function() { + assert(has(plugin.register.attributes, 'version')); + } + ); + }); + describe('hapiRegisterFunction behaviour', function() { + var fakeServer; + beforeEach(function() {fakeServer = new EventEmitter();}); + it('Should call fn when the request-error event is emitted', function() { + var fakeClient = { + sendError: function(errMsg) { + assert(errMsg instanceof ErrorMessage, + 'should be an instance of Error message'); + } + }; + var plugin = hapiInterface(fakeClient, { + lacksCredentials: function() { + return false; + }, + getVersion: function() { + return '1'; + }, + getServiceContext: function() { + return {service: 'node'}; + } + }); + plugin.register(fakeServer, null, null, null); + fakeServer.emit('request-error'); + }); + }); + describe('Behaviour around the request/response lifecycle', function() { + var EVENT = 'onPreResponse'; + var fakeClient = {sendError: function() {}}; + var fakeServer, config, plugin; + before(function() { + config = new Configuration({ + projectId: 'xyz', + serviceContext: { + service: 'x', + version: '1.x' + } + }); + config.lacksCredentials = function() {return false;}; + plugin = hapiInterface(fakeClient, config); + }); + beforeEach(function() { + fakeServer = new EventEmitter(); + fakeServer.ext = fakeServer.on; + }); + afterEach(function() { + fakeServer.removeAllListeners(); + }); + it('Should call continue when a boom is emitted', function(done) { + plugin.register(fakeServer, null, function() {}); + fakeServer.emit(EVENT, {response: {isBoom: true}}, + { + continue: function() { + // The continue function should be called + done(); + } + } + ); + }); + it('Should call sendError when a boom is received', function(done) { + var fakeClient = { + sendError: function(err) { + assert(err instanceof ErrorMessage); + done(); + } + }; + var plugin = hapiInterface(fakeClient, config); + plugin.register(fakeServer, null, function() {}); + fakeServer.emit('onPreResponse', {response: {isBoom: true}}); + }); + it('Should call next when completing a request', function(done) { + plugin.register(fakeServer, null, function(err) { + // The next function should be called + done(); + }); + fakeServer.emit(EVENT, {response: {isBoom: true}}, + {continue: function() {}}); + }); + }); +}); diff --git a/handwritten/error-reporting/test/unit/testHapiRequestInformationExtractor.js b/handwritten/error-reporting/test/unit/testHapiRequestInformationExtractor.js new file mode 100644 index 00000000000..c580910987c --- /dev/null +++ b/handwritten/error-reporting/test/unit/testHapiRequestInformationExtractor.js @@ -0,0 +1,127 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the 'License'); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an 'AS IS' BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; + +var assert = require('assert'); +var hapiRequestInformationExtractor = + require('../../src/request-extractors/hapi.js'); +var Fuzzer = require('../../utils/fuzzer.js'); + +describe('hapiRequestInformationExtractor behaviour', function() { + describe('behaviour given invalid input', function() { + it('Should produce the default value', function() { + var DEFAULT_RETURN_VALUE = { + method: '', + url: '', + userAgent: '', + referrer: '', + statusCode: 0, + remoteAddress: '' + }; + var f = new Fuzzer(); + var cbFn = function(value) { + assert.deepEqual(value, DEFAULT_RETURN_VALUE); + }; + f.fuzzFunctionForTypes( + hapiRequestInformationExtractor, + ['object'], + cbFn + ); + }); + }); + describe('behaviour given valid input', function() { + var FULL_REQ_DERIVATION_VALUE = { + method: 'STUB_METHOD', + url: 'www.TEST-URL.com', + info: { + remoteAddress: '0.0.0.0' + }, + headers: { + 'x-forwarded-for': '0.0.0.1', + 'user-agent': 'Something like Mozilla', + referrer: 'www.ANOTHER-TEST.com' + }, + response: { + statusCode: 200 + } + }; + var FULL_REQ_EXPECTED_VALUE = { + method: 'STUB_METHOD', + url: 'www.TEST-URL.com', + userAgent: 'Something like Mozilla', + referrer: 'www.ANOTHER-TEST.com', + remoteAddress: '0.0.0.1', + statusCode: 200 + }; + var PARTIAL_REQ_DERIVATION_VALUE = { + method: 'STUB_METHOD_#2', + url: 'www.SUPER-TEST.com', + info: { + remoteAddress: '0.0.2.1' + }, + headers: { + 'user-agent': 'Something like Gecko', + referrer: 'www.SUPER-ANOTHER-TEST.com' + }, + response: { + output: { + statusCode: 201 + } + } + }; + var PARTIAL_REQ_EXPECTED_VALUE = { + method: 'STUB_METHOD_#2', + url: 'www.SUPER-TEST.com', + userAgent: 'Something like Gecko', + referrer: 'www.SUPER-ANOTHER-TEST.com', + remoteAddress: '0.0.2.1', + statusCode: 201 + }; + var ANOTHER_PARTIAL_REQ_DERIVATION_VALUE = { + method: 'STUB_METHOD_#2', + url: 'www.SUPER-TEST.com', + headers: { + 'user-agent': 'Something like Gecko', + referrer: 'www.SUPER-ANOTHER-TEST.com' + } + }; + var ANOTHER_PARTIAL_REQ_EXPECTED_VALUE = { + method: 'STUB_METHOD_#2', + url: 'www.SUPER-TEST.com', + userAgent: 'Something like Gecko', + referrer: 'www.SUPER-ANOTHER-TEST.com', + remoteAddress: '', + statusCode: 0 + }; + it('Should produce the full request input', function() { + assert.deepEqual( + hapiRequestInformationExtractor(FULL_REQ_DERIVATION_VALUE), + FULL_REQ_EXPECTED_VALUE); + }); + it('Should produce the partial request input', function() { + assert.deepEqual( + hapiRequestInformationExtractor(PARTIAL_REQ_DERIVATION_VALUE), + PARTIAL_REQ_EXPECTED_VALUE); + }); + it('Should produce the second partial request input', function() { + assert.deepEqual( + hapiRequestInformationExtractor(ANOTHER_PARTIAL_REQ_DERIVATION_VALUE), + ANOTHER_PARTIAL_REQ_EXPECTED_VALUE + ); + }); + }); +}); diff --git a/handwritten/error-reporting/test/unit/testKoaRequestInformationExtractor.js b/handwritten/error-reporting/test/unit/testKoaRequestInformationExtractor.js new file mode 100644 index 00000000000..45dddf7fa22 --- /dev/null +++ b/handwritten/error-reporting/test/unit/testKoaRequestInformationExtractor.js @@ -0,0 +1,71 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; + +var assert = require('assert'); +var koaRequestInformationExtractor = + require('../../src/request-extractors/koa.js'); +var Fuzzer = require('../../utils/fuzzer.js'); + +describe('koaRequestInformationExtractor', function() { + describe('Behaviour under invalid input', function() { + it('Should produce a default value', function() { + var DEFAULT_RETURN_VALUE = { + method: '', + url: '', + userAgent: '', + referrer: '', + statusCode: 0, + remoteAddress: '' + }; + var f = new Fuzzer(); + var cbFn = function(value) { + assert.deepEqual(value, DEFAULT_RETURN_VALUE); + }; + f.fuzzFunctionForTypes(koaRequestInformationExtractor, + ['object', 'object'], cbFn); + }); + }); + describe('Behaviour under valid input', function() { + it('Should produce the expected value', function() { + var FULL_REQ_DERIVATION_VALUE = { + method: 'STUB_METHOD', + url: 'www.TEST-URL.com', + headers: { + 'user-agent': 'Something like Mozilla', + referrer: 'www.ANOTHER-TEST.com' + }, + ip: '0.0.0.0' + }; + var FULL_RES_DERIVATION_VALUE = { + status: 200 + }; + var FULL_REQ_EXPECTED_VALUE = { + method: 'STUB_METHOD', + url: 'www.TEST-URL.com', + userAgent: 'Something like Mozilla', + referrer: 'www.ANOTHER-TEST.com', + remoteAddress: '0.0.0.0', + statusCode: 200 + }; + assert.deepEqual( + koaRequestInformationExtractor(FULL_REQ_DERIVATION_VALUE, + FULL_RES_DERIVATION_VALUE), + FULL_REQ_EXPECTED_VALUE); + }); + }); +}); diff --git a/handwritten/error-reporting/test/unit/testLogger.js b/handwritten/error-reporting/test/unit/testLogger.js new file mode 100644 index 00000000000..cd7aa29e57f --- /dev/null +++ b/handwritten/error-reporting/test/unit/testLogger.js @@ -0,0 +1,61 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; +var assert = require('assert'); +var createLogger = require('../../src/logger.js'); + +describe('logger', function() { + describe('Initialization', function() { + var oldEnv; + before(function() { + oldEnv = process.env.GCLOUD_ERRORS_LOGLEVEL; + delete process.env.GCLOUD_ERRORS_LOGLEVEL; + }); + after(function() {process.env.GCLOUD_ERRORS_LOGLEVEL = oldEnv;}); + describe('Exception handling', function() { + it('Should not throw given undefined', function() { + assert.doesNotThrow(createLogger, createLogger()); + }); + it('Should not throw given an empty object', function() { + assert.doesNotThrow(createLogger.bind(null, {}), createLogger()); + }); + it('Should not throw given logLevel as a number', function() { + assert.doesNotThrow(createLogger.bind(null, {logLevel: 3}), + createLogger({logLevel: 3})); + }); + it('Should not throw given logLevel as a string', function() { + assert.doesNotThrow(createLogger.bind(null, {logLevel: '3'}), + createLogger({logLevel: 3})); + }); + it('Should not throw given an env variable to use', function() { + process.env.GCLOUD_ERRORS_LOGLEVEL = 4; + assert.doesNotThrow(createLogger, createLogger({logLevel: 4})); + delete process.env.GCLOUD_ERRORS_LOGLEVEL; + }); + it('Should thow given logLevel as null', function() { + assert.throws(createLogger.bind(null, {logLevel: null}), + undefined); + }); + }); + describe('Default log level', function() { + it('Should be able to WARN by default', function() { + var logger = createLogger(); + logger.warn('test warning message'); + }); + }); + }); +}); diff --git a/handwritten/error-reporting/test/unit/testManualHandler.js b/handwritten/error-reporting/test/unit/testManualHandler.js new file mode 100644 index 00000000000..bb39e4ed048 --- /dev/null +++ b/handwritten/error-reporting/test/unit/testManualHandler.js @@ -0,0 +1,186 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; + +var assert = require('assert'); +var manual = require('../../src/interfaces/manual.js'); +var Configuration = require('../fixtures/configuration.js'); +var config = new Configuration({}); +config.lacksCredentials = function() { + return false; +}; +var ErrorMessage = require('../../src/classes/error-message.js'); +// var nock = require('nock'); + +describe('Manual handler', function() { + // nock.disableNetConnect(); + // Mocked client + var client = { + sendError: function(e, cb) { + // immediately callback + if (cb) { + setImmediate(cb); + } + } + }; + var report = manual(client, config); + describe('Report invocation behaviour', function() { + it('Should allow argument-less invocation', function() { + var r = report(); + assert(r instanceof ErrorMessage, 'should be an inst of ErrorMessage'); + }); + it('Should allow single string', function() { + var r = report('doohickey'); + assert(r instanceof ErrorMessage, 'should be an inst of ErrorMessage'); + assert(r.message.match(/doohickey/), 'string error should propagate'); + }); + it('Should allow single inst of Error', function() { + var r = report(new Error('hokeypokey')); + assert(r.message.match(/hokeypokey/)); + }); + it('Should allow a function as a malformed error input', function(done) { + this.timeout(2000); + var r = report(function(err, res) { + assert(false, 'callback should not be called'); + done(); + }); + assert(r instanceof ErrorMessage, 'should be an inst of ErrorMessage'); + setTimeout(function() { + done(); + }, 1000); + }); + it('Should callback to the supplied function', function(done) { + var r = report('malarkey', function(err, res) { + done(); + }); + assert(r.message.match(/malarkey/), 'string error should propagate'); + }); + it('replace the error string with the additional message', function(done) { + var r = report('monkey', 'wrench', function(err, res) { + done(); + }); + assert.strictEqual(r.message, 'wrench', + 'additional message should replace'); + }); + it('Should allow a full array of optional arguments', function(done) { + var r = report('donkey', { method: 'FETCH' }, 'cart', function(err, res) { + done(); + }); + assert.strictEqual(r.message, 'cart', 'additional message replace'); + assert.strictEqual(r.context.httpRequest.method, 'FETCH'); + }); + it('Should allow all optional arguments except the callback', function() { + var r = report('whiskey', { method: 'SIP' }, 'sour'); + assert.strictEqual(r.message, 'sour', 'additional message replace'); + assert.strictEqual(r.context.httpRequest.method, 'SIP'); + }); + it('Should allow a lack of additional message', function(done) { + var r = report('ticky', { method: 'TACKEY' }, function(err, res) { + done(); + }); + assert(r.message.match(/ticky/) && !r.message.match(/TACKEY/), + 'original message should be preserved'); + assert.strictEqual(r.context.httpRequest.method, 'TACKEY'); + }); + it('Should ignore arguments', function(done) { + var r = report('hockey', function(err, res) { + done(); + }, 'field'); + assert(r.message.match('hockey') && !r.message.match('field'), + 'string after callback should be ignored'); + }); + it('Should ignore arguments', function(done) { + var r = report('passkey', function(err, res) { + done(); + }, { method: 'HONK'}); + assert.notEqual(r.context.httpRequest.method, 'HONK'); + }); + it('Should allow null arguments as placeholders', function(done) { + var r = report('pokey', null, null, function(err, res) { + done(); + }); + assert(r.message.match(/pokey/), 'string error should propagate'); + }); + it('Should allow explicit undefined', function(done) { + var r = report('Turkey', undefined, undefined, function(err, res) { + done(); + }); + assert(r.message.match(/Turkey/), 'string error should propagate'); + }); + it('Should allow request to be supplied as undefined', function(done) { + var r = report('turnkey', undefined, 'solution', function(err, res) { + done(); + }); + assert.strictEqual(r.message, 'solution', 'error should propagate'); + }); + it('Should allow additional message', function(done) { + var r = + report('Mickey', { method: 'SNIFF'}, undefined, function(err, res) { + done(); + }); + assert(r.message.match(/Mickey/) && !r.message.match(/SNIFF/), + 'string error should propagate'); + assert.strictEqual(r.context.httpRequest.method, 'SNIFF'); + }); + }); + + describe('Custom Payload Builder', function() { + it('Should accept builder inst as only argument', function() { + var msg = 'test'; + var r = report(new ErrorMessage().setMessage(msg)); + assert.strictEqual(r.message, msg, + 'string message should propagate from error message inst'); + }); + it('Should accept builder and request as arguments', function() { + var msg = 'test'; + var oldReq = {method: 'GET'}; + var newReq = {method: 'POST'}; + var r = report( + new ErrorMessage().setMessage(msg).consumeRequestInformation(oldReq), + newReq + ); + assert.strictEqual(r.message, msg, + 'string message should propagate from error message inst'); + assert.strictEqual(r.context.httpRequest.method, newReq.method, + [ + 'request argument supplied at report invocation should propagte and', + 'if supplied, should overwrite any prexisting data in the field.' + ].join('\n') + ); + }); + it('Should accept message and additional message params as', function() { + var oldMsg = 'test'; + var newMsg = 'analysis'; + var r = report( + new ErrorMessage().setMessage(oldMsg), + newMsg + ); + assert.strictEqual(r.message, newMsg, + [ + 'message supplied at report invocation should propagte and, if', + 'supplied, should overwrite any prexisting data in the message field.' + ].join('\n')); + }); + it('Should accept message and callback function', function(done) { + var oldMsg = 'test'; + report( + new ErrorMessage().setMessage(oldMsg), + function() { done(); } + ); + }); + }); +}); diff --git a/handwritten/error-reporting/test/unit/testManualRequestInformationExtractor.js b/handwritten/error-reporting/test/unit/testManualRequestInformationExtractor.js new file mode 100644 index 00000000000..43fc1661474 --- /dev/null +++ b/handwritten/error-reporting/test/unit/testManualRequestInformationExtractor.js @@ -0,0 +1,114 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the 'License'); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an 'AS IS' BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; + +var assert = require('assert'); +var omit = require('lodash.omit'); +var extend = require('extend'); +var manualRequestInformationExtractor = + require('../../src/request-extractors/manual.js'); +var Fuzzer = require('../../utils/fuzzer.js'); + +describe('manualRequestInformationExtractor', function() { + describe('Behaviour given invalid input', function() { + it('Should return default values', function() { + var DEFAULT_RETURN_VALUE = { + method: '', + url: '', + userAgent: '', + referrer: '', + statusCode: 0, + remoteAddress: '' + }; + var f = new Fuzzer(); + var cbFn = function(value) { + assert.deepEqual(value, DEFAULT_RETURN_VALUE); + }; + f.fuzzFunctionForTypes(manualRequestInformationExtractor, ['object'], + cbFn); + }); + }); + describe('Behaviour given valid input', function() { + var FULL_VALID_INPUT = { + method: 'GET', + url: 'http://0.0.0.0/myTestRoute', + userAgent: 'Something like Gecko', + referrer: 'www.example.com', + statusCode: 500, + remoteAddress: '0.0.0.1' + }; + it('Should return expected output', function() { + assert.deepEqual( + manualRequestInformationExtractor(FULL_VALID_INPUT), + FULL_VALID_INPUT, + [ + 'Given a full valid input object these values should be reflected by', + 'the output of the request extraction' + ].join(' ') + ); + assert.deepEqual( + manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'method')), + extend({}, FULL_VALID_INPUT, {method: ''}), + [ + 'Given a full valid input object sans the method property values', + 'should be reflected by the output of the request extraction' + ].join(' ') + ); + assert.deepEqual( + manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'url')), + extend({}, FULL_VALID_INPUT, {url: ''}), + [ + 'Given a valid input sans the url property these values should be', + 'reflected by the output of the request extraction' + ] + ); + assert.deepEqual( + manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'userAgent')), + extend({}, FULL_VALID_INPUT, {userAgent: ''}), + [ + 'Given a full valid input sans the userAgent property these values', + 'should be reflected by the output of the request extraction' + ] + ); + assert.deepEqual( + manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'referrer')), + extend({}, FULL_VALID_INPUT, {referrer: ''}), + [ + 'Given a full valid input sans the referrer property these values', + 'should be reflected by the output of the request extraction' + ] + ); + assert.deepEqual( + manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'statusCode')), + extend({}, FULL_VALID_INPUT, {statusCode: 0}), + [ + 'Given a full valid input sans the statusCode property these values', + 'should be reflected by the output of the request extraction' + ] + ); + assert.deepEqual( + manualRequestInformationExtractor(omit(FULL_VALID_INPUT, + 'remoteAddress')), + extend({}, FULL_VALID_INPUT, {remoteAddress: ''}), + [ + 'Given a valid input sans the remoteAddress property these values', + 'should be reflected by the output of the request extraction' + ] + ); + }); + }); +}); diff --git a/handwritten/error-reporting/test/unit/testRequestInformationContainer.js b/handwritten/error-reporting/test/unit/testRequestInformationContainer.js new file mode 100644 index 00000000000..baf2fcf691f --- /dev/null +++ b/handwritten/error-reporting/test/unit/testRequestInformationContainer.js @@ -0,0 +1,96 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the 'License'); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an 'AS IS' BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; + +var assert = require('assert'); +var RequestInformationContainer = + require('../../src/classes/request-information-container.js'); +var Fuzzer = require('../../utils/fuzzer.js'); + +describe('RequestInformationContainer', function() { + var f = new Fuzzer(); + var cbFn, ric; + beforeEach(function() {ric = new RequestInformationContainer();}); + describe('Fuzzing against RequestInformationContainer', function() { + it('Should return the property as an empty string', + function() { + cbFn = function() { + assert.deepEqual(ric.url, ''); + }; + f.fuzzFunctionForTypes(ric.setUrl, ['string'], cbFn, ric); + } + ); + it('Should return the method property as an empty string', function() { + cbFn = function(returnValue) { + assert.deepEqual(ric.method, ''); + }; + f.fuzzFunctionForTypes(ric.setMethod, ['string'], cbFn, ric); + }); + it('Should return the referrer property as an empty string', function() { + cbFn = function(returnValue) { + assert.deepEqual(ric.referrer, ''); + }; + f.fuzzFunctionForTypes(ric.setReferrer, ['string'], cbFn, ric); + }); + it('Should return the userAgent property as an empty string', function() { + cbFn = function(returnValue) { + assert.deepEqual(ric.userAgent, ''); + }; + f.fuzzFunctionForTypes(ric.setUserAgent, ['string'], cbFn, ric); + }); + it('Should return the property as an empty string', function() { + cbFn = function(returnValue) { + assert.deepEqual(ric.remoteAddress, ''); + }; + f.fuzzFunctionForTypes(ric.setRemoteAddress, ['string'], cbFn, ric); + }); + it('Should return the default value for statusCode', function() { + cbFn = function(returnValue) { + assert.strictEqual(ric.statusCode, 0); + }; + f.fuzzFunctionForTypes(ric.setStatusCode, ['number'], cbFn, ric); + }); + }); + describe('Fuzzing against for positive cases', function() { + var VALID_STRING_INPUT = 'valid'; + var VALID_NUMBER_INPUT = 500; + it('Should assign the value to the url property', function() { + ric.setUrl(VALID_STRING_INPUT); + assert.deepEqual(ric.url, VALID_STRING_INPUT); + }); + it('Should assign the value to the method property', function() { + ric.setMethod(VALID_STRING_INPUT); + assert.deepEqual(ric.method, VALID_STRING_INPUT); + }); + it('Should assign the value to the referrer property', function() { + ric.setReferrer(VALID_STRING_INPUT); + assert.deepEqual(ric.referrer, VALID_STRING_INPUT); + }); + it('Should assign the value to the userAgent property', function() { + ric.setUserAgent(VALID_STRING_INPUT); + assert.deepEqual(ric.userAgent, VALID_STRING_INPUT); + }); + it('Should assign the value to remoteAddress property', function() { + ric.setRemoteAddress(VALID_STRING_INPUT); + assert.deepEqual(ric.remoteAddress, VALID_STRING_INPUT); + }); + it('Should assign the value to statusCode property', function() { + ric.setStatusCode(VALID_NUMBER_INPUT); + assert.deepEqual(ric.statusCode, VALID_NUMBER_INPUT); + }); + }); +}); diff --git a/handwritten/error-reporting/test/unit/testRestifyInterface.js b/handwritten/error-reporting/test/unit/testRestifyInterface.js new file mode 100644 index 00000000000..781204f0bc9 --- /dev/null +++ b/handwritten/error-reporting/test/unit/testRestifyInterface.js @@ -0,0 +1,136 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; + +var EventEmitter = require('events').EventEmitter; +var assert = require('assert'); +var restifyInterface = require('../../src/interfaces/restify.js'); + +// node v0.12 compatibility +if (!EventEmitter.prototype.listenerCount) { + EventEmitter.prototype.listenerCount = function(eventName) { + return EventEmitter.listenerCount(this, eventName); + }; +} + +describe('restifyInterface', function() { + var UNCAUGHT_EVENT = 'uncaughtException'; + var FINISH = 'finish'; + var noOp = function() {return;}; + describe('Attachment to the uncaughtException event', function() { + it('Should attach one listener after instantiation', function() { + var ee = new EventEmitter(); + assert.strictEqual(ee.listenerCount(UNCAUGHT_EVENT), 0, + 'Listeners on event should be zero'); + // return the bound function which the user will actually interface with + var errorHandlerInstance = restifyInterface(null, null); + // execute the handler the user will use with the stubbed server instance + errorHandlerInstance(ee); + assert.strictEqual(ee.listenerCount(UNCAUGHT_EVENT), 1, + 'Listeners on event should now be one'); + }); + }); + describe('Request handler lifecycle events', function() { + var ee = new EventEmitter(); + var errorHandlerInstance = restifyInterface(null, null); + var requestHandlerInstance = errorHandlerInstance(ee); + describe('default path on invalid input', function() { + it('Should not throw', function() { + assert.doesNotThrow(function() { + requestHandlerInstance(null, null, noOp); + }); + }); + }); + describe('default path without req/res error', function() { + ee.removeAllListeners(); + var req = new EventEmitter(); + var res = new EventEmitter(); + res.statusCode = 200; + it('Should have 0 listeners on the finish event', function() { + assert.strictEqual(res.listenerCount(FINISH), 0); + }); + it('Should not throw while handling the req/res objects', function() { + assert.doesNotThrow(function() { + requestHandlerInstance(req, res, noOp); + }); + }); + it('Should have 1 listener', function() { + assert.strictEqual(res.listenerCount(FINISH), 1); + }); + it('Should not throw when emitting the finish event', function() { + assert.doesNotThrow(function() { + res.emit(FINISH); + }); + }); + }); + describe('default path with req/res error', function(done) { + ee.removeAllListeners(); + var client = { + sendError: function() { + assert(true, 'sendError should be called'); + } + }; + var config = { + getServiceContext: function() { + assert(true, 'getServiceContext should be called'); + return { + service: 'stub-service', + version: 'stub-version' + }; + }, + lacksCredentials: function() { + return false; + }, + getVersion: function() { + return '1'; + } + }; + var errorHandlerInstance = restifyInterface(client, config); + var requestHandlerInstance = errorHandlerInstance(ee); + var req = new EventEmitter(); + var res = new EventEmitter(); + res.statusCode = 500; + it('Should have 0 Listeners on the finish event', function() { + assert.strictEqual(res.listenerCount(FINISH), 0); + }); + it('Should not throw on instantiation', function() { + assert.doesNotThrow(function() { + requestHandlerInstance(req, res, noOp); + }); + }); + it('Should have 1 listener on the finish event', function() { + assert.strictEqual(res.listenerCount(FINISH), 1); + }); + it('Should not throw on emission of the finish event', function() { + assert.doesNotThrow(function() { + res.emit(FINISH); + }); + }); + describe('Exercise the uncaughtException event path', function() { + it('Should call the sendError function property', function(done) { + client.sendError = function() { + assert(true, 'sendError should be called'); + done(); + }; + assert.doesNotThrow(function() { + ee.emit(UNCAUGHT_EVENT); + }); + }); + }); + }); + }); +}); diff --git a/handwritten/error-reporting/test/unit/testServiceConfiguration.js b/handwritten/error-reporting/test/unit/testServiceConfiguration.js new file mode 100644 index 00000000000..f1dc4e634f9 --- /dev/null +++ b/handwritten/error-reporting/test/unit/testServiceConfiguration.js @@ -0,0 +1,233 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; +var assert = require('assert'); +var is = require('is'); +var isString = is.string; +var isNumber = is.number; +var forEach = require('lodash.foreach'); +var assign = require('lodash.assign'); +var omitBy = require('lodash.omitby'); +var Configuration = require('../fixtures/configuration.js'); +var level = process.env.GCLOUD_ERRORS_LOGLEVEL; +var logger = require('../../src/logger.js')({ + logLevel: isNumber(level) ? level : 4 +}); +var env = { + GAE_SERVICE: process.env.GAE_SERVICE, + GAE_VERSION: process.env.GAE_VERSION, + GAE_MODULE_VERSION: process.env.GAE_MODULE_VERSION, + FUNCTION_NAME: process.env.FUNCTION_NAME, + GAE_MODULE_NAME: process.env.GAE_MODULE_NAME +}; +function sterilizeEnv() { + forEach(env, function(val, key) { + delete process.env[key]; + }); +} +function setEnv(serviceName, serviceVersion, moduleName, mv, fn) { + assign(process.env, omitBy({ + GAE_SERVICE: serviceName, + GAE_VERSION: serviceVersion, + GAE_MODULE_NAME: moduleName, + GAE_MODULE_VERSION: mv, + FUNCTION_NAME: fn + }, function(val) {return !isString(val);})); +} +function restoreEnv() { + assign(process.env, env); +} + +describe('Testing service configuration', function() { + beforeEach(function() {sterilizeEnv();}); + after(function() {restoreEnv();}); + it( + 'A Configuration uses the function name as the service name on GCF ' + + 'if the service name is not given in the given config', + function() { + setEnv('someModuleName', '1.0', 'InvalidName', 'InvalidVersion', + 'someFunction'); + var c = new Configuration({}, logger); + assert.deepEqual(c.getServiceContext().service, 'someFunction'); + // FUNCTION_NAME is set and the user didn't specify a version, and so + // the version should not be defined + assert.deepEqual(c.getServiceContext().version, undefined); + } + ); + it( + 'A Configuration uses the function name as the service name on GCF ' + + 'if the service name is not given in the given config ' + + 'even if the GAE_SERVICE was not set', + function() { + setEnv(null, '1.0', null, 'InvalidVersion', 'someFunction'); + var c = new Configuration({}, logger); + assert.deepEqual(c.getServiceContext().service, 'someFunction'); + // The user didn't specify a version and FUNCTION_NAME is defined, and + // so the version should not be defined + assert.deepEqual(c.getServiceContext().version, undefined); + } + ); + it( + 'A Configuration uses the GAE_SERVICE env value as the service name ' + + 'if the FUNCTION_NAME env variable is not set and the given config ' + + 'does not specify the service name', + function() { + setEnv('someModuleName', '1.0', 'InvalidName', 'InvalidVersion', null); + var c = new Configuration({}, logger); + assert.deepEqual(c.getServiceContext().service, 'someModuleName'); + // The user didn't specify a version, and FUNCTION_NAME is not defined, + // and so use the GAE_MODULE_VERSION + assert.deepEqual(c.getServiceContext().version, '1.0'); + } + ); + it( + 'A Configuration uses the service name in the given config if it ' + + 'was specified and both the GAE_SERVICE and FUNCTION_NAME ' + + 'env vars are set', + function() { + setEnv('someModuleName', '1.0', 'InvalidName', 'InvalidVersion', + 'someFunction'); + var c = new Configuration({ + serviceContext: { + service: 'customService' + } + }, logger); + assert.deepEqual(c.getServiceContext().service, 'customService'); + // The user didn't specify a version, but FUNCTION_NAME is defined, and + // so the version should not be defined + assert.deepEqual(c.getServiceContext().version, undefined); + } + ); + it( + 'A Configuration uses the service name and version in the given config' + + 'they were both specified and both the GAE_SERVICE and FUNCTION_NAME ' + + 'env vars are set', + function() { + setEnv('someModuleName', '1.0', 'InvalidName', 'InvalidVersion', + 'someFunction'); + var c = new Configuration({ + serviceContext: { + service: 'customService', + version: '2.0' + } + }, logger); + assert.deepEqual(c.getServiceContext().service, 'customService'); + // The user specified version should be used + assert.deepEqual(c.getServiceContext().version, '2.0'); + } + ); + it( + 'A Configuration uses the service name in the given config if it ' + + 'was specified and only the GAE_SERVICE env var is set', + function() { + setEnv('someModuleName', '1.0', 'InvalidName', 'InvalidVersion', null); + var c = new Configuration({ + serviceContext: { + service: 'customService' + } + }, logger); + assert.deepEqual(c.getServiceContext().service, 'customService'); + // The user didn't specify a version and FUNCTION_NAME is not defined + // and so the GAE_MODULE_VERSION should be used + assert.deepEqual(c.getServiceContext().version, '1.0'); + } + ); + it( + 'A Configuration uses the service name and version in the given config ' + + 'they were both specified and only the GAE_SERVICE env var is set', + function() { + setEnv('someModuleName', '1.0', 'InvalidName', 'InvalidVersion', null); + var c = new Configuration({ + serviceContext: { + service: 'customService', + version: '2.0' + } + }, logger); + assert.deepEqual(c.getServiceContext().service, 'customService'); + // The user specified version should be used + assert.deepEqual(c.getServiceContext().version, '2.0'); + } + ); + it( + 'A Configuration uses the service name in the given config if it ' + + 'was specified and only the FUNCTION_NAME env var is set', + function() { + setEnv(null, '1.0', null, 'InvalidVersion', 'someFunction'); + var c = new Configuration({ + serviceContext: { + service: 'customService' + } + }, logger); + assert.deepEqual(c.getServiceContext().service, 'customService'); + // The user didn't specify a version and thus because FUNCTION_NAME is + // defined the version should not be defined + assert.deepEqual(c.getServiceContext().version, undefined); + } + ); + it( + 'A Configuration uses the service name and version in the given config ' + + 'if they were both specified and only the FUNCTION_NAME env var is set', + function() { + setEnv(null, '1.0', null, 'InvalidVersion', 'someFunction'); + var c = new Configuration({ + serviceContext: { + service: 'customService', + version: '2.0' + } + }, logger); + assert.strictEqual(c.getServiceContext().service, 'customService'); + // The user specified version should be used + assert.strictEqual(c.getServiceContext().version, '2.0'); + } + ); + it( + 'A Configuration uses the service name "node" and no version if ' + + 'GAE_SERVICE is not set, FUNCTION_NAME is not set, and the user has ' + + 'not specified a service name or version', + function() { + var c = new Configuration({}, logger); + assert.strictEqual(c.getServiceContext().service, 'node'); + assert.strictEqual(c.getServiceContext().version, undefined); + } + ); + it( + 'A Configuration uses the service name "node" and no version if ' + + 'GAE_SERVICE is not set, FUNCTION_NAME is not set, and the user has ' + + 'not specified a service name or version even if GAE_VERSION has ' + + 'been set', + function() { + setEnv(null, 'InvalidVersion', null, 'InvalidVersion', null); + var c = new Configuration({}, logger); + assert.strictEqual(c.getServiceContext().service, 'node'); + assert.strictEqual(c.getServiceContext().version, undefined); + } + ); + it( + 'A Configuration uses the service name "node" and the user specified ' + + 'version if GAE_SERVICE is not set, FUNCTION_NAME is not set, and the ' + + 'user has not specified a service name but has specified a version', + function() { + var c = new Configuration({ + serviceContext: { + version: '2.0' + } + }, logger); + assert.deepEqual(c.getServiceContext().service, 'node'); + assert.deepEqual(c.getServiceContext().version, '2.0'); + } + ); +}); diff --git a/handwritten/error-reporting/test/unit/testUncaught.js b/handwritten/error-reporting/test/unit/testUncaught.js new file mode 100644 index 00000000000..8d9fb503a7e --- /dev/null +++ b/handwritten/error-reporting/test/unit/testUncaught.js @@ -0,0 +1,95 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; + +var assert = require('assert'); +var isString = require('is').string; +var uncaughtSetup = require('../../src/interfaces/uncaught.js'); +var Configuration = require('../fixtures/configuration.js'); +var createLogger = require('../../src/logger.js'); +var originalHandlers = process.listeners('uncaughtException'); +var spawn = require('child_process').spawn; + +function reattachOriginalListeners() { + for (var i = 0; i < originalHandlers.length; i++) { + process.on('uncaughtException', originalHandlers[i]); + } +} + +// Returns a Configuration object with given value for reportUncaughtExceptions, +// and dummy logger +function getConfig(reportUncaughtExceptions) { + var c = new Configuration({ + reportUncaughtExceptions: reportUncaughtExceptions + }, createLogger({logLevel: 4})); + c.lacksCredentials = function() { + return false; + }; + return c; +} + +describe('Uncaught exception handler behvaiour', function() { + var UNCAUGHT = 'uncaughtException'; + describe('Instantiation', function() { + beforeEach(function() {process.removeAllListeners(UNCAUGHT);}); + it('Should throw without a configuration', function() { + assert.throws(uncaughtSetup); + }); + it('Should not throw given a valid configuration', function() { + assert.doesNotThrow(uncaughtSetup.bind(null, {}, getConfig(false))); + assert.doesNotThrow(uncaughtSetup.bind(null, {}, getConfig(true))); + }); + it('Should return the process object after instantiation', function() { + assert.strictEqual(process, uncaughtSetup({}, getConfig(true))); + }); + it('Should not attach a listener to the uncaughtException event if ' + + 'reportUncaughtExceptions is false', function() { + uncaughtSetup({}, getConfig(false)); + assert.strictEqual(process.listeners(UNCAUGHT).length, 0); + }); + it('Should attach a listener to the uncaughtException event if ' + + 'reportUncaughtExceptions is true', function() { + uncaughtSetup({}, getConfig(true)); + assert.strictEqual(process.listeners(UNCAUGHT).length, 1); + }); + }); + describe('Uncaught exception handling shutdown behaviour', function() { + before(function() { + if (!isString(process.env.GOOGLE_APPLICATION_CREDENTIALS) || + !isString(process.env.GCLOUD_PROJECT)) { + return this.skip(); + } + }); + after(function() { + reattachOriginalListeners(); + }); + it('Should terminate before 2500ms', function(done) { + var TERMINATE_MSG = 'Should terminate before 2500ms'; + this.timeout(3500); + var isolate = spawn('./node_modules/mocha/bin/mocha', + ['../../test/fixtures/uncaughtExitBehaviour.js'], {env: process.env}); + isolate.on('close', function() { + done(); + }); + isolate.on('error', function() { + console.log('Test isolate encountered error:', '\n', arguments); + assert(false, TERMINATE_MSG); + done(); + }); + }); + }); +}); diff --git a/handwritten/error-reporting/utils/fuzzer.js b/handwritten/error-reporting/utils/fuzzer.js new file mode 100644 index 00000000000..956a688aae3 --- /dev/null +++ b/handwritten/error-reporting/utils/fuzzer.js @@ -0,0 +1,315 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// jscs:disable +// jshint ignore: start + +'use strict'; +var indexOf = require('lodash.indexof'); +var without = require('lodash.without'); +var maxBy = require('lodash.maxby'); +var random = require('lodash.random'); +var is = require('is'); +var isNumber = is.number; +var isObject = is.object; +var isString = is.string; +var isArray = is.array; +var isNull = is.null; +var isFunction = is.function; + +function Fuzzer() { } + +Fuzzer.prototype.generate = {}; + +Fuzzer.prototype.generate.types = function() { + return [ + "object", + "array", + "string", + "number", + "null", + "undefined", + "function", + "boolean" + ]; +} + +Fuzzer.prototype.generate.string = function(len) { + var lenChecked = isNumber(len) ? len : 10; + var chars = []; + + for (var i = 0; i < lenChecked; i++) { + + chars.push(String.fromCharCode(random(32, 126))); + } + + return chars.join(""); +}; + +Fuzzer.prototype.generate.boolean = function() { + + return !!random(0, 1); +} + +Fuzzer.prototype.generate.alphaNumericString = function(len) { + var lenChecked = isNumber(len) ? len : 10; + var chars = []; + var thisRange = []; + var ranges = [[48, 57], [65, 90], [97, 122]]; + + for (var i = 0; i < lenChecked; i++) { + + thisRange = ranges[random(0, 2)]; + chars.push( + String.fromCharCode( + random( + thisRange[0] + , thisRange[1] + ) + ) + ); + } + + return chars.join(""); +} + +Fuzzer.prototype.generate.function = function() { + + var availableTypes = without(this.types(), "function"); + var typeToGen = this.types()[random(0, availableTypes.length-1)]; + var fnToCall = this[typeToGen]; + + return function() { + + return fnToCall(); + }; +} + +Fuzzer.prototype.generate.number = function(lower, upper) { + + var lowerChecked = isNumber(lower) ? lower : 0; + var upperChecked = isNumber(upper) ? upper : 100; + + return random(lowerChecked, upperChecked); +} + +Fuzzer.prototype.generate.null = function() { + + return null; +} + +Fuzzer.prototype.generate.undefined = function() { + + return undefined; +} + +Fuzzer.prototype.generate.array = function(len, ofOneType, currentDepth, allowedDepth) { + + var lenChecked = isNumber(len) ? len : random(1, 10); + var availableTypes = (isString(ofOneType) && (indexOf(this.types(), ofOneType) > -1)) ? [ofOneType] : this.types(); + var currentDepthChecked = isNumber(currentDepth) ? currentDepth : 0; + var allowedDepthChecked = isNumber(allowedDepth) ? allowedDepth : 3; + var arr = []; + var currentTypeBeingGenerated = ""; + currentDepthChecked += 1; + + // Deny the ability to nest more objects + if (currentDepthChecked >= allowedDepthChecked) { + + availableTypes = without(this.types(), "object", "array"); + } + + for (var i = 0; i < lenChecked; i++) { + currentTypeBeingGenerated = availableTypes[random(0, availableTypes.length-1)]; + + if (currentTypeBeingGenerated === "object") { + + arr.push( + this[currentTypeBeingGenerated]( + null + , currentDepthChecked + , allowedDepthChecked + ) + ); + } else if (currentTypeBeingGenerated === "array") { + + arr.push( + this[currentTypeBeingGenerated]( + null + , ofOneType + , currentDepthChecked + , allowedDepthChecked + ) + ); + } else { + + arr.push(this[currentTypeBeingGenerated]()); + } + } + + return arr; +} + +Fuzzer.prototype.generate.object = function(numProperties, currentDepth, allowedDepth) { + + var numPropertiesChecked = isNumber(numProperties) ? numProperties : random(1, 10); + var currentDepthChecked = isNumber(currentDepth) ? currentDepth : 0; + var allowedDepthChecked = isNumber(allowedDepth) ? allowedDepth : 3; + var obj = {}; + currentDepthChecked += 1; + + var availableTypes = this.types() + + // Deny the ability to nest more objects + if (currentDepth >= allowedDepth) { + availableTypes = without(availableTypes, "object", "array"); + } + + var currentTypeBeingGenerated = 0; + var currentKey = ""; + + for (var i = 0; i < numPropertiesChecked; i++) { + + currentTypeBeingGenerated = availableTypes[random(0, availableTypes.length-1)]; + currentKey = this.alphaNumericString(random(1, 10)); + + if (currentTypeBeingGenerated === "object") { + + obj[currentKey] = this[currentTypeBeingGenerated](null, currentDepthChecked, allowedDepthChecked); + } else if (currentTypeBeingGenerated === "array") { + + obj[currentKey] = this[currentTypeBeingGenerated](null, null, currentDepthChecked, allowedDepthChecked); + } else { + + obj[currentKey] = this[currentTypeBeingGenerated](); + } + } + + return obj; +} + +Fuzzer.prototype._backFillUnevenTypesArrays = function(argsTypesArray) { + + var largestIndex = 0; + var largestLength = (maxBy( + argsTypesArray + , function(o) { return o.length } + )).length; + + for (var i = 0; i < argsTypesArray.length; i++) { + if (argsTypesArray[i].length !== largestLength) { + + while (argsTypesArray[i].length < largestLength) { + argsTypesArray[i].push( + argsTypesArray[i][random(0, argsTypesArray[i].length-1)] + ); + } + } + } + + return argsTypesArray; +} + +Fuzzer.prototype._normalizeTypesArrayLengths = function(argsTypesArray) { + + var allAreTheSameLength = true; + var lastLength = argsTypesArray[0].length; + + for (var i = 1; i < argsTypesArray.length; i++) { + + if (argsTypesArray[i].length !== lastLength) { + + allAreTheSameLength = false; + break; + } + } + + if (allAreTheSameLength) { + + return argsTypesArray; + } + + return this._backFillUnevenTypesArrays(argsTypesArray); +} + +Fuzzer.prototype._generateTypesToFuzzWith = function(expectsArgTypes) { + var argsTypesArray = []; + var tmpArray = this.generate.types(); + + for (var i = 0; i < expectsArgTypes.length; i++) { + + if (!isArray(expectsArgTypes[i])) { + argsTypesArray.push( + without( + this.generate.types() + , expectsArgTypes[i] + ) + ); + } else { + + for (var j = 0; j < expectsArgTypes[i].length; j++) { + + tmpArray = without( + tmpArray + , expectsArgTypes[i][j] + ); + } + + argsTypesArray.push([].concat(tmpArray)); + tmpArray = this.generate.types(); + } + } + + argsTypesArray = this._normalizeTypesArrayLengths(argsTypesArray); + return argsTypesArray; +} + +Fuzzer.prototype._generateValuesForFuzzTyping = function(typesToFuzzOnEach, index) { + var args = []; + var typeToGen = ""; + + for (var i = 0; i < typesToFuzzOnEach.length; i++) { + typeToGen = typesToFuzzOnEach[i][index]; + + args.push(this.generate[typeToGen]()); + } + + return args; +} + +Fuzzer.prototype.fuzzFunctionForTypes = function(fnToFuzz, expectsArgTypes, cb, withContext) { + var expectsArgTypesChecked = isArray(expectsArgTypes) ? expectsArgTypes : []; + var typesToFuzzOnEach = this._generateTypesToFuzzWith(expectsArgTypesChecked); + var withContextChecked = (withContext !== undefined) ? withContext : null; + + var returnValue = undefined; + + for (var i = 0; i < typesToFuzzOnEach[0].length; i++) { + + returnValue = fnToFuzz.apply( + withContext + , this._generateValuesForFuzzTyping(typesToFuzzOnEach, i) + ); + + if (isFunction(cb)) { + + cb(returnValue); + } + } + + return true; +} + +module.exports = Fuzzer; From 15ace9ffec1d95ffa26346b9a69ecc8928471499 Mon Sep 17 00:00:00 2001 From: Stephen Sawchuk Date: Mon, 10 Apr 2017 21:38:40 -0400 Subject: [PATCH 002/527] update deps --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 7bdcd643a36..b4303fed44f 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -32,7 +32,7 @@ "restify": "^4.1.0" }, "dependencies": { - "@google-cloud/common": "^0.12.0", + "@google-cloud/common": "^0.13.0", "extend": "^3.0.0", "is": "^3.2.0", "lodash.has": "^4.5.2" From 16f0b9be9f4f368bf08007bfbc154a3e13e3ad60 Mon Sep 17 00:00:00 2001 From: Cristian Cavalli Date: Thu, 13 Apr 2017 13:43:39 -0700 Subject: [PATCH 003/527] Add errors system-test to system-test run (#2189) --- handwritten/error-reporting/package.json | 1 + .../system-test/testAuthClient.js | 192 ++++++++++-------- 2 files changed, 104 insertions(+), 89 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index b4303fed44f..a71f316ba80 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -24,6 +24,7 @@ "lodash.merge": "^4.6.0", "lodash.omit": "^4.5.0", "lodash.omitby": "^4.6.0", + "lodash.pick": "^4.4.0", "lodash.random": "^3.2.0", "lodash.without": "^4.4.0", "mocha": "^3.2.0", diff --git a/handwritten/error-reporting/system-test/testAuthClient.js b/handwritten/error-reporting/system-test/testAuthClient.js index c0b02ab1ba4..ea733123e42 100644 --- a/handwritten/error-reporting/system-test/testAuthClient.js +++ b/handwritten/error-reporting/system-test/testAuthClient.js @@ -27,45 +27,105 @@ var isString = is.string; var isEmpty = is.empty; var forEach = require('lodash.foreach'); var assign = require('lodash.assign'); +var pick = require('lodash.pick'); +var omitBy = require('lodash.omitby'); const ERR_TOKEN = '_@google_STACKDRIVER_INTEGRATION_TEST_ERROR__'; - - -describe('Behvaiour acceptance testing', function() { - before(function() { - // Before starting the suite make sure we have the proper resources - if (!isString(process.env.GCLOUD_PROJECT)) { - throw new Error( - 'The gcloud project id (GCLOUD_PROJECT) was not set in the env'); - } else if (!isString(process.env.STUBBED_API_KEY)) { - throw new Error( - 'The api key (STUBBED_API_KEY) was not set as an env variable'); - } else if (!isString(process.env.STUBBED_PROJECT_NUM)) { - throw new Error( - 'The project number (STUBBED_PROJECT_NUM) was not set in the env'); - } else if (process.env.NODE_ENV !== 'production') { - throw new Error( - 'The NODE_ENV is not set to production as an env variable. Please ' + - 'set NODE_ENV to production'); +const env = (function(injectedEnv) { + const envKeys = ['GOOGLE_APPLICATION_CREDENTIALS', 'GCLOUD_PROJECT', + 'NODE_ENV']; + class InstancedEnv { + constructor() { + assign(this, injectedEnv); + this._originalEnv = this._captureProcessProperties(); } - // In case we are running after unit mocks which were not destroyed properly - nock.cleanAll(); - }); + _captureProcessProperties() { + return omitBy(pick(process.env, envKeys), value => !isString(value)); + } + sterilizeProcess() { + forEach(envKeys, (v, k) => delete process.env[k]); + return this; + } + setProjectId() { + assign(process.env, { + GCLOUD_PROJECT: injectedEnv.projectId + }); + return this; + } + setProjectNumber() { + assign(process.env, { + GCLOUD_PROJECT: injectedEnv.projectNumber + }); + return this; + } + setKeyFilename() { + assign(process.env, { + GOOGLE_APPLICATION_CREDENTIALS: injectedEnv.keyFilename + }); + return this; + } + setProduction() { + assign(process.env, { + NODE_ENV: 'production' + }); + return this; + } + restoreProcessToOriginalState() { + assign(process.env, this._originalEnv); + return this; + } + injected() { + return assign({}, injectedEnv); + } + } + return new InstancedEnv(); +}(require('../../../system-test/env.js'))); +const SHOULD_RUN = (function() { + if (!isString(env.injected().projectId)) { + return new Error('The project id (projectId) was not set in the env'); + } + if (!isString(env.injected().apiKey)) { + return new Error('The api key (apiKey) was not set as an env variable'); + } + if (!isString(env.injected().projectNumber)) { + return new Error( + 'The project number (projectNumber) was not set in the env'); + } + if (!isString(env.injected().keyFilename)) { + return new Error( + 'The key filename (keyFilename) was not set in the env'); + } + return true; +}()); +const TEST_RUNNER = (function() { + if (SHOULD_RUN instanceof Error) { + console.log('Skipping error-reporting system tests:'); + console.log(' ' + SHOULD_RUN.message); + return describe.skip; + } + return describe; +}()); + +(TEST_RUNNER)('Errors system tests', function() { describe('Request/Response lifecycle mocking', function() { var sampleError = new Error(ERR_TOKEN); var errorMessage = new ErrorMessage().setMessage(sampleError); var fakeService, client, logger; + before(() => env.sterilizeProcess()); beforeEach(function() { + env.setProjectId().setKeyFilename().setProduction(); fakeService = nock( 'https://clouderrorreporting.googleapis.com/v1beta1/projects/' + - process.env.GCLOUD_PROJECT + env.projectId ).persist().post('/events:report'); logger = createLogger({logLevel: 5}); client = new RequestHandler( new Configuration({ignoreEnvironmentCheck: true}, logger), logger); }); afterEach(function() { + env.sterilizeProcess(); nock.cleanAll(); }); + after(() => env.restoreProcessToOriginalState()); describe('Receiving non-retryable errors', function() { it('Should fail', function(done) { this.timeout(5000); @@ -99,7 +159,8 @@ describe('Behvaiour acceptance testing', function() { describe('Using an API key', function() { it('Should provide the key as a query string on outgoing requests', function(done) { - var key = process.env.STUBBED_API_KEY; + env.sterilizeProcess().setProjectId().setProduction(); + var key = env.apiKey; var client = new RequestHandler(new Configuration( {key: key, ignoreEnvironmentCheck: true}, createLogger({logLevel: 5}))); @@ -125,30 +186,17 @@ describe('Behvaiour acceptance testing', function() { describe('System-live integration testing', function() { var sampleError = new Error(ERR_TOKEN); var errorMessage = new ErrorMessage().setMessage(sampleError.stack); - var oldEnv = { - GCLOUD_PROJECT: process.env.GCLOUD_PROJECT, - STUBBED_PROJECT_NUM: process.env.STUBBED_PROJECT_NUM, - NODE_ENV: process.env.NODE_ENV - }; - function sterilizeEnv() { - forEach(oldEnv, function(val, key) { - delete process.env[key]; - }); - } - function restoreEnv() { - assign(process.env, oldEnv); - } describe('Client creation', function() { describe('Using only project id', function() { describe('As a runtime argument', function() { var cfg, logger; before(function() { - sterilizeEnv(); + env.sterilizeProcess().setKeyFilename(); logger = createLogger({logLevel: 5}); - cfg = new Configuration({projectId: oldEnv.GCLOUD_PROJECT, + cfg = new Configuration({projectId: env.injected().projectId, ignoreEnvironmentCheck: true}, logger); }); - after(restoreEnv); + after(() => env.sterilizeProcess()); it('Should not throw on initialization', function(done) { this.timeout(10000); assert.doesNotThrow(function() { @@ -166,12 +214,11 @@ describe('Behvaiour acceptance testing', function() { describe('As an env variable', function() { var cfg, logger; before(function() { - sterilizeEnv(); - process.env.GCLOUD_PROJECT = oldEnv.GCLOUD_PROJECT; + env.sterilizeProcess().setProjectId().setKeyFilename(); logger = createLogger({logLevel: 5}); cfg = new Configuration({ignoreEnvironmentCheck: true}, logger); }); - after(restoreEnv); + after(() => env.sterilizeProcess()); it('Should not throw on initialization', function(done) { this.timeout(10000); assert.doesNotThrow(function() { @@ -191,14 +238,14 @@ describe('Behvaiour acceptance testing', function() { describe('As a runtime argument', function() { var cfg, logger; before(function() { - sterilizeEnv(); + env.sterilizeProcess().setKeyFilename(); logger = createLogger({logLevel: 5}); cfg = new Configuration({ - projectId: parseInt(oldEnv.STUBBED_PROJECT_NUM), + projectId: parseInt(env.injected().projectNumber), ignoreEnvironmentCheck: true }, logger); }); - after(restoreEnv); + after(() => env.sterilizeProcess()); it('Should not throw on initialization', function(done) { this.timeout(10000); assert.doesNotThrow(function() { @@ -216,12 +263,11 @@ describe('Behvaiour acceptance testing', function() { describe('As an env variable', function() { var cfg, logger; before(function() { - sterilizeEnv(); - process.env.GCLOUD_PROJECT = oldEnv.STUBBED_PROJECT_NUM; + env.sterilizeProcess().setKeyFilename().setProjectNumber(); logger = createLogger({logLevel: 5}); cfg = new Configuration({ignoreEnvironmentCheck: true}, logger); }); - after(restoreEnv); + after(() => env.sterilizeProcess()); it('Should not throw on initialization', function(done) { this.timeout(10000); assert.doesNotThrow(function() { @@ -248,14 +294,13 @@ describe('Behvaiour acceptance testing', function() { ].join(' '); var logger, client; before(function() { - delete process.env.NODE_ENV; + env.sterilizeProcess().setKeyFilename().setProjectId(); + process.env.NODE_ENV = 'null'; logger = createLogger({logLevel: 5}); client = new RequestHandler(new Configuration(undefined, logger), logger); }); - after(function() { - process.env.NODE_ENV = oldEnv.NODE_ENV; - }); + after(() => env.sterilizeProcess()); it('Should callback with an error', function(done) { client.sendError({}, function(err, response, body) { assert(err instanceof Error); @@ -265,33 +310,6 @@ describe('Behvaiour acceptance testing', function() { }); }); }); - // describe('An invalid env configuration', function() { - // var ERROR_STRING = [ - // 'Unable to find the project Id for communication with the', - // 'Stackdriver Error Reporting service. This app will be unable to', - // 'send errors to the reporting service unless a valid project Id', - // 'is supplied via runtime configuration or the GCLOUD_PROJECT', - // 'environmental variable.' - // ].join(' '); - // var logger, client; - // before(function() { - // delete process.env.GCLOUD_PROJECT; - // logger = createLogger({logLevel: 5}); - // client = new RequestHandler(new Configuration( - // {ignoreEnvironmentCheck: true}, logger), logger); - // }); - // after(function() { - // process.env.GCLOUD_PROJECT = oldEnv.GCLOUD_PROJECT; - // }); - // it('Should callback with an error', function(done) { - // client.sendError(errorMessage, function(err, response, body) { - // assert(err instanceof Error); - // assert.strictEqual(err.message, ERROR_STRING); - // assert.strictEqual(response, null); - // done(); - // }); - // }); - // }); }); describe('Success behaviour', function() { var er = new Error(ERR_TOKEN); @@ -299,15 +317,15 @@ describe('Behvaiour acceptance testing', function() { describe('Given a valid project id', function() { var logger, client, cfg; before(function() { - sterilizeEnv(); + env.sterilizeProcess(); logger = createLogger({logLevel: 5}); cfg = new Configuration({ - projectId: oldEnv.GCLOUD_PROJECT, + projectId: env.injected().projectId, ignoreEnvironmentCheck: true }, logger); client = new RequestHandler(cfg, logger); }); - after(restoreEnv); + after(() => env.sterilizeProcess()); it('Should succeed in its request', function(done) { client.sendError(em, function(err, response, body) { assert.strictEqual(err, null); @@ -321,19 +339,15 @@ describe('Behvaiour acceptance testing', function() { describe('Given a valid project number', function() { var logger, client, cfg; before(function() { - forEach(oldEnv, function(val, key) { - delete process.env[key]; - }); + env.sterilizeProcess(); logger = createLogger({logLevel: 5}); cfg = new Configuration({ - projectId: parseInt(oldEnv.STUBBED_PROJECT_NUM), + projectId: parseInt(env.injected().projectNumber), ignoreEnvironmentCheck: true }, logger); client = new RequestHandler(cfg, logger); }); - after(function() { - assign(process.env, oldEnv); - }); + after(() => env.sterilizeProcess()); it('Should succeed in its request', function(done) { client.sendError(em, function(err, response, body) { assert.strictEqual(err, null); From 5439015a02ec6224d7752ee5c4412417137960b3 Mon Sep 17 00:00:00 2001 From: Cristian Cavalli Date: Thu, 13 Apr 2017 18:33:43 -0700 Subject: [PATCH 004/527] remove uncaught interface (#2208) --- handwritten/error-reporting/README.md | 14 +++ .../error-reporting/src/configuration.js | 29 ------ handwritten/error-reporting/src/index.js | 4 - .../src/interfaces/uncaught.js | 67 ------------- .../test/fixtures/uncaughtExitBehaviour.js | 93 ------------------ .../test/unit/testConfiguration.js | 27 ------ .../error-reporting/test/unit/testUncaught.js | 95 ------------------- 7 files changed, 14 insertions(+), 315 deletions(-) delete mode 100644 handwritten/error-reporting/src/interfaces/uncaught.js delete mode 100644 handwritten/error-reporting/test/fixtures/uncaughtExitBehaviour.js delete mode 100644 handwritten/error-reporting/test/unit/testUncaught.js diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 54f56ab2b7c..6184b2e10df 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -44,6 +44,20 @@ var errors = require('@google-cloud/error-reporting')({ errors.report(new Error('Something broke!')); ``` +- **One may even catch and report application-wide uncaught errors:** + - *It is recommended to catch uncaughtExceptions for production-deployed applications* + - To read more about uncaught exception handling in Node.js and what it means for your application [please click here](https://nodejs.org/api/process.html#process_event_uncaughtexception) + +```js +var errors = require('@google-cloud/error-reporting')(); +process.on('uncaughtException', (e) => { + // Write the error to stderr. + console.error(e); + // Report that same error the Stackdriver Error Service + errors.report(e); +}); +``` + 1. **View reported errors:** Open Stackdriver Error Reporting at https://console.cloud.google.com/errors to view the reported errors. diff --git a/handwritten/error-reporting/src/configuration.js b/handwritten/error-reporting/src/configuration.js index 36add709104..d6d86f9e0e7 100644 --- a/handwritten/error-reporting/src/configuration.js +++ b/handwritten/error-reporting/src/configuration.js @@ -57,19 +57,6 @@ var Configuration = function(givenConfig, logger) { * @defaultvalue Object */ this._logger = logger; - /** - * The _reportUncaughtExceptions property is meant to contain the optional - * runtime configuration property reportUncaughtExceptions. This property will - * default to true if not given false through the runtime configuration - * meaning that the default behavior is to catch uncaught exceptions, report - * them to the Stackdriver Errors API and then exit. If given false uncaught - * exceptions will not be listened for and not be caught or reported. - * @memberof Configuration - * @private - * @type {Boolean} - * @defaultvalue true - */ - this._reportUncaughtExceptions = true; /** * The _shouldReportErrorsToAPI property is meant to denote whether or not * the Stackdriver error reporting library will actually try to report Errors @@ -276,12 +263,6 @@ Configuration.prototype._gatherLocalConfiguration = function() { 'true in the runtime configuration object' ].join(' ')); } - if (isBoolean(this._givenConfiguration.reportUncaughtExceptions)) { - this._reportUncaughtExceptions = this._givenConfiguration - .reportUncaughtExceptions; - } else if (has(this._givenConfiguration, 'reportUncaughtExceptions')) { - throw new Error('config.reportUncaughtExceptions must be a boolean'); - } if (isString(this._givenConfiguration.key)) { this._key = this._givenConfiguration.key; } else if (has(this._givenConfiguration, 'key')) { @@ -357,16 +338,6 @@ Configuration.prototype._checkLocalProjectId = function(cb) { } return this._projectId; }; -/** - * Returns the _reportUncaughtExceptions property on the instance. - * @memberof Configuration - * @public - * @function getReportUncaughtExceptions - * @returns {Boolean} - returns the _reportUncaughtExceptions property - */ -Configuration.prototype.getReportUncaughtExceptions = function() { - return this._reportUncaughtExceptions; -}; /** * Returns the _shouldReportErrorsToAPI property on the instance. * @memberof Configuration diff --git a/handwritten/error-reporting/src/index.js b/handwritten/error-reporting/src/index.js index 8a134e8bd29..3116dd19694 100644 --- a/handwritten/error-reporting/src/index.js +++ b/handwritten/error-reporting/src/index.js @@ -25,7 +25,6 @@ var manual = require('./interfaces/manual.js'); var express = require('./interfaces/express.js'); var restify = require('./interfaces/restify'); var messageBuilder = require('./interfaces/message-builder.js'); -var uncaughtException = require('./interfaces/uncaught.js'); var createLogger = require('./logger.js'); /** @@ -84,9 +83,6 @@ function Errors(initConfiguration) { var config = new Configuration(initConfiguration, logger); var client = new AuthClient(config, logger); - // Setup the uncaught exception handler - uncaughtException(client, config); - // Build the application interfaces for use by the hosting application /** * @example diff --git a/handwritten/error-reporting/src/interfaces/uncaught.js b/handwritten/error-reporting/src/interfaces/uncaught.js deleted file mode 100644 index e426e5d25e0..00000000000 --- a/handwritten/error-reporting/src/interfaces/uncaught.js +++ /dev/null @@ -1,67 +0,0 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; -var errorHandlerRouter = require('../error-router.js'); -var ErrorMessage = require('../classes/error-message.js'); - -/** - * Exits the process with exit code `1` which indicates that an unhandled error - * occurred. !! Invocation of this function will terminate the process !! - * @function handleProcessExit - * @return {Undefined} - does not return a value - */ -function handleProcessExit() { process.exit(1); } - -/** - * If the configuraiton allows, install an uncaught exception handler that will - * report the uncaught error to the API and then terminate the process. - * @function handlerSetup - * @param {AuthClient} client - the API client for communication with the - * Stackdriver Error API - * @param {Configuration} config - the init configuration - * @returns {Null|process} - Returns null if the config demands ignoring - * uncaught - * exceptions, otherwise return the process instance - */ -function handlerSetup(client, config) { - /** - * The actual exception handler creates a new instance of `ErrorMessage`, - * extracts infomation from the propagated `Error` and marshals it into the - * `ErrorMessage` instance, attempts to send this `ErrorMessage` instance to - * the Stackdriver Error Reporting API. Subsequently the process is - * terminated. - * @function uncaughtExceptionHandler - * @listens module:process~event:uncaughtException - * @param {Error} err - The error that has been uncaught to this point - * @returns {Undefined} - does not return a value - */ - function uncaughtExceptionHandler(err) { - var em = new ErrorMessage(); - errorHandlerRouter(err, em); - client.sendError(em, handleProcessExit); - setTimeout(handleProcessExit, 2000); - } - - if (!config.getReportUncaughtExceptions() || config.lacksCredentials()) { - // Do not attach a listener to the process - return null; - } - - return process.on('uncaughtException', uncaughtExceptionHandler); -} - -module.exports = handlerSetup; diff --git a/handwritten/error-reporting/test/fixtures/uncaughtExitBehaviour.js b/handwritten/error-reporting/test/fixtures/uncaughtExitBehaviour.js deleted file mode 100644 index 7f4b8728ad0..00000000000 --- a/handwritten/error-reporting/test/fixtures/uncaughtExitBehaviour.js +++ /dev/null @@ -1,93 +0,0 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; -var uncaughtSetup = require('../../src/interfaces/uncaught.js'); -var nock = require('nock'); -var createLogger = require('../../src/logger.js'); -var isString = require('is').string; -var Configuration = require('../fixtures/configuration.js'); -var RequestHandler = require('../../src/google-apis/auth-client.js'); -var originalHandlers = process.listeners('uncaughtException'); -var UNCAUGHT = 'uncaughtException'; -var client; - -function reattachOriginalListeners() { - for (var i = 0; i < originalHandlers.length; i++) { - process.on(UNCAUGHT, originalHandlers[i]); - } -} -var env = { - NODE_ENV: process.env.NODE_ENV -}; -function setEnv() { - process.env.NODE_ENV = 'production'; -} -function restoreEnv() { - process.env.NODE_ENV = env.NODE_ENV; -} - -describe('Uncaught Exception exit behaviour', function() { - before(function() { - process.removeAllListeners(UNCAUGHT); - if (!isString(process.env.GCLOUD_PROJECT)) { - // The gcloud project id (GCLOUD_PROJECT) was not set as an env variable - this.skip(); - process.exit(1); - } else if (!isString(process.env.GOOGLE_APPLICATION_CREDENTIALS)) { - // The app credentials (GOOGLE_APPLICATION_CREDENTIALS) - // was not set as an env variable - this.skip(); - process.exit(1); - } - setEnv(); - }); - after(function() { - nock.cleanAll(); - nock.enableNetConnect(); - reattachOriginalListeners(); - restoreEnv(); - }); - it('Should attempt to report the uncaught exception', function(done) { - var id = 'xyz'; - nock( - 'http://metadata.google.internal/computeMetadata/v1/project' - ).get('/project-id').times(1).reply(200, id); - nock('https://accounts.google.com:443/o/oauth2') - .post('/token').query(function() {return true;}).reply(200, { - refresh_token: 'hello', - access_token: 'goodbye', - expiry_date: new Date(9999, 1, 1) - }); - this.timeout(2000); - nock( - 'https://clouderrorreporting.googleapis.com/v1beta1/projects/' + id - ).post('/events:report').once().reply(200, function() { - done(); - return {success: true}; - }); - var cfg = new Configuration( - {reportUncaughtExceptions: true, projectId: 'xyz'}); - cfg.lacksCredentials = function() { - return false; - }; - client = new RequestHandler(cfg, createLogger({logLevel: 4})); - uncaughtSetup(client, cfg); - setTimeout(function() { - throw new Error('This error was supposed to be thrown'); - }, 10); - }); -}); diff --git a/handwritten/error-reporting/test/unit/testConfiguration.js b/handwritten/error-reporting/test/unit/testConfiguration.js index 13529cfca04..44f96061c81 100644 --- a/handwritten/error-reporting/test/unit/testConfiguration.js +++ b/handwritten/error-reporting/test/unit/testConfiguration.js @@ -29,7 +29,6 @@ var nock = require('nock'); var METADATA_URL = 'http://metadata.google.internal/computeMetadata/v1/project'; -process.removeAllListeners('uncaughtException'); var env = { NODE_ENV: process.env.NODE_ENV, GCLOUD_PROJECT: process.env.GCLOUD_PROJECT, @@ -84,12 +83,6 @@ describe('Configuration class', function() { it('Should have a property reflecting the config argument', function() { assert.deepEqual(c._givenConfiguration, stubConfig); }); - it('Should reportUncaughtExceptions', function() { - assert.strictEqual(c.getReportUncaughtExceptions(), true); - }); - it('Should not reportUncaughtExceptions', function() { - assert.strictEqual(c.getShouldReportErrorsToAPI(), false); - }); it('Should not have a project id', function() { assert.strictEqual(c._projectId, null); }); @@ -125,11 +118,6 @@ describe('Configuration class', function() { }); }); describe('exception behaviour', function() { - it('Should throw', function() { - assert.throws(function() { - new Configuration({reportUncaughtExceptions: 1}, logger); - }); - }); it('Should throw if invalid type for key', function() { assert.throws(function() { new Configuration({key: null}, logger); @@ -294,21 +282,6 @@ describe('Configuration class', function() { assert.strictEqual(c.getKey(), key); }); }); - describe('reportUncaughtExceptions', function() { - var c; - var projectId = '123-xyz'; - var reportUncaughtExceptions = false; - before(function() { - c = new Configuration({ - projectId: projectId, - reportUncaughtExceptions: reportUncaughtExceptions - }); - }); - it('Should assign', function() { - assert.strictEqual(c.getReportUncaughtExceptions(), - reportUncaughtExceptions); - }); - }); }); }); }); diff --git a/handwritten/error-reporting/test/unit/testUncaught.js b/handwritten/error-reporting/test/unit/testUncaught.js deleted file mode 100644 index 8d9fb503a7e..00000000000 --- a/handwritten/error-reporting/test/unit/testUncaught.js +++ /dev/null @@ -1,95 +0,0 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -var assert = require('assert'); -var isString = require('is').string; -var uncaughtSetup = require('../../src/interfaces/uncaught.js'); -var Configuration = require('../fixtures/configuration.js'); -var createLogger = require('../../src/logger.js'); -var originalHandlers = process.listeners('uncaughtException'); -var spawn = require('child_process').spawn; - -function reattachOriginalListeners() { - for (var i = 0; i < originalHandlers.length; i++) { - process.on('uncaughtException', originalHandlers[i]); - } -} - -// Returns a Configuration object with given value for reportUncaughtExceptions, -// and dummy logger -function getConfig(reportUncaughtExceptions) { - var c = new Configuration({ - reportUncaughtExceptions: reportUncaughtExceptions - }, createLogger({logLevel: 4})); - c.lacksCredentials = function() { - return false; - }; - return c; -} - -describe('Uncaught exception handler behvaiour', function() { - var UNCAUGHT = 'uncaughtException'; - describe('Instantiation', function() { - beforeEach(function() {process.removeAllListeners(UNCAUGHT);}); - it('Should throw without a configuration', function() { - assert.throws(uncaughtSetup); - }); - it('Should not throw given a valid configuration', function() { - assert.doesNotThrow(uncaughtSetup.bind(null, {}, getConfig(false))); - assert.doesNotThrow(uncaughtSetup.bind(null, {}, getConfig(true))); - }); - it('Should return the process object after instantiation', function() { - assert.strictEqual(process, uncaughtSetup({}, getConfig(true))); - }); - it('Should not attach a listener to the uncaughtException event if ' + - 'reportUncaughtExceptions is false', function() { - uncaughtSetup({}, getConfig(false)); - assert.strictEqual(process.listeners(UNCAUGHT).length, 0); - }); - it('Should attach a listener to the uncaughtException event if ' + - 'reportUncaughtExceptions is true', function() { - uncaughtSetup({}, getConfig(true)); - assert.strictEqual(process.listeners(UNCAUGHT).length, 1); - }); - }); - describe('Uncaught exception handling shutdown behaviour', function() { - before(function() { - if (!isString(process.env.GOOGLE_APPLICATION_CREDENTIALS) || - !isString(process.env.GCLOUD_PROJECT)) { - return this.skip(); - } - }); - after(function() { - reattachOriginalListeners(); - }); - it('Should terminate before 2500ms', function(done) { - var TERMINATE_MSG = 'Should terminate before 2500ms'; - this.timeout(3500); - var isolate = spawn('./node_modules/mocha/bin/mocha', - ['../../test/fixtures/uncaughtExitBehaviour.js'], {env: process.env}); - isolate.on('close', function() { - done(); - }); - isolate.on('error', function() { - console.log('Test isolate encountered error:', '\n', arguments); - assert(false, TERMINATE_MSG); - done(); - }); - }); - }); -}); From 976f6cf613093f5ad9cfb8c2fb441a2c2a729c74 Mon Sep 17 00:00:00 2001 From: Eric Uldall Date: Fri, 14 Apr 2017 09:19:55 -0700 Subject: [PATCH 005/527] updated FQDN's to googleapis.com with a trailing dot (#2214) --- handwritten/error-reporting/src/google-apis/auth-client.js | 4 ++-- handwritten/error-reporting/system-test/testAuthClient.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/handwritten/error-reporting/src/google-apis/auth-client.js b/handwritten/error-reporting/src/google-apis/auth-client.js index d5c31fa0b9c..4f6570c9784 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.js +++ b/handwritten/error-reporting/src/google-apis/auth-client.js @@ -27,7 +27,7 @@ var isString = is.string; var SCOPES = ['https://www.googleapis.com/auth/cloud-platform']; /* @const {String} Base Error Reporting API */ -var API = 'https://clouderrorreporting.googleapis.com/v1beta1/projects'; +var API = 'https://clouderrorreporting.googleapis.com./v1beta1/projects'; /** * The RequestHandler constructor initializes several properties on the @@ -90,7 +90,7 @@ class RequestHandler extends common.Service { var pid = config.getProjectId(); super({ packageJson: pkg, - baseUrl: 'https://clouderrorreporting.googleapis.com/v1beta1/', + baseUrl: 'https://clouderrorreporting.googleapis.com./v1beta1/', scopes: SCOPES, projectId: pid !== null ? pid : undefined, projectIdRequired: true diff --git a/handwritten/error-reporting/system-test/testAuthClient.js b/handwritten/error-reporting/system-test/testAuthClient.js index ea733123e42..7855a86a9c3 100644 --- a/handwritten/error-reporting/system-test/testAuthClient.js +++ b/handwritten/error-reporting/system-test/testAuthClient.js @@ -114,8 +114,8 @@ const TEST_RUNNER = (function() { beforeEach(function() { env.setProjectId().setKeyFilename().setProduction(); fakeService = nock( - 'https://clouderrorreporting.googleapis.com/v1beta1/projects/' + - env.projectId + 'https://clouderrorreporting.googleapis.com./v1beta1/projects/' + + process.env.GCLOUD_PROJECT ).persist().post('/events:report'); logger = createLogger({logLevel: 5}); client = new RequestHandler( From dd6063a8386e0c12ee54c8f36c0148a0c69d6c4c Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Mon, 17 Apr 2017 11:49:13 -0700 Subject: [PATCH 006/527] Fix some formatting typos in the README (#2229) --- handwritten/error-reporting/README.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 6184b2e10df..bd1105e468f 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -28,11 +28,12 @@ runtime configuration object is set to `true`. In your project, on the command line: - ``` - # Install through npm while saving to the local 'package.json' - npm install --save @google-cloud/error-reporting - ``` -1. **Instrument your application:** +```bash + # Install through npm while saving to the local 'package.json' + npm install --save @google-cloud/error-reporting +``` + +2. **Instrument your application:** ```js // Require the library and initialize the error handler @@ -45,8 +46,8 @@ errors.report(new Error('Something broke!')); ``` - **One may even catch and report application-wide uncaught errors:** - - *It is recommended to catch uncaughtExceptions for production-deployed applications* - - To read more about uncaught exception handling in Node.js and what it means for your application [please click here](https://nodejs.org/api/process.html#process_event_uncaughtexception) + - *It is recommended to catch uncaughtExceptions for production-deployed applications.* + - To read more about uncaught exception handling in Node.js and what it means for your application [please click here](https://nodejs.org/api/process.html#process_event_uncaughtexception). ```js var errors = require('@google-cloud/error-reporting')(); @@ -58,7 +59,7 @@ process.on('uncaughtException', (e) => { }); ``` -1. **View reported errors:** +3. **View reported errors:** Open Stackdriver Error Reporting at https://console.cloud.google.com/errors to view the reported errors. From 097df627e8328b20f9e14ef45c55e561b41e4ee6 Mon Sep 17 00:00:00 2001 From: Stephen Sawchuk Date: Mon, 17 Apr 2017 16:16:09 -0400 Subject: [PATCH 007/527] error-reporting @ 0.1.0 tagged. --- handwritten/error-reporting/package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index a71f316ba80..8ddae16849e 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -50,5 +50,6 @@ "src", "utils", "index.js" - ] + ], + "version": "0.1.0" } From 5a83585d05c8f652a6458a510e4ebb688c710c1d Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Thu, 20 Apr 2017 15:08:47 -0700 Subject: [PATCH 008/527] Use WARN as the default `error-reporting` logging level (#2237) Fixes #2236: If the logging level is not specified when configuring the `error-reporting` library, warning messages are not displayed to the user. --- handwritten/error-reporting/.jshintignore | 4 --- handwritten/error-reporting/.jshintrc | 27 ------------------- handwritten/error-reporting/package.json | 3 ++- .../error-reporting/src/configuration.js | 4 +-- handwritten/error-reporting/src/logger.js | 9 ++++--- .../system-test/testAuthClient.js | 9 ++++--- .../error-reporting/test/unit/testLogger.js | 26 +++++++++++++++++- 7 files changed, 40 insertions(+), 42 deletions(-) delete mode 100644 handwritten/error-reporting/.jshintignore delete mode 100644 handwritten/error-reporting/.jshintrc diff --git a/handwritten/error-reporting/.jshintignore b/handwritten/error-reporting/.jshintignore deleted file mode 100644 index db20f1d7121..00000000000 --- a/handwritten/error-reporting/.jshintignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -test/e2e/node_modules -test/fixtures -coverage diff --git a/handwritten/error-reporting/.jshintrc b/handwritten/error-reporting/.jshintrc deleted file mode 100644 index 53d73b7e997..00000000000 --- a/handwritten/error-reporting/.jshintrc +++ /dev/null @@ -1,27 +0,0 @@ -{ - "bitwise": true, - "curly": true, - "eqeqeq": true, - "esnext": true, - "freeze": true, - "immed": true, - "indent": 2, - "latedef": "nofunc", - "maxlen": 100, - "newcap": true, - "node": true, - "noarg": true, - "quotmark": "single", - "strict": true, - "trailing": true, - "undef": true, - "unused": "vars", - "globals": { - "describe": false, - "it": false, - "before": false, - "beforeEach": false, - "after": false, - "afterEach": false - } -} diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 8ddae16849e..5ee1177ed31 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -6,7 +6,7 @@ "scripts": { "test": "nyc --exclude=\"fuzzer.js\" mocha ./test/unit/*.js", "system-test": "nyc --exclude=\"error-message.js\" mocha ./system-test/*.js", - "lint": "jshint src/ index.js", + "lint": "jshint -c ../../.jshintrc src system-test test utils && jscs -c ../../.jscsrc src system-test test utils", "publish-module": "node ../../scripts/publish.js error-reporting" }, "author": "Google Inc.", @@ -15,6 +15,7 @@ "body-parser": "^1.15.1", "express": "^4.13.4", "hapi": "^16.1.0", + "jscs": "^3.0.7", "jshint": "^2.9.2", "koa": "^1.2.0", "lodash.assign": "^4.2.0", diff --git a/handwritten/error-reporting/src/configuration.js b/handwritten/error-reporting/src/configuration.js index d6d86f9e0e7..a83188b8c45 100644 --- a/handwritten/error-reporting/src/configuration.js +++ b/handwritten/error-reporting/src/configuration.js @@ -324,7 +324,7 @@ Configuration.prototype._checkAuthConfiguration = function() { * id or error encountered during id capture * @returns {Undefined} - does not return anything */ -Configuration.prototype._checkLocalProjectId = function(cb) { +Configuration.prototype._checkLocalProjectId = function() { if (isString(this._projectId)) { // already has been set by the metadata service return this._projectId; @@ -355,7 +355,7 @@ Configuration.prototype.getShouldReportErrorsToAPI = function() { * @function getProjectId * @returns {String|Null} - returns the _projectId property */ -Configuration.prototype.getProjectId = function(cb) { +Configuration.prototype.getProjectId = function() { return this._checkLocalProjectId(); }; /** diff --git a/handwritten/error-reporting/src/logger.js b/handwritten/error-reporting/src/logger.js index 9024814ee44..da71a8dd56a 100644 --- a/handwritten/error-reporting/src/logger.js +++ b/handwritten/error-reporting/src/logger.js @@ -41,18 +41,19 @@ var logger = require('@google-cloud/common').logger; */ function createLogger(initConfiguration) { // Default to log level: warn (2) - var level = logger.WARN; + var DEFAULT_LEVEL = logger.LEVELS[2]; + var level = DEFAULT_LEVEL; if (has(process.env, 'GCLOUD_ERRORS_LOGLEVEL')) { // Cast env string as integer level = logger.LEVELS[~~process.env.GCLOUD_ERRORS_LOGLEVEL] || - logger.LEVELS.warn; + DEFAULT_LEVEL; } else if (isObject(initConfiguration) && has(initConfiguration, 'logLevel')) { if (isString(initConfiguration.logLevel)) { // Cast string as integer - level = logger.LEVELS[~~initConfiguration.logLevel] || logger.LEVELS.warn; + level = logger.LEVELS[~~initConfiguration.logLevel] || DEFAULT_LEVEL; } else if (isNumber(initConfiguration.logLevel)) { - level = logger.LEVELS[initConfiguration.logLevel] || logger.LEVELS.warn; + level = logger.LEVELS[initConfiguration.logLevel] || DEFAULT_LEVEL; } else { throw new Error('config.logLevel must be a number or decimal ' + 'representation of a number in string form'); diff --git a/handwritten/error-reporting/system-test/testAuthClient.js b/handwritten/error-reporting/system-test/testAuthClient.js index 7855a86a9c3..4aa5e01ce09 100644 --- a/handwritten/error-reporting/system-test/testAuthClient.js +++ b/handwritten/error-reporting/system-test/testAuthClient.js @@ -129,7 +129,8 @@ const TEST_RUNNER = (function() { describe('Receiving non-retryable errors', function() { it('Should fail', function(done) { this.timeout(5000); - client.sendError({}, function(err, response, body) { + client.sendError({}, function(err, response, + /* jshint unused:false */ body) { assert(err instanceof Error); assert.strictEqual(err.message.toLowerCase(), 'message cannot be empty.'); @@ -150,7 +151,8 @@ const TEST_RUNNER = (function() { intendedTries); return {error: 'Please try again later'}; }); - client.sendError(errorMessage, function(err, response, body) { + client.sendError(errorMessage, function(err, response, + /* jshint unused:false */ body) { assert.strictEqual(tries, intendedTries); done(); }); @@ -302,7 +304,8 @@ const TEST_RUNNER = (function() { }); after(() => env.sterilizeProcess()); it('Should callback with an error', function(done) { - client.sendError({}, function(err, response, body) { + client.sendError({}, function(err, response, + /* jshint unused:false */ body) { assert(err instanceof Error); assert.strictEqual(err.message, ERROR_STRING); assert.strictEqual(response, null); diff --git a/handwritten/error-reporting/test/unit/testLogger.js b/handwritten/error-reporting/test/unit/testLogger.js index cd7aa29e57f..c2a3074ad80 100644 --- a/handwritten/error-reporting/test/unit/testLogger.js +++ b/handwritten/error-reporting/test/unit/testLogger.js @@ -52,9 +52,33 @@ describe('logger', function() { }); }); describe('Default log level', function() { - it('Should be able to WARN by default', function() { + var oldLog; + var text; + beforeEach(function() { + oldLog = console.log; + text = ''; + console.log = function() { + oldLog.apply(this, arguments); + for (var i=0; i Date: Fri, 21 Apr 2017 14:45:41 -0700 Subject: [PATCH 009/527] Remove checks for valid credentials (#2246) Instead, the `@google-cloud/common` module will handle credential verification. Without this fix, the `error-reporting` library's checks for valid credentials were incorrect and would think that communication with the API would fail even though that was not the case. As a result, the library would not attempt to communicate with the API even though the communication would succeed. With this change, the error reporting library will always communicate with the API and will leave it to the `@google-cloud/common` module to handle issues with invalid credentials. Fixes #2245 --- .../error-reporting/src/configuration.js | 44 ------------------- .../error-reporting/src/interfaces/express.js | 4 -- .../error-reporting/src/interfaces/hapi.js | 18 +++----- .../error-reporting/src/interfaces/koa.js | 7 +-- .../error-reporting/src/interfaces/manual.js | 3 -- .../error-reporting/src/interfaces/restify.js | 3 -- 6 files changed, 6 insertions(+), 73 deletions(-) diff --git a/handwritten/error-reporting/src/configuration.js b/handwritten/error-reporting/src/configuration.js index a83188b8c45..18892607b55 100644 --- a/handwritten/error-reporting/src/configuration.js +++ b/handwritten/error-reporting/src/configuration.js @@ -22,8 +22,6 @@ var isObject = is.object; var isBoolean = is.boolean; var isString = is.string; var isNumber = is.number; -var isEmpty = is.empty; -var isNull = is.null; var version = require('../package.json').version; /** @@ -146,15 +144,6 @@ var Configuration = function(givenConfig, logger) { * @type {String} */ this._version = version; - /** - * Boolean flag indicating whether or not the configuration instance was able - * to find a set of usable credentials to attempt authorization against the - * Stackdriver API. - * @memberof Configuration - * @private - * @type {Boolean} - */ - this._lacksValidCredentials = true; /** * The _givenConfiguration property holds a ConfigurationOptions object * which, if valid, will be merged against by the values taken from the meta- @@ -278,29 +267,6 @@ Configuration.prototype._gatherLocalConfiguration = function() { } else if (has(this._givenConfiguration, 'credentials')) { throw new Error('config.credentials must be a valid credentials object'); } - this._checkAuthConfiguration(); -}; -/** - * The _checkAuthConfiguration function is responsible for determining whether - * or not a configuration instance, after having gathered configuration from - * environment and runtime, has credentials information enough to attempt - * authorization with the Stackdriver Errors API. - * @memberof Configuration - * @private - * @function _checkAuthConfiguration - * @returns {Undefined} - does not return anything - */ -Configuration.prototype._checkAuthConfiguration = function() { - if (!isNull(this._key) || !isNull(this._keyFilename) || - !isNull(this._credentials) || - !isEmpty(process.env.GOOGLE_APPLICATION_CREDENTIALS)) { - this._lacksValidCredentials = false; - } else { - this._logger.warn([ - 'Unable to find credential information on instance. This library will', - 'be unable to communicate with the Stackdriver API to save errors.' - ].join(' ')); - } }; /** * The _checkLocalProjectId function is responsible for determing whether the @@ -408,14 +374,4 @@ Configuration.prototype.getServiceContext = function() { Configuration.prototype.getVersion = function() { return this._version; }; -/** - * Returns the _lacksValidCredentials property on the instance. - * @memberof Configuration - * @public - * @function getVersion - * @returns {Boolean} - returns the _lacksValidCredentials property - */ -Configuration.prototype.lacksCredentials = function() { - return this._lacksValidCredentials; -}; module.exports = Configuration; diff --git a/handwritten/error-reporting/src/interfaces/express.js b/handwritten/error-reporting/src/interfaces/express.js index 07a0614a603..07803c173fe 100644 --- a/handwritten/error-reporting/src/interfaces/express.js +++ b/handwritten/error-reporting/src/interfaces/express.js @@ -48,10 +48,6 @@ function makeExpressHandler(client, config) { var ctxService = ''; var ctxVersion = ''; - if (config.lacksCredentials()) { - next(err); - } - if (isObject(config)) { ctxService = config.getServiceContext().service; ctxVersion = config.getServiceContext().version; diff --git a/handwritten/error-reporting/src/interfaces/hapi.js b/handwritten/error-reporting/src/interfaces/hapi.js index 10f542c8863..9f8855a2853 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.js +++ b/handwritten/error-reporting/src/interfaces/hapi.js @@ -78,26 +78,18 @@ function makeHapiPlugin(client, config) { if (isObject(server)) { if (isFunction(server.on)) { server.on('request-error', function(req, err) { - var em = hapiErrorHandler(req, err, config); - - if (!config.lacksCredentials()) { - client.sendError(em); - } + client.sendError(hapiErrorHandler(req, err, config)); }); } if (isFunction(server.ext)) { server.ext('onPreResponse', function(request, reply) { - var em = null; - if (isObject(request) && isObject(request.response) && request.response.isBoom) { - em = hapiErrorHandler(request, new Error(request.response.message), - config); - - if (!config.lacksCredentials()) { - client.sendError(em); - } + var em = hapiErrorHandler(request, + new Error(request.response.message), + config); + client.sendError(em); } if (isObject(reply) && isFunction(reply.continue)) { diff --git a/handwritten/error-reporting/src/interfaces/koa.js b/handwritten/error-reporting/src/interfaces/koa.js index e3f4751d068..b0297fb7eaf 100644 --- a/handwritten/error-reporting/src/interfaces/koa.js +++ b/handwritten/error-reporting/src/interfaces/koa.js @@ -41,18 +41,13 @@ function koaErrorHandler(client, config) { * @returns {Undefined} does not return anything */ return function *(next) { - var em; var svc = config.getServiceContext(); try { yield next; } catch (err) { - if (config.lacksCredentials()) { - return; - } - - em = new ErrorMessage() + var em = new ErrorMessage() .consumeRequestInformation( koaRequestInformationExtractor(this.request, this.response)) .setServiceContext(svc.service, diff --git a/handwritten/error-reporting/src/interfaces/manual.js b/handwritten/error-reporting/src/interfaces/manual.js index f2c7230158f..e2dbc74e495 100644 --- a/handwritten/error-reporting/src/interfaces/manual.js +++ b/handwritten/error-reporting/src/interfaces/manual.js @@ -56,9 +56,6 @@ function handlerSetup(client, config) { */ function reportManualError(err, request, additionalMessage, callback) { var em; - if (config.lacksCredentials()) { - return; - } if (isString(request)) { // no request given callback = additionalMessage; diff --git a/handwritten/error-reporting/src/interfaces/restify.js b/handwritten/error-reporting/src/interfaces/restify.js index df03996aae4..5d8a6e89d6f 100644 --- a/handwritten/error-reporting/src/interfaces/restify.js +++ b/handwritten/error-reporting/src/interfaces/restify.js @@ -128,9 +128,6 @@ function restifyRequestHandler(client, config, req, res, next) { function serverErrorHandler(client, config, server) { server.on('uncaughtException', function(req, res, reqConfig, err) { - if (config.lacksCredentials()) { - return; - } var em = new ErrorMessage().consumeRequestInformation( expressRequestInformationExtractor(req, res)); From 4a268b54f638f43c46a7d05d9e4086eee153ab62 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Mon, 24 Apr 2017 07:31:07 -0700 Subject: [PATCH 010/527] error-reporting: Address doc inconsistencies (#2247) In the README file: * Removed documentation on automatically handling uncaughtExceptions since that logic no longer exists in the code. * Removed the statement saying that this project is not an official Google project. * Added clarity to what configuration is needed in different environments. * Removed an invalid reference to the Stackdriver Trace agent for Node.js. * Did some refactoring to make the documentation easier to read. * Address GitHub comments --- handwritten/error-reporting/README.md | 47 +++++++++++++++------------ 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index bd1105e468f..38cc7649694 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -1,9 +1,9 @@ -# Node.js module for Stackdriver Error Reporting +# Stackdriver Error Reporting for Node.js [![NPM Version][npm-image]][npm-url] [![Known Vulnerabilities][snyk-image]][snyk-url] -> **This is not an official Google product.** This module is experimental and may not be ready for use. +> This module is experimental, and should be used by early adopters. > This module uses APIs that may be undocumented and are subject to change without notice. This module provides Stackdriver Error Reporting support for Node.js applications. @@ -18,9 +18,10 @@ applications running in almost any environment. Here's an introductory video: 1. Your application needs to use Node.js version 4.x or greater. 1. You need a [Google Cloud project](https://console.cloud.google.com). Your application can run anywhere, but errors are reported to a particular project. 1. [Enable the Stackdriver Error Reporting API](https://console.cloud.google.com/apis/api/clouderrorreporting.googleapis.com/overview) for your project. -1. The module will only send errors when the `NODE_ENV` environment variable is + +**Note:** The module will only send errors when the `NODE_ENV` environment variable is set to `production` or the `ignoreEnvironmentCheck` property given in the -runtime configuration object is set to `true`. +runtime configuration object is set to `true`. See the [Configuration](#configuration) section for more details. ## Quick Start @@ -33,7 +34,7 @@ runtime configuration object is set to `true`. npm install --save @google-cloud/error-reporting ``` -2. **Instrument your application:** +2. **Require the module:** ```js // Require the library and initialize the error handler @@ -45,9 +46,13 @@ var errors = require('@google-cloud/error-reporting')({ errors.report(new Error('Something broke!')); ``` -- **One may even catch and report application-wide uncaught errors:** - - *It is recommended to catch uncaughtExceptions for production-deployed applications.* - - To read more about uncaught exception handling in Node.js and what it means for your application [please click here](https://nodejs.org/api/process.html#process_event_uncaughtexception). +3. **View reported errors:** + + Open Stackdriver Error Reporting at https://console.cloud.google.com/errors to view the reported errors. + +## Catching and Reporting Application-wide Uncaught Errors + +*It is recommended to catch `uncaughtExceptions` for production-deployed applications.* ```js var errors = require('@google-cloud/error-reporting')(); @@ -59,12 +64,12 @@ process.on('uncaughtException', (e) => { }); ``` -3. **View reported errors:** - - Open Stackdriver Error Reporting at https://console.cloud.google.com/errors to view the reported errors. +More information about uncaught exception handling in Node.js and what it means for your application can be found [here](https://nodejs.org/api/process.html#process_event_uncaughtexception). ## Running on Google Cloud Platform +All information in this section assumes that the items in the [Prerequisites](#prerequisites) section above have been completed. + ### Google App Engine Flexible environment If you are using [Google App Engine flexible environment](https://cloud.google.com/appengine/docs/flexible/), you do not have to do any additional configuration. @@ -85,13 +90,13 @@ If your application is running outside of Google Cloud Platform, such as locally 1. You will need to specify your project ID when starting the errors agent. - GCLOUD_PROJECT=particular-future-12345 node myapp.js + GCLOUD_PROJECT=particular-future-12345 node myapp.js -1. You need to provide service account credentials to your application. +1. You need to provide service account credentials to your application by using one of the three options below: * The recommended way is via [Application Default Credentials][app-default-credentials]. 1. [Create a new JSON service account key][service-account]. 1. Copy the key somewhere your application can access it. Be sure not to expose the key publicly. - 1. Set the environment variable `GOOGLE_APPLICATION_CREDENTIALS` to the full path to the key. The trace agent will automatically look for this environment variable. + 1. Set the environment variable `GOOGLE_APPLICATION_CREDENTIALS` to the full path to the key. The Error Reporting library will automatically look for this environment variable. * If you are running your application on a development machine or test environment where you are using the [`gcloud` command line tools][gcloud-sdk], and are logged using `gcloud beta auth application-default login`, you already have sufficient credentials, and a service account key is not required. * Alternatively, you may set the `keyFilename` or `credentials` configuration field to the full path or contents to the key file, respectively. Setting either of these fields will override either setting `GOOGLE_APPLICATION_CREDENTIALS` or logging in using `gcloud`. For example: @@ -110,7 +115,7 @@ When running on Google Cloud Platform, we handle these for you automatically. ## Configuration -The following code snippet lists all available configuration options. All configuration options are optional. +The following code snippet lists all available configuration options. All configuration options are optional. ```js var errors = require('@google-cloud/error-reporting')({ @@ -121,10 +126,9 @@ var errors = require('@google-cloud/error-reporting')({ // of the value of NODE_ENV // defaults to false ignoreEnvironmentCheck: false, - // determines if the library will attempt to report uncaught exceptions - // defaults to true - reportUncaughtExceptions: true, // determines the logging level internal to the library; levels range 0-5 + // where 0 indicates no logs should be reported and 5 indicates all logs + // should be reported // defaults to 2 (warnings) logLevel: 2, serviceContext: { @@ -140,13 +144,16 @@ var errors = require('@google-cloud/error-reporting')({ ```js var errors = require('@google-cloud/error-reporting')(); + // Use the error message builder to custom set all message fields var errorEvt = errors.event() - .setMessage('My error message') - .setUser('root@nexus'); + .setMessage('My error message') + .setUser('root@nexus'); errors.report(errorEvt, () => console.log('done!')); + // Or just use a regular error errors.report(new Error('My error message'), () => console.log('done!')); + // One can even just use a string errors.report('My error message'); ``` From 0de67f7ec3a51a69814434498b6479b95a499669 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Tue, 25 Apr 2017 16:35:48 -0700 Subject: [PATCH 011/527] error-reporting: Warn early if cannot access API (#2252) * error-reporting: Warn early if cannot access API An attempt will be made to communicate with the API as soon as the error reporting library is loaded so that the user will be notified on application start if the error reporting library cannot communicate with the API. Without this change, the user will instead receive a warning only when the error reporting library attempts to report its first error. * Add tests to verify successful communication * Address GitHub comments --- handwritten/error-reporting/package.json | 1 + .../src/google-apis/auth-client.js | 11 ++++ .../test/unit/testAuthClient.js | 64 +++++++++++++++++++ 3 files changed, 76 insertions(+) create mode 100644 handwritten/error-reporting/test/unit/testAuthClient.js diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 5ee1177ed31..ca02c05a2c3 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -31,6 +31,7 @@ "mocha": "^3.2.0", "nock": "^9.0.0", "nyc": "^10.0.0", + "proxyquire": "^1.7.11", "restify": "^4.1.0" }, "dependencies": { diff --git a/handwritten/error-reporting/src/google-apis/auth-client.js b/handwritten/error-reporting/src/google-apis/auth-client.js index 4f6570c9784..4c958d8d0cf 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.js +++ b/handwritten/error-reporting/src/google-apis/auth-client.js @@ -97,6 +97,17 @@ class RequestHandler extends common.Service { }, config); this._config = config; this._logger = logger; + + var that = this; + this.authClient.getToken(function(err, token) { + if (err) { + that._logger.error([ + 'Unable to find credential information on instance. This library', + 'will be unable to communicate with the Stackdriver API to save', + 'errors. Message: ' + err.message + ].join(' ')); + } + }); } /** * Creates a request options object given the value of the error message and diff --git a/handwritten/error-reporting/test/unit/testAuthClient.js b/handwritten/error-reporting/test/unit/testAuthClient.js new file mode 100644 index 00000000000..81c46e0db71 --- /dev/null +++ b/handwritten/error-reporting/test/unit/testAuthClient.js @@ -0,0 +1,64 @@ +/** + * Copyright 2017 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +'use strict'; + +var assert = require('assert'); +var proxyquire = require('proxyquire'); + +var Configuration = require('../../src/configuration.js'); + +function verifyReportedMessage(errToReturn, expectedMessage) { + class ServiceStub { + constructor() { + this.authClient = { + getToken: function(cb) { + cb(errToReturn); + } + }; + } + } + + var RequestHandler = proxyquire('../../src/google-apis/auth-client.js', { + '@google-cloud/common': { + Service: ServiceStub + } + }); + + var message = ''; + var logger = { + error: function(text) { + message += text; + } + }; + var config = new Configuration({ ignoreEnvironmentCheck: true }, logger); + new RequestHandler(config, logger); + assert.strictEqual(message, expectedMessage); +} + +describe('RequestHandler', function() { + it('should issue a warning if it cannot communicate with the API', function() { + var message = 'Test Error'; + verifyReportedMessage(new Error(message), + 'Unable to find credential information on instance. This library ' + + 'will be unable to communicate with the Stackdriver API to save ' + + 'errors. Message: ' + message); + }); + + it('should not issue a warning if it can communicate with the API', function() { + verifyReportedMessage(null, ''); + verifyReportedMessage(undefined, ''); + }); +}); From 959f4a9962a9590accaa50f8a23bc6aa4e5fb3ea Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Wed, 26 Apr 2017 09:40:09 -0700 Subject: [PATCH 012/527] Modify test/unit directory structure to match src (#2259) --- handwritten/error-reporting/package.json | 2 +- .../custom-stack-trace.js} | 2 +- .../{testErrorMessage.js => classes/error-message.js} | 2 +- .../request-information-container.js} | 4 ++-- .../unit/{testConfiguration.js => configuration.js} | 0 .../error.js} | 4 ++-- .../object.js} | 4 ++-- .../error.js} | 4 ++-- .../number.js} | 4 ++-- .../object.js} | 4 ++-- .../string.js} | 4 ++-- .../unknown.js} | 4 ++-- .../{testAuthClient.js => google-apis/auth-client.js} | 4 ++-- .../{testExpressInterface.js => interfaces/express.js} | 10 +++++----- .../unit/{testHapiInterface.js => interfaces/hapi.js} | 8 ++++---- .../{testManualHandler.js => interfaces/manual.js} | 6 +++--- .../{testRestifyInterface.js => interfaces/restify.js} | 2 +- .../test/unit/{testLogger.js => logger.js} | 0 .../express.js} | 4 ++-- .../hapi.js} | 4 ++-- .../koa.js} | 4 ++-- .../manual.js} | 4 ++-- ...erviceConfiguration.js => service-configuration.js} | 0 23 files changed, 42 insertions(+), 42 deletions(-) rename handwritten/error-reporting/test/unit/{testCustomStackTrace.js => classes/custom-stack-trace.js} (97%) rename handwritten/error-reporting/test/unit/{testErrorMessage.js => classes/error-message.js} (99%) rename handwritten/error-reporting/test/unit/{testRequestInformationContainer.js => classes/request-information-container.js} (96%) rename handwritten/error-reporting/test/unit/{testConfiguration.js => configuration.js} (100%) rename handwritten/error-reporting/test/unit/{testExtractFromErrorClass.js => error-extractors/error.js} (96%) rename handwritten/error-reporting/test/unit/{testExtractFromObject.js => error-extractors/object.js} (96%) rename handwritten/error-reporting/test/unit/{testHandleErrorClassError.js => error-handlers/error.js} (93%) rename handwritten/error-reporting/test/unit/{testHandleNumberAsError.js => error-handlers/number.js} (91%) rename handwritten/error-reporting/test/unit/{testHandleObjectAsError.js => error-handlers/object.js} (91%) rename handwritten/error-reporting/test/unit/{testHandleStringAsError.js => error-handlers/string.js} (91%) rename handwritten/error-reporting/test/unit/{testHandleUnknownAsError.js => error-handlers/unknown.js} (92%) rename handwritten/error-reporting/test/unit/{testAuthClient.js => google-apis/auth-client.js} (92%) rename handwritten/error-reporting/test/unit/{testExpressInterface.js => interfaces/express.js} (89%) rename handwritten/error-reporting/test/unit/{testHapiInterface.js => interfaces/hapi.js} (95%) rename handwritten/error-reporting/test/unit/{testManualHandler.js => interfaces/manual.js} (97%) rename handwritten/error-reporting/test/unit/{testRestifyInterface.js => interfaces/restify.js} (98%) rename handwritten/error-reporting/test/unit/{testLogger.js => logger.js} (100%) rename handwritten/error-reporting/test/unit/{testExpressRequestInformationExtractor.js => request-extractors/express.js} (97%) rename handwritten/error-reporting/test/unit/{testHapiRequestInformationExtractor.js => request-extractors/hapi.js} (97%) rename handwritten/error-reporting/test/unit/{testKoaRequestInformationExtractor.js => request-extractors/koa.js} (95%) rename handwritten/error-reporting/test/unit/{testManualRequestInformationExtractor.js => request-extractors/manual.js} (97%) rename handwritten/error-reporting/test/unit/{testServiceConfiguration.js => service-configuration.js} (100%) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index ca02c05a2c3..93692ebfde8 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -4,7 +4,7 @@ "main": "./src/index.js", "repository": "GoogleCloudPlatform/google-cloud-node", "scripts": { - "test": "nyc --exclude=\"fuzzer.js\" mocha ./test/unit/*.js", + "test": "nyc --exclude=\"fuzzer.js\" mocha ./test/unit/**/*.js", "system-test": "nyc --exclude=\"error-message.js\" mocha ./system-test/*.js", "lint": "jshint -c ../../.jshintrc src system-test test utils && jscs -c ../../.jscsrc src system-test test utils", "publish-module": "node ../../scripts/publish.js error-reporting" diff --git a/handwritten/error-reporting/test/unit/testCustomStackTrace.js b/handwritten/error-reporting/test/unit/classes/custom-stack-trace.js similarity index 97% rename from handwritten/error-reporting/test/unit/testCustomStackTrace.js rename to handwritten/error-reporting/test/unit/classes/custom-stack-trace.js index fe1f9ad5e64..6095ab5051a 100644 --- a/handwritten/error-reporting/test/unit/testCustomStackTrace.js +++ b/handwritten/error-reporting/test/unit/classes/custom-stack-trace.js @@ -16,7 +16,7 @@ 'use strict'; var assert = require('assert'); -var CustomStackTrace = require('../../src/classes/custom-stack-trace.js'); +var CustomStackTrace = require('../../../src/classes/custom-stack-trace.js'); describe('Fuzzing the CustomStackTrace class', function() { var testFunction = function testFunction() { diff --git a/handwritten/error-reporting/test/unit/testErrorMessage.js b/handwritten/error-reporting/test/unit/classes/error-message.js similarity index 99% rename from handwritten/error-reporting/test/unit/testErrorMessage.js rename to handwritten/error-reporting/test/unit/classes/error-message.js index 043d91b1f7b..89f6b05ff5f 100644 --- a/handwritten/error-reporting/test/unit/testErrorMessage.js +++ b/handwritten/error-reporting/test/unit/classes/error-message.js @@ -17,7 +17,7 @@ // jshint ignore: start var assert = require('assert'); -var ErrorMessage = require('../../src/classes/error-message.js'); +var ErrorMessage = require('../../../src/classes/error-message.js'); describe('Instantiating a new ErrorMessage', function() { var em; diff --git a/handwritten/error-reporting/test/unit/testRequestInformationContainer.js b/handwritten/error-reporting/test/unit/classes/request-information-container.js similarity index 96% rename from handwritten/error-reporting/test/unit/testRequestInformationContainer.js rename to handwritten/error-reporting/test/unit/classes/request-information-container.js index baf2fcf691f..508eb6ebcb4 100644 --- a/handwritten/error-reporting/test/unit/testRequestInformationContainer.js +++ b/handwritten/error-reporting/test/unit/classes/request-information-container.js @@ -18,8 +18,8 @@ var assert = require('assert'); var RequestInformationContainer = - require('../../src/classes/request-information-container.js'); -var Fuzzer = require('../../utils/fuzzer.js'); + require('../../../src/classes/request-information-container.js'); +var Fuzzer = require('../../../utils/fuzzer.js'); describe('RequestInformationContainer', function() { var f = new Fuzzer(); diff --git a/handwritten/error-reporting/test/unit/testConfiguration.js b/handwritten/error-reporting/test/unit/configuration.js similarity index 100% rename from handwritten/error-reporting/test/unit/testConfiguration.js rename to handwritten/error-reporting/test/unit/configuration.js diff --git a/handwritten/error-reporting/test/unit/testExtractFromErrorClass.js b/handwritten/error-reporting/test/unit/error-extractors/error.js similarity index 96% rename from handwritten/error-reporting/test/unit/testExtractFromErrorClass.js rename to handwritten/error-reporting/test/unit/error-extractors/error.js index 76c2a532975..cda098e60e7 100644 --- a/handwritten/error-reporting/test/unit/testExtractFromErrorClass.js +++ b/handwritten/error-reporting/test/unit/error-extractors/error.js @@ -17,8 +17,8 @@ 'use strict'; var assert = require('assert'); -var extractFromErrorClass = require('../../src/error-extractors/error.js'); -var ErrorMessage = require('../../src/classes/error-message.js'); +var extractFromErrorClass = require('../../../src/error-extractors/error.js'); +var ErrorMessage = require('../../../src/classes/error-message.js'); describe('Writing and reading ErrorMessage properties', function() { diff --git a/handwritten/error-reporting/test/unit/testExtractFromObject.js b/handwritten/error-reporting/test/unit/error-extractors/object.js similarity index 96% rename from handwritten/error-reporting/test/unit/testExtractFromObject.js rename to handwritten/error-reporting/test/unit/error-extractors/object.js index 58c75ae6a3e..bb3d32136ba 100644 --- a/handwritten/error-reporting/test/unit/testExtractFromObject.js +++ b/handwritten/error-reporting/test/unit/error-extractors/object.js @@ -17,8 +17,8 @@ 'use strict'; var assert = require('assert'); -var extractFromObject = require('../../src/error-extractors/object.js'); -var ErrorMessage = require('../../src/classes/error-message.js'); +var extractFromObject = require('../../../src/error-extractors/object.js'); +var ErrorMessage = require('../../../src/classes/error-message.js'); describe('Object value extraction as error message', function() { var em, err; diff --git a/handwritten/error-reporting/test/unit/testHandleErrorClassError.js b/handwritten/error-reporting/test/unit/error-handlers/error.js similarity index 93% rename from handwritten/error-reporting/test/unit/testHandleErrorClassError.js rename to handwritten/error-reporting/test/unit/error-handlers/error.js index ba1ce9f5575..0e0156d2f07 100644 --- a/handwritten/error-reporting/test/unit/testHandleErrorClassError.js +++ b/handwritten/error-reporting/test/unit/error-handlers/error.js @@ -17,8 +17,8 @@ 'use strict'; var assert = require('assert'); -var ErrorMessage = require('../../src/classes/error-message.js'); -var handleErrorClassError = require('../../src/error-handlers/error.js'); +var ErrorMessage = require('../../../src/classes/error-message.js'); +var handleErrorClassError = require('../../../src/error-handlers/error.js'); describe('Behaviour under various type inputs', function() { var em; diff --git a/handwritten/error-reporting/test/unit/testHandleNumberAsError.js b/handwritten/error-reporting/test/unit/error-handlers/number.js similarity index 91% rename from handwritten/error-reporting/test/unit/testHandleNumberAsError.js rename to handwritten/error-reporting/test/unit/error-handlers/number.js index 89a3198a441..fbdf870edf9 100644 --- a/handwritten/error-reporting/test/unit/testHandleNumberAsError.js +++ b/handwritten/error-reporting/test/unit/error-handlers/number.js @@ -17,8 +17,8 @@ 'use strict'; var assert = require('assert'); -var ErrorMessage = require('../../src/classes/error-message.js'); -var handleNumberAsError = require('../../src/error-handlers/number.js'); +var ErrorMessage = require('../../../src/classes/error-message.js'); +var handleNumberAsError = require('../../../src/error-handlers/number.js'); describe('handleNumberAsError behaviour under varying input', function() { var em; diff --git a/handwritten/error-reporting/test/unit/testHandleObjectAsError.js b/handwritten/error-reporting/test/unit/error-handlers/object.js similarity index 91% rename from handwritten/error-reporting/test/unit/testHandleObjectAsError.js rename to handwritten/error-reporting/test/unit/error-handlers/object.js index 58f84c86f0c..3e00791e98c 100644 --- a/handwritten/error-reporting/test/unit/testHandleObjectAsError.js +++ b/handwritten/error-reporting/test/unit/error-handlers/object.js @@ -17,8 +17,8 @@ 'use strict'; var assert = require('assert'); -var ErrorMessage = require('../../src/classes/error-message.js'); -var handleObjectAsError = require('../../src/error-handlers/object.js'); +var ErrorMessage = require('../../../src/classes/error-message.js'); +var handleObjectAsError = require('../../../src/error-handlers/object.js'); describe('handleObjectAsError behaviour under varying inputs', function() { var em; diff --git a/handwritten/error-reporting/test/unit/testHandleStringAsError.js b/handwritten/error-reporting/test/unit/error-handlers/string.js similarity index 91% rename from handwritten/error-reporting/test/unit/testHandleStringAsError.js rename to handwritten/error-reporting/test/unit/error-handlers/string.js index 7218ef8513c..e5ae4704f23 100644 --- a/handwritten/error-reporting/test/unit/testHandleStringAsError.js +++ b/handwritten/error-reporting/test/unit/error-handlers/string.js @@ -17,8 +17,8 @@ 'use strict'; var assert = require('assert'); -var ErrorMessage = require('../../src/classes/error-message.js'); -var handleStringAsError = require('../../src/error-handlers/string.js'); +var ErrorMessage = require('../../../src/classes/error-message.js'); +var handleStringAsError = require('../../../src/error-handlers/string.js'); describe('handleStringAsError behaviour under varying inputs', function() { var em; diff --git a/handwritten/error-reporting/test/unit/testHandleUnknownAsError.js b/handwritten/error-reporting/test/unit/error-handlers/unknown.js similarity index 92% rename from handwritten/error-reporting/test/unit/testHandleUnknownAsError.js rename to handwritten/error-reporting/test/unit/error-handlers/unknown.js index 2865b64b538..f971a17b94d 100644 --- a/handwritten/error-reporting/test/unit/testHandleUnknownAsError.js +++ b/handwritten/error-reporting/test/unit/error-handlers/unknown.js @@ -17,8 +17,8 @@ 'use strict'; var assert = require('assert'); -var ErrorMessage = require('../../src/classes/error-message.js'); -var handleUnknownAsError = require('../../src/error-handlers/unknown.js'); +var ErrorMessage = require('../../../src/classes/error-message.js'); +var handleUnknownAsError = require('../../../src/error-handlers/unknown.js'); describe('handleUnknownAsError behvaiour under varying input', function() { var em; diff --git a/handwritten/error-reporting/test/unit/testAuthClient.js b/handwritten/error-reporting/test/unit/google-apis/auth-client.js similarity index 92% rename from handwritten/error-reporting/test/unit/testAuthClient.js rename to handwritten/error-reporting/test/unit/google-apis/auth-client.js index 81c46e0db71..cda05f05fca 100644 --- a/handwritten/error-reporting/test/unit/testAuthClient.js +++ b/handwritten/error-reporting/test/unit/google-apis/auth-client.js @@ -18,7 +18,7 @@ var assert = require('assert'); var proxyquire = require('proxyquire'); -var Configuration = require('../../src/configuration.js'); +var Configuration = require('../../../src/configuration.js'); function verifyReportedMessage(errToReturn, expectedMessage) { class ServiceStub { @@ -31,7 +31,7 @@ function verifyReportedMessage(errToReturn, expectedMessage) { } } - var RequestHandler = proxyquire('../../src/google-apis/auth-client.js', { + var RequestHandler = proxyquire('../../../src/google-apis/auth-client.js', { '@google-cloud/common': { Service: ServiceStub } diff --git a/handwritten/error-reporting/test/unit/testExpressInterface.js b/handwritten/error-reporting/test/unit/interfaces/express.js similarity index 89% rename from handwritten/error-reporting/test/unit/testExpressInterface.js rename to handwritten/error-reporting/test/unit/interfaces/express.js index 33d2350f95c..8072592998b 100644 --- a/handwritten/error-reporting/test/unit/testExpressInterface.js +++ b/handwritten/error-reporting/test/unit/interfaces/express.js @@ -18,11 +18,11 @@ var assert = require('assert'); var merge = require('lodash.merge'); -var expressInterface = require('../../src/interfaces/express.js'); -var ErrorMessage = require('../../src/classes/error-message.js'); -var Fuzzer = require('../../utils/fuzzer.js'); -var Configuration = require('../fixtures/configuration.js'); -var createLogger = require('../../src/logger.js'); +var expressInterface = require('../../../src/interfaces/express.js'); +var ErrorMessage = require('../../../src/classes/error-message.js'); +var Fuzzer = require('../../../utils/fuzzer.js'); +var Configuration = require('../../fixtures/configuration.js'); +var createLogger = require('../../../src/logger.js'); describe('expressInterface', function() { describe('Exception handling', function() { diff --git a/handwritten/error-reporting/test/unit/testHapiInterface.js b/handwritten/error-reporting/test/unit/interfaces/hapi.js similarity index 95% rename from handwritten/error-reporting/test/unit/testHapiInterface.js rename to handwritten/error-reporting/test/unit/interfaces/hapi.js index fe5d0213a40..0ed136db10b 100644 --- a/handwritten/error-reporting/test/unit/testHapiInterface.js +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.js @@ -21,11 +21,11 @@ var is = require('is'); var isFunction = is.fn; var isObject = is.object; var assert = require('assert'); -var hapiInterface = require('../../src/interfaces/hapi.js'); -var ErrorMessage = require('../../src/classes/error-message.js'); -var Fuzzer = require('../../utils/fuzzer.js'); +var hapiInterface = require('../../../src/interfaces/hapi.js'); +var ErrorMessage = require('../../../src/classes/error-message.js'); +var Fuzzer = require('../../../utils/fuzzer.js'); var EventEmitter = require('events').EventEmitter; -var Configuration = require('../fixtures/configuration.js'); +var Configuration = require('../../fixtures/configuration.js'); describe('Hapi interface', function() { describe('Fuzzing the setup handler', function() { diff --git a/handwritten/error-reporting/test/unit/testManualHandler.js b/handwritten/error-reporting/test/unit/interfaces/manual.js similarity index 97% rename from handwritten/error-reporting/test/unit/testManualHandler.js rename to handwritten/error-reporting/test/unit/interfaces/manual.js index bb39e4ed048..e5544d0675a 100644 --- a/handwritten/error-reporting/test/unit/testManualHandler.js +++ b/handwritten/error-reporting/test/unit/interfaces/manual.js @@ -17,13 +17,13 @@ 'use strict'; var assert = require('assert'); -var manual = require('../../src/interfaces/manual.js'); -var Configuration = require('../fixtures/configuration.js'); +var manual = require('../../../src/interfaces/manual.js'); +var Configuration = require('../../fixtures/configuration.js'); var config = new Configuration({}); config.lacksCredentials = function() { return false; }; -var ErrorMessage = require('../../src/classes/error-message.js'); +var ErrorMessage = require('../../../src/classes/error-message.js'); // var nock = require('nock'); describe('Manual handler', function() { diff --git a/handwritten/error-reporting/test/unit/testRestifyInterface.js b/handwritten/error-reporting/test/unit/interfaces/restify.js similarity index 98% rename from handwritten/error-reporting/test/unit/testRestifyInterface.js rename to handwritten/error-reporting/test/unit/interfaces/restify.js index 781204f0bc9..e9bb6feeccc 100644 --- a/handwritten/error-reporting/test/unit/testRestifyInterface.js +++ b/handwritten/error-reporting/test/unit/interfaces/restify.js @@ -18,7 +18,7 @@ var EventEmitter = require('events').EventEmitter; var assert = require('assert'); -var restifyInterface = require('../../src/interfaces/restify.js'); +var restifyInterface = require('../../../src/interfaces/restify.js'); // node v0.12 compatibility if (!EventEmitter.prototype.listenerCount) { diff --git a/handwritten/error-reporting/test/unit/testLogger.js b/handwritten/error-reporting/test/unit/logger.js similarity index 100% rename from handwritten/error-reporting/test/unit/testLogger.js rename to handwritten/error-reporting/test/unit/logger.js diff --git a/handwritten/error-reporting/test/unit/testExpressRequestInformationExtractor.js b/handwritten/error-reporting/test/unit/request-extractors/express.js similarity index 97% rename from handwritten/error-reporting/test/unit/testExpressRequestInformationExtractor.js rename to handwritten/error-reporting/test/unit/request-extractors/express.js index ad1b4594af6..0700e97f1a2 100644 --- a/handwritten/error-reporting/test/unit/testExpressRequestInformationExtractor.js +++ b/handwritten/error-reporting/test/unit/request-extractors/express.js @@ -18,8 +18,8 @@ var assert = require('assert'); var expressRequestInformationExtractor = - require('../../src/request-extractors/express.js'); -var Fuzzer = require('../../utils/fuzzer.js'); + require('../../../src/request-extractors/express.js'); +var Fuzzer = require('../../../utils/fuzzer.js'); var extend = require('extend'); describe('Behaviour under varying input', diff --git a/handwritten/error-reporting/test/unit/testHapiRequestInformationExtractor.js b/handwritten/error-reporting/test/unit/request-extractors/hapi.js similarity index 97% rename from handwritten/error-reporting/test/unit/testHapiRequestInformationExtractor.js rename to handwritten/error-reporting/test/unit/request-extractors/hapi.js index c580910987c..314b78b559c 100644 --- a/handwritten/error-reporting/test/unit/testHapiRequestInformationExtractor.js +++ b/handwritten/error-reporting/test/unit/request-extractors/hapi.js @@ -18,8 +18,8 @@ var assert = require('assert'); var hapiRequestInformationExtractor = - require('../../src/request-extractors/hapi.js'); -var Fuzzer = require('../../utils/fuzzer.js'); + require('../../../src/request-extractors/hapi.js'); +var Fuzzer = require('../../../utils/fuzzer.js'); describe('hapiRequestInformationExtractor behaviour', function() { describe('behaviour given invalid input', function() { diff --git a/handwritten/error-reporting/test/unit/testKoaRequestInformationExtractor.js b/handwritten/error-reporting/test/unit/request-extractors/koa.js similarity index 95% rename from handwritten/error-reporting/test/unit/testKoaRequestInformationExtractor.js rename to handwritten/error-reporting/test/unit/request-extractors/koa.js index 45dddf7fa22..c5335a2bc8a 100644 --- a/handwritten/error-reporting/test/unit/testKoaRequestInformationExtractor.js +++ b/handwritten/error-reporting/test/unit/request-extractors/koa.js @@ -18,8 +18,8 @@ var assert = require('assert'); var koaRequestInformationExtractor = - require('../../src/request-extractors/koa.js'); -var Fuzzer = require('../../utils/fuzzer.js'); + require('../../../src/request-extractors/koa.js'); +var Fuzzer = require('../../../utils/fuzzer.js'); describe('koaRequestInformationExtractor', function() { describe('Behaviour under invalid input', function() { diff --git a/handwritten/error-reporting/test/unit/testManualRequestInformationExtractor.js b/handwritten/error-reporting/test/unit/request-extractors/manual.js similarity index 97% rename from handwritten/error-reporting/test/unit/testManualRequestInformationExtractor.js rename to handwritten/error-reporting/test/unit/request-extractors/manual.js index 43fc1661474..dd4d6fdefb2 100644 --- a/handwritten/error-reporting/test/unit/testManualRequestInformationExtractor.js +++ b/handwritten/error-reporting/test/unit/request-extractors/manual.js @@ -20,8 +20,8 @@ var assert = require('assert'); var omit = require('lodash.omit'); var extend = require('extend'); var manualRequestInformationExtractor = - require('../../src/request-extractors/manual.js'); -var Fuzzer = require('../../utils/fuzzer.js'); + require('../../../src/request-extractors/manual.js'); +var Fuzzer = require('../../../utils/fuzzer.js'); describe('manualRequestInformationExtractor', function() { describe('Behaviour given invalid input', function() { diff --git a/handwritten/error-reporting/test/unit/testServiceConfiguration.js b/handwritten/error-reporting/test/unit/service-configuration.js similarity index 100% rename from handwritten/error-reporting/test/unit/testServiceConfiguration.js rename to handwritten/error-reporting/test/unit/service-configuration.js From b4aaeb6a626620635420c656cef75ed65d6dbd15 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Wed, 26 Apr 2017 19:15:08 -0700 Subject: [PATCH 013/527] error-reporting: System tests no longer use nested describe blocks (#2260) --- .../system-test/testAuthClient.js | 607 +++++++++--------- 1 file changed, 300 insertions(+), 307 deletions(-) diff --git a/handwritten/error-reporting/system-test/testAuthClient.js b/handwritten/error-reporting/system-test/testAuthClient.js index 4aa5e01ce09..7e01b258ce5 100644 --- a/handwritten/error-reporting/system-test/testAuthClient.js +++ b/handwritten/error-reporting/system-test/testAuthClient.js @@ -15,6 +15,7 @@ */ 'use strict'; + var assert = require('assert'); var nock = require('nock'); var RequestHandler = require('../src/google-apis/auth-client.js'); @@ -29,338 +30,330 @@ var forEach = require('lodash.foreach'); var assign = require('lodash.assign'); var pick = require('lodash.pick'); var omitBy = require('lodash.omitby'); + const ERR_TOKEN = '_@google_STACKDRIVER_INTEGRATION_TEST_ERROR__'; -const env = (function(injectedEnv) { - const envKeys = ['GOOGLE_APPLICATION_CREDENTIALS', 'GCLOUD_PROJECT', + +const envKeys = ['GOOGLE_APPLICATION_CREDENTIALS', 'GCLOUD_PROJECT', 'NODE_ENV']; - class InstancedEnv { - constructor() { - assign(this, injectedEnv); - this._originalEnv = this._captureProcessProperties(); - } - _captureProcessProperties() { - return omitBy(pick(process.env, envKeys), value => !isString(value)); - } - sterilizeProcess() { - forEach(envKeys, (v, k) => delete process.env[k]); - return this; - } - setProjectId() { - assign(process.env, { - GCLOUD_PROJECT: injectedEnv.projectId - }); - return this; - } - setProjectNumber() { - assign(process.env, { - GCLOUD_PROJECT: injectedEnv.projectNumber - }); - return this; - } - setKeyFilename() { - assign(process.env, { - GOOGLE_APPLICATION_CREDENTIALS: injectedEnv.keyFilename - }); - return this; - } - setProduction() { - assign(process.env, { - NODE_ENV: 'production' - }); - return this; - } - restoreProcessToOriginalState() { - assign(process.env, this._originalEnv); - return this; - } - injected() { - return assign({}, injectedEnv); - } + +class InstancedEnv { + constructor(injectedEnv) { + assign(this, injectedEnv); + this.injectedEnv = injectedEnv; + this._originalEnv = this._captureProcessProperties(); } - return new InstancedEnv(); -}(require('../../../system-test/env.js'))); -const SHOULD_RUN = (function() { + + _captureProcessProperties() { + return omitBy(pick(process.env, envKeys), value => !isString(value)); + } + + sterilizeProcess() { + forEach(envKeys, (v, k) => delete process.env[k]); + return this; + } + + setProjectId() { + assign(process.env, { + GCLOUD_PROJECT: this.injectedEnv.projectId + }); + return this; + } + + setProjectNumber() { + assign(process.env, { + GCLOUD_PROJECT: this.injectedEnv.projectNumber + }); + return this; + } + + setKeyFilename() { + assign(process.env, { + GOOGLE_APPLICATION_CREDENTIALS: this.injectedEnv.keyFilename + }); + return this; + } + + setProduction() { + assign(process.env, { + NODE_ENV: 'production' + }); + return this; + } + + restoreProcessToOriginalState() { + assign(process.env, this._originalEnv); + return this; + } + + injected() { + return assign({}, this.injectedEnv); + } +} + +const env = new InstancedEnv(require('../../../system-test/env.js')); + +function shouldRun() { + var shouldRun = true; if (!isString(env.injected().projectId)) { - return new Error('The project id (projectId) was not set in the env'); + console.log('The project id (projectId) was not set in the env'); + shouldRun = false; } + if (!isString(env.injected().apiKey)) { - return new Error('The api key (apiKey) was not set as an env variable'); + console.log('The api key (apiKey) was not set as an env variable'); + shouldRun = false; } + if (!isString(env.injected().projectNumber)) { - return new Error( - 'The project number (projectNumber) was not set in the env'); + console.log('The project number (projectNumber) was not set in the env'); + shouldRun = false; } + if (!isString(env.injected().keyFilename)) { - return new Error( - 'The key filename (keyFilename) was not set in the env'); + console.log('The key filename (keyFilename) was not set in the env'); + shouldRun = false; } - return true; -}()); -const TEST_RUNNER = (function() { - if (SHOULD_RUN instanceof Error) { - console.log('Skipping error-reporting system tests:'); - console.log(' ' + SHOULD_RUN.message); - return describe.skip; - } - return describe; -}()); - -(TEST_RUNNER)('Errors system tests', function() { - describe('Request/Response lifecycle mocking', function() { - var sampleError = new Error(ERR_TOKEN); - var errorMessage = new ErrorMessage().setMessage(sampleError); - var fakeService, client, logger; - before(() => env.sterilizeProcess()); - beforeEach(function() { - env.setProjectId().setKeyFilename().setProduction(); - fakeService = nock( - 'https://clouderrorreporting.googleapis.com./v1beta1/projects/' + - process.env.GCLOUD_PROJECT - ).persist().post('/events:report'); - logger = createLogger({logLevel: 5}); - client = new RequestHandler( - new Configuration({ignoreEnvironmentCheck: true}, logger), logger); + + return shouldRun; +} + +if (!shouldRun()) { + console.log('Skipping error-reporting system tests'); + process.exit(1); +} + +describe('Request/Response lifecycle mocking', function() { + var sampleError = new Error(ERR_TOKEN); + var errorMessage = new ErrorMessage().setMessage(sampleError); + var fakeService, client, logger; + before(function() { + env.sterilizeProcess(); + }); + + beforeEach(function() { + env.setProjectId().setKeyFilename().setProduction(); + fakeService = nock( + 'https://clouderrorreporting.googleapis.com./v1beta1/projects/' + + process.env.GCLOUD_PROJECT + ).persist().post('/events:report'); + logger = createLogger({logLevel: 5}); + client = new RequestHandler( + new Configuration({ignoreEnvironmentCheck: true}, logger), logger); + }); + + afterEach(function() { + env.sterilizeProcess(); + nock.cleanAll(); + }); + + after(function() { + env.restoreProcessToOriginalState(); + }); + + it('Should fail when receiving non-retryable errors', function(done) { + this.timeout(5000); + client.sendError({}, function(err, response, + /* jshint unused:false */ body) { + assert(err instanceof Error); + assert.strictEqual(err.message.toLowerCase(), + 'message cannot be empty.'); + assert(isObject(response)); + assert.strictEqual(response.statusCode, 400); + done(); }); - afterEach(function() { - env.sterilizeProcess(); - nock.cleanAll(); + }); + + it('Should retry when receiving retryable errors', function(done) { + this.timeout(25000); + var tries = 0; + var intendedTries = 4; + fakeService.reply(429, function() { + tries += 1; + console.log('Mock Server Received Request:', tries + '/' + + intendedTries); + return {error: 'Please try again later'}; }); - after(() => env.restoreProcessToOriginalState()); - describe('Receiving non-retryable errors', function() { - it('Should fail', function(done) { - this.timeout(5000); - client.sendError({}, function(err, response, - /* jshint unused:false */ body) { - assert(err instanceof Error); - assert.strictEqual(err.message.toLowerCase(), - 'message cannot be empty.'); - assert(isObject(response)); - assert.strictEqual(response.statusCode, 400); - done(); - }); + client.sendError(errorMessage, function(err, response, + /* jshint unused:false */ body) { + assert.strictEqual(tries, intendedTries); + done(); + }); + }); + + it('Should provide the key as a query string on outgoing requests when ' + + 'using an API key', function(done) { + env.sterilizeProcess().setProjectId().setProduction(); + var key = env.apiKey; + var client = new RequestHandler(new Configuration( + {key: key, ignoreEnvironmentCheck: true}, + createLogger({logLevel: 5}))); + fakeService.query({key: key}).reply(200, function(uri) { + assert(uri.indexOf('key=' + key) > -1); + return {}; + }); + client.sendError(errorMessage, function() { + done(); }); + } + ); + + it('Should still execute the request with a callback-less invocation', + function(done) { + fakeService.reply(200, function() { + done(); }); - describe('Receiving retryable errors', function() { - it('Should retry', function(done) { - this.timeout(25000); - var tries = 0; - var intendedTries = 4; - fakeService.reply(429, function() { - tries += 1; - console.log('Mock Server Received Request:', tries + '/' + - intendedTries); - return {error: 'Please try again later'}; - }); - client.sendError(errorMessage, function(err, response, - /* jshint unused:false */ body) { - assert.strictEqual(tries, intendedTries); + client.sendError(errorMessage); + }); +}); + +describe('Client creation', function() { + var sampleError = new Error(ERR_TOKEN); + var errorMessage = new ErrorMessage().setMessage(sampleError.stack); + after(function() { + env.sterilizeProcess(); + }); + + it('Should not throw on initialization when using only project id as a ' + + 'runtime argument', function(done) { + env.sterilizeProcess().setKeyFilename(); + var logger = createLogger({logLevel: 5}); + var cfg = new Configuration({projectId: env.injected().projectId, + ignoreEnvironmentCheck: true}, logger); + this.timeout(10000); + assert.doesNotThrow(function() { + (new RequestHandler(cfg, logger)).sendError(errorMessage, + function(err, response, body) { + assert.strictEqual(err, null); + assert.strictEqual(response.statusCode, 200); + assert(isObject(body) && isEmpty(body)); done(); - }); - }); + } + ); + }); + }); + + it('Should not throw on initialization when using only project id as an ' + + 'env variable', function(done) { + env.sterilizeProcess().setProjectId().setKeyFilename(); + var logger = createLogger({logLevel: 5}); + var cfg = new Configuration({ignoreEnvironmentCheck: true}, logger); + this.timeout(10000); + assert.doesNotThrow(function() { + (new RequestHandler(cfg, logger)).sendError(errorMessage, + function(err, response, body) { + assert.strictEqual(err, null); + assert.strictEqual(response.statusCode, 200); + assert(isObject(body) && isEmpty(body)); + done(); + } + ); }); - describe('Using an API key', function() { - it('Should provide the key as a query string on outgoing requests', - function(done) { - env.sterilizeProcess().setProjectId().setProduction(); - var key = env.apiKey; - var client = new RequestHandler(new Configuration( - {key: key, ignoreEnvironmentCheck: true}, - createLogger({logLevel: 5}))); - fakeService.query({key: key}).reply(200, function(uri) { - assert(uri.indexOf('key=' + key) > -1); - return {}; - }); - client.sendError(errorMessage, function() { - done(); - }); + }); + + it('Should not throw on initialization when using only project number as ' + + 'a runtime argument', function(done) { + env.sterilizeProcess().setKeyFilename(); + var logger = createLogger({logLevel: 5}); + var cfg = new Configuration({ + projectId: parseInt(env.injected().projectNumber), + ignoreEnvironmentCheck: true + }, logger); + this.timeout(10000); + assert.doesNotThrow(function() { + (new RequestHandler(cfg, logger)).sendError(errorMessage, + function(err, response, body) { + assert.strictEqual(err, null); + assert.strictEqual(response.statusCode, 200); + assert(isObject(body) && isEmpty(body)); + done(); } ); }); - describe('Callback-less invocation', function() { - it('Should still execute the request', function(done) { - fakeService.reply(200, function() { + }); + + it('Should not throw on initialization when using only project number as ' + + 'an env variable', function(done) { + env.sterilizeProcess().setKeyFilename().setProjectNumber(); + var logger = createLogger({logLevel: 5}); + var cfg = new Configuration({ignoreEnvironmentCheck: true}, logger); + this.timeout(10000); + assert.doesNotThrow(function() { + (new RequestHandler(cfg, logger)).sendError(errorMessage, + function(err, response, body) { + assert.strictEqual(err, null); + assert.strictEqual(response.statusCode, 200); + assert(isObject(body) && isEmpty(body)); done(); - }); - client.sendError(errorMessage); - }); + } + ); }); }); - describe('System-live integration testing', function() { - var sampleError = new Error(ERR_TOKEN); - var errorMessage = new ErrorMessage().setMessage(sampleError.stack); - describe('Client creation', function() { - describe('Using only project id', function() { - describe('As a runtime argument', function() { - var cfg, logger; - before(function() { - env.sterilizeProcess().setKeyFilename(); - logger = createLogger({logLevel: 5}); - cfg = new Configuration({projectId: env.injected().projectId, - ignoreEnvironmentCheck: true}, logger); - }); - after(() => env.sterilizeProcess()); - it('Should not throw on initialization', function(done) { - this.timeout(10000); - assert.doesNotThrow(function() { - (new RequestHandler(cfg, logger)).sendError(errorMessage, - function(err, response, body) { - assert.strictEqual(err, null); - assert.strictEqual(response.statusCode, 200); - assert(isObject(body) && isEmpty(body)); - done(); - } - ); - }); - }); - }); - describe('As an env variable', function() { - var cfg, logger; - before(function() { - env.sterilizeProcess().setProjectId().setKeyFilename(); - logger = createLogger({logLevel: 5}); - cfg = new Configuration({ignoreEnvironmentCheck: true}, logger); - }); - after(() => env.sterilizeProcess()); - it('Should not throw on initialization', function(done) { - this.timeout(10000); - assert.doesNotThrow(function() { - (new RequestHandler(cfg, logger)).sendError(errorMessage, - function(err, response, body) { - assert.strictEqual(err, null); - assert.strictEqual(response.statusCode, 200); - assert(isObject(body) && isEmpty(body)); - done(); - } - ); - }); - }); - }); - }); - describe('Using only project number', function() { - describe('As a runtime argument', function() { - var cfg, logger; - before(function() { - env.sterilizeProcess().setKeyFilename(); - logger = createLogger({logLevel: 5}); - cfg = new Configuration({ - projectId: parseInt(env.injected().projectNumber), - ignoreEnvironmentCheck: true - }, logger); - }); - after(() => env.sterilizeProcess()); - it('Should not throw on initialization', function(done) { - this.timeout(10000); - assert.doesNotThrow(function() { - (new RequestHandler(cfg, logger)).sendError(errorMessage, - function(err, response, body) { - assert.strictEqual(err, null); - assert.strictEqual(response.statusCode, 200); - assert(isObject(body) && isEmpty(body)); - done(); - } - ); - }); - }); - }); - describe('As an env variable', function() { - var cfg, logger; - before(function() { - env.sterilizeProcess().setKeyFilename().setProjectNumber(); - logger = createLogger({logLevel: 5}); - cfg = new Configuration({ignoreEnvironmentCheck: true}, logger); - }); - after(() => env.sterilizeProcess()); - it('Should not throw on initialization', function(done) { - this.timeout(10000); - assert.doesNotThrow(function() { - (new RequestHandler(cfg, logger)).sendError(errorMessage, - function(err, response, body) { - assert.strictEqual(err, null); - assert.strictEqual(response.statusCode, 200); - assert(isObject(body) && isEmpty(body)); - done(); - } - ); - }); - }); - }); - }); +}); + +describe('Expected Behavior', function() { + var ERROR_STRING = [ + 'Stackdriver error reporting client has not been configured to send', + 'errors, please check the NODE_ENV environment variable and make', + 'sure it is set to "production" or set the ignoreEnvironmentCheck', + 'property to true in the runtime configuration object' + ].join(' '); + + var er = new Error(ERR_TOKEN); + var em = new ErrorMessage().setMessage(er.stack); + + after(function() { + env.sterilizeProcess(); + }); + + it('Should callback with an error with a configuration to not report errors', + function(done) { + env.sterilizeProcess().setKeyFilename().setProjectId(); + process.env.NODE_ENV = 'null'; + var logger = createLogger({logLevel: 5}); + var client = new RequestHandler(new Configuration(undefined, logger), + logger); + client.sendError({}, function(err, response, + /* jshint unused:false */ body) { + assert(err instanceof Error); + assert.strictEqual(err.message, ERROR_STRING); + assert.strictEqual(response, null); + done(); }); - describe('Error behvaiour', function() { - describe('With a configuration to not report errors', function() { - var ERROR_STRING = [ - 'Stackdriver error reporting client has not been configured to send', - 'errors, please check the NODE_ENV environment variable and make', - 'sure it is set to "production" or set the ignoreEnvironmentCheck', - 'property to true in the runtime configuration object' - ].join(' '); - var logger, client; - before(function() { - env.sterilizeProcess().setKeyFilename().setProjectId(); - process.env.NODE_ENV = 'null'; - logger = createLogger({logLevel: 5}); - client = new RequestHandler(new Configuration(undefined, logger), - logger); - }); - after(() => env.sterilizeProcess()); - it('Should callback with an error', function(done) { - client.sendError({}, function(err, response, - /* jshint unused:false */ body) { - assert(err instanceof Error); - assert.strictEqual(err.message, ERROR_STRING); - assert.strictEqual(response, null); - done(); - }); - }); - }); + }); + + it('Should succeed in its request given a valid project id', function(done) { + env.sterilizeProcess(); + var logger = createLogger({logLevel: 5}); + var cfg = new Configuration({ + projectId: env.injected().projectId, + ignoreEnvironmentCheck: true + }, logger); + var client = new RequestHandler(cfg, logger); + + client.sendError(em, function(err, response, body) { + assert.strictEqual(err, null); + assert(isObject(body)); + assert(isEmpty(body)); + assert.strictEqual(response.statusCode, 200); + done(); }); - describe('Success behaviour', function() { - var er = new Error(ERR_TOKEN); - var em = new ErrorMessage().setMessage(er.stack); - describe('Given a valid project id', function() { - var logger, client, cfg; - before(function() { - env.sterilizeProcess(); - logger = createLogger({logLevel: 5}); - cfg = new Configuration({ - projectId: env.injected().projectId, - ignoreEnvironmentCheck: true - }, logger); - client = new RequestHandler(cfg, logger); - }); - after(() => env.sterilizeProcess()); - it('Should succeed in its request', function(done) { - client.sendError(em, function(err, response, body) { - assert.strictEqual(err, null); - assert(isObject(body)); - assert(isEmpty(body)); - assert.strictEqual(response.statusCode, 200); - done(); - }); - }); - }); - describe('Given a valid project number', function() { - var logger, client, cfg; - before(function() { - env.sterilizeProcess(); - logger = createLogger({logLevel: 5}); - cfg = new Configuration({ - projectId: parseInt(env.injected().projectNumber), - ignoreEnvironmentCheck: true - }, logger); - client = new RequestHandler(cfg, logger); - }); - after(() => env.sterilizeProcess()); - it('Should succeed in its request', function(done) { - client.sendError(em, function(err, response, body) { - assert.strictEqual(err, null); - assert(isObject(body)); - assert(isEmpty(body)); - assert.strictEqual(response.statusCode, 200); - done(); - }); - }); - }); + }); + + it('Should succeed in its request given a valid project number', + function(done) { + env.sterilizeProcess(); + var logger = createLogger({logLevel: 5}); + var cfg = new Configuration({ + projectId: parseInt(env.injected().projectNumber), + ignoreEnvironmentCheck: true + }, logger); + var client = new RequestHandler(cfg, logger); + client.sendError(em, function(err, response, body) { + assert.strictEqual(err, null); + assert(isObject(body)); + assert(isEmpty(body)); + assert.strictEqual(response.statusCode, 200); + done(); }); }); }); From 403aeb68a3bc3d675f094d08549f4559e042608b Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Mon, 1 May 2017 18:24:08 -0700 Subject: [PATCH 014/527] error-reporting: Sync the code docs with the code (#2265) --- handwritten/error-reporting/src/index.js | 45 ++++++++++++++++-------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/handwritten/error-reporting/src/index.js b/handwritten/error-reporting/src/index.js index 3116dd19694..ddea902be79 100644 --- a/handwritten/error-reporting/src/index.js +++ b/handwritten/error-reporting/src/index.js @@ -13,6 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + +/*! + * @module error-reporting + */ + 'use strict'; var Configuration = require('./configuration.js'); @@ -29,7 +34,7 @@ var createLogger = require('./logger.js'); /** * @typedef ConfigurationOptions - * @type Object + * @type {Object} * @property {String} [projectId] - the projectId of the project deployed * @property {String} [keyFilename] - path to a key file to use for an API key * @property {String|Number} logLevel - a integer between and including 0-5 or a @@ -50,29 +55,39 @@ var createLogger = require('./logger.js'); */ /** - * @typedef ApplicationErrorReportingInterface - * @type Object - * @property {Object} hapi - The hapi plugin for Stackdriver Error Reporting + * @typedef Errors + * @type {Object} * @property {Function} report - The manual interface to report Errors to the * Stackdriver Error Reporting Service + * @property {ErrorMessage} event - Returns a new ErrorMessage class instance + * to use to create custom messages * @property {Function} express - The express plugin for Stackdriver Error * Reporting - * @property {Function} message - Returns a new ErrorMessage class instance + * @property {Object} hapi - The hapi plugin for Stackdriver Error Reporting + * @property {Function} koa - The koa plugin for Stackdriver Error Reporting + * @property {Function} restify - The restify plugin for Stackdriver Error + * Reporting */ -// TODO: Update this documentation /** - * The entry point for initializing the Error Reporting Middleware. This + * This module provides Stackdriver Error Reporting support for Node.js + * applications. + * [Stackdriver Error Reporting](https://cloud.google.com/error-reporting/) is + * a feature of Google Cloud Platform that allows in-depth monitoring and + * viewing of errors reported by applications running in almost any environment. + * + * This is the entry point for initializing the error reporting middleware. This * function will invoke configuration gathering and attempt to create a API - * client which will send errors to the Error Reporting Service. Invocation of - * this function will also return an interface which can be used manually via - * the `report` function property, with hapi via the `hapi` object property or - * with express via the `express` function property. - * @function Errors - * @param {ConfigurationOptions} initConfiguration - the desired project/error - * reporting configuration - * @constructor + * client which will send errors to the Error Reporting Service. + * * @alias module:error-reporting + * @constructor + * + * @resource [What is Stackdriver Error Reporting]{@link + * https://cloud.google.com/error-reporting/} + * + * @param {ConfigurationOptions} initConfiguration - The desired project/error + * reporting configuration. */ function Errors(initConfiguration) { if (!(this instanceof Errors)) { From 10da6425d39c39277cd13d0c56d13c4148f686c7 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Tue, 2 May 2017 11:19:09 -0700 Subject: [PATCH 015/527] error-reporting: Add `errors.report` system test (#2264) --- handwritten/error-reporting/src/index.js | 18 ++--- .../system-test/testAuthClient.js | 73 ++++++++++++++++++ .../utils/errors-api-transport.js | 75 +++++++++++++++++++ 3 files changed, 157 insertions(+), 9 deletions(-) create mode 100644 handwritten/error-reporting/utils/errors-api-transport.js diff --git a/handwritten/error-reporting/src/index.js b/handwritten/error-reporting/src/index.js index ddea902be79..519e6ebbae5 100644 --- a/handwritten/error-reporting/src/index.js +++ b/handwritten/error-reporting/src/index.js @@ -94,9 +94,9 @@ function Errors(initConfiguration) { return new Errors(initConfiguration); } - var logger = createLogger(initConfiguration); - var config = new Configuration(initConfiguration, logger); - var client = new AuthClient(config, logger); + this._logger = createLogger(initConfiguration); + this._config = new Configuration(initConfiguration, this._logger); + this._client = new AuthClient(this._config, this._logger); // Build the application interfaces for use by the hosting application /** @@ -106,7 +106,7 @@ function Errors(initConfiguration) { * console.log('done!'); * }); */ - this.report = manual(client, config); + this.report = manual(this._client, this._config); /** * @example * // Use to create and report errors manually with a high-degree @@ -118,7 +118,7 @@ function Errors(initConfiguration) { * console.log('done!'); * }); */ - this.event = messageBuilder(config); + this.event = messageBuilder(this._config); /** * @example * var hapi = require('hapi'); @@ -128,7 +128,7 @@ function Errors(initConfiguration) { * // AFTER ALL OTHER ROUTE HANDLERS * server.register({register: errors.hapi}); */ - this.hapi = hapi(client, config); + this.hapi = hapi(this._client, this._config); /** * @example * var express = require('express'); @@ -137,7 +137,7 @@ function Errors(initConfiguration) { * app.use(errors.express); * app.listen(3000); */ - this.express = express(client, config); + this.express = express(this._client, this._config); /** * @example * var restify = require('restify'); @@ -145,7 +145,7 @@ function Errors(initConfiguration) { * // BEFORE ALL OTHER ROUTE HANDLERS * server.use(errors.restify(server)); */ - this.restify = restify(client, config); + this.restify = restify(this._client, this._config); /** * @example * var koa = require('koa'); @@ -153,7 +153,7 @@ function Errors(initConfiguration) { * // BEFORE ALL OTHER ROUTE HANDLERS HANDLERS * app.use(errors.koa); */ - this.koa = koa(client, config); + this.koa = koa(this._client, this._config); } module.exports = Errors; diff --git a/handwritten/error-reporting/system-test/testAuthClient.js b/handwritten/error-reporting/system-test/testAuthClient.js index 7e01b258ce5..4b3074cd2d8 100644 --- a/handwritten/error-reporting/system-test/testAuthClient.js +++ b/handwritten/error-reporting/system-test/testAuthClient.js @@ -19,6 +19,7 @@ var assert = require('assert'); var nock = require('nock'); var RequestHandler = require('../src/google-apis/auth-client.js'); +var ErrorsApiTransport = require('../utils/errors-api-transport.js'); var ErrorMessage = require('../src/classes/error-message.js'); var Configuration = require('../test/fixtures/configuration.js'); var createLogger = require('../src/logger.js'); @@ -32,6 +33,7 @@ var pick = require('lodash.pick'); var omitBy = require('lodash.omitby'); const ERR_TOKEN = '_@google_STACKDRIVER_INTEGRATION_TEST_ERROR__'; +const TIMEOUT = 20000; const envKeys = ['GOOGLE_APPLICATION_CREDENTIALS', 'GCLOUD_PROJECT', 'NODE_ENV']; @@ -357,3 +359,74 @@ describe('Expected Behavior', function() { }); }); }); + +describe('error-reporting', function() { + const TIMESTAMP = Date.now(); + const BASE_NAME = 'error-reporting-system-test'; + function buildName(suffix) { + return [TIMESTAMP, BASE_NAME, suffix].join('_'); + } + + const SERVICE_NAME = buildName('service-name'); + const SERVICE_VERSION = buildName('service-version'); + + var errors; + var transport; + before(function() { + errors = require('../src/index.js')({ + ignoreEnvironmentCheck: true, + serviceContext: { + service: SERVICE_NAME, + version: SERVICE_VERSION + } + }); + transport = new ErrorsApiTransport(errors._config, errors._logger); + }); + + after(function(done) { + transport.deleteAllEvents(function(err) { + assert.ifError(err); + done(); + }); + }); + + it('Should correctly publish errors', function(done) { + // After an error is reported, this test waits TIMEOUT ms before + // verifying the error has been reported to ensure the system had + // enough time to receive the error report and process it. + // As such, this test is set to fail due to a timeout only if sufficiently + // more than TIMEOUT ms has elapsed to avoid test fragility. + this.timeout(TIMEOUT * 2); + var errorId = buildName('message'); + errors.report(new Error(errorId), function(err, response, body) { + assert.ifError(err); + assert(isObject(response)); + assert.deepEqual(body, {}); + + setTimeout(function() { + transport.getAllGroups(function(err, groups) { + assert.ifError(err); + assert.ok(groups); + + var matchedErrors = groups.filter(function(errItem) { + return errItem && errItem.representative && + errItem.representative.message.startsWith('Error: ' + errorId); + }); + + // The error should have been reported exactly once + assert.strictEqual(matchedErrors.length, 1); + var errItem = matchedErrors[0]; + assert.ok(errItem); + assert.equal(errItem.count, 1); + var rep = errItem.representative; + assert.ok(rep); + var context = rep.serviceContext; + assert.ok(context); + assert.strictEqual(context.service, SERVICE_NAME); + assert.strictEqual(context.version, SERVICE_VERSION); + done(); + }); + }, TIMEOUT); + }); + }); +}); diff --git a/handwritten/error-reporting/utils/errors-api-transport.js b/handwritten/error-reporting/utils/errors-api-transport.js new file mode 100644 index 00000000000..963df8a2971 --- /dev/null +++ b/handwritten/error-reporting/utils/errors-api-transport.js @@ -0,0 +1,75 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; + +var AuthClient = require('../src/google-apis/auth-client.js'); + +/* @const {String} Base Error Reporting API */ +var API = 'https://clouderrorreporting.googleapis.com/v1beta1/projects'; + +var ONE_HOUR_API = 'timeRange.period=PERIOD_1_HOUR'; + +class ErrorsApiTransport extends AuthClient { + constructor(config, logger) { + super(config, logger); + } + + deleteAllEvents(cb) { + var self = this; + self.getProjectId(function(err, id) { + if (err) { + return cb(err); + } + + var options = { + uri: [API, id, 'events'].join('/'), + method: 'DELETE' + }; + self.request_(options, function(err, /* jshint unused:false */ response, + /* jshint unused:false */ body) { + if (err) { + return cb(err); + } + + cb(null); + }); + }); + } + + getAllGroups(cb) { + var self = this; + self.getProjectId(function(err, id) { + if (err) { + return cb(err); + } + + var options = { + uri: [API, id, 'groupStats?' + ONE_HOUR_API].join('/'), + method: 'GET' + }; + self.request_(options, function(err, response, body) { + if (err) { + return cb(err); + } + + cb(null, JSON.parse(body.body).errorGroupStats || []); + }); + }); + } +} + +module.exports = ErrorsApiTransport; From 187eb8b29f4aaeeccc38163a2d33e0769e703e05 Mon Sep 17 00:00:00 2001 From: Stephen Sawchuk Date: Tue, 2 May 2017 14:55:49 -0400 Subject: [PATCH 016/527] error-reporting @ 0.1.1 tagged. --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 93692ebfde8..a4302eed052 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -53,5 +53,5 @@ "utils", "index.js" ], - "version": "0.1.0" + "version": "0.1.1" } From 73d5a8243d345950bd8409a9d8b1d634b2e34654 Mon Sep 17 00:00:00 2001 From: Stephen Sawchuk Date: Tue, 9 May 2017 11:25:42 -0400 Subject: [PATCH 017/527] Revert "updated FQDN's to googleapis.com with a trailing dot (#2214)" (#2283) This reverts commit 13d4ed52402bfb4394aea505b4bab8e6caace989. --- handwritten/error-reporting/src/google-apis/auth-client.js | 4 ++-- handwritten/error-reporting/system-test/testAuthClient.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/handwritten/error-reporting/src/google-apis/auth-client.js b/handwritten/error-reporting/src/google-apis/auth-client.js index 4c958d8d0cf..b7587e4308d 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.js +++ b/handwritten/error-reporting/src/google-apis/auth-client.js @@ -27,7 +27,7 @@ var isString = is.string; var SCOPES = ['https://www.googleapis.com/auth/cloud-platform']; /* @const {String} Base Error Reporting API */ -var API = 'https://clouderrorreporting.googleapis.com./v1beta1/projects'; +var API = 'https://clouderrorreporting.googleapis.com/v1beta1/projects'; /** * The RequestHandler constructor initializes several properties on the @@ -90,7 +90,7 @@ class RequestHandler extends common.Service { var pid = config.getProjectId(); super({ packageJson: pkg, - baseUrl: 'https://clouderrorreporting.googleapis.com./v1beta1/', + baseUrl: 'https://clouderrorreporting.googleapis.com/v1beta1/', scopes: SCOPES, projectId: pid !== null ? pid : undefined, projectIdRequired: true diff --git a/handwritten/error-reporting/system-test/testAuthClient.js b/handwritten/error-reporting/system-test/testAuthClient.js index 4b3074cd2d8..dde00dc2cf0 100644 --- a/handwritten/error-reporting/system-test/testAuthClient.js +++ b/handwritten/error-reporting/system-test/testAuthClient.js @@ -135,7 +135,7 @@ describe('Request/Response lifecycle mocking', function() { beforeEach(function() { env.setProjectId().setKeyFilename().setProduction(); fakeService = nock( - 'https://clouderrorreporting.googleapis.com./v1beta1/projects/' + + 'https://clouderrorreporting.googleapis.com/v1beta1/projects/' + process.env.GCLOUD_PROJECT ).persist().post('/events:report'); logger = createLogger({logLevel: 5}); @@ -429,4 +429,4 @@ describe('error-reporting', function() { }, TIMEOUT); }); }); -}); +}); \ No newline at end of file From d848d4e037d8f8039f1e6537deaa0b938033339d Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Wed, 17 May 2017 17:44:06 -0700 Subject: [PATCH 018/527] error-reporting: Address unresponsive Hapi apps (#2315) * error-reporting: Address unresponsive Hapi apps The Hapi plugin was too restrictive when determining if it should continue a reply, which could cause some Hapi apps to become unresponsive. --- .../error-reporting/src/interfaces/hapi.js | 2 +- .../test/unit/interfaces/hapi.js | 34 ++++++++++++++----- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/handwritten/error-reporting/src/interfaces/hapi.js b/handwritten/error-reporting/src/interfaces/hapi.js index 9f8855a2853..35ee6eeaca7 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.js +++ b/handwritten/error-reporting/src/interfaces/hapi.js @@ -92,7 +92,7 @@ function makeHapiPlugin(client, config) { client.sendError(em); } - if (isObject(reply) && isFunction(reply.continue)) { + if (reply && isFunction(reply.continue)) { reply.continue(); } }); diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.js b/handwritten/error-reporting/test/unit/interfaces/hapi.js index 0ed136db10b..ae2c491d215 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.js +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.js @@ -113,16 +113,32 @@ describe('Hapi interface', function() { afterEach(function() { fakeServer.removeAllListeners(); }); - it('Should call continue when a boom is emitted', function(done) { - plugin.register(fakeServer, null, function() {}); - fakeServer.emit(EVENT, {response: {isBoom: true}}, - { - continue: function() { - // The continue function should be called - done(); + it('Should call continue when a boom is emitted if reply is an object', + function(done) { + plugin.register(fakeServer, null, function() {}); + fakeServer.emit(EVENT, {response: {isBoom: true}}, + { + continue: function() { + // The continue function should be called + done(); + } } - } - ); + ); + }); + it('Should call continue when a boom is emitted if reply is a function', + function(done) { + // Manually testing has shown that in actual usage the `reply` object + // provided to listeners of the `onPreResponse` event can be a function + // that has a `continue` property that is a function. + // If `reply.continue()` is not invoked in this situation, the Hapi + // app will become unresponsive. + plugin.register(fakeServer, null, function() {}); + var reply = function() {}; + reply.continue = function() { + // The continue function should be called + done(); + }; + fakeServer.emit(EVENT, {response: {isBoom: true}}, reply); }); it('Should call sendError when a boom is received', function(done) { var fakeClient = { From 4cef4b869727f2f7b2dd3bab6d9398588c98a00e Mon Sep 17 00:00:00 2001 From: Ali Ijaz Sheikh Date: Thu, 18 May 2017 10:34:30 -0700 Subject: [PATCH 019/527] error-reporting: add overview image (#2311) --- handwritten/error-reporting/README.md | 12 ++++++++---- .../doc/images/errors-overview.png | Bin 0 -> 410879 bytes 2 files changed, 8 insertions(+), 4 deletions(-) create mode 100644 handwritten/error-reporting/doc/images/errors-overview.png diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 38cc7649694..3556842e9d5 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -9,7 +9,11 @@ This module provides Stackdriver Error Reporting support for Node.js applications. [Stackdriver Error Reporting](https://cloud.google.com/error-reporting/) is a feature of Google Cloud Platform that allows in-depth monitoring and viewing of errors reported by -applications running in almost any environment. Here's an introductory video: +applications running in almost any environment. + +![Stackdriver Error Reporting overview](doc/images/errors-overview.png) + +Here's an introductory video that provides some more details: [![Learn about Error Reporting in Stackdriver](https://img.youtube.com/vi/cVpWVD75Hs8/0.jpg)](https://www.youtube.com/watch?v=cVpWVD75Hs8) @@ -212,13 +216,13 @@ var app = koa(); app.use(errors.koa); app.use(function *(next) { - //This will set status and message - this.throw('Error Message', 500); + //This will set status and message + this.throw('Error Message', 500); }); // response app.use(function *(){ - this.body = 'Hello World'; + this.body = 'Hello World'; }); app.listen(3000); diff --git a/handwritten/error-reporting/doc/images/errors-overview.png b/handwritten/error-reporting/doc/images/errors-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..6c4eb54689c6cddf383442a1ab540efa619f0235 GIT binary patch literal 410879 zcmc%RbC4w8yCD3wZQGc(HPg0j+nh#qPusSq?doaUwr$(?&iCHm;@&^rjg7mp?}^HK zsxnVzo+l$uR78F1sc=Pk2}C$NI1msJL@7y8We^aka}W@4Nf@ZVYZ$;sSpNnH7hx$? zn7_>j#x(5jdss(FEf)|F%#VK-&KM(LhA2UbOs;7F3?wg<#U{)7|?GkD_F z9Rz=Fj^si)LRM^@Wqf3mIm;vth8XU`rAn0Y`~19-5hx#Ow9AC@{f;Q1vLvUrD5om~ghWLT>S#BJ+Jf*zi5p3P5bL-{xRKd`^$deRYlj+$i7`(75mh7Q)~N&lWs#~4g7 zG(h5YVJRWHBF#0-krD9(vRRY*)F<9bbhef1dNwE_Ib`)x$IS1!qrxUBK3xVKXPN${ zOmc4v#N(^15j*HXzdN*7{^I^VkJpe>b9w{+8-td1GyYQfQ&LJEEw)I=vRf>0o?Ueo z2Y^Tn`1$mk`k>@n=~&e3_A4x6rp}poQuKikmTz+$1AvW!3puk|<-^AA^3jL?{FAqS z2mJ0s#O3R8GfOg;NIW)n1okIloLPXUCYu#Gyo)#!)in<=Z^*4Zf;^2IfAWhjWq+v@ zM1(65{UKSi&cO&1>kgg`pK8pn=8_lu+ixYn{jO{WK{rNRNY10 zx|%)EC!{S_0&v)<4nF4}{j+uxl*KTgvg$KBz4Qo^A2eQU=YepqW!Hwc_x=ce~+OOOqDBHFk_yyMh^o z>{QyQ-T(M$#v7RxQ{vTGKBjD9P-pJVl42;74A45dWXQCCB55KF(8C|n0jn2mo}9ZjtTG3FnE7%m#G15BjeR-KP^4-2_p@4S z{(cR$dE07u`(nzwlAVEC7Q)}TGnb>PSn&C(;C|JLp8VR|su*HIcrl2ieKA;r#69+7 z^fb`SB!OW=2^z;x`=7VizwR|7tu!H{a6xu#ChFzo5B5gsU8?KdZYlAGWp<39 z5Pya^S4`RD&>On*Fndl5(7xr;ho7g7gt85KUmx`|Gd85}Eb}t#{p3PUXp=^WhHXGY zpH^=`MUW0VLP&_0hiZs8ZtrU3M#TAD88%7JOmebQqxYrRk2f&$GJCt@N%A0iI^E+< z0-Niw-CI^0H36})jBjN~I1!Y+n2)F5VS{wzJtA`xwyozAq${>W(|vltA&|vh{*$^0|YQP#akZ=^`CPm+at_bG1Os+~i}%K0KyT`y+g&rRZ}QXJO_y zqRIU)qk4(!779t%ku3#?DlUWyVjOjr5VPa&9q8A~R0GgcO#MSFD$k{~J_rKQijHG~ z#VSFr5phzethB<1KCG|N(r&Dze4kMS+(i>`Y(0RHfrw{}b zW=8$zb)kv`?`*!G@L@>vcd|0OHQ}Yj;-m@WJ35RU346+I-zEtqagAC)9m@;TZpD8f zkA^BUb1d47;OHkmax9ErHCjtGHK;~V+=7zedM0}VFI5L;9bF@e@*o>(=&z=;e+eHw zW3)I*K?Q4b>YgHw0P#%aKwqg(O0X5_Amgl*e$}TJ>YxTn7U8^@5n|38*VvPiQaOTg zLS`wJse`DhH;GEvt^OF=KS$s@epBX{TR%8mafV)4I9_=|D8M#lXdV?SAumfabxm3^ zbF_jZ2JAh{itCMjCfbMGU%|I;{+7E!k0u?KTAlB6LZ|t1p=`DIY1Nt=nI`&7*wrbW z&KW#zl7{QA<#}$qNjn1WHdgSxS5bv{1U2Cc^T(YXBL#U~?=bF7Jo${9Fa8Jc{D zdSN02N@ta=pSTpj=%4^+@j@yhl)Mrmm5IT<*^C2HJYl`$v3wTzNSpg5LBsy7a95uwc|c`@ih@xEMvdECs(F&m^%X`6q( z&*7U^u)7;_7%!volOz>qu$q=_C9#;g@R6SyFN8HWDW8{%40!J=epjuubbg=O2gz?L4SiLn;gUOWQ3J;4w#5~nM333sE2Pv<&VGfx-9woRk0iNLUt*NN=K z>wWwu?{TX`8CL#<+#u6OQQ<@`w_wqTKnv7M8` zW{2Y_{v|&cm9gRhq8;f>o9@j`4tC&Oo2sTE_Y$1dK@!K5B_lnR$Q2`)`r^xB`>Q^m zR}LIn%k)zK88<(~d;b{o=DeiaZ>0v3L4lhsZ_PUHcIWjw1(9y|ua1m+qpsF;efl-o zT0z_oPYlUeuoF`RH*+tlx(Vf9RG>b?AU^(Ba>K<`O3+2H(bhBgvY6u(RjQMYyIUr+G$j>*=3~m zi0iYPHg%UegzP{^*M!1#J(gSEswAp(q1MucDx3W^26Z-9!XL5LX}9g&pv}ylVUy!YE)xyaF&=un`s5*=BQP(Y#C`L_ zee)i-gjlI!OS&oZJFD!%878wO&%S#sB+_8#6w zin(#EOViSQsiT;0V*cUz26DD} zX3%|$j^}im1wm6AffZAQ&peTrXLyc_nQ?P$#oiNr?*?ag`DBn_@c32McpoNG%(%!S zzHf`=I2JLFyNB{a7CQvLEgV#k7=hII2O3MjzYXGCIVVQIp0njK{3TcTLOV z8w^@4Hl~m|<6m_OstGINar3)pPKDCNOKKzajAZ}Nz_8NsfH!TVkli_X+HE#bPwBEW zUdWGz^7-`zBh3PN)F|s`Mx++Y2sfvi#%yN3R<{xww}JQ z?h5zC{kwj!6XB_(kP6^8`0AY|>{M|Lrd3u)4_jh*cb8!#{(@8vX?>%gOfq zLLi;a!9QREQGBVXNeL5uu0ghT=9tLMWrfjCf^2(RlPr+1rFJZ+f{(cO4on`;B(i)! zph9qN>}8oBPJ+G_m6tEK*e0mkj%4&I>ZHh6YyF0bM8##Omv0=Vl;t0}vFi^?gfq{t zM^iDA_bNs>|9CN6?&`#)*kVV?)1<-`CIb`xgQY7Xl4Z zAYgvCr#V(^(8TL9&VJH}jhLc?TbuN875aL)kdAUH3p2+`oibZJ+!jeRIw#@v*;tUw zaP?<$+U*NX^RfjGG4uV)=v9!!^ZCH`HV^1$p@f64=p(ZDHERkeU?3vm>o8mePiSDX z3+zb0m*?T}X$EgIAeU?lwbfJF^(p<>>zNZY*LAyzXBVFhr4BEde@@m13Nv>mqT2tN zh~*|4_Pd}JyQq@BjIa-dXtKs(rEt1=z(c8Fhx#8x2ycaZnKTj*aO#tD(eM#)-^CWeCOHCp?acP!+eMS-{J%qnF8uoi>u$k<7Nq7V2e1e$bd( zlHUl2$;?0>6ioCVs5re;HRFZZNN@*FyBxFHtmMW{4S)Lh6sI49(Y5}@++Y-M$4-04 zH5YGxe%9)_F&Bm}o9`ita zRsYeUUs=;y;gzEE+lnx^Y{WRa%02hM>b%OU@p#IK*dPe~%Kac&CrYK^%@(J`8=<7X z;&QkJhm^0&tPzoIC|qUAH8j^vRYI;w2Vk!KUTHU0S~_+9tepR2b|fYlg8gH;a5w&| zHsIy9yo>Ucd9X-KPxfAGnBo59Wx-j^tytrdMeVZAD2S*8g||CPizahmv~*GYAstf# z^^>U*kfT&n9%_qo@P=R}d6CD)cU^n!5t&ZA<|yFFI#;*nb*67LG$~vx=yDkDt7qAB z5Q}Y~xxrNluYjh`dty|1)X`rPLDl~4*d>eKxlIK2B+jqJe5RbJ)+j4inwuI$zu$gp zw{<*>)k};S0+lCQ@MKgYCBI`I+79PN0>O!!Es%t?n9aOq@&I0qgP>(;$Q)q@V(APc zokdjb0&Q?uf0edHHPJ>j{Iaq2Rj2poTUu^Rx=orbV`a2hYhFc2F0Kqj^XmA8WgVGg z!*tYelaHev)4f_1%=&pWM~ir}t4T#gm(j*DY6|N6c`t`J2bN`^O|z*hUBKM@jta!l zcm^(86^uOJnbd$I6seDM4G8sESvjJP-Us6h6!#tU>Zp_*v&+tTS|b%=RtOHah5w#R z#}KN8odI%#4>o61KsvE0WotT}trrt~N`P)9sc~1?9f#P1A38Az2Kx{B2 z-+s0DWOtM2X&IlBOmf*Rt{0{EZWpa}`F@A!2zK-DQ)$n>(N9S0B)Sh~r3?!-z1imM z=Hdd)S&p}TVD$*cbtAa$mP})snWADz=rdf-5{|*4(8nWD^&1V4Sy_X>TSL^BLR()| z-&gqEYedldC@FM=j-aF~pWU=_w?Y&V{Q$A-fUl6#As(|Y3S(S#WGFmgD2>l+VDr|; z-)FRXwy@$jqbkXKNVgllL)x9o;0^&G9oFp<0cxNVi-c1!AjfNr zUZGG5-V$E!5pLGfcsv2%%RdRuC13X5WipnH`I-5SOIIq>=vHZ~c zOq4V(en-AIIA7%}Y&7KX8)p{AE^-h4un5TTP+Jzty`^lZ+&9Y`9M!lCqd)LvOnr9< z=)Wrb1WytUbHPfL#VgszbqK$leQM|+=Y0Y7ey8L~F>Pd1{tN<|n<=#9Zf|Tr+>t3Q zZ66ckN+=9>ykszG6EP|TciyxeoTt=jOssf~tuR_NW$F3XU9nCQO^eMi@->~eJG-Z} z+TgaD9jmd`Z?L-l(|^hExIfG2pI6mcd1gSnf3`ZL=ee-I;7_*CX~%4W#n`i5 zX~%r7^6)NBt~t79dM-IXx;wi66WzyF)VSZ)M%!&xJn@%XCjQ12vm?6m_Y1Sl280eo zgbnk*@$Z=k-(J>+|6?!S$GfIP&n4D-PUe4(`Oj$Fa9-C&+HG*X@NruI9_yc>q~*O8 zVjTMk=j>kGB<1aKfpEtlR-oMbS1qK(aQlr#eUIr9B_ zRv*Kxbez}Yt7eEr+q*>&Iv*|l$4v(sOLZT|8blA=ZCBCk>PWR^?#~)Ui3fekyB)wN zt~((mMD$tKZ)~Qt*tBEpd0G#Sp$Mv^0Br}y#xcGqcUH6_Lh>Vy*g9fURn;S{`YWqrFaZHv6Yn*A_K&-5CPpI6eZ{HS6(s$7c0k_z;LnwCg=ob(`1(a+sy9mWGn!E2-(|m?q zzmjsRK?lU_6c)FIBz4;MaZwk4S#QwaR?5ut|0(*U*s2!&`0eqT`*W7i_U+rd+{Q!9 zu9WN}_Uxl;*Ygipy20klxVnQ!)W=^*Df}e5cqnhX=z>OEGk)A616^HpW7mFd<{@yy zLuAdrTz&Q_kp(a`jA>E{9+dSFw1aR^5ts6nUM!2uR84~qS?2YWQ-!7jf-(T#Zb;nG z)LF;np{*{cIF#{d<%+R(Xy!Vf@)!vIKQ3h{$gO1 zfKVsT^pY$bdeE9ouD-q`hPk~8#!Prf0i0Z_0aufN=QJWlPd>JlsD@qX`#wRh-#?I| zNh}ZU)d2+^9Mv6GUAyGcr)UC~8soy=Vx3*;=D}zR26rJRaDX%e#!I0hxGx3Qv#2=Vd}DO_)zwmI^Fg>k{?UVUZKV` zaGmm&%&)W#MyZdl7Mc)<;^;SxwRTLTyb_2LH?r)eMO=Y3(PJ}>ik6u*ZmTIvoAvHH z%i+s@ir=OO-?)WvP`@LK&z)u786o>-K2UCq@0qlk%@q7$n_5RVhfVdIf@Y~^dgy%O zk@@xj%$&V^+kdCdI$D-n4QguiiL^ z?O|ay3rl-(boCf!axuzrxEmeAZ5Ruf-4;bmE!^GKOtXV`EC;9$Y6i~1EyLz9@kjyZ zBOycg0)GnEB>$MktWfj^VSi*D*PC z!(M|GqYwrro0C7pevIe`qhH)eP ze%3F_8TRMt&1N>JHlR%;8LDHuOQ-@#C!a7tJ+=L>9}Jx?2>2f^~+W<+))jrG0TRDRV8284ZH$^ zUYe(vo=8k;a@s-%`Y+*j2MB9!Q*WDU$K`#lSX_Qj-K2{LeHxvk%-Kd=?@eec={8u^ zZ1aWmSXFEgYvq@((4N3NJu68I#nt2xgDGoAiP_ExVBHJQ&`wSe{_d$Sd;7yE%HT;l zygD}gtom7B0Np}kvtD=I`DSToU}1?LXmVhOitVSM=o_gH`0hnB)e+1&)25e?<lOb;HXJ4WLNNbxhtL6@M1$tvyRGE1msZcsqC+QF*zm%|XAX zx^%#w)!}lF1N^-}kapy2aIM!Lj73B{x`iY8`ht_i5&?-jNa^u!vX@eCV7qro>6ueOAmLLYvlDS)p1r^H1``h+ben|UDAy-Hh!v+&=_lEw`r^X|m+=`}>~8Oh1_`1(4B{dDOp6PsLl zQ0XYtmM{BV{8D0-U4X1Ajp%{No>$3GJgo2D=T8>?#M6|-5?A0JEqfjpL7zE$e@fIN z%Ki?lDgdHno2r2JO+Ie=(7S+iL-zNKx3|E1PX&^i?b<(p#<=(=k5m&yH9BtCp2 z`s+iIy}08?&o&I_SK4>nSlg$QCEE2%;>2%Yd<3NV)QT;EBPcP5)E0kE<|Z5i(2nI| zc4|L1A@E#oox!$3(BIv;1wt|jsAy{$zu=mBU@J0t2%tJk#`NRc|+*r zN6X13N(Gx2Xr_y080VGS)F0XENbRMw%bl4|BHuG&gDnK;xnpsF`9w(xc`KWsu|#W$ zt;HsvMA*>~b)nY~HK6^-$JH?aI2=ZDhsOux6yg>4kB$j(1sD5*r$&2{Y})LjaDfI- z^d8UVWC?4Dbv27G5Fq&V2>bXJ28dIYS^t#lSx`ybWr&5X}RwFA~3Reg#3V9eh?(xEqC_X?^#UH$ZRgmO`u8yO-WtM3(L^6M?&d7-?BgSp#pP|ehqqzsy7#>3i zvJcIx_$DE42C5u_JCy@s~ z&N2h%Tu7P%=Te)~;~YZd8ktT~GVIIY1_@g76~<2k1(nZ!d@c2t1%8que0&^Tm(Iav z7?+?EoE{eV#`3$%LfJd~{ZdI5u~y%h?US0tKzE{^pw|xVgy^9FziMvgD3qCp|1C(dns`-tXCY%xG37J<2WFXa|?54nH|tb z=JG+T*rb}spyH)jZpV1(N(YQLgoS0dA#CBe^OUPVN-O^|`f7b(3`-Ou;XR-%!|Kxc z!L}vv)cXG1I|LP?5a>K}B1uPuOK9eftDDg)vBfQzsFYg!RhUWo@dn1!D%v{~9@Uh< z`5?Of@b66AUo{~jOZFaPU{EBRDSXH>9@SmR@6LIZwC~?~phRL+S{Az>R;(o)@%{f7 zCf=Zwr}ROIL^^vhw^~Bb3ks=;r6bhxNJ|comlCT-5I||+?$w-5hd@PB;vb@7l0+}jdZt$4=;DPR0!qd0kC3T@l_;k5;DpNy2j3MaQ#?S2jJJ93C z3c$eOTV0;~P8D3`Fw+t-t`K=i0p*yFFhJaA8Gd4qj z#N(2Y#khwuVO98D=0X!25E?yLBisiU@urQy4`x zbj+y3_{i|QAKOXt>^1hy8X(}Qm7~_1rkPIzmDFmBXs zvkFhUF%tZ|(Oq>*q`X_lb=85BldbkO%nR|?0)&-8U_7d9cbzYTrBG+3Pup=wzBmF% z(2yMgo7S_TAE)MCRkmy+ucr4$N+besg^4Wl=_l#qoHC#p5Z9#O*N^}!xXcXM&-r=e z-Vq>LNBr$$kbxfKFL0G8js~S=eoNL3Yi(9+DHaPNg?gjPfU774^u9)E33Mr`3KLzs zSxJxE`y{AeDPhdHY^=}i)oO&>KDo2QnQXl|dh<_bJ(@$bv1t!DMO8z?6(Gi#9(RqP zzkM(l?obN#J!j$3678HrD2~Qh>i!7PTv2ouI*&qk!&ok{+zO!$)_BdlKfmb(EJYt%0$7O$GS#HPWP}#K| zr++!K_^M%u3o@m=WMTfXj3r+&mkHIoB0gB`y-)WcXb;@o=X)$XjZ^*QpPp6`jwF!? zI4?=PKCkQ#%3UqN)nnUv!La6+_d;G#CxAMw@vfWu6D|Bi^5~buUMbU;o>6iQc0mvsfde9}_Eb{%x z`%ItoV*ei^oOh+x<54$U_QY!IKF0%H^~&)3S`DGiSDAzh0^1W1y6!4Co-rBu+na81 zy{Y-M;F4YB6Jh5<4f$>a{SHAN$T5*zElr_L6z-B7tHW->q7}zsSnh84D!$T$nUedh z09bzytb{LufUu}}PUpyu-8LJ21l_FxWQH+9 z>Al*gC^ShxCfernc{S^glCmVrj+4_&y&c~nqkSJQ{Juqc^p6KW;y1rX2Lu?N&cW(Q ztEttvtWZ=fCvXJkH8P~m*M3LDB4^dK%(jh}N&A_ww-yFVjX5rAMOi$WbuWv%{C3y# z#}82FRvn4|U$R{yeLE;FA+k5B}?=QG4Z`h;xwJiyopYXmB zJ`%@=v@;tP`DZ(85I#Phe(FBqxw%RGss9;wS2F2NnCgmypC!ZSs>ij0StlUQlzP0X z4Dn$ebBayQn8k@=I+xZfP~`KB&lZ=%p#sZ8tN02ehQ(|0#o1vN78`ri$=N+fvE zD%c%94-qBpnM?iusqMl6X1e%y2ZpBLVz|(?C4;dVh1-Iw1tX3ogH#+9mg7fUEGUmM zV43s5qLeYcN$O#JgMY`Oc?PO@`yl1o#QJ>N_Pm%U&uiY}Gy)hw&wp2!bmEpdn4hjC z!EJ*C?#k6au*|8aH9Y^)g4Y#&MT3%p|(05UZkYmICA>Hbxu92}I zU$AaZCLBtNnok{V`raflLgI4_?r^N)Gv&AsCl$+$WyXTE?oV#`XjMu@Ia`NwY?*T| zBKiGa@CH2`7hYjd7jNL~jfDuO>-`FDm|~+-e~3dY@X5^^_fv}boP28=7*Dcm&f!l# zS#j!ctNvqRL8_9=b0^yMt$zDzj(A1k<%Ubg$P!ZPvCF-`5drZp3~qSBJ2F9L&%ykZ!G6SlIewe-1MSgK3-48eNjn`*@qi+Ju(26#ZXetY3ugTB#Q6#%-8KF zxoUXWyTW28hsTY`;y4L5lH^hc&-UUW0Uy4+5xQ# z>J#OoQDYSK(6EnYQB8Qi;+YFXxF%~@1&H@~_~bFpRrwaVMaXZnSMA-$YPwf*a%-Ml}(Kxm9(UodN_^gFPpTMgPWzNI&x! zez4v(p@|PVAZ3+)A4VWrTE%?Kg|*&P%QNRch_uog85539 zu3ksg82!-x_Ob;Lz9sbmO%se_LH{kCU4DdZ6K$i&!P;BG^%nf`S;m=R#MYwl9ae8> zG{;$}r@0MwQY-@4Gszc~?bp}&gzq_cmXfCvqR%6O|Btl(g-yti&Qvo?F^7NLFWIGj z#o2XihEZZE%qhx=N8IMeU#|6XZ`5|T|Hnn~SYlXyAm%^=fd2-z6VvYh0$cw)KT`w& z(x<~Kf`S8>#$3GOTGYK?Oqvme=m-DhNHU2&Iebe|fPsY2P`KA>k zp93ggQ@RHupWnqffz6TK^2^%Te{@tjgb&8Q7E929Nbrxz5^OlTX5$Ps#d|K*-f{kM z`3tbME@P8!#spjPhk9evYu(d!|3pR+4WnbuJK(|j#rFBX#gw`;&4vHmX$WD1y6F2C z`Ynb-YzYEk7w)xM`MlT4D*5{%9n}lOzVD>+a;t8n8R0#}*`@yJshH>DNbP;q2uoWU z8W+VF)`@OOA*EIfI}F&OwrlL!oV~Qh=_yezs!_oxSBXs{#)no8kf*^7u@dzIez8$P zb}eBq#y0x1`ySC4%5?qt^ezff$|S;0X{F@DnNg{QFtbr~jbV>z25q6Rb3;3S;QgKC zP^EVow%(y<+T=C}UiALV+;U~n_8(zR$y?LxamIZ$8ZVJn9G!_(QC=T#pV{*C%)DN^ zEK>itaXB-yCiKf4CMA$~$I2h-9_4*04Jg~eN%CKG%yx=fBfo$7RejXJvyhTz#w`Ghhy&?Ax)RqEQm^|=nz5wX*;Lwax{)Njkh~bAeM&7NR@?m3 z9sh>4BmWU=SvUW|T2p~P#s9)uh5v-LUiW{owjS%_Hw31MuE+3-Gd%1HR}m$07!`DX z?{kpCvfRDmr%ayr@HO#pOP=9#EaE-bau3DP-%kg2Q|##B`SG9RNOSPWS}@PlBwvBS z$3QWrh}A6fxY&JuBb@px{hIiHez>Zgj;XzOVzbFyAp}@3kjktYZzkC0_W57sli+{K zXGeAI;*f@#1K=hxLfhaIqvc`btwiUm@b^PC=I5Kg7^ep+*ln`sgLhJ3Z$7o)q*(sw z+-1r1u%N^v&K+tx?R^vHoelLK&Jr^~Pyd7H@VC-uy+n&9gYRqy2HGuKy;?L{gXXKn z?Ys=Ch#_a&t;fox1Aj4oP_RG1!tzSVdzwZgB!P-`pRWe!G>TDHE)=iXT$inleP z1eEu%h%6E3poeGDk?}PtR({Ob>2$TwUgn zZy)CRoWuITS(5~V!O)fve!qch;>2>p(C_WHuHn|le`M9NoBznFWXfahM}a^0^-cj- zcTTot9vc`10%}M#jDFOD1pWL%c`4m4zmii6F8rt60cZ6c(rrtgNhTZsJOK@B5GsCT8Mm1_8;bj&d6&oITI;! zS?N@$?=Wn^s!0+-r4rl@=u^n$G_cnbTzv9}O+N{b{iw}}XdiE$sD9e)>jv?gM&P1f zdO9TPp*1<9<6K=|72dNf@?=_RVA}yAXC`f~s2u(B3F5o}!c&)E7StYM6DcN<6}?zo zjq-4jI=Pj7TaNAWDTf7*l&fw;lefNT>6}6dSOOwI#?NK^_*e2I{8)%}{avj1v_SF( zIg}bF)$p`08)M`sX2HsTsqMmlSKFHH+mvcaELxclz1} z#E>T4cXJseLrb5+DAH%W3c(s*Oe<2EQz@EqlQaxFFU0yL1Aunr#vBnSU`F zSMtX6{pqv|@d1f4+C!K{Xd&t4p(HG*HGHWSfsfGX@Iw44JUVT$l>9ljPG2GY`E4w* zwLk0j$@s$L)e=zl#+?z!1={jwzUlWFT5YG8MZsR@`l4G@&r7M0BymUbLxmBieo#CV zUa)%&wmYjk_SDBZ#^*rQW)=leqF3k81NHqlaJayJG{DNCf8E%@RB26PDp-hgZ-C=x zuu@HI^Q#|jirdP^9nMk$&eKuCS@r1RHz}uV^sKUAPo~YUC&&4<=qdKaCKL{6=Psk5 z2bR&|{Hh1|ob;L~gur@vk;rVI!mk?6epGzh+K2nEeD#tc31pcLvZxYqx z!g|k7nJ|GY?LDMHi-g7IXqRtLgNEBoANKizRWe+os~t#!K=J~@`lxSKPzQsi=-V|9 z{bh9*8=UF zIyFALqI85&BJRvYuzq#~^o;c}i=?@>HcO=OZ()Ei+)=}o+boODS;L^5QA}3G^ACTt z*6&E0at$;#$*N;?O!_;Wl8xKMp_W||+-Jy2Q7F~hwGYz?7lsNdTH@K0=lZEx{%Lz& zi?s7SELyo&(|EV&M6#U9ej0fW)Kb+C`&Uc?J=y`tt(WazZe8&d9j6{IS4_!EQyQMs z;Z%Ax$JrDp!BtJtLT#+|04CU}M(Zt^TgJ{*Q^K>`F8ZI)qJr3WO=3i3=ET}Wos`I9 zOSa(1V_r+Oj$^$B#PEE{T0aRL4y0JHYm;P2ePCRQ2uaN25$v&5}&}{Jus@1@Ksh`ta zI2fC-gQ1t8=4ABY+fl(;X3q^q#x#D65gVSdjJS6p_lq-_8gUP8^N8hWCpty_%ci9y z7rN#Brap4l#e)+YX%no}h@h?`2$$N?7tY7s?qI-0kgq^dCaSIoR(I15L>Hla><(3^ z$|>5D6AGx<8+udPu7D7+;mVy!<(F$z6S+q3VS8677jaf1KFwXC$=z$ndrNc8QFHjQ zcmclJYTO0LDEdRqVKXU(53ABi2NmAhsjbbn`&S|KL9w?;<>WD>?PMP5YWtEvA8W@q zYrX2WP>DD1=PExR02_g90scceM{Z8c@#J$D;Ym(yw&xWAX%2C2+$mx1{Y}o@OwWi! zS}P7M5mIZL=`i>IVznD*pe)2*-0?6Ykn{D-PO~EedtKYEeMF=Tcp)p~$M}V79wVDX zJaZbnqSA$fcRMmhrlNumpdK2dDlEt8LxHS`7^XK;+q`Saz?LAaC)M)gl_c|2t1<0QauR9 zcHWBf!U0w2K|VsRt~a`Ux#4f6#e<{V+P~Kb8>XP90-f!GiF}$t(W8rK*QGl#Tsib5ULd_`o(+}| zQF&)KMXis4AtuGWVy0)lJ)2sj8S3DH+8jFT19@O7b?d$hZm{n*oM*cK^u_d@04dX2 zRDVP3VdS1QJGxys`__K5R^#-}^rCGjvB!eqb^#xul0tO>Tt_WG8_LBjnG*39iW`-k zQ_%WH%%uwg#}ZnahpSTPaD%SiJSkkTJ%l#RXoY>Hkp6yz4dE6xV8}yO=_ox9K0U;1 z{mO^SzQAJ0Zpk9WG8LB>EVuhE_#DiQ3V1>B8g}MtNIB~o%S`j`?JL^+&U4WF!Y@*S zS1?CtoEzM)zsC4mEqbdgHS^O2WP=h1>Q^Qu9Vw%>>5eRBR5!IxZODP>ZJX;uJy}v=SK^R|*kzDFL)2n!js2Ip1d|TEh20_b@YT9F+X$1K;;&X zY~S(Y`)FYWR-aj4+pQsVUbXea?lE)!Yk1dBoxA7Bn%!~-fB(|~QsRGP4@eUEzm$Du zS1bk>PRJL>>pOU%d^}PsM&Wm9P_b4;sF`WVa&#~~(F~EK)WQ+Wa5OzsMzGpb3XZ=YtZZ7+_| zD?;C{GFxioJ}U%Bx3Y;oo_+V+2qL~__ZLEswVB1gIEqz9wVoO=J#l8M6a50tx|iR( z+@GqqeU{q3ueS?r{3PUx_UXLqTTAwx^$@w)qH9`D4D__g+(wvyG>AYPy6jrrrpH|C zKJ}Tw<1zngOR2zYgF=}3vZxl?{(^a5(teu=T$&%&4fQxrMyh7BQ`zaO>`}OP_+?-E zb;?EVdeU5d@Fb95Oobl$=}gj4C0ng=jrp}rzP3JW%l*kZl$PHbwc&zVbtW!jnKk<= zdDxJ?vZ7Iwad`POdYRH%~R!y817x#;;kjFms; zv4Izy*tiLgmW|b_-`KGzJ*}=PZfnjCWX^5J7dJjPvufU(LZdp?Os+CjzX2~=058?P zHFu;30Ne598v05BDzpeL9k;%5Rl#kL{tP+lnzm< z)JPWs#0mmZ1OcT*sZv8nT7pV%5rG5U=O1pET zQmnd`87QDrsX|qwU&OWU8$(;CBLeP}6UMqxe5y7vXU=GdpkHu|4Vff1Ewm6C>!z9+ z5FBvp=0{duWpKx=IbRkHM6JprT$Elq-|3V#q7xGbQy386^#lELzGXm&KF&iY?6wfk zR`j5f&cp%@!|;}Eek~bC6u~bh*UemIxpeVa(8u=o!FPNQzKUm9wbL1Z+>z z^;Oxj_5j0NG{>bNf}wl%eQM+a+|mQ~QDAN_43!cz(vqAFax}@XjBP(A0#{d0ET9>; zNp=bu1s)sA=qmpw1^y&b)rMwJlvJNf2&1sh0Y}>S3IBw)yc4lXf?EoUhfE7?vI%3r zB47RD*2#hhZ+w&Ob=@2N!I9<=VHpKgtkk4(mWXIzH47TgqUthMN8mA7e<`sS1>Sf3 zpN%zesa;Q)h9CVuXfAYjt`9D}be7?E3{ANN+v4CjnK9d77QO&esp}ht^`*hDok7h5 zkNzj4(Ee^>V&ZAs#PsybxCuP|dE5k%7!#+dq46Y6Q%C1T-20oSZz+u|??30RmSxa6 zKnncyZf?%y)4SAE@lWqYMl3(Q>vZ0H;Q3y|?Z;mHyFVX?$tUD@e`-B;Q4!33^Lx_Y zP3qtu|C6Eme{vk0Q1BC`C$0B))8H4BUg+F3JbFwjY!CgdiTdoPcO9RfoZq^GBQo{N z;7I4E?Fuu`;$~5b(-ai4Eq9>lyYsd4ZkX|Vjts#U(x5`TRxxy}t($n=EeFZoqG1EF^xPm0Uk<6myF?x zF^YwR3UngC^LVf$+9h#D-y9>5oi?fGNvC|Irz1^&D}v|Dl1%J_ zzP`PalbKDj4;AGV6b{qr^hYHlBO^SS@#*OUXd*Os$6JErjGv^WWI$Auf}EUOk=UL+ zdu}Rrcv^HU*ZwxOz~$OiR#wihum9M1nz-!-?YdXomQkzRjNivw z*Pea(u#dVW7zW!V_Ug)U*4Lj^%iA8CTskaBiVP`c}z}E|5aQC3MgaiEt-79yNec-2 zjZC}1Gz0<~g=5;7Z8Tmub?Ve2bruo!It?guNgcYd^i(XB{SI2cmX?-Q)7mPpt*yOy zBqS1Hn?$n-lGzI<3eGmKS>C(nwk#dwcTKDnzJV&ogj-Qr3kwSYj~}z0N%_>S757WyY&C!z@MfG55>D41Wi*y{p(|026GO-Uu)l_ z^!soAdw-iut4Wk;PzuSzH~T%=`di17fSZRLHc*XiYn>_bw#@}A#)YMnc(~Ja`0dqk z&rDo3I%(rg-pK?XeI`$j>VlKb%~tBEL|GF}qNnM@qJLGclkK@l(094Qu8sE;3i;ACfk_|eT`ql} z?HM(-kt2?_nkJvQ?qW2>hYj&>t0X1tFNdN<#UfHd1H%em&V@`IvQ{n9Q_gR1zrs781leq)*Gd)BU@nz-H3v{oCtHC<_9JHrDp4ja?Z@m`;;)R z@+BFgv2BOvAR58N4cO1Jmy%@I0|bW|V!A0VW3BXdy_n@@d`@B0VV4_yew@j#3|xASgsSpIkIZG5XEf^p0rN4&WR91dV~gF~77A57AFmlTdZ=49 z7dl8C%Ct~@&I%*aoM)(?JZ2J(O=kn#!+H3UM)5inqB+U~0#oM|tZW{GlXCjqMrt)1 zyxXLMbnaP~n!JtXqtzaG$m2y50wy2w_hibxg+u*tQ+u&08m>P-Q?3ffh}Z5UdCQHW z6Iy^MAr0W9eo_6fI||299ras4%ROyd`+UhS>FVm!(UD1ET3}%Xc}Do9Rl7SzFjy5> zNs(Rg5wuEia0fG@`LY^z4>N0{n?hH%RIpl!w;d(jWU7aE9R+@J^a+N-v2E*7F2wtF zQ}NhCYILMi5}be~YX}f^2>{IQAizUfH82IJgStVtD`+#tAs{fcT?#JaV7vq*G?UnB zvuBm3=G-C_pH98Ab_F@N==7sbI8rO+&vX<#Ys=Ez%-A}|r@)4E9%usujqiQI)a#aj ziSGL|n9#?gBDhHX*ua5NfQCHay9iN*oDW76Q~-FX0BUhgSLJlWdW4N2z~0wcMwB&^W`&RwGS5-$$_ZH%M* zsQ$;sq1#fb5F25e|Iw9T1XfA^RW6QBoDyP~=)W%+vP6We0O{jdyqdrXVC>s*Xb4maJ^v0Aj0366!qm-Bw zc&OJgM=~ww&({`~v~aK$vS+!)EC3H<0~qElN-@VkD^l?<=kIBc@bJTj()$;ZAJo>? z_EdpZ+;yDK*HQL)@L=;Ht26tPAH>JU_f#z`xVet^_3c#l2@XDRsG*@Ddbd3UViN7^ z<8$=e_Gd@`tJe~jEz7>BVYYow=le~Yw(j}A#y9GB5cvG_8)$r|d%dyd(%m$4XG^zJ z_#Zm^!_Pe1Z=h4Z-@^D-@~pvVs?AxekM|tDH_t?$_ch)txj(I8EiW(6*U|q=MKJCS z=JHo{`pL+2qN1;CB>H|bG4-bMd#bClO0PwZ$fix~Z4o@?VDTj)8qUH;3Hh46g%g9@r=vp=;*w}1-rZJg60U$x<;3F z=-N#m7@zImT2WNg)dmOjlJe%@RZ#-2hSiPGwW+gbiG6A3W8rC*XdQ2C`4#>cGUFNB z8of(W;iNOfy!914m?z*h+BXMz9%lvz2MaNl#pVYFE%;^lcuB?CgUg2=@!2#s+TPAC zE>T48gs?9ZELY=$Z(DH$!Wy>Hk-SGnXX)zIt2gwzrdvX%D;--LOiW_*yA}ttrUg8f z3d_1}x2PzmfHX(KAOxEEbmC|KZ;|X@U!dp^N@hzi*~%EFHpX0?5bu6C-5k8uog_;W zAn%qZ(qE$|oh&RYzSQ;>9XN0GIZ0OEUB>0{kCjEl_6b=ayXN1ybJ8LSTr4!6Dt-G*f7;Ej+%IONf6JedeLVrdq*Qwqs4JPC_ zQN`=b1Xa^fOW!|UiR$bku(Z%zuTEP*C!q}{&S~_U&g?-*z!|C@L)kP;o(CqEBM6}q zjzFy)?~23VC5VIfQR5bsn|vC{memfCAHrj?>EXf{G1+Di3PDg5 zd}B8n;4=DE)zrE;7TFqa!uQk%wm>%c;!^O0_?jgLIti1+s*q@)6i-7!C{EQd#>%}F z|MfTkyi}Y80a2;@A;X4M6_23}OoDs^AAEuYcq2`W==}mj;HBq;%^4E%HhVKPeRE|i zcS-9-XfSNTIwAB6FzD6m3xqn))Ru6D*W%}nTy-xIQBl#7-ZhVY=$x#R^)*UO=Bz9h zlXygXD($>ApRIbM6oN;dmGH#O=yU@h;zv;t52aE5b6w9^aX%SpndcJFZPukv7lYD9 zEhfWzUCV*jiHThQ5IgwZ1gaA{Dkt3ORKmWvQ@SD+2)!e+`PppKx@f&=Poa3F+uO_^ zT?VOb!m@R5LbGdc%9V-LgSY3tE`<(ypXV?Orr0Lb??o;B8H#ewc_=4xhUazf%x!z5 zU$HEB(I=2>GXEUD&@_Xue#MhXCCbXe39VuN*$kbAz$}v_nKWC|g>FdQX{DTHVHIZN z4uKXeczNW6sSFLL>C0bj9r!`@>=wf*)+{FFspZ!{t8%pd13qY5q@rz}^U2AGiQgM3 zRiFtynZ!PC1&+qo^r0MW^-_pf zjhrKz0VkE*GaowQYRF$QO+9raddmQGlpy>I+sH)_NE+ghw|77L$-nD6+VJty?r>zF zkRJw@Z@J(g_vxf?#P&1x-fElqI~=pPL2sQeL^d`y7WjLDE2x#WV$~O&@sb%quYU?GiP+x)e7qXZQ2@?ejDF)pZ!+g~x|C8l=`woYQ zinLGeu1t!ireEX)DU#cWBgGbxH>AY&(-#M&0D?Ju#fGoHDVh=b@Bh^ zq`w_vQ;WDn*`sf+S!Vp(E`Ggmlb*--#pY|$kHK`gU|P<9qoAX9tNiV%f94&W8FISg zCCv7Ai3vrVbi>wX41R%A)OM#U;I@CCvC@;cxVX)o+s`@Ms4PCQRU*B55G+|+sad`F zLbF)-c&pc^1 zzjJNR*^6M?#K$j!?Xfu5odm`LVuq= z6r9x4^PRlZwOjSwUV)2D^4!cst;Z;!Z}>_`8hD@jod#Or*>_L5$cYzAM6Ca$=AGIP zLT~j^I3=2koW2FrOU-i}IQlt~LCXjlfc^p&bKtZ8+;K-H8K-E6e_F?YOltlovgluH zYz&hir4BCRy*&T12LG{YuMKX2X_~!P?z{vgOx1agoaSo!&t9R=_ojZ}f{&;UT5ToM z32dlCKwxcba(I;Q>aw;8a)%Z z{G+fHf!oGZ|H6_7TPQb-(wi!01_%Xns36MZ*y?!o39edE5@=?#z+skk$~0YLmum(? zXK4;^OmdV&)F^NGDxt?aQSDE<0JtE?_@VcXM-d z2TMS!ZVo12Rr7cbMVaU7X!=_?#8({h{mhSJ7)svp6(IbHN@`Y@BZe6qJ zYmT^_`MWK}h4A%+7{oYw*mX#ej7H+saUY&nPE9haJKEmvi6RyHu5NE)ptA;B{EtZs_jJ*ogwQ=FZCsH<&PwI}W6!O&mm zD$(T=uF*;~uw6gPEIMbK+!2o*LYry|j18QW0jmdbPEnLA z$8xB3H(O*R2Y+%hZb*J$hkrLxmv~GYk;8i;mf}AbM^|uaeHUoa5jQIdqL;;1B>UKM zKK7}jUERZyTM@^k3hWly z8b(QO5rBY6!Qa+4iryXD2bSbHPP9_5u=A4IB(~G!Sl7lfG4aABJ1mFoA<8s<+u%3d zoTjl&vsbfR=|0A#J5kl8>ve3zC7=GSK>n%VL>b+~os;9Cn*+Km*eCF(YZi5nh7X22 zWeDpd3lDT$`FP)=w{E;QhS|+jS&ACUR6S330!)DK6D^_Cn_y?FtNela;3BdK@#eH* zhwiHh)#E_jj}pt`4#MkWnA-;gWS*(#SZUh(OP(pq*b4jE&$?S3E}JXMe!QRkVpGnGS?nz;R@Kyn%x?)?Ba?y&{6St%|`Lf5aVNTNf-LX+z+M z7FSEIzdEwibOQrF4zGZSu9yE<1fSwLVh*~jkN7;im6o(|gmWnaQ}@*O7*w7S(WKmh z7%PNJ9Z6!Z{^)+OLp(1$yy8?qhmv)~D?Pk-dc+2zp72KJSp~d=G=eS{i{#=ox3g7` zpxIB>lvvkw*|~L$Tfxh+!fmIBuy#}=+rL=WDRr$3DV+aVXkSbBv6Nl)7IK!5%xBTt6?d!B65> zh&mg`igXh1?-3m%g8+MuhY!mJo3e|P+%kM0qpumdI<5potTIAC%F#ir;pxHCzvq%1n zN_pi=fgMGcx)5|>%q#vfE6Y>uZ%&xZYB9B6gDZq9kp}Xs=VtL@N3`BP+!Yz*n3R1u zz~>qB`8${IR(4M3t^ifO(~{-E1XQF{{mbl1X_MCI>?c>dW2zpsW_3h7sgF;u&yh<1 zylIPfq>hNQdF%P~IcBEHU1WPylDlN9e#l^LgVX9W)e;#VH|L7gQ~pK8aVoqfjv30F zRQ8oQAc$#23^zd`{tL^LVAEFvn+WQ~W6#SgA?Vx@r&mr}<_}O<@n|W+;3sOzZ=5d*2?HRuh@Fa=}cik>zk9;kL%t({&MfmQ!dBecMtrb?3UX-;F{~9 zob;Zwjm*?-47T$?v|%RD{d0sYYHtGqSykNE3|hMN^Kr=P_?t2n5Y12<)%~WD!x<}E zcwRpWVp|`B2?n4bR($EQif=@M+`|QHDrk2Cz=dBJXWi`)9|R0<%(B$3gP>=Gc@(!d zIh2g8ch_*c7qBe)oTNk5Y^jc)2CrJO66aZ;s`5^?lk_WpZ!9nXLcGW|4W2jA){|F#cpoHi+k~%6sZILnKlz zfQdODbnW@6qSUr1LH`9J;;M_*Fd2B14P&}?2HTc z>Gq~>Ty!AGoNETI?v(`(%Aao)y+K51hbmY~GRHp{Jii0XK4bXex@W#T7e_l?DR+8c z#I6AA$&dK;@Qa&cxs=R~cXyo*+P{HsNlxJEK_Hu$`Ey!P{KxA9eY?qon8`Y>VYxON zG9I0{Px)KsV~}LA6N4!cP82=fSh}rzx;`Tr1Pnp1<;=5t+8UYQ@!kP#?bf2&vrfC~fg4!votln`GZ%((qZ$%q^3vMW9<_>^!$*{$zw z9nu?D=|(Ux=kD>?Jx&Mf)D-gChjP5n*RSh|dT!%@l{;+-!lgsdKg0cJpDr*9(sy9Eu zoJo_z9ysd8yehyv+*|lCiNdjSAK8aSg0l7Z4^o(uNofwgc@n~*uNLI&& ze{^`SJ(T$a9iL!g7;?yYzUR$#T^RO`=Inb#y^eR&DyFBnirUnNGGE5f*j>vIOw2I> zUix=_W&*_UGHaYyClg^Y9QLVbLkxI+$5X0`dP{f4Ud4^vgM$ocS}{sBp~R-~MS_pt zAoEb%n5vvei!os`fc@*|-58~&6P>vgRn~8F_IVis*h(YvFfQ6r<-B#}Mni>%SC3ub zt`NXPh}}}1*Y$J-S{2i^5)7^|Jb8XHBybtDtUd2153W2ch~P3wQR6hLH4>!d>STOQ zFwq9if%Sd_)hh#f2e_yKXr2$DRg*=?rTHM-yt{OP(t*83pX4K91%o7eLFdZY;>qt~ z>y=A$AeMVSj`bDc+>@gFP1KxAV{6ntx-*gV39f%fu;WI!`lnszwgHwh`(uhIVMv4Tw=lIOkE z)yw@i?;PU31EIsz0dgQ~;82lRv?@mj zV$zLypH}o2qq-JRMx7bOp_mIw$|9ek3Z>g@9Z?aQILK?K1M>%_dB*#Rjs;snYyA}V z&V9+L^j7&SmoS!}AmuY)Z8fEGl3zS1{&pFHz7Ris3<@Kb6@uWtSNH1nas$2~#v-OC z|HZ8BXx7CC&q7hgdKG`PIZuDMz}8^1@@&QymPd+vrw>QDFc*oUUD2~G=Yd0eMZEC8 zdaGxsh2;azYr&f$3KBJ{db@tRrWWq@Xx%1Kx6F7bt8lQTfSrEPl?(*Z3&ve?y1|et7^0ViG$L6 z_y1;){5e4VUC%+PEK&23bq2th+SVKOkJ61t&K0VMdRBk%2LHW#;mO35ep{%KsE1_I z^e_Evh;As|Z9|B}C;8b#8?lbGp@~Uu_FMrDr#SsfJ3R_8!Vq;=n}2H55{W?nyWvRd zj4Z#zNZ}~4n{}0SgaY*=Hgn2Y))^>xGg6`L|Mx%t*>}S(!DjAu4OtergO7i!OYX*g z$NoOGslA~1#`o{-a_q}L(;k1j_D?5E|M?ID>2}&ncssVQ@2jEhne%7uciGyUx4r&W zG(_QL!mTqe3mj_Syd+1<_ngXjyLUn6&U`w)RbZauITSV&I7I)|`i8_Sxt^;+&tB%c zFAf;r2DO*}VdID6aJZ9yoHhRslwv#NG+Yr>Bou<$h`WA%m1(7AWn*1k(a@%{vh!o( zaeE5{N{jz6vCgmu~Oiup5S<(*r@bMR7_>N{|p_``VjPZEYn?CNmj!;lhPT z@}Z703dOfO@U0%Ys_FwMZ#jZ6)mQ0#{Gh86^yx% zfk_jM=8p-PLqRUlGHSML*`kH46Dg5Jt^NFI0CI)PQPj>g%n#f`&iMhGf})~Q9M0P0 zeNvKGSzAx=dy5{bT3CjwyStt5yiiC8hnoBWq@^9mL6(;f&?8+_w7wGi`{NJn3MYcKLu#fMavf8P{f^4ULJ3d%Vq#Q$FV9eZ661WVEup+DRCCw@o6ZdwXMZiNys48eAOo72Myyx)h1T(RYXH#sawM>FH(m z4Lf`LKnI|g-OuXH96Rm(hb=IHlRJGn=*T|Z_u`q6rD(MNNsL7oF%j826`vgT)Y0UM z$s+9K%a>eRb#-;vBCnSX_45l~JbU5782zrT%U)pV+Nzsad(;r9HGY8mzQ*}134@=( z(!?@Mmw(M(W)O+?Y&F;w5+tW#?Ti2l|SGrDCJxS2M3Kx3fC}rltJp2(6W7;>%*-E%{xHi+q#>HZ zl1^97luH}$_4k~4>Tl1OKTjl}A3l8etBu&xbM0oXsg4pU!k{;*F|(++_z0;zONmED@MUopu_23?L}iiq4?JJ@!B7nPBbVb$E!#6hzDC*k1V z2I`Z?M*+#)E5|!M{=8zZx^T1iOfMk)&9`^cCXwfVH#{o%zg_Xqyn}`ZZ|W_6`(PI> z$<6CIt!Dp~M`IR8y~b?5WP0r@xMraK?A85!@!AHG`(Ex}$-CdS^?(4h`cz!&*+g?$;Q7eYgaBW-w8 zoa%=Xz`nMbmw^F>-@L3ylH%1-nl76H$^ZmDDnvni0pOSIWlLasiWk!ea1v-}MvGk| z4NjQQpD79!H82GX=L8VanqmzqHJ~)4q8{!`)`tVA3_XM^r~^blzbpNHIBM$uMJfJQyZ;=Hc<9}G2fKd4&3?afJJw-u z#|Ne1j>m;ludaD&BKFV<7m*_S_TiQSWX6njv-jKIjtxuf;%rpJ@(nGFcu z^n<=C?YD*=%~)3fYX15)%anQ&#ffMKLsmC1WsE*swb3{K#vI^o{;Q(h?|YWM+5U&x zLsPXqTC%$qiKT5u4aMi7+UPdlG8QpNPi6qoS@ArC?ffOt=|}>_Vqp%^BqMp)G*BS5 z&2O@3X!S00eT zv11c*%b^=BmEEiPFTqG07ZYqHU>(&H(|t8NiE=wPp=&DOxHl!kW2kNN&G~$$6R&~| zG|QkZoF-GM>1g8nbbuxs$LwRirqfO>qoCxTAuUz`i=qB~R;U$0n_YYzEU?Q=2YO}W z8+@|h9JEXY88MGSE(}_XOWl?CI#Sg}T4&0zl9NA`@Dv}OyZuaScmgv>XUTbY=L(ERd_!Z$;ouo~}7+MwG+U&7ZjS1@k zmLK}vgHre<4~yXnlj)Y4)Lh^VeC`ZyUI@WFaZHNmOIZY>)_8Upcsli0v1BsbBO=%3y|fkTI{-4g+ZAh23w8AptVR@b1job3v88-BF8D44fT@%r8d5zSyCb z6gs@GFan3s`bptiJ#=L)h&k65ktz+9-KzG@m|*t{O$~I~?);?DZH>7@6NUO~;|u!K z$>>yDC>CB@Nafx0AQDviLN_5UFSOLgpBS7}C+h0>AaXHyRA2=0KO_Es9S<*#rQJAo z9|T9+ZM1T(wu8`ZUlj_a_j@@SExWnjRe8IOLWWWMjlw^Evr@>|S5;lD^t(?4_%nW4 z@7`T*2VwBOi*b2p{;O9eO1SO!&b@uS?q}=Z@7y;3gYoG4tD*S6*$*0zoC&HKPO@E= zFXF_T?|r^4c3bR~<7OSECytw)=ny%!^6|ixx9Ot?YmXc5t8KVzmVmuQKS-b2ap8hj zX^EG@kRpQKuVw2o9T^QnL+ViE)YXV4(rP5u$(ve_BZN`|^Ut*F1AOu6ra-x7I1shL zBEn5T%2#aK$|F}7CLv(pAhcSL(Y4l+4NFcyTjc8Wwo*Zoco<|5clFP5_!V2{jn(;} z=IOz`FtYf{D}F&uzWOS!m>PGr7L%ul<|~6z zD14bj@t5|N4}fR{ty2A7wj9ZfMnq7#i5+6tj`{l$$ExOJg}z~ z(*km|)u^mXo_{zt1uUfX)dno|bqF1sgJOwvr}I=4&+m@a?NV=hp87Z5BwWZLX*jk% zRtgq{dF!qc(ZGT09C)2TJ7m>Hj>jV7FcjGZ-Y9rWV`wYwYJlL^&u_?EKO{W>&~s}{ z!XT37;&0UmW`py3igQ64mCM9K^G}#0-o3X5O0DuiD!p^Z8lg>!GS#Fq3G(pS3J#x> zvp`i7c^Kq~=3pQ8nukDN`s;oSw@soe*(hdDC+6!_Q2CPpx~wzbn(i(XygHeC$|ODl+41n+LCHIR~^adHE8wg>dY_7%$#X!1KT0Y-6UZSweN;~Pi3(OlniAYx| zGjB$Z{Qx{&ng>AovKx_K4Ax7rYpVZSosSJjalszo^hJpSWAI-yU#=6s2;CTMpr+~v zvvI+TM_(-uk*EP;WTOt|=!7X}>cT=+=%8@#bVwa->v9|Rj+ zQMi6HM@#h~;M5l0=^`D8EdpKp1(WU1w(LrY0Ob}Sg^_0*e+Q!(xOg+~gf@n~F=CM~ z3+F2xR`t5OLIZUKAS%t9pYq07VC>-mekI zco@+4%*X~EhXsB7pE0s2-p$nS-5Zay-Qa7>qa~K>nsdipo?hPlkv^eUfKO~VA-tR6 zIj4Q0Y^X74`Nv&^1L#SR2DXFjaAIU#dbJf#L~tTV(IuHV2l_V#TerTZ`A*iwk`1Sa z%l!K14g8!{u`{1#Ra)F^NR`|M5U$9{r1hS-YCuwz^Txg1;?69D6H9T!i#Q1vO0Da^cwjwdq zyBf{B{rb>HqQ*dK46XVT0Q#WNc>_AO)riC|hRr|7%C?UU0hieGw_0^U zKhtPrxWhR-pwC^(e+zKAWaM-Iv)32R-MDb8NU|4PTTH@h8PG~B@+H%>OsytG=ME8f zIEM;g$bmB7fiuUwE#r2pe|G7&3ZPIUcm9EB=TNoV>Ig!GG_n^xRxGG~pZ;c@F?F}m z-W5xq0DJr?nkqb2dp>i(tbETaTD{qsRL-`B6yidCNS?NK~hdj*L}q85J8eohsoifKbkGD!20UDMys*~ z99i^3RU+^|}QVuK|8R1DTz>;b)qJNv#mBv3D2V!x_knp|D|L_Vo!(5{H5>iq80 z@|ZUJA=lILBlYq@qt)iTf>?36qD2R+kP3!Qc7|?aKQC{RC*oZv^f8I;+`CJ#IPMc_ z_CaeyV!fMzekXSR1pGaF+3kzXQ-_mync5F}qaujQxwj(A1)b(&OJWo6y5E@0#(90$ zLY_ifYP&7Mhsg1G^aB^toF5SVa&=@u+Xnl3p6Ai+Fa3XCq=hesr@={fZvUj>ax3B2 z^kJCdHIyFi*Gy}|IC1UEBPaNjP&6yr9o{Bpe;>NtLvsSb7qE!d*)e~NlfQDzCWzgr zQ|rm&+Udc29Pd;AfZd6WNg3X&k?s~H zgWqzan0VVyEYLms9P{(${Uu$iRn5iK%V)%3^wP-g?Jz@MP0&&NiY2u;fvA0U?9li( zAL6Mm(uS3RT_@j)X+D&-4KH?#{t&sbHm&{61Js*+(Wy%_c)qo8ElukOvZgQf%5=T1 zkL^h&ZUv~t*iiku8?d)X+zT&(swFpDHL>W_o_}-ETyQO5IEp4lL+R8 zx!-*~L8o1>Y8xVWFjKWe=dH-RV~y+efP~r|zfm;jWe>L0$)2SPWnKGMAbjn9VYt&Z z`#1hEA$?&UO+}d1hrB@dJEUr1jNVaF;`be}PxVQAzo(8rFTmu8w=8*c`LEJn)}9ZM zZE^UfCqamD3C^QHiGjbpPEt#fQF#bsIy!Q-sBN3(_k&nJ%cPMEqLE6&ka$1SkD;gh z-E~~yTyX?V9xwamO&i(41Jk%<7-SBqg~5VzZ^`09ungy^JscNo8L+=lrhDVXn$h;fr>??CO2^z4}WHv4ksXe+2J?7-`EN7U{s) zLM|+kUQTMchyxyq89kd?fh!y5mFkzWHO}n!aFNBk|1P-c3-3)mg=Q{rWeBEu0tK}L zhI4nVc24MzQsY(uJQTfPbJoH9_Bj{$ur+B$Yoa-&$uMirnmsWoAW zPlt?PV}h5QA_euguPjd`VO><2joxM-U3sU%k~I~@La>1kBhdmG2-0l+lvMso$h)*( z#)fYM#$q2ih}=LM!K_F;){8Q^wYi$6f87W_*&OWMsatnyvL$^VFCOCF+OXt*X}@I^ z%7fev7EsZ)N>8#>M9CLBsa+G(wVR)nGg5uEcwzR)m<0a-mA;)J%F|6QFLNCnJ0}cFFvFH6^KxlvBD@=INB*x#{fmFHfvvVA8&KK2!Ik^lDTj9h zBAavte{8a!cnAhN7XN(}XFB`8S*`umx!@`;s|_k`EDff%2p4X)JaMRZ%OwfpGgW6k zd^mCHc4p9vzPQU*uRkzZ_PLzyzxlVOc1i#FKUU*4=El{RrXN=HVpLjcVU4mwddQ7y zp(HRXN-JGgoVA=IE4@2|rN=(FbpXsh@ZZVK|D|N=*(@lqpvMniUDMNPG9)r!xUlE$ z?4_ac$VS!=GmnhQYxyMPl)8oabYF(Wt`Qz5skTgmI~B}ncD7~A6k8UQF86gKqAX1D zHz+gHn5%5KkpP&*U%x<%^laTexQk7M0%M^@T;HHIKYg}bmKgsRw-Ssj7)qJkBvdD( zQ8Cx9o9abJH0E~S(s;=#to|Lq)6srf>q9F%S%{Un2^}^2vb7r!a*+&P9s$oBb!~!b zMXnPoS(zJK03HcV;hE)iDa?MWjq?4|7P< z&Js_nQWW-+-4c2IOo+#8HxG-HuV;MZkCct_i@Gd%@syl^62wAenW7M{3V%3=eF>CW zFes&WvcKCTuejtqUZD#=-#tB6jfSlKfJ>p5{V$CH$*i3Sguy&%j|HT)S;E{OzYbxz zku0wBW?GWWl?^>kM8TF*0kd$#3VLPWhEw;C-8uGW64dyOl)I=Htc4IY?)6^CBkw`j zM4%}R)iR272*Z`cJ5F`+z3Rz!u@x8MRm9VZefX__>*OausdLuCgYLvZ_c)CXZ4ufP z?EnPA^6;BE+D0A?jvQ*YHDY-Zu5E2)n=~1A*;92Ht#4ieDJ}{l6Kb8fkV2q z6M#q3AZ+i;Eq;D@cuRDdvJkIi3#)G6BU3DfJA`1vg-~5tL%v)n4t^Gf&UQlrqhijq zRlEGYR?iX2B!GjhaiqfRHl%H6Yaw~JZpf;)KOd@TnciU+6EXc^sWeh zUSAJC8safWO<2hVB&I3LP~6unH5Yv7@cU1`-;@A~^j;W!1!wWejL`{SPz=ib5U}j0 zVx=aK;pzVtOaxx8-5iAmHC6(F$HANwtXT{%YGU3D zwUdR_PHOjZ7J$T)YiFjt;@&2WM}1o7C7Ha9c(WAFXsZeQ-b_WWN3a>?fA;XQ0QZkN5;<9Tb?VM6OKgL)?>)44We>ds z6P6jD-Bi!Wy~7zII?PiKzvzlB^&mzXkR{MMUMBZ2{?3$s*Gj zw+?i6ZrS~=zu)xWMLI`%>+XM4VSa41?C$QK(0)=|tJ2ugLT+emoc{8~05@TH!PCvH zv!b%HnZaPJ){c*l_pC*K$0Mf#W%;s+0T|V-t5j+W?QwS7t}EY?TOpuhv$(j}(PK+J z64(rr-up}Cs_IQpRq+o_vd!Ym%~uAWj&QrcMa z0ICaF@Ce~U8Ilr9hzmsyYLD@jRan9{O?nO7mx&w{X85)Vya-}ENCQD=Ek*@Tpt9Bg z9P6GsOK({qfJ>(nFhbj9K{&k(pRss^7ZJQH_z@PoEFAg&@DHd|`43w=+-ziC%P(kI zc=f+@1IG>bjB|K~%2>SUw6c#5(dRZbb zHQMgsmMgXHsXRrut%)?PbqtSdqLYPP=?Mo^usW@Y| zfPk7G%`eLREG;c3I=~-x1YP7%61E9c!{>IRTUxZy5)xp}jW>B>OB6~)v(~3}F!qtQ zdxOEa=Xm7q2hi7^1P9|h$L<*zN5{m}g6TF&%l_U={;Ul)4kQfE?(aMPXMVK*dHV%# zeoS-55{Zyt)mu+N5vJRp`cLplYEURtX<6<4KV^sZ^vU1D`D~|HLfBz_`iFaax>d;j%EX#~{M)vTb zL%pWwLcoM29Om-!@_hY%7)3=%>CKdh?^LPY+}s=|EC_XQ%m9C{`1`=XO(w|htqKJ^ zjw%?EHCi(SM!jI>;2LVC5BhlRkV=079i)`C7&s(xXRm4O`AFgZz zY2za9l8yEv7|&$fhK}I;cqFRt&U3lM`bENj_IGIrqc28d{0OawDp(+`5+CUV%9DwQ zTSO>?wwBMb3!l^D&klic&GHS7pC5hH=yH}siFgsgCTd8-O=vdwO#IjjCrjQPB}wTP zhfAzFTA>v|noE%h#uM9pQw1q`Y>)!c)htk$!zh zgO9CJB{}y`-5_KRWTMR&cM$)Fwf6vP>fP3TRa8_|?0^VSQ4x_Yy+lPsM5;8U1VKQg zNiQKp;jbtNNRtjC0#YN=Ye0I9)X;;p&_hcl<$mmQ_FZMKeeXW&-aI^{&dixv$2Z3N z{)Ul^7%mXq`Hr6IBF??B=!Bz#fAX2Wyp7<(e1)r^Z6G1^wz zRZyA&CsB#0!sI5mA`T>SHqk&8BpWvK)SZMcPd3K>fWHuAa%8fwJG*wV1ur7CNX9tn zrNtMFw5=&F->aW{$ZI^SQY{1HN#*ZO(d(;Hn;YmRjpKS4U(UnO5fn>>%p1_zuB-!gvZGY3sce>KPb zr72~?7yJ_E!mmsR|mUtu#1{^;@xUbTnd~*r}^Wl81Bua-SB*d@PW~My@Rb zxv3Tz1$M!Ro4go?4+ZQhSx!Zs`-GBMi`CrdYfkR38yXs>pZ=j(-YmzS*U6nce>#Ti z9U0j8H~MgX6yN!~+&ii?l}F1rZ)_2hj@AmCXTMu8g!D*u^BlZNoS010M?NF-=2)`P@#I!#jAji*pZi6wGt^xfYoAg0V6~e$y_{|K z9=$^~rH^;c|CKUH&I@?TtG6OeZcWn*&oS#{Wqt1#S|h;$qu}pu3ukEMoY&8EOyAsn z@mv^k&kMf(q`(QQj6HieFa7OW=5Y4!Ci=G@?$-1^APol3wz5i%mhU<_Egtd8p< z%H!00G6qk+)Sgt?IfAJqBXrNY4BWUwwc4C1-f#2KrMr;p(EfdIZeKj{e{|O%*Q9eJ zY2dW*(}C!`rwICL*g4{kapEAt{UKVWVPUFVOmH9xa&2%Uw05bpDqwIRQtz6%^NO(@ zikRc6uD^sMl!S;jHK}f$9~jc99*~GY2cs(rj>8rV(H6OG;H4j_FOzjf<>SW!yySk$Jz_jLfb(org1Hpv=U?{w(}Z zd0evCT%djj%UJBHfs2C4IHdA-9)IqO>+-OU1K?wxbsB7wlBs^O0bLOLM}9@^DA`HH zPx_F6p$xASuseU+j(wMr1obJ@6B!*(H-bFMQMRixTpe*~NvY22CN!Rvx>m|*t$R9J zwZGNWTP`#82{x+^k>LaCBX!iIS*#Js+rQqC+TfLm z57=i}hSsBagwXTjD1Jnlo|AHKrhYlQVN0*k7xbY?`t_V^_wzOC#gw7y=&${q4wO2F z@q6m`YxR;0pnjJ|D+bWpPCHU-^VgB;qUi716i*4nsaIo3odbX5Hj$RjK`7|DD z&Z9Y~r2dzqd2b!WlDHO}g`RWfmV3<3rc)REG!^s_AC!j?AN)Ov>R`%6msu6tccxs= z{3LQiG$W)7>56yy^CZ1W=l(a z21s9#abqLjy1Hz!%Z*2WY0Kk1!Zgr%8%9~{7cUv)(?94v!;7!u}#*s?nw zAFEFkZfTRAjoC5m$&b2^33 zaFv#i;`nt6U+Rki4bKOi+2lh1kwQ?)3KkeTo?k7d9Mj#tm&z;s*Fj?Q>pxagSZhP? zxqD2}mu zvIFy1vMgt^x^$QKQ1xo(7pN<)aV(S|_nL$SkOsZ+GjQ!~2lx&WOE|<2Ys5_Nk>VUc4F_f-u`>& zYksAA65gWinJaa?@(1ZRjYt$u8tGcESh4$$XxM?dCW2mzVD?hk(v3BK5TRh$@z-pt zmLPFGqteH`d3;)wU-;!+JIQ-w!h2qRi%S?uqstVvuubxBXbAM8kaox$cE>55)Vt$F z3mcc);fx-@56Rwr3F zA@H-oH<8DBrXy`5M^#G!nE};Rue`lhJKR5Umw5PMoCnd+M40gnjULfo9}i=4cr)5` zR_eG^LXroW#~tz2sN`E;#HkXI?3j`nvH4vO zrK>s;5S%z-XgU*`Be-0^INQ&{b+|Sd_%IMiiap6=^lsNgE<<+|5Gu1r~a?r95se1wS zPt=Jt7vj__)f_Q4yQwz(T9|MRcVG7X$%RWZ(Ve4=ec!pMV}wJu7aG09Z~_6R+1|5~ z)v$6j=z?pE+#Al)882=%U%~z8=ETizjczBbTjGLwbf@{tS83kAg!$5(bnTp>i~L;7 zSJ^yIyhumqmDF2*L$MX>y`I|bPkp$Km`^!Mehg7&y@^09n(@EFo}&i*Y2H7Ez1?P? z$t9LCne;_vW~(eBOmn?Vmyy$;ycvN$N>&#ARW2f?D>fBpj$ruTgG4J`gpJdS<4&*h z-#c?xW%1F*28<0BQE*x_qb{PkX7*w8z*ZNrw=#8DIlv>5-Z^f4W{TZn%dP3IU0xH+ zLz8Tiu^@#gygL(B{F^gOK{VjCcXHHm*4{<$KW!f#nP2issyree*lwMQhua0lt3f4j zaM=?o@9Tn>lP?zXpXmI3z+

UJoj-(@a;CC7X09fFXg_+f$5OLOAh@$iCv2mDcX z>KS+AP$?@~C>%qgFfR4nlVddzenYY_DiYHZkYjEdOKfi3e%RUDv!*p1n&?kY-`9jv zGC%mMk#FxU(@4JTwcwq%o$y#?DyXfx?Sqe9DB_j(5xAgWBkHL7ahV@>&ow9R1RS0c z+6)$s>T<*U(KK%t9vEk_M zAK0zPWSNSHcIqYND?KT44)ZB!eU#?^JmeIwD*~9TJ3Q7vx)LbalCByILRVljJlw&} zC2DpeMgmyOMXy`ml94&m!M(b=8Yp?+*f{RX$KJ6q;p^7l`t8A_mX^15TevS=I1?lB z?%linHb*c0=Pex`=7F-l@?lhitg~ilg)As2$W2ebBP}hR1Mpd{#!|rdc^?otG_+C_ z3_ZQ8Sz^DfUI2*`vjRAngVzlUtk$6d)kkM*y)Di*1fWB(ITmX_S z2D8v)SC9=!ofGta)pF|DvS{U4yb7WU8SuOx48sROU4IZ@Oj`eP8SqkgN`iG&sE1!@ z-*g4TZh^9_Kf55%M0s~xFDFVFP_9w%O_W@~ouKXvV!-c@7nlJWo{vY+p_xV3SwPW6 z#j$~0>F$JmU~v8Or}+=dH&S+1sH|`^V5nOk{}>9yV@#xoa?E{AX2x0LhZ?qKKj&Va zA|KRZ#kN1ESM>JvO)rN9cx_Cp#Xh)lm)gh>m~IA%6~sFAy6=IRqJxZD;1JI>xItz; z4?5DGru1?AGqF0=+r#5K&_zAR|ME)zQ6rh~$ac$S0inp=b-CakKOAsiKWAo z23%WlnhwPU9hYV*>-qPus$~@{PdE%!X^lC#W>_ zh;68fULJA;qkfOn6h&{^j-*f;{e#^+xztfQvaw=5CpWi)=@^kW12F-4iYfSL*6#y5 zE=?wka*%GBTVcDqMw1FXCvs%KYN2tuIW%Rt0JwH~g+!#H0ndeJ*mz+0d12>U#16>@ z$`N6{T+H$!E)CXSSn&jR@>N#z0(*Ru{0~P%{Tu=aV1WCE3XoW7#n<4X*a|-tu9AE$ z#r~b=-9We3y_N@jQo$Gi(t0&2xD_3NkKVg{3-Rr9f(GU5lVZ@dI5@2_`^;slJ)}xt z&R+3f_?7_q*}Al}v@%?Syw{V12LQ3hq$gThTDQY(yWT*Xj%ck9#)R=yn{CQ&U9iMj zW{CuLC&}7j4~sqGKO42H2}CGLB5F06Co0RBigjaGd?b)ee^$bX`xHTeYwtP?YtyvL z+IgPV0MinsE;A}U4yU?|SLgvJ)?48_htSdqv|Wfv^5`2JFzByB)1>UQKf_i|BDv;y zzX0Fr^Ry)C*h>EAJ|I<8U+1Wzx+_X*!(5YM?-68;jy@HP_%-V?Dp4BC!}chpiSwl- z0>$8K%U|R+#T$Fqk)h{0G@d5x093%d3kC6XvLNHiv+zTq3huD5Fsr(CN zCz_58{R`WTL)3Sje;m{Q-FN)ghxL2e&c%exNPU9x0te2Qzb$k+?7x2a|NNERY<0K8 z={px%Hjv%rA?$Z<)-I~)EU9f@9v#gUDLs2;`^$j>U6^j(*?YR*z6I*vQENH~gXbiE z(@JWp`(~ebjmP_P(#ndnRav`jc{iC2t=jMCwIHRaD8>67cop~T`Tb3MB0Lm>HmY^L zua;2ipRS+hYdneTDk}*-G6;=2kv^P=?JlD5TZokD84)t>HIu~(X4N!}E0)NziZeK) zq53V~qL>cfiTtk|5vL#SJXL74y84(|^_fbzHH(}NsCiQ`;nPL!9G&1hNwyI2o46G@ z-un2_?F#02%5%ebYKJ*01J+PvGd>7Av|^yA}s zAF_d(L&?jw`A1l!F=XexbFAyj!av1Rqf3>;=_xtakhSM4jp9w)LikcL-OGtuTy9uo zoqUxg`~p>R<_hb6;n{aB=VF!_!DYvXk@i`Xrw%Un@@)!a_ilRIDpRX#joR#s%7|() z`NgC52h}wZR(VFJAKP~p%@Q7oP^(Lg4ly5@(h|1eq8a0CD?hIy?Ot}{!bB`4 z#@N5)#=tXDS&6Ly)d)UCJpXsZe0TZTIr3Jge6R8aW7=K=XUrnwcF(an{;zaVp514E zT%3Cr{~&q)?BM>_@lgsgOwD(f`KmDJl{db=4X5-o&&T5@$=AyEX+s@tK;0olpbm9c| z)IGC9(|2`W-M)9Sd9Pm3)JK8$Y$2Cj>kqZ~*87H7CF8Fj|DbwG`h!G9Z%lIF*tjvO z3b!m9|DcC6L?;j22su?`BVr>a{!mqQwH5+VYyaYfI566#ufD3StQ-O1Od=qr|Mqfn za?*?7phejQ0zS%PU0q8}z~>mUZaY`QmO9wiXQf$IQdV}5FxKB6J)~SYl!+1&6O#oj zt0L>clJfE-z#7j(JbRXI|MKNh#>psuJyTQOd;*ZtC4__=0VONzo@9Az0PPEO0Q4z@ zvO$#K4Pjxn6ok$8LT?r*&!B=eHXoRqr;OD277Gap9rh3t5h)G$0-%YgVD*1tm)b4s zZVLm}SjVqllD9eji~s$<5 zixj$k{l^@23(rH|0zuoCG@-{?+hfv1pwYg)14tJKiRR|!wg61mPzrD@iBKf-+X^Q^ zg#0C0!ShC1V>zg>DcaG%rMLH`jL*7d|G+?uD|B507;DSKC_~J)UCEcr8B;7fJ&SV>9A^9h|gAHdN0UZ%nT{KNAj zkd=eSnCuLPmoICGAe!C99cI|nKiHri<_PGh^2+VI2vfK%&F+ZNii*z14*6}BN~(=tbm5S_2+1rWQqNdW{< z|Huf>s9=kvec!j+@NwQO=n$71TT>da35?VTjqMyu68VX67BahIw6y(hjGV#;FVQXY{9{#f|-G*7Pb^zK$}g$=Sr= zy=l&NtA+Mbnv(CS0fBQ5U?$k<<^Dm)&N1HrYwHXlQBl$w^aocz^AB+uTgLCcpV2x9 zf!`WFAYa$S88!sL3{_D#Z}%QzfIjov>S;d%dbL|kC~mcde{{y{^giEwVucX!uWaHd zfUa<+JUd;c7AR6WDGz<&nE$a5LErl=1KN^>J3U?tm;HUpy%V7l zBIf<3yKfLeh;UE+G0a)QG{MAYJoB{#h2vKRKY#Y^Vw{&*y@Dj3bv*EXYhYsB4`Cxh znQc&iYRW={{M%(vhdQ1bVOJ^BLO11wNJQA{Qfs*?%be1wQdVt;i+68p7v?NOQ5j79rAhUt9PNZjO5pxvH&km&$6r38_xm zTPp3x#M!@YtFP=DXkHxW&O#2GlrpRSTHTQBg?xd|YSz&ql^5x$pEMci&47&PI04Ka zHH0(9ECZQAT4+zW4 z{F2s#PLG^jsT_cmonWQq5h2D%dv~zo)z`J*06aSW%;{g-SiEZ6%y{vUS;j~qa=hAc zs_cKP94+OC6cAyck%cbEqGN^`YR(uV60)c*(k+@%1G@`wy*Pu9KDX}0k$)B(uUL?%DA;voJ4038%q$9Q7YVB0Q%}bkunP=N z618r!*_!kQV^!S9nqt~2iS^p(_}XdN%TIi=(b4rvXU)`ST# zHab1J15h02o4-QC?*|gan8V6Ywo_2? z;BiVi0_DJ^#E#~0C8_`$SD;RxglP*8Y3xdV^pBz`Wh0cuYKn0}p#O`ZTL^ouSK~PkN6+^aBz#?t{za0A3e>J(>V#-H9&k@)<+8q`u%bDY^1p+SDhpvAL9B1~=*Mduv+X+Wq14P_!_s}$0 z`{7rc_Auak{gXE5LR>%Lo>!o)FR`)Dwv5o{WB>Ifm3e^T%??Pg2mcc^bCjF8Z?w9* z@t}X%en1)cJ1=76|9@V@yg|b=tq>Z!-)c@azuzIhLw{ZT%i`YMCU&8_AHSZ`@Azi$ z{(9(-uMG!FOD_DrC4AoT$DO2N-=>GWUFnXZNsen=X^?yf4yOQT^;F^~-PbB7iEqOu zaX*l76k*b#pcXR;Kdbhyb4TJG6nq*o1j?jXmxP|=K2WpWr`dc`{es>u05;6a^<5Y+ zaMV?hC*h&HrY$eMgZqGS&btU4x{?U`Mr$*8W?YRV4jLQNby5^c2M$;t13o{yjb9vM zXY5ja=i^bG57;KPuBr2R8f-LjLI>7x9{pO<35*>AI>VqZeI_G9<;E_ZJ{Hz*lBbDU zZx>86kdy}&q0qDdT8>v*T``a?O!ulooa}jnj&2XzXQzCg4Y)4Je9hnoTC7Y|m*-=F)lnZ#D8{JdDMtV|ZXPNm zJ1w9psy$Mj|4GfxT6HrQ%wKPk9nBz_J~_BD5AsXVxU8@m7IUZhv5vA~0B71ItWjHp zThw)_+sCg(8^aK#lw}n9>12kv%2t<@&E*K~S3UB015eW*mUmpi>WNTb)$wV^i>D7X z@B>4ry96L7KOf7qNaZM41{mQG>u~w3Ic3Mn!6(Fk8?_rPymRi}6Q0JNPT;^4k%Z4i zs{iyI_r<4(U>pLnQ~h4LHXPt8sR`!0E5@@R@DvSPglH%9-UwxqNfFpy`k$wODUDx_ zDT1IaW)DiCSxoqdXd>ke4oG(l3EyVpAI8A~e5wA5OqlOn>}DnS$*8J#DuxM8!#~nj z$x{z;z4XMsqE>#>#fvSeH#kS1$<`$Wz)L9V{0k3P*@vxwX<4|?O@Ku!Hfv&t01@>m@M9W5l~Z(WHFbN9cxBK zitqU0cCu9)F0P|qJ5*fmj+e+-asT+F#=IVVm;G{M`J`W7X7`>sR=DEY3+g#$!~_i3 z^gPYcapzf?&+qf9Eaw;JE`#XAiOR2VB^EXB4OT8z?n{7RiiiGZ)*q|i6rH`SveP@m zO~?>Vn0Im7#5%z7VKETrmHNW)Z-WAejBkOyqOyfJTsUiSyaWs*U*QR zHz1UyHi-j7!tH2As|BEM*H&SCeud;;#Aw0W8Ga&w^WC2V3^#Le`bX=HhaLH(A}X zxESll^XcwepH{^W(FJCN3oE|HgS4tvzzqSunFM|l;OC+4Wt;bPA)*!Hh1B5@Vq*d zgwP$U4Hr(>DqaTKIv25p{iB1Kkg4)p0p5)&aEK_oBSazTuZZ}&9jqBy#kyu$#hkp@ z0^Xev!msLyI^5y)ICmn1@Isc!abfZhvsHFrlASffDLd(7z386eGyP$%#`2%ex4$`l z$i&o^efyI?c>JT*5AWYYCBlLmHo!Yud_`>DB?6^+2 z&c1y13Dgc(MEtr+DfgT0VXwCX_)OyjK@IZR8$N0N`gR9QRE&BqD6s^SU)}9Yz4f*L zPAFkDa;!G@$V|bn@%CKoh@DVH+!$&|fv;5#;y(Y-$dA~yVRtH@vb+6l=ylOMDWcK` zVlb0$=+YQsD1D4I!uERHjUJ6rCXYXcTVP>7(UDRK`g4}(z(OHw<>U!#tqOK(PZ|_W z({^4p&1H=-7tSmQ??JbwZ z@Xv7L9S(TDyEyaD1!$`DPpxG;M@|JyFLKp)4zlJcBI28dAdL*-7N+wGt8#CoVJC#X zKZ*=W-P<_n9Lq~4=Eq?z;00CQTivq8tH&m+8F8gQ6iAm?W>7=spGcQ<>u!s06m{~5 zbln`r#g{Z<=TMW>GhaRGEXS(vh`=~uOLrD%074UKr&O5Q6G5R8qGH=RLyY zSKB<4R#Olbdy?#Ju*ypE-yh+?#o_bL%7^v|b&HtBS-Y|@w`WqH$em*7@hHL7vFGo* zWw}}S6mN@Fzuf$Ru$onu$qoPdjjM5H`lZLlFyDX6*zNpTPk#ip9J>W2)x1iPI+D1Z z=hns_3$B_f%j|BSqb6qLCvaKxVr+=AX>!91LuoG2&8v!a+a^(g)lS>D`GETQ8gv!P zU*bYaO~Cy1D2ZZh9wodSYiyA)fUCquIvf!~^ptPBtvHCg*6D>%OQ+8`EY%qi**wt# zRc~Z+@wu~fXve)2K+b%;be-h*1D(W##?%U~`oElm4hkkw>US7l znj5;ZwAChbz$2FGK8iJrNVE_)jq2AqGKV8Q8dmXLDI-b~cjC!xx%kKUm~ppGkuYXj z`Ha@WS=P(A?(8Q1e3PQDeFcqwU<}z!?XbCRsu{FnBO*)&@~%pke@j3fmcti=+@fwP zT}a}*h1MCn7moD!PJLU&btG+X^%v`F&->cPUBxKbVdtR~*9DUU0jvkxNItRYJowI} z2CLOuvQmguPe0R<;hT;fz0{0e@*~;&%3f7ANcuDb!z}z#S)>P10~OYmz9rXArFl8~ z(p;ZCPF4MrR(arccdgrbOpWELK&`Lf|Yx%MV3G_y1c)Hy>LT} z(YmI0u7Ipd!TwxI=JV2N-8Xtph$BGq=Pb`WbA`W30#&+Hf>H#(a#PSg{c z&GLjyf@sPtr63$Ojc3s*1CBfzNJWS!OGaD2$Adl~nxiC*8c_0m{G?Y(9`;&FBeCPt zCg0I6^AUH2bNjais_ond-d$r7{Wa;p(N7v&!&6#SG980yto5dmV-^APToh(HLQq<^ zoBSAI*x7-A+Nx_Ov;VPS{8r_Rg_9rCMjd^foioj!@UV{}pt7MW2ITmg@sI6k1^4hl zMH5G8LDX;yY`73yrXLyh~vQ`Y@ixQsotTpV8i zqGZ6xpqd(~0lVP5m8Z;c!#H{}Fj<-cEN$~!M=IT5{Z2|Hv|PTq!y_@Q^s-e(oJUR5vLSYasBbX z_tfe*9&t=*sl0UjM$sM-ud}32k|#RvTK^D!A+Vq`U9zt1|1NoDH(I`VPTWmA;e@yN z+2yxh8cKdq5s(Ry_cqp^f-*B8K!Eq4UF@39-D8KJXa(_cWqX;%O%2T3=E7?y;qg8; zOb{P0x(x2*JeLS7iFlMOSER-|ou(MaUi6i|l?ai<`aHP--;R2t@|CFBJhOPPWCY|9 zja)UPdmPY|@^3{y-$U&r1l`+PGc?;JV%J@7D>6R_9lX_ZRw5=wXBAqx-1eC-e3NE?tJ#Bhmy=b zzK0*hM$wbmQ1^+^&zqUdv=((K-)Cd*H)KF^Z&capBaafRCU|1F4gv3k$KWg_e6 z`xsL&;^**!Rd|zdG572hiXNz!XAN=YM_gxZKMqs=faose4SVyBg`a7~Q?QixG3M5a zTYneZ2KPu?&I~$dPQQe+Jg)R|GS9wpa$N%hW<8R;NYKauy0FJZ$t(9?=tyrsE< zuy;n_G)I3U)Y|DAj1GqP74b^GZmu0d*#oCseb_5mre=DBbCg#(_ih@7ei*|rIm<^` zkCpi3UVSNG60Wi)zToIHK~gQdJQkjebCoZ7)(0c4kEoRSL^HB$|1r!B0ZbYL@*wI0 zfxaA{;U?;2)yg=F$I% za&^q?Te7-T@$;90Lj%@z>W04nSo+Xxwq&0~>f#$v1CBwXUyjw+CGwMJkafiXkS@vZ z*JHQtc}?P=9sj_5g1bMp=sciBt7Wck1RUAod*@71$4wOvd!`8UXlw_uVj!(%aV-b3 zohvs&uUWP6Dx|RbE4imy%`8ar=)DUjx8mq@wZ{Rs8D7F{X!Z-DTgW=tOkAFpuK2k} z-7^3=k|zT_9)o;7*9sj7mM=R)nSc>XI|2Z9eXw+3n8!TrC7d$Zwb$oGz_vAxRXVX; z5hV|;2Gs-_DR6C{0+%hx=dTTDjdICi?3Zf@P@DDtTfL`E``@YW{PQ%R-jmd=c|(so zn2~b9O9ahgJ8rv0F;K8hTr3b-wQWeMs7w~MFpj3}Aet=27kn?gpMtWpvuok2w()__ zYbq=4N3SS`)tb4*;T=4+Bol5q{dqMkUw6xk+52K(n+$F*ZEdrJc0h|+)YxJ4nf7a^ zKE!Vs+7Sj-Zrz%l6%POSQLYo^_lNDx zYk5emoU*dvhL0J*$mW4IOL&^LU3F>c+>_|exh{Z+RkW?_fzggu!(Jgj8{8oJ!cL7^ z5w^m@!U|um&;cM+(b?P6bMPjXTHX4V{IVXZ@)NU4CzD9bm({a4Q;H|Ev-Z#Wx;T|A z_Y>o(4V)Pw35VRoQni5`XRWZ`8IN;L{!G1C+wUDfgK>EMz zSO4+Cy89>G#Y@wKGym{*z)|FhlmFJOD8prMrb^FL53k;yJx9C$b{uwp{)ajIn@@J@ zuB~~7if4k^nQYp)wn#SiK(>a+L)uM|a{9^dt@fVeHM-|$Qbe}+0Wx}ovtUR_u7lv- zmEsiS+f{bP-BDz7bIAVM>Z^+A=QdXr+doXAk&w&{keyioezhEIj4Z&4go2)Sr`e}b zj=Nn^vftL+h^V1Zx9l=&u)txK0oYUbz^R|I>dO1>8TbG5Unb~riZX2?iphcLOKZq|1`)FWID5~%1Z?}e1cKa=C z1EZc?J*eD#1>ve1AOS@*f_hP){TQHEc>oRy#ar}9WEKmo#^_r$0SpBdFY4ypm197! z#*qb+19i$0AiARXt<8DMg4r7DvOpiPYlLc${9FJ5nJ-oePP(a)hKXp3i`?2&6s9Qd zb{!WOqkzFj_%suhw2TkLdV%|M1ec4QW zI7Rj=3B%+A(ag5CNCEe7F_Rw`E7fN=Z#rPskl!6WsEHE0ZRxKOnKT5I;>qGwS-}gsqnssHM+Q-WpgTV2=bVWHAI@v1D()m z^YYu}PUF$d7>-Coq?6riI+g*eB!IHKyv?YVq91iSBmCvWuE!Apnz@j;KJ3L$Mz_ zALDKA8)kFtf}FVTwT(knH@6ChW375scrho&QnJuJGpr=0GsC+zT6IGN#A#O;phrof z`!Qb)*jEFyu|P3Z>XC#9r7z)g=*8G*xQsK%p=22g>SR&eO?qRNWI)z){ zx34^C5?g_p=Kyyf#tz;Yd&c+fIN#HG|C1p?aW+MYqh$|xO=F4Pj9s zK`@j!&I!z!^^Lnv&8j?dx_sIEYA!llw|(>&2Rg;RqnHTMq*}@Vjmu~JrY0_{hUnee zdYxnRU{|X0Sd#H}foEkyPlpNT7XVJ1*rHwX59-G>GW8>7T_%k8&^1Owz&_KgVteTu zYKmhUd$s!;hq;e2PqcN{Dfj{}j zY+fz5W(Nld7cLJMx~*R}v2naG-Mj*LgnQh#eeUGUAk%AR_)1ZEt*`oN2cyo>WNDKn zE>|vrul$h@-mEZVn8Uxes%|4=gsxT+NKWPW62 z&ZX?+=UcN4q=U1^ys~kGy>6=X==@@UJQWMDVc*uoE#l|+Jj|-lJxYA?J;T+ez~kl& zO)Hras2-K*=`Nmift_FESfYuhgHz835n`Cs;`Rokf$?siA00?Bw68K!Ylci{&UNnS zoiXv%*BG7LqYpS3m+lsAS^xgzFKnwM#ZhwdTi)efh9#C=g6V(lQT(T2p1S_?NX}7m ze?aX9`8G7!rEHt^4=3pvowtOWU2#_{-0y@zA@fK{6lnkTj1KvuI0FWwGeo+-SdT(P zv2GgVIQ-1rOg%TJW!Q%^4~nu0h<7QlFf{A8 z&@-@MOvu})Z2SHCxq$rh>+M%GrxZqG{>wg_Prf}}4OS{=9q`im6Ii^B2=dT;t~e~* zp_09tI}sU#R97&8Va#rPP#;?6>Vr)R+=3oS+W=?O4XMLQ7$m&>g8Pz@nS>=UBwJe+HO2_uACZRwbu-v7Nq#DobVA zWM3<{@JfQHQaMnIYADr_55gFB{F#c-$FJ~X@3ylY^|k%6fI|!PH{wp`Q?gIRo30A8 zpYlPHmCDprAzEn=8Ap>_R!#4dt@C}cpKM|N`O!1xcWD{X7YLvaaenzw=niq~x}5@p z4qLgf@#9?R4AA^^C-vtnbL@Qm>jb0Mj8J*WUEO>^xQ(v8gfc@B)#1wML^~;CLuSi4 zP9DiC8fgyIhy|sqknPFqfGbCB@g3qm0xnlNJre3#9lT}gOJZAAp15Fq@KVkYgzp0f zukh+y9i(I01p!g-i7W8p7Zc64r%|G^D;yUWTk)S~e%gg!+=%3|cS5yfI^iHO1TlK9k8hf7dh0(-ruUw7zG8bi{gvq|AB7SsPUx+mYg*E5wyQj4m( z9YFEdY=@d7&939}+fSu^P}1s$jYa7`W#{ByDaEBPPm~4)Vp31b)}3hmZMykW*Sz-y zV?&xqJMNwGwgmrk{=H|;TROC_Nf8IguVs4qHkJq>B0Apl&|CkP1!$CZ)*@!~)X?v@ z^!J~b=|5+;3=if15!rU0jplTWrMOoWIw;=ox-%N}3DNh0@dSDFCzO4)Y(RRI+TUUJN+0*o*m9c=lH|x{SEu{x0?B+N1Krml(uJ!x9}o z`W^o}6NHYa9`HSGq8N{zxAvHu_mNL#9wrI4j{D`HS|f-JKDyTnVtC364pSpVRRFQj zPvHftDI0AOp)uk*=CdfU==$ZR^|!O>P;12IBa%|DF0M&XObwZXiGlm_-yuBCW_V7! ztzN?0JPO=eleHm_>>oO8cj+72vvTyNM+;15@vboL8<2W^fvC&Cd z_3Ev;H`a7bMx^^UHMF+`ZMkGgLUB}ig6p?UWXY6Zbevh^a9VQX(9SCccS?4QjqgFM z{asp6b#^*j*V=dZCoEPwdkh*|_VEikB`z1e9bIBu#WJ|QKp((thDB#* zo>e@(d0?31s>m@F+#So6hlTx!J74(Qm{JX{rt($Ausw+W z5`y0A+8Z_zfj@6gZX(`(X`K`181?D9jN{gP>u1D6c)QvlGeW=k-v{FV>-7IImwj17 z#N@}i_rd@CDDyn?z`%Pf^@M^BT7-l&-fqq<<;8c=5!>^N-UUFVCKh7}rp8y>-FTR|6Nt|MHXMTCuHw z>6dD)(MR6+9Zi+Ez9=CbZ?DvZuL@ZK*W;Jz#A@;3H#?pGFvq`pa@#VD)5zd)tMg{X zT2XqLHqmscw>3Wmt(jL>Zm~&8pyZMyzIs(h_%?d zFWt4$+A+~H*GduYp|2SuCFG*@)T>N5?zN}jdEdMwP(DA7dzZlW^=l?ZKLUE7nq>Zy zUum@a!ifVSj94tx7Rxe;$V9As4-c6~j+GX9VwN)nUktO={`#p5pq-w5jwt-QsD}C1 z!BS7~)HR0)^3#_TccW&UomV8z*Qm2elk` z#~yM1wa&AUpdDvU_O5&AJHH*O>d-S2!1y(H(tYQEtR&~aPVMdamkGsli6U2b*aWRu ztzz(leeC-y?b;aWlQ__@MQpL06<*akV}~v^Q%xfK7DO|5-YQP`m8COk7YkV!7`ikf z`}}kMPl)=5OJd9S7o|NT%m`6kc zEzVoPIj46dxfo)y)XwE1h8(tFwO5H!XqYa3@kc}g;&Fg7jwv~}I5&6GXFQt~od)BR z-Wuh6%m`XxJrEO9M(>?Y#2+;FmT;|wl+iT9zR9AVi?9gvw9)(NOulO5%!iLZJMoUz`6S%GT=oHjeZ>Kmih_4NJNb^rf#1QYINYvd z@lDV)Blx%EF|ih@zR*M>*IH%x3h{H)sHRRf{NwkOAg9hAmD=sUG83t3f8S5)?{>&N zd;Zb|EgKp@*2D4#mFmmw`0Uxf3_6w{Au~aL*ZD^+?FqQzV7vU%cP_v z@!_GNb4QJCo_qEKv<>3^_%HNN=@{6E{n!#D@Ruc+*~s6H;nDhknEAi?1RTTN4TtM5 zp4ii{4a@%e<-oXV#qINLol4V3SKw0Arl-OV1tU*8^&j4EBEbj@`<_bTf&YG1uL33B zeN+A4_LP8`s4E)(!#~u-v5IBqPuIEvf$|;pw;wqUI+p%_zx_uBCiFj)?@Tsl07d_E z_Z9x(ep%6b2e|^@3+tUZd4TOZub%F`lU!ME_ez9H&L@itziUV?wmzOAHUAruJxlVg zwlG951*|6FYqo-{Y^(C}T(CJ+XZ;p<)&6h2caCrXi^*4uWU0J#b`DQfL7cDk-D(h_YIn_bkm{I?F zGv*Q+2DnI~*`O)Nu7R&O88pcJym0oZ=r(D@8+2eqn?|xOE(q4qqV}UN?kb~`IBo8f zgVenoI4J~7#JmZ}Cz=8riwEd6cyAJT)UJ)*eo*-WNt4?I!1W-fdN!JYwY7Er-X)#a zI&lh$piQa&_z(*W%Ljq{otKqv#JZSeB~r|H)DsJOWL?!5 z!*~+2PcUqB+OwgX7vx@DB&NO)c+v@)GOCT(0fVLXfzm;VJJ875J-hv{om&i!%?G+o z2FULDa=MTs$05IW74AG%*8Ne_xAQGd!EgKf))R|5e;yM7;$i=*^V%;s2hR&gFs-}p z+}KR@`Ha>R{jZJ*eTOO5bV7XmlGMq+hvxnB2TMDEo<8FkugtyO>;(YY4^7U03v^lC zeKZ{EQi2`zzPaJ#?B56nqtISpqa7Vfz6d(Hp9AeD+rNQ~U1_;|&UlTlR9Pudi1iRw z%LErRtstkYZVoEUw1kDOnwPxLgC|9I02RN(Q)JUfA1zJZJ!``8jv3THo4?KtWDzI* z2heise9lg3!tcyV>*a*XK;oyBcP4_y#W8=qFkX1j7SwuN&82VMifKA~@;kD1KaLz% zbzbuMd)b!LL>7qtG(yYGk2ftfT-dWA7wMQ5y0K@&{KPVwtJU6VseH3a$z8hmEzo#4 zdbfjvu&CJdy)XVkWy>8PboX`LsYfv z1MmYhW2C|H^%x!7l-U0D|6=Vuz?y2ebx{?6%WpwJMMOXZMMU986r?38A}RukN{1*2 zND~18DIqE^me-Y!3nQdbbHRV>M?*>!-Kk? z?zI5CL$~j7nVMDU(>2IeaVl65?gE77Dh$o0VqHG!tHw!F1Om}wlVKijFo1V1BR_BR zr^0fyIo_6-WZ~xWL!pSw@4w6DKC1-D{1@)QcGF;vImllt zwbnWswGm^OhV?}1_WlYc1T(iSy4&|H6Czd#p=*^sdwzMecGy3lEPYt}X-jVGO*%I= zm$jp@Ti!|-h9_`CPzUGs+k^8ZXcFY9Uh@hELb!W3S}cw{(g;6OS)Dy*g1pyY(l_&f z?@3LwHdMpBmwkDdu;O7?bh3pUybe=-;$bYM<*i~}#YB5`{k^6YQDXGu(78RFPG;KB zh2J5CueA{nhI%(?ZZ#zp+G9EaQteWy9+o_Aid-$KGI9R!qxveS(bDQZI!q^*aP@sl zgcWV2nCRg{-@FDkFCP8vQp~^A;(B!9*9{6c+I#Xgh^jvLFzr&1)J+z&P_7R!p7tKp zteU}NeWKqK^9N3apW=!BpE$R9qz)dcEz0i7;+phE;B;`IgFf8Dn;mz~2Hv)O^t4zz zj%(oG<81^_WuYgY#}c0Vx$Io^b1%wPTBDIG`IS-8vqm*JH-59=VX53YR_8Hzp}mxG z^MQ)zmoF85wG4oCxgN(r{Jn)j$g)36d(~ZC#2VO@gB#dix`{J~&B zc4_(%y<;b>wD)t|L9mU4)8m0EV4y^1zyL5kF?7KY{Ync*st`0!UA7n9E{^(nn@t$r zs2|_7>pl8WhNnngujh)$GJc16V)uqO0a(Ymzy-030bbipeFv2XmI>LcEyZbs60I3N z5A^+CUp~NQ*lP5K>q&V1)bp`dFa+lxRWYJ+Kaq#{XYv6A9QJx`EMM;*g$na3G->!m zAWCZ@ml?=xStwCX!wY{N_lV=vRh*SH_ok#bws*tIBZy$zFoa=jd5iz$GHdf2dsB>x zI^7f77tq1O-tUGMv2epkQ=k|?9{Sz5#y2vHWdLG&H+3L`Q$9*-_uWb+_LB0DXoh!V zH~x{Azt2ng&CZ1%KgvMyptnDUyPKIr!|=_CFn?Fw2Ntw@J_Hf`!m_O#^aoy}8<7@J z9W8rxi|_xrcK&-c@~^)U5%&vCRf?Ie7HR=f|?2C3fc=eDdVi6E#!$d6A=XIa`i9 z6sOl1{&CH>O;V>44)5HQD@}@#{$_9onoPZVQ&qknSnjw6!$>I<-1-$>~7n6a{ zSOvRRS=Py0KuoFJ4W9`CQU`JK;ajsf&JgHYh*?gGJJ53@LS z)|?xM3S$Cjkgs%*R_wM&7E!(z3vl>(8c&b9p!_i_t4WOu1>p&(8I@sR{0S)T!ooa2 zq4UH1P-O{7edEBc5evx(8DcC*+nj*ftGya(NjauZlh&fBirbxI&+olGdiPcT zUN(_|z{gic`)~5L-ZAED7dD(h%vJ0zR<>RH@k@*H)YFip`O+WaDlv-QOJjEjr`l6n z;7|m}6|nyGae!;ndA#!oK3ylKcAl4!5P;&PYED2zgDuRC$)AJmf3tt4|8?S{fks%~ zQ|F+f+dgjtmqT7vMFop6lj=7DPn&>+`s*SbWQ-9T#)*gx+QDe_jN;;M$l;T$*9ZBM z@E{5bU1N*6MXmI*GL_8S0UYe5DvS(+BejwjLSM}A67>?W)SvpXe@P5zJ38MpyT44Z zs$;{5*glP3@0;2&Zd)*Hnn-cYeO88UyZ|wiTwJ%-ceY0{g|J$?rj*|gjEmQLE#w@w zc#5xrjq(Qv!aT&tqt!S>Y|!%4DhaF))|`4Maj!FOUg;dcCpgsv?>?KW3`FUzP@R;? zE`PmQg)@8P%%?>8AenNsN*Y=Dq-$-W(W;yhSs2EgD%+ z*{e)5Gl^wf4P0PYTi}krRy?_n`e@f&eNUNtkCjIr3%dyyugppuYhBB$*~Ovb!I=|` zYHw$m5pb`xq+^$Y2({J~FKu@#bFC)h>3eS_W6G=t*zW{B%*h0nQg8;B93wS$Lb5Z; zWU)8yO2?^C5oNjhEjKdslaqvT9E|t;-gm6@%7dipPp|LhTw&;uA9-@g6+H$&FmrYH zvVi%e&Qn4N@x7n)8gJ9Q%z9SD=dFp0z^yu>{Mmael;e!(+Ksd~8~b|WifXTYViQ|S zOP%4P&?|(%@7`6}GJ%r5v?!!TOokv6-asQNC2jS7`qk|@r~JpYz~ibnr0*D4y+S|F z9-{4yk>{F{iPFk9*mDZf$GP)9c^1@drs<{?p3d18nb^|zr+yBM_qYoFihrvV84`JLkOCNH9dt<&&(-t#g8z zN8%?W=KX4365Yt&sCGHv58AYFN;k{ z7t7@xaBvB2pMOl*%d-t!VryYtJA9tbS1he}=0`FXWn}8E$9Jovr{k1dhWB^%Tap@> zVa8ai&n`X82k9MseZ#|Iq0>Hr@pROIm-A)*SqUZ-CnRP`R#cxd0BV;i;;nr&*YfB* z%X!r^sGoE^?ZnpojcRkK56ac9TBO@J{gj_2vHqK)G|L{>ZpHH1;B`KxVWl5)CFfWd z#^Z`OTzMI89AY@YNIVj@q(Ngb_0E$bz+GI8X=VK5Zt(a2UEPDMNklW)S;dh$Yu0S^ z{rj%B{=?rN_20kszX1lFU4cUX1~ABc7W}zsr1hCjP2v-|^IH!*d9mr};q&KrDZGy@ zwAvoK^T$*BW?}apVfQ1er*05BJ+fHCbnnR_Wd`frt&A*v#ucRelU|~kN3MI@d?gNn z4wlhcTvAdlj`r_r+3>FqRCPNv-)UEm=$ihE@4r*{>_Lu(tmG&&f`647(DS-Vu)%l$ znBb;p+kCMRd>lhizWszZ{m(h5#K(XzoBtc-sGE!$f^Fjm(3m+HEPyzMAglFMnOBYy zq6`bi=$>Q7zrdV35-n#j15vOBy{sIQ!dhs>WMts5<(h@KQem!Y|~UF%Q4^N7PKRMu#hi1sfK@URD8%gYC?N+|mkP#y!(a zf1-oD85Lo@X(yo(u-M(~y3_=+l|wWTZCu7nCRT>+b36yzON1p4T$y%#Nr6Lg=XoZX z{1ymEX?1f5{?Yt2fG);X>%|Q!uA{RLl0LiuH^gVy&kj$1;^$JQBYBb(U1pZ^Oj#Y% zO9DGq`oWS@?k}{jqN>^`*F0zd8Vc!;$v{OqNT0)u!5XBSgSYa!o?$3LMH%Ma)O}Z(*abWnKz5=Skp?huC6+gikm_L-{HJD zIbray+|QUKF1>0q&B*D30z2j5qdJ&=7PINqa8va0tQR6b&LD0~azE$+PWE0Hn}$s3 z73xC>j*eWZXiM;eo%mx0$bn?pxLwjz>mRU-%g*c$Sm4xyD(6r9Gw%2x61-d1Km=QD zjlJ+Hlb|sSSJ02vlAGcP{<#yIC9urz{Bs3DAD;D|LzbAlJ-ai|r7usS_!ZIv*T)C$ z`$Ve;4#_>eMkF!WIKh?G%!TrgJVvqMP^$m=(F<>5QOuZLjO)l>dLOu+Fw$wa>*M=e z^qu;MKPys*{?6@_Ka%b@zlef5&=9NCl1rd9STR{8`v*Q^wqeVRUvZTta`OkP)p{ng z49^kH^bUb#nOgX>^7H){;<8k+8D#E7Uu@RML#CWpIIY1j*ZggM;T*>E_vCZHAeyK& z)bk=J)~H^q!S9hAR}yOnj;}?us7I5ePr=@}i%vr0=Hb(4=#gW1vAz7jKP^2U&O7dp zVx4i6yjc{JvCmZAFzaP5zWB5M@u5g*eFL=|%_7HHW2Do6$^>R6o+{5ZAZHfeQ#()Q z)to}b?P3RVO1HH8%MvzR_x)~FGEkUG`>DEdCcHC2 z%SWFq-0*4VWy*m1@hQ^7KJ&)gs6+NAZ5rSFiI65Oq6lL1@6Vc;BXHC)6E3 ze*Drs-5UF1{@&hxa~UPu120c$NB9Rbj?nEUSN2d{t^~V{XMNBJB;oR4Q9CC>6T0p6 z?g-_zXh<7@b4_nO!gj{JW4Czc?|nIUJ8Zj)Agg*Sy61=AwnWP4>^xtl^aEE3||KbbIi81M0luYHiQ_PrL&uMHY!*d$ZCk>_}Xsk;N7ok>JFp>Xw z=ReQpUFrR6t7+SCI^yzw#%2V%{(odf;9-T>wRfJ%`2@JJCqSPX|M#=D^B)zk|Fx6# z?~mpcFAYt*wS{VV#S09J{igLL@xaA1Pmi7d@oew;f*o2ruDO0$yEAn}eWd9A7ny7K z&+oVDda?XsSzY91p=**r@v_FYOz(N`ta3^f1&b#!R@v_&7@l4?JrX}%&-_H*A9?=& z60h?w_^$s1zj$U|`S9AMOVhHt{~A2LCJ(c0lkWf~4Dhl3j3ph`rPrXH?5_Ih^T^Wz z@-YfP%y!b1|kT}s-9_y z)7xtCj^Ez{;VG9_z*HUSIX7TKlYNZvlg&6zyMW z>pkg88Lk?G-rXK1auQM)9GJvvQ(8rlCHXDu{zc)%<}sccK-`4Rgm5wi;s7i;Ax3MN z*02zD6qrH4Po>{#fvq=AW))fZ&TsM-eqsLMfa=?fB8TpyQJP{p(Z^(7SzqKr8C4%u zl@0}_G;B?cNx(LkdTwJb!Ls(!<>`qs?`2y<`qRyV4snc_*E}^RI z!*jufz=?JuRcn+1^|DY6=*%HFOS<=92xgdgb0IIE2N020B???C}f#09rcK7hMkVW-8~H zZJJUq#9FH^0JiYfDdMWXrLTh4Qk}UX4;u^vF3!7wvvNG+`fam2h|vs-xc&; zKwq{_OpX&(*Y*0vr#deWtn+Y$LdP?4ycx?k4ZC`o$8*11+Q$A06|A3S?(LorAvNa& z9QRa(b@Q_?KE(P+bgl_0&4V;ghtB7NqucF21@L!|*KTp?f8 z|C;pHxN(oPc#9G;sA%hAh5I_ccw%+ox2D7Qg`YeQ=QXNvv-Li=WzP&(z+q-BU0f{7 z+|twVZg2a(|MJYITeG?c4jsm|icdpE?2!2f2krR(dvH1kC|G^S6|2ITlzeRyzN4v(l_5TgujM|_dBTGMjO}A?rpJh>KWuxqeIa1dSHUpfza>>*HC28ocGR<0bu&{VgHOqM z;LXq$tk^ov5tpiGTpYYE)lz=);Ht0h9`}%cf!;Hdek3KCw6T|9) z@_z%#yKjEXL$-0;->9{m&wT;~Hxxne6^QJ00!r<^8 zd~p?9A_PwB?wKBd@9l_VFC8~f=9X_`8y#7ftGyRl4^>uF+UA3*VsJ@}5f1lOF>AY6 z$))81A_ZIX8ZmTsw1_MujcP!8X+S~Vo~=37`ErZpVT`>z6{;C7)Jq;$m}zVn<+p6B z@=HaY&=)83rgHA9qt+D0GIBi1Y_pU2LZ#Tc@$cO24I5~MoE!Y~yiaSHe3WNzN-yND zFOu)EJ?-+_`BD;o20Pz0Iww6#`fFuEc&0Au3rnlg#cX@*WLwz9Vs&xqq2H^Y6s$k( zS+G1dMrIww2{v>NdLPj5Q*A5NBJmUUtPIN0i;oHm7C-3?$$MO7IYBe6B5uHL%WJWi z>-)5afcn$sJ~sEmDI=e6v~W0Iep~9u(ywR{2%_>sTW@UIUG{x z7?ni)RX7uUzxD|cNlDyyedDr9op1`sF8@dl!4B4_u-aBt6Bf_^+)&FJb3IY@(xrb` zJ7_sO#(Y7owKl+*y+?u;6d>w^zay_(l>VfZb;#%L; zczqPLm=IRzG^_ueJ4uV!!liR{%n4U#1=Z9NP~0qWWNcg!UJ^dIk=UNEYF zuxkg!bNXy320S7|XoYS~4e^71N42@$CxW`u2ULws-n*|Vtj3I*MH&%|)x|?fMG9n& zcWcV&n&_!iZ`o7YSSR-}ie0w7yB;kc7NxHwE!2SCmAT!tlhZu-V7R1g)jXzSO)rj*p}vF(X39x^Z*A zQk0b)Qatlo9W->CUdlIP=1(kYD_Vl`%+_5;j5)v zthmt+!g)4qH6yb?hq3U7h#{&@=)_+WAVfA7h|jyoRhoQe)wDExO=C=;qsn~a3ikW_ z`02h%@y7)_tT*M?+^TcSUNac~BuSh7r)&ii4t~b?;QLM?&*rWZnx4dfwsOhUU zg#?d!>EXKJ;6vh(?_R5}=^TIm@Ho5GpLEa#-7A2G1zNmNE;`Os?l6vOG3aIMP-+PV!!3|!U z(wntQXGb8Si@}!hqc%O+bTDO;)fufH$E?03xVM@pOv2axGC#hmt{zWf^E@yg6b%CZ zpOm+ANgqGXb}ORdukbq^LH7NCUzC`trCR z3V=8tVgVx%xWujppFvzRf&URAvsnjJZLh5AK)6<>7x} z8JSMc-A>;A_H-5;UC$WKr3fz>n>7bz%W5&?NZJDB{V8gchah*Dk$7y(V1bPeZ-$$y zuwc^00U2h(knW3E1P(nqw6tg%LDB ztON#dkA?8YD)-e`jpj47+gSwf<&0>4blnW*7=ea%zMu$bQi+?q$ajcCH;GANY`5V# z(L}?MTXP})(Dq!K5oB&r4=*s-O~H+vaMpS8vgGBZapxX{UIihBefKd=Xn1pR#l(Zz;t7^>lGF$8GpKE4`HMGI&|))ciAm{7(JYykwmW;k4&HbZN+5 zGv?>W*L^F*YO@`+QjbBaVN|YcBg{Dtjoa}SZIgnukq6DSCGtCFuDo4g?a`38O?`u4 z)#;pFA(Tj?eBEn^coi>9hRpv^!jtLaLW2t5#=?iB{jQbeYb~F9-7{oZxJtOfH!(vm zF|KYMzx!E$(gg>w+3Ti$vxlM_aOhY2wxR@WxqrT z3Iu6#&PP}_I|86Vi_e6hF>C>P_AF+pOD9lj z?ZRJ}N7%MO#@By@9oo@6YC8OU+D9vN^;=q$C`UEKP>QBoLFmkOHsQ;Mdf~apj-j+v zHYPEt&l5Tr(V)#sI7<8V!96)L)5k?YP?CtpztjD6v?X_ZO8!RvagPKKk?d#tpzY8U zz9s4;?cwA}h`QJr>}-OWYkEZD>xfrXsvuoRv#%-nVL(7ml+2gNdmLNGF_FEbl2J(l zF&m-PbU2TznytvcgLN_d>8W?wb=%0d`$zL3IQWj5Cg;}6qmGPAO&k*!uZ7(!&1(Bl!V$9)IqhSLrrf+9Qy2VbZ^*Sq=L)=cv}m&T-I5X+cOpAa#Yh%ShU zuKJo7j94;^QG}R3eycx%wRU1Ll%wM>&*$;(iuS;@fsmui(fP%T3Zz>MAW5YMDX~bu z@|yweJOG2ri;9$Q6W>0|SM)7&GEKT^%lCAJ)am`%kWKVm(Gd05|1_lR$eEaHB6*S| z4aSGEE<3q+HX~ZTmS0%t5~I_P^mDK)lvs+h&!BkFTozU709I|nA}%PW$e9{Y_0pOn zMnb3YzxiZlUdj?{df;@yYP_F?PO!iB6fK!jPybO`aAInaa|!R|^71hUYp=sLIbIKK zdJ5~amG8mZEc%>ow|oVXccsp=7fC4)zFUiUQXCsmNkEeI^v9^2%DSG(CWXGkqchjE z4Ymrpd205HY0ys@(r^`nh-WWOP1zt?=@Hfm{iUw!-ZF0C>{ee(-5ssozeAtD>7(P} zbs5Ou94@|Osxmso&oWbQHTgun_qt{UlSS?wIccr#MUTsk51be)1Z7V6kb#}lu5q#~ zk~tHt!MA;JGSZk?fjF}nzKhp)NIJz&v!oK2a5L51*^Ogu?={Q}0#@n)sD5*AKQ-MZZHRV5{YkQzSm^e?O{Oo=Ej!=Df}+c~J`@eTP> zS{*Cr$G2s&%*O=4M5^V`7;b@7YDHR;=RTtm;&e5`TGon`m5moojZ)G0;D)-jW5nUp ze$RMhuD|lEl^v%uY;o@0r)^f8^`yzWTE^D9-kA@S^%%3pe>)K)s%K(RXDX?aw@rVq z=DV*8ak@pyl!lcQ+e=+JwMNVC0SU5Fc8p??k;DEI z@p~O#>{X*Gi~JMVdLH+fc1s{A4Hx`h16=<@N4H7BM-PJ_8>Iv;k%IoitBl~92p^Mn z)gE#FLjl0)zYmzei6H-jV(;Id3RPc%cGGSh!AC;ewWVI;jn6{1%$o=Ox&YYpi;;8J zx}Lo#|LdLA`m;5mDzX!yDs_$!^_k$_qb5!~v+b0JPiwPxcQ4saqisq}aj4VcriH~& zrf*8U>;Ag`pZ_M9gA(>vLu4lUq)OQ6>Hphbf;1Fh?CzWQw;D?GWc@&%@8B^|rjXeP z0^`hcktuY7sOcx>U7X78%yFxBRVI6@85OeB$c84T!uPGdUYq5d9GTOQ{amU6+8fcadB z{Ar5tZP@w(X5;PzL&YJzl}f-_eN1;#Pn% z%7~l>)O=xxsxrefq)&m+>Z_{5UTFaClk1=QpdT*0b4mgZuCChRjw|R$?>Lp(pna%E zdU%L`B-u2)Zwbz-wOPy()Ovffy{;i7D9;2Cp6mDuPSt&)`SoOw;9956@G2+Qk#w7#^*3-S(C~j;iQS}Vr%=u_p6*xv^`@ak#{?Y=#-*YB7U3L zBQ(vpr5Ts~P?wxBy|%I4WD=o!jrcUseU`lWkGa7ODWQH&xN5=xn$qpXk7qUwKwkj>w& z0Y1UA9_&D*#Iwea{3A#ZLIPeIFnG}6M_fJyFszs{HIJDauX$;kG6aLC2f4}lmkHO| zXy^9c_>=YmiR#`bs`V0!kAZGC@l7u<8DnB@nqr`84CR6NNBJ>Ze@HP^-JNPT&pQ&* zoT~*m5P>8+Pl3P@NVm5?noPCH!7UAe?Y5!rbQUK= zG^9-bXmAg&Bp&gCGz&$&Q2FZ_S7h?FYHu;`K$gU7@`{GWc5Bwa1|Ufye|Dm*L9@}| zF?N9v;|t$D`l^cVod+K%I67!tbhVh$sIILdO2^8i7tfY0LG(#{!P#~K%|wC}cS^gR z36!#jgVVb?(+ls7vjvVOBEU_^x5n57-eUcM?W~odB0Oo7tK47F5=Ljk$E`A_G-n^- zg81)LK03(MCY0cflXaUdi_~*)jzR!4$Wl_; zU+`ueK5LUH(I0#JLd9g)__itG1s#1um6dvAQt(&z+gXdgaxp|r9FyP-y2T2b%qm(* z5-#(8d>F_H_uyHVM<{Ix^#dG`1YBr2BWPj4 zPdW&d9KoGiA;#L={@F>F&9B9G;Ck5dPen=R$lpMUqBpOzUsHrexm)hsTv{}nj>_J> zz=r)f6*M1*h^dZFB?20g)0l9_Q160TgXtCiW?8DnfW%)yZA;dAQa5fQKgP3L{?fC{ z(KP+^2{+4&Nx5V>vUlSCI_GX@3`ps&TEZ;$%TXYM{r;NS=W%@79R3scQnpNks<7(? zkRlm4`#{;=zqFvOy1j>4pl~7xb+#g#^7^#krxe`4qwpwl{j7ElV)NA;Q~H?uZQuH8 zJ&g8-k-==-A%6EO>_AJQ0}XNYFr>hs*It^jAZc3dbI-Ve4K3n?Yl5{$`egPvyEZ|^ z-GJGVe}w#t4tj}1HRVG_SvZlwnbpFnho(>l8#^%~k)H+;{KpkSInx&Tgkmp#Sw=x*ocOgJB42;P15P=cdLS+zJsN4c9NR zGtUwRTy#=ec_O+4gN?A zbQ{09&U>%qC9S&2%lYI3-J1!;?MnV$vZfoU&C6q*gwCh{*PCN^X*YI%;9E9&Z5inH z&-+=&!r)fl&ljU+FL`m%zZfU!4iPJypR0wpNC8tA%Ah-Ut2u&Gf@l~`-)nt?--JEr z_TWEK>eqL;P1@{x$%ZI48Bwn};^#ALsYg%E54VMBQc2{} z5|x-_MmN?m)116GrozGg!9fi;Gpy~)+)ET)&;q`*5oKey(I&4nt|a`9P*<&ep9>q4 z?f^b=Xjyx(Pr1Gd__#XXyUs~~F4VCqju-J}XMbftporRv?g@HuK{D!1VBzj4f5LNY zOi2PjnKiy!nx>Q8Yu>AdimE9UGX!Ea>#?mrpDtbFpOw^^@3Yx7n+kT5uj)W;ZkqUN z2$XM>kKw>YLgP_=0q0(3p3N)R7$TYR*lr(v`SR}72$cfan2qRfjD3yW+bU!Vy!M|) zGL{XJK_?dT#-2tr;kbFcLr-z*gio@rT(lh@3-p`iqS(pD-C-X%ggvL3+{sKgUwYx! zA1KSnGkbMNNs?n;N}LgAMZ2yun}Pk(E&RlKdhU$6+lBDTgw7~m=FiRa{Y(6z76ai^ zg%3=wmS%HnkU}bc@>ySSs9K+lZ}Pa9U4 z(ogKuB6X6Uw0ZDmjC{i1!npBsj89XnY*J|YLvVrk6?s!*AJ6qyaha$|sYgD+`V*LV z?ZIMHO!BjmL#>M@rxB43G$+WhvWc!eQ~!4V{IbTTSI_Dbs%;sY$?ES>xwP!Tn$Mz3 zbx*=D)3Q&xo-qd(qn7u+-bh+E6(dEGdd)Hr%0b#x%CGLv!MkpkUeEmfGivJj%Gtrg zZjt4$?uM-FoBhjW>khOXw)h=MsKBH4Fn1y$uxl--1mo(BtQ=mcxL!TddI8;IyPl($ zgKLPqiJNPpDe@AY8YwB)B~I$uq(^WyIdb}lUsmcSRej5&DY#eSqZg+7uU6&fgF@ff8i?1nnv3PDsYmRI?8ms6c_Ku}Lm2L7N z%p`w49DZ}c2k!C=X1wyE^bB5ugcxGxPqdS{!XfFDl3=g@;B@kLQ1nD`st z=KVQ)5yQr*l$rV4BALx?lt|UwuI0O9K~6ODD{YRJ@AryCR9PB*2ZGu;%7Ygc`$FjX5i{@soGg$B28K14-Is;^)3?aHTgZ|;BUdxg1Oi>VjCfskT}Xm z4tB#-W78&YzW16gkBB8LX-LjI((iPR@i*DcaeQ0v8*Ajw6~sw->b&;elt=$iXEbr9 zZ#&tUH~MZS(p#bTMOCqW57y+)3-NcyG$u=E6F)Pm>-Gt#rq3sA6ROZU?8#+F()4j{ zj&J-XqsvpRkDF;sra4uUGna4S%L#vxy2hUixPBUIcgsGHc;?8waUw|Zd&tFX)F7)A z`44l$@V$o{4~e8Ys5M_^UhzueYHfeNnw;crygI_S+~Y7eu%RG-5q&AZd66T@+FJ6o zimaM~TWoqy8J}@Ix$AmfwcX&C0coGjG|Mc1&q zA!_Og7T7W=@=+6ak07nR%I7$kF_B>3Dg1yu+2>Bp{S}pEwI9fuxkUm|7EeXr^@Bb)Y!Y>wK$`s05yU5xEB-t#jAe5O3gQ^uh86xiE9hD{@Z~(!gb8g-zzCA zdkaHKY`na@+MC{=qxopW$Hvy%IXE1xC@&AT6xeNFI@muuo6WU$0QZIy+6f5^3=B4` zJ0dD3MlTXCLBL(EC41*ahnUN~dvY$-MMZDsW@on!A!B1{DK}3X6%i2`S0OnR7eHJi zr|x`V|FJ@)tnH1T;vs>oJ=$$HaFi%)RTsR?%X7PKl8!C!SOQE z-II-@_-SI@15Z!G5`6}C$f4NO-_OTK6?gaxatJ#wFDDnx;orW!V0n4jPd+Ah5@f!s ziwzA8Z1>+(YEh-q!lJ0SIO2*&-|e8(6Fv>kQbn0MldFy_aZyn%c@`dp<@9^~SzN12 z61EEu4`228wJJ44#L3Ca`wn~IaLE=J3``@&bq!+ej4{=v%+|aOG;ykGmE{0}&(0ph zA3t{Nj=sMBYJMr#Z(|j%ZL)$(A*XYjnwrMlM{culTzVE|*YJQo!npYpNw+(vtX$RG zFu#np(0o1R&oq+cSmm5~faYXf^Fybxe(I;NrZI`sguFh+ zZn!BfTb|6#|DWCXr_bS+&zBIv`n`%t|6=;%jS1y<&&njFR8>o$2`~J+LQE$6pI+y` zaR;vnuLJ-5jxYRNK1)KRG{4w-{wD`s9C-2&A{VvJpWUT(Uh5CZ3x93=5xUmBRb^u{ zuLo~+Mfvlc>LSl2DOa$RKF|U#Fj}tYd)!HY-F`|k$ZIf&2lIWb%?uQvqCnSN9ONzhjs31SkZ zh=i{fg1Pah9QTAr;v%`fp|ffSWHc4fRUs(?w9L{>hzjsLyL4=`%W!27@C30^!h?YI z3e62wD8uYCY-4=*6c9gL6%Nle^tQ;_k}uN#2w;EbwWQSTM1@ zXc~s_!1D;SgfDT@xOWIoc*TUNX%`yCpJ2b)UfV7}yWh0-4WIAf@dNGE-Y)RkkuWfZ z99?=W1y}1kW&kR@D-v-%A7XIleiC zS5wf}q{lLFb$WMsT$p)0`2Rl5hw#zez{l`)$)3ZQ?v!3lECNL?799OG=g!7bByQ2Sm3@y{sN+?*qCT69Eg`KQ}ep<7qJi8)#n10=xJo&5p* zZNSoR%R6HOqj0KreN=Ye>XbFlUo^dzZ^JH`LVjkUi@MzAsdv!OedV6@9-`+^fGzP| zsu=XwilJf?DbPE)EyaWS(Sfu_qpUz@akz>$i$vV-4CB- z{aPBh^rd?5`tHN(vP7ls81(qDSK8H{D;n|~BNa&_bQ@+9D7me1H*X~zbomX}N&}}- z->LG;zC&{xhOG6ywJ(;&9fMx`9;TfWtCTyr-4t2vxtRAB*t6qSg+ofxzi>R@vqTy! z2|)ij(~)*bYqq8_N;cAWuiZ3h^~f78mN*h~ z7iSReT+>c?wC#$B{GxAXtzk0vt?!#teMg+Vib$8lfmOVJU$@)H&MQIi&i0f!UsR(3 z(yVx{yzvu`xd6;a0L{+)j|a&_3T-<1Y4}yKUqZhLD~->vKk$(%d0X5CAIyO$0(_-E z7{`DFGoaySlkSmCXyNku7Uz~Ng;}(f46N0iAhi549;o68bse*I>matF<*!TyE_3Ga zsBpCa=?#qB-otV=jR{RP%{_?Lz)+_H775TkUxP{Esh|Yh^MF0+<)v=DO&cre%jF#;Su zRJwn7k;qs|ugrNvn?JZSu<%&>@&e&kl<%aoPAfSBP_t;9PP;e&k@c@*$jC{TVfB3| zzlS?X!pVF8{D>29OfTZ=^{jALA3`ooxquNmKVh-oW{#Nn{ptN>M=;%}6TO<=)53K< zCS$rb<8nTeaW-e8Y3RlbtoA?!QM+w(veAJ1dm2Tj2x1tEycj6Ip4W{ggDXX8H2!&? zk5rEy_E>2f^Q!k3V@iqh$2v$!wHo|=ZWR^`3idhY(m-^3@0cpKrnE<_ysjI8&tTQE ztTV$yc$$*SEnLZ#xXTAwosc=|H$Gssx}wxy8JUC)BB~~}+eaxiRK!JaKQvatpt?+HAmo zy;%c?zuy;)SBD4@Rch?C&Gk9+3O>g^zX>@ zlm=~lH~JXqw+<_@JR+^;ditF3$76G)X;YkQ;~ur=Y`V~{4nJPyWnMRcjZDx&u&D-h z1e<8brBX&RkiUEgVYAZg!6REZg7O!Ssgd&g;$`!f1xnv!;ILtjC~C1H-}SSjUGPz3 zl8aQi6%EktHmPKN(ZarT0dL`{5@cVeaYoP{FB4+v>W?WKQNjPE|6eyjs;2wTo2^p{-*%^5q@OE;sSh z_iw$5^%G#344tkz$%#bZ<)5(7HsYznku&q9o=w>vsf>^1EbSoSwyDC%i3hu#1T`-2{K5BbWT5;_*`S^voKIYZyj(5}GxpmqfkBiANP4&_(J$ zz@o20EI@zlt@S{AG<`+UL3L5%yQyYRIY-<#W7&hT*&0Xnm~b$SX2vBHr!@Vp70n}D zxT69Iknb!Dr!aMC2VG_#olzP0w%FiBhQ~jXz@y(3jgb2KEQ6Pw(7RXv z0ecFn2WUZKt~tGWKHR z=l5_NE5^)-uOF7T`Qv((rriRajClDlefr0}FvoIHod>$^70uc!j_G%lY{dHb}N z1ShaHwS%<)ACY)ArcPvao_{V&`>;Ui4~-G!8CS!mYfInvWXwgirXY|_e~4LwoD=^M zRxg}9KwPLvo356>$abywT3pqyd8OvtoPOMvhV*XO&_V_Xlrirdz3rS_=5UG_x64&kij#IG@0$orC69f3&mYfKm_>SoJH-Kd-q z&YB8HX!%GpisO<1NZe28(Qw>YK*a_1d)Yj%dR-};HNN%fF$K4pcC@n~t3GZW!hBsc z6x=~baD1(WFt_gaJF1+UeBzBE63WSzJRssN#Cg4Z&yNw$2_SNa#1Q+v8w>J0Ti0TJdl-*0O3SUmeVN0IVBY&!VqUU2#BT!7f zCRe+E_^H?uk%iZjGocbq4BYtbzL&M_@dX@ebTX=#`zlLKZ>BJiwqGVqUS(1*S>?!Q zJJb~2a6hMljDz)|b@7j)tsXx)5fYkKxHpUD$=#!}vQw)l8M4ZH6Dq}wa!c&YR%v&g zpwx7y>Q#)%RPqmH&wTe^g2^yhs}uj-O~NpIuk6Ev}4iOTaSbulH^h%`ejm@ zrK-dhtYvPO!f}j>ox<4l7tY&rM%x%e?w2nm)chLI;3QO(TuA)6y3KQ|I2N4#2p`gR zDR{^5g7ca+>%ITpzMQW4Z*(jF^b}}c;)0yXf9?3g;^Mwb5;9UR(;{}gzF_bIt+ZmT z?sTy~|ISL>#;p$`M)I394;GVT)880emf?MYab^q#c9@#$VRK%V|{Dr(lp-}z< zYuwj5r{>CrdVckI*8OT_cWaeNoJaHN!Xjp&hn{c;I?d=Rs!`#xds?uOy&*Eme#OCf z=qzZ7BSFN^FXY`4npac5y}*pb+37?XS@h;7y=~Dl5nHl$YFs{MmXUlT!9?U@#f@tC zaobDcSE1>jTL^oBeVD_Y6+Yo(SBwpdml(wJf6|MpHLU5^=l0#Y~9tUAN+MBa?czRNs=g)R@hcOb3jQae+mm{qCmYCr+pD}1zDA_8dWX9+11Ik87QPgVtl|zXAEB{^ zkirwmS=L-)nW!4o|Fy?)+M*0LfbgP8z2xSKLWSMlk};0zff3qGLtTw5&+$y}?SnKB%{A4eupY=8F{1soZ0bX z+m)?a=hyR{+HvaY;+btXt~TGearOLqkE#XK;(kh2bm_ae`L{D~P3jVjY7ze68o8`u z@A6NiT-X0J1m_rLOK292{Jkla}^lSfn8=JY3hr#ANpK#DuLc?w2nF zU51V+sj50mRyE_iuDJR8`E9LLS67dP=e#3){Mc|zUOxWq+qd-^3MWpaJhZ7F8y)>_ zD{Zn{NJx94j7pY_xbC6ilnteL?k4G+5!HjSmFrynxTiY$yvNTB8-)AjDDxwL^`U_ zXE2|+k-jh_yt9=O6cp6Ql%M5rhERNIa}ZJOrQoJ}7QTPiqT9i)G*8)4i7{W>Kp1PnWOwU@3^9zb*Qa22;KWn?R{l2@qHTm2sp+A=%>FMJ$ zqY;>m6re8l!0?-lsw$1W*DWk`Uou`=SXgKk=zDs4Mwg(&Ds?`)!n_#Fs_f)Y`*>FA z?kE3?xc7i+s!R8W^+iQRK|}#Xhz(E?5kZg|#e#@{ihy)!(m}cqlGqWE-fIK}rT1Q< z(rf5}1c=lCp@$HXkmTFUntR_nGk5-T+ghK?1v$yd$>HSeXFvOSeq{x>n7wQR|DK;; z&IFP}-g#U!gTW6KOrc>R7MA)RLmzcpavt{cqpiph4F+C;cRbgw^G!%X`%B_*xJMz4 z$?~QwadB}4^P3s|mkuwF#Vl^BbwQQ4=PzBl4ZC@fsHs9M^1k|}pR=y&`o>#0bpY7y zI_)?@FXlktg(Tur$-Ik(1mu!DmOs-gX_ z#^G<)*4FMaV{2Tjb%h*=#w|3i;d(9V5>d6?3xhZ{tf3NTKLU!~Q?`{}XKG@s(~@0N ziBeN4pMm62HT4XVz#BWz+Z#c3-C>;q?1M7=kuO*Q%ilap$jp5-r8VE*6iTUc;H}dn zx3yZAq@*)TBTK$lu3d|xRF;yN8Z@@fxXKKe5`S<0aQcNmvFP8*c3h`We2I15h$$45 zNF<&weG4AuYbrt4u<6MV8mYG{bj!=0sLrY?A)i5-;%MRMON(1A=CS{!-5~!q;(lu~ zciUIT@V1}6=CWhQ?)`s;7R8(Yw$K0OHwZ1GoQ|Z+N8XRK*hOJ3TNs(h-n=R_>?9|@^ z*P?iNc{u~J&$I*#qmS&tLH)kaH>bIm)uGr+zJo151#lgF{Z z;;9&nUNAybd^4QmyTzhs)`Ta>%npr?nwl*wFOv!9iL;d> z9`nS;#@m@&U%Wo%d0{>~Qo8&?5$TGC=H{-!ld0}6UI^BBTUexeb&ZXgt(<6tJ2_qS zTTV?)RjxbrkP$T!EIWNvXde}Ngo~_hBPx-(I3%ElT-%iAk-lAWS?!qX>)UP%_?fE1~5I5 z2TA7U=Io$cc8FrLh(TW8@_I-rNk?1T;gg-0AB*szw&^Y^7`5TBrng8Tr$g8{R%XT-Xb>X?=2GA8UuM z4X4$8E;VveU2K@hXH6lX^7008I*Wo%9`}bg@fh-C{)Q7iRzgNb#@F}(o;E*To9&Ii z{%}FK^i>)qeogIe{3d9>2s9Czn#aC{YzE<83X{}sJEzW3%*Z;s5pSk7nbHRCu2>k203FuSuC*dIq@b$e36aCuA15Ux(X`8GBp@3D5DjGcKK zic7ARZG2nUL$8_|e}Oe5Rp?v&1@X9K=}`|=4i^MKpGY)2hG}*i*vNYfpzp$e&S)5y z2v`%XV+Mn4=)p_Nb(F$8H2-1u$$D7OtkA?MfO;StHs;gLOg2FA^%C&X;zqCK6>uRJtY5sA$oOJ zX0X{iffR(vUyr?F%j9t5FA?)(xkZEb7yTI(m8<>>$NQJNY)8c#2Y2k)+i;mp*FN;& z_l-ZCuLx)V@h{%^vN__e-|>I4)8%p|B&|&^nI#<;Q^Z6usdg653#>P^7Hx}Y6fiytuXe|tz zlb|pe8PHF;y^J-SSXt@*^yyPvRh42sY-DuQd0XDdmI^rD(3r3Cqyh20l3`Q zrPTB20{i0wd1y3&1_vxGucklNL&0t!LnL}dIS!Y^>ge=oTm6{k1gZ^I35kh4P|-`w zXo0+(oCdS{tIK^QTv~-EFF}9|8u#FtSrj*f85px(r$raReYwY9bS zOpvYdk+!9*S}2@!+cUW=E-tR0Mx95iomu9ppL23LjM)hZ2~Rti`~LDOn2_}e%he$; z+FE)!3&8KL0B|6KbbJ;SY)M)+YPLVHxw&&)iraSzLRY3MwI?Xk!{+qh?VuzVrFaA7H9%K@82mpEWmG>xJ4gd6?u= zJj}j9b~k$Sh%q~d0$rE7WKS_SF_8sUid`>|Cn!)uXJ<(U`u53O7Vw7r=`ko*8&b{s zM%U^0_y*4FBE>v++L__qY{~{jGrg(OZm5tUiv1ybQrLhg#Dl$c)w%p2SF>M4_z5NafZlj%E($_-E@xS27CTpT(CiP%0#cOnh{7`HZJ{h(En&E>!n%Dh2&EZxzQsTWY5!hlWO26Hjtj1D|t;^@ZFda2nDf*Fq;1ieD&eQl}^t6T6H5EOL0JJ&KKQ> zi6QYWlh3rOTBOd6K5V0EUL(pkClFS4dDFYEC5`Q%_! zwNr=JUWQcwJj6fz6Axr@%DuNpxBrJ%{>2j@Qa-b=7;j*Q{z5yj746J%bW}89=iGI6 z?;fV6(7Kd!H@f7;-)`LB;>^vgA|I4EX1ikt7tf#bgx18r__Y7h%iHq=fM(nPqSyeM zq2jyt`^L)2y?8j~&)lZ@+L z9e0@b!gS!NBjwd(=I0xPj&)BTukZ77SzdW}whan^f`Rfq042!Mldk#f1e*NMfy8U* zqnoRXczG;n9AndNbCp}SM$DE2ev*EA@>xhfh}q@?7p`QUHevx2$?slncR6m-1cY*w zK->Mx7FQdHW~QKXZenVh4CHH!bAxXF17GDYWW2AuO!`ID))Yn4l* zj|glqT>x7z56Ncbffj!rfGM~DX$uzs;UANEv#oImpy+`UG2F*xziTwdf|>035ttVM zcesF-$P)N-N-sTn^QvmwFfhW(2nUn~Cn^Ekz6lG=5~sJ32VagqZUO|`!;}S}rp^F( zhTNcmr`x?O-Hiw!561`f0YAm0kn2p)WIsDUlx-kI1+7OTf!rJ2h2O%B%3Xw8k4m=| z=0O0lAtKkr615M#EyJvR_FzP z;TM9m`o!`*(AjL-)=aE}AU*!@aM1tdp&BMW7y}R&mEahA7=u7rC(TP}4yer9V1>!i zOZeNdNN^!)or5bs12Lj)@a;nw0L5od8LF`JO{?XwMz6i}%Vp@DpwnGT1*C{;tMZ1I zT_@!$w*_;Hyvl&Y-V1`>S=!Bftkn*>@>BxnItOYC3$%7MS$4KP#a~0yM?;IY%@M00 zj*)d}ljKDJkq^8I&?O%4qM%J3pha^JR|R+lOMopM=sS8if(=rGG_(~^BFehv45-3W z!Ue@|fsB$^UT2(ieX=SX*O{asv$_q)nY87XG&;hr1HwroUS*0rV;(>fM6C_-^y1G! zo?xY+4M0(p@Vx}M?SSTTe@X!;?`$SSHv<#^AI5>PYtm#{<~rx~3!Lkc)h;7-@alp! zPP;dN()xmON@H8?xTDZ_dRwCLu#nn}TOv;{5E32*cXAqHpP@N$Gc<;w>c=_OdiSJ@rPRgI&NV~v^p!y9L%YYyzb8~`>wycH_cOB3UDZHW`0sPG3-ra z<=Z$m*UsV8U{B}|v<2#w@*37dvKL^THJ4hmrSvas>%d2^+bqCN2LnIHRqoj{Lp&}^ z1i6B5LB8-`Z};_>eE{>*=^F-n4A-!X`n!O`y*A@Yefn8RO@3W;3w|-@;I!ppBYPB^ z@P}O_;F3S~H?qlym6Mj;O?iT~0su9BL$0S_Je z;}q?twqJ7N)!CP)3OG*@c>jWo9wOa9#G%45;QCAwQmZXgezH7L&{!^|ov;wOal@gP zRr$Y`oR^9??f9Hwfi>ICt+}B_m+s7U|k_d&x^+m#WZ#(f2~Z5`qX z9gMiQ!M-@il8D&aS%|l191Fx+2r12qPq>T)9hK-phwBc$y^hwZ*8aQr)BBTZ zki`4S{N#BNce9*A#@)$8(JslKwg+uBFYF|o9Cv&@v_o!O`0l1lE~Z4@pusk;5Eb4{ zyy;Io(Dswwl93LyvkVIPgF`b;BNu%h%=vP|RJ}$j+*|;a%dH4;_z5IYLhCk5EyW|% z(2h3gRK>HYJ*T<`NaP<0#$3-gj@y>I%?J@+Zezx1<3Skhge`!85nyag`f{!BZV(7l z)=9cHo*XL*NrJAuDr5pi{A@~z%=nY?zKH|B6}MhK8kxreB{CD&S}0)VRk!K=!J~_+?IYuI42#oX zYHL^`F$|EuVp@dQJT!h6T*-O2{2C4_V?x^=$=iSaZ4ytJ+n#P)wbhUn?L=EM8i^b> z5t{T(YkGLw#<6`D`WPwTEBW2U($M6y4emD}uQ2y#x6%g<-9osD*>LK;+S0At>}HyU zsT66_hWT=Zo8+nt&}N$~;0fG-c7&*W#t7iojKAh=D3?>NsxyY`GABPz0lhf_lawV%+(L< z4RSFq2|lTMc92t(NDR{WEs-6KE(so(ejb{H#4@#Gd9O4r$AyaCz`o&0Pw}~(-|C>- zkzB>v$SFmbVSMO5DD(6X*NN&&lb6o2!&0)XX8H#PMCr~r<|!eQX2?&KG1^!j%`!tERc)8T z)p&pZu;FREtdI%rdZ?EQ|2X3nA`KhyfW00)FrW2eFb1-!U5FwUJ*!^c1b`#YM9Ut(o2gZI>}u53 zDV&{r`R+pQ2W3WYs_y!JJcRu4AE?29pS9gp{E*$y(D1n9uWFFz53qL_ zul`u&Wvl|QJE!`esj+s@e<}C<7dwH}I8h_$sLGM|&=sBvuj#h*-`a<69lBxi;lqas zBeygAPk%Ul?d0i?->*%)y>{x_!pBz#imsSD}3K0Simc&w+o=2ooq#*ig6eQa~%sbn}GyrLt)BrGvtX{aSIC ze+EOKs*!Ctg#r+a6H@k3CV^Li#g-J1Y_2w!Vvy({OZA`}G4N*q%}Xzcs{eQYXSKfI zw3NITp73XbWN;SHY#tk#70!ZG)dgf;hRHzI+Pd%|9Ked}V1R%bw6>jKgN#YLNrBc6 zY8KYiAj_nt?c~qUIAYN0C>WM!C2LWuK<{303lFq;zspm$E$&OYT3%Pw+ilR?7S;%(Uo*A_5n(k;LmOVNOTXYVxStnk^^+m zD*;)!%ubW6oI(mNLB`8=t0VvEYk0QM787Ha6qBj9!aWX0oZUV!8zq{Y$+or_NX`GQT@Wg%-`jqEhm+{npymT?m` z8@_|FEf8h@&4LnUn$HC#cB!vfE)Bi$r4HcaeFRj=t~exRe&A{}+GpA9dt}j zkajSKJy=F9DCl0$2PaOp-olfYBWGDg%JvX(~ zwp<~7CTadV1ec93Hf~Lkd?Lg@Oi+bxNXz+*0E4e;;J-doZ8_(ctJ?czH9^kV$lgU% z2=8^t*dX~>#vp1G7JGgJ?QMEg1LhFwBtT>r%BnjN9>Ib)jq}}`jOh8xr=$VwJ#&3r zPOeqVZS=zVZ}yJ<-PF+jxbp$p$@z}l9bh?VfB>E@r@Fpv<<~Vf*fs<0f#-k_zMl;o z2i)^ia!Y~wz!XkbHHFUowOC@2IB z+Uew?wL0@mG)G{&h7rWZM(KEIO7su(zK!LfP5<=yoLwxf84L;qx7AB|yis2Cw-d!* zwz}ok*=G-_3G4pNYb%%)$lp(wf43_6uWeqSKy&3@QQ|t3nLuD$_s=O+FYs?Z@PD`g zrqsc4`!`RIyno2)#>?q;NWksT_JhKjS6t;8r`R9&5ntU*)M1dcoVs-XQQ#WV<932r zx2!`{XfO4lqN{YMuBKRz6U`n88O@jlLFPqjf2|jPdy%qP^W_7`x&Y7RBCBY4v4wYT zCqtzaIUtW_1uvPGkzo1?B-FHDGMv#gjIJ{4W43$LEt|8kL|+6Bid|sCZSa0e*kybf zliookqM7J?x(Jqa%xUV~5DZ{<(1!%xsP1~TDVnx>7v+u3U4HA#_^{J=_VORGzRe|i zMDjwy(0q)fQJJCE7I%k5SCWSd7KTxw;@~1LG;F(^mR)C(8-X4j@_xz&NHjl8kE-gM zX6rG(Wn^@0Zobf>%ppte&9j$AmB17xECX;mc_x*X0Kcm5ISdLI@j!SZ0ThekK~kbO zs>9CKQ)7c@0IJ0)*P)Ie;>&?UU#bcLdc%9B!2A31ZdR&hFfbaj&4Ki?%}_y|Elf(?(5^bJnrfOig7mm}Dhe zKN#!{@+!5w7yZ?Zj)-#IV%~P_mg>Xdj%#d((ytvLkK~#+&*C?lTv8q>bu`G4$~x03 z)mY;D`^Qchd3k{bRBlr4g;eyS>#07!hZje)SjUOL0X8g;vd!?iybSm@7RMI%Ezztj zEl;NvCK8)wFRttK{-U&kE3K9c>{47o1E%@YbLmE+6o{bUUd!_8J-suq z1lI9yXoD)^{aT43&&If~zTsbs=P~!#vXUe2tQue)2kMLEBhUC@PU-7dqi)3l-(F0U zOXH8Pw3G~F@3qn5_t|L4FO}g(c=U7tWpyFZoubn>0my6NrN2XsZSSyaGX1Pw64%nT zpg`9oEDwIm_CO-=$fCy@g)Zi=n?8B+VVbn%40i*Z1mvKBU6P-A2_1Zy3iqLKx@Xv6 zPfz%K;#u^(lM6#mMn?B>yk*I@B#SkskkwQBq;6Y35X!6^T{pPcuY^KLbuJtm9=NE< zbUsE??kxA6m+GS`62+4P9-}5Y*&!zL?UUiA%z2s1T$W6xY92}By6T1Feg0W?*W9XFW;%4lMbMw`Pbeo z{Zu5-d^fai$f>9ZlWc8miDkX!tTK98NlC-RGQh0dfY_#@>8|((FhsInYypj)_*Kh? zaLLoPMU5-hru2DL`mGD(WM50CwLlQ?vy%EQ3dsCeE-!DyBWir07OX@cMD93f%I5e7;!*7MGD zduqvLf@9!y~>Vj&(TBG}U9^81~+xA(@oxBstm*m_uwzj|O2D*W#|{jj^Hq{Icn zwuO(6ypNNsYrvf^4?W`#w5+bW2?`036tV^!UikW+uX@btot~bKtpvA-ED_|RBZXl6 z02J8%?{Nqm9?$SRAp-{Y-6B+S@<9;!ck4A>p0Y8?9*Ec?QT%S`NncEVbbe%PETfr+ zhsOf2$6KM*a+m$Y#Kh{Rpb84{Q&1=r0pB>!=4kivqQMV+b z?_Fue#B`!#H(dm&yQJC6{-H>$kB5_7;@t7)2!!g7Ho^B!tio@M&CN|b2~gR4w*ZzY z;NfYGD0qmJq@?KZrAwD)HhciTJ%T(rIXSjl{d!q*c~Mb>DgpeJ&}5jO-#vuXG7(_v z0t_#3gu&nYC?x0>9bJOScPBT%@09u)w`_DVj=G5Qs`ajtQ zcVN4)%SQ}K&HYf3>FYBc0FrFFqZ$+cR5I1m33bdBk z_w^#Je76hc@v`=h{0On;hO;oPgfkdwW=OXqOsLL11SQq#lOx)>ZoSABO1c) zA-)1jO)-$X{p;ByF36+0&U+f@U5XfJvS+!5M3iOoY}!L+zvh-NNfK5S%{kYh^AAdZm(8+pO)! zBELWvtbN|B7x1z7V@}lrcdHq{JWyn51>MK&^tw}EQH~nU@2++UO_f_Sc)&+T0vp;j zpeiRYptEpQu~#m@6U@PBw&t+K(qE-OsZ1P{#k5kCeIr0YUzRo=0O{RQ+i1jzII%#h zuea=-X~E)rEp;qAhW@_WeV|OM8~#%9Q628&S9YSjtJt>vhn&+;SdKYbRRPKJZ=|i& z#85yl@d{GF6MYgC(9+Jj;@;G$JJEo(@qYAGyY7?Mx+XpBDklS`-l?`#hjYz=5{;;p z(Bc*_rq9ejy?hK9vCtVHvF$C}1fD7xi%;;U=|4c_`QyUpAIktPbg@Q&ka40v$hI35 z6|HJrNDmE82E9^E&>4v})-OZpHiJ4@dYNkbl0B1r|NG*@Q2DVJXY4^+Cn2EaCJ8#@ z1Ek$f!Qb10l2g)l!NJKCfQn8;bJ>glz3Fi?XR5OUP({O~6gQ=VmhI8#QlQ-i0IN{M z%@3f)bi2I@RP)kcxvb(gev+^@|{I(Rpy_8gx9ivOhp3nDlEnd#pCFKFPXJ}44 zjSnQ^+RIYkkTW+8Y2E5OMq^;#L=1M%C{L&Kxrff7{Li(6PTI$mWO-M!+iQtH61d<% zN4r`XclGL0^>WNes7ZV^a|7?%<0Jjv0e$l@S(QG(zOrl#=!y@`%;6NhdAu?7?O)WI z6+q(U;OLe3lY32QF>a$laND^i%^zgo$*fB@UptI2Kr~sS`6#L0j_@laIqH>ixDfMP ze`qf17dlGo3qeDOdroqX+!MUNM$7p*!~#mhYh7=cRC$&-i@AFBf~@Gk90DWH=FUh5HnE;ZOWI&)dc%Eyn2vvQ~rD zXzL5ZGS~!8uX_1s%KM{v4I9={g`a-oJRo@JA_u}v$BCkqPn z)F#W56ukJWk_K{-O;##PLuXZW%?fVkP-ne=u*pLnZC8MsR~nUgti2naQulC_US8*P zF_7>x=`KUnPbB>IUG^t~j#Fy;ssn{PIIMEJVy~KyiYy53&Y82sLN|ZE>8I{@1FNkx z|4a$L6Y?%5Yhc7>FjeH_>0pdXIJD!~HmtXuVG3U^se8>s;Pbu^#7OGRfc<2jt)1CO zJo{KN`6)$5c-8gh;|Z#vu*J86KEDtb8!Pxb;EcD+S!u1D{*6`Tysek^BoAbU`d^VM z0)@Ww3PxV@g!x`X_HRb)06N-qHaVxgIOM0itf4{AbX28;>T5I7jco-&o%TSaDK{RW zQFN!?|2ihv&K1PH3(Ahfpq8X9S?}c6l{+X%Qf~RjwP}3D9^_}R3VjD#%VFCyC*SPd zY*O)C|1kdmYLLmABO0+cFaH78HRof#VJ)ep_$^*6%R8RH4&2)ItL*aeLR)^?M;kfr zRDp<%5gIBCMqKiGnlwm>thyZYn`DSo3mqSv2}_W7P1#lu6Bbw~1t16O!TPp<2C8V2 zm~luBOD9cbMN4-feh?i+PWBno@Onnkv0NGkiGPIR2R7&Cg~1q^7##6jbxyE;5lbBh zpfDLVPrh`s9?jzST=}f3XwDSo5sI9apSNzV1b6Ovtj83pIkdBwTb%xF=?}+C8zS-9 zJDuf9E}cdQkyL!g9I?Vr2%S|Zxl}adi4tWp6uQSIG}nsTh?`_poOkqBUZ36Yj*1E0E|EB?-;?tjow{g!dE>=}Ud*k|Rc z_-HTw^to;+cGq{KXF$v!-Di7t<=|zWhEs>Q&SGp9<7wruoNlofJT{fAtja!!x733= zMNmqlicJ?(lP!1WB8H_Y#OY#nkF~fJNzv&o{CrA{vFAb$R5~hpA&}ED;e%HA<`LY< z)%1lMr@V)kFcrY9v&W0o^}6ENL}Nv)Z9!1s3;r#owi};S1iq8}hRjsISatvv zUK=!}(JPHSo+6Iw7V&IVZ#z~$j~covEa4a~xKhJ})DC&b6M$!!W?uNUZzqrF-uAbhMI0{txN*!fW?E62w1(`8zwRQi7}a90f>PU|LW|#YrYjswxeg=YlDXun~5xjwVd;qg*Sxi#>TOFBDYk58vkR0 zk-2g{`AhQL8W~yWQ4>&mcWVsPHX@$rj+!rs><*rVBu_SLDmyMDi74RTGG@{4=s{=| zR{GnN*8R+_U`eqqv$j}U*W{S(HG_ zL76Zr2Ff;x5MMO5Zi$lusL#o-NS^5Es_^oyP8og3Y#dXhS56HE@k)%W_1Ju12@%A5 zA{tD{N`-5N8+xQL6>X591=C;AO+=R%EXML1x-D`CqZ$CROecu;rn+4<(rZQ;sbs&e zQYS;hT+grdF`LyGF)~rJ$QD^mHZG>2jozaU*}dqqfS5Xd+8X04Uv~(d>KblSS(nyB zZ^rgBUY9_=Q&|>5c3h_=a7I|9-QF!-5KM?wjQC0TEQo#CR;IMe`AUf&P6#!}ZRUrv9Rp2>{ zS7l^cpc;sOx;a=rT$Y>ZPg;v{Z!8l8z-FyR14# z;auHKsgcl8a8zTLc(nF)aTTutA-E!+C}|x;G4l~26e9GR^7)COy^MEGAT2y5jP)}m zHIu1&>MOEVJ*CX5`9=JhIj_&kj$f~)A_wVbb-J9oy9o{A`5#&7(7q*6XfG(ga8VtR z$v%d#7B9od-&M>EC$bovI_fihE8%b-(k__LweKb!Yg?F#tcHZUk89c`ekbM?@dqrY zQBM!PWi4LQg8i0frL$YEwxy9w16f{%lmy|)loYPnvb%;Wk>R4$f(>!38ZrD0#j51K zeS1WJO6Y|QWC0^*krKzmGMEbD>Rl&ei~T$m7PlTZU5Q|Mo9Qvzl{HBBF{n0CNu6W^ zyJY3;oT2zQsUL=}hBkX?+%aF5md`5{g%+$K9_BJmiTXpRuE(@Dl%f^rEChcLhF@?%yWsmZ5Iyk1QOcQT= z<2F8Ae4^V**H6Q~IaYmjopV(RNZ-FZl+goaPS)cfvXCnvHv zm)}Ieq7~&2gOwlUKdcP@uRJ$LrMX|8JansvfeK~3jOM(4rlSqkDy1c-+pYL7OY0|c zO2y{7|H+c{CDogayxv=vQYYYl22NOKWN8xQnRWBMR4sIV)jGUyIopL&S4+)YVmw3l zK{vp&eshcrfKbT)RU30T_#}1COe_nuRpa03{{!Bh z?-P8$GHdcggMn(jZeX-g=*e1}h{|NHZ-+flj_S@40uN73Kp7799@!^p%RJk z8X*K*B_(T(=_9=~hSD&&?_^(pw%2%FV7v;WiYr@eA1@}1GHxtw`JiRoNDBU*jCb*I zNc-9=kv?XLt<|m_{k1;N=!n)a#!dVy@B#l7v7o!Waj)2C>SPjPB2bU*-?1`q*m~cU?iT=e{Z`pg=8khee|$@2`95 zhu;o3T-}?EB^?^HlRdexvU2EGLZ{fy!fBv#pVC1m^rGUdEzfb_?Xb~ft$*Ed3UW|`JgTk)*|S( zbJhCNX|=ttuT*^g{CUFt!Ox?|d`1jLF4P>p5ob#e%+&GBuUqOIe!Fa)=Q8 zM`D_4&6_tIAJg`i{M|TSQQYoIefd(~KRCE&pugW*OkBJZC|+8l@OWdHt5bPVU?l>95LU61rJ&??A3)X5U%0TQZ*QNepsega=xS@*92FgXdm}q5>k1&i?nj<( z5T)8_Y6i7m48OaJN*)#1I=nVX2?}*>YHpSZ5s%bpdd1^} zL=tQUaJU5NK}{Dx^v;7@S=E;wfg!0HC zdqzhWn+^~*>+0&3gysEFp`qFN`Iza7+FIdi^9#}Y=}}Qpap3YOv(%;{K5+uh(oaG= zX>P7Hj$K>AeIT+_t-ppB5}U&TCsls8tqDysFg0DIw;kt2-F(ct^8Q=jTn^JlWH-@OHBqZrT%4?Nv5pkpVtAG|5k5iHLm0$H#XG4VbyMi$zjLuA=ZG zBONc)flO%(g#k*euW7gYUrdq*x5%Tcc%VRP+d%;Y{5SsA2SAD1tJwwu-EyTYEH3W0 zdhZN5e*8*xb@fj~UjBj!Aky?Lay2AF9Egl)vcNde=W(kSFKBVbl6F6%NEc=GzsP0oQMUJ-dOo}UFFMFUcY;H=;GZE(iyuG z1T9mV8SXCb?UJU8_NIE}Rd8sl##r{eZn-(r<)G=P?>&XGqM|g3JU5`nb1vJ2(N1%9 za{Auds_|{Pz0@DW-q_Fw6!=V_^^gO@<8Y7N+zPXDbM;(ZU8f-R*DMx_fjUNMWo4$K zqM|3_(ZPcU4Q+=82GU`P2?_lSh7zs$a>xRaFvw)q9zS;M;qBYE?QPaD&tMU3S6KZ8 z?Am!Y2udp)&(3dmZM#ZZShyd%6~BcvFb~zOJ>5neLddtY(Ds1Fp9PBXTYW!NPvZ;+L@$gldkOkD`?BZhGW!*|vTdl>DT0rkN zV_8{Qjje$gU7J%`sWADXxVU(%wjL-yn8n;nuh{}&u?G7Q)$!_FQMpH;QR+i`~B!W7F2-+fDlDp=DRvyoh$ygJdQaB#kg0sS2qots?gzksjym`|eA4R)4~G)EGA(tMdTslI z9h3Yq<{`EUd0H``6-F=qGD1uw)jihG2vk&1Sfx*ySfmKFDYhD@T2;j?(-KLA*5@z- z_4Conom5S4)}u9*TN$?Kj2R-auPKt;h{aZdy+9+K#2f;%1!a{0zLG+N5WrNtP-})T zUMn>~_*mA#in0p}dwk&KnoVJqw^;9V-BYeXp;%GO`{KFqn0*1lC(@d z8|~;ejV>?$)*Mc_aha24#)_y^;Cz6ZHcDE)IrB1!GmaA}gFMSatDdHBoe^d893Hu= zwy}nP{68N1|Mte02Ut7Z0w>dYl?M+2dr6f)V~jig-}d?6{01>5xm{CV=R}hLi^B!L zHpkVTpQ3k_c7N%YEy>Br zS$O6h55c@THuH(Nk%cxhClEPqD%j2>k1Ko7x_r76&g=q>vcE-n-8u!xxO{-a#0R8w zPRq#j?YFV9vGnu9$q<^F-ha=`y4OfCo)p5#VxHOa109K{C>7e-Q+5GZyK)rU5Q$GK z6@0x=&u)5k`YZDrSQH7}4KSpyJImJA@}COFg@;?DgK$oW)~Ax=5jP_rP@2s`4d4%a zwsILsALM~bj@)AHdW5X3Y(+?`rlw{Ye5Vw+7NnrnDL@D=BY|u!g!OC!)7>5BY)YB! zIn$o+@*Y4{@FLmvk!K*dgB$LJ+~makWJGg2`y1o*Z;rP-d#$zr`Tk=wLiZe_t0#nj z_;jqJaBSp^EJq603b~$h0P@(t02YG*7M}BJBkVdUNKJ{7P&0;bfmFnTe`VDU{)>H2aY9r2E2<^wE`$oq^mdF7v>I%b5@#SMWq_JbN*(9`ZTXBTu3pz^@H&iu^b;+-wv>}-W0evvqyWyBwiN>9A8(I_;~l% zIi9`hzw-MPB|j5d(kwGsHS$rLdW0QaPy2m`*Zws__oe41&08(G| zo^mGe;#Y5-6lGojVDs(=qpN%Zfa&#r6lW_63IQmu)$~uVI^83N*X2J=zL46z{B2hu zdtB%jqoF|fxBRd2nW>~7uKREE(<_2q`zq&ngdmIcNo2}PmJahw5CE_nPbxj{gCwK? zv|Yy4h4-Kt_7UKOAF}uEIexEmWW5=u-9)HxtEX=Sa!-6mTK`e41GHoTZ0vDOrpjkl zcssav2iT+Q%|7=I1yug>k3Fzl;(n#fwAp%lH^ z29{!XI&y&T-94NI`9#h@aT3DA$TbJ<23#G_H7@TbtnY*X<}|=|Sr5M&p`Q8sDES}1 zNY=s45U@D9>AB}`Bk7;}gnc=X65F5<|1Tq|eRA^QsQ)CM4i4v1D3nvvqTbK7UH%$O z-M2(o{ryq4b%lk}*ef7yzwPLl{UInwcTQYP%%AkJ_=KC-7eoFo>d91q(6g-$oh1WZ zgft*~#vh8vc(ba8%>$Ygy`Rg<^cx$Snmz&$hp}o&;KG7a^TxzCXxB`m;1{BXh6eBM z-McN_+*W@qcRu7K9s^*S$_<00VDbEa89;wmE-*NVV`oK0GZD*g7cjG=IFDC(w=FHx zhK7d=r++H6+DTP#!_=Vi$2>F~9I^)PfMsKjuhIt=K&)I4?y_7{LcO!~q7~QHI@`a3 z;YLOl;xf|H8>_%VIDZ|BKZpz9D-iAU|IzPkVR0&qB`PX9PhFS6jb0aSWpy(u$3oq- zAGy01eK9@xv-0Ci#rUm5Ov=XK(2!lOMz_evprG7tAj6P6nNeSi+rX@>6!h+)nx>KR zn@K0Wviy#hzjTj@jdk`q3$t~0)*7bn+qbWbnV# zZEaj$fG%=NWH9G&jz$4163d{|9}8>D{t)YDJT^AQ=gE%uo6l!|VVr&{(4rX8{jxST zF)@3|3oPWVs-Dk7Wn?DfG71VF3}-&Edcf{}xv{ddg<)c3G+*^zZqZHrD{}TT#Yd9^ z{W=edMW((YcY5L5+R?AQp5D3hJ{lnU;08vc7+d;5Ewup%OvQ|HV|2BA$>a1`NqITG zgxagw+ui+JQ4BzXhBtQC>`g=GNj342Pb`Ip^Qt3dR&DLSu6D<&kv9e|d z+*C_|_nTUiocgU9$8UtyHTGQH-pw839KQsimoI;wC?p(dtMe$CEQeU_@yL;1ps{ zZ@Oln-lDn^4g|zsfqdd>AQ1+!5;4vCjPwN<8}m(|)BCdN0UMAA-hz(ydyoU^v$PlU z*dVUf1Ng)*(7!uuT=T*W_>?~`3i(L)2cC7FUS98juDTc;ti65#|J7gMU3;e5Kk%OU z1>*T0+4ug5mo3!N*uYOg0-I$@!77F$622)5U3GZ;g0^OpK>*N;URtM2?l_As>$g6; z0;Y`>00l&JnF@d=)z&@hOqeorgaK3zZrjT|p{!^F;C(Vmw+Rx5%dgbNj-`X}3q>4| zcOARW0NCZ~XWZ5}b+eim;c@OZW7pb39SpQT;Xx`W2(%DTpO8QzVFeJz%6b6aNk1W= zVwB_$6cg6zpdAzGSpWVY7dS1<`nHBc@3vOJ3V1%l|NkTHt;3@F*M?vHp&)`FqI4+= zB1lS?h;%6+-Q7bs3h-VYwIUHG|`Gh)HjW{WE>K6 zvf3ti4fr?UdTfw8;Xiv3ucpX~UzRG7uWeF%rbuN29=b&nQ%6vrsf+@rpgL+1Z$8^4 zApP1?S9HlG-L{obO*DdvpR-Ie3MhzPtpGjUO?2$}J3EXAzMzO;rnL|Oa;ZspK&v_` z7fm4Dp? zpf}|0rT`<0(&%vT+y&4RI7mWM)dH1p!-7TN)%Jx*1ar_9+%^yGc?yuzW4*qqTeNbT zS z-6SykXO9)yva{WKy|=}q1m1B5mp8Q0MVc?&UG{#l`K3z<)&@g@Gk}V&sZ&T9ysijp z>@jC79M3p3Er2LD+hVFnxL%trK9KnN|zh@kR+B9AMEwCMj4m;GY{n3C8U4HvuKD2$Y^HpcL6|%{y0> zdeI{p1NRhDo5i#W2#&R)2c1@7ucjJ*=G`WX+=OjvUyk>)^+@Y^KgmaPE@2%eZ@xO+ zJ1P{KTE6A_O0QD-p#&n&-vk6#b{7UGJlTfC+gM;+{__f1ElR0-3;C@ zrY*U_Md8e;&g~1S)Y0xoWs3%($q<;en~FmanD)mE?-ayJl>Mr2oK_s8)=nB^h{^mX zp6>roEa88exArCY9_HY8I`QD^zt__LuSc)<>Hjp(|4BO#!x*f>y(jkQUdItcSuFgC z@GbT*)ZCyZT~l@DbGN!1Nbuh*PKb%?4eG-`CRitz`mX}1|J^{DuK513xejRwFEH=e zzqZN8?BA^HKOXh>=T%^v=SJYb?DPML<#%R> zz}%N{a_DQTUJy-1)hviERouBXunOEMLBwwoQKsMpOx2TNg6mgr`%4$^-D8~j*QSMN z{KxTAJIJ1do*RF|fJYF^>V=-_|Vt5I;IGiI4IjkAIR8J-AQ&`0=Z^VozmW zefRTw@b%;HqG5AEi@6!&$?$R73U0xTjqS|rsooyEU1Tq6%Einrzi&Y|3|7{B6hK(0 zR=(Gic?WN+7#Y~becr~40R3rsPU%Lic7@(gza)Hzu$F*EJx7OWKgRUD|AE;|=ma~+ zZ9p3H&h(d+Z`tgakfaU&(P+_c!I0Mmd(^GGs+%urs2MSj!b{7>ImRXR_3?yb+GAdN zn$42&-x?FA`ClTGy}Z>a0gf;mk-(7!x0iz)*%VB!t`eM3VUTGx_sN4n~&#pMe%2 z1P z7W^T$llbc|)n2FSo7Y7yr4igDvkABGd}w{KGc3n zWFseEiIWl8J3oJDXjC3r?hdI>xP?Tr^Uijtdao(Zz}|_nE05f_Ww9~QlZIBv-Mr-I z`Z&^FZpt-hXSX9O_n7;dazIpH*7=+fSlff90^Qz`t_SMo)H=Gg=a-zlQxb%PY__j* zFJ9W!=E)HtZIvqF&w|(0W+0)jbFfgFwHpmZX8pcxLvc>Plx!MuN zqtw;u5#Lny9+)Q?MjI1Ru|;h!=b5nT4dzyJ1{h0i@_$Q~wfdUbi4py>>#IGXQ};kz z_sMel`*Xs|?yeDhUUjTx@7lAd4=?HZzkd{E{*F3+bXDEAFspHL6j^S@x%LK&tfE(= zI-}|q@)Hso%8(xmd?Klv*8KCSwR2$Vm)|4n*r}DbLNs!4__eB9-WLa+_{nO8;}znb z4ipDfzZ@M#C!iBER_fOYH9VylDBh9NY%?N9EHYOn44WAn`vn9L*`4+_x*u+kThO6F z-!rYSZv~!h?t}yf@Vjzi(w7w+)Zjra4@t}>FC`brC`x0=v#zg2vMP%4JoFv?BI1aA z4HLF$9_`70d-q~*Rz)rOvxDX{sW9b0@M|f;KDj5amGv{lcdnfRU-;;6V9cYz9a0*6 z2$?mo-)wQbMY)du&EZZG<$(-!Y3IP|7c+k%MFP*p=7Y^s19??HO5E)B?uQ;krw4(- z?myzfn94Iq8f9%Yh7>LAeuss|F!TnMn39w#k6}3t+~1w`oNu9wiQX0K>3LG?Y-Zo~ zJ~gFTJ~C5!qkm%Lc$r8+W&%5sMjl{bcxx@)sAze8@85(nA=gaTXc2#L;eZd|gc?;> zY=M}$V{UGd?#1Z`%;z@x>XhGGPd?AO3nUSp?tE7J^Z~A|%-{MxK*(c6I=o}9i^j`~ z_?TM$^<5ZPgG}~`g|S`n`xbw9|7|rd zZZpoQt+#AT{h>LOMFKSel)N_+uFRQEbA!0TXsjO?!PqLFz$+BzhXhu!tuAN?2K=Yk zl-3}tjlxYzu(TV?d*$Tp*80PWs>`U-QA`R$=cq=X4M(aI@IAY z?a^LnW(w+T{U94w-K0?$TpV_g*3udpx%6;5{?|L?nm-G&KBvwx`4+{g#;X0Qjm^6o z`o#H7PU_%tL*1WAd0JjZyfo83m?H<{yZLl>CG}4_=^-~a2I3ZUg0Y)#`{lPjEAr$u z3C<^GuyA#0aQ>NV1DV~_T|H3)_Fq;}n~tl*dn!}x+hENqK``~*Vx8We7(%WJ=w9^i_hhwaLjV$5bteH@0HdP_eOHDdhWo=*fuLTAm)B~e(wW;1)`lJ zF-P~O3rEJd*RGwio@<+!{(1KZgiZgK3%~kN**ejA0g7kOOqDK3z^*6SavKvSKNWLT zyoKV@ldF!G;`_6aBbyj_EbgpaM5$?}d(UZF-S$arvWh2g1-#!*g#D$fOU>;itng&E zRO5T-Dg~8kR87n<$dF|?+_{RA2t&eVU(eI2$JtWlkL_A7X;H56vm+&*tmL)k#3#<2 z843mY59-Fog~2U#4_6g=HmR%c+T` z$8K~dju)xL^j1Bqr*amO-*8uf;)VlGj)$UNTYJ6ry69SH6HGxh4Wx;tDs7*Gd?afv z;HgcFC3|f*hcEWaG|ye4QYqJsjKg#CUYdE9a6ALC&&~BpB0tuxwS;E2ERb*Rm_+84 zGu#9T%pa6?$X@&on6wB{+%0W^ER91W~V2*dLU}p<~*^C zXcI5BkpvZ<`W^9{Mux#$AD?nFV4F1fDtsmaY$t8c*$*qi=K#v8v zpqe+!WB%+Q%D;3+&RsZFGGT9UJgQcQlG&}fmapm_ad4RhRB$nsyZ#!Wv1g(GW;LXZ z>{jrJ;u~KhXJgZ*N|UdupXusVY+dX6wQi5|o&IE@l{;`5sX;)!L`M#yUTAqGEr)L? zZo}SE6UXmvPwz!oYOHR@lAKIrV&3g&f+2A=?NP2Yr*B$tD1A?+a*Gjs9J(UmS5xQS z6wtc34mFWz+`f8BsQt<({SmC1LCd`_xS5!Ccd+>j0?7-Zrjt(@a)m)bF~_rx5M$zM=s|K(1_(qPRBNS*sy3 zAgPCiZ7&DcV)j4cYJud}gNZeCPguCJ@!yh)3YF$|>g z%sIpOv_asp$NN0)i%GH&!DqC`;<@g(TKeint?8PK6)#zNY{Cg%zFE$^O8Ury3+?_w zc(C)uHUD!gIh2`Z!!InJoThVisFRHNCj&Gop`(jr=Yhj6oS23}Sl7xzXe{w7=}1C4zN6|+4D7Ax7LD>Nq)Z%Ij~P{N zM7wP>6!Zw*hVZJH9ZMal+MpU0NBxO5Pty@x#E#+v$)SF zocY#EjC0|DBe&q8OvHm&GRC^(U*%^Q%r$y~HX0%vhdg$kV7RDxtt2BU+UiAG5Ge5t z&SX_mTv*Oh0Kbs18cX|))_E8)v)82Mk|5XPkv1Y{o^zFxSjSW!)Lg39{NRXCwA<|m zcI1%AYh|w&E;K?~RuI$~nz{RnHT&x-QxE zqFlF~u31_|_ldgo=+|!^--)GQj@#>s%9~v>+O!O)%s;1Tk8XB@WzaCgvC#*~xS>@2 z`am7(OB>mQrs(6opyx{8Bfay^FhS3v#vCqgzYa#y=3LDaQLw5zU2i@NvV&b1xQE2} zi}jwanR~k@NfDY)1Gi)oGYh{tweqlQO8x9c_}l z+&uR!tqltsf-T`(;RLIBP1%vnVdnfEjeg(L%3`k@s&$17tz92kGWi~_C4S!U|NJwO zF{Vb{OwRMEre-X8J>priXeqEcMsD13bxaYRNTFiI%>4YrzY=rTv{TEuUPGWi7@dUD zGS<%nILrc3!^6fI@(PvXQ-fpgxZq1eOK^z=>|S0tQBK|CJ5xE0lCl9a>L=A#+#$Ri z>%VgDvvK|fZ^2uFE9~K-)%E!?m$NeHjZ;hXuHuW#RS+p5nKAmDK4yA;8tatsYHDhA zunlcj6csF#o@#1m78HC@m%Suh8!D>9uRqW;_-at@rg#i>0kezth>@6>7H0ASWZ`rw;aG2`+z6sImFP)(FWMD=+cZdfEc zguJJ5mTJvP+-UI$4}}(5I~jNxQ7CQ%l;HU0Vu zBGMMKHf?g=Vhu;;yD~y77l+naW#l8~y`3BHl;_Da z#=(krNJzGihtz8>(3Zif-n*Y+{3=?KI|IrC_gy~B>gJUlVCTRj$*F0~tv3Blz8mHr zjyiTN1x`G5GV5ZwJyjF+O``3La(#HVWh;WD>xzqtO?OY~TOIItzfEUM1@%6rAO>b$G|qc9EL9p38fi+H7aopTw`WGhd=9Yl<|sJ)o1)< zVSz{K+PpJ|M-~Mob;*&|>Xwkzk5MLl8Ifupw$E;a@t04sl@99~F0tR+rUNI}{<{BP z7fx;td|=x69>zjpH?`^;({lYLS-CA2I~`CwI_{V^XV9!hh=zPy(U)PSUaPk8kaOMm zb(>umW2*42X5{ooMLKZ&d+tj5k4QQ{azoMN_0cvy!uCbV-Z4Un3%9-cGf`O;IGPnK zqTphvR=v@BjExsSy~(?RFL&B9w=^)nPA5LO_745-$<1~DT+1}_TU*7US3GIqZG#+Z z>%}7l!=hXJk9Ga8SW+4Kuy&-wF_Q8v7oa7AT z2hmts+Hg`d>y;Frz3{ldx~4CZMKn!6KJTKTAntZRk!`iS#`InPcSe~=p?1B2kLEb^ zZqWW=XdJ%1icpq5nyO)X8RWLAdWShlJyE9JJXtA@TH3d0mee+;fB!_?vTap5cv>8+ z&X~UWMBz!|>oL_y4Q+|GV;&%Aq8`8VrdnxFrII(XQ@DjGfr3w8Yw*X#v>*1YjO=oDCn%1!qT!ay$C1)4^=QW1OR&2SR6Dt} z_<6#=ZCX9kbQ2vtZCqi};p@WF_#O?;snT14oy<{K5W9TP-%BV|KQ!7t)x|b(JN{)e z{zY95@NoQnDs2xCQ;9Sx-9mTw(LQOc{EF8Hk4Mu5-jJWYdZK=4>bq))p7=|J6AN3G zfIZ<*Rw|nNE@JL!lOt{me!_%F#ZZpDTzf-LDpZc<_N(Gk(d8GNpJJIuR@JB+e#s~8 zkFvSJ&%QO|iLPz1))`3zx=&K1>3iRtNM^-l+oke-NH*B=;O zRaGs;^Yc$XBdKy#cR%h7Y^f%YsAxH-sr0;2&8+y{l9M_yAwv@t$ze|ymx}Ja3S6w3 z(}){4rHy8$`C?r*kd&FdEyhgqlW;gN^;}>kf>egJ_7TSVzN=7(%eGYVsdxP5A0-|c zR(#%#>XSJx6Ft{JHYJ&uJX7THWi)QcQc`EynO7`2K^p#?`213$2Y78 z&2ct8CKkH4&+bK;Kr&U*1r?Moon0f7apJD(*HklcS57UAH7?e=QHIw|+tW!VafSm7 zFen%E8phi!A0>caD(mS5}uyX*_M~!Cml=Ak-X4{7dC-2ajtF`KD9YCev z$T{<^XYV@h!p#^SJ~KjxE?$~5NcP|%$P?SX%xo#Cng?~lC#Ik0h{L8+eA!2bbEikQ zUq>-8OrwFENV-Hjk*~mkSjdCD6>$iuF*jMAQ&Z9P@n1Z&x?Tn~PX3u`F1cDhH1W1c ziLB|-iE`X1P9*Oubq<-ieOi$x7ovCm^6p83vSG1UY5<9@qNn_A>gDUzP+rRR3`~V` zn|s`Tzg#jL)I-{yXrRz=9HnWkR=Eb4sh0w?*{#j2W!(ihMpcr}2^o8^7^KMKSHODi z?e0QD#K{;!MjCcbzAQ5z^;REwPyHURPlu8{n%C&2Oq(G<56|0awWw8#%ieC~XxX87US>1CX zLI#+2%~WaFyT0FcjBU%ql0@O11vSAo@klOEn#r@s}gg!NPiqRNUG< zGF>zH*jl*Ol)H0U=PbP`q*bn)CnWL@w9j63rZwH8*Bd-CuS%$uzG36i8tD3{;@imh zlkGC65nSyj)v3R8R6#=G4tLgT9PAs*xG>rXMTm@FdK85*>K`2}6Ca#=Y+y8ecdLfO z$Qj-chT{|bB*k~Az_7Y`dd_fDe?=1iz+j|)n7Zh+XwkR%hNc`|PV4Y7`+n&wOHFsK zT~W@wzjB&@)X^3n6400QiGcG>g!U2TPxDhaPIko*b9RksTTie#d3VcYzMN<*5TWhk zA3rqj((uEr$a$Yk$Z7VnJ5W8F!Fh0X&9q`9%tBCPEMoKWszj8xGHZBtbEJzB#q1-$m~^+z6fX8nKT1Ie=8K zx9?UNn$COb>1d=S-NzSR!4+xOO*>Ao#k&fE7`6fZ4`g^ZEMw1z&u-=*65H=o79hLUHAMk6Sc5z>~ z?Ee)-G$%YvcHXdFG~Ih-FSqM`m2@?^qglB9-QL=_wJURs^RFb~q(KvX9F&8 z9PYJzW+J@Y)8`%c*(bBkl7g|BC-#1>XVT?*i$r&bM2+Tp8xs`AX^xKSIF^Ou; z%WS07V+>f_oId(5m!2;1!ERQtq+4g#e{1CVkjwfe7$Y%8V zjRzSf+?wk%hA(Zt77=Yp?GwkU-cpctZ5hKl2YoA7xrSXbULI0>NyicLy$vady)WX4 zO5kPFKOb0%y4ARHMw4IG;0b{d-_4bYmG<^}Xfqs~_FKTmP~(a7HTT1ZW$zVg>sGUx zib9!P>Qwa$e@k;>LUV#GY;OgKd2~y6P2``On_#?H7fyqjg2|4nJ!92 zQBpow`%GXpk^?Mv`Y>tAq9H|K0jpfIJX_&*&2?fca{s$G2$G1qB@z_gY+2&w7tDzz zX^O4m#GTK(oIE!$I;_J#vi;|27ghj%7$M8BNX&xpYY*SgySI&%;I|(3vWUB)<~`B7 zE0xuDU#83w$Mx1>U>{?FZm&lAywL*%-tX49_^#m%a9tKzw592o2_XPrcyjJv&r{A_ zY?T$$_2b9!a)tzaf?fwQDLn<39hLByWD>@_TmA_JIqun}kh;X)FaOz`c1;%7B)V&w zyNWZ~U%KziW%jOL_2T!tJ94f)^UqPh$HtYs*A{HXe6v69!$GS@Cpi^+Ji5BP9(?dG zt}wCWhvHVkX=KFcI8Nv{ekl2x&z%+@BnGvf?cSZ_j!F~2YxTHM*2T#LBXOJ5eGAVp z^v+kE)LN;OjWesPO%)Q=V65v{TxP}RDyr@wy^C_rA7&llxAzsBD3q-Wy13m`2(+x6 zBKbF~QYX!}5xpf?Pva-5;XzX*eCg;pf>zdeUGv zX>51a7Rb9ThzDAB7ioQcS|Nb(5MXYC!nL0<`vOrCl0kv%5NmZ-yuBKo1pLD0hE-)Z z|K{SUG(Meve_^k;qF=iwmUT_A@7BwjsP$^zD9l z(CLLvQPF0?wto<_xTfI^EgH`?5r6?Z1a?Ru+rKz3`hvtA7A+r?$>G(@D=eUFuIW z9WeLjXiVg%NR*#&@Vh`af;W9pj>Wlw7jb#VD>bQ4WE@_1OFXjxN%)oX7;2S-OzSXc z>dhaPniTkB_jT_rDma5JigzCFHMaPTQ#bMsQW^N zfdEJT%^Xsvi`l~2`t#7xOYyspOTy28b^q9`s z_m(DkAS0<8HIEf}6M2?d#SAhnfvh6X&x8aK>kqZ#I_-}Gc9<)*>Zx*ehS)W-{Uhr+ zn)4&)8-q6}o(HR2JYL{`sMF+~Y@NtD#p0BY(rRnQ_Ox5hYPrTntu!<;i)4BFRwxM> z-mX@jLD()0fHxAKxJmlg@UPn-0Oly|!-@lxnCJgBhpnt;4o;o1-w%zO`=~7_aBi zGxE~X_d?G(UNiO)y-4(nQ{p37{W>|fPUf{!H~07be$)xpEBeki-x}DR1l4Eo4<%Svt0u8& zR;NLcJHg6$i~D36az3|4Q1TyM_K)ohQ)QN`Go49psfRyhe98{voLBnZ@9&~6MagYbb*Y3U*>92?v1yNWr94Ln0y{qjlsTrl1+>? zzDBciyeD?4M!WLv9||=qifqtsV4Ym$nNqJHLl}@m@GD)lN)(`7J1)Re4t|l3>o`Tu z%Dqa)_2Jbfe?e$*n)Lc|IJ0c;1$s?cZ|QXNd2&=!8MB(JU6PhSl~(mCr(wHy6ZTL- zF;YKZMoW@RyV+pt8QmpV_`btJx9#ZGmko!}OaTB+s7zs9Y*EzKA0bC-(e54;R4n_> z3NgTkDjU0afyRgddkwqcmjH_oZ?$q?peaQP3w-oh`(-*|H(nqlUqsUEX1?imi|DDG z!7<4*9%y#q{_AfqUg#9E?8OfIAui4NUFzf0E^ucvZsW!-fI9|xo&7#u+EhywzF=gz z3a3DV|9(o7(L4B`*$Eu4^LyqPJ|i9)I_Ulzf?q4Ipv&|;iI7*N`{^g=kHHfE>F@uU z6LvicCw%gR$rF4v3Kw-h`#5oz<2DL*byfSn1~5Qb*w0nkHYao@7~S+6CIwByM1hgU zKz`XOKSm$9N&1hm5cGA$i#AcuJtPJV#pwNGURumK?LQk2GSM>sXw1aGGymDRqmP#O zN25OGTK^x7@kedVKx*0@kfwI}cgh+YkiORbf7VdpHi7|TwX?O-pTy$`-MjaA`d>0_Ux}(P*?-lPcGl5_(0y-wMl=zhm4){L&sE~N7)wao?^mu>#vQAb zuA9RWTu4wANy91)X>p*OV@U{sN4tmVZ;-4~!nb0au4+omISMlVcwIY$E`GLDp&l7Y09&=A9Qd zOP2(o^Z*QI%oD)BSmx|-0c4s7F|RGun2!Jm&XYBOI>!MdbQd|Fqvx_l8f=$l7u*n6 z2c`qWDK7yj-xBf;R*{PYSfe|G!9r4zRF;@i02_bJMr1Knt}AH12Jk`?(hBS<6jDBL z0QIuWOrjGIz&^4IWTuy+5_3wsHGEu8mn{M2qlGUD@y*fK?R41zA0NTh*C$_6Qz=&Dto4gN{%o#f!Ouo6iI#Aiu zH#=6fECS5XGe; z6~-yRxz;Mgppas6gguV(ef!643KkG4t@3Ds*7tEQ^Mw9IiDdP0tL+jGsgg~6UT|d2 z^_Xl)7qGK!ke?88K9`p#INDdoN0;v}5eIk=VXy%yj@`(zrwQ}6K_ zM6|$m6AEy{7u;Vy0SIrFcgj~ozG*C|7S|K2DI0(gSh3bYc7F|jN3-5WbMzXhKwMg@ z8GH?A(QU3Z0asD@`5GztIZ&g&sx9?i10?vpo%r9P2%D8vd+e{)4MshW-JbaR-(c2D zZnG+q_#BLCEB;VHf&Fe;^-bIaP&V^p`WpEF!_bms73*KLc-^%#x%&X8cC*#FE11x2 zPAZ&i!*}lT`qQQ8)y|o5FadRnI!4 z<@xCmglU=8IEoqvSdmk}K~mSBfaDP5mZD?od<;JvirP=1Y7ZNFLM!AR{fqSG=H-*o6uK3l;MBTiKLKzc%vS?@cPSlJ^nq{5Z!efy z8EaI0)&qdvrs6Q53>hf9JPE*fBXTE@$u0SwLnp z+7wyyb%#$qa}ZEa{$32aV!N`#xx31~e@z%r_0>k}0Q4-oOevLTB*7HW<9LWL+K+s>=dSN%xlvA|k&(2XeX-c2|WQ@&|(^&jOecq=e!m*W`^kYGBWV|ZN zCG_Wt0eHB8UZ}~j$9L=x&P}wp5t`#hbHj63l1xPcGwtf{^OYu!Y77(;k)O&kE>gN5i0^jDtbK>)Gdoh#$L|TxP@e4)!#k(Y+py zx34)+h9F&rHW*c_=k=g`68lRHlH2ZPw%#U_rhM4Q<8j?`V;bsDOSRGHel|6pUlKV! z+-dO=+VPDX-DVaQg?O5#5)d}iP`JOvkfYL-t&tll%`=1P{-TvAaR+8M7^))u$LZBr zH2N(DxJl_Q17fS4TJ2g=VYLo|=8TsHnC9vG+sx-*c>zn$i;FnrYr=>e-@h+uc75tf zeO~Ncix8}(EgM@kO%B3ow9P*JGyQgOGvy?0vnY57F#x$uUW*2-KUGfnS38qq zR;UTlPv*zsu^*%>>iX7zYJa!62AhS=UYh;z^DlEd<6Ks$FCj%L1I&$}KP+rcgw^YhR>T*@rPUgXExH@0$V7~E^jzWF$q zZe0_}DU*JFM^+_>jEV*`BDxqF%TI!NPL@8wW_(x9GIgyZYJy@FM@R0)qUxW~OMuhW z``2boqoFkW-r_zgkE)1lbfv-GeKG~-sE;eI6TKYeL02#_%Am2ogwK|NyN^T40cR+> zs`(v)exHLF1-1~$+q%2{GLCBM?%-oa2iMoo$Xzcqu%z}Lf3G2Q)aOqPc79aYw+M<8 zLe{7J)gG5p44K!RYXiJ23+{{1IMy)<|-=w+fk8tztYrs%`O*$ z{0b&94mt1@i{kce8>zOG$IRCRev-yadq})YJrt6di=G7*B0w~y9~Jk^o^ZMXcq}KD zLNdHw;ZuBgyT4>X*|%sdj{%Cl55)&aD0}xl1;ro8NgqxRVQfYC*$jj7{I=qr~xUPcFb$PF1&WooqxRL_~8%7yY&g?~D~$VNZM@Z_TEjqpI5d zxgUndWIw&YC|@U53C)`KT+N|F3HC{UB%yEZ3XwF3S@R;q5P;*BxIIx`;^UDtAb8b` zI1)qfJNvL+t=4LwRMwhiK7)ses(b$=q3J%*&N> z>{?p3eBGK_oW|0Y%-^V#4ZzHSrEj z%1F0)KE%cqvB*N@)_!I4R>bFlQ?0Zw!s1PnNy2Dfr5z7d!I=byI)8*~Ce>G1#qoy( zu&Z1}vo{yzg8Fc}S7P$f^vQsN@Zo$pBZU-LE zgQh&{tiaVDPOH-e!)|ul#bz?AE1q9URv2IVo9qiVW17*;psy$UKb&X!s#-k@`OJ8r zwxXO=mPngxH=B(VyBS`9)v(q}mA*q}s3$KmkELZNPv(*s#3`yz-cWp*J{DK*w)g%- zbt|sJ=VA&I<8pqDX|HQVU-o#Cw9VP3EfJP;j)iWKPWhu|LW@OhCInyt=|$I2p@wYH zc$G_hR1h1i>`VmWC8L>0$M92NjJNe}B~O0cive|iv+s+;$*Z8wr%_)L^h{3UZlfzz1yC>$M>7|Ky$|8i;@lNo9=;C4Wa z@1==QTiZO0g6Z8>j?H9xB`{1cl+1AZ7B%wrd!UAQSO4hjn#g^lM6Fc9kXO78r;C9l zN<*TQSMS5%ueRET@$TI`y86l%tkZ#A1knfcgmJf@*mIA5KG$a~N6$4g3NNNEb}vr( zbS<6_#a!{ffyJ|DTIGp4dbJ&2F5P(#=|LT$aC^By90~P^A&$AB8Es6yG1F0#?|Q*k z^#z4BeDa}}83r``JJEalO+BMVslL;)V3ZCKNpK|&i;l_&&ic^0^sT|-A=~Aqsn-aC zespnn$>EAEq>YuOTuwJ8E_rd@<<-vQQ*#+%Fy5eobsl)yrLNjz{2NV`Abt_#pf!L) zN^iYk_sUlQK9GFl;DT`MHJ+Ec^4!{|-5CxMw(nTd^%oed+qx28GhZhirDU+mgG_VD zWBBeWr)go2Lf(Lpsqf1?wmmMW=#L^}F_3nztP4FVRCa+3v#8Btw1ewW!_M-q877w* z`_}Rs9%`qlLJzT|aT#^$PALHvw(Fjt>oVl1trNvlhy3i-*_G$5PHfv%)UHDB;LWDulkZzMK5zoeP;!4kCKKO#P@(s z%F31~eiPefajTTr>Wf*WZDYQzC3eb9Obni7VpO9!>hM^DDcHa4g&VD-uQbLw8FS>; zNh50h7Nehi-RDdjgqF+2@LUoMe@4^JW-wvgMtchJ;EKQIgKwfq_e(LJ{mr6N{Fu8k zQM$3cd=INv$H+PFMITIIRHk^&7)H$8X#vdGfHgj_d*}b5ji8&*2gyFCYzb!ky&vV^ z`*9gVjaX^HF*u>GKipYwcw&f1MP#j^z9&zv-P~oS9fj~aD*Ux9-hT&yv=r}b3w_ep zyEFM?%*K7)w2QmT^vBKJgXeJzbL4N)Xqb9sRAj-stw4U{zNZ_lJqC1lvb2kq+Wp8G zB#Ux@MN-{c!&OM2dhe!p7}a8TJjXue<$fAo)*AJ(g;9$$9)h_^grW5zqVXPL8mkwZ z1TYx(R0Hpo7-Wr|=o^?E>YNH$PHWgY?IEE=?Pzqg-T7vQ=osF|(^%&?Ycw^XT8N!d$CpC5yo8iLwY^QBtv3=eL+Cz7 zE`FiXhYPYcWx`jEq^~ZyPbD!2$>Aunr&&rc^z$bL1%;VbVI!%wE4NvZx=h_^Im|-!8WHa_*iIa^$8$Xk z`SN!BgY}2$OoR&fP`|>JLU^@igyP9Hs1SwIPRvzKDYQ5ZSQi=o^_UGG{5Ma}|9BMe zn4PYA(#ifb=&PhLo0+y={sIZh~j?7bM1xtfbs?xtR-?WJg|z;rEF z!|K50$37>S%wGC;dxNWU=%#-*wGsZeznqmao09wcpLMuHd@}#LTH*hDg4{|`BZ-Tb zf3}0&K(zj(iWnV4-vh_T{$w5~Eu#5^F}sshl$tX6`8uu}wFtoRau;MNpCKiR*7 zK}UIT2x)Qw2*+f;LTc&5YPnRx-bO%ftJUVo9iNz};^x*+Qy!&Pq1z$}*n*rAfR6p^ z$UUH^SH)AJR#rXhb9?sk2^HV?!W_UbDXgjCnmq-KLZQYiOibB8H@$nYuC8tZP=M?M z@}bdlF!DAA;FWy(n+O8IX=?Us#e4iX&3IsN@ONY+f%Veg7UxlV8CL-O_5tYdNw3_; z!sgrC%~3C9@(##+uhSTvlA3A>*jYAe0D=e(kNL&X9Gh0Nv*mVbVOSlYgmfrL%R7~d zppXD!cmy_@BD8?rq?-^3912e2%mQNSy`ta0UtLhOOI-lNXDvL*^$iVE0GFe*+TnoK zDFbjeX@CGZpFdlGkC6zHN@TEBYJtRYaAYLn#l8{XNS>{d70wO^bWZ?5MFODJ{hWc# z904S~E-(}j@LoK*Bf_bKD;uIyoBBJ4Th&e74TTUAHq^ zfNHnV0w_Y16%`|$kbp!xq%7|P3ZTmIm2!DpY)ga5j(`wcCkz0vgxCHMCII?hGms<$ zpP_3GAY%Eaf^nlneg3I0KwU7tBblW$8N6Ycd)?c8(K#QBWcIU}hb|L7#gbS#rX#?4ot zUXo`_NAk!Tlas|dL;d&f-^aK`6GOVlv2I!oI{r!#1^ce&7-|EViED&QX~JGSA$36f zkGh{6awe6pkbC0gcb&qcpNh`&dGn(CbGwk&4GV{><4aT(KMwyWxAknU?-6vLR^aYz z154QB;x(W80Du4dy+7u!2k;ySja+euM2i4Y5JQqR!{seCY6$8?4iI48YgPvWR+*|j41Ze>TLXXtY1Ei9+zUkg)@AurZ@Ak~QaAb3XHVenqZ(v+6eddA;O~O~;AOC$O%M{S^rJfrFQA3f35k-pec9x=>kM zd}>)V%wp1Eva&w$T?|LlPd*HRtj?EA-i4;DWYD9^2RG_SYx{okbG&j}P`6k7o!pT) z!NrwLbzD|P zclGXR+}#aB=SJTSRrtD2YjLkYN7Q6|2GU;vKeSDYlXkDB!VsnGoi3+|#}j8@i`5Ot zjh4`GM>^I(wvw*mw{zKD4db(Z#DzK$u&jTX@}agH#uK~pnfwr4HMoB0-DP{DQb9;Z zLAFf?a;T$GjdjG&z0lkyyF>dxzw&BdY*SOy)lh>9`HQJJ`8JC;v1q^Pqc&ax-6c&3@1Kmr}xo_9~<@v~n7|c%8cFvU+0(R-qs z**i~%S6yBZ)~dQ>msD{xQsnCWK7!Ovzwz9+xFm!byk-MUru}$1taP#Hvs2q+^-Kru zs@b8OGnjtyHZHFC5I+T3YBFeK2N|%`)mV$iO7&`xUMn#N>d=1IberdZTvdS}gx(^T zcV|@PWB<~j!{tdDevkHxEj=(zs@KoVlW`rEbEz%9m3nXt=9(&J3OQ&h2ZUBnp;Z!i zJl-#vhE08P0zt#)^OF`1E5`?O94fkX$baJAyl^V;T2^Ljv00yNdw+{S){jVF(9CJ9 zM7U^UfQ>*`Zu6vfg97(4J|R|(RzX_7yeW~%(hauy!_eY?_9YM!KvlrRWDPq0uhZ{; zdWXka1+|+Sr5*=FrFG&ihVS3SJKp<1-f} zf#%cOBWB6_>CdiRzkWf%EcrdC`RELdQTGC+_b>VRCq2N}tp{w{E;iBpS3t4n1|Fl| zOCn|T0o&jAAU*lqE)1`|LsVHN9nW zTqRuj2Yy5Ib2KhTWgU0S$FcH(V$c!S=lCch(n@CGgErUBnoPC=fvVju z3gX?eNq*524n=OJb7g`^!G|K?G+!FG6uUmj^;o}N7 zwJ35Io@bB%;^UvdQ0vaOr(0tv(-QgXwO24tAN!9Bd0cFg1HRBNs)^TeiG2wa5xacK zyGmg-fnhzey1ZP=O-Kb^yM3si9;LOV^vFanxT!)hzi@rfBO&2Ko;%Z)b-y=Uc5YkU zKD}yl#5T}(JE-48^sbfB#q8?6lj?GT^sNy2;eNvo!(7Sa%mbNNb<;jSO6d-CBS(HcjJ~Xi_!Lib| z_>M)VS!#)GWRTk{F;zEOTkH$L&ko&WqmvBcq63FQ`(O;I39rW=nGhH6)Mpxa2?MQV znK>nX1N8njN3_2zOFBO%vDp9iJdq;R8a$O;w&-x&&s(kR2=_tbT=MHjBZs_|?*g|1 z|C!giw6;q>t1VJHT#aW=czM~*AG@S!%? z5!h+5(dtpZZP%BjeKlkEDp^0Jg7}#t^%^-^>qjx`-%&coCCkP9---BtU?ToV!mry# zBkZc*b7~DF8_xf=bbcHBZ>*I6<&fXWhO=AOsqWlZPxJOS{B!qG5w5fM>bA|(QZ+qg zCf=@40Mi@sfBe6)TBvP#2e)kP|NEDe)xiGcD*t+8nYy7e%bwoahMEChI;6jv6BqQ? zPXGSa?@UBQjFjT`XVPJNeB^d~f1$Ngc>ID?v(xOH0jUac`3#XLu+6)74^ee@=k6_? zPf~&Niu1|++c!V?$Ddy?9?*51q7ZS|kZ~Q>SIW3wdiFY3Hme@8m|c4*P!9nE@zl=@ z^S^zp1_a%w$ix$1-Nn?U=4-lcq;rif_Hc_+<5SHU_zkDK1i4H&!-5kK|M@j(k-V1T zczrc{a-*X}jZ=DSE@H77WpMu|asrjgomMhTQa3kcV_-L~_C8E?}W% zl)C|~WP()_^t|$mipT|>8kt%33xd=mt6|j@;;vavm&8d7b%7_FARz*P@B7G8VKetp43dpU54nCIDai@{gtXdlcHPb`<6P+E+saB{`o?xEE1OuUus9U7IH8Pe`m z)Jf6XOdD({wViVmJ;INgJH6yH!vC{Yz6ciFdHT)lxu2Qscg35jOag4xgg14dT{HLK zg!+Ox+ydQ+Tkp@H&UqgoOTCjxoVDlZr>2WNa8GZ3#buk;K`~9#g9>OBAx2Z^?aEGH zwY48`!g)?8L@oTn(@Dsr&sIwR<2KRJVkL}V+gH8o^~;|sX(`iAp&N%%zqw3(Pq!uB z_IZT5WhIy!*o*7)c^maDvm#D4kLvR_-ey!N(>{Orr9;XZ? zU;h;zs$|~8da9Qv*h;ZVhbcnV207iYY0o|eP4XhPrG!X5}2>sDnbCY$h_Ob zwMkC!>uag8mKyL{>tP(jSr5oA*{;b?{h<%FU2GoaW4{U!vtqFcO7s5bB;o?|LM+|HbGgIyKXGwb zC0yUEVo_O#?g8=Qg|>_9r}h;U>*@rFa_9Sh5Ln}iDq-f99U{oWc`MHA-@jgMw8K@X zMbX+-T_G?xjuL|~LL^4&Q?Ceeo&Nc3Zu?#vwwC$Qs zGIrCs$61>xw`>DZ+p(L*WwY^teMd$(j6^`k$h9EFJz|?>FI%_GB)}*jrqLvcqZD&8Lr_RzZV`*B?33rNC16Nyaw{`oI0$ZEu zbDYTP?~+zcd$JeEDPrQX9vMR`v5zik?~}_A;cA z>iVg2l2E)o{WN@$TQLZ!J6iGKtxF43Df(B)ebf=ko5ngqq{6?Sd-NXkFjCpz`55j& z$Shka;jV@tYuF2Vm^zl#fkRZ@XtxW|W2l-T8?!?UH3jaRzh4O}AI8Y-gMwAulZHtK zlX~xnkbXo*4B8CWK2^2bAs~bcNl%4mb7v3kz_}RTmVDpGLBQc$lWzUgWiE!m5#YZ-K2Oy9+7+t z%YvGhCSV+bx%F(d{#yBs0XVIr36kcf$>RfDd9bmWfQk+?xJ?t3QWUxOD+BL4YG?9r ze$ZPta_3q;u0yp5QK)_2+9}?s1Y?kB4+r~~o0*qcvZN2-_NxD5F097ZQDz3I7Ui*J zwe}M-)LK%1-PQnCthvJKpqqM?4LXz*c>g7R5YJnyp7Yq!3{u(50L zlTTuCZVU375nuU(lK=LjV#W?)+&kG#HzgY$dtb9KGX z7;uu}n%~ZDzV6Ty$ybs&U+{Xf{xNFekF1clc%$Vj(&pvoTc(6;9M|6L4T@AfQItq6 zc`v37H^g-oWR8p0@U8hi1i^X+wq-&wp!+E0%f$PZ7&LJKZ*MfUab-<9@JljoiBP#g zdWb%OQXYTeO|Ov}wv@h2iifwRQaeabS_EvhsUB(FyVsB40*{e90y&{&iLZ4w_iV1r zAP^9woYL2p0`m_O!hUTFqxYgl<|?U&Z$#K*;H`PLXZv!?KCKigr6l*Q&@0*k9S0!I z|LA0P)%*GVj>KVinSsU2;r`LJO0F3uj#;~@9et0f>%Gr9MN#sXboGs{eJFw@ubT~6 z$Sc^_r>n=>M@K#`lk?se^{3gAswAa2Okanbes#%uV(i$`!Q&hP9fys$cJfBuqKcaUa5-$Gg1u_Y^X#8S?++{3g3N;T#9 z^SOJndH5kXWoy|W4s+RoZ^0yC3f!^0&B#omJiH9L=Piu6fV7$ttIKuz%1L$BfYMU$ zhgS+u?c=&vEQNZPz;r%I^|t2nf1D@mD5+Qq9QYxO&E?@*=M7*#jRS~NI%i7-G_;{k zS#t+G%S%cL)g|zU8uSw)E$AJt55Kw)P35}@nRFH zScQPE{>y=XS{KA-dr7?R3K&~GTIgF?`3)-1)rh33W!8jQ>e`gQYJuFt;Y8yuVjL|; z>zs=4NPWtkwHZTV?|azcJ4dV#|xlM6mD zv7Xh>`TRiP9s_#Ajs^ML_vp-_)_o*KnW0Yhg89$~b6q_s8}duxArq38KJ=iI)(Dy$o5wHVsDemdECYfuVFv8N}SB3QY{i0d|w47 zt7gf8g3VEC#AZdXnWq`zznK5>DTuK#7&CgkT2jE_G2L+v``*ILu6;T6ij!1{Iq z>rLJyfG-QyKggioveZ|b=7ywq7Z8!fW`l6FdESyMX)SI#re-LL`HR2&z~oo5jqRhtx9Yl@^A*D^P9 zD%g>j9*pbulTG2r{1_sscQ!f(Q1-&3*(QfVB>AlITs*Ll*XY=2`sakwnddMei`6W*B>##Q}my z1z>|zSfpKKT-F876C)r?J_4Yu!+LwLQ~@1EroxvLsNIrr*^CF#GvM zDHx_2_$nSR(N>I<(Vz2dwFGW|neC_Qc?*{zzra{j7HacSuh zH1Ig90xleg!OO5bry4a+9&mI+txmr1euAH;wkIV3=bTzokR2ES*@1Qp045~%2Trx@ z#kO;HR7;-z#C)Njo4_8<#()-wMdNfc}pS+f3Thg2))W^U3+iIiNdh`)9Uw;z7 zAbu1joN&CdChMO$rGB5id{Z-oeP8p|_psXrB4J{jA;x~tC-S}fCM2^|fFZ-g^X&&> z?d6TLyK6gWP?Rjp!O-y8S}mX`9HurGDHS)qd=e~m-m^dd;FKgA&S}u=snrKWq!vt@ z-H7<8g_BciWvTB}%O^glfxn&ye4@(?;E^-s*7i200G@j`K0bbAFlmO>__X}+a1Bax za0%3Ea{-`30+HWz8`GAkPQaR{LIq8r>>KT#MBkHpHV0rBKJ{gln4O2x;5{)QiDA}v zy<7l#DDj3S@QTW$8t&*~?NVT9&7s1|K1eTTh3~5CZ+5T;B}rdCaA8UGuR;)Iyx}r~ zvdiM*57*hJ!#s^N%kBeS4wvwD&;aVcPaSL*R;a#OyJsU32G!gm;+q8oYtJh@fi3_vam$)|k9# zC!z|wVX(e%=@zkZ?&1pUsoq!GRVP$6@hc<$vl}rrr8uV2f})lp^a)@8L^ug4<5CvP zn7bpj-CZ>0l?C^kO>^1K&XUcybUOw3fW>!fzdM)f`R`XM z5IuMNjK2K5)i_F3paRGM#Ji9?n#b<)P^lHAnSbym`N>iO*#RlW+ZNpc8EqC_1Sn$R zIXXLDpc|W4@eU&O4%^5iVEy~UAL$ZpgLpdU35EI}Vjj>j4_zE9vvrhdMSnRwspC5c z2xPGud;6$J=bWCNo=U@TcuV6;S#YN~3ynB5A>!%2%P zj&Hml_h9w9NDV z5qmiE#+kaZE5lE&vT9MR4vOEJ+Y9Nw#OzV(`7z|W&I;?MZJ0*E7JtQCHMMzY=M?1o zfb*Ua+G^mT`)=UwxNj8?_VoAncdN1$Ee7^{J%I-^oTHwq{zjrK&61IHfvk^&svS;) z(4ld1->O3!v|FV?DjeaOdycbxC+&0q)4fE@F5mfV_tN(ld)y@1N_v*zv!G=&5ws4| z9IXLqXnyUP_R|X2T{Kw86OGphN#6tmN;m4Be&8oEKw}+780k2<%Z}p>3!;Ng1Gblm zeklJd+m1T5-ggWDwA4$@-N+FU|GbL~5`Vy{VT! z{f!#le)ttAY8nzuqWxub73v4#tc>Ll2lqXF-`DM9%7y8rEt>93x|(&a&-u;`u@(Feg0Miy3_w?Yow+Zk zwL5f24Vx-U^2*Jx6PxUhlZwraiGc-xczp}GBPq!1Of~NSdMjoF(VncKtCJ(_HrCd5N4j9 zIrf!RRnS}@FcbH&&bi^L3`Xq-7#@4qPcE>(IygS~`|(fZ0`yu2z|76j9_MZq0pIdK zOC=s6z#&zO45oc0^3;#l3cDC$lEA$vw+O=zrk3!zEaI&2{Sff^E~3ph2yi<_M1)`Ea$P_`vO1?~X7c)MQpP5*I@ zlN6x!R@i3%Qm!9*?Kiz{{3H*{WqM|0WhuGY8#>HnSb@g~Wd^KP{ivh*i1v3HwbV>v zBbw(9%wU7w0rSMl%2o(CZuhxgMY!3=;Ip!_M*LpBeED%OE)ICwvZRXBR##WUTs}ge zjGT=Vm2C707xoZrU8$`m0Po0T00!fhD$XbiHhYTWUZ8Y?>0j(YlkM`$uGoE+KSiOS z{K z_QSU_25sh8bX#6sp!0EwivXo`$O8fa#Zr*Xyy~e_fB2`EVvEy2{oO{^`6oUnI;Ry6lt(0H2i|J^1wW!*fzOFit4A4UD9KHD+<36#ChFji*sYQjZE| z>gvusHTw)1*}rjFo;sJ!Y3S$@Z0gz6g!Pqj={%_l{0%>4WY}x;l)mU+2KVdt{i% zw~gbTi(LQgs2~TzgSR5RclZ{XBE7O`QO?~(<8>aR$yIhW!6mvX<)GU1W#!iym z%S7*NPwJ&TkO(p0J+WJNOQ)iPr))HzH5B)-AZozPTBjTl{~E zlXP~m5?Hy9JA@CN)uU@tgim50?suwVchHBzwo-JBB#mXUtCK(K1REGT_x&~-*D*IU z+u=b9E9>s=uBIs|DUFa!`HUdrPNwHivPY;JPr*mrg9>7`+Lbj2xsE@iSL~n4?uQa9 z)AYw#AM)4f_SVAb+c(q>EC|tg59zW;IGTodfwZTbf&xKP0O9M=08HDZOq+FS98LcBj#^#{q4*;bqt7md~u5xUby041Hf@(NJREnU9kE?jZ|OhRKgq5qebm= zg{R);^jJnO26gaGN*5t1 zFD)gJU*!Z>#u>iZSL3vsc}K`yCLh)Sp5YP1I733hF3|lWYr0Oy{oozE4BydXUga{c z%U@>xU6XC!k9k%v*L#NX^DJlHy}7#}T8G4Op?+SgR$;)Mj>q$pP?=kMu*gR`;wkyi zYfp2b@Wwocit(jgPbT~pU#~kU`zJ*YtP@cw92HokwC;4(k$n=LL#4{c1PT1kop~cxkcx702aBFSaj9A2+p zFnSgxQ>K8%f-)LB?sV(P;aMn|38bK~+KRsy?lf04P{hr3B6@wd2j>4k;e?dKnc7)~27 z3mn8R=8Iw7+&;gKj{fx~F76La80AV@Mux&6LUxWEe(S=1W|UN@r>AG%C>N@=5eBvFC}DU14UM`?^O)j98#K zdNl0Qyypq=6kf=;9fYgOY=Z|U5^ZS`n?HDBot>S#sAUebGc(Jl%uP%l_$NR~Nl7`R zQ>RZ~EZMtO1<<$p8DG8}{c3voZ1U#L$d=Yt`AFqIQjE8+Wr5Z8EOP>Yyu5}^`Sor3 z;OESps@fq`PUP`I@|G;%`4($1V5pv$k`hswTT;?%V;?Si#?CI0s=fcoS(LQj32O+1 z9oiGf@UdHGDTO=yoW24p_ANt3qeKv-Y|(%I{Q1Y+qS>f`xP$~sQ(N6Y&Df2}FJekz3F!hqKfjUv!Ui7z zXb@HN_3N=Y9ZTrVn>SzliUl*W(XeYz3KFD@;03nM&>hRL0XkwVb!S4DpxH&@k5*GN zvl}${^N7U60}A^3BVRw1ntp%&S@h2DIfr)W26lE2?+o;^y1SvFVWmP_Xav{rxyzb& zrYbJ^d9$a4^-gbha-IwN`-IMC^@+PVu(^95IB9ujQ@eubkl!Qi$O_-LX@GORYkE!Q zs)fZa3+f%A0|yRxbq&74_WAD;J#nz+D1(UH@_EC zD_&}g?-b*!8f6U0Gzs1s+a6W3v4_LGONM}Y0SYs6df#`c=ab(=X(3{FyuG9BP>Q0W zqN9wJPJD534`)=wkg%Ww>7AsJhA=~Cuxyn!R^927WBB>jXMUKA*@L7=o;N1=AveCF;Utl@j*cG8eKLJT75s{Iq)Ck>4 zD@E3UjMG|EXm?;-T-?S;Q5&6n%SEmsQSMh#yTKWv*d^%ZN311%p4_$B*VngL0IhGo zlPvpurekH@x~=hlMff>!|9)Km*O9*?e8Q_g%q0n8g1xC2g{a4x^{=oG!xYX|Z=E}P zVb_K2VIPHs_FJ^Aug}iP)&85+UEY8OgNu>47xcNZG9z#}al{TUd(2s~H!3PuZEjdMfT>=l<&04x5> z){nY%k3*XK@*?bu~W)aDUU*;DG^$4Bvfj>*tNBM>8(}?s`xrL?glWZHX!G_hbN0t%XXeFZ z^xl^5AiiH3t+DSSAHN|6E+-tfzQAl5tZm*1bpGoS`S-l_@c>BwR>sD5!`}VxVw~Ua zSyb(Wg}vRiN5L$759Zv9%Q1VS!pk@O=It<-MkGzxItG5zCLg5)JJ%M9eM6=JpUZ06QTjZ~C6IizRdRr@|l*rjb%=YT8myI4+P!2j!uNz<>Jj-P!JRL&iJ2 zqsg&c@na2)!D}JMc>0tsGQeV=uv)CrhK;df7%l`md`T_Y_rZh3xBKOh+!K;XNAgs7 zHwbgT_v>e!C}3YIW`PX&-dQrx6M0G$Tp6RgwlNgb<7sCjN20~&lWGUij>b0`l)%ti zA!=rotYUAnK`?8{k*6aFE@;2>p+6ENm5)v8l2?|2hwr!fGi~A_XMb~|%)YPNFn4H0 z?p#1>Zwm=m4RY)nik}~GYjZpF0oy6C;zrY)`OuD8bNJ3~^571~ssPitDTB(81=YIH zARy?oEpHF?5fPA#0bykZN+?!Ff9bnWckug zmUHh{t1fWoJ}Jn(m!ii3saNeU*vwiNK}!peCOsOj3Xw( zfA;EN{2LH}yTD{t2tV)j5z{U+&LM z)(!OfD)@jr5WG{RCDf;}HmY_V>S5(AI39quEwo`Lwz`V~#+-?R`l-I&W7Z9jfU7bH zGWUA;!z)Al+C+^-(;Jwj~_` z*55BE+rj9iTy2K;o`?s?{SV=~BRY3mczNJq_o;sV`&2+1>6XQTCQ7s*E)7!1)hf8@ zVei#qcT<;O{>psMw+>BS(3cVuCw_)WV(fm&cjvKK(Ko7EpYUS*+AN_DT955OuA}y9 z;Jd;%^W*yvjU|~Hyfs*Ge(5((;v)AzT2agC1OXTej!kxv`jKf-NfX?~7<^HSoi45- z;z@yAROr)`|+b z$|`~WDb00=Cr`(%`;OU3s1b|&{IQV~k~AD!6~NZyg!U~jND-;f2<=g4(fSAHVF}b} zdO*9}soJ6PVpBUyuf@1~4Sh0Y^ICQ2Qom3DeivU2JM7sSpN9YW;;CatwMfeTqMx_I z9;XnBb~HnZM)n!GpL&)0WE^Gux^sxDI1SskSj|(XzQ53T__>bjIB=XhIzE2w z+H>sCyQOwf)-1SpRtDYe6D9w*X+jI*d~XVnuv&3a-c9-QO8w}UYFBm$b4!u%_GO`8 zEd^9!%??jjELyp)CO0cfWGPTuKls6dczq~8C^M(uX|EdxGC3ShKkG0`usARPk}{iG`~7s; z_k6VYv+6uPomq81z~s6N3aHQjDCA_Mq?ps%U5WEaeJ{-iO%WAZwFgG*jI*$VTJ6Ens3=CkVZOaA(_;}V!CtL)-T^cA zRxX)izKm9kh28D`^eg!sr_8_uH65-_@zMU-s-r9@a7<+&-ALOz``2uoYeGw4x`eVz zP~Qtik<6811T=gKv!SS^6V7%Q>QFIn#=n$)^$E+UC%mYFN@4vqsKB`!+g+-t@cQ_z zDMf)Urp{z8rkcufXy|s z5k(nbc>R67R|HFt2NqC>NMta^@p&M*isgJ{ikIZADjrkmnA%T?G2=Vr4iXCnz1Lm` zq}boR0q-riNxagLB2dv;`|S)*I?XVLlq=%4M{BFyf>Evun*T^72|UEh>Ar zq!TtvS&lSVdYs>8`-2?3ZiXA5>fg}mXSya&inVf_H@F06y{$vC?P3W5l?R7jFv6$c zp5O0ohpzdL3;c>@9oub_J!LcC2(F@?-Ke4%$8*||ggl;5nC&?z7yMlH$K1RBXv-kO z{RHxBqkK{ZMDtdm+O3XoWE|$)D^D|WgPyj|EZ!3)P9rX*EWcsaR=r`-Qh3Dvm8g*C z$W)ep?e`Nk@jU3cfVR&;KrgyUZ1@~$dW0W1JJcXP={_r;LX7783F~lN6EdZEe+qYq z;y2eGA5vK)52h!qmdTD=44r8qV@}KZ!4%OiI*wP!NqW>SP?G5){Rmq*`GtT@6bnkR z*lQ-DOnPuT>s)H$zSX6LfkdYkvOoRH#G_nD$p22wuUb!7BpT%y-gyGkjP4A8v!E-w z^Fb8vHpCU?Jl)PQcC=_7d!}?&=)^*nV&a&$5BB^U9{x29O*S|~;M(HqI>>KV6_k1F zCV&2bj@H=3z=%vvQei>$D|+LQIE6DhyP5uCXlrF-<^BLcQyiW+KWU!al1RTMNG7c{ z2m%)DjbZj@(djT{ejsyks-(xWt2c&^)-!5$nKFJFk5@&9RcH85tprV*1do1}k+Bjq zoZSBVb=AdwA&IAFfJZp!Ganvs!ONDSSBgw)Uy0Q0#WwI75D3K2Io_|ntus3aPbtH7 zbmenS^E7uj0@k+rKJOwdIjty54vHTk1)K~C>5uG`?8oX8GA`k-HZ2VyD1HlN6Dou| zvi&hDmqiH=_`?`+5-Mhu!trv-KtC#_-k4^KRU$8>&L_}_3uQEonXp-iV*3M|4%q}O z)6+A|r6m;?4{-}zPIgGO2H5?2-QOs(9irS=rG{XBRlpCc5H}s~pkwblJZ$|@f$Yc! zpQv>HnAKGYdM@5K*5SwC!Dly@X~Q7ttgCIqc^V^C4vY3R6UdO!ferf`D2(qBS}8rm z5jGC7Zjy^{Z7DE8O~U@xE+@BB_QQXn&IeI51 zT2h^p>gSw}st32N5}7mp+i>-tJ%*G{S8>Pz#Y;(giO)$p8}dR$Yuz;+Ar+6GE|T`n zeDgu(TBjGfhD2F?_cV(t5@Xato{ucp{EqZJ_(Alpa;E_Dq?#fYrfcKb zx-eynfaq-S0*q7pHY&z^i4`2g3P)8O=_efIK69-IJ|W2DRq<1JKgD|*4|U}Mh$ogV zS}~%^`=gIGS-)b0AVG^LrS2%9vREuh#)BKEx1O($HX5l}7`)i@CEAIjD9cEBRJss+ zS^EB@5k8(Lk~d+zur9kVxdYXX8u&qWZKjHF-xwR3)Tgu7s zYPYl3m0Ha3p4M5fh&>}#uIx<8Q0~`!#XE}XkSrkQC0TYaW{hyE&g6Y7nIbcA#*l7F#-rwLtAiBDYcj-QJPKLqV?;>>x3u2#Q~7waS(-9vI) zD}Zz`vbfK!KL^sB)_c6aE7s^m(U8#2E6Nm4wIL8OWe&Q348Z~fUXcllRZL3kY1cO2 zbaEFTPqVsZi3wQC5TrR(u&lP5YnmUO4bfFvvn0+M(RrsrVEt~3vc*s*tMnL*;2W91 zvcVA5h~AB6f;R)W7BCuE3bY{-=62-GEXrHT>QZ0m@DH-*AD3R8W-fTv*+TZv$Q8je zel(`T@5IFJK_O&v7ZmOJFyeqpPETMK6ImL>7EdUU;x>rSf|$((LT0Bw-d& zB{(mL-0CpKHRF%lwiwSP_$eyPIvGO<2h2D{4V`p)5#3XSFB_vOR>%x{Iht2-eMhC8 zB->a;_d+qx50x#UWbaQ`jIXI_2R=LalFQoVUZd2^ywu+mJu6$H~=;_q4W zi=+(Seut3>SovjEmK1s+g`#=vgdHVIQYk>^C(>1y&em#0f5yy0BO%Yq3Y8jSMxU7p zw6STwM(WV881MB%jZiu^Ia+DO42lRdrhKYCBS5tIMY5;IsIQQF;|UW>oj*QXutdR>4Dpc0%@^ z;2(a$HuyO1rQBrN0?j(~W{^6x?)_tqTn;Ji8=xk_{!;*(^zVnQe;o+|*slLZ2kF!M zlF3Wft9xh$vsMb{d^N!ZW?m$BbG1`ttc=}juvD6nN)2ul^5z@x(Rim|*b+{;MwUf< zGaAK37*h#+Zsq7G*mE(1!5gjMvf@X{gR~MdmYU9@2nM>jevrp3zXDrI7cempmu6X# zfTXh0sk$64C;|NS&s#m=&wof9{maIX&6V|nxPQL=>88$Km-eq)rs`fLeH!WT3@m8M zdw(@${?32h_y7MppecJ`_col}A3Bzm-lpmsb*lcG!Q>xJ*7S9sPq}*SJiC9_uGd#O zTUw$#oC8uGA!XQBD)WK^%ORWp(|3JMxTaQg@qdAbTy1Hf1!@ic;tfsz$BTB{0Q-$! zCWeMibim9>EJ+S`T7V%j(tey6uBmQkj@`51uEA=v8+uoH6;zuWv(y9>^Z^I)CwAuM zv6Pfq+?=wE`!?ozN%zqsuri7PIjB;EL}Hv*;`14WkXSm|9I6WB!`f{K_ibA9$oEUC zak=xA|NW~>`afO5-#5$gaj}USpgZ0l5I>P(s7RQ2_jTR6-KBrEdco?y9Q1Fz@p}dK zgSgLdXOkFD$U)m@yzbFcp{-lD9vnNTwe#B}=Pg@f9{%~f*>I!k#Te6w-Ky&k%T-l< ze7IrTOQj|5OUWf}?ZoM6&C8~#nPmth-up~+aBPe4&!0bgtpLE0Z)WalC%1FU#to0o z{I7q0g*T|+d9fow6A=Rd09y#KU#^r?loxXpMdgz`_!Rb7sH|_ruy3pK08m;egh4zS z-YwHRgu7T)GBtw)ddmYq3F-=c^0oQ2e_qv6r3aAlz6@Y>2xgC^xhs~pLbyEF{-ZI; zyVkB*=zzwL!X2iC*KYt~ICG7H3+xsS!Y`H%#kzv?n*YXL$&8$*)^fcvA^%e#5x(%N z{z=L*>eyIL+31`J`9(B*Fd7})kt^Q5}0#-$MNKmz> z)_ha)Q9jBp_?yiGjf}6D6E*biaUEJKpGAfjMkT;8+FWp%g*XgH@ki0xrbZ2tgXOR~ zfRrqhkuk=rE8ygAVldwQ(IelBEP-$>zAy?V(8}nM+9GD{6|&)$ZIxgokUT{i1+D$D z=Cjrm365=-K~Baj)N+?vsiEX31I`x<2##5E&4f3f+^bL;9(dRTle-P#2gVgjM|mpqPA zUiGy~DuV>~4mZ5UF)E|mo#h1y)+ja{>_Q-r`iLlWZ7YudDIGX$5w}MnBbU?#@CU{d zH1Nwjt;~@h$X2Iwp299Mln%H4v1|jBHk9W~fgCj@g(-gA_Ud?qk6R@UNWfb>kLqMd zpMC&xD+`U{@U~K~ksIT{>44gvikwayF4ZHpi3O6;flT&96yGJCDaK#nW^uT2< z6zREHqKx2e2t~WXfLd_3uc9}lgF9D=3p)B021%v^PZVbOtS+@0C@6kT@;Vl;D*GGj zIeWfXwto`zsco!3Om)5`Udh;>KX}f6lT7f;hiiO=)S!>*d`qIo{$HVS;;$dEK4=c# zKcATcuv7|23z-_&!RPsEgC>pFJo(}EQSygFa!aWEMj&2sk3s%(9z!=rN6hx*eIDNc zW11v5&R{_)KOMPcEnF5>Yqa^hXG>btj|U+~RWO1-bDw+v6vD1hB}B^N57*YS2BHq9 zgGBy5*4UFC($8rk402e#EYu5|Vt*7fV9TK(KFeh-NWKF-ehbWchioAP9Hp}_KFDOyrO z(`LoE&AK-f1HQA!IV*F`km1v3hd4~Y=bCDI4)%O)Kf%Z=xb~88ny;{Qu?fK8=enXA z=RI*&p&;2wGLZe$*C8PmBujcGn8m~4pMq|xoEvkA2lY5sapJqzR){CP_@=I9Hn@Z0 z=Gc6Tc^K+)wtv{zTFUo_C-Nt*r_|5jG)&@g0|hQdKJa55y(qqb=gc6c_QWY#Uh%Zm z8+X|^ZCGM;%QFYzOE1`4XpQOV+nj|B>Y?~VwGS=pfZWn;sF#Wh97U!FT%UHFArq(z zx--EK5vrQ&IN9#Ly`p-1{8(vlS=~AUkSN)5JP?V6~FVgaNn zpp>AffHdiyC?>#o00V?e+^F>Ecqw zfB~E}U}j56=6MU+meno-=GU2T%Cz@ble}V_QHgLhu;Z&TOQsyLk|@v*w+IW-%wHT@ z#!&d4`$|df@x0KGLh&laSOKP8`w^I(XyPB{Zt5S-pTN(hwLgb&=%7b&JJrA;W=Z1Vr0baUT9wU==MEdm zU&FmU_+05Lk31-!`T096Jm@tS1!Bt~(Z>Dk4e{1Q&iJxqs7Db@_fbn0#sjLlmbR1T zo&-iF_C~9(i5jS23#?6e%%&Dv{Vl_+TJl@OddhPa*mQszRC}BVo5B2bzx;pPm;P;+ zqPgOmwjf2HhjQD!m%v`$rc#3#>ih-?gm(w zgnTmUhkyiggHtPZ?%0TGwJ)D|&sJ|lg1npl`q9ia0Xv}+=bvJ5_fA9)x09b9P8NGoVP`|OM0 z{DqCei%m*`KZ<;p5qM!48c`@Mx?|Z zHEZ$I%=-^Fjw^I%jva)p)o-*yN&om*;GkxZqefZh!lNj$pM`}1klKxcLQ9WU+v%p5 z&iY6_I$xfq(?6+Zo;W8XM8uVjfC%V-7uHLizc2=}zlR24N#_D$kvpA%{(QNZ<=Roc zv;C5y*tgXWm8?5DYLAhd5NwslMg6+9%+SyLsc+}c>&DBPFGBD6+U8oa-}af?Ze?;g^#$pE zwu6a@SM@71k}5CtJ$GtXJ$uAjlZT;;pR6jDJ6R?7i|Kkw8}@r-XdgOt+(8R!kG%+Y z7%M*x^^jPOB)@~;*COj6J;$EKmS57kg1R`!`wnfYU%Quy(Z(w8y>%S5@`l~NeAw!7 zVT61yVEUn>z;70eaTAGzbs}*e(gS8Qc&uJEFxy7(fX=yJ@Rl7~vf``kP8MaqWtIi8 z6CknCII?poIMs%goYDtxeY)cn4e`C$a~d;32FqChr%X$hMKS-7VVG`1+ZkI(}-_WK#UPJ*l{Sb5PJX z@i6k-2E{5@2XVM}hnuW(OI3(fb!DDPa3g*<=Vk z2-qU=@vY+IgZw8Gn)y{<=|YaUQ5S=*cqbmubu2$QEafkA)zNl}pn<=0C7lw#^y4J& zfYXY_Iv6M1L=!*EwrN~KW1 zU3_}NeilL7kYy5ETq5QnY_?K)k}mV%2p1=5lRV4tY-A?R7j@(hd)JB*M%1RT4=S7nPw)Hr7Nh>_#r1#a z1Xw6VrCz#32(h!T5!C*7&p0Lc+i}N4+5k7UsRoaOeY;{S+ggEJ-mg@$_9~fP@$@Fc|2euwzJ=||8iqc8g?=9i_Vu&7!ePatcSYe886}# zL8L+N!7FDXcQ!Y}>)t1zAy}8H3+@U}$CYLQ3)}ZVk+v0x(zv!1yQcWh+JRIbP8b#y z#Dy9q{G%CQ7vsCRWIusFGuUh*EX6*kzJAmtTLBDlsF7eWyDg!1k{?Es1LsvzJN;a; z@_LNo>=#)d?^3-MmIX~Mrph((c~vY{Ho*J7D-wtVA342_ib<8^uef%WEJd>K5!Fhj z*zdRdW;u~2h!Rf`m>gk79&8giQVX4#AW4tqrOOMvd?W=aVVOSuT_W#Z&IGQN5@G);&3sd4O+6tV z6N$#rU-3iSK3bH}FDCgt1QSG-e7NOTZjHenB=KsR@v-9EAw25U)z6uFh}0aon7-G4LDMgY5# zC|1{3VM!GDA*$czdo1|{(WFQK<9W{5Vi-ai8LZIv{WzjY5SrWbrBc9ScT)T1J!sB~ z-AU6YgSWoQF%yGN@Vwk6(#&9%JsfNf{qZ7=w=(S;ketTm)cM+E)LmS18O6kTRgnIt z3Vmr)!}@oFSa<0D8txijVC>NQM{$;$W@NsM91BjxK4@N$C8J(Qc&K}l1>dkz&h-_# zMR!_eR<|WX5HK6y>X+>@1C5ImKZ~sfvybxkMOlx%12zXC?Q2JMM6ZvdF`c|kqm*$(Y-vVBc9WNyHa%u(1g_Vf9Dn$CQ5nLGlbza ztY{(7oOhvy+2hZE^WJ(ip?ee&LAV*|(!fIM%b9gd-zr!Ln# z%7Ec=$GIjgEq!14Lq1Y+-oQGqPh+#v_>^G=Jt;!7l|_z;e{fC6w(wX(UE$DDJA1# zS+Y{G?4ir9$pr%RxbmR`a^z@q}ib#y)PMHUT5%9c9+d^P`9HE^5q#VaeB5@srT|U4}@o(V1=N9fI z*c3pI)~~Ye25Lpax*K-iOGi_w4la4AH#N3wK%!y{(*A{7T;r^|-hj{&i7E|d`~AS8 zV0A_gZ!=vqf`~-8Ae4{PW^9hxariXp($9jWUI+xCC2IgWSfE+>dDVkqv z0Uc^p1hePu`@6l&xl=*$6vEBEhL(l{<=;9nu{qR|1!*UXf%tX&r|L7nU;y!R#dF^W zbO)YgfW()qe;`=pT>k=K^*=oYAXrJ-p*K}-1_3+EQ|LM0Z_f<6d!Jc8hp_vnXR3Y3;B+SC1+w*Q7Xc=u zSEnVchXcw`-TDTwB(0iijco$0OFItL=%qbV0>Fq{O%QQsb6YktUs_(HWFQhL+HDjB zln&dZ%eXdxB`|oGmim$gtuX2wa6t0h_CP1$4Nw`T*^b4M5!@ z1|G;MDS*H=^W7!f6|@5b$waFJKqkD^G|@oPctCg(N@!9AM2hW^pF1Fw(6GUsZvyzT zdkJYBTI+~?-pM)d#j>^oQq;cL=caQQ!uJ8vW`giHJ#F*;%uQ&&aH9x~jRy|nQu3Oi zs{}l51vOI%WN5w6&6InFSyhs5I|jal$yMi)(!%}mkbxmDF;7I#Mz+@m9s>1Mo<0Qp zkIeqwX|<{@)hS+yBgEFI3tuNaSfP8-CqM+jlJxkkOr+NfaL&*}sTgaQF!hu%-)L7H zuPzUL@2i^dyJ>RpIZ)? zskb`ObM@NmSa7KCM!u_XmWcVDyT8r)t#D`}la|F@5c8Y&u{SVBGEwL}hq`QxHu%2( zE7S``$8qb&&2aU93$nHx0EDPJ2cu^lpD0ZpJX;Yu!cCZkSP42_#~F>cMp@ zGI|7*(d|-|w7c&5z^pjBlSpMO%(67hG^O`UeBm?;(;7tOp?8ioM8SxIBEN%l1r&Ldz;EDXr z6XU*JVI6p(zV^ZdNq!^urZ!#=4e#$XJw4bsMQy!?zP62;G(QKGWU`@O~%eTac-YNzD7rQ#S_^!p=) zwO_|_dncEubK=4EWm@bNcZNuS%>c8a0ePS5A?h=G`^v}Qmu-GA^cv9X&(Kk$@bU;sB;cq zNeRI;)VOk`_A3`}krS*i-kPgEt$Ws$apk#XgprM_xYM0aVP4JP<<&9JsL+9UJDr1 zBBQm{_z8!p%tZ&gfmK%8)r#-&i0wPL%Ca4kpz*dlUUl$U?8a-nosY_PDPO+m^6K(v zozTFXZ{+uqw7@iz`|Z*xxyQA@{eMXMQQ;1Tcly0eiMNJT5isGWbx|!QOz$C(pZ+w3 z_2l(9dH-JOG!keRwi_e3>@V>nu8)lj%z$9i{bcboG!U6`Ziko@Y&2MCtmGOfo zo?1C)MFVyn&JhD+voB9PWb3dja7iGx7?FZeNtrg-&J}A%=g4AD zh2|0G17nDw@jPJb%YD53K)?Feyu5?pj)E283ZDE=og(u2m1(blL5T_yZN{}tgPZ?- zvHy?%(`jDgf^Oawbie!`-}-waAc*j9N~r&edH(<4d$02eM5%8Vs+o0v9f2_)&p)>7 zN}B)lg8$+juwA$EDYjm?aCuOFUAm0i+PE%Xv$@8T zAbwNvi{}j-xC#DTVpI2EHQyn}0_r zXuXHX>DgRxi&<#LJYA$!08H8^sll9FnpgNC%yw*2LX)^ui!&hJ)MB@wfXry3vL)#| zpZiP|3A%1z-Ur3tjX*J++l$hlyG!2jrY8xATr}UcNF=-Q@2BG212Gp8_SDa0Ar_e0 zsQ=^4b))~qll7mT2F_gaznj`DLF~a8fRxTZ^aD$c!zw>#d-#2G+NWPH#e|1shVZf9 z$ub|E@3~9-%0cTT&8nE9V1z@e8BO>@%Wmz+k>rw+4X*=ZM_3=Qv~jAhD^#1v7k4SJ zh5c1@^Z`5YeqfNH0)wS>2Z41u3CNlCj}8yrkqIDD`ESg|G|1hM0&)ZiFW%V$@QB-J z)+%6(Ch!xR@~H*Y`47A>fW}J zl!FDe-Yf#mQ@#MoF;|3UNvm7!5^NCQi(sQ%olbrYtT}G^m|XO z0oLogZ$-}_doQpKVE6u;*qlExj|%`IoVF5BBMnpPo)gSOu@G_KO1>ckiklY(BM?G$ zb@hy!DW(;ahuig%lusZ4e)wJs>_q-bI(+OD4uHl-M@%}`?<6W!(gQe^2!(`ZoLEPp zS|UnHcn*NndQCbdC8bI-hOjL5_yn}x?m(2T&lZUBp7$Ib0rv1k3R`3g7$_8q>ifpm zT2)QaAglTM_1B}*VAvomf>F%)Blg7%5cZMSxDAPE0zo$i4^M=2=wr48Tpl1NKfCP= zY;4dHZ?sDc_EIUBfakvhK-{e||3=U#z(FeXWR-pwAul&0d5VV5kNcmq9Js;(CkFy4tk}O4t+(o^1R& zd#49I!m;TX>J2nLr#f(OTv~^>%iO1annwHBZXIXL+}vgd9SvML6BY&w2WbPOL1ao}y!N#OOyD{RG>)X@F;x&o>aK7>+VhmQ;5 zZ@$r%!T@(Ca5}nEsJ0Va^*jlCcp6OcH`%3+*yVTd!K~HC@87>qdg)Lv4xxH`dbUvC z1lnEOzACQ?+gMpCeFgF?s7}POKhv-;e{~B_-)(a=s0ANxJR`&jwNU5cM}Zcn{d}kDeCzxG#2) zk4#VB=_A(H)63*fb^~b+r35e}v;_P5`|H=QQ+uQy3vD?sYF(ZC?zu(EPdmumG^;+X z773v{M1!P=XJRzdg8c;XxIk-=6_79D8$6&;kJ)W^nq{b^jA%g($0c-pmd8SBA5K3p zt{xzMfR35`AU!=ho6JWDP;p-Y`47|dF2FdU9JC}7`0}Ghta4Mb9u_6?aO4~glsX_L zqTmfP)jm9r_ssDY`=M&4G-P{;xJ+?hOlsVPF}8-q=>@yAMFnA5ga%Lqh8nm{R91Z^ zPl&|_>hYb^S>L}u6e2jS?g^6g5;?x!ykE4)z(QM%mnb!5-;j42*lkQZz4-b9k^+v37a}l+gZ^~B!HP7 zt^`IA-Uc&vo@bvx?$eEKmRN5wk`c1flu~x;9v2VbPa$5U7o1WVojP-*As$5(TUS0> z%cVK2Ccb1||8oExtWAv@Py?SgufAk4fencrMqaD?jTB$|nb+Tdr~0U`g38Kd)uiEt zsx&2`*IgbFk4Xm?lEUhyH`9sZ;@uuowTsI;ZaubhgCJa7Kq&vg5*)>hsDF5P2B}g` zl@!}YV6m!`9}Q$WpEbJ1Hi|Cs{G8aVT2I?YNT_8&=jrk7r_ubAnQ8S<{6y7;ltiDG zCwDsbp7qnzu&Oq(No)*%nb$W_7FG8K0v-K;gz5YAd@s|bEyHdPPwuOa zBeIo`^F9g^788z`e}k3KWce<^#CN}+Nt_Uz_BTGn9NJAfyO+@!VP|*e&_;h`$`dw}oS?j)+DPq)Xz&x$r{f=|oPkm>nKXco8E4r#VRdL$wfhUySshVW* zsiT63@0tM+1*UuwUlxh|(d{!1>f~oW#G5b4rPUJnAFQ14nRHB6T1=n3y0BLO^&*B} ztl(~f`5iWSmozg{=r2ih`1w1;g|2=f!2Qry{ypsVzY?8y?Ghu{a@Z~3eg4Ph^>4TK zCw3|R-%gkTemJ*}7(Kq{M$J6aK|Je~CaqW28XW4D#vr6LTfc z<^!UxJf(a_c{h;d%avE&FYkTwquiR+p(JI0*g>gM+4ihVp}`p4C?C$zVPrz>g?53T z3l|*}Hx6t$4oIEo?OxnLD>_;#px#G>dw`5N^Hm!;S4d`1FErvu|Z z{j#tHnmwLG5cKA4v;_D-^yC1=k)D}4gC^%RfECglhy;fK(SznnkL6IN+@8lQG6qN~ z<)FAjjYGgFYIk(mnH9SuYX7DJMB1E64swCCH@Zsmp?g$DaNLoo8bEPA{T*(bPghv9 z{IFm6wFWL0m9M?4onW=>>FFZr$&5QcLBSo)XntFc@$HT7261@dl79k}%eJ*qgAjv!)02CN)ovN1-0Kc)jHvl&B zKTbHYV8{;}Ih2|dU?+I@?-TAlflSu9Y(A4l;Erd8(Yyep6?H&YP8fya@mO?X_8h1I zhrNJtpOGs8Kr^NmPU8ZY#iA2Xa^2sl2C+i;?W^JAcEFIYXMlA4WTw)J4tOZ?ivwJP zF;Ak=^GGp!uU`Z;dLKRZ12q4lgvpIT-w$vCP6V@>2LJO0E)sxh7xg-}UT^w30^UrT zvqfASV2lY+nE}4gC+wtyN2yeBlJoL!P<{Nd>Qa@+q=% z1ysSx!d3{-ni(p_A4-FHaiFgaz7k)ikjz=UfClG6LInRO@$KcNBwrPB zRa2-<-!1Oevs$dPREL*t7AQ!Y1pjRY#Oa^V;YQ#aX*S*t1iY7B z0=Cvf!v&?Zvj{JxiwS1ET^N@;-jx+~KS3GacWn5Hpe8k<3|9T<5@rUL(qlVk=7KS( zFEPU7DKh})quqmng`2_njrDV@xk2GZLK^E}0>=MBx<7Mc<_iggsN@z>8jjHCJwSPLx(8G9eM39<(=-byjp zQ*HHQ*FKAp(M5@3I8$U3V+u=o2}4~9zile0$&JJ8W@?U814~uK zL`iS_bEo=LY1q)~k{%i)<> z{l-9hI2$*re^@Xh`|{uRBWC`JU% zO{_^PBeYwS&7bpNZlBK-@rfRoRy8(&RdWcCL6zV$O%aaiQl?W^)BE5dGC-G|2QUPwRU5cxxuR=Y&U4gH_D zyNlRC9Ym++Ra_(YwzySb&4Alp{H-R`57-AO-7W0_Jtb^GD~6@1_pfcho(d;;45Vh@ zPC=1fAMc|tyiAic;|6b;o<2ufO#CI|o{HPB*$@^&ucN#xf0q$~!Nd!x$aJxn#duxh z{?GNaO6N>$(a}Nwr=T^0X*oe$Eu(R^G7yI?x^nLaUDI8gkCp4E>w%U>P(Wf6RqG1E-JF_iwKRQ8e)H~YlCB44*SgBLKK-%Ntyj_Q@zu~@4JkbM zjIz9Y!^#c7;95O2=q23o*5&9=LZ0d?7R$k0U7yaox(U%St3{D5y3cjJgk^t3CRU~% z8(uorncQEp>&_xy5_5j2T8Uu`;WZ!0u)aK?6Xlg50CUzY~0U49H;NHmxB4YKKjP|CaL$KM8v`iCG+;QO4mD zGaFw7x5;&C-`{Zm`Rg5kp|FG1iZlJJ=v~9@Lc-uw`?}9DO z!OQyE=)K|P6s*F_9`llSxPBq=D3gAk_}j7=e%u+juPEKdGi2u=ZJZd+Spa|6qBVm2 z=zscA?lRF!(Lws@xX*flW!-AyP8BZDNu9>5R^lTK8`qe23XPyHxo|Hp?8i|4~1O$PoE< z*TChVjtOHWArBl1fLV&j;A2l?8hYXxA0J)x7@o=0BBQ@dO?$OA1G6gr(|&HC-va(@ zi_ygMkQ=#MTH#_NKui zw@$^YOJ{33pPQM+@OPr#g|&;___8{9T6za(mDV-T8zrBbmW6vbcl^_z`#|vs)~2R9 z!WpIZsk8R&-Os0pt+9ca)~fu5la>Be>Qf`Gn`0m$yiRTOK*kdr@{}q$H-7l4BSzoh-mF7T??>kEuuybWW9Zl3+pi7btva5>&$ z#CWm1W6Xf!jH54Y%0))66qBUz;IUh@rctwx*kWVXlzQ7;9v|5uH2IkS`91wL{lt#~ z+9T%ymQT&H`w?=;-#r2Rx#w#dhX!>TQl4a!$rA=bBJ^2~-@o+r(mWD#YV+`DiI_e! zUx6pD_%Uhkg&&&gi>wKfb<9utbsWnv{nG}*!Sd;EW_5sMHPp5Id!Lc~zLju6C_H;b zpLQw;0L;Yyw-)fjzu5Ktr>Fg$q<33sDp7XO;fZYxYaJJ4?C)Nc0WBa^G}kkSTz3Bu zo|}x6jI=k1R49Yx$U+VR>+HjbBSbGN7$@h7K9e(H{1au~I}s^9x~}1~(`XN~bw^{L zW~Gkg*4H6+z@P>#rtn|&(*FnF^Slh^YxaOc;Q;!Gk_rw22f#sAS6u)A0!&5_(l25E2i(uxCsVS^sh#}o!tql=j3h| z9WWY7s_+2$>?Z)vRhF{IEiUe_C@U=Nl>&ZJ6D_DC_k(d$;0Rkf0!SSvf7(gQ=T=r$ z+M2*`$C{0c4vJVmffW}Q?|=pjFJTUvY6$}K;*aKUdw)^?FJ|p)k*>gpcGE@{W)7^? zeIeWFjo^jqL3?htLXD?#5t_F9YpuS=%7=r1NZS1}K!j1N42N$XJA=GUwStmEKMb%| z2NZ_x>c9R&>yZtk!(@z7o}(b^b`%gDxO9;h&jXn2Qv-lWZT5z-ugO_EXftL()TyJ> zyFE?4O-URGZeIX4Oz)1X|GK3|O4iHhb3yY~`MAJQs96x>a-@o6i?;zGPyN`Wf1_%! z6O@D+NUb8B=uw2{k>&n5xSwAITG&O<1;>@aQZsC$m&@*{=%E>`d%O4`b|Cm=iy z9#+}`tTFBmuW^Vk1vG#46(RsZzWt$uU*UoitCbCaAG!~KJ=eQqU^eg7=;L87l}>m5 z*IHf5Mj?*?3N>%&x7=ME5HzXdT43E0KEc!@5R)j(H?L$nQ|9#i2HDx49f9A>sCG8( ze*=3k^PRgxkOSbX?m1+0jZG~zY(P#_TgT47ZNpyL*~_zULBbFi)BizE=!D*#7SVOn z1IKn-qM{#|#UT(Q)o0+ zhO1xb!JF^94E>X#zHFyKr8_^N*{LKz=k z`4aiY;8gy63ZNkTE~M)e5Pt#hK4G6G^feq6wk&9FSsL!Mxg+ z5c7GWeS_k#v7)l$vJ!lYw;R1X``M#LwtX&Y3D~Mj0$X*o(h#(Ppx@x`@Q9A`vDTg! zdzaVWWQWDtFkSCp7q&tqmVLqJ!eE)!%JsTG-hmA_n~V?>cXZsCyXKI z4t~4ijW?&&EjbjC@m$A_Z!zXBc&n8*03Op*MBMmGqFtvJtk@ef4PF|(YH^teBbbh? zjy^3PE`$77In^e_5RDJ-t|aI7$&xouV7lBDnvy1qi}#lvW3&8=%aTf--A z=D&3?DRphA>W$&4A{AF@QfiX(lkV|N6C0;QD8-aR0U8U=;Hrui436+PPV)4lt>| z_K$L45b>Y(^?&gWC(_xiaIeYRdI4RNpI4MI5|BILV zKmHLoDSxwQpOXE}q7}M#th_{1cU}HzYeVM))P9W|K^Ql4Xg7jT`Ty&UaV#=yE&;!N z_W#KNRAC9KvdhJhTq6e;E{3*G^u|KoSzpF9w}IX;{oI z{ro=dZSX&9w9b9%+n>V2!otG265y|}$vdg3>t~~c(GWeSb!knniEBT2(Dgj8S5|$5 zQ!h-HM{{>f$iE5BYQ1Q0*nZjS0_vl0>wz)Tyx(<7qN?i*gQ@ph+~#7Y$^u*V`n{db z_hjuZ#3s!>|&)`}*VEx3#65(35M_>9eo7vSH!Gr6PVcP6jD6 zzmeaJWUTo(&Sj|%VuvXxI7h8!*mvYTRPTu%#l3qe+XoY)?HZO=BYFJLx=^qt@`Vj2 zerMA*%57&xfiBXq{l{r|!aR}WtAYTBYZOB_uW^>f|NQto#)k}(QPN_XQOyK*h^#H~ z_4U{1;K>p)3HT(;HIAuiZ*K9oxsl3r$we*w6rCq#Z*V$-ljLQf;Dt7vSJ$YviBqS> zsQgO0Y|l}3i{;jFTQWD}7&E_pGaE&)i;}~ei%k{%uv5ZeSeYTR@|s01=qUpv6Eo?LNk0^D9Ll) zco&+TsR-GfKQ>^HysgHl@<5H1U1UjkUObmp>RL*{25uzuitf{_lV1VP$*T&lMk%K| z2`3E@s|4t5be+kV=%hUC{HEAQ<9x}qo~P%S`aBPLO@N2q(vjaQb2gLV(}U%nl} z5rqij=yj-d5&e=2bOlh#JY75U3m@cD>CPVui!AsRLxdIO_u>`wcRyZsbLB`xia@y- zm!7yqTn{I)RhjSnK1XBIce%$(8hW(WtvqdsrYOH9^}el2b9gJmn(OD|Tk37sWd#-*x7a0z2}q*Yc6}V(^?wk(j)-cRFDZLkY#UtO&Hp z)e!glDY?&vCaQl^P^M{NV%-;sb+r9qbKfto!)QWmAQ0^-qkv3J ze6;D()8`wkN(_8FkPq% z?o5xKIqtK^36k0N-tKjH^HrxK=Ik2A6le)QZn3>$9en5NkD0V!0p*D_Cd zKF{cq|7mYyGdMny^!?U*q~4PdUUtNr6oI6o+xIC9bCj+Ec$bQ#KG_u zQN{%ysplVQ$*e97;srW-=<60s&(?p|IU`=hNWuMyxUPwGbdpq}>Tz2et4`!?(ou_< z0;g5z-?PH{--pa%^Ww?WmBS~)3-ZpWilKDX>}25&-R5{iWLbS>ysr8imX2JX_!F-= zs(tY%nMlGgAKcQ)*WdK3i9$WXk+!$<3^KU*Y?6n8TI#S@sbY3#^J@E(IqkX5G8JlK z?BnGRQN+M^b8V^N@qhuz^u9Yh>Y&6G>3~wz%OsU%z0^S-5EwQuBNu-yA%`Q@zwV*O z{_10v?cW?x*0ZA3()k$(5>h2J{f8h^OYrb_-c=v`Z;fc5A}0tV>KZXjNQ&m?wk~6*j5;f~)jbD=m)wJ<)cAX=?~7Zm{#tl2 zp3jYp5nvYC7+mV>5*<|$OStWa{CxW}7emq766}$!#B=`^Ootq;Oh;J|)3}K>!uNDw zr)-tHH$^`ng4gM7npw?@TXb?)`IosoiHG^7>74x-#J^Z6cZ{qKw2)-l!T%}mf z3RU1(VI1|M7U{9u?QOSxmv@@IR=v9r>-EI(=;b$Q$_}evZedmvjZGP(tThx?I&|+n zqN&H_I!_Y2p62(<{1W@+qC)v&=C|NWsan{j5$i8e9cJ2*C6mE(s+)4cL)dHUF;KoP9Gn=p317X6L`rHa$2E3Z!{*nI6i%__=bf$ z@!dn}g-23V589f0-s^smL>PSun5=#S6HduPb$OdJ)%0y%7MRSC{t(E|a{FZ+CB}g; zA#&vwGNPOmH+JKkOVz2#vR*zxN~ZGj`5V%_ZNKtZ+1&l(OBNBDUpR==*P|kzD7T|X zhD!oN37?oQR(Iyw7)$cg$Ul!!clhy>v9(sdk$HLX^hAfT&LVs%;^&c?O_9P=+#F@~ z;joW*)uTI2y)-UlZSOBniZeawDO7)+z(c%0h5r0Q_}5-TS*vh_Wz;fJuE~mmn!Oq~ zIVGl8nCUs)Fb*@@16NAvR$Q6UY#!L66|Yn53}{OEjO%ulH1mvD3|qUj$FfJb$|wKG z!6t!QB8L3Me)!D`BIHow-^_p1w%BzY$*10#c3wwz%aiobkuN7)8^#Rf5aJx$C!fbr zLV8=?ZgqCfWUS>#(|1r_;L3=tDHR}uGCbSTyBb<6x7X8ALNx5)u)8%WV$a|QtqJG~ z`>j+&5_Qu4;6_*OeLo3`KMhc3+^Zr-`f%ZL`A0k zjuOf_Y_bA7rJJ7#urmM3B5Q!Lk*~hM|6=MccA@AGm2K(aRu8wOG+itWEdPl-fH*nD zHt#4S`y{)Hd1)%=8Pqwvm7QUH_3QgBk}gL+a@U`Ad0PM4yMOcf2-OWvwCYtR*e(7o zgwquhqM1_eeaGj~T0H5u%X2~w?+^w?$0ON3M5DtJKC=6e&f8u4xh-zER+Kvc3s?7>$bgZ|7(T$KaT3z7F=Ok{U&RoE*aE0(g z59Kkf;1I~^_Lz!8)f0QXy5JI`d&u4XFg7=Gt@&Q2F6A{TwiiLT0j2=a-Rd=ZulfX= z5C&yl-@w|)+X27s;v+k;1fE41bjkeWP~TIjywuaxhBDoRUNUdbONYDS?>{lH{wjjo znb-2`So)oIHoWlW8=tfgpn1yfeU|G=`JS(xm?meOTvh2qNTPCcf8m{Jp0v%8P3W-W zlwqrbj7GWG8Z$xShIM_Z@N!Jkd*s@P@kle-hEOo@0ah%w2sEpkFETp*^*T24vqW1@@CwZ zQ;n@Hxc;2@>4e2^>?=|!e-~~D@9ULUPoIg!WaSN;jcsXf@6JEa)kBvUd`O#qJDQWd zC={huZ0VRs(L1!4f9i5iY;jy>($hYmuV~!WI;YrLiZp;SlKED5jqcW3r$^eY*(M=p zV%*2?!&IabHgW-eo~fMY1x#oahO(wm={#kGRi{*_qa&GMIPuxmM(+7dUNam;qFl2h zHNM&RWf1*$TN#vodWnIV{w=SJ!r(7vcd{0BXNX3iBep zIOo=Mg;<#|CK1IXlK1d_^eWyRV={f(I`}w^)Gs2{cJBDo!S+Kc%(P4U6Co$rwVSeI zWj4us5YgxK0gI;Z_t3Q+&SYN(Bws4(5e_4MJPC+IN1b)e64sb9>S+a2l)OtKS>N2C z^Pzj2W<{m0`iGFt7VrB)^X@OJeQlx-e#&7AJ=~^nSnd2$F@UJv693kXgR$^W~|_^Aq)q>~t!U zfr}T$%r;NH?c7m;?2zV3iUgCXg;tAqZTIM(*a*99yBxQp z9G@ih6ofdQ=U!-D`X!k1oSvLX)NyHQltgJO{6n{U-S$()L-8Jd@@Xp5W}f^aqKUb* z$EuQMDVs|HrwME!-+OlYg|pU!AGEY8^zn_4SKIjPWEfeN*lq(hhX(F3nXD&KXy>-F zPLKdDxl1$PI8a5x=<*-D(JfyclOK%{ABf%(-C1)bR(O8d<=(<7Ip604E7b`l+-rX* zSIE?=V}R7oY($WbkFcx^rMB=){e>ub6kVRdjzFA^m*8DPF~UN9@x-j6pzZq2Ng5%= z5vM>m|5+olf@f(b=6MwU;fGptzc+V8N-Ge&5DhBtQKfZJq z&MOr~SxuTA_#vBUN~%rdz1|(fGt8lgnd%ztm`*~TxV1n2^vdaF>0&K)BJ5V5-vA5r zs(^-S%p&H~9i_TN z^^lYHw%yEIZNIvXyVQu@V7gX6_WZ05ij=&25Ux*|TBGVVby)SbZT7S(Q}07Wv->9l zb!XQ^qG2OF#qGJb2JA#V%w2j3FXiGQHwil|e4i74XI;)PkC;D6+43NHe4=q7O8IV= z$Bq71#4joOQYp7t)t`)%Jrpc`n`t1@ma) z9(knVj3G#PXm7*F9bVQ?c z*Xq(Cd3|EeVlMkqQ#w~pNE$zV@c9G>QufM;IQvwTL_Fgw0qI7(-~tEcLCD#tvG5L^ zj3^P#ApIt!{DOVuQDXO2p{e9X-L}ShEoGGd)CvzXgZwQ);&IHta%cysD*`gC@mcU#eh*rzyd&=t=in!F2 zaQQkz2NhENkx(<((t5WnW*=IzUeaae7q7doca{BZ@w=5LC}}p&>!~+M0w5)1u-(J{KX zPx@3G%6B#Mio|4}Ij<6Zs+J7f(G{|DS2bH|$Zg~$d5wMlhHkPWl8)?+ALzc{ue_wJ z%taEK=~R|M$eqrsGy8J`S9E{OfEq8Mil_Z}daw5SVYsS5b^miE_1$jk&q{Ikk{p;Q z_P;WJGSZ&CRBrCqz~|%$O9;Z zSkzgcBtU=tZZs(-r}91*WS~U3xY{)CUgTxZ@5>Kf{0@4$VKv)FN2R`GeOJH*BRW6r z=Rt$ogwnuLwcFPlIRc&<%MKr{AE}+)b@W68zRk=Q(kSb<9goi{2Z$sjc|EN6fY8~@ep7FB3T5&t}9P){G@=>qyz3`jwU>;-; zG(63UOK^u&p)U?MWc*B;s|CqpXGMJv_e>(lTO>}O=N4n-vvJvNx~Iu$R7KxJd@S6{;# z#qBw_MV=tU-myoE(!QMgXgFP!m^I<1Pn}8RW=+42l&B1Q7dvYEe=+yo@o;|qzIUXN z=!qcFf&@u~h#=Zbgb)z~iOwW?7bdzf5kd4GoroSSdhen$dS{}S!C)|E#>|{6dq4ZR zfA{@7_da{y=bYE;{KM5}U3GoGYpu`w6F(Vn=s2iSun}g4qj`QKXW_Ge0=~q*1UM&$ zQ|11fs({83B5(%h+dy}H??y^A>+YV|9q}vAg^!Q=^#()&Yi^cmXs(6YatS*0O%QaS zHx^y&4ceoN^6TvbGl9sgNoE!?=PB0t#LMBQr;WzX;MZP!wGX+%^kehGLbq48e0*hc zW50aiS<|vwTL>9b$;%2=OY(E^cP!9T91s$R5s#H7moc#k8v zy|)#dD~ZO8o%TDA(H>%wJd3KOdQ&U(&bGkP#Ki64qr$KpVuD|b&HdV&8gxJU+s>$) zeZ4<%exg-MEtu(&nNn_iU$*KrDSLnQ1e>9JN&7@ewp`}~&Q0MgzM1Sc{9F`M%39A% z7NdqdMaef9Xi&{Qcosm*6ZHX34cV%BN=T63+v*6PqTc_;Mih zc_pdb@&}oA6s(pn>28uAJPIm>S9@q-&t}8CNlw${3${ah+Z5CIev@LT6oo|{zwprM zrxrSn<%aSn+$5vhwSIG+ypysWFS4LrZ$;zbIycQdWx`%5D;?0w$9yU#Jji>p@o1-u z&`f=9e1Vf7R&!R&vNFz{Y#P4vx>@OPj_~ICA#aK17@NF&C-{Szdl&m*z{$(Ep`E^u zbB|D)W|q*`OJI6cahM>@Sx9P9%uTMZhM#Pw3(qf{q}hEK{A^bO{T3o+&+~9{S*+TG z!rah^%J6`uFL`do%l#elrDJV~#wgtGm79u0*!CuHpxx}CGsf=($GIRRI}?Gi7Lh>k zelyDN;tqxmAsWN+c|O!w;`{8e)E--2IzyK$Whv=EWx^tATz-PW)TtB*?Vp#;<9X!bl8Z})cwjK4>Q0Ogs`MrQK}DqkWY>m;nfk{puC$zkdkiX zgRllFG0o0?s^Cj`?j1Bg^t*LK?9VdMi#1G+TwRV zX|2cvCQr|rCx$%`{Kj1{MJrd)H`Uaze(b-JaU7~rLzQlym13XT+KCKncMeHyRL45X z#}s8Hoi;oSx=h7|g-y3Gat9o@2NO-jVQ;s344)3q-W!29yPiVzw z^*pV0xa>Z=X^?;x3B0Kd!2R)+WcIrip(vl zDK-(VyZlM&aFu6(0Y`x5AzTZo<(6vg68c)aCg|7@)XxEF{7_hkeP6s^#3FPCy z{KEEuLw3;j5``M~jR*pqI@VD5dCXjYj{?o2%eg@(di}44GoecNR^uvlso~rD*{?yK z{EQMfjX+-~#^len;Z3zYp*v@JRhBe`4us`n>M6A+<}AB3Cc6vsRyUV1T!z$34BKyO zs=;P+vn(PW<*}3%SVL{4J;C2ws5|xnRKpI z#hS3cK6HygDT{gV>ge9sd`fD>Y!}5)94lvN$)1%czi&%%+evJ7%*8IR26iTj(j-n! zY3T_c#c#(dyP^_9wnIL^&xo|&Ule|0Vr-z6sC{8=BFc-37aib0!^ycB4%}SnYo~mqoeNuh%N)9y? z2$vn9BL&@{8-6`vx(-b2Nv#>jXOpEDU{zxUw{_LQjXn?gaPw2_yET-G&NepR8Ckz` z_&@%VOzk1p+quGWw^WDW5@SaB)u500BMi!sBa8{y^D&abwYe^zOzs@{>X+NGN}*_= ziw$(OHy@W#iM6!6I7$NfkgY3xQ+y+bFbT>sk+!KjbZu3%U#7E`jlXM6x+fWgY*3a> zKZ8gd-9p`(A@135JV2c=g8F_JAfckAjyL=!QiN&jNR$&>bq|ex*ZMkzkL|Ut)#3b z&Eo7K;k6zwt7t3#{eGSt%aisSjIwT22|z~kjW8bnCHONKKe|couZnWHqQ+t6HD}2} zkHLdKIQ>ZbV!tD}`rYNb0amXKGvoMyd@K~849 zohE-#f$XA0CCR8lFVjii{)xgapgvfem(KiNw8`$eu!sNX;L8&~NJX(@Qpr(!=X|4# z-(=Ik+4s7K95ft=?*t9n zZr|l&&$w9n#E(Ov!2;7hQY#lYooE4#rD^OF%=23SHIqd35bR@dEL76#QoL5rUKUQK z8c=Aen}zf;8Y^uk$%XahTOfV(xQTs3E6-N9Sof(MSgPp`Pal-{{Q50iAV)WU;CuP2 z%Bnr~6GbTl$e28@qxan@fTxn;%GK;88CI&{0L9?4LDXGS%GyS$8}74ipS`mN(%g#T zZxhX}G%bIwPT?um=GM%bCD$uX`{RD}wY#Q?wz$$NSSE&9t%E>d@`31PkX5>#f^DRw z{IbBg-dct>zaL|9VTY4iJrvaeg<~n+8?=lMHCj(4ALR?|H-gobnBp`t}gPEq7TcukG{O!d#RK&o%TMCDx~N0@;mf$(yyO(oQ7Ej zlAlZo55+M{Z|LAOs^S)cb-@P>eP{TSS+W@YFQ&;4P3%89v6fN5I-D;j_SALOdmClBf0fBP-aePj4^$%j_ego+k=hIx|d z)id|{fUc=P>7^E|sZJ|P=v@cHvk4R6L~_Jrv#Xz!I@M9B=o5=3F2A-BO$1-3`Ru_F zhT|H#%l^Vw1N-R|dCJd$TVfV00;e>p6Dt$bYS!nP!}WBB+=ue6X0MIQ=03XY(ea#B zJxXRJ?SXev#5$b)s_0>MKLb_20r~jpB`LU>NEDC$wEC@kD(+b8{%Bb=G-35c4e8^U zWzLswnhQQiYXePB{s7j7B+5>uYiYbCu2J!@8BjJ@$LBp)2^8@SoJO`SUy#F2sW`+#5B&-B+m}#ors|wyiI_d@G0wcY zakB14{ZV1`dZjAmmqq3iT?@!#ncLo+XRbbmY$pc2zw!zr65zkQ`&oz7VrP%^ONa@! z06$72Hq=Ws9`yUt$3Qa2VqI?%A~*=Dzol){q}~rqz{|Mkme|7}6SzgF%~ZIPo6#-B zz)ToB`TMncj{@4sNrIpWEC2Y$Pqn~7lI)mc?eWCn*aN}KM|oZ3y80!bubrwPoPHgI z%X)E|6+zjLmc;LIN5sOO__zex{51WLDnEw*ee_D`m!1I8oje&H@vU*vvl1+Eb^;iF5AN2-hpdr{Ed>)+p1 z^PciP@G_-s?QYq-UFo8rBmb1*YPSAIxy=E6@p{3jh;@QHky=3ic3^4c)VkZp;g-eV z=O!1eUYk6`kz{URJMWsdG^|lM*ka3LA=t^txV?fQY%{Ny!o8;qGKt(vU8h>Y4VL6{ z?GbNJBx8$&j46%MBihpwJLPx!?|~AxMbUou;w})yI#EVh7oAcAKX<&(vEje$Tq0T7 zps3JYc*jSIW_jakU3$EvlKtFvjQhjrY}|b?^x{|NcS<}Su5ZeH-@lXAq^CbyunzS5 zb@-*Q-0YW2H{@f%*T!5XgTr_`D7PIh&F(yyF*grutcWr5ag26attu+vKEvHr_R9GA z9Z-{FC8|40sJNqnDr&4s_PIy>b%_eCiuR6uG7`e-gCTE z3t~LDheJ`+fp(Slyz#_0LBqXt_1i@A)4{Ak?SR2<6BgA-CcmtKgbP?3xqefLi%t4m zmsgBH)Q=i1O^z>jTqEuuK`%Yj(S%-8u{^gUzCg9MPRkE{?8L?9x&QjLL9Ax7fm_F! zfji0}@scNE?%CmUIyS@^THaW02eo^iucA9OF?kg|=U71xCV zmuGuz8f(Jy6y~#KE6!_XyBK@67n_zu=a%hHe!eG zdG^|yd^V-u_3Q?Wginj6&Q$FKIljR%_~?)f&dFvUPEyb#*o;4G+K$!tpM%mRrw4ZL z<@EO|Zb$2m=`%}zDAoXfzFLaKa?qt=JQC5iBKJDWUBufs3<~o5CpH3T78Q;XO&>LP zrp#c5=I@$)j(f_>4O<|agSw#a?5#3t$y-XIrpD`>Yw?d=Bry$@acoO9Uyz>=Z#F#w z1D{G;Q1j?TTFXu-$jU> zhJ>smOo3+hhb{tL!aHx8PV2n>0Z`Cup(Gtg5Qyv^8iy!p&}&%h_FAv5K4ULP`J&9r z(h}C=>T_qyh@NG54ayC6JK4bMCI|VhZ6t6i#Vh{Iw&Ruv4|tO@;Vtj5$ZUZw_m>iS zV()ajxOF2iwiJkNMl~<8xPU2zzD7uuY`lAlYM7|&@27vptHkbS$?u_Cps-4I3DnZ5 zTS@E+R=5+I@K9uOxbk|CcIB6MmO6#MUxk;KIfXT@7a+Q$5!B}fn4z&;V0c?q+>=#H zo;yEweyrz14JTe7EFF3+P;3=gh+1NU9M2Au5FEw~Zc@gm2A(r<^Io;AKg@W`ud#9? z0zUkPAmycHj3LGf3cR0xG!BnRjzwUjNMLF z*xham6YduGbrs9uP;Rt+^YZoI_q1k58w9<^)6SF#55+ENpUEK9-;iu)Z-CXs-4iXRJ;pF*i)(!qr`=oiwX%W?prBPN67DnD<4>IuawKPv833Mr$I@ zxyd6DJ7uvhZ8^)=Z8L11C0z9;1UVt{!^fD;e^SvFL{R@m+y!1#lDqBV984q9z4cA) z=GBWS!m6{U3+Fo87JX$?sk6p^z9%;IuF0+kM^bSP8oT44GWSJbSr%qg+zWC?pX?b# z9t33f;bD?a8zRJa zYDp5eOow==#aSM|DrdM6qi2|c^pNe!+f%Z^HuZ0I9gTl)Q{8=XV=45**r%$`uICis zO{aczo`d(wru(1Lb<`PFrx%_!w2v41W2aH#eY3WS;x9=xy*V?QNQg7hA=S?NjU1wc zL5A`2_u4-1oHFiDHPUrgS|2AuMCL3vp$lQSPWkjea`VbfYS5PU(;%NU!K&Kg>)-kk zAY?v^#FcTI_xr*+(_>-1Ztu?E)NeK<{d`VyMYLy@Kx(2;ew)yJ;4+1~R)16@vNe#^ zL#U?eMqtVC)q4hz0CfHPXaG0)3>df`Y~19n*A*>UDfjHzvoT-@{bPX4besGKYFzvbYU2xF zuK2|#tpN?a%l#xRd4L&Y`$wnW=|Tp?!!80DS}}m!`aTXai$r<1zXb-q4_7-Pm&m_J zfY2!fu`R7|LKVk=TAFn5Q9*?&G z<~Igo`vCtl%=38rx|q$FfXzsj@*jHVjp)J;#trU_@M^QxPZutX0`4;30T|SHWw%RP z6t9wrw7zk(4+k6*@&OPsje)iYB%=XPy|KZP#l_mnQ2!BZp1jKwqifQ}jhTH$07U)ym(WpB3HUS`v87+G<^~K%OnImb`alRF`%S{AK=Z8oD+f!w5 z*{J2fo@x>B$ljO808oKinFsN~RbWrR=KdjoKF~L$wBw0r^2TXS@=Q`~2;!a?gh3{~ zNvD!{z|bWI2~eOSX50Rd5F|?gnbAJB^#dCYK)Y@Lx~gG7Q>F#-cT{lR2B2HZ58IFO z4FDiv@Kx7g!zOP@(lHZ27?@>g1T;q_pzU>OGj@arpo=M48Eu(CZgG4vjZFOjNP1on zhV_m!>sJAt#V~N!t{Ca*Fh&rr@`Z_VPPe`zz#D>DFX%`x}R3fJvcRg(2+$HqJVAbfnK{S{gvP<<8aXdja=l z{Arg~aemhgTQ~~)RCm78xZ{Z@5|D3cddR+O`~1xgu=)rls=PTG#sNM|fCa9~_xmhh zBLNcQynPD6A0SI947e_rdtHHt`0i$m7^EwVExw0z1^rwakj`Lhwj^%nj?oxw5Cka>;4jTlVa{Qbb;0*Gi?2->FVSxIhN6fnZs0ny1o&lck!2kp~W=4&J z5uCH5?xEl0?ZI9G_?>gd0kF7)8(mM7V5(aeKzfb_%|0;ahH=~9ExyA5RzxeG(|Y>F zaMv1uyfs?(enx5FX2mOjp0Wd&t@*?Q4s~2{`cyMOch6^q13H!-$ynNXKJ!XAz!TG) z%xWAdyIJ3Ibmv}K1gO?-(j~%nOZO1)_IW<8GGk>+_P#SFetOU+EE&O{p0!g!`t-06 zql}-xgR-|WF>%LQW@naY?k|^__eH}xF4S?(p1hca^kpo=>xB!5E*uv*LIMt8faEc5 z8`1cIrWD}3)VwTBRbXchepWVF z8+REHhd+;#&v?cDI_8*#jrm>(C_X`d-6?|!FuDX}e~*v*PMlMxn70V_0Bn1tvItZc zMtfBBH1>yjlQ-?O%Bcga8lJ!Go_$Du`9cxS;4%?@j z=Dfj{k@izPf-TMlUcd&sGSBr}|Dm{C+C~!`puB4#RdS8{K)shr-SY7p-mCg}uT+4G zt`?_Z(rbc|NhjXs+6%hUKJk^Lao*lkwe;Uzn-=K0yf-7ByYw|$*8P_a%9ps%m9?m=MU5Oh45Jq`$GHD-^?0w9yR{3yiAH36E zL3BY@)os%QPtw3 zeYZdz_W)k~rL6*tVJG>Kj6t_KTy|HE>jkTr&FeDQ=16uvYE$IHR?NWF9bw$Xq6^6n zcg0dK`7S*Jy{>s>xv*daihJo!$Va!{QezOm8$>X|zmCoze9kY5Y zrs&CgQUwvuoB0!jb9Tb%-!|Q}jlFRekvt?d;+QZjr41wv2FVug`CNm~7h*iO|NF zyw?OWK;tM?>kc3@O>fKCn!Pioy%S5>{c8qt+*e!3wOU<><`veH?>n+jT-GhJ-H<)U z-pIMCB{gGla;^SurMz za+#ALl%NY`AEEZL60of;Rx#PlA<3F`NA{yHmQSvc02;Hhy{S)bl`Lk;4y0?e?RDmd z2^_{%ue#d~;c(QOvVfJ%Nt>OE@~^GH9dI_9``jkonRNO$As(a8Eu@(8A;*QHWYwj< zgph7L}&H?HiKz|y*{chnQJXl5&;PG}`No2q#}PY91mWZOp*N8B>l8DgS7T)(ga z*d2WEZU~!wQ3wWMNs&gj4V*9p}*B3pP{Lo?@pILtbo^kLI6;5d`+fBjxFlAodTVOQG5s<(q)zLCG zRv2M$N18hkB!3eaEh)msUce{HjIc94Pp04Ob!w1)T}{z_*EP24`%t4CVe@G|E1?|3 z*Cz&@2B#aTR06mOLo4LHpwsNM!6dPQiR}_t-NYNhh45hy6QVtc=t3+}BLptZ7%DHQ zXpSD!IdZc1_$irtpJP(HUw^AM5# zf~4jIDIKk2%arHglSEoMg6@Ljg+l3736V_WKDs)vhS4$q^i+!X)!A1O+q!S_;P%M< zSoA_0U_=m&xt?DB`|8HISr-pnalx|m!N}88Q)1CX?T=$i>9U{m;RBoQ3a9Ka&+Yr` zdpcWn$JY;o^1Td^;jlM4r^4o8r@3lNxgYA;x2k8V3?hcjDz9#c2Yf~^KRyU_qj*kw zUs6Z}-%DPR+~)h^Q;;qNSHl1=reNrYxh#}%lNqK#mtYwb1D(D$q!n&D z;PXXrUl?sDcq_0-%fHybN+v!FDI7CSnn_2AYeZ1{FA!7{$CmZ#=w?f;p767EX&P@{ z?R7aR>iT$_t7yR4K3+Tp%ky(>zPFQzfpsaM*l)~I)H*adpP#Y?TxD8MFUe9~;Yu%o z3>?2oX*)?w<;D@e+8yV1Ou@n3&kJ z^+Qa48g>^Au-X0B^A`Z(W8XY_*#}6IRsbSg90^W1z8_XQ4G^AlClmn_hR5amw(Ph+ zb~1$|oqcPd=0KY5Qqji8RS-S%-{+GilQNn%Q)6xcB|}T zwc!FN8yd-g>xYv4nD)%=*bGQNHM+51+qyerR06#uWd`F4^65CBbydN44L@feyS3~sPoHC{F%`1k% z-z5SUPw4Pc1U>~((i<1{%MHj#ro}1^Lb7KH?YxKPR=cA9sxU#Ck!p4@zX=#GY%+MpT#!*9ytEgoVqRBX^+H|>eak6CVUI31V z+>SdM$yP}W>txP2eQ|7DWh4RdCcy}yxOYy6=>RRT=q+z-`X9@u+F^Wawd$_{@0iyt zY_?-`sI@a}>useodx(%qmjP9L^MbkrR|f#RC_9-+nlUMMd1aScbo$x8a}RNdlSqC@ zChG2@B>~!`!`vISuql~0Il3fMVzCez3WZ+N3y#;yRXlLqA8lZ)msqQw`2)thalri* zPS)#>Pe7XQSI&LKL5>XvynGyfI&~qDU&1+M^*14J*x_c5^Djx`5~yQ}Ch}*fa$_O#UlBNl88H1B*Gga1e1FF!n|o3R3BVN(u#-w zLJrEB9IP|miy|xHo5POG5##PTm1PsS1%$=H0R)4d?BPsRP65HBq~rI*OI;Mpr$C0K zmk@xu6x4d%}HbVfH`L~_y{`I((>fEc8T@7NJdGCu*Ah81yUn< zkrT3EI9wbN8k&`kgT2|-TVPQp%mP^H9FWyZj7zl-ju(d&DP6aM6d|2#WXfFcO@kCR zwuccVGw1SmHX7_de0Y?kz7ukkII-aK@)$O4lIQfq94G6xQSDQ|S+Yr^EE$IesPu@L zB9kk-WFHICIM?a*KP@C$$T(9jgXZ$%bPx?;G5tiU9(i-UODos2Mv{V)G zCu)ix)b=WR9D7;8;U}_9;N(2b8pWfXpD%BOgw~xJu$vIT&FfUl1tLFp3&mw-U)i-C zHLqyQN;xelEOJ)fu5?3Z9yl(St)Upe5uFoEQb=mlw{rE==GY8Otu9AJ&V6aGcyy_x z{IWq!?&$SYED9*v1?e!I#>U3sCPp86v-P{?UM>b9RtsN_;31B7^O>ZrE_1Zf^bNIT z!xLErnpAr$&e5ry8gYyP*5Z}d$PGn=&6?YOS(GE*Ky1B$K5i$lO(QKV)!-gLoD@Q7M?jnxMAxGOac4UFUH&$*e}ZYSzP?I+JU|j7JZiT z9k1m(WYOC9OM^UkUfNNViby2Jt&{!y&as6lCW9JXfFiP?cXx{qv9_PEaB_2XwFJtwURx+W zeg_6~afu7R#tIYy1k%qPEq#$4-8tE$^Zt;&6T|iJDct^${&0UkDh&(sPNl$8?xRmn zF+P?0s>>*vCdw>$q)&76!71A7f)e>m`{Gd2z}gEq5@UKnk$i?kLYE`qRr>dnU-JEX zDc*`FPj7DK+dDdvj|gbjdV4e){qJi!q|;MUrWO}7#!*LyxRT#H97I200PyvUW^uf2 z=Kty+YBb!-t8Yd0aFTPE{QtSJ|8SrG&&=L$fK!liTO<1C=Tm6|<&)KN!8Zh1iRX&_ zLQ5!i$z&_w(zwg0O@2gDK72-Y+_Qb_MBmLsY_{HayQy_Z=EIMsli+y7Iy656Ox#o_ zzZ^~{9p=KvPA}SL+N>;jN;LpcsrBF9sf|1T;%oGGyZz}ZnO3=`!QMq4F!tKd2uxG> z^2J+)_tw~}a~cdG;;#+6{crWn9}A2+=L^QY_;ow}u*2i}T=K?-)usElf4wy^;VC0|d3pUPC{USif*AnNto+Q(%q#jYg5^N? znDVav{?J@9K#U$Ek$h(OQtzs%sik=A0YOwvYA>R#jY%w%(LD^7<(0 zIT)V;aHN5h1UeClUH~E%Qj(SqhD*WG6IYppo8aUHkMPefJWo=sECGYJ_gn9q=`mjl z+b^2DnKCpo+G#+41sox^ij;tMv90MZXex{m>jpiGu<_yP=AQYXetqP%oZum}}W9!BK>~y}P^C5aN2%-u?8%Newh5h#43h zTw7_M^Y_VE_e0Xr(LJ^AsLp)3Vb7a>B3w+ea=S8R2!Wvc);p=Iq=wN$>$isV!gHMt z1L+UlvK$xT28lpBe%aOq*}2Ev6S+sH)eiFqtH2pn3adwwHrO<}Er~2jaDdv&P_XH- ziryU}W#<4^ZI8ZE&K^144ksPdXE`#CPT`r-#>d7^>?UUKbv`EQnVV-zfk0I=K*QdW z*E*0QfY`Fa4r;?pwjvJfY`Gp}z8N8$AUDiCgbRo`*!N9;^ z0Xmgg;<1Xkxl$W)sFiWpwGeOLXlz3)1%Ct6W3Dw__bOLD?7E&mpm=LLEP2b())uqs z55DynHI8Yq7{$eh-ewdnE-KQq4=n&k&ta-p?^ltY?CzMJitSL)($Jh7Fq@LQREPF} zZaQO7g$i+dl)1cHf3H;a(qg9W+sa40OB^dX-Xw8gI|-MB6{4B|0(l z!Ct+2v)VBwq$>|}LrL&M*opf@aW?a|TITIbo)*coj8`u<`qizZ(n!1$mdV@UABOC{ z*--u(6F_=02*>MMmB|*9MjY$HNuIaw%D zjw^JAOfeJDK*=yhUiAs}Vo_TMAlM7g3VT>MO}X?o(x^kKcZ~8K7$4YleAo3f!h;rDc^{&Gv^ixAKE9F+YP)$LeZSYazT;}EAE{4E& zAeGBU>MWyprsl8~4mS@8AsfN#akt!TpTB#s6PIvhBFcY+3Xih=&=EVu1iK_5NF>yWjD5wdcP$15~D0kv=*I!!00EH$Icmv^&oKE4#LW}@Mw zIp!(E|F$Nq_Cl?F<_@NXQgx(_(h=%>;Q!ZRoVpKKXx$OZ`kQeaO+ZLU$j|zEw%%1| zhn<}rf167E56Oq!Jw3{-*ROBtmY0_=5{Zo)+BkIy2?@v`2PbEaq`Io=>crNT&B@7$ zz&F#n&ELPj?L4-qtEh-I1Kg{)^oz9RQith1uE)Q~zC{iT3;R^}9n#s=)!yDN?|FK9 z%AS*(8*^H2d(O|&&Tdd2?!IlX!M^1XZal&kvs`f4%rKwPkb-`L1=Yo&-x-3LmUjlcrb*(%$Tl9C?sDh59~ zss%R4rYuA3DP~3$qn+qjBbHwZETE{VsW-*S7h5B%I~^SyTvNy$xS{1`Q;PW!;oRKZ zT4)P!(ZdPy7yF1rSWRQ2>Rk}!U+>sIOuuCnOIFPui)21?=D{P2Z_|Yq45%3(i#M&+@qMNBXVsNxBEKe!BVj2@mII zDoI6Q3a3kY7s|VK7~=32O6o0$NECXzX0E`oC7cXVSWP%h%O%y0Wj&UKKXRs)=OGspm{Clu+eEb!2NhTk(G<9y0W%b z(u4lP4hmI1uD6LqA{}ccC!nY+_7GY1Q27;kYMcGWnpuP5T`aV%?%th_+HYd<>J-=BrM`h)H#u&4AIo5X<} zoF9xBgCLNPh{oP@G&D8%^zPYWx|~*t4AMfkHXNGfh9QrM;(^eh;`D2L{Cz22*%sCk z@Vd0Lw6%F_U48v(O+@VzNJK}J;U;~1(!wLdKLN}ts2PtUrB5Rwi*s|8d;--m)BfOZ z-jqb+H`>5!^?f3?b`06mf6z8Y2IAeX9>&=^0i{oVu^mdb-=AQxbj}7pBJ3^th0Z4h zOogc>;JtSI)bPpXzf!$*$z%u~)g*g_NQ1AEJ;uqvn3sn_A0=A{4-+VWh2Ep!P!WM$ z1tYkYDGYqcr)ksn%*pL9wA|@0f!zhRN=nG3+JT*4=I{QjF5L13eXJ3l*w;mvMoc?! zJSCR%=aGOHw8|d+!HBFjsRyYBzEHJzAKi5nrrAKxiSH%xs8YgPxa2K8CH6O#)42Ft zhtnAQ+gxyqzShoFl(?*HYSm;`{4-+axwLl)1}V(23$SzP_!RZ;CEy;qt#rFQcv%Li zCjie6bzXU6;{Yh~E%DO-KfCkatEwv;d%Fw2em%qam^BBuImB2& zQ4{w|9g!fU_N!Mn$@Gjt;y?>3Z5Gg7N63fM3>|fe0)tpC3=a)O4sW4Q9EjJqhvg>8 zfO%bzC#6*B7DQXS6Pv|PqecD(k{vVzLf%pt14lc%m&R;2Zd?Jt+01}N<`UqLlaFgt z*XL;HgS)%y8UpsramPTL^AZqKo0yvNR^T^Vx?1(FoB-xzE-o&WVO4xu69nShKqp1LRxMgAkv-4n29`lNfIP%m3#gq9S}~c2ZscJB zI(_gfEv@AwkkIE;*&%kojdVrik&EOUL(kHvy>w$7G=K z=yzdGu+QB0WWXc&{Y66!ji}okYlLq{?cOCL8IIGbw^>;}b-;r|LPjSpS%3jwyTjKx z1~UM9TfesvNLozOh78obfB_V*wpg%YPC|!D$+b8}GKk6AU2k@y$BdHYHkAGtGfsowI+Bw zFcC%q`W2P{MED4oFOrePd6Dd&-Ms794(|KBTb)R1K)TT3Jw{H+KPTX|L%>H2a~<`K zKs~)h52QzyiCTH^$GG#?$*Su>T!tK&^iCrrJ7v4`Q-Kze*1gZcgY?YD`wcMb4TSC6<&+v$Tbd|zU|5$N=inez@X!UUsb_7SZ{^^?4BU{fn3sm#iew-Zne~214DUcY zsxe@tUAGf*rMMNZDJD*xbGpYb^ufi&|KJo=DzV*KCkyczxyum$^c1-%ab~KkeZern zoG0yLjeN>c#0__c#ms!N-$(H54mR+Tk6T4mmBpQyzlDtdrKxW4B6z>X(-H#W{|D|g7A9ez2-H}?_GY_cFw~~^--9CG{&H36%Vw8CE@4A13qq@Jaa8-DT zcsoS;yB*&b|A;=c{<}s0`OJIY3nPdx-)`x9P zVL;H$ny;Ge8gZzel#J;gOa(d@JLf(1cd;>ZS&5<%JCdS+hab&96y#?ctx=*V@)YC{ zo_0fwAI>S7NV>k0{+TQXIsT!C?R^HF&t$nf!;vg~>UDN9XV>>r?P6(fUDxcQqf!O@ z?v29N`VZVd$w6ZteIyWO)W2ccO@^&jcm=(%STF;=PJ4)psC~Yp?rz$o+UcJxQ4zO{ za)Z2(LD)I9rbwk@BjR0~EN27-UpMbgtu%mhx|<#%PHca^Dn+EY4azx!cch>6DGXf-Of!B~Mf*o*sJNB8^Ww!M(g2 zbcrvOew}I*<0f+DgO>aJr0WM>a~Ech34W1ntd?+2vnibfUl(+2Uf8O4@cJ=d(g;gI z-I}bnqe1b(e4-6~nhYV=&k50eMr=i)6*bps%HVL<38aoqvj+sSMY3%ueZF-|Uy8qP zHks~N$w#YlDlM};f4wpSntGTlhxA!qwqHvxHCgf*iC8EvDo?3i6P1K}osw#8Z97k$ zoO-=+C|$FD_uVJy&E(p&{O77G#*tpu%@T;8)s*Xw3Pc^*>0Jl}{{?sDs9Krmhwp(( z$t20}^+E|PD)6ruzN2do9VllVjt&eHXbHQ>x;A}E7#b6Z@0;cH$mDmXt#^=v8#@xw z4qK1Pq1108phk^HNS9mew$+_mydLrE_<7-gf&Ed*Wm!*)9crU%>r~y9NRnN*<4E8a zPgMHh;3s^bnIS!XvjVR|ZnjWSdbYD|$n`i%wec&AzNewE((A_>x}ci0?M;_*tm(78yx=@4)jA;&Zg@ z`~38S0qB5k?-xBusB62jqL6EQza3Q4Pd3}NN3cvdpzoGoItJV0pqJ{k%Y0&>RJHMD z;m?UE7C0qS;j-Dl;a>5^@ku>bBFkJ;KCd(Vw(Qpt=_z>5Ba?LM|f6U)D_DJIW5j*Rb^)3YyaIvSK!!caIHbT>SzxmQ%-*4UGhlw;r;Z-Bn>yFtHe_iwcOg||zy&n@) zq@gWFdrMr9Ud4!OtGQwP2V!?^zhfc~Q|~aV#0#u$a!7q)=c|8|e+|+Idr*4+*nQF( z+dShmsR6GZ??t>SPMEsk;a3t$>i1e=1&Z%veQSSfNjsN4U-w)telEn6$gk1_+ zfKPYB-#*kVrcxuA89I)p^o0eSh}hDJ#7U1+w!9X^v-21u^e z$uH~I4?5k9LVGT@vE~W58eJc=|0(f+`oY#my?Vh}PBhlle-^OTlpB=n!@#1|%PQ+t z)IkW3LFizk^6IZ$5VxmCVYZ(@jx`$cA1(b~-W4+}4^=y`A8^*cd}%sN{3?5Og!Ot{ z!0~H}qaBtn+=Vp}s$L69yLAgNl8}9S$4&7y*aDF^mG@x7*Lr%wWgD|BB5?EmZNd&uyJgy0{CXX)oIF7hM zs%^XRH9^nFMTh9ie75jGxF)BKsxFsA>2I)<969`5FZt^f6H%Iqi0TX=&rHanmiZ3V zHz3l7C2aUfS|TcdpUJ1}C-7O4`Ah@e=K$XyX{2W|BeEsfTg+ zZPAhB6QyuEbML(wHsqjkUxw`jn4d^)ejCnpa`%3&rk--B@N?&~$L{EUD{W)^c7V*H zyU{mtulqr2!N|Outr7ay!SA66iPe0+V=$PAlup3Dhx9_pxX={VK_)nyC;nVF*X;5) zve!8=unZaze!n}g%K<0mgI;92f|*(;o^JNcI?otzwMl+#E|sOjmvA0><~{{c3Z33d z8PQB@?A2kwW)~4ix<^^bP9S`fFT}VeVvBk{-nkx zE=%cF5EvLN9q4kl5%PZL8#!#1%hJ;WKDGP|e5d(1{(wx-ov4MH;34Um8TjUsU_6>& zNkk5j+KF7p*f=Sg^y`c8X-;~g4(0CZc`W?#Y%8g0&c&XqACEoriG+o>5|N6S2!i{& zh<{r(mMAorerN;RyKzV-ltwWM_jvCBcs>7`raQ(?Ex$`e_$6@-vb?V$SH)mIZ#K&$ zRM!Mv-Ck{9C)`FFnD32zYS=Bhy-gNRgMSolc7c97yJSq)aMWlZ`Gg$jC-srw4wJvV zdvx)!kI-@neFC<1l3Y`B(}-^M3{i)EcR7Q<#fQ$zGX=G1M+sgQJH&NgE5zpE_IV^f z!u+Wb7l+Bj;kj$>7b`jldARqSyOi%8hmX@fk_J|u>qN1)q@6`X&Gb{?CF0LH`bhBm zWx#IvRM!fBgG1jo(u37a>i-9M?;Y3Fy625rw&31~SV5^`!Geg0^b&ies7P-DQbRyM zY6!6cA`nF>(n6KqdrNdvA~p2TLk}$k2qBRAKFr*C_sluxopbJ;`_KJc{veo@KwQsS z&#!&U*)(KHQh(}f(Bck1oKScS^3Ep?d3pzf`wa48B`7YQ8}f_(4qPa%iyocWQPIN3 z)OmC#BpG?*Z!X*aay1XE;3-HCUIroTJeS2WRFYeOtg!LJqQ}(axNHgyR?nehT}L5~ zh^2;FZs4!XUb1k+_j?fvKX$fl;q!Ke!KGNjuN0EbM|{dF2$dJOx+&26swrHqfai3& zm%W)Hgd6AVw=6WczT}wYI8RrWRKSZy$C4ojcdPqw-$Soqc&>U`L<}UjN#}9anGNS$;&B;qhIGS;Z>y{;_sK6%)%R^uelaOZM|_ zWuf)8@%>%DTOTOl+*CO*AoSa+$D3n6Yq=*?9)03#IA_3$Zr*KuAdd4*V55i}f8a(i zzn`C9u(cl?{=u4uhbP#2a#i`U)`iHEApq6}zJ2>98FD|P=aw9mO1&jF=p1#<&du%f zIXg$k59jQBeZQTvv$cJHF7W3wF!$$q`wt$P0#V!@n{CPB&C)%VJ9hAx{I!o?fd5bS z@Ber&*vG&9TMCZj%H*M*SznFG{IL2tll}9q^>69IZ=Qzid@DTcFl6*7@%N;n1CfT0 zfBbPUq`d zd;e2o{2#Q_Bl<$M+d^J{c62LNyy)Z-8uD#WC63EkkFOlNBGtiBv2NJ+@f!VIc>?EW z<(&MIg|Z8W*sbC+wi{Zhu{;!%-}!ZOhT(saarwwMudpEQWcy=zar&O1sr*&4#$f}? zfC5zT+-4}$|AJPd{q4KN=Pj$jjT(bZyG4X=|7^NLrMzvjoI9uDXZ2$(Ys1emC|Fx+ z?2Kr_K>_UW^RmaAgL!H2v5SibdgM1ogq4N{9=V-8FKA%Wch*j=?{rR=4?TIOpbx)qN@VMY$DFfh4W9T2qi%GE7>sU4gU1b1Fd_<3HQvzacr$oL{r8XTxL zH9PiB^fRHz?zVL+k+0VM#Bdp}KwZz*(hS4Iy(a8Sto5k&Al2*bd`Sx^Ieq$+2(0Kd zyNE|qKmOOp-S#&P)MvN&)P^q-zd`<-Ei;5TR^*daj+WBq>qbAsXH_ddw_r~Cpgm!& zW0#}_@pmx(6-t0(yCFiBD(Gd!zc>aTid7p$$ zcK@eL8HvH(=RFd%H?;=inJPcZW-|w1OGl4FHsU-4;f;*E4|Tf`%64t8>%Sx5kDH@m zeDEC$>YjB!R7wX(Peix}iV9%l0)&o_XwcRuSo} zpn%6ueF>_qm-M;DIN{U|5lUY@|^;?v>?2I5iH5&^J-a$c%^PY z&b=T`RiF;C*V#RES~*#;KK`jEbMsfN%fmj2Ow!%~sZ;0|`yUPC25$xMHTXUWLs~!l z=qt|NAnY6-q*fqjp)Y7!ugZ1b?R~cAYz!BWfTXFcxu$>!Lo-$DzA#Q>=`jHRATln@MPce_Nt+3-B zBG}z?l`DkIjT*^W=C2s`MToMhjH1Dac1Yyn&j;w;gbT;+ZViVMjA1I{`#uOCAnjPv z$a=LUc7^d4yQw+O<7Bul0c#~@{DUp##$IE--*)X34vWgT^A8XI)qZU@?~hz}3Y+Hb zg{14Hns~NkeqR4gyPwUS2g`WY`Z;=|+2-ZE_` z?X@SykDxiUfcXtdrf|1OHXZ(%%&_-kd5ogxSM##NoMcQH75(f%P0afl$voSKT=!AR z?eEOH5LyPB(WA?rxAf&!#mQ|Snae;2Fy{Z;Z+f)<>NNGdeHCK=c`xUU47?OfiEjTD zWu(pjBU1cN9zm3eSNV8U`$!;UMIc7_`0-1&j{<)M%45boqsrzulFJe6w4d`|93u4F7LgIGcbFvp-Cgkg7WH%o8 z+m0L~$aAJ8vJl|53jtVq1t3p16nPblfHj~1a0>gwy!z$uvX+>(0x*?V?$V2hpv<*KLDH<)n%bp9pmjUZ_U*l=+{?Oy{Qoz+c zHF?AH^wBL#KhVjpx4~B2kJo^gXR|3S9(pqamK9{4>@0IxzTKwq{3 z=<^8xd{%(@G1eWG{nj1&@0bC+a$$bcV+1gFR2RVl*!Ft>VYc;p2soI(S^%6Rp3Me* zk=r!QS_HGa*Ie z%UaZ)6Rih>D?7z`Uw{NRbo!#~yY{>|eA&hmcqu+s6>mA4y9`d@P0+c{?vHq!dgnc$ zO6!+J7JS$G7GZ|u*>~)boaT3Mre-|-EdevPwW-tn(geX6m3W`-;^g!oN*eN!28KkJ z0eb&AVv7!3A>Z4GF(Hvc47ZCn@$)vt{c`}Be`XQ%jVqjpk5OEOyBB%RoxS*F)+yUH zPliJQ?!-?^dq&7$mUcSJZUx|WYPIlC+m^+l1?2tJM_$K@jTgUE3{r%Ef%#WULS<%M z8hpQmrn)Q@>XS#aq_hAs_L?dfQRWVFv%GDAQ=>jUn^p{#bql__I)%&j8p8uPd|tK1 zSG8fP<9>iOsYubHd~OttlvY~l9&+&*f_$|8G?y333%n`iy;$ZT-CU050Z`|@%`Fqi7$ZUn#la_ATiEH`=Om0tD~Z#rV(tvIrK2A zfUaiyg=V-OV8k3SjBr05|<3wSlDp+G=f{o)gymo^p1p3FZSu} z6PB}XaHV6dL-23e411?AF3feBDG2VO)_iFT2Xcu|G6uncveVZyX1A?YscdsNlZe0F zXhkkttg<&{Q9O<$$9##9xS59gF?m zdEeH`_J;~^@xTebCTd7;Q=MkWrr<|QD`Zp+zp}(Hc(D`@886ZQHn#Z_us*Ev(DudY%O?H`E_tFnN@xw zJdQ6{e$HOhYMG`d12AV!bu?z@Hvj}PQiY=EPZw;!2HH%)dwsWDhdp8bPQATg8eT?F zu^6#n8*7CTo`(7QZ(LN1L<2ydEO)rziz39v^a%l>o;!oztokaEzL9QHF-f^Si}FFB z(pmTg_Yhk96W_?Sr_6kM#RD5zHCqbNF2mUmfG4A5S6!94fTt#_S zh{)!2zOR!H9vpI)d{B8KLgdioACg~vwVJNrPg2zd7T0tA2(J8a4{KNEQX(mvutpO)&H88JnAhF+-D+DWj8Dxwk9#1fT)<2KwyT4`DH}GJuk_UOt1=O<9Iqz54u& zl$1$UR#rcm3~Q^Krrhsk<8ZhcE=6jR0|45Iii(PMXHK6sI)DCre|x+3xPPtER;wk4 z%fxqd48d$|8~p$d-OkPqvkp-OecYR76@`V*63}Q~O%GpR$ArX06CoiXNs1c)#G~(m zaUwOo-Xl6XI)PGNQgV1Rlyz!K0NPVrQUasD*aqVo*x7w23HJyK3+HBJoMn0xUbuL% z6m|B@nL)%)N+*E1n!#VZcqUOFkeZVtJ`AP3Q_vn1*#(;&8;+|vF z5Rg+SU-eU`fZlCy?~zI#CRkXbdJlK^T{g!NKiMj6dwd9QJtb)Gv9gtPp3L3T623?y zt2!DJZ~&BDjJTtOXZvcPyFlXVM+F)9U1w0=`bvzWnX48!w)3$G_=H-L4r|F|3rU2SiBSr;BU99p z*@AgCZTAq1<$o_OJUm>Mf(67t8sq^d2G?#DMiZaHvxlt^8(381CQg&s%gdqtBqF=J zyLT}kaOH3GaR=;^I#?g-SZ_H#$d7d8fjD+MC8$gYs+7+hhF<0Xuo8qU!3m5#jK5aT zJ<91d=OnYO4wGlcc3bCfhS>)~*SKQHr3rwZATzG0s0^0t>grbDidoo%%2nd%D1Yum zCezwcmP@1p@R9e39Op5iama#$t>H}7?c6v}q!^8KUc@4^nk_kN(a88aoHbM?WQ-)I zuzh33b2dfv2BySbg6AQHIO4G%5)`Sas|V>yRLO_+19vThdwy|wmyglioKd$%EI;J@ zLaVKj!dX?Pkjwu+`|+?N7lOHUUL;9%90MrVk$>&w2E+gAe*NFQ4(#RsuUf_ae}gLh z|BQ0|kN=h?Wdw{iKHSV zR`)Dvc9>+~No0;8D01nL2w24-u9z*m%-gD|t8^k#Xq(*Yg4vq22CV2tdo)5ZX@(7?ff_R(r-p#qD{_9& z9xc|n7JF?g+T6=n4k*G{w|qU{2rTbIL|ki&HaDkGK~M9E0n9v~x#XY_KH1vBuOF|1 zl5BDeP9Zz0ylux(uw0964JQ3DaP)H0%*+c=$A*YzyQ3*_K=&32ZMk7w2N2yOUDcF#zaI`ka<($a zv4C-VwWasrzCBzUAWL+GGvN+UNHEbU%If=Hshm&iEA;~OG-v;cQR-3&{t^cWXSMjY z7!H5xFR--qr;mC!3P4zomWIl5)Hmi*QG&8{>rYmJs*wH~lFOzyf@X-xcUjD4N*)XJ zMzYq`{4n8Mptx1$30dYJ3t*Cq{kuKz8U(4gxSRrv$x@nmV{FDt@L&Y0M|pns`*&pme5w%;^hY&=@jy zb_^qmEc4AcPl$!5HZ01V^k)(i&rVuJ@{ej*AlWn^Wm_L4gwohBS{zBa{n3P!S)UjO zniggAPjOgA4oKq#`GhVxQ*Uo}(Z}Gj&0%Zt4-=6KnG4AuydJ9U7>HC%bN}&iXN`l! z(EdseW6>0MCtTDxDtecvE)~mMuF3Og2=Tkys59B7rj{; z4ngDJ>=Uy@k&Ag1Ccf%;DQ_|ELcs#is&7ykLwWuQDZbiw-1(vNz7<sq_&KT^TN@k{zeMtp4gVv@}=2 zcrNxEBx=VgmW59VtX75E>%j=aIFF1Ui9_PFA(yS~^WMtw19DnNiB#~jkSvzvZY-+- z(RMrNan6ej8Y-q_fw)08Yb~{WFJVZ4|DsO@EA?Zzu|J~Be_drL5ELh-A3VBL(lbbQ ztx+;Z5s`X*t_p7hi@!7QYC-jcpJ)k zXSM}H*f%m*rwW>K2GD-f)W?KAr7X+Km?tw?oHTHIVmGOHNUP81Vh6~1#7@|`#=4E8 z=gsS!#p`A*$&Q-CNsK8G2TPS{#(|Q8a^A_r0xYMxy<8=3dXv89rNMvodo3CDcVMs;&sVRV^}pJ@NPf2EZ{`DfD&=cWs7Mq0&s5NDx?iW~e{gDM zp(gzGPXJn#CLMp6otzTMqI3f^hwLZ1pq!m}nL7VA8?;A< z3haubCd36NVCFsQX=~AU+_$JoBGrSR{b!sj#<&Vap|aGEf7l9rc&RFlTy=n6T4nPV zr7xwMXx6ffa1rC4o=u6mWNvaibyMZQA)7fMcwmn(YcYHz1lm!fpCQc}s8tr6n7mpv zo4N!RNLJc49JywN`mPQ%=Pne09**}+CBvOY9J7BVrsj1u>ZayU8gIPU8mp74i|&8P zulNJsH!6hPp_H{Hv}f_yQmq75nk(!*7h{Cu-&99iR;}4MuAjhc6w9NsIr0h}KPBK2 zcT?~s_WW7CQjw^w!*zF^@=^8=vKWCxtNkS|`*aX%9!W3mW1*hA6KgGJzv+l^d7AR& z?b;l^@F%Dt#Pi5swo;OJ6sh1V?`7HBdcL~pd~-q3RVfKS?tAKrSB*ITac!&)A>@(x zly!@9cWa_p#8q*pKY@m#d6tbQ^~38P-Zpl;XTR}L^lKDf{P7j2sROgB=;iqO+wkUN zao_vxe$#P1AiwWtKXZtRHb`~ zk>QR+q?Pna8|ORQ;x^WLUn56z(8|xzZ~QfHph>ReZhWDhIw_p!H4K|^ z8`3Els}jFh*l*;E<6RlMK#_{inv>?%QarO)@v3@L7)SEPw>O*>WcC)auX!v|;++3_ z*WDRE=|j*MMvsAyqE_gib-~!Ls3S%>zvOSrKxkroorWCWyCMmn__>b7^RdV;GsCV} z8NC*sUyaq)9i|rjI@IB@s-~z~(m?`#H*OYq9i-vsmrB=+5Iz-}OjjMB^Kbs55lj z{J9#5u(iAF=wkA#CI=z&myc)0F7OdDUY=2WY@sKIJ|lrEj{52vmbSh|v3*2vr=Kap z=p!v({M<9>H8(-g-ZC`z)So#9g+{{1JXX9`syAtk>#>HKw@T4`pF_*xR!;6ikh0xND!J{0DElHr|C;URLpz z(xR?9_bZV8(lCwdFMqvn)BM`7wMJ7^XcRw^SQup2^$r{B&OG4qso_H;agoenZYg_wXn8{Hod5a{tqsn*$4QppNx z5EL&}7$Z)IwT>t)I7kZ`TAk|OiYw@^OvbLFgEmOtrDrl2J7yj)Mnr0h_0V0kys60b zQI?&y5|V8CpjN3nOy?E-eW}i4*Y(7qpcso5Xo4k0nmb24vM9ZR429~gemnzlq0lxV z>C%LvS!3po=L+I^1r8TPGSMy%Mpy7^sDu%D98#ugK>=4SVqE5smK?MhNRSnnu_c2amZVZJpgR+W$z?#&Xj1BiB~~zm_)k zVNrowwT1jxq=!hM6~#WW`BRFcXA`K?`GHIM-p+r7+je-6raE>x6NQ+GG;Fb{g|@g_ z-{A(thoALpgf!!32ihx>#kQ(`^lqA92M3;(PvqAuJI&}KB>q7EI5vR&Xy|PjMtMR6 zzid_JWM37Qy@U-xP#w4oLB@Qj)K%0^~%?- zBP55BG+4nU-#G79iD8(XK}nnYNs zg$&|m23~~m$F$Pm6MVP&=B&ph%{l4u(BiG(9Pfofm5o&0uB!EG#AKTv^1khT-*}ob z{VC0}Gxrr;_~XZZpcq>Yv&dccJgmwP`?QRq>YvxRKaPn)E_W6={7upEx0T5HE^W%E zJ0VBr*R}tyK>6F(?o-^Wixge=KgN2PfToEIK zfzi?WKz`}N#CC}Xk2IN9I&q45F;{FK$bmf29f|5yTH!tHkB>!c4tVdZx(5bDy2}#X z68jV-{BI(FI#b@-ra1S}_~z==QI#hjG`t)o>UI(R?TLGzxVYZ_k$B3}opuNmFU>z7 zaOu!vaw+{yQJa{T1(@?~0Z+Y%zaN%5jWvc(|N4CAo8O1zab#PJ9Pm;z>xfe-2(w{n zU=H~9N<<8x(u96^4{K~$lo4GM*ZLIGXp4l3jUNMLP($BPidl(kAz8xdnXcrm{8dg2b0n9bX&dH1P1#g)DNpe@&?-!q7_S{wDmxn-*=o5U;?*z)h7H*xJ=9z3 zxy8vfyzobZ+m%E#Jn2QJ42PzXW1UFQess3!YWSoPgF78Bt&FJ zC0d=^`?&AsVRHY5d3}DVWaMs(eFL|t-CjGGjKLxxom@_qhb1jL28=!oKh_m~SYG;S z;+1c`;pdrd{0uELkPC^w;?54o@{$h}M%Rej6CK}@2B-63Gr`kKEpF!Bhlj;FPZmPfpDpq52r72bcNEIv*hZ6d4qw*Qx=AodlNNEYL=6@l$l{PHRyamHv!4L)$JKmYNN4Tri3o z+I+75CnmzrA58!9)PYQ~lNe57(&IS(`%r!bilp;eqfBF=Y;+Bu=&()zS^ItoJwOgXyqS4%eA4zB=NFKM?+ zsu}C+BhG`x=_v*7*?wDV{w8&Po)IG5UXPk2Tp+EqO zPHnDQ8xSgiunx=4D`X9b*YyeHo7X5pr_5@XXv;^rV=jU{q@*b$%W!&n>{YMqsnq)x zuDq=oH04IUeD&GAPjwjQ{0%P@;o_Dl_iJ?8XD(S{YTI4f=7)U4PN^U3S*Yv1wEHKP zK74-gC{WaG9U7$5qb`ciy+cX))`?w2qxb~G)dvhLoH)9R7u^$;-A-nChsavjnjr{s zmj|#&XT0zfsGgAr1*%%DlX`VA0}-v_6@*r>{&N68&71p+d5tQb=-{ zd>2IE{ux6@u_DZCcyb&Xt+PrY-MI(GuNT$*+9Bgr>Cq@(=M7%^|5Y9o5*2;* z?WY@O1426#*7=rrbLgvxMD*EHa_FC$BOFi}tiyGgMz#PwkiIlV>R;8hzT^aEV3Bem z=-rZXfk46Btsj@}zsJ)JOyai=D)Je60$nIY=XRO;q(|W^Dk# z0z^(NwDuw4=$&3m16@Y@w;aBRzZhz!-o!%?COrxRJ0KuxvUZK6%~~GGwJD?qu<}{Z zkz^ZdF{N>;f51!&3fQJ?4z+fuXEX4<%Dl)Wgy;uNe4;|y?6;?yv%2fzSyh^e=hGKN z0)kZ9s^yev&G^@Uo?++r@%yX=e6v^eWQiQB=>QW)?Q-rS3vz4sJ+r2cN54RKwEC~+ z+b5ub_&@&w&9|<)2fMEy*)wj)hj|-`I+WLVr?Gpi<4#dmzd`36k)qG9ZX7uk4AIZ+ zHaB|dtyoe;QxL!_N>~|(Vf?L*pKjwYwF#fW+BLh4W+3&?APZ2JgBank!rFBX)#&Vchz+gsm zIDKrx7|gPvAD7)@9E0H$AaQ-5H)EzEnN>IqlzgVE=J&9C>Hz{xSDLq{{}rol`XkQDTzpxFg%A!=q&T z$-EWNR3Xgh9uFm!*_A|6s!kQ@5yh{Hl*km^ z^}j#Lt5od_y~kNkZ`D~SiS{|^uls4#v^IQvSz|uoUZr(cSyV8ir+N9w>ciHVHJAKB zXD1cjT|4VPH$QKfaW6`?R@Y1Is;r9oCUxldNW@j)qa^C!_m*dSQbT*@OIsjl{P5GG zxsx=%M!&lLeD9isy*zI(AlYL(NUJ{T-djv|KqOLKTqr^3?vanTKex`@$}^BxmmNpU zQ=`!cP4xUAcGP9qNG|a{n(MELZ8llnv!;FmOGgA;6&^HFNNk+r$VRuGJoF)W;zee= z1nO=dy=qqCkN3TzV{w{D`L$7ixqZ$-vGyYgsVW;x1WX{N-A*=lpFt-{7GBL{b8r+{ zK|UGos*m&S4?dD?5B10gSDxV7$DBJVUEgGb#tC6d!ra%_}4<8FNGDCSRHOBfaGjO?<)JCQ_ir4zcQ=9*-X24j=T8JmhoRX4({~0X6RAf1GsJD6b;{&pKr&t58PTgbUHYg_l%I_ zIg49APq^?3H5^sC)p%wyKj{tM^23u-mmW7Dl$K4cCta>yVo#|(($?0cx79XGzef`V zjzlQ+P_t{Qqw;-)Z~hbX=3h9@zxip)9%ymqepB}?KCb8-b6#3n9;k^b0EpjZz!h&a zAQyn@LZZaBRj|ZmRJA04&3Kn?$Zg_$45>3_OCAVNqf+j&9~KQ$2EWo*mofA z^&P08ULP!nnF=|LZUIf$#;;$$rga!U2Nn{uKn|$UpvpW{Sm8o!J+QxME3m{KA^?dm z?E;IsC9~}=a+Iv4i=yk8^PSLR2Tg+jbnmDYPr^+oG-sYrfKC_&L?@SnR+RQa+Z z9Y7VR0H2vfZBwq7&)6ZAZBSp2mc(gz-juj8J>pOL`Mf^ zeYp`|G!WNquxXfO(aOMT`c6+jN3wY?6zWL|wF?Cl9m&57ly zEr2Bqdns}G*|l}8;5HiQ(R#W3+DfLV`EM51xdOA5B4{T6N*llfP>kkYF9PL^4GWz2 zShZ(sem$^Bsr5VIHK78)fMFYQYl8rnm*UoWz5ikw@1$rx7MPVVOot^r=#6(?00^X- zckgeSpCC{tr;}{(j)c~`ip~R{e#r;d0m0r1WPQ`6;GY;#1^4NDYV^_(9*HPFm!9w1 z8&ohE`OOmsg~|hjCu(^Sym-ALiTY8*val%y7jfp{A$*f*VV+iv1fn&P&)i%!$d}Mc0AXq2vj#cS{9y$VNynbzt$MkZk$3+^`ewM90)V zp%6F6au0x$LlG{m?IQ{YE}=G0L;rwF?%x|czoyYS8l7_jz)HjW*TCQFqIr-y2BFFX z#}|Q-+b$yy=b{vm4T6@eXwUag4Go9!pDEK-#*38zDA?ec04-w|xi)e~Si44na>7!X z$FC+|I#$;;&k(+ZoNYVKytw2Wefy)}8SAieBv62`4jt30j{3z&l6DVqChIRvo>Ju<-@4)gkc}3jYr&>;rzE8X z-G=AA(T8w|Uw-d9zW60x@rLDGY=$DqLhqZn;X{^am68T~WW}XJFY_*`fI@orMhS38 z^7VXpxHk;wQH)XQ#p6IP;YBV=#bb8BXj+Z5IcxmOq8*Ba@iu(T=p!yLL%JLRPSve9eh)iBH2rDP9nZixtE8;QL?pnmwi1 zYJ)6vo4Qk@``GZoNQ19hnrU*KhPkUGVH{i#f|ECXalvc=M!Tu|=b5iug#9P=w86WC zHpeag07?3MtQmxuVQ9b-=)0!5He^|V4yI@sIk0nHcXU@=8=ZNxd9WCpk3c{*UB}cZ z>YkSO(8u>Q{I>2o8k4?=tk7u`zGwN{o04ePe1>?1ZW?^=T#iF0Ho|R)^F-q2Cjs;E zhX4}vSoYB`DAJq|yxD;fD}pSj`zo#hwfQ;rFV7`6_Odqf%5x5D>#=5|uMMF0j1BQR zNW44IA&EzBt^kI+XUhim@>vbTW+nHII|K=y7Rf!+IUY=%+>I4uvwayDm5C z!ioT{G+e`Qm`GpVGu27BBU@Qo+Pko%#!VlTm@_$A46f@24Y49D^ya`WKzo0*`<>IV z>&)A+mDCYX3C_jEN>1Jj12_E3&GtQGHQ(D0FV143BR7}f0>4?}m~EwqJ%t!!QZcx( z;DlXpfYyA*o)EI;tvJg&KHSaM`Nsb(ChiW&b2Mo6^)da&kF5xeq+#WfhZZ+kt99Jg zNr2NX+T8n^JLP@#S5UCMG3i3XgK6h^n?wjwlc0$knm|Z$+80K5_r`9DPk+3cR5C{e z+v*%$&MzSI?1*>6ve}9EEQ?*3;G#~MhgkJz+G(2gu0E=V8~DF@TZ|r5d%?jmoC@=c z&yITd%U$Q*r0i@6Sq@!?-L%iOUISt+MlRO^n*37wyD2y9+hg^e^=+jrR;CGImVM!5^&OT!hi3iwGS5sb;lch_N){pJHDqetU^H_SCU2&bSJ0&YnfWxufD z8|NF&Tgqs0h)Lh?%H03QaaU{)SK$4PWLDgN!c+d^SN;cm_ur4sU*YUN@BK#ic;S6n zAdhDCR~9n<>0ik*{@H6l7BbrEbolWOo^eBJf7qKhCo1(1`0u)IBK`Hr0mG0=!LIk? zcV47QUqA5h^BcE`J-1H_<-lOD?(eWGIIR=u$8XDD^@{yQd5e~Oeu9@%l~{6b?~WbU zBw-aPg;iqj^KJ>ZpS$(AKXnQj!qh-gp~_b+I5zve4qw7GS){-k5SK0fE3{eHnJy=yT01?)^gd$WL{Z7_O?+mG&=hAeWn-vC*;l zfl8K&CE}_#JK+H+Ce{Z&QIKGXsi`ah%m4RZZ_h_QIQgXW?+^U@Gw^5{S0MPFS2M%! zX3-pWVBON0A*;xixcK-885+T+&?yhgyO2fTzkHY57|s!R8nE-X<{hQhdw-S#c8ksb zzSv$LfBb*?6aROf-%fd3Tf=pa;e`}?puw%}GEZy-;yNQ`P(nyr8PyViQe@t5fM&f1P+}9n zOQ`!iQl~qDKAyJo3^C{>1$ah%2G)9GOS4xSQtzVPU_jVxo82nAt|`FXHU~=L0yn$3 z(fGiDLaUnw!$wFTczY?boIO#`>kXJL)?!;*)Qp-J6K{a=UYwfybTE^{hTk4MtD9K4 zt@_Ul>jt0di=w`+V&uC?!L7W7rLnrn4#4Ar|2C$4uTm{LLZu9DF zS-Bz($S*xU3d&q4)jCLd4f@G^Q$3(}ze3STP^|)IMbLKLdvj$%68|04340PWyxPTp ze~}d+{a7~ypETIE2JBu28E6Eevu2xHk(;VZ@Gx#aRxh()!Q%mP#*u93KaUpzLZUq?w}3n0pmxk<$!Rgb63W6l zC#rZzO=p=c*@N_ie+!)8{l0(~2F~Q85td?K>FV{n}Y&%ip&~=PLc4p zV6S@uI+mWTp4$g}1-k@Rgcm7uq!E-eX4B~B!;ITN^ZrXf>=_ca2z-^N!4!|@1 zm`Y9a%^1jul5JurS@$fs(hs%*%F9g+U`8NeyKQR}TVTN*@pGX?Un&m|+fDNZ{a#}> ztXAk0)(EtFbKuVh=wc4`uDw|v?*%C7 zG1xtB)W)PfX0uHwcz!1)AgwL*6Pv8Jy)lML+_&FN@IVaCse}wkMXn zTNej|s&;n24Sns(Dw=jsgm>sEisOf6^)5;1{Ej|}+I0Z{C{t0OSf${*-)zBnStz`?r2 zv#DY0oeW_6xc1fJ)ep4%a^~ioOm**gWavOcxQoW ztAkAT{Ix)#oF-znTA5zb47w1KZ2 zFz3q5N^Wxg^+{4+QNJRQxa=TCFN(wLZW=IxltbyL5w?}aFZ8;0UfW=LUf1aNp_EM% za(17Rr3GnXgmP`6%$SEO);$dStzF(Rvj!1BCvZBe7qB}QYotmcr6`6c$C53^#}el# zy?UTZxW>G(8jL|bfKcy=O3BJQFNn9N0&Cm|4k>O*!u-oMXLN5WP+rot=%?j7=(Yg@M^+cJ z7nTc<`mS~Qqk07%|L0tG-5RX#G%)KK1((MN*a1htLXLvI&IN>NN?Q_OcBJNHWqn8o z(tqB7q)7)Ypa;b7=XN_lz|is*83x)0hUu>QUtfb3%=DZ;z|j6!hWM^EY};F&Edb(( z-4)Ug_9~7#`2)125eK}yemlIKP0Rpl^=0Md+w{96a@s10jdZ|cOk#l<HZ+}E==8dUFZ5f{n*U<#1A0o=k*_^~^^@eq zZB2V6VE6RKbD4;hh=L$F{@J=W;y#JZ9S@~;kyLG(_7Qq}r&U!|4=p|`fMG2wUnB!% zRmW%O44njFaX{BZ8U-PT%iTyFV)WT|kqQ7*UfBc~*guO-WJ3b(8yZHdfqtET#32uW zd9Fq5GZhDZrK{xvR}|rM)VYUa0KL3RW1b0mFBAUVjJ=^`jLc&J%U!t~2iGE-sC8NX z(00(9Yaia9%abdxHFa1@YcFFBY~OF*2{>_Ew zMUi{l?lmUel|I?XR{^4pk;n?30Rl&sO-bK&3iGXH7;3~$6&7kaJowWE>qom#hzo6e z9Frke&a_9&btaGd2ol?dd6q)NWV<6Mi``h(K)?t7@4%M@xJ4N?;kn>Ui;CN@U&)OW z2%Jr*?>M?5gb82^&z_0oowp1~@lbA>ItK!5_`K`l1ionhGb==(iW*e;71y4$2apPX zok!t=6MhQ%rXjaJP!)q7Ftq9sPXl&|e9%(q|c z97>jixXHO<@oJr`)Oq(?MtWE)$iLc)`Zjs`U3DL{^=Y*22L4ROh3c?BEpIZoYMp_c z#NPczB{iU1G0C(X>HxOE)}BW4zbe8(C%~+e4xc@;A-wHIz4gv`?H2x856BC7DdwAT zdz!pkY-;jcqXihs8*ht^3;w1N`|tnE7Qh%jeexu`ay+OM?MRci_7G6Z6y9m%f~!=ChJyT4EPw zTKxR}W6#@{?uLuHfk4q52Y{LJ$5Iyows+5B0?2153LoUIEk%PA?)}W5p*sIYuD$F0 zT-m^3gClrAJ@iOCh2Ve`(WNh2Uj;XBFSzu+&jrk9U-K+Ykx?|D(i<%MJXt$bTtl^} zE^QufkvwqB)E;cz*W-6eDBXG<#P-_uAg;h3A~lk%2(WmGjrVk4kPNkF;l#)9lcoIX ztk*M^LFe|*;?mvAx-TWHOZEw0J-0-^zsb?Ev~Sy!(+HYcZ`nwhCCWp%qy+NMWswe} zD=+6dlfnuqkSQ-g_8@gI`c&X86EmkqX`P_D#I85?547@5_ve`kO#`iCNH4KmWa#dp z&4@0)1ASq~b{Mat6=5bmn2Yc`9;g)ifdCh#9McQT-Icp!R{)^ql$}zTVYzm^9C3 z?%d5Yy*r9WX2i)bG&O8OO=Y@r8BN!fy@ zyT8<){|AHw(nM0i&AaT?(=5iLEE?W0&~r}?b{5%q-Ct?Z^r(rYmAEoU%#)S?72d{{ ztZMmk^zwru1~osUll_9i^2SuAoa_Kqf_tfKTC_cALHfenp-^ZC{Pm6JUBrct8bzy9 z+x~7J7TZsXS!0HMkFIVR8KR^n%Z9ykAEV>_N=3$It_VC7DfrT%=fKA2-!A0&C44|J zF{YQJOoQEoPXXc?Wr$VJLeD_R)@Y#?yGz2?N19T392+|X6Bebl{R#D## zEeEFfKn6(n?5i~?Foc-%UEwxv3Sm-=hZ1zl_J`Cn@8i)Q_AE~YL{t45{y6LD^9Ief5NF9mk4ax;LxUoWPp zNG^&92z=9B``6=&#&|gi1T<0jmKFZWJP}^Rs3RT`+t%X{7Z+on?nDV zIN(;XjWu^=6W@vMQVAA1=)PC-b!rB*z1XZ);R0$wg$|x<471k|Y=NsdDm- zTI{V;A8Mpr&TlC^)idwWnE!VFI~5ZEd9;G*G4D(8%dSq$KR!k{20q3!VLAA!!dtNWn~8`DXBw?(uTb% zV4sr%e^v<;(DJ}0O%dGH_dMBPFcS-=KQW-jkJ~O@w(E(X)U#oL4*m@!A-@p}Mn`MB zw`~aHz-P_K=F0ZejBbZvPYbtDCJXqx7tsLUw*Ac>zCWp~Cx(XhV;Dr74})_wM1v?9$TG)BUnRKvyFU3}fOtIy#KcgJ}PUjX@~D&b&jU`waUolenM) zZ_k2*1g93^+6sng?Z1BA(_zcoccf(#2L@se*8|;(m@^Nf(z3BY`yqvy@zhUI@#@vI zYP@wT(1{MgKs2ObY9KcAL(rEveu_2pBo(0F0iy!>it)j12+glmkiGndu&VRlxOAi~M%+;)cw)OG%RWd<2&3dW zcB`pc%*M$ZG*~8z0NHea0rtFY%?LU0_qA(r?y*^NkF=I@nL_v3(b3UaaB}w0?^i{t@`Qxd zoihNE^1pKi+tIz>$CAw)rwX>r9RkQCp6U*;C)j+1C&C4)iIto#wkT*j7_}C+F{$Uh z_I*7Be=MSideY%AO!JVxFM{loQQ$a!M87>pccW*rQxtAej(NC=9#Q3a5LTBd#=Hb# zRdOL2lovDcrvHn*w+@T4+xo{<6a)c-ZUyP?8bCo%>5y)Qt^tNl5$Tdf7+OH2ySt>j zI|n6(p_|{$^PF>@^FHUj-uLJA{eJ&*E-#tc_uBQ@Yp=cb+WTIs|Fp1NYkQTE*yOEO zX?8Z8VuErb=phgb$tEl$JRA;7WW54T1F=MOD=gKUJvJMT zA;5*Z)yAGfKnr`?xSR4|n(=dR76}R`9&pPPIE&zfF($a#E^My`HzqdHZf~od?R?)+ zn!1p4tFLINg-6HQ5tOIFbk0X?xoCjs0j--=ZY0pqvzzGdrNnLuiC1-RTv@vbyo3;k z4W{ALmpn}(0}a>J2nPmYlDEKIBp`K~Amnu#;;Z1#hX6(z7bvW{jRJ*}%*}QsXSw0w zN!HBuP;L3l_*zdKbb90G&!Dz0ZIgppr%gcjeU{x|=PsxdgJL=#JkIKrzfk7_m9;EK z6gYXg$&R0km`$>?krc-PI|_+2(89E!_Qlx3&TNHCtlit~&dG}we2+@_u-fi^xpJ<` zXFzki2hIV)57hV0{yqF%LWAY*4|zN!k0M)kkl{rGp8{bKxJVL4Nt?%Mc2cAx)F_K)wG zJ!jVh~4LyZDYK)#s=Ix3on1bunPRkOTZONQOU1xh^@$5S*KzH?}RYb9L2lB}GDjfMTH! zkts<@%tB!&yeVg=-rn9}lgEdL)IiWk;N23BrQ){6)6oIV5Fpw^6tLagI!;PTY5{Ks zG}=V~5lmKp{$#jRj|M`f31^*uT`gBGhxCc@@bX3hA#n{oJcRg#h5P#;2QFupc(vr0 zqqYJ%$Il@JGp{%~In_h@2L?vYO&fD{>1xIWmJ6#+8t6dT+3ej%O0`(@Doa)CJ%ER9 ze=t`z@^T4qIq%<4ENMM^_u<2bLz{ch+d^nAKYv~y!lrCpt-exG9^H4P|BT z2;CUJfrq$#Gi7dGd+#f-aB$#0KL>)Xb;f_nE;z~Ui#dGh>S&dML?Xj%MK5c^KTnVB z??cZlEecjP^PJ5!=eehZYiQ4U)l!CDEjgUQwN}jMFX;t3o!T2MwG~ELtj?R8UmhK^ zr5w(LOnZx51Cc^@Oe{joMw}tt$?Pcvq~zoh0}3Wrh1}okisw4j_HoNqp|-XP^j^qI z|H8yZn(|A)Z-m@fE&b@i%wgxa+vT*!WMhKBN+A-&8YbMa*#OLr2jIo6p&PE2lg-qK7gZfswt z5xxpqSY9?rXvM<|edcIo72ZgpDx%rqB>+MJ;PS1bF%a6qmYuujesV<# zv$%Y9VO0R%%ujcUW%tyHi>o9aQ>_kD<-QV!Z>tDr=T2ApE@07XFy?GtrVJeCw~c?y zYXH<7vI(M@iG>H($+_kiiF_<4PDJ9+l~1}4$w^5=`eQaj8V62W1ll${^d@yi{YH7e z%6eKcZb?mpuFfr3TnlmbHk+>|Q_ik*C;PkSrGn268Tj+SyAF+)*AM0Cq8I)turxL)dce=6 zL0enEr7Kjrf5|H!|Iz=owErIjfV@iRks_7BZ6`QIE9vVFRlkc_voB`9B&$`uSN!-x zLOU%+dH|z>JZ@mXt4CZ3;<(7bfPlg_w1h=)n%^UtkS9pIC_)7V911+ym)t^}LPL(O zFk&GQzUM!7zBPErsg7+Y1Ox{^(0>gmdvPT*VKro@V?x4=mlvl>fG!jWXqSP2o^lVA ztk+*CvI1P8CJ+}FHvrtg40+z18369HXm5OIy@wAjoF*kE;s7pF44j=$6z@#~k)W`U zz@;Q45b&=xb@bKV|AMdsj zlmhXhJa!iHfH*0QhudYa?}*jaFB=;hyWfD2PZ814&+&je4gLLXfC|Y}pMBjQQs`yo z<)v$AWOT3Bi%w8b^Ob}|(9Vu^ab+cKgZt@nz-u)*z@h^c`-h20{!;)!*pp{W_wBDm#w1?bNP4i3u6A|TM{_>BI8QEdgH4wGMwjnc9T zr;iQ}oM8wc0@4+wf zz2D%n(~|tHP?$eSw=NurmNM)%di52>K4?Jodh7z?bOAUeBIyM5$F=FS{?DCdwb${S zqto(=ij>48B%!B^fZ28WG+YRs`^dpv#N)6rHML32jXi5_fR&Zi?I4srA|Zhx9I*4h z*_n%aYB8T;|9`VK;tD(4`vLGw3*NKU*y_N(#n&kFDx7s^9dpv}d z;kC!1CJJt@l3!PfAOWt5`47?1&|;63tc*=e%J&!Q7WM)A^!D<89NU2YTq);*e*O!R ztvRjo&@-X?(8jUz$C#(>Fum6d!nNDhiMw7HfI1nPFp}fxFi^OIJk^{e0E~6zJqg}m zC+fzUPPklJgDO}DeIeF~{*Ryfp}b!EOHR+WNaivxev+p&`g&0IqD+d^1Ow8kK`(CS zzxgvE11D&V`%{?wbX-+EKKYTP z6cNS%IST*W zl$(W<84Ltce9FVa!p_Cb!^6(>l!J|(gOv^V$HUCdCBV%iz`^_UA0J9#4B#8c&d^vu z@s-3sssnxrQJUJ@+X%3-IypJ9IB~K->`YkM`T6;8is9g31}K=JF4p$?&dkQs^Jl+|oX!5K$r}0(@BkQDZ=SHSv#_!L zt85@E=q6P_-ptv^Qtg$Qm60_Rs6&{YmzM+dM~44+^jDStmR0?)tbAN-|DN;Tp8O*x zi1nri|JI{F;JRtb-_rlLo&w|fFG&AON1gR;{}>Bi*a1cm z;O5l$xBPz+{Vlr;#L&#x<$uZkZ$$sM!7~K^3p*PJJIg&^U>>smYa;%0-2cVE|4+XBh5P@L z;{Po4cO}0B?r*q$!}UuD{1WkR?)nYaFCp+t#J{=gH(bAjz%LR1=C0px{SpGdMEsk( ze#7-k2>cT9Z|?dH*DoRPOT@pq>o;7#gupKm|K_gWaQzYjzeN0-yMDv z4c9Lr@JqzMx$8Gvzl6Xq5&!0{-*EjB0>4E3o4bC)^-Bo+67g^D`VH4FA@EDYzq#u- zT)%|CFA@LduHSI|5(2+O{F}Re!}UuD{1WkR?)nYaFCp+t#J{=gH(bAjz%LR1kKBdv z*Q+f?*1-ELPQZ&RYZ?9iw{AVX_4d`vch0b_IhSZ{xH|kCalUgZ%`HdF+~xCpCc^)D zTZ!~Cp^YfvN|hicnaUfrxUny8Yc1L`8#J5i!-Hgg)^-G6mgY(D#ZZ!D4N|@NXdd}L zk4@_GG3YE|Rxf?Wkn?Wj^U=k;h$O>U&dYBMSlk<@c}A>bIZ)Z{Qj3YH^SZ`k7o9^d z&!54lfB7)_^IKaN{9B zZBuz%{%3mvEZ+RH4Q&pTx08T}#rB*78BZ2(3bzRSXJY~^ER$3F-@K;<+QAf`Ks2b$ z7cOaY^DFP(zZz1I7Mup_!jVqU+q3KtdR}$Ymh}wdyLOVAbTco_;1|rO=-WV+fHAp$ zRmyEA9Kgx%GTgR$YRJc1Un2YMrmF!`9D|D5CU!nSoY7%JvbQ9u(*9`L*;~DvIstI2 zP+3rI30edu#_h|{P8w*%f`HVvCxlNisU$iR+J3BlB;3Z&_E7CFx=A+>WB!7mbv2%; zS#QIV^^N>ZE3~LFfbV*2@l3a)SdVFL09(fRtARlpCP#2}jE=?gc@C@a8(?`(8_+tW zlPxsg#Qf14;=hQ`dRO(*_(e?V#vE?iJLa%7>$;@nwlvFlgT~m~zwpvyqe&qJMe}Ii z(3RU>X<0~zy&J!&JU8(#CR1B6ypX?vi3d}$gXN~NpGLbnb)FNs;EnJ}s|j^X?y@hR z@x^}5d#f7jU;JRw*BV1xb9cJ($-!*c%oVClP*2V2UjrLitzq{$IKSowLR)1bO!G6B zaYA{Fw|hXsES>Z|ZdVtr{)y(@CH)rHB#Fr;M@tUOg13P(A1f?N?uM9&j=y(@xgOpM zG*R+ue}wB%m#kgo;b!AHA7p!8aBdONB>U%dv9XOS>p?Q$wDDuR$q_Rwf3hy~!G!JG z$jdU#LfbE%B!$WgGMtDy<3feMn1p)lMu@bPv#bBn(LAfe35r(IvqmC0QF*^6-{-Oc zBbbGH3Ol>DHbpk3qg3h7X?ZaokQi}9cO$!n^*P%dtn8wq;QSqQdt4}7l7O4-yA|RI zYnaKzS@~McSufOhacPp_4c(p%GtLjiW}Reovi~_v{v1i5!v^jAr!nCi$ZnHeq44>6 z@{1?0LPNBSQk4>9e1d3N1!W|Y8KQ>?Q{|EJ70fbuSlu$dH{!Hhpk(QCri0k8r1(G@)#w^m5DC){E0j+ ziK0uopknzd+2m%Hnk%mOF2*?i^xx2Vc*4MGw>nE~zbj13Go43EQGd&DDB+?F1Y6F~ z$SCg3E>5zjW7tMV!1;xQ$m|_(yY}L_y51e z0C4CgA78A`TM+8(%cFx!`s4zg@(E_Vzpow!Q){-N&0c4`ArxNTTvA9aw0ta=Sba?v zao)@gd|NFnL#|Eq7}3D1e)8#VJkSJH2vx^VWgQV)SfB(ME>|nDx2882TISG;g!Sid zKjd4LjfcpEe3%Xx#wbDx$v{k+Hr~X1{jpeu?Sk58>|>BPAd{qg2LW|QZpeM2zYfx^ zbr?CmTJ9`3QUAw8NcX)B{$5H5#!T8?TbqA+!zq14M7inF5;NpQnQ4NkQTk~rLd>>H?}sOh8bXFzURY2N(z(BZ6Czd{Gh8;V7PlXSt?UL zm6op9p$Ff+b8WWzvAMzr_%tDA2Vn^lRS?yS3@$a|G9%lANumI&W#cfF1Sak;f$b-6 z@bW?Kjqi1LbNs=h=>nUsmXS-UL>$LjNQ*d(zc0|md9ogBU@kcilz5oeaus$3=hTyt zV~=#Mj>#apz^)Qp?(sHm@=g*He%C#&-iyyWUwMw2bhFV>WBnwYXEw&=@l_`xF8X{uTpwKroz%s1fV{*&)}j8|(@(p+{6i>(s5WB@5CziUH!>@Kbq#Llmdi(|g)9v7(L z!!!XSBW@qZ4>MXa4F#)5cZ+{8@U}~PQT;AGcT|EHIBE8CTUlZf z(iwec!;tJ`-SacPhyjjV1af)4Ifo?$Xdp@{jfVA3`xenL0mtdA8CM&FB`UOR@q3K7Cy9 zb6e2_VkX?Tgc(pDuzH)qD^AOFGJj*jWqxe+JNmIJbTakRPgVFE5DHAVMM5OtCOvr# z@DxwSs&n$|WPdtL4U(D~#xm7AS~EtLWqz5RNEoGA>`UCGYT;0cB#F|O<;jXn=JNa+ z@YyA=h%{%ah@V=+o}ZdzwZ>)Yc^2HN?=UbL<5)= zR%s#4dV?>bpYs)D$=h_vgl*D~W7#X9-wElWMrA)g<(}U?fBCGsI*g=FQu$6Fir|AX0`6Nb*j|UyF<_H8msWgJ%|@{y)!Fj)#F}m2 z*2jl~yJtTPi7KT7s_}$my!@#<;S4Kk7($&cbiAJo?Mfd1vG5sevk^iaOg=DXeztt? z2v!Pm={yekd?CjaGF~zeD@kvY-oZclz)LV*4YPk+T7*TrDohzd|y?pt^Ulnmt*>?a7+j ziFdG-reSsSjUuAc++5OB!K@>~_Ps*0W~$7Z>Mf>z{NVk~(H5HRZL2S4(g~U$1I3$J zBQxn;50(eIsZ*zkDfofMzBVMacuwEBAfU3$hBf5PTpvasL>av;StS4(b-45r@7giF!ID} zzLPeznkfh2-5Dpoy z3Yb|C)rD=zNiTc0bGIF4zY0ht%n9BZ=1Spy+~&Zg>qTu?#Q-P1(K7(;o->NNEi_^u zJz(i4)+cGdHh^V9%i-6-=_kR-@dM=e_HrBl*z&L|WGNHO zPV1N1Ga1@Xa-q9bw`~mS>^KHln%HUci^*mXr(>CB(A~Qi$<<-YtTjOyBr0u9htD`$ zQH~a4WT^kD?}e&-YJM#l9BbRibqX%if4|5P-JdwO!}(D z&h$^)36=2IPI0F#PzT}D(?IS+K?c`^aL}+Y>X629 zUb7R?55+|THbrGF<&59m>^4+`yPl*^6G?kwiDVdkGC|kLK{Mi?*n#IgMIpnlt#HP) z@4ZyVNZnuzYDg#OtGMdA5Vf1*PU1hB8+zU{WDp3K1o572{3U z>+G49cjXx-f}l1`?V6B>_xsU0l2_Qd65hgLB=MX_q+~~Cdj;5$Y;EHh555mavtb6d zpoZOhsd+oIiH^idJ)Wt365q`DjkiYZC%?yINCvQiv}DW|)3nx)#l}f@TVoG5??>IW zQs)|prwcUu`0VWy{k^U(vWjhaGf1`?Q-mRrS@I+5$F?v7%^+l;t=2*_4^M-MzQXgo zPPLAE;33QB8wRqE$WtfXBV29Z=|`R4Ft>t|*BdY0Sz}t3zcm)bESYzsc_DhgrFaZ0 z6`vd$Oq4-br>Bt+DY@jj?t6WS)<-AE%IFOS-Maf5Ocw4Y zMt5_UyMYcKnW7y~6z!L#yRyYm%0tVhfv5sZI}4BHv15;j(FB-K1u)(v z`mr`nE@~ZiB$BDy;4L_*diR&;>_#k44l0j>ia7N;&tQQ3AcD*~pIfseXKYwhP6B?O zeI0IDiT9yYx&f8i?rBNVF>}Dz1cT75kE;Lo^d|?^WP0kjGYlVHT8g7ObH)hQ(G%;3K4)E-6s9SDD=nRz%@-TKEiLQ%eIMpZ)z*{prQr(o{#MzY35CghIqd3! zn^E#trL@7jUK$Eh*Pr{0jP6V>*l#Bw4jF@sG-HMt*Ew=56=!c=wA4;ldAYry>OP&! ze$B^6x72HXT_px39NDX5xg^cQ7{}Vm^Sb?HgB~k6kS-kHt|r6w4Gnaf z35J2smZk3evG*X8TXxoz8AOFU50sy^b*JNQO)eIhn0QBK4??w$jw{q>XAwmv*#jaV zRrsJh!zSO&%nsJuTdj%BhpT_+Qi|3|RCaW-vaNRWPKsd3CZ+RS?GsNH!9})|*`}0B z({EUmI?p8C_O2~!Qexb&nz(41yO-=*?INbiz;I9VoYZ<@by#OujngqFQx6*6x=!v7 z9fKjrgN=G^uw(ryXV;M)kg7>M#8Pb#7iH^&Zj#q5BvYyHnR%fXdM2Je?9pAk^snf) zLGbETI;Nh?cji=K;B-C-GarG*ezTl+l>Lgb4^yauJX+XZGLpx!h(MS z>ams1i)dOk2?YwW_6n{+i<1F-Z-_(1<5Z8RO_x=zM>Wtsy)wkz(T4yb? zQ!`yZ2d_Acdq|1)nzP{|iRRYBhG$iVJ<{)MD_wCxeItb*RgDByOB#5BD;u9R)xPR1 zk}!P3;lr+{i7}wS2ihDuJo;hhCRqg~#>dzximA>> zQ|X2pc!aL9cdp9{^HtsqWMLKA9k?3l%ftAY_>9;a{-on^redJo5N#P&MJBsTSSIeF z@dxcAnrwU|=Q@w$g~fZMJ6F-ol<_J|mfch*~_DDCvq8 z_w%+dF=xqZUyT(XQroIA5_FoaNg6Vbp_AdaTfVjG@U#4r=nz^=+K2$nfUU!e%-8qv1w3oh@+M5>0s@&hPB)BsX*iDt&8!F3O`;k#A#Yj`6`K`91OvPBJ zLUle)B`Pf47<^3GzmH+94YzUB!hb^`s>Pp4(^|tj$8o%MFy!jTKB#U^<}ygUvmku> z@+=WeR9#aEkn?JfIEm5&8A}F>uort4%w)@l++4lBQ`H8?x!hG6sE-w^{g4YxXsEx# zXYXQ-{+>?ow@_HIt864mcSBZb-qfU3Y39Jo0q3va=HuC)N)Jdv#;sw&VwsEHNy3`v z_`IGFiz<^`|2qxP=dt~Ga3T~W>9%OOfifav=i=6ZV_JE-fC9B8Phfhyog8bQ@f&MB zJ#E^{`ugVzZwP%2ap^Z;l9{6Q8q}7evv26o$PZnUhDxdIHL&}Twi2Zw2z1mRI|n&+ zNa2Glw}422_NRJv>hM8tF;e$6yoxz@L9>K(Jj)H{C}Sdzxunsb4nITD%|qEONp`t{ zU=q*}J3)JgI64ROjsXeh0iLlBEU9$3B>w=g%fcWBUB^WdjKKSY?P180DHJ--{LXOkis zQetAlH`Y?NY5@$o>LDT*@E};2e}tdH3!{cDW2HtL^vTBIiE8l*^6<^p=5yx-<2WPL z+K{E_wgRWJE7LYT0&#sp{q5WaqlTtVds^MaBsMhVH@b2`BcQ84z}_4t9X6x7D5s<4 z>@`>Bi<=o2^6y#5qmJSZ1LhB;-PazZhoXLIW4lWz^lCRbGljn>WMnr2X=ZSWw zvduq2dq3jc>@2G^7`)eyWFB14az!n>pOiJdjjDv$@!Ja+rB_!7zq8tOGREW5ve~e2 z$)#P%*=#C^6o=Gy3TVX8Rd=WTn!9+o*--mWQ6 z(knGp+`M*T!;rGz&E>-i(xjEOtAN-PGdrKE^+qkI*Mm>CT|XVo-{!&q17mm2X4dZ) zN`n0G{&`=q7FrDar2WY)0jaJ8ZiXLs*M$} zvr*-SEk}|0PsRcjNGbY5dC^x$?Lt@7Co7sCaP?s_J=B_^QAK5SkNIkU{NbqQ8`f6a z7;>=SmY2q7r`Xn&f$^;F)`^9%`tvq=J0mYk9Y!XanNP=Fn$|ZP5%RK-OUxtW5@7BG%ZQ*^l>i0|14`Qgk@_c zvM`&x67hx$QEb1&ec&|7EMl^-WGH^&q1ByB`-JD1@8p5nM(s2k45rehh|cwJ8^g4t zbm4)=>tZLb?^EdNdXo3qXRJ20CFk3ZllZ&`ylVS%BB~cSG1(ORPPgV6L{49PUc3OG zPc!ixPS!b^Z$Iq5*#;P#)}5*#Y8;Kff-&^PX6?Slg zqs9E@E(st`2y{*N!r|9PDsJV*?mNn1D&d23BT~A$BKoilHq7wwk!=C{wl4_%2W+-xsyg)}P$v4xn8liXdqGdEXHXSI@buOc>RR6>HDKyvik%B#0N zikaV+RtkqEX5MOMzDl5eW&6~9xyygx%&Y+m+Z&GCpJ>#27dtx6sq_BJoD z@r3YlTwQ5mk$YA2f4}1@=@iF2e|+@h;es~ILH{6j#(jBoHvGU|F?A?SA(%nP6 z@0RO=j}du&BUkR)vnD`;ti)_ePPz>&Zl!J(7gKR?o#5>rz(MQUCYsmb>Ics&Q3}-q zE|GotK)@pc5nf+8;K$jGI}6tr zC$M^i$<#{A1BPkmlJ|?9Up4aB&z>IKIY4?KTdtxBBdL{;w+9%afRADb~Z)oYKvz&O2|o>TdbxLob}XmvT+i~P;9b@xlD;+#(6 zmitBjybF+wA=dt7jC@pk&^UC(jeONlqCODLDA|5%0EwKtSfaCE!4#2B zjvZmdZ6B$hjX&4!K**Rrl^3a|4BKt{a2$Nsk(W)AalDU^i9Go`pHKyeHk86sDI&$C zhy!xU&xTi4f4z-2?`hIh=w%%30~}Z0y;((5&b@hRy7wpa&kI_dtbn}`-qF^6E?+@uw#&T+cZ=`9dazq+Kot|+8-?zJn*Z`U2=i(R&II&)u*=vRL** zHYX=w@I-mS*T%W!3D0lPZ zx!6IgWjRmK-*dR`kaI%%!hc?j>uRg#j^%D^P?$ViAlr?2EdalmzftJsvaXK_Tv@6i z5F(q?HniH)-E2RXOZ%2aHzz?voynDNt5m}}uV+p0^)4K)VsGlSD&1Xi6_Q-xGT(}Y z8JbC&qM}`y)0tJcJsiikEgl>?H(ny62ym%1hH)RNuqV&wF;pmvI(A|2{Vg7cneW{R zH=D5*{+DPKy835RBk{02{+CZ=m=^r<;pM z@roh^tf`V2H-X7A^_`!nemaf9Bb;zd{Y-l8=~SuXcQTjxI^R z%$KE}3-DvCQCf7mmUXA&oe&*4&b%dl>{WRNC!d&zwrAym#QyzNpz@})N@bEsJRx7j ziNe`)yR5>`r5b=u|3^rlu&uQ%O58nFX7gL3FQx9a-2+4uvXGpqvMjU?)+dDBc=E5;1cUI&CEjrF?nx=s|JJ^Xo{0r_j}mKPNRxHJBcp|- zfWmrGyWN9T#LsolxZ_#fFO8SW2$O;S_u;oFE_)(2OOgN?sVg!lWO6tU;zre9r zkw()M67Et;mLxKsYLa&0WKq>^o)%%E--q4sV{2SvCZ@?FR44O{t z>1=DI?iLnlPv*2aamnWK`OHFXr_73@nmRj5b(}Hbr1l=&QtfXBTdOuaS` zvw`AKHc>%#KsxI9=O~yke*ijDq&eBz^j*BTNDHN%f=?BAIownnjEk{!v{H5*5@M1H z0c4XK#zAJU2<0AQV?|+3uwSCOwQj!~2?1f)TB1!jDll}G;5w5laPjk4&*0mF_<2nG z{aw_bL@|nYA#NEp8S2r?^GLekO5tmQ;f5EE7RnLHz)lc3ZKPM!C?3Xj=0>{o#B1fU;-LH2t~-r z^1efQ8*otIyn%HOuost?z0>#x>=fM(bnVMOI_O)TT$DNpUyc!1aGy?}O*4BQrFFlv zXthf{4Mgh(RA77Ym?%blwsQ{%>i~v==k@*y=tw$$t-`|}OzxJ|L3JE+0@yRMtQSf- z7Xg}m6FC;)0F6B03}N0bgp^bokj)vT(>nMa;> zo}R!ZG-L#qO6`j2YFLfapD2)`HV;dbkN zdUA9AZeSZ}LmJY|VlQ2*{MMAWRq`uX-u$o-Mf%1MJoa%%W;J4l2lrpJFS}GMyIJo~R(FXrIv>7jQDXJat>DhLp#BmTnu&`c z#=cuLcdMtQ$dUw%sh+G*5M68~hR@6IW+Re;gS9uAJ_3Cs8$O5=w?P;8hRl~o-n?*7 zT0gaqiYsVB7PAzr z{_!xE)!*G35~}O+C5m_64!JrpW4xaMVcE;^f<2X_K@{S;FP=|t6ljr_Vd1ncc$Rih z2(u5_vES@;z;2uF8~zNS1Ha`_;mKk6ZYzXg*I!Pn?veWlGr7}%8r;H}a%IJfyL-Rz zHM37gxX8?+?hZY&0gW;E+iqeHU<{p9%$W$l^xAFXOSyKeUn_?teLvaI4cpZe8EFp- zjanM;vrhCneGw=pEZmUlD0{1Zo4{+bp|wX>TlL@|@7tGZ(dZw*oRDCbue;tRVC)2B z^>T6jp@pkLnMLr-lM{d=krY?%hW#n(;dY+;#q8!Xt!^v|4i1_4r99fqT<#aeL*j^x zY+dxzU5cbNq1v9UsiplC5nc{RV*5?%SR>&&4#mc86}#)$*4IY66UT zwYyad=jXPbE7`TiLhFDHvEOyxHF}>`H^J1b=M*?M>S?%UrPXYDHl;FXx%0VE8L7qN z$PY*pBJHN>OwoXHNQV}WfE50ff##WXie3yM`X+EL8$ez4sJoA7nx32JC%Wr&94n!E ze~JfpIo^RGULPej{gy{&*HT(n;8j>=)e22qa(CvjlxA~_Lu$iCtCc~_Y4Qwc-T~1b zxR_W=hUrJ!SZWu?Umg7ck@~^$=NK_?v*GB7C#ap$a}g{!KN{~;uhH6#lUJJY1Q%z(=V`KJ&!)>qB|vQ61DUNZ@+R=F4H{= zAbxHVmKKyK-*2clX)65)H)wQ|J9_wwS&)(XD}_7cdYEPjkw!!k{HrvtBce!TnjhRR zjRwgCBseI}P;)-G_R%Fla5u<*j_rZ-WJhE?qqH4G2fYzzmKLH9}it0c*O~Kx^jgPgqK|*Z_dN^ zPdyhUo5dh>WxaYFsGe|$gv*hh1yJC%`?n5VFORF{E8odcFm#||d}41xx3CXmQ?CSm zbi9B!C=A|?@kg*ICYvBvyd0vs*Sg%bfE z+VG+I`7m}KowSd|mXS;u^IxN~=p~7m@@>i_*7(g52343w=BDIc!v#Y2it>D&lr>}U z9M!Qy>00YGf_=2pIvAMsg*hYoG<2;}TRWUaS1lKNikQW_CO(dgf3bMw7ct##j-5|C zk&rlV;cTi=-YEt#wGwi2Wm*en)pD&bFLv#x5aDm`m)RLzbZu6$+$qmyc)PQ(Q(0HR zxk8`f@pBjjVQYSJI1sY;*=s@suN&BSP7NAC52U-Z$lVy~Y8QW~iYB{V4(E?HoQV23 z&1+ibP-=zbdpPz8sJmdNTxnP_-Z9OFB$^a+zuTc~7y0n_i)b*<$tXitU& zPoS;jsC<|~#aGR@WA4R-Htf!}%y4^JLp&sUT3WdCpHG*rEVEy>K_3*ZpZCsdNS$|V zt}W`dJn*MVo?d|AEi;YzHnyf`Px0s}?crUL9ld+uly`Kdy5==VBJK$f7B^ov!Z3B%?OY36Co=^cfn>4-XZ0X1$QIIVO;Ewct z-xcNqb?nf*S}LOs9w8OOCbaCNp+lW4kcnL9BEbTJqkXp{+|Yb&iaS=CofG|R$4ZPs zhF>K&BbbMGDP!=2Y=OWmK%StK)8ErJ$(@t(D&wwU6wiW`?gi?$|N7 zw0x{6B9%!ts`7lCi3f4tw`P)BQNz9z66Y}5C5=M{vPXYF4zV+Jb`+BV4Ukc^i^B1H z79)9Y;9(J&zeHJwrongy%1cEwua}!YIZsYTidZiZTxE_ZEe=HF>&g2T~*-@a0XH2wjT3|b0tpXJ=$xI zFih%M_WYoo_1pe{BKh5Ja&(TELulW;DwTUSeRMY;Tx>cxq2Xv; zQJV}j)ZVzykE*T|uylyG0%i%H$g1A@hy%ZSj@tP7~ z)F=prn#R3}-ow7w){3j~%Z7M8GsKm#)Td!5EKMHEO^Eixot(=D4^at7I+#W?$K7jH zfHM`B0gp^6@_o7by1i*uox+tZjmrX)8jagqk~dcnoK3u)!y2|KxQS$wg&LE8Zu+2C z7C?9L2U}PqF<;}`G~kHNs$pYxY)$>Zsft2S0Y@Q#&0e^+vilWPN~t)+seQR~UJ>Ss z+4P2arD<{a+qf@q_F_xKsDHZ>Pwz{t!U2Iu-HcLkR>y*CLF&x7xo#sijjmY5cg6PR zAxrbFlx-5yGyI`)8d^2=%V(c~TP?1X`uid52pkht#1o2~yZ=e%C&X>$BEAOOUALOvljLJw%)`(IgQHoQ1PhSu2@+ch!m5 z^71O!r#FeZZ%(uR-aSWxWbo0gpY4TiGfd+SI-p+J&@Zc}?GEdEL?%bRSF=co{+yvQ z>LSev?rJu}Sdv+y*GG(<1Uxp{R_mnviDh^7c219*CE46=d79o{qHG!}rFX-(ADB7_ zq1aU0U4hWsB6z~LN!AM}U4EFh#pzn^^;$ghp?V;<%gVLbXRa6i zlZJk$h0pol3bGUj&%BowbK39S1~$z-ibhV{^@wH;z(#2|b9W`47-s8YIK(B{B9TVMX{(-n*svX$Io*i6Y z`jA9p4j7qmY#Hg~V*K+(5)|6kiad_2*3J`(QDXuG1tv^FE;9yX0yu?%P1rQSPgrnC zm|n#bl4?f4{f^R;Yxm5^_lVvxjRCqpA?D1PwtSTSoT`q73(hhDL#5zXK7M^dusVL2 z#fYh&bAw#Q(DNR1;Y$+u_QfzP@W-3KJ9 zv8KC?EbRoei{4j#PK%}qfiBZgN#cdlt?zb0?ei#7Tf2!W$$)!oc4T%;TAkwbzMHOG zEvWjWPdeF?5#Sk?3ah9r^w^3bD}n)NF>@ka(ASAgy3FsTA;t~6wu1l<1?Ivj01N*- z8bfqe%)s>^NigVYyW_*OfliR(Zbzafn)Go>z?=SX3r#3)DwFYtcOa?H7<}$@`m>Y(cDPj32sk*w1my5TxDGQliL5s)my+t^=eNY}f$zx%!S{@?xi3}@hM&g@wGSHxGO+nXYkQ5Rza@#7 z`d91Evq@5CK6>~GbKTTaDd21B`YcoT7xAy$KPJ<9Ofw>hA$^R$ct>z!S2RagT}x4S z*U$tVQ{pUGdOv&`*0uXeF^xs3_+?_YJ{pcmj%u|%X8HT=w!mkX>R(EE4pf*kCk}ea z39w%DeKHDxwja^Ic~AH34-OW|@Y6Va@H);-Y_AJPWAw+J!7Y!y? z2zy*1e1pDe^~gCT|E`DHeY6t;SJ;mx|T^l1Qz9 zt(nA4;s_DWd>p8Y4H8$G(nRz(f`^CPZ3RkNW~8I0j*B*^ri&MbYNqFjbVz3(C)JOQ z&ezTdHe<_t_0RE5`%o1{Ed0$%NwjIfT0g$7^vklFTYc1u>zj=RvPocf ztq`SfJ$lmDclIke>^4T5_L1BXm+X^}%PFnFH=5cTh1_4vx*3 zjJF=EDhMcIV0Aj-H>G`68!1!|WJvDvVK^GnMirveI-g9#+d#gcH}dW`?5wq{vNEW{ zCB${iLn6D*V9^J9GpIRd~JKy`VZ3z=602ZCU&aorcQ8@fzvUY%wcsS!e`Du`A zc$vOy8VSfzt1+Cjb5YE-M%#%X)NA44=N<1Yz0G_NhrwNr> zM-3BBhr{tXB!8X5xHK*XD->?e`V5N=ZjmP$=GM^$>KFz=HuHEu-xMA`BV=_B!_cGt zN4PU~Ns7F)$F6$yCUeY^xRK!$!eB;op=vI(MlD@?@nb=#QsE>L9zCgtapUG;F}To&=&d>a%LWWD31>N9G<7ydQ~$NwUca;0AAzkG zBOrGjBbweCTw6QX4;Tne8BnU}b5Jl|F$l*z!TH|5A26~KAR4HJS@At8;*yw}f+SRt ze$W*w$9VL^EHTRGxHyTYTP~t)(*_nzelE=ui3Ssy-`S6t*J$5A zzJQcie{Rge%#v;A2+U?P@-*+`^6qCMMiZ9l{GuMzY)Zxa;X@F+_;PQU%y+pdqKH=% zl1>at3<^d8#=1RU9Y1~yAyoeMy@*1FF22i=iYT1n(1U7{|E*2X|YQ&WSv80d8XM~03$mBk57CTK-7TW`V0mfMxA$CYk5cc>^B`+AmYw8!m#hp`V?{SFYbiG!oqL_ z#Yp;aUbhU1krABR$!cr;;n04_I=y_tcA$^wSNV-AA6eB5tZ-Pj(Q&GErQ z684o;b~-3U)QmlpMlh>BL{qPmtqIM*-%9L@IPKsAV{Ot9vk&B?^}7TQWW!#4)h@tI zL3`nEHLsl%4GVJ6CmTKPH?QFr5~?XGyVL&}Vk$r6F}o6j2vJM_BRlZhJ4XV3+-qnH zE%E$y+7L>XFXChqMqIFS4I{&+)I0itmLMy-AXX9GFr9qK?v5{pAsge|cnF({qTE!+ zc~ff+$>1Pp|j>;wFOE$1Ch8_Z@nzYmJb%nSX~qn{?v&H<4eh zFZ7pjt_cO?WbI?SP)iXMsnY7XZP%KgzKTSS?{tfod&}UpnFx^6rWg1}t0vSjk7>W= z);T@@KKU(PP^#Ta_$kzAKKH3FPhnzG>GD2l))>#-{C>6-EQB+67niTZY82g@KYP)0 zG7oY*F;Cr)meTU=F5xSup5_w?XN$;@aREWCtc3L}i>vmBJHMPiKl=1hl(y1gZUnzd zeuk7apa8}k?B;Egyju_rLs(;HNVUO4Mzd+)xgBQO`pajS)gH6!#m;V-udY@e;iv1} zRedtV;hx1nxH5S&A?+ah%JB#ganc1c7(Uc)YU=qloS!*ExbvrU>O{?~p5S1!86|1% zoz9F1euRm8ZQoy1?fQ2dp13cnJO0T9c>U^?7c9}~++gD_H?VV=u=#`?3-WMRmuD!e z?}1oXYhbeR7)%{0(73mS(O`KPz4@gEL1)*7h@_~*G+a2VZg8+vDjVU{>rbXhwE#mK z_&)IGv3D%|)k0=>UxotWE2xJ74cnSg3I^j0J>2sZP9)3Qz*p>YPmy?Ee+Z2&Q2*;7O(T-` zeC1NOJ`mAN?yu|QC{3DVymld(WVQyjzGEbr8IwyUJz^$#m@sJ0aw%DkII0_mg>KfL5UgP;(;{s~YjAX4% zPg~bd8Yiy=WY)KI9bNoLI*rS)(Rr^V zoSw?pb@J<@rB&!xJGZ#9 zL>fYjg=1S&%vY<$b<-t2^CZj%4N%C+HtziXMVbTf{m!enZml>sS(9Y8v8?B}qgVxL zs;^~=uB6&vVC00&>}GXcuZdpfa6C*JvN_aapfTg>W%@4UxUjD%#+|CsgaUN$eF1ga zYLymm?KiQ_eM$o}$DwnA8YOv^^gr5XrFkY%Z{`+wTdX>5FKK+A4zKeF!uL~P+=M(A zw~x9TuTlkR48Cm5WVjtx4hV6TZT`)3)13A>o_N2lTfbZXutcq3<#^?*TlpT*M|~fq zhbWEkrmXHSY@3f5QhH9NTdDZ27wKeSL{fF-Yo)}#ee3cd> zB#h@poqV|J-5cXDLh12@1dZmCy91`PkBF(qUEzA=aAugavimEcQ&uQ(q!H;+sWLpbnN*A_SEZl0!Gr{b8y6J?1cFcx7Kmm^ z>urhAkn3$#pONq=0_PO4fAxxvP&$`j6_O>L+gYMWkLjX>S5Ek0j*WvN8%k@t>P-9A zanG^JZctfNyz6b~KF)f8(HUc7db-}NkDFRH<1$FE=5fvFmMz@H5s}e^Ui*=$R~3!t zi|i8OQ7BNY5>&HgkKwO;y0BWBAM?2yy^|P>C#Ev@HG;bl6DF`peOaUL>ziHLG|}a5 zo-Sb3yii*6a=2@CODZk8j?;EPy}gN5TsZ6{{Oy(+cAE0Ci%Q_>(Do%=@Q3HT=6HX) zC-!WtkI#QfL|?BRcMobQQeX^SKhFTeuDZNKgr@RHh(fINXhsxkB{=ayA}j81a%>$> z^L#m0eYvDiuUR4E`QRFkGa1|qCl8Nu!(pq)aYUH)Jx>EgCqAv+w!8MsR+a@cl~=T9 zOaFbkfsb9pu|Xel z4X)UFlAdxIT*Ia2?%TTJH1EHdPshl$zUo=OxB5Mc`IHu6t*S+}!jL9o^OF~Z(>Jy{ z?R1ToQpxzRJHOK4sT0nVVVcnBdXby&SY$(C?%onRBikIkM+keD=wZd|(#?uUF;+KO z4PEgIue%ZfcMEOo_+ zBC#YdM~Kzq)~0d?0wFjNA>md>%&*3?y|0jNDs99Ks=me$gJkE|kdjfwB&g9Tvz|_M zfy0>Q^zKLbn!eT!`1#5z;pg!^_*4%4lgvt!g^CKkY&Hz>JM%pso>8B6l7qEhC^0%c zR6(8P73KE(nD6?GCY}|34P!K=RG=XKFtEKAmwB1DBoRgYfz3gpQX#!FbTf%*9;#bZ zMkB+jAwOPYWo45)?rdo}qFQGq_Lf;%Q6nhamZyF*676;Dv`yA$%%|Nwd??k?oW4d0 z?i};ZucecM_nX$`k*5y1AMm|WwEd#+gIRQs;9;(cY(t?+lyq(ob&QIWgu-A?CA)O4 zN?(Rod#IVV$0u0=w8r*Gv!G`?f1(jrujz8RV_+-7cqQ*casOoC47~d=6F40eI+;z_ zdiK2hj|sV$*BXwaZkmLh_qX5^s9w3K*c3b{s|6dew4}bCBqdOlU$ifjf0{A6pY@TM zqDt88qgn7$qiDLLt3-#wf zmD`Km>t!E9`FMPOOrH?-D20{lTm~fCFUoSxumVtp)7U1hnPv-X_96! zI!r@hR>C{G=y)<3C?rI}@+IW?=2fjE|RPoS?Azq0Q3tD8NaRuoL-mXZa67R(oqfdndTMcY;!x*^s+t+PWr4($4bwG_^5B4W zJ%DsGWRC{W61Y=IuM)f(!;}vRC%V*@5b$u5NAsq(>q{(|JGs3pN-n3JT)~Afa$3A!G z;BxVk&e>pq`>qVq0qwH2Jvsl;J*?;QAqrbL>Wt#t^dT~3Lt>-7fta7}k~@p9^G|r+ zT|?ptE+?PzAMciSd_;ZX`QoH)%i`WqG^5?+ja#`m^MI9F-nS2n%T33<{&l+Y3m2wr zhE0vlRC^aM{FgWMpUrNZz%E|I+N+jh0v+sllL>9yYb8=Th=D$KzvxO=Fk+T*!v$7Z8sYeb?CRd?MyURr+*}~uK@43M`8r&n-iBTOYQ%&LxtE2tY*Z2Au0L+{E;P%w~Ur;+O@I~0= z%Od?Pbu1x1?^cS771--w>x)V{-^jZ6K*0D}iQU5o6 z-(@XZmOV$UI@DfD==OR4tUC`b<&5)NChG^GYaUC2yj$$SHsM4V^nEdfF8#(NGp#TB z@f_NS+Odn`UK*v7@Oon9s5~?B!iW!hIezwodw?{8ynXyIdD&mOIkOB(|LT|^dcB{q zZxuZ10uj%(9xj`(e(V|Wn875n=4^pB`>HTr zxVD@X6)cr5`geEzQw<&qx0YxqX^$5722wrcPsgqcjFxLMhpczUbFgUCXC-7XYgGjeI9=FhG;Aj3|V z@2Vmme#`oHjEtRZae-Ld@z*sv-2kk^^W2_7Ns4u7OSYF>!#45dSJ3_64Ib=zNoK3n z(jC&UP{TJh#qIr5@NcZFP0jD?@_V?lEm>&$ChB~YNi$f^A*(SMoDz)h#@%X4TqIX2 zBKfXwQ)5I%m$r_K_cEWJ|KPm$3N4RC{A8j4t!YMg$4-XpG_vcKS5oyK-u_u7)wFd> zb$#EeYb0(KS4?zvf>1b(f_D$HVQ09R2EF-ywf|0c8XoQXx~_{P9yJNxeWduBeRAbx z-%iHl-bvkS!Dpq!goMbQwcSC)-Hyk$fkX=w1%Xx~v+*P$0{mjozuy|%QUJ|tSmvnC z&CR<>2P&(qhFoZfiJ}TiByPd+(6gN&ZUD0uE+J^^J~zJ;&tkdoNR+eM5cKsDBYAa- zX^JO-P=hqaR^?HRLz}rp-&p%*;PZ_0%0v)1JZSDt~5_ ziovXaXOfC>y!`8MEuy`TIW&MHn5Pxm9`VvTLfegG27M4GLE(~LP*A1A2m2{skRhvz zz=^{|`ZAOLvkyXb<74V{MA$X?MZv0)PfSyT6j3Lu-y}oi+G7!c_87GV*bFAd?AZ0T zqt#Wu*i&^=3gsd7EcAyc{bWZe^>5i}3d?N8UaYJ(3&s$4o%wVbC&ZZ;>tOVLm9Nt7 z!9r2!{#pN0J1N*KojhbsgM9Lc`t3dZO@H3^#GxV!(wDz-t-y_mz1wM4l{B)qYJ%aK6`` z?fTP5mU1Z9L&@vxM|U@sKzm+-@=RQLL+3EJSN0kc*6*asjy2Bgm`tu=Q-{mT1NL-sqk3S1pRq0O#&+DqQ z)*7Ff=s$0ckD?NKK;M#CU_oo92P2L79{x^1{Ox>$cB3gZsS0&XQTY7IOH%Drw^Ra0 z@>K3aiP-N}{$vMsOryuRI@>;hqdqI#3p$2BqkghrATvsheqV+4!{;mAYTr0gVM6P} zgYsr$6#E^yIRdAXNcAe7Gkkt>plDN)cgaaoeX$WBJXqfv%eu4PmdtW)y3{=;sf*K3 zdgim`^8@$vJ4&UR>w>9AVs9{WkH>m14uVp2N#)v~hHV~?7RKHB(SofZS##6Ty~*aA z0Aez25vD(H-_|4cvMHB*=)~OB$4W&yCvaDM*IqPvpX93n9ID z{+h7=$Jch@n7TPdDw_EaSkM7Z!smUb{`0DDbnl!l#M`r(v*d_U9a&4@l3k}9wn4gb zr8a{^a&VDy!2lC!dC^eY$FGP8Tc6}qsdtWw{C@osu$(R#e`5d0AEcwkio0k`vl!u~ zQ8t{)L*+jm*)vo)c6WElKZV-Py`p~y5qhFEq*99l8SOrX;7rnG4;!Znq6;aDXBqu? zfBLKx72S;v)oJYux0dg-0iIBo>n>`Er$aM)b~|;=+%$p!9H|NidvdrchD!JiUIBvX z^9(82m5z?CdX(Ku_t6#aU-o6~4;M173ZLcdYiYW_^*9G*A`PO^o5m|l6FSw{*jZZK zTna>yi==6ee)Byi*Q|IyIK8WA8Y#)lXj{K7_xlo~NE?lLdu-a^YtecKy`==o3Nd3UZmHljIpWoz3xw~7oUad2vk}}^+sI3`> z3%2r$5EkQ0;QgePE1@0R^R{8};zw6Oc`wgN+0ZbV#rB!)lBCst+9k_&j>x|5kw;m6 zXFZa1I73|?lM3G^fdUj6_2C7TZQ1a84aK~!E)NekE;bZz6+LdacD0ESGSiKP!`|KF zM)&HgW7jyjoA6M#J%i=1UC+!6)}2=vD|J)ox7EVkW`#_HXT!qmLlqU2Ke{$_l5C&F zb6tSg!@;-}&$g2+AJIC{{VI_)wZDnnn%c>DfhDQDr zbCk{4gERzr-0};0$;;M8&gLuB-9Qwvc;o}0^L>kns3J#JR-nrRK`2ke&uc$czpAKb zl-4$Xof_g30^+^@l+&M1X9{agf_Rbj2?O6Agwg^2Mb$@_6m>kGE}tT9#rvW>IK?cX z^6RWj)=z1FYxGxCfjo!guwvp;wu^7lE9uD5O(?_Ym3fjnY%;rHFAoCfIOYVqR=EqT zK9DoTI|L;qk$#Q|+$AS@sAD4*v^(4Q=|%3knnor=rJ~JXkMnU*m+_L<%-WCM@HR$OzFi@l|6nfSBV&t#Pzil07X_E8i4bPf2SmxiD;8RBcK{ zg4Umg^0@UlOxP->6e#k>_i!u7l}B3Xt~}xnK?zmKmhpxS@kVoFAo9M>BOvheE$VyvF(;{&~QS~@B* z+Q75F?-^0vB}(|862EkA9%Q!3h+};zKzvOqj?WIw)qbX;CK074D(@E57b5+d1Zf~alR}I(gN$VI&-%_z2COIR zK?57}l@L_y$Pbb)c{N^(X8t(y5g(;bA0`TarQNXj;WVA)VOEoJjQ*$0ewrg655TnT z7hCQXdSf`=Q|J?#`Zr|af`ZMZMeb*3b^zx8DL53L^k2iibFJDnCA>GGe_=#~#-#Kt zYIl}=6-%ZxtrII@)Vx1Af}d2LoH5y9fIf*cUMS)`B$%?OD=hzeF|`r{4Sm8$Ra;Z| z!gmHcZ^FUT!&V{<4T1Gzbf+e&-0v?d^VT>!bF|q%P%zc+8tDjbxr7J_KE56mBWAgr zmK3uC@O<@LbRW>=uG=Nt|BNMJeC}xYB=4%s{LI2z{X+q|apB!vPX)-(lP5$GYsRp2 zL1QsF$%KM9FehLSG>Ky*X@M;fHuLvl3MCB<>hkp5{I*9kw84+g(R%4ZsJpnIBq$L( zNt@P)bX5_6=npzFsZqKL`*w$ZNu;OTIaXBI!ZX>yoC|oZ0F8^x(iJ_6@_QNB-Hi zy?l^s?TDN|pB)vQ+TSkJ%~m&M@tFKHf-*JfVRQ#56l7ZR%k)1Wtbb|hERyA$mzZxW zJNX_5f8LR`643bn6u|T!(JCJG?0=>_Hh!PH7`ru1OrX*auTqTEW)IP2SLyc->c;zI zzj{RzERDyO{R1!9ABlN=1v8Gz^A$TW*8vtvtPPVqXTnc@B(Yb*BwY_fJ%x080~AB6 zBqbnYvF|=*{$qUiN2-IbCd$mBr!Ge)TnWqku@eQsnm}qh<1C7(j zLtaQ4_SCS~U(wI%J?{J2g~t10O+tzZSnGY^{f-lL(}oS+VKTP$MTGTVWj>;P@!=OE zLxEmbnA+sG2KJ}AcT8J9-Laf-$qgP4@?eR_>NQ8J8WAZ^kMB*zoopY_!DbBi+i`rCdR*A8$SMnmuKwI-XL$eWSpN@Mt?S6Ju-1mZ zOKhMywJiTPh4DX(cc_GMPGNTUBOArKq>KA6Aby$o@9WRWy5W$zQSkF~^Kkc@J6~C4 z-=CcC71JBy224p7?yKh_^_%kA%(n)A81LgQrQWY&DlP`L zMlrv0(}w!5e{~|@#lZ@QkqV4wJ$li+zJOdd3kmEvcNU@}IC zRiKqykV`?d)qIK)d0uGJ@B4}P`|RI6_v!cN6mSVKCejwv6pq;e00{fX{?pY^W9bzWBZ3qrfEU#-wc9bDk1>{F zL;U=9^Fcl2L2maD#|=5r$@#;Ix%_6Onk6vEIIa(O?w9K;Q(A>Dk+ zsDenhP_&*nAJL_23u*2mBgRvvh77Gqk z3jdt+Hl6u&FaLo$lS04eR+xPMZh3XK<;s2MKtbzVSQdK%PX4DH`4;@!e*Uk2iHalE~Lb7vkW7w;!tBWc%`E*|jQS^i&U{m%~^3}`jG!emdqEo7M)3k9be z_>Z+K$@YEJFL#gryGp~WkOW};?IwHs z)Ig;Fw|GkZv;6;axqqY3KXv9}|6d>u+mSuJUHasctIirfxbZAe?#4IDD(zL?JG%Hc z6^Popx|2plX#HEJgp`7#k=&ePi$B66lF)+vE03&Dt2FJTy3u+7cK<2+QZFSd*+?VV zwJZH!N0Po{C%w99B&3&d_{CD_(Di`%Z{u~UMb>Jx&{9rOQ4zFSowYYNl;#(+)Wutz z?pc_R)L5b%<9l6Q7ShNKf4)RH+#-|PZra<qrIof|Z3yu`cAudL6Pa0*Z8~)?XVS20pWC^$5-``RB z{2iCz)U7ssfKAH&Bz^d_5dy8Z1?f64Pnu+Xx4F27m6!Ah0|!HVqX(f<*SXMYOa5OL zlE)My;>QZoxnsVwEuRK9oC2#sq6xBtzI$h^&sKi&`P`^4M(0e&t*iM^N|o}N;{RA) zNYYcV2R`z3me)25DW{(BN~PUePk4s=lIN?ual1jy3WH(L%Xw?P-^#C$DI#gnY~Ah@=0T3W6${?Z`4jILHBp*FiUK= zmTVfV`?U-WJGk8Lf$g6XQu&l(_R&LhaK*msi(^cxX~h)oPlH??8S1Q4wsS4}?StL; zQVL87TQl|Iqp*!+Lk!_((kHE3}@E_^*^@5Kd zKR!RH@Eg`@KT3>H*-O+iSZ#u5(I?6se!_Jg8ABe zD3ML8+G>&ssX#d!JauR(3?{s>;p*y2<-Jn{Icr%qn=DXdH)u@}u%6~N`}O5WG}D&X z7D`jQU61<0LVies$7+JX_c(odr@QTcEG0hI<_)@AIfB=HPmh#cn|r12eNt~Pnc+~- z1L9^5Hj;_7Mw&4<(KWTCnqa5|EZd=8%*N(Ju{OGPo)&JAqQ3G zcNaWT6+%Frv4sV_rNWo^5?@StMOIAgEG;|Fd?3q(#l^)?-}>6x%8yg5V3Q?Mo@}i7 z#J9H+^=jyr*4FfyN+xMcc{0%-U_YZv4LfN3VKHJc>a4FNvkQxg9{8_zhr)#M+V^W* z5t;!{p3uaek+Y(1xYEUAO-)Tn(2Rml{&gj0x6nvqcnoUULIr`INt6S(4gBt|mIq9E zaVP~#XD+D!M+loPQ}TY&m&~@fy}lSq7qah+6~GB(D{lU!Pi*$`P$fI|^U~Fyt{5->*j2E8Ro0+xsiCkl5Wa(ybpWHE-ps> z4BCAVWevPm6W@+@FOK2I2*bN(C`?KG@Rb3mOw(}DCv_VS&+^9e=NlDI05y`67o7$< zzNxYp_?&3$HNs+!eAEgQa`W?pDpqbgg@P%+nCXj zm&d-lS-u;N-M2a`{Jt3dgiFE z!l#U`G+og4{lyhPld^`TUugo?to4Lw$Tb$D+H<(f*!r zdJ%Fw{K$CmcvNbcqZ9!tU+NOg`6^loph{!rSMSKh-N%m~g<(;ANZK8~K22VgC6CxN zzjWLI;MDU~H0PygKhE6$OFoUkjL=cxsj(({Tp#wON_Yz*#Y)`@ z3oSUjytr<=IfV|T@?rkL+HOCLws+_ultrSp74f@<(N0cJ|6FKt7TK+xWZj&CPNmzo z4=DQ{B^>Qm_}w5LaXd*+OJm(kx%yiuHGBcjRu-lz$j$wfeZ9_XGh3N!2>&}F&$aPI zP3Z?WP6$5j62dFQ*kQY^vP!&J%FInpxBexa}5%f5y^|9;|kQdt{bUW5%UwEdw*J2-V2u@(NC+%NNB)9hfZ^Jt6eX)@|xNPXPm9Gam?A^Gb z;`xAfcjb3y|1+9$2IlPIIxH{)Ooshu4E10NkBL_Xab*eU<(JW$<=ays$TAm~wVj>$ zT(ucehTFW=M$>7%-Qq7bWeN07aQVj5dF!_fM9=%IuK>J3JPotG_nM9t-1MiWr;lK? zcPRj)k^tJO>FTyXP5x(m<9*=%xH|y30T+SIS!9=CaeDCqYn8m38&%cP60*D^iR^8> zJ{r7wG!JfP-!J??d`aPN^CmH1CZKjL(W8(}zDH+pClMOR!Hf3WlM3hKVWAq|n@ePS zs3Vo{K_IQesKnX9WcF<>-B4i6X%Q7y9O8(8Y8-yKtynbzo@|5J^B7zsF@W};Rz7Qj8lPkyVljUd;T9K!mX0h8i&TJL|cR1?$mv%Gnm zb+7$u&v*E$&UAn%;K@q$ASWg7E>HI=H<`W*A?@u!s7~F-M-{C{a!nD~Mkm`-5a8U` z0pNQzY}YOVIzP!@R8e7ZxYpZxGOb%%U!R1UH)H761~sXkV+W7ZLTVdHCBqB77?1V+ zjW`zM=T}#s&h%Idhpf}nZq*wUsk4R}sTC^a7ZjL3?`vpK5?)0EB z3)%~ntZciUFv3Tl4uPv1Tpms33w1?IyJCm6)F%v^*91b){zH+0gi*oNGty!w^}O6F z)M<1u?qHq#Xl;EF>USP03D<_sd>&w!(RZirxEQvdZFDrrMl_cXuJuNOuhWp{Y%=W+ zavOVR?6y0fS{|s$7?O%*q0~WF2iAKh$*FV6VtpJEuMf)Wy5{CL-X)gi@dvfvOn_0Ql5 zTnWM0WGDxxP<#AmmFW`RZX%`f`Ko$ub7l%z;;A5q(oAQ;=WLN(r`l8{Cbxt`xBlSX zpO=(37t?(~C|^zeSQo|v7$%A@esFK4%n1XPfUX@K0iT`w;imiwP{qDekp=_NOeWIE z-K$K}|2m=gHmB$4ZcTbIK)`_hq;ngiBpY~b*>yK#(n8|$<&!@^-9%CV`3F|b?YyZF zBeI!7Lwh!B5{v9`djUUtyse?7<=p#7%K?DzUi}1~5kL{hjtMP272dwv;u(-Pl*?C3 zXAV@MFY!cztSj2;`?h)e92?g^%m4bc_?&eqEiElY%$*ZyvQQZg#>1)MVZ-8$xc5VY zE5z4G&b18ZkyWwf3p`-DLz!a9_e|@9QlrYV9stdAwN}J02zHV$Fr^MY;U9FO;>Qhc zXxH25c;2?t#|Q_!%ahS4g?iqq7Lgd<9wh@1+rPMt2*Y`l>73_QroN}nnurwuo$@AS8WAc~9FGK!s=5h2F@7$YdfeSb?dT%HbMgGGqS-&3ot6b`4 zOZmP@!|6gb#@!gx6^5giCkQJ5q(7r5s65x>+a&j@`e;l>GDO7xj=l5=5d_2&au{j2 zQ&U|unWcH$Mn=__tIb~Rw)c|?`pR}&Ct-W-IiQNgkP`f z!|RG;5y*-Vb_1!Btzx|(Mh~LBe-dQdMMyOlrW>Sg=AfM!n_n+L* za{yuUCY4Tr(H^hj`!)8l{Sl)DxWSSrCw{S>u;6!h<0A>WzgApQ{-G=A0jgLEDscNO zp;Ef_Hmg8aZyzprX7y!=IJ45s5JT&)aGoV|87|pgRkWQx2I!8cFNX;$WJ^-}hlF4N z$ukB!U4k4df}l_f)aWm;=MCURTrN)Wfmeyh@tCi*+5nG3%Ua}kWl(QJp)7Hto;_Lx zA~9<_HKXN?70!}B^j&X<{0-P7gzOgjA8F~0TjVg)@v7fzMc_FTt;?H2?uo$O8Ttc# z%ysvhmL=D*CUw>=x=?+OtUkEpnaDjq2kVJ^$rGM=(vKkCUIjQ;u!AAi#drzK$n_FCNp|94uPd7`lUATGOeWf;l`>YAM>BHSE zDX!^_9?!Fi<$)8oC84;Auh6q&+gZ&I1M?{I)1>EDAt+ndOERA!b*ed%%mCI#4w-8nyw&!US}v zPx)~_ee7RtGxP(%`aZ|{?3kc>E!2!kVs`>jy<{z)QC!T**|>rN=nf6=zu8yrPk3CduWqc5%##V9o#j-2=KUa(&PZ zf-@it^7#$Jn|xJ3`3|p-M`2fz7FnL)tI?_~$G=8Yj@0i)$hA9b0sv~dE) zzS_)rZwUY*pL;F>rD)gC=e-(CRt>x?SbQ&DzC`uAoXq|uwG84CX%C2*z@wZoKwzSa zqhX;7sC*D?p|)?oV7j}=zH17#Xu5O5g~x~=y#cTR`#jBNnL(OPM^zbw%L`9 zUM6Zxu;e zW5IOrDZ7IfzHhQO=v!8v^v7%$jR5IRGfU&0^C1!?IX7p1r5j*}$p-WV(%Gmr93Ojr zfV8>rIoOd&93J7=p*E|$*P`x-iKY;*F4*GBzrj}2z- z*2p^EuqGBa?gMOu1NDTu;@)vZjijaLh|Xs*!T`cMAlQ{8w%3T712MBx2D$`ffNW%+ z-OH={+1{;(`o}n&+!OxOMtdKG?xSNsznUki+1sx-xSVfJW>62nrJc`LL!BqyGJ_xk zkX5Kci!Q`SC0Z4mz`-e1z;jD{rdVqV3PKW;M2o0$vRtQi+Un^t1*}OG6%{u;(Ls!5 zgl4AY_7VZY^8Im1N`);qyV-meN*yR-b7J}>c!f%t&9rB)ObcxU<$>J1aLZN6sjEvg z?he`QYZE%F-bW)YvrisGs9O*8RVC$lrmMW)P<#MIWjr1>Iyb(+59o{ zUhlS7^1jsUkp1oa&x&%&k%MB14*$VwFG-%P8J)Vt4&t-TOO!h&Et7_vay2CJ8vZ_K z`}Ol%i%`d-RS9>2?T^X^%svnN1$6a&ui@r)ezmE(QesgF1v|b{_qel9O`a`{nNyL( zf4@|{a2F*{ij*CHpp)U8JL*dSCm{|1qHUzcB5gD74j-{TkkEuEZ#ln)OBrSj+G=Ir z{w)M7)3+OFnr05Mt#1kUB!qR(nX2&mW~(rJWLRi+{2FU{Qan za5q52u0Of`FJn#~qvcF-bbD5XnlKfo-!c@a+%M1%1*%1on6lJ;tCxrh_)kjv9nu_W z+1WGNyF=PXa3+$68sY}8OrL2tyRd+$+4si%ADFbIq%>sG-ZQa&D<_>s=sP_+pAxoq1F zjYL?tNxnBcb*K7XH4H0px8En74z>xj{O&~QizKw%kXgpz)9{gYXC@rpEp+QG##KhO zFavJ7_8ZN)$_1e=#uZm027%P;Pf(VegH^|Zcti#;b_w4wucHBG?+l?bA!qmqBZzv8 zzb4x~Y^V7HLX9AN#d-e%Toob-HtOHSwq4=HejT|(y3JZtocp4P9~AVQD9-=y^Edu+ zXy4>T9&Di5NTI9asi0A^(iDCVV@^W-Td5*m+{y9=6a9bW!yc#qFzP(rg)*Mi*)P+)efw6}b(;hO_wnyH z^esZ?S69&1xX|xBpwU$V<>7gG^iEDrIhrLUJHKAkF((g})qiAe)+I^Yu5xlmZkN)D z8gOLA+25LY20PzSWs$oRqD{?{CMekuq~>@9A={wV=$fO$>a-ZW%qv|$3cU-q$8%cg z4_0NLPhqp0VHNrWWMCmrlKzDI!egkCvxW_n}g zqs;5xy_V%A8TCe0NK{&w&3;s`norLmNz$LHO%-Ifta2>mNoN;frx($)BT08s{b(zO zeAfg!aHF~-#S#G;{3e{btmR=Nq}wVUEndSMX}nf}{I6cS3n#ooSG=;2GFLC7RX?YL z3W{4n!~JGqWxY(a(sU?M#GM9VmK6i5W% z3HeRV@DHaub4dOth#7iL&hl}1(ctK49|#LLUL2WyNlKC?K&!QdlE%l!W8vYIPn+m9 zyF384BW-TZD=(r!guwrgz4s2P zD%-wB528XVii!l4U;tE55D`HTP!SbSR5D1;5+&!Lw5Xt{D57LVBphX^ zFuEvM8do0YGJ)H0Qjhjj@jth1Sp02lR~#)q&=I=t>BEOHu~-C0lw~PkUS`s& z9?>1vKEX6SnKyNMq<#_yLt0w;S!k%a%_@ND_t8-w{D4|M)9UYe2`ei;Fw-|CzI}<0 zKbDdUzsSSUp1YJ(WgU8-{mN0m&mfiVKYH|!<%Oxs&d$ym5-GVK8b*>Wx`dCZXV(v% zhI~LhR2#b0!C_46f<}=$3!!ZCXyodrSb*TVa^*^K>HV$W`wkXVt}o8?JEFuOk;KHr zrhomqBq!&e-L0^R-+jf=D%frL*Q4_xIsX2;PyuR~iR3!X8qSTk(Q$BafDZL`Tz_@^ zR(<4UTHjTVr9sB(Ac3uC&YV#S*Hc$#X5iH{o4pr(=(1lgaA8``I>5oBiWi4(ty+tT zi?gA|{iv+vW?-j9S_H`Vd%)(NUCFyJ=Bt+QDNNL5bYghSR(K;7)h%;Xcfnk%es9N) zx;on0+FD)hz@Q)#fsnZC!lAPH)^sH2g-P?-1<|8NrObx+Ffe$ZHgCVu9F587l>ywR zJ(LzEyN+{p&N+*^udh1rmC;aBKTD^wv$eg5D=61{*JScMB;;{pqe8HFw8Vq$)HF2d z+3W2YrhSVY8Ky?_1z9mM)J5xSc{N)Pv#_vyh1HzQ`00%}BbWjrz<^yy6Fz@Jt$jyZi(o_fws}d;7bSH$JH(y-@dDH(b+fK(-Z_xL zoRnB2*>i`3^Kr5VzX63;ajHQTiM0G{;v?Pl zvtN(&-vV4iO{wD$+(cIH$2LdN@j%k99pCZcRr8iD5&sX%h7{L^ig3IQbuy5VmGzTs zjcOVD`c{IE-D0{x9WH9oDjAf-B{eZR=Z-Pwye8c|5ieg zbsabR`&}y5Vr;e@J9g|>&9WJmtqwWUFu7)#KeHL^hBw$>ja_BNr}m!x{UcJyVKSs^ zRm)@5?mf0vRG?;Ro`##1t!>#zLo|7H!O*mL$p(Yhr3!$FBz1a0Yn21oP;tn3l=T$@vcG%|A~5{0?@- zPrrtKHjK?*xq9{D`SW+X!u8^^&5?2j+-Db9Oy3&o=p2v@J9~Q}MPTnX*-+v8INK`B zl(WPB2q+7sSD#$+Dl5BqQBqP>L3MrRGh5%7j*ObxUTYg0q}?`SokC!rsiJjF%cqv+ zvKDcn;k>akvm6563$`T#Dh?ZeH}z)9^p4jl0ePc;$|+66fem2M@mcaDm*UmhjHBGQf^=L1A`;l4`s5M0$a(Gv^7}N* z4ZSF17+N?EAJ)ST@?Wj0tRz$)tG3UdsUU=w0Dt%JtWF!X zTxT|6!`_81T?}*?pG;}?K={FSmR*+DgHBZ#c2rfKx3Z#fv%5T7-6HRF4oo;WD}H%jO;t# z?+p}Mbmbo4;n{9wWrY;>Y@>V8>aTrBdtBm=H{qcZngz}WPM>B##(SZ_@hTwT(Q(_F zDSp~9wJeJ#(5eoIiFNC)Blo1}Ci4N2x7>Y=WFM#VT=p_oX0O~BVS1%JWXxHV z-JFG7byH_a)USjT-_C7b)0P-DuTMh;1hxAsE3U!)ZP`|bU@Cf;oh?MO=j2726S}&(W#;x% z-R3h)1_lQH{b!BqBTU#RXLs-k2{9oqOMojyk7;jT-#zG*diZF4rvW(_xtC}*d$HFC zpETGaw!UKXr?+=$dHE*d!f;A>&Uhp6zGD7JfQKx`V=A72_pC-ymh$t&7o3*D`yi4fol1^%oxo~`zi+?uaC_jH%F&exFq>MXuc5t8kxwwc)T8_=GSZTN4 zb9Zr;^iKkB?m2t*EK%4pn+gjH?S8*z&se*%b1ip{p_z>*-noBo z_A@n3r4WkZXRJKWsyq*L1)QM2yNBfJ68~GrS)!6FUbRC?+~M{e#bDDI`LxRCu4HCL zIe~0z2`{!f^30b9S$9g~~P%)~l+{&nPm$X)-*&Gq^zE2>d z`QEpX{Y>PJ_X|?AS0zFZ|GFnh#MN=wR`x-;^XV>diFBCiCa4o|Al zXbAik@PtjA6+p1;z0`~PBrS1hl$uGOVF@UkfMmwu=3dh`h(GW!&+xGYPQV#8N-K|a8VvXH zGRSyzl~cml_=sA%@m&e7Bn@sQYD zwRGW3wj@X9Hzb;|+ca;~mV_dnXd%^H=7|Yb&v?;IQn&cCvdH)LpkrVE)w6jgw>GQ? z+`m6&Q=a*Zv*CeiIDeurbG*WI)5W`LPhIW0)}FM7)X`zTc=rwsc_SAQ`LZ>~=CEO1 zn8rli=_ey$G~=ZHra|$w#mFW*32&P7>gwtr|MI>cV-|N;U%BT}A93EeD>p;Gz{xYq zVM;U4hNbBN0^iIpcrH?O%eVN(1>##*SZN#~$#Il4JlQ8$_RB9ZG4V%pLU2>~-^I99 zn-cX+Cru%nlW(q`d^!aO;C@w)#c7=x`wJKDHPu%KA<6li*CJ59(-aqG>wu3g^XHJ6 zt`(Vj7~nCKFbii=t~DN~Rwc&XDF^7%PK!w==Iy$A%^>ubwa>#Ga5wv{FTJ<{JYuN<_N zQq(fw3XrB*uoDh#nmnv1$~c=@5YX{7h%FlL(F?VdfzdQKJ39h+k(!p)@}#-d=)rV7 zl@_6IHg=9v9cOVT>BO~CSk zWQ(4p__3ogoyVPllz*yrE8TC^T5c1bGOfGIw?tG{Oxb!p>lqxH?@L9!Ea}RbV z=lKgNDzCdpk$kT&h>#WsUR*axpDNhf91s}jYtsNppFFXKP1B1I(buO-FeWI6w>i^C z`TB0fpFax>Je*m6N|7Syfi+U%vvH#}_hsB(q^HP_L4|vbt ziB;TJ@mnsZ+(3~lt3H0hj-hbUn)+VK=uLBb8j+2{+QzhF2`8=%oa_x>AEu&h`R#Q5 zL`HV?@sovq);X(;)!HNr#xd?LBTqhev({O54)V}c9m2MP%YvD6!OW*@aeteB2YaFnTeksjS_NSB34Tu>n(O)DqG%01bUC}Q;M9>7!q%(6@}UmT zvfEIU8`OOG#byk2^?WPwK+Wy>Y0K`%z_S9SF}V3(I#H6bS3&$W3|JFE!E>Kz#w@#oS&;f)}5 z2uK}gdj9A4=9-#o@t$N_ph^6Jal?mgsKLQX>&(m&6azLp+Hc-f)aYnp27-=8zm?4^ z9qaggoaL>SSt=}97GrnL6y%R?tNF35*iWA0wOG9Fn#$~k4C{mm>x^&GW213icfz;V zsx0eCM$Ap{N}i_76SoXFl$U()^_E|X#Z?JIcb_fQhca(GD^|}^Oe0b0IKQ`3o74Y+{PR%#%^JJ4{?4O}hP|6a&lekeWZH)D|gDt~nP32)JJNifhmF>_1p-KP?65_i{G_gYMUNl708{32+DD&oGPshWwqnP4*C#cfj$ZW7n0{ z(C^$!Ot+Z9iYDVegg+P`$m*JIt355ppKUSwF7k_*|de{?CM-YYnl-)NsnGl zUtj+TYu(BjeM7@$$HEh{6Gqjq@1lfnFC&3rm9Ks^5x6vW^KFn?Ae3b1OND^ z+#;*-uWO(_*7JJOf(U__O#R0nca_MJ?(SlVngv|mzJiwBe`aN6Np7u+1E0i1<84Ca zHm|w~J7_1eV{!4hAGX3^#}6Gpe$6Z?PKgZ4#^d3v{%MY;zXC#-)N0p>GtC9HTz>Xp zJl@^oMPKU~wxmy|uT*}BSASZj|0H`NERAEasD$gtz=n+_jiN;A!NZ~l z2p}H9vop}(WN~?{#V)e!dD%NQyKX2b-TeORP8&R%yBVcnhWv=HajS*DHIqm{zx&=D!1R@ zNtLU}oCnP)ZkE}nipJ4G5s&+RJQWwOxQTt|&YKe4M~@O|KH048i$wuao*bcB({%Pt&XyCXJ;po|Bq=EG9Nv9bn#~uZ~0%<@ZPNV{6!}xz?OfhuHHTT ziaZVi=ZdVXw`{b8t?en`_XB@$*iUvoQcW{#ijl*E7<$Ls((1?NZ*T?t=q||9HzT-@ zM~_PI3MruHNv{;uuH8SH4m`@{v67w)J?rH=;EVyQ917^1Bj8)ly{l!YPtkoaj~Scp+TNz`?b0p z=vNSXc6Us_dik>Ph_=}k)T=+*GsvyEt;`>DKk?;9Zv{hrs6KkKQ1SBMb#2pK{c3P=?h+&`C8_kK3-ck05%Q19*T6}BWCU(Uy!aGY{o-Rdbc&7NA z;vf@@_x(@trHL9cRM{;zr;og#cq$rEdRT;uORc9P=)tY5jMsaU?x`EbcLuH7ot8`E z=6b|3u;J6CrkWm$lY36My{39)kz`D_^wlBjYf@xdQ}Gs(#h~f;@%>l)e9zohPgYx1 zR{wBW^ZCr`r*;pSd!)tes-5lMD4tJ*S{f%_kfuo(d zpFWL7yU@X7#fz+}%EONmhN0GccIj3BL#*f4{y)Z;2R5voerHJU47l@zgO`^UY{(0B z{rHBFX+)_0*yu1_ZRH*i1;`Q;?yo~&2=(61Vq({YJYw3oxuLBsN6P&*nHyM9(Nh1i zyx8}Bx9t29G?N}&I)bySRN zt5Y6_p!^{I2)X?}rK_hmW*36jbcFN2tl76C%kpv{kH)dgvDTDG$7R&M=WgEI3GmoE zICvj%#%dj;o==lQ00yv|b>-578qMq9Zw*(nN}=l+Wap4)iK_pSRDZK>sb1x*U`g7)JoWN~gJ!pl!t%Yp04oqphO zO{2|?-jlEFjN^1f`3#x|{hgL%!^MDsTi&r`ev}?iA;4+_({7 zes#b)hpE-T$S5*Co<>%7Tg#^^&_`$lMX9%I7ifrYqd7)vuHU|W+rh+S%sLauVrbCZAi%sY-Y9CJKk z;7J+?{K4^*gU-{*V>pk~{ilN(b~Qk1kFi@N;kMS6<= zS~vUaSK0gy=?1?RH!$1 zu(9#BSpd@Ostot{AKGjOb0N_+k_?W5RE#z!T1G}jf=5mDfPNq5`csOXgF|P1ZIz(T z2&gzbd|2t|(7-@%!*%g;G->QV;|`kWr#cl4Q$71fVY=D+Npyl`4}TOcX1ei4?Ub;v zaOua$QSKEi98T=B@Nn8t*#{vZ%u;u5^&s)Btgc$E{J3&k781|Vt{eOUfJ z5}@k8v}v0Xt2`%(?d*5%+eT`L<$+`n%_R~?Ki+z}*t_OT9Y-+rMC}cN{LidzXPNQp zgVY;{o}Ynrzd~-Fr+?7UTy%BKui-v;jcqz1w#N03uV25?+=%IpZ8Cu^ZoLFaeg-~| z9;?AadpdaO>FFP>kLTEpz0wE8kt6ot(nUi*R#C2Q(9xH`qmwhjoj6ue4viMfzuiww zG+C7mq7#eQ*eWTyoBl3=w)KC0`uUb+0fz;@ZW(n&U@7Hhn&RFPukyi#9uGEDxUGe5 zB7V$g?xAxoLMD)h*w`e!J2xAg`nYVYtxF;0b1Xbz5y@;0aG9BzA+S*3`qcUwEzv{) zPWpbrt*kyUS)X9`ESu*yto8&Z&0Yb)A>F=S^O}#6a0&dH>UoN~xetAR7tGA!TXXpj z9gqePMn%}CHj~9sr@~9I5-CVJRD5oeo~#s*$EC8-FW_4e#`Asdqae*HUO|mSXl5t zF`MbIEP8~ZY$fl*huvH5zn`Ck&Bto)$IZ@sCpxGAS7c;9@)oTeToQ@l3~*&-W%bX@ z{@cKXi1Iu**ca@8^pKv7l~qpU)*WVi>jf2X2SLIh&dPhlSn6i+2lSwQg@^ z;&lY{_js}H|J`EekK>Y0p9B)-s>ttWU%Ga7O37Ks5vS+kj6?|lu4yih!P=J<*A z1H6m5w=8%`KWxJJo2zGryaq4*;|2JvMb(-Vl-Zi~P2J6+w)rz%hw3BkBA<1B=}H4le`X^$=T7OHEJ_>`dvkw8+-Dy*&gLX!0YU*=PK+xy?;Ec`CDdXXQ z_H1shagz3QZwZVmphvvQAIzXbsI;kxp6;-0`r>|cYKWssxz$xi7`?SY_}dBFzl$4h z&)7<+@-9;a%H(Hn9urn3?4;eEGt#59VvEH?Gq$!b-H*ho^GRHsmmoL!*gT;qMu)51 zMBFbhy(tDN@VmhE^k=Mm^ajuOmQEU@%?bO&))w_vCM-SZrtrE8@fQ2o*ev-16R&c9 zgjM7rtRwUQV3gV+MU_gDzhFjY3$`h1!l6A21jWwNLDp>?v9*61jt73+|n){C4Q1UsdM-AI_sg?;zUlynm1G*0m4vH{wW=GuS7fMrlWF4P7SIG z@Z_AD?7MgG)?ctfP$$eXA)+oy`BMamtLXgUbDa6>eN0T$8EVJZ3ULzD^BupAX6oqZ zFnDk)+Krcf{CI$R1DdTViiN^MGL~9!2k{zDg~^Hh9-#_c^ui94j|p0IEJ-8J&`z9< zE!@zK&v3BlX6$6nnJN^G+g|9JFdS@pb#=3uQ|!=sR?+E_eM#4n3%Wl_dT;74nE58L z`Tel*&0j@a+?R7amBf7ZZc<{|z+yGcc2|J)kaozdrQ>zR0miZCZ<6j)cm}^ek*w_j48g9&P!3LMbTiX!Qoff_lO-Q%wJP|*fx94{_b|z ze<-gmx2FVD=;Qk< z*RGWl)WcRro`++gTvFVY?FpCj6TZ&83xi5mewCG%zs=8QhQN6NsQTccLt|F@7xiJE zIG!nMYiCzpe3z13kc6=YklxFAy|2S#0rQds=L;#WY_2*3eOBt++}viz?U6t%2O&K6 zxXwOlD&in+$8fkux1ozgl-wiiev;m&$0cY4Kj8kz!UC+rYhk-Mc2Cm&*k*FYdJ(V+ z(^x?AO$)~;o^?%JkAe4D@>2PNr5fDUadv>;(-^{$T`e;DqUd4OD zXU@DupOJ3I%DZ<5fg~{Pr(()!u=tB>Xk?^bf_N+X_&09cNO;W9d-79E-#0Lj@%O^i zQ_`Wq9CL#=D@ZlF@i87L%D^4+@`dAT#14l9dR zR_^3DuJMNtO(YVOA|oQsp98tcQUnzUS*J^CX<=re4E{E$aCj zM|Q*7iGK?eMnnjwt0fFLg&^;5au=JI zFPY3S+q3lh_cz~%ljbPkqz6N5Y#KVrq65}TEEyBFckX0Iu3j^zeiS4Et+X(_(I{J? z$AeDbJ_F>2d{vFbbK9aVvv*+!)IYMZC9bv0ZqB*jb&HUQNQVB!&Fa^AF-R`w%t>Dq7Yu%!YvTW;+!XRX(~_=2=7FCCEI+pVFKelM3MX zop?#>!7bQPkfXn%27+!Dp`4_7x=1K?#hEa)BSd67&2qvA^bkbT&cVS!aFx_sw@M&G z5?1+0-e^l)5L{v*;vSkI9qfk=QNr(V9_F9=C>h2)t(eAvkkPI@L1gpo2})ZLkzX9X z?(_5o&=rhF5>awQ_{7n89=%8i1 z@25?j=mQ|}gM559^RFi;DLaKV2L!3#3=InMA^6bSw{J6y?V_W5{`xgF%v2z_4;?#J zts7jK)Kd0{&I-u`;q}nt<9tM0%xKTQ}jD3;lnu89Y*A=t9j1zTw=@P{8nwdX@dC0m2ohLq?Hc= z+kYt<`;dZ(>_W>dL})=oaJAQJ!41cV9hH+74gCa2%(I^;eR)*A7YZOTDu(p-XEDG6f3r&lv%M)Rmm%vA(A0w}7$^oPlCSsW1udHuG<@ElpH! zu5QK#v2wyKSDe&abB0F5fLbiUIvnC1(L|}HCw=v58Qwb?b1?`TGD}(xKxTN8bLVfl zu19>l>e>69=u)F1B1jkwMfkDm(~PcHE{HZKw@O}M2|RWgj3+Q=$i9?aq9rZQ>fYN@Vk3invsBMx6xfVdId%kXlQK-`K? zypA{r8sWxZKVhz|GzWhA`)iVeAg$pnKQ_6Je^1v-(5lvK4D#WmZ-u$)^=qad^UmWv zMMaf9>8SaM`3_)v??*>R*GwQIjXB4lxn?u4f^TVQsfoF`^PDk+@T}U;H+x2H3Td#p z3f-0uiiqU3N5!D7#E?LA6YTPeCq9x!Zli7oWE7(R0e?XRIoR&Ce$`vjT8XS)G&6QPEXgIPOZ9Iw%DbwkW{Y`iWO0+%0!?iLzWEC+%#~Xcr zC3SVz&EA-59?$YvcL&K+)~6B>5bzzKBHb|`ZiczZu6;PDL=eVIE)63+Se*a<%Dsi& z_ySE!t0FHii5IW+I>K-p-jsd%gkcBT1f8@`=9Zkid3L z50CtrPy42SCBA-I4Bi&b2tqcqnrIgweHzXr#x%iFs<^g-G}8}#=|NGEN5-dH$^gg5 zOW&aUy7Fqv;}$c2kj9_zj+z$s67zj{E+_6a)Igx_04H=>al z?w+#c_DplMC{Pn^$$f4JYC`TS+2tWmQP8JlztaI{=Rf>?V&VxQ_@d{$1Q@J*SsalB zgBjje3d*?*D}452Des7iiqh2{#t-5&Hakt@0l9UA6Rpo$TYEooTObzGT=rw8&_1gK zh2y-w{(Jo%$Y?X|rb!3b*)Qhv0*e#0352FN#gr@m1eS}oNkqYm<+mDd<>S+` zMgsu88A~^g6gyQ>yxmjfNhXAOF764$dJKWsi++cKZn|$k2TCrr!X&0M*6fHq!3HW+ zB%nk_%CI;z`P0M19%G#c44!exAR0AqdJRJq94oDv=E2$Va_X)nM@(3d!8`KWTHN!(wQ%{Y;-IR7Uzad%@h;Hj{$Np_Ih0t9Oiiv5i zh@N7i@o%9bp?hC@r|^bPuU>#?x@>QMdOMpKO>ygJW3&2;p*R=WH&k_S@k1t(rOd;W z4Jlkb5XfUzQ8k#ldI`&~ITF14;&-YFH`JVgf7)@vmGxTCGHgJd^Pla1Ft_FC?k%op z*hTgea`|-(uz=OEmjbgticQYnkpHGnDRO=XVFN^O9kbA#h{`h)#Bl(tO8D#%@?!$| zaG)vCf*fnFB1i-yta!Vkeog3woAV?3$M2+Gj*^3Swshz>s&;%mtU{5MvbXt7c5ZGT zW+!pO^1QiN#ei_n5@&Zv4El8ZZ1VOK-Uhfk3=1Hi`T=nLhc_{i6IkKB^_^Y-o)0{> zKFI5l;#7;E39`udt_Juh_yO+M*WVy_WFc{ys2F`KbaT0Q=@O>$(UBfg+;Vo#WjZ-H zJlqdR*7pkTCU~paRhhYV`o3RS;GN$HqquK#J^WP$DqpGUv z?~{YjmTuY8J=C9*oBIwYs}*oyg6cnW0c``JoDjBgofAx?h&KIG*G?z%KYH@yKG+c0 z2;$71zQInxBs*;o>4Yf|2xjB?s86^3guPY3LVjQMkoCdF`=jYK z@nc)Q-~`QN%Eewx(kzJU99~zGKgw2BQ$2Gq}DZfc1i?-)s;6#*zLv)=V=fQJ^DzwZ5hYAkj@wmLi~g307Do46E(#C$TBBa%U`GWPbl zd{Nk16NjA>EsN*>`gDzVf+V#u85ObQrlzJJKAmzKt9*izOlDh#DI+e1fDyjtY&bBm zFZ5wNnBB={OqAJym=^Qmv&j~u0B8%r3iL0|%=$!mdXi8HDd#*@=eZ1YbqB$IrtlN> z81ncDn9$)Ws8|(Wnf7AOAE|%qRnu>oU{aMIs&A(dCX?`ii>eLuM`~`UbX1&up4zSB z!c&F;wlo_4_oV9D2(zQY7y*9(=-`uwr5wV}hQGGvQ=1tMB@OR#N zZE8*+(IQy^#SRp06LS|qh3M|s@$qq&liBPC55~pE#jz3VmsIrc^;6WQVv-O+U~+|R zQeewov=JwR-GN9~+R~z&3O!E;+wKS#SE{j$vIgSiCDb%b7@RzN<|8ij)ZS|WiuQ1N zVYFzUwVonvyRZjT)2FE5tTeL$|6o&PMkj<)mZ11%kQT2+T{63J8o9_T%QxhuqvTS} z$Sl!n376pQ0KFIIS`GWB$X;sbs~8s3sGR+4$S1 zf;a^pgzl$C``!*p5t2%t{c-1CK=@=L|yLpZrDgFz^9foB^PRa?glWH|(ODo~JEAgW8ts-E6 z?T=^W_CPM+?7XsF*H)Zh7;0`4ij#M9{5c?1k?Lf;mx<|!ssrX^aj_-6f4>oXj6U!d zz&_x=Q}}TL@}esuUP*5g6;(ebNW?06>X~@8 zHI|0CNDXG*#UiBLGB7&9lnj?~g&X!~Y+y=PEM^-?y@G~(4-w9H;xAt{ajiHl0Z%m) z6#jht_%T-&*(C7_5Ilm0ZxwhrY=gd3^i$lscdu-)z-2)?ZePL~$Zq<>!}@aM%RWrM%8?Ld`dB8uywW&Gw$B4UG77F zxCf6V{hJ8|pG;tBW7y?vF$w}RFm{t!Cb!Oj8T~EK=FdF4dPCSd@R;{T9zS;TU z^=X)eZpb|v92t2;u=)gJ>(~Q`OiX$uey-1y2+8Qi>&HqmaAyHUC>a>%z#m48KOzjK zrj;o1Jg!45`76nLT%A`Xno6)v+_6@>nh~T@5-Ft48mQ zmbEf4AYT)138MG{R`4}PJ#93ff}#w^)=OE_Niv@oEHNl8N!an!GE59Iz9r!VFbUfl z2k4Rin2n%|5xPVo@>>3M>DDL0Y*Ap3!`yzUN(JcX>K??aP$HvesC60Z!BqbD*Sp^h z8uVDh0F8YsFW(AyGPDeyMxB|EV64`Yiq=d7V)hDJFr#{u?+fa;=Lz6W^ ziqgkiR#9hyF;*h8p)!B7anq)@_z*M<$2aRKu*zsyLMrsQ8hpB@&)wVZpWAZrq66<{ zd-j`*69=xDAE7u$$OQDOD=TsF+SU#ZjFuuu(k@p;o#%>?`6j$?V13HJMaevW_DtJ` zIlv=qX*P#0fUTubGnEVIi;nZ^vrdPBFFSpoNn?H>peE4?LAYLnp9JLf6sB32lk+QxwC%LqWoOsU&Nke-ZZL`G3Gne4go0 z@}ZN_3S1auzR!i}NhPFBR4{hG9POO0(r>wssnOm;gM*uRd6O=&cpV3IKRq);L4vLB zVO9-2iUtt1eW_sLBWsKPYiM@H=U1;UUcB}NH3J_;{lQ06J86$t>cMxMrEnIf=DV*tBObBBWH>!LD{<-4W|VYhDLp7gg3Vm6|8trEr1nyZ989hF z`ZXox!JX^3yK)7(-IvXY0V@8>v@F86G& zih`qX;9@J3)`_n_1|XIiisfg-BoE9kcn7$!?d*mB`fXDvp(jrL+W#+qk`1gM{7%ZbKI@$$)PEvM`p-MS zI_ zrS$*yPJe9nDyeVv`d@!c`G5S_|G1#B#`4a8ya4~-FYbT5-2ZMbu@?T<#G=mi_4W3- z9jSAqUA;`tNOBjC?qr|iQt8zer7BNcq~Gd1?s{=1Cg$No)~&jXegOx$B!lL-b{v)4 zcwvK#XLi+xXV-=nF1w2u3FeL5y;eGFrJ>$ZTP?cK*>Jilf7q>u^w$@~#p3P%`ak@e zdjAIde}8k1v@@CV-`{O`=*jZ$Z+4v9IR5W%JV^(E`TzOaxPwCEpZ_QA_oQy6`1g1J z=dJ#|6g$oxxNC9FDOA`_8dM-4@D^M7fBj|e4uk@@@G>(DGvTd}p}^Ha7!9i}+> zXg}gwo;~AQ|3Q{+$9RgCQ*{$@3=2#B`JpV#J(Z7UYe z-^k??=;+#zu)49#zc3)E!-M;bjR6ZrVUl@ znPGui$$2|4>8lvfcalZ|BC&$k=4~6g-kWd;3M!*UkyBE71yr_s-@bi6INv^oBQ6f+ z(IXh0jAHEO73u@;D*sIT`#kI}8L>6N8(0g6jv^JtHfum-2Lk`Fxaf%41Td@HIx4cl zW>gPC^ey~I#LM7f%yO58g8yix*8^{@21Jhg$0LPOO%DB} zxS#LQU0*Z?XMr(hM+0bw(tNye>5?}@O95~^0vJtF+MWr>z6yKb^ClBT=$_QAiYG&! zq#Y3uP?U|9M*(4iex-=ue+3cGT`*R_lHjS7s2&T%D&tSQ3BXGrS3OZ;OT|ItImS?> zdV6eXKSngbF4&BuYgU`4mN1HP?-AwB5Z_|>T$<2YFb@x3rD2+sey>aYikRFz=w95(KIuBwzyka ziJ1Kz1IXxn+(w8w2wj|z2L=Sz;U=#KY83z(u#M?N#D(@ROXSYDg)HTxp=WF^VK4yi zugl677Kso~8{<{^rM{uaoCmImfg8l6Ej3Ej0*9?V&FCp{hR|sSv`i1 z?b{IjenWoej(7if!WN~0bq1M>d&<4T?6l}I#{YIq4CNDqC#FMy_Tf@o9bV2k^5iFL zB(TQ_{Fp5e;#Qh9o(~tNCHf>Tn;pHr542bu_^X@&2L^>RR=CIeEuJD^0)Mjqdl<-mU<&zs+ zM&lfD2G@MxPRjpQ?Z-_4Jb!Aq`+u26Af{ni1xfBbh6xrKd?RDDUAS= z_BL;Vg5uzt(C|M6jr9quX#0wV$=7%HiN%om1|Q}-pzhaG2_}A?p;UFgqBxiMR6KK4 zF^GPKP7XmR-se|8sOPEkgpWYlRNekSf*@m_eG&TC?XRp`^|TxK@?84Ll^b}z$tg@; zsR%l|K`q1elXPWm?W=~7mq-!FE!9g{GHmxPTer$XJ%Sr65{3-P%a_MWxAGoq zaSv?4p07sxY2K8WhE+NJU}9Qsh%ej$P^R8YST@JM0c~4lW6bsVUnvJ>ulU1Zju(ja z0|0J>glFC22A?WK=!z3G_r1N5Fk~ge1O>790MHd9w$lE%&O~3H+%M$ET^4~KzdvKw zxKpx8tYl|kRTR_=P+4SR{zSXQ{&E8u~Po3$x&U(Ns3 zp_>u|Qr?gx0v%R86U>Q}92N!Y^$?zVfIW;st6uoMDB{+`;eklVWfcsirp9UxccAH= zr0*`fCnjlaAT2m?@d%Fsx4&Hk1@ntbFRPkhq2f z^ra0A4Rgl2ka-K&*Ie8%{aCDucvzAKp5Gug>oCzCg);Xenfpo>6{}E;YV> zeo82twrUKc9&?5qJ&&<%i^ukz(Dv+hnGz+I%b(coT^NYz{~qIxV?cmv4l2j1yak7f zXabE?1Ecu|+r!h49)t8mVHE5*Trc+$J8l#YhM0d7{_I)rg7b@?X-6?=B?9@O)94L8 zmjtcodn8UNIcw`wqBBA28-imJuCbl$3dIU-8QfAxvq^Y@&337{T`jH%eDly-W&C?) z_N->qogfCJT$ghvwe{p!d$6@l*teNw?kc#5k~aF31C8phs~y?+RY0>2Gy(yTPwf&#&nA}d?)B0syabq6Z+2LoX3RB_3O$QO_Y;ZBxcsN{M}aAfXO>V zHX7kA9%qh7UUF-+ZTKy4^G6OJ{v6-1>g{tly5V-FpnyQe7q$|P1VO|bIBtZk2Obg| z00L^@XvhX4fO*a;myi@CH^z_K=PgaAVtF*HkZ^|RsM~XFqLE3BYl+Z-1EA020lS=A z>Y9(Kkq<XxgE(Y>k`2KA-9@F-&_y`(t@-BoYfhhUStMNX2oupXvZZybX&oic9K3 z%-cmV8+FL)(c{N+CRKtxu8~CimwPOuc!HdqPZ%PSv^B8dn!whbVcwpgS;E3CD+ed%E0^$EZ}|3KtHuIh zam_g6HD|XpOJ2G(>Mz6doSpxn`m?+-`8sV4KqE*8?1Md~7^oYvC*J(q`$tZ72`VY2 z!%hhzjvP`j=;W{~zA^0%EopuyxwWWe4NH?>DZTVabn?$Ioc!h0?&<0n?h3KJ-b4y@ z*))b0-6Q0tIKat8w~=%H#7)A(VH#JuZ(|i(e5v97;D4G{uKN{Zk=O^tlX{R!l{LWC z5TNY+O5nE6mXG*^`SC*<(*nJo&*Gmr@*k)wpQp~MI;Bt7y zt2IfthzIV~L&7YOn_ZoF&;c@4AzGGYb^0T%p$5ndLuaxPV+6KrGxEbrfB!!DI*vf~ zcYsuj@2>{F@5Z&gw$!3;1d;FQF!-;OSbH50EqOj!wC*loTz?Lq?Kgy30^L@iVgX7X zMQiE%6{-j{UL@vpWAeI*ScI7KTnsTzr_Jm%Qh^NiQBu7T3-LN&NcFa_?)u^xYE*0j zZ--cw2Q+-RseiyM#B&q+ecWiyB5X=ERFml3eulhu%(wgk?yfPU$> zUnFMtZGkR$6s9&jp{O2xGz4}H(%`{d1%B#pSOjS&*R-^>nqDiw)h5gd-<4p*50){su>s9e9jTpzZ&~-dl!cxvpEo zs8gL2vBf~dse&k}q#&VU0n*(TUDAS-g^Gb9-AH#!hcXof9vYEGkuD{rzj5Jo?X};Z z-_Q4W=W*=4_Fhx)dG7nV&KTzy zWZ^Ce@bimB%0$2+k~Ggq_*V_!ZSdW-0q>y};|s=~^_FlVd`~T~Q)%m}eCn>zn3hFd zMZZ_hT{n}BQQ2cUVG!^G*U9U}i!ZcariWQu_a(BL1)3pD1&F#7b?Sm#K+cT~qHVy@ z+;feFX{rTz3)W3vdN-Azkv2k=*P9M*!@KwI15THrXk%ewItRufU(-?XLUg<{)SnvT z6fPV%a6nI|aFlcHofR;|b%HQ>vcMkaN@@kT$(_HtM*;>c4#%JS>FDA?05k%P z8Z8yX@33fTay$X^&6!)eFL_W`5I?4s+HrO>KkJ~t1-yYNtda0GdJ<_hf+ZE`=yJ$; zLwHZp%2!4iQ3pjs&QxjtB^- zk@1&+*;n)~l&((Lknc`SzWO*FWJ&HCVfdqM>)ejIv$qH<)Y@37=(cZh<$XTRJ=dH0tZPeSDfQiG; zCmYqglV>rM6oy&4$muGKS%$EkBmVoa0)OeTN)uok7fBDKcjMTJ6RMyCV82-tazJ;6 z8H#4F=g-3k@erL>?*hW=5O$i>px!^2-<}N0A4Y(UiE0XX)b$9BnP7DzKX6lJV}6ve zF~kN;Ht}+qq94O&xDOmS4b4OYrg=7?p>aPRb39v;ygFAi`Jk^xk}~LN=Q(^O5rP#^ zM!+;}u%2@owF>337W(}LcqHGycds7>klx{TJix|08{^`|7CyuBae?MuC1U@cwcfMvN*k$VsqF3`mnfLBj45(^q)%RH*gVsPoE%H zJ|@SGst7D2oNjrXPQntzH}$WM1w%3swIKm?V7x@K=ni`NMBFNWe{15@F_b9XRB+4S z$c*13+7Y};QpH3r{Ova{P|WPoJtSTS!Z4*8IZ3aJ?Zk=C=DUh^K0f!?Uw^?1;RQ+{ zl&A@koP~;RSHO)?@*J<0LHozF$f?TQ<3X#IqAmQctSqqUJs7QCfq@!KRo%@vU|T>^ zZbWVPg?pKFdzUV;HFZ50W#jpnEoxkP%*)G*all1qX*3!NN7N%30+KPKw&)5%vZ_og5xELr3GLo@q(FoFe2N*JY`TNI#1YAE>YUnZ& zTi*8yVqEt}k6uvp>cI-)#r{#$WAUIk4?^jWu`3#|E@}Y}{UH$+$;HvWn|PJVm~c9N zV)xVP$!$Z80~sj7&F0f(CuQSwVaNd2p}q^Uizb|xzk+$55{%a4&7-59qsK)@;*2Zu0Q3&E7sb5pZ$ z(UF+Y!bZx*U_dneYV?O0a>sF6U4s8yEtn6S2!e!g?m1qT28+PQ@B<6OYJjzlY;R8;x~y^!XyVV{F@}4S zCN~6wdv|HzGoi{T;Q9poL=nIZq6mSIjo@0RQo{nv_L|eiixx2#F`J5otd@(W^ocF_ zNP(wQ5);{wwzv8X{lrq7fU0Y;V(F^M+ob`pb={rv1zMc^xzGsn0IO4JdG2R(VP@~tKT0H^rKPMAm{`MuS?$$Rs=?L7e!@!wB01J?)%AwRg=~T0%k|>8Y|<1}*Ef z1YKNwQ^EZ1PqA`hg!%?Ewn?yyH4raJ)&-ksK&dG5uMgqT|w#6^xy(0=6RwZ_}l*0E)h)65Q9i*oE@`Q{I~o!gFXte&3h z9{ZUK5f*LB=4}1HYdS?}mCd0F$KyF9j_2bIO=uL_x>%G#?oXdiwcbCnQoZ-x{d&jt zk0F-LGZQ|@AUo*%j*M`J#bbpY?HtXZiN_)3J=NzF6}@1P6pj=vk4mcvIh0&!I1pE$ z!bgqnfGns4PNr2$a>mC+wp0xEqXhfl6Z>LM;yjk`M1aTSUu_GXNG6gv_m;jm{0Tif ze^Ais*6z~$TO6NA2`{iB|0FGkfIze3Ge=-0z5+iLaKGhk2J-Z)8LaZrWHn?pX%F%8 zso?}>LF*7Yh5cm_VDlMZ0Nnx+Fga)3Y5#O~hR0h{@XtAd?3F)6xPm`<+ z{zwW4hScqcSKgM=JJOBe5YJXJtE%MYtRZCxhBP7-8%vLs)dR9m>s&v)#I@thnfTuP zd3-#uL_{Wls`{&`Y{jkuh32YvWF|oxcd)joH*Z#fZXR~<;i!4kP>_a3E({ZSgm>Ih zdHJG{E$V%8fvPQCR&6UiHi-Zw=}7`OV)8Aft2?|6E@!FpqG}bdLz1+{?otWQXBVgKeB52cAOjchbyY&NI~kGOVrO$NrzRgk{DX$zg;%F{ACLr2 zglcj;Su~WAXMsKse9|y)T(en7HlAUQj@O9ssA%a3T#`g8&~LFGU2a2hpZy^Zh1CuQ z295!j=Ge8f^P?Zj%eijtr3cmxvj5Ojp^{=vDlU8P_bb={8IP!Z@TkiX_Ug}KC<{@O zC&TOmn2rCQo9MP0u&MFdy4}kd6UnbVnh+R2t1?G_WN^d0=0JOXHa>!)fd+VUtZa*L zz)&as$Gq26OsYvvI>8(#O+CijK%G*;=tvP~_j-1#4fK{Iv!K5bL=%op1Bqxkl=B*F zR^DjU{X72T{)J*vUGKm9JJ-$EDK|}_xTMh*+#Skqa z@|#u7oO?a$R+P*L%yO}SdPMzR8g z?9-bHu=p;TjUu|*C*J)x7a)OTJYe_YgCHF}x~mt0XuhkX3qisU+0k zn-AhGaypd5ks@jZW;LK z(IfJw1ged)0_J<*92E)CwT9;;nx0!)R$vZB(e)+>CTMrIHC}>OKX5=LEs<7Zv_OC9WZVY4*+eqXtsB6u!xg7s%rIO=R)F!J>b&4 zJ{Ofqy`!q=wf8h+5hEgppySU}g2*nCZBowqA=dQ`M)34k(-urPt4B&4PJ%8tFfuGg%%iyX4D(m9wQMUh}Y z07Tq;e2_>ODEv&^PDf{?7fA9yNbH#?U6Oz_4*{sILC&g7UwTIB%|w(K{`H{d^!`Y> zB$N_$r~8$+A_h!k>+fL6v9>ZnGd_ z6O2Vt(2N;^TBoPxV*0&pzjz*S7NNk8;|Ovd9NBeyO(Qt zbz;|AZJZnO_VEY_jMVud7YPM~D;sQv^}0p%9^V!Hpccl*@RuK-ePOoS4b!$TMirI*WHpG?U$G4*j|F6D_Px{Eh9>fKcVW359g$4ZuV zYb>ikwaHPJYc$?ATGc(+2m)T7>e$=H6g z`>D2;k@7l-8hUwaKpX^&7*=URf=x@F4GAlqwFv7oghqk2Vl6|K&o)@``QyB&^+5TDyjIJI>Xh2nqA}AHPv#Lj!yV>a<}Gy zGbiG5fh@gT#K!CfK;SGW-BH)RF<%6=AYResZWS-iL&-53?hMoF5Mku$-ka9wa(hdn zkPQgz1^t#6rWAoy$-6LS_~XAI(yL18{qcf{qRKm1k|C3`Ghmfrm6Ru zb8vChEy&!)!Ge11+l>=wP!j;2utT{-e=`HH4O7wSh*z&FyP{9BxIkM3$@)HFhlVG0 z`2HbH{K6|o=E%MovEKB8*|E_BA3O6xx;N4eZ(=)q_&f-!c{016cs2l>FZ}uSv2)oW zddzJJA|E=7TB{z7c;(^`nj5r@?@w*mytxU>P@@9P@;>ULX)ffkAHNQ$A@Zz^(gQ0w zbo)|4C*;5*o>9|7u>kM2cIWvK?@=L%aU+E*rQde+0JN@0>L}2z^Bv#+y*hxmVwj;e zV-(NA2!v&H*puqac=x1Sv}w{}Ua4nih3e{ESFNe6UaE2lv$vgXE_PYA47U5#TD<8~ zMM@Nghlbv+2O+1kf5TC>A$?`Qh~y73jgNkNQ)f|=o}z5kg%zSvQh)nl^K6g?2IFLljoS742Ex$ zC?Dpn<67|egkfdTyEp}(jk$&)fx}k_f{4A86!ZLbn;8-@n`*06pKgFPD?(9EqK&zx zlIoMU>(~+wwk^`^x|Gkh0f!1Ix$~apZpw1Nq$1Ex#33}{EQika$bNRL)-?lgPbXj* zY2R(yoPG}KA9m|N5IE@Y#%3=R#G2Cf;eC$J>)m0l?*3vQM9{{m^R8Z6Y#_-xldX2+?_tk|Ti|%(G=+U|8UWOQqD1Zbo?mgsf@OSGO8m7#oxY&b zIa}M;doDo)z$wRhX4IywGz<}<+l0Sf@jKImyWswivI9IklR={|i~0VT(*%D75&Oe2 z8U!X4)oI`P1*P8k4;Uxyc^J~|N81Dc63j8>K$3rSYuhc9GdB1iRt^qnNE?%%A8?O< z`$O1iE>qyJ2ALXoy$L`f!R1k7+lkJ{+aMToYkz-FtoAuNtr?PJtR4Sz!qea1@NkJ& z?|ivgHim4N;>F{h_YCq@^;lxY?K7CqjAsj8Ut4IzuofcCPOIr zm()Xb4NeTz(_>FF?sFU$zG+*b8nE}x;wLH8GAdz-sk8D+u2tw@>fs)+@TnO{Gnq;w zzk8N``L6Z}5hLaCXDf{;P(Rq);X{E;9Ej3$G%FG8kUX5a0(o~~4}~i_1pu(MM_7&k zHbv9f1WjHh(p-uz20`^$3IoH|(g-_%vEe<_Eu?4VZcaf9qV>iHIiTdR6r{OlS%#UHNju-tJfn<_R$lfyT1 zp>wqo?Vf+huCY78b72xksnvTI1Bsx%F#OFHAZ^u7WdHUNb!5-SFAHxh_VhJz4#$AM+ggCrKmR2A};gv zFKbrtCB@wSn~tj_Qpy219Y_15?eL$!xumiW32}2bH5FA?V%+#1TU3SL*8gHro?_a$ zZQCo{sdafIB76J1J4SP;=HG8hzHgNZe&_!@-q`a0$K?HW45+C74=OZajowHG`9K|R z0X`Ky@?an|pzb)uA190c8445?L^HOXkCStI=`fO5o2Tae9`mNGE2Znuc>-TO5A@zBWO|B)=C?Wq~9BN9?lN;huYh--TK__2cQmXB__VB$g39tO};f#CRHGpuQkyh`e3 z05WNe1K2+v*RU!d3@*^t)IE1#Shs4;x-F>_sn}T4?l6?(8OfTQa|T_k?%aRg?cdMi zrAo|5mvT9R2Nxj=4iFfF_OWHg&uL`nJxwl}GqQ3ZeKY0?h#dv}{RR_OPy$hD$P2Ch zcn-B2zbJOwtL}Wv}zZ>>uE&Ll$yEOcM9-2iQ5>u^9$%eGvYBs=LS?1HOx_g~lCaR>uyO|X1qDOPwzY?EoQ;%N_}g zFl7itwPbS=2oxSkhN6~PbYvu0Hls0q7r3o)$Ti!USQ{|xoLL(v9zdk3DXmsr#N-oa(Z+l@~%*t7bqQkA+0=sQHlUm9Fmvbz1G4fGI{n zY3MHGM|@jR+_?)CnGtkq`h?KZ&u+K+0X9nwUrkH#7dCAcW&7TPs99+vRP7?SjAO1b z=(G&Cm?wbY(`y9Fz>^_A^R8n?I;Ng@!aXiLPaV<+l>DZ*zlf7VxM@4Iq$Hc0LpUCC!^T}tzrYN3&kFXs|l** z$^kIkW(%2_2v@teFDD0kvm4?*jQoBYU2*E`hFOdj(n(mH07}9GNgUy=ftzzau3{9n zJET=?5+os-Xe2;0B2}Zd*3K%}p?to4)}plyl&%hkA@+<*@Ms~Ih6qCdyE_03FBr_n zwm55aRR^=x7)GaIIA?%hO;AGupt&p#>1g+Wb*E}@Ig&IS_%U&?w+J>tnMFkbc&H8s zEfd!TQN3(z4i&#QoYb(0 zs0N@^Y4@1td|8L0+sB|-Vi5RO1JHlU04Q`|FRP${%0!}@wP>o)> zitY(eFLSa^M7$~u3YGNRc z0f$__<%802yw(BO>wVv|J()*$V`&Z9$smm_8OBf{6N-iaCpaaD`Hi5+WjRb4iPzz_ zy@EGXR!v%}yKyJNGNl?XhVTdW@PIS>DcG(f4zSY{7C9x3;im|X?8Usg^5``2bkgh9 z0$f6P7X*)(YEbZu#1}=v+(CDJ;(C@kC9PIyjRKHY@HDg(P1bdhQ4)wU3S<-`04&8p zJ@xW!QhcBlKjoPTvmd0P0RO9QSNb7n=Wjw9Aqj$Z?_T4o{2m_-@{0&xP2M@o7{Yf5 zjbzj2mE=j9H7Z5pQBb7=20eW~H zU@8W}NFXE-3kc&Wq;%bYoP)e?!u#>jFnhrm6%)hC&Q2-lTVdP%^N-&iFJSx1=$#8* zXW*d0CcQSOXfQrOqOkhkx9mEhkyV+B`%X{~==_OK0`1%w+#ttWg~K%P!hx_Vo1`Y^ zq$8m4u6gLm1N=PYaz%~3vG9(K87@N;I9tZjE;teA*1eES0IHM+wjxOs#L?5a6;re+*#7#} z<6ckXjl$BmFfVbE#xV~RB?GKf=(PqV*#A*)uYeQc=E1R~SCtTXE4^c>in#1}|mt;j?pnKzm@RB7naeibI_sKs{e ziovnomGR*B9lDv|vnt=c4ww|kx!G;H!WrgZFFd9K2&xiWSv9^L&U@gfd2iJp@HBnWwlJ(E?nx|?Coo&hBe^rx&jd^UrM z!9w?2?=T9|E>dlKAP-{0H!*r zLC{myzg53Gd@o?8wtejH>)S_ry?CbMR&|TT@8qDU)0i$6m1j3H4gM*>vVA=Chz zE7B5vJ05%SToykY+i*};se+upBPc!hIVOh9tbr8IfoG8Ld`oBRQSd@g+Hl1*0r-QP zoNrvhhp(Vk|66o6fMfxQy1wo0LH{pmH|Ps7pF9HN(_yX&zzLrKE+!&_8x!IhXleMD z*GH?HaYXUdDhH4^cQhv%ikAs`jaSzLA&e*URv>UF@O>f|x_kGyvd7{<8i5LA?@1h7t`v=~l$^7aSlknj!_9FFz zP}YE8tr|VWzVq>liU|O=F&nWkYowRtK<_0Z^yA(V`~-FhMqfP#(qRpn;!4BnTj7ah z7KrbDYwahALo6&3fH&&!_b?wV)~L)M&67keNf_8_$pGYN>$Lwp`6aV4>gNqG(`mYS z&HE$dZI9U%UYL%-j1VABS0g1l24_71CK!bGMhf67tx2P+Uu^96sOYIf?033jgE3;> z$m>=f+-$J9s^}w_5ZJ^dm2h3m{`okYIfZahxvb1@d&mHC1n{@*GHaWmh zj(2QO!tr=eu(L$dM3_)>XPevEqXA5kLLUZ}V>5xefBpN3Pg&f|bKG=OPZ0!z9U3CS z!i8tDJIQZG$|cf}EQtKb+>p>D0YRJjh)YY8E%RBZ8#3m_c2rFSf!nQ!N=jK;S~_ir zOj9w!qy6*@6;EwKMI*)<>KK#e2k@B=Dv>pY+NYUa&=2E5N0WjDBwRA3Mx^J(j^C6g zZ=qy4g3@Q_ocj+RB*0Lq*V@R)$bSe(Umf(Yzse5aw?ML|%2g?->Cth!5AWoL z{~ICol|^8mLloh>-`}t+K(~L>_J6;vta2k)X>z*w#f!&8tNpoSK67kszosiLj}Zy& zo;_*@MlgwVBd9&r^{J7P4M1KYR|Y0XC}%Vew8oDLRU4v0Ap{2UE$3m3QuH>@h?hnT z!l6O|Vaz6^{Eoe02LI3Qof_RP%^SDz&0>gd3itp-0buG=Ky-FPbD}lvj6} z05>o)j=-@FoFL!n)swg54j6Wo7X;%?1cW}oYsO?|r}}Hg)A_i|0ing{gi(OL4Jzt> zcJjYojoz1~)=$5=0F7Li?OxyIjcSCAloic!6kebji=&}(t{|q=+FJD57_8~GL_=eR z;wlO~@*o5Qjc{*S^ht;{Nhv?f%{`I$?Am8cP$n`^-l8JjARGhu83rSB02Hc?0x?A5 zFP?zec@){m{9&rYW!b3^89CtCl{4YZH~R*Q#_1Kz5KdPJ=9VZ!I6)73G}s2hMEIWD z#5YPs+4#ze7SH*~vuD%P4!^^itUA7dFG!6A1wyE|u;r9?Higljw?_$LiIg8jL^>%v z`|TwZd($j4h*LM${y`2EIyxW2Kq7dfJ_vvF^I-MN9EE=q7dtX-&};Q1-4<=#F8?o? zu)^3U>b#I>N@kkyicAy`M(5EEZl%Z`cQiWaOo=frnlZb9H|zH&riN)DemCHgTg|~e zsupWr3(B#1Pz@c?IQ2zZngSwgSSUcfM7G73fB5jd*@L9Bpk&DFWX}8Re{a&uFhq3` z)p=AL9p)qOO--ad;3@-%;Rnl0XboWep7z0_Psl?GT^gZ?VB@<^Zvn_a1E5{iL)_Jq zr7in>Ipy5rcVB5QS;HCC7vs-6uj~L)uKeSAP_e?b9UgSF0GvTy#~fkDEGP0WFzJ&+ zrljO4eBVn7Mrb7tf!U`7=hR1pT1M1f#=%Gj>bNg>NEir^*1)Re%Z*r+aCAtb9ZoY^ zBw&(pAoV8*qWdw9W2>KLAv4o}P*c7@RNfKTbbl5`mnT@elNO7YXO;_IV`0Q4)G;a` zPBx&Q2`gi`bqQd2BV=wAE|g{|sfq9JtYX9&MK_v&Zwu0H4OnSmXuRgGd+Zai{D)Px z9p^CR)DN6hCQKO7Ysr)FlDi-K{leAAW=D6NpLl*4#|_=20acOA6hN8=_>#PBOaH2k+=X|Rj zMlA*wus3d!u0p1K%$?`Ni5$lKb-$mw4ow~-t-yI@!}M@>mc6vJQK-&_P?3^W8H}kC z#0-z0?8WegO6j_w_PQArFX@~}@vKsaT6Wf{_1j^-O zMd>^Uq~LL|wF718EqIlz#a}(dihNF(O3+^QE4_DGrqx6IN2Bw+Q$O}<3K~_E{$`7W&2b0)3FYodEz#!z;rTNa~x$6Tt z$O5O)j1S^`+&7s3K=O&m!y*0Kss6rDs@f#qb6m)FDNmeD>XvYZS2>rqI!-M1N+*FE z34nx~JMprQA9MBVxmNz8qOQb6o2WnUht!`O%^_@#dIWmyHjbZ1Mt`ca?IiRoU_!iQ z;*&&{fR2aIyt(=SbcV8V;lQDPQqpmnQVL%ci$iJ*o>&04zI1qB-}1GwqKF8V3DIXR zhhIvZ`ICLyz`j2sSzaA^%ObVInqAF>`tiZh7S(yU5xsiI!L}js>p^8@&Am#0C~rNw zI{e{5ra!j)dDipPhkFhFm5YnVPx|Ki`|oJ^vq-1!TTrEwnY|fjXAH68^>J;F%Ry)8 z4G*JZH-e!DB5QQ;gnX{(dZZwil8PTi7In@O66rCGC43736Eyp$=MQBzoA~q!;vVm_ zF8)u5RpaZnwu!yZf<@AeqAIUEpwW6>Rc)XTUp$oe~M zO#Hz+O!fCel;y%Olw)CGkw@c<4M|}j_np6T#p@SA5q~;JWb(@Yn8e)M(s=gwm7;Rp z^56b3_x_iE%)S4fIvx05Ry7Cydv5sWe_Pd@`CnEwXa3u&=KuXw|9R|x{=WzK`&s<| zJb~fgW%aw7jvQ)@Go9b??E|Nh;#t3dMi2Qwx8vbeJE^+pVQrR(bu-N)(_!5??Pi$$ z9p&H{W$UFOfAN+}&dx>HfI^wc1*W`$lGx>2y+Lfwg7!`eL<1wt_hK{FP#wAJ8tk$7 z;PF&t;+ht3?Qgz2_Zv5D|F~<=PRr=t-}+RpR&qdgK$O$|auYN(;$H%+rTR?r%J;kd zt*_4*gbO0UTdczf#hMg^=pUX_^fsIxm41r)8FdUeJmA^kNAb^@AXX|@&egWd8S|H4 zxD^E*&fa>W{e@1veurRK;x!JYnK&m~?)6kBm=R0w32q>NjjP0m>gpy8*^(+ND_sZh zRRge-kSNEI%|d(Hf}Jr?53gEH6-Kk#*0aq_Y_rsS^R~pH#^c&eI@$^vGdueWnbh=J z8mhS(x?i2(P2NQtP`R3_iom~$cn&?5xeIkLGuyFUtiFQ$g>lS#+tQ#!8 zt{LREu++cJ+q3m2^4-2oCztz>ew^y^3%_$0+m;4;;p7{z7pLLVe zbmJQrpZJ94(2&J>ets)S1i?|Fmt|7ofDEVCy$S_sN*h z4Ly93v3~{%W+ zhISBTC_$?Te-ZpzMZeLCFE{!@zJ<{bQ~^!k^~M5FVc}fqy{q)0QR3xoTp;#I8XcWr zvoN5yH(pT#V@-qWs(h5TWUDj_JG&BOCnQylS{9C(z+D8Tu`+R0nfnMP7cn?t#NQu} zG)u;Zn0UC`WO#YpA3t<|3E% zch|igdlpcfpZ%2ku8sCnj)!%JvNdB>M1+orw-m7I*sqQ939C-um`gXKou?V~iI3O# zpXRBV^#Q7PG~EtJ&GLxtXBYkI8~T{8tbhMzUL})E=G2S>Q#lO&MKYcZ8Dchtb20CG zbKcY~35@M>noH6THsPxtXN*&~_Vc-9lHe809Q`u#Sl~B4p>F4voGj15n|E}^I4N~| zCpORXZdd2?5U`KRv(b##jB+#Ki#xYyQ0z?A%KxZ#$b&~AXYrrXQ>R~OcvOFmk&2sj zZvFC})p#IHRt?LyXj>$uHFn#L*5T)Rb`TkrdH^(RlB5uTe9;f__SU0|&k;hX%l zOU=Q>(C58}L99q{#aPq#AxbWt@PzB=u!f3Dp2&|#pTD}=`kdaxf51LEeV;ayhS(RN zG;@mQp=r0qj8DmrgS6v>c&?nN`h|a)3`Ri1OsL}`@Mo8!UPki{2IsHbhA5U6>hi4z zh-2bW_}FtU;^Y85_d(aCx2GfR+J&d|0`mA%=`>hp&;a)XVh*C}R#sLvg#Ej+M6Gb8 z$SDGQ0u-P{_6cxBn4`nO2BM`H6@-$WFeD|gOlvYiTT|17Z!M82qaRd9XY%^eNem_l z`GI;v#NUEcLE^=;2_~o0H1aov{K?U7Y16ed;9&EF|E`o-c6g}(vq-^`{_Ixandw!< zmxCF57&sf-Q-(j?E)8kXb2}hB+q>lYMo_%vb&72E6Di)lp1oZx8Yfv*)vdohTHYAS zc5cx;XUy8O(luzTMos7XVCclcU7I3%HVgZ0hu)fwccg3-b0$AOXBFO|dgJqg)>j^$ zpZ>wC?%H@x&Xz|wjE-1WIJEKG%amLWwp-BG-*?QVZ&xnw*DPWDk&Yia0Zzv*tDk%O z)@1N=+r(u)hu&3Ag#!HjIUV?{HYVCnFYo)lSGjp<*irJl!y5gfdKE7`5Q4d{rTHXY zhh;QS3BO`t|8*nnir&OxiIj#>n>Zn@tQZl2O9CjG=Yc*nfZ$e7Y`~8Jy_sxKkU7f9 zSxt{sUcAl=H}Pz~#aYZ$a#tH*jNN;zb0!@xcXleR@5YHqa8splX_eG3bY7{g4cQq9 z1ER${HY?I5!aIEXKNpbsj{5YmKy}_f+aAb1{d}xZ>bqB_#ooGSi}yW+Zif#{I3F)d z2;7qFBGRUK&5c*~Yz~Efd1`Hlg>zeAinnOcpMqNU76lzHdH3CBMCG!C%D&Y34tWH> zwt4bwoX4g)+2T@3uYf6^%&By#h~4MTwPYfpbxw<@q7=lwx{VTqp5lblvhfs?H@Yg|ZDY)@COYb+ig6ntJnIIoVi! z9;f7%f0+K`d|$F)JbV6z%FMvz_$W0QK9yz3?QGp+^Y7{>dtQxMDt?`0OE@2-WiImR z(uB52Qm2i8++H(riR5NSLnW=+qCD;SjF|J+Qp1AHQ%AEz`CljQb?poR=3oHd*ty}1 zYBm=%Zr(J9P7OR<9spuO>?Vr0`M;?n9ypWMGPfU)0vuX-l5o_xI zYyZ8C6ZxHsRSTWq*$}}k!F92LqWEurOm5={Fg{_2BQS|J)#&ZLzx1B+1I)nc?0{}I zjn|hjc=!2cuTL0=JeZqIjdga?>%(lAg?-}!#R!ZN2jDzYU3WJJlw!>rWu`=-vB2Jn zP_~I$D$2%(5D4Z+si{ub6we+$&g6fZ4HAD>&*c+*@6HE5GQSL&)Zc9`%~RZ*X3r~C&}21XCMT+nY@D$iIO0FH^TE2Q zSo`uJA64!%`#lV!K0GYp%^$wPM{#`RAN8@y#l_q7Q=+k&sJgjO-LT8-Q^e_Z6S~RA zHUfEHsErv)NBEq6UXsj^$u*MONHOi|vE3U`e7J1EX{IEP&Z2#-XQawL%&pb6|?<2?wigjRx{LSXnC))qK&16T2A`^$AQ|Yp;0- zAI6&p2$BFkm1Tarp4}f<4nXkY=IVA3zz91G3<4?4`vIQ#88y9r{Rbb!dsCpXd#>=7 z(68$iJH&`#cuS0`kf`w?^GEn#ZZVxn*-s@avf4JrV18+PR*^$yf|=p7bg_CPx{l&x zO*65LL+6jORYnJ|r>0CE5KiLVWj3nRO0!$L@%U2ax3TcR!L=JdiOY{w{qRA&8>tqO zyDyR*rWl$c6n`}){KJhvd0Ph28sAH8bC_ z5*=liO*cx=7&_sU{&qXP*6dv|{wE#bL$?|lbayE=ef`T+=BR8Rt89(*Hdt+X?}Wta znChZ|lXsF9 z2}=Q6nkzhC>sIUpAOGDpo(hU^?N?8Xh=3@5v(0C+r&biC4^bw=ORSw{#N>SwD^e$5 z3v2Kcz<$kdH;V>h0fFz&wZo2g?|TxrwtBi$V>sDGxfCID#sd0}Nt$M$3Ue%;bq%i9 zjpfS9-B?P;Gd@0YGTE^3qNMuuds2r|ic9nvuWpR(JHYqvSGwJ&5+TNq{nEhaz-lmLJQ+JOHjk;T!idw=P zf?L0pe`Ia^aVC3qK5%T`TwldIetghrwK;RevBOq2Gx z|Cm-=V!$W!8J?-1Z_?SO@)_T7Zppe#k;|AZi;X?T)HvM`Jux!D(fzQV>uKxrBGte{ zF%`0fEnD*vO>JgvU)VKVNlLT(=Sy9-hESA=AWuT{&Z&qB$}L3!DXkFq-JwNuZj*^| z%*(Pm(!SvjZv@hat-52aG~YF(kx)Cr=cOVWul|F1)4P%R4O!Q8!ZBT&vwp^ZH@>6g z&UOS_728+_Moxx37lJHz3dPy_PuBfuES1TlJ*y9%UWX0AP&%vOO zx{F1pp@yV7GlF&yLCeQisIx8<5MS(M1rvEx?}}O55N7JW z)(2(#G>&Be>dnI#sM0#Sb!1lh?bR%*d44qcY}BFASH8@~#y$bGAj9c1u6W=9MX?7v7qwF%==!EqWpr*J8jwd(#Kg z-Gg;3pRfwc&?jnhPIl3UhJOSe@K{tGC|uO_(GlT~>IqzRru2CS>b&#>dN0aht-9WS z1lh$uHhzhaKKGNSXLd%0Ytq+Hv|>agH((F%*I^^ortRNR@6T6ACnmH$4+*q6g^yLo zx}TvTAaq=jo#hhc<*Q1I4z-{-_-L*hLhEfOb*VmIGQHA%!El^m(c-PyqI0EmQcFOL zQSFtyOsSw~k%qHhrnzTs&$&-G{`G0qpZ(VSO52FXC&hWlcC;-HjE(?9%+bKu=pBQ& zbIUKEXtmBJxQS%JRIJ#-F))2{e1zW-KZIfG^VtwuFn`Fn8w>;$i?o<|e=L==3V^_t z_=fdPg1P{vRXyV6E2O*75ZX0VK?=?jyuZd;8RCa53_=FpQVh2 zhqn7NU$Z*pwOQ+$I;FB{AY0sjXVyO1Cf(kW|C)~J{J=}v3z^KN6VHEqUB7;+t!5pz zefmk|^$ZF+^oYq^wytftR$gusCsx0ky>nRBLHQBmM|=<_)34Vv#KqWJgE*mViA!ik>MI(Jq_q1 z{@8UVNerhvW2{LHFJq`iZpw|KSeQOzsc8}>K$4zh%Q8vrpq;>_x(+%)tX$)>ax||= z0t*N&x-WXaaNzD_WJshcV6_ovfIz3t+;%ep3OkRP5NZG>S=R4pRr(RP93aRdg$@?8 z51`n|zj}2c|Jy36pyEG2e^f9wDZeYl`^`UCP`iJifOp7GvV#BQ!uvpLooh-dwy*5d zQjY~5eqs{2K6=>uo8iHFjrxiN^wSK5Q)k5GOE(;}X(~BO(fk&dX4n5vA!DaT*;ogk zw3A@dbH*%lx`clMw(5O1Y%Mxt+Nz(l>SkV})SpfD%PKnE9g@EI8NR-uL(bi#rI>ZG zZ~uF(ME)1|fH_O2XRn7jo--zOI=5|0^@@CPcbn3@if#Xfd%d<<7IWA9KhQJ z0i%5w;V9OrcCWiNJxs0_u@m!*B*RzpAhKp26yW4Zq5rhiJdg?!6DH6myco$`n5Ju% zD8P{8S*`M51*b)9X&mzUPO695rJ`gA;2ne6NF28Di4!X-Ms~IIf9mMm842wM{BP$8 z0a~-{ll}QR_G9-7I9Hc6W0B+X_PzU}nNnUieqXX#47h~sU%?TdEK~OSHP5br#w?{o z5r^a`b(#{IGPmZ)D~p3hHphFeezXCbtpq`R8JPSV*a^BFk*41%XL6Btc?8f7#`@q(q5-%Rkxmk0ZmaR77| z(7a(VF9DJ#x9^vEZMErr83mc?*d9t4nM-5&n>v;Y$J~m_B@q*~`AUzZm^GNId^+ws zY#SH*SvHvN%jq>5y1IRNLW>FF5)Tt@=7}{+pS#ff&2mqC;Fj?5yzO&6u?jD~@b%Do z#b3D^`F8am-BtI7HGL(5+}@7Jn>=aX<|woe7}F*_?^p-ke2MlDI%nFCA8c7FIdUbV zT4;y&BlY9&JNVWV7N?JRs~tt`Ir%7#I>4KryR*!zMjCh|9=k8p4(qp5@i z6ReL|rbK$I1(h^4+49>t0x8N@o>z?64uQhs{^W@l?5%@0QaN}3?;D&c&Y)Bdl2|9|(O%-IIYJiV%* zIN-oRQ@SqL0YtpftLH2c_`bK&G7MsH;%X&^9vF`6XM#5dy{fB|2OK@!lX9tf0^qa3 zFZUDBVO*jCsN73gR`sq!yO_&K|QBM>G^Fyy5a|n)9 zT!cqBw#~-iP7=E)=qd<-oTG439=Cfglaq5tRrakgWWqaZH$X{$5I+osRV?Hg;Z;8O zG3iC4PJ~@b;P+>@+qSA{yawxz&oqE|8?P|x#y>K{`Jk$0yqXpm8L{TR`7>p#-g8F8 zXtx{K8j(NgfmkqP_O7nZPBKbV-}hR97fjqXktSX+5+iTo0|t|rJI+Bi zVBf&*HElAVtZ%BcL)WK@bmNcuip%-2#k%1?~s!E1DymAx(4AXZ(g$55vHc@9v(2l zY;OP#p)+-XJV^XK8ZhoxhIv6IWDG=N)zF-dWjLVVIw{6&K98?F2gPX$yu!NJz703& zqWglQbONI|STl{G*dMl~FLu0WZjcqyB}a6?yIVyiPDt;*Sjww-v(V0Z9!nE&0{44dvcYQ6U3f zB3w9o_8gE#ZCXvUiRtI*mhTlBqMZqI>jASSOZ{{#5Qo&c}FE+5FQlD#HZ9V5@^dHC=|7Dfw<$m z-5=~7^oe(i`miuJ0WeKZay3APmCu9arg+$M-TRkgk?Ypd&s?7#A__N16O5vc6Klx1w#<=ltDvf8sa`bFQ)F@U5UJY8|n~ijTH&Pi*{_m{`U*#sDyHU*-A)!hgqPHU35cpcYD~ zC}E_Z+>k41LrCVLew^x=7xCia)iQd;*YB%7pUNd9)MjaFjJ>hoQ-8JVgsvJ77oJw!AYaL(E@H53$8TbHiMWF|JqXN`HL3^ z9+V#VXw~Mu@rkmvNC-Ou4gd1y>C?T6_8X%Af!#83HgSsfvEy5N@`B8{b7fV{m$O^h z--Kq+-b)3Z(W0tnDA5=LShhrw%%w__!z;+ zu9c^VE09SOc*5dpiK`Y|BSGac=n!)vhR&9hDVy|G7h)|V7~IpLLBHui(c-iQVUxk( z^*Q4r4*Z{VsjNqi$b!+i;(nP4PaIjCrW$mAi$%>BakkHmaex|0^K;|ha9SYF=sjxu zcx5g>OZTr{H!N*iJPOMvm)Q!Pa>_OQRd8}DvFZ)pdSZXj$#)*Bx`ZZh6EyDV5}hu{ z`mw|@&$I7}CE_J0MOydp90##UpSn0u1g!oNa#`U55o&pk+kFQDTF~F#lp0xpovDk9#_M)b8b94sr z>_E3Ph!-kUDnM<9a)KzjaEoII=?)YIJ#_?6dq;8ou?TIYAW7c%Dq?dKIR69DunuB6 zwgFvZ`o#caTOZm)9z!);UDB7au+e`vmTR7xqbTPs=l- zg+M#|{Yeeyq{lY0%(+WEc;jLmH@D)ui1*;0*2dWl^20S?cHvE1uO zq(rkxrWAy=?0ny{LIDj0RS8iO$h1fIsT-L%5@m~Gs&n(l{ zPv(vfO0WF&i6l5;>H}qF#0`&CbperBKbS3S@gSp^8VTMvB8d ziL4%1b~`}x3NL3AF_VzOkzh>z9iz;ZPrwB`$47^QKb=fOh$r<&rw%3>s1J4@OF@VJ zI&ngZzdaI9U-)wPutIZ6QK!S|p4$1ce7+k#d#GG9szz-0l2nRi;wCik&c2B8bfgp1 zTj%j+$$vTAQP_G3?)i5G9C43*?03@A?!mSuK3K^<1qHqO$dMy|<}H9M*^L?au`*~J z(jsH9{G?(Q1<&HR2$0@GFuL?RVe#sVZ9Z#O6&RE6F~8AcWMEGHqV~%0Zc|gyx8II>y{;P0QisxZ}!c>@(^O>wG zegaCy9#D5T%5lh45tla@L+AEAfjg@D^Z?}6Y<&t~09X6lfB+ql1`BHvAbL~N%dB;q zdalPL#N)*5MQ}}L!%lRV?^HW|1!R&w>;VCgYV-&k-E?&T>F);P=se*0AK;ts#Rt-J z07I5yWeX*&&uoWnt0{3@*oZO7x87d5v4V+bOp6G}LWhRTcYnHO2|b+i0Bx{`{$q0y z*!Vb~_xV!zfcTq`Uukaw!Pb{2Y-1)Hte=IryFUxgfWdK%<)+XiCnbNInSJ^Ye)d$E zqgeN`5~<0m9%@><#nBWXc9iF`faxK6{S~mLfM!eIrcfN z^in<)(&T$ZFM@W=SC4OU&EJeTDWu%G9pdY_T%ON?QBXIEoa1GM5bZs|0MIMnnfc`f z&dwn@h-lNUzH_%MUh`ALgLsf-MnbDVhmgjfk_&DPO^$GU`l8dA;q7rz)D6Y+XU|oi zFPibihGtctKHL1Kps{oH^R~>WWwSH|;q=nswea-K!vL`HLuDnKUBJus6tnEs1%~4w zVHD4}P=!wnu^!w^RlEuno!(1MQY=UPwH8Wp!WacWoXaS)-LFI50M&#iBdoLMc@4LK zj*cdaD73*W^6@m%B{e%{XP%LJ&2rwP82UkfM5b9_fMDZJW+doI89PkDd1ciSV`gKk zWb?NX;X9}L0$GDN_WINr!VQbKU!@QWVb7S&e*=+2DHtCXMs`nl3P~yYv|j+Z7aX$} z-wYW_HCi|h9V%^`K@F#(tsMgI0+Ua+SUdeRictsj;hvk%iETRB)B@azM{ggWczj5F1)`ExQ(s9$&a?^&3ivnCfKdPg#scT-@!4GsC>$}{ z8>}TXVB}-tzS1(-A?^S&a?I_9evf$AkJC5lwocEqzsHD{NbZ<~@ey$FxwGv^vjVNI z<%Dwc)X{t`EI}i>Yj`i<4uNS?URU`P#R8~NZ1cyly$+Tl8N>(|Nfo55iXO{2sPWJf zZC000kBmG^roDji!C{8>5XMt`Qw{x3l@W<=<+dQyowCraFG~D>w7qvc*XzPUbzTEO_;(7I>;@Nr&u(pons z%xe!iyj{DKPgeHN%VyH`rk!c7nc|S=Fm@3y;@wo2yZC6_kjxFD)v6RFZlfqi7Q#&T zLnDtS-uJddu1A_b;fO^*0=&7qu`g~X&grkB!bG|=;S_k$ejHG;3QBx3@)6z~Uqe&Z z>P49p2?)4m@VWL8drRB`SwK`UKC*3mTV{zvglsoCp&_!8c5gavDfFy0$aw*8S5eDiGi5 zhCMMuFS9B%=`JfP(bojNb|m14LpX}3d|h8^jeDPDBpuK!;;&wj3btatzc|?o6urm( z)7kLvq~1nHx-QAO0r(tnTd=_!h6Fx^ApkXLtIK7pf=+*syP&Pxt@Oo?T|Wiw z!fEbND3#ik*HJQieBbh*k{K;NBwb1QXpgB^WLTsJujiW*$)9MNx4>*1*>5wL!IlG4 z?mfc7!u`&ri-J0AnJ-^frPp05_^szc1VP%aaFR*>Wj`w3r)~LGIRikGprMaVpSl<6 zJ$oXBH0F%KYsU;D=GYMLQr;P8nQ!nP`S$k-^vIXFbFC~Y6?j{NIOT6dWm#LC@6*0R ztPK*{{pa`NZ@z14lHzb3&+%%wjMTHw(e`yuP1(v^me(Lmi8?#;EhEhSgr;a}IQF=A zjG+}W{1t?XQ5MAU1ZLbcBN-6JP^lDNbZ~bo9K-yRtDjeT%fORG)_Pm}e40`IcF|r} zShq;@n=G;DD4TX4bppU~`I^$gWDsDOhJv4ZWe+%RC96w12wqT0CaJ+@5#6E>xqV3V z^W$rm0HaVh*`Z9PDlD5Xl7?!=><{jPvM!I(hRbO5G;`~7A9WpH;`lWD^aZl+!p5xU zc5er4BJ(%buaMSekFg7}xxCM|F*5pt2wG}0<$toi&*9vuQya7_Q}Fw~A@L^@>-X^U z*I_`W?+LMoF?K8`w(qPU8z*Q5z_1o-|=GSUh%@3U+`oR}7|h6ls;b{=v6ZS$3K?n}%_R!Vln?w9nmT>{V) zC0T}-p5ZmR@Ne(S?c$nqt!S3LjGxPx~m z1p8irqf7a6eR$Z_0EKwB;GBoOz;fGix?a?>uveZRtK)7d`C;esfrGk?PTC`V%Taf! z9_;u0Saz&cLhOiFIiTEDNbe^4$_#*!wZV4c1#UbEci3KCq2uj~*2LXElQujEj+wYc zpH{cGw=d>RnQ(l4*>e9QyxYhGT^fhRN#UafcBAKrbOxF)EUy~2FYIHIysnQd7mStS zvcVZvL5c*xiXf8Y{$J`?68<^y;zNY>suOmd$M@2FCU=$PMUImgvZY$?A`hz}VjT{0 zSuaJlYr?U?&3&=`pP%7t_K*F~Yk=K;g_z~Q*763w7-^*@kU3TDdCapz@lGs#yd+f# zuHWX_FI@QLIhlb)O#69=$3q)tUKqe5`wdd!5of@wR}4TXs6aQqscY&jnju>=^$r8? z)^5s4%?z4yd@AqhQU3iz5Jv`7?Z^WXD;yk(bwldqGf8i5kIU%OqoZPwwh>2EP}ou` zhD%LTaC_M(P0Xf=MLp3j{0}$=p1S_uWrqADDMOy6ZxQwC{t(%Y+6SB-TEwK_gY56` zpH7mow$}@Lu59UpFEL88nfL}m50Kuh1eFMwgLRFMRTMg2{yh9^s?PxW<#sgA3Vv^0 zGC*U62C_<|af!-pf#_gt!9TI&m?aRp3h}Z5zNVfsmIFIq)K!gh?;9Fs1?m1`7THo* z1!}$m^g+Jw62fwP!d>=nA8-sjiy#4Lw~i{!7blLDVCKhgm8c_I5gLSZdUC}d*X>M9 z$s`~Y`W*}+7a_T72LAYSN%Foa88rc%gj;``eF=8KHv)nH9WuOJMie$e-#PfQhy&^W zn%v@N9f9j%%uqsB3=tUOiwKB_WX{MO!q74zT!7yf@vg^30PgVXSL(7)LrC<2#N8SS zJ}Kn#^G%%Q+@Da{j!!U}K5&&&0Wf3>(%x4XHHMwK@YJ(ZQXWAP@8Trs`*oPXZ@M88H|NI|)n8@>7Ua~zLHQ@>LH-4}Ktut58I`mC2oB?xfp}MJOJlv;{^`ye=Gu4RU{OL5V^(F;YMHgNK(_0&KsOa3vXK znx?8Msr^9P5G$mJA(vCa-D@x*!H30^5Jd#{#rQTY6!M>7#4}e;v-KM?r&*o*)}cCt z)9HnVkOcYY!%mrm7a^#T)sG1`*zb+aS77{VI%J+*e|CXS_*r?@$Y|j7{(0oJ9k>hL zo77vPT1U9}@hK??w4KmdWx`&d0&Lr9;Km?os1r;2qfy2Z!3<5}`RD_uVFu8FPNPpLG-t4zavjx9vS6I_sD^w&ygE);vV1p`8nV zfHY*{T&Lmj$YF(hmf7hza3{pZ-Xicr!+g;p=b!PsT0~n+m;=My=bOc$ zqA|cQuU3eV9^=SuS^X5ZV*35jUqHs9t5e9v34BZZ|DlVNdVrb0Ct#xy%!6&%Ji~w_ zIR*GY2P#Mh_*+F)BCDS2ka0Kr10{6}G}ZqSZk4bQM$7qQ<+H1Zo7!^aNILbw!4;$f zm2&;{Jt^+uq4S7cz&DU!T7c#x8s5M6krnG8nVJ%AumWDZ^7DcGH^c&w`9T$&KcTZt zBt!$b{6x3`SUbeF&fSEwR``TC)bzVRE#Z33W9Que<`-Jy3W>D_#$ zjbu=?0LsL~eS7y3S1s~Yz^s{VX>M$M|}9L{rkz&v7=Amln4G{Qv3lhiKzL0-@sk3dpJZD zq;LJYN@5D=(L!R<nvI`o z*Q_%E62x+R8TA!uNF;N^b=wVAW_A)=aQS#N$v6a7PTth@FT7ubv8$8G2a{nzLL*-hAxORumFb64S`caSfq1G%{dQ!hd$ z&UwO5l+5i(h;lj&Ofjx;6(6Qe{5X-ew4>>Vxanipo+pHiP@kro=3FP#;s-|O;J6?F zb4@bL0%m&gfSu37!Kux2Wj0RW{kC$8n+0jV-v0RU@jKOO$x2SYR(aVc$yJFXe^W*{ zrTgH-*J8Cdcicefy*4bWMEmVYwGcKd24uQykzn4^Fe&USB0+aL*7@tkK{ysjJ^A@- z1sQppcn>0q$>}&zqdQ`-*C;a^85+`%SuML*de#`brBe&0bvYP7@-GC9;QKe48!4c6 zxdn}6()aGFsKSkbx$g;4^;tZ?TH*rEeZc_+anBVui43c4?8A~zhMxoxm~x~TeJ%}4 ziyTkPp0vzLDSZWMNk(OhpYL-ZPDsM<4NFkP zT1i#in75~%eEk%v{E5PtP(9ARiD=Zr--p}?xGW3L!sRQ`*0X}dvc*zaxYKs{x5D{rv_25QfZ z!ThN9Giazx_@S;`@$nCP??E0zpIvM))rW-ApR}PIS}pA;1AxEpY8QZZ z>(3&kwWjfj_XG}c#-Y_if`sDimy1oV80bZnWC7PNHC0u^M7X(KF7TU=5$xs}0n{Sg zoi?8PCiPZexH&Mb@Y%X~I3~Vb07CS={E!U^QcqQQ8DO>;K#n}0%ut#8cYC_e|JELOeGZjK z_?12GVTF^W?^&1i_chG8mtq8M0(r8_arIIG*O~86!yiYhU;@@bG=Zbt_gp@kCxb*A zgqS>htg?=MRv&qZSS@iL6SmlA7bnv;b|U*POL}pS#N1{R=GYMlz%;}09jlm(THlHB zoaGa=F|>W=Tc;dq8|Ig`rMoCiN!TfMB-J1AVfpsP9C=U;TrUla<(EcgO=q=!>l+nz z2f)Rj1@1z3#O%MRHvIIBUL&=++11;cKFcn`sdQNMCDxxG?i6%AGKqpq>{=^dnfZ9C{axz*UkmSd z3g4RSyRGsw@O4j_Mo-7=+>qnD-0yr{|W*m?uo$1h$nZ4z86<-z?iJy=^7# z&FmJxuS+YduHQH13jFZ(rDNNnVHN*8Sxt1E%6O;RU0&lXgB-#3WcuwnUaXsH7^`>a zJm;+L{AftSAlah(ICn$tc*V*}XWy5`@uu9h^a1m8vdiVa4i`4d%*R}KMh$G-8wBce zG%HoL7$He5a$6J!KTnl>u^&)=u;wDtNk!bz(?8k-5t3rGwrpXO@-IqWTA1FGsat#p ztG-=uB5n`LMWxb+tgQY2nu<1?zE-6!zx<5O%VfINF&JauX%f^^+Poi1efjc5`XaMc zgt~DKGx~W3WS?B;t>g-=lip#4>eO33h3Dc^q?7kvyx0TZS+3wyKM`ExmBR#XB?Vg# z7nPOCBaLb9=IF@KIeF0-14m+ueAjv*zrQ&{x|f*`T&1Ukz2*}XOk;G317~G-@$O+6 z86(_jJnv*&CHHp!Rrc_Zv)!Y~q@2Kr>yf*gii(Q8fl)$2LP)TI#*ZMjK49ZX%>rGImT;ix$gu4PkD}qdZe7-{Ij3xGa+}*d9)|1(E#b* zcQNr&rtWP#>X|cVqy;s1?$`H+!n>%r_?e!Z%B^Hw~1aVk&v61-C$vb{zv z@Ei&*08Gd5c=&q{c|+u+rKQVzdYFK*%tlbt$=0KY)%hIXMZq^NL;?%_^Np@tAu715Mb8E66+2p5826ozt%9df|LACvkpm+KM<7h08lN28 zidO&8U&33qYXEEJcp8-4X`Q;}=33;bXSTZy=(MG$9a*<-9k-|`y;o|V`}EhfkCk~b#6;$z8dL_=@I=^6zv1V%k9%@G zLGZCVT?!M>yb~A4iA3-|NQ$qien*9NSQaVwW*gC99!k@b{nZvPte{`|0LQX`((=AO zPAHL%;?g=Gr2kks;q63FkNn|7hpuTk-EwsugakG_FYg%c5XlfgRm4WH9U+Pm*%H} z;J{t<&p+X(c3t7~Ddpzk@^bR;n47d}7({M6+hmrY&W~zFu>hXsTuik2+U!i#z#Bx7 zqU9dJAjW{w@S}CP*O+L%W8Ctyv-=w(0#atJFpGY(g66)%4nL}7u6&ceprxgi?m_dR zOm>m)yUZDQ^}LI8pXxpG2Lk8LBHKMOrH~SU$EAtbZy+Leshi1HLqG}dpiY;UoBM0t z#$m1`EAz-e&@K)2^g|(aughLCoe)?0C?;;N*7aR*Y&2qS`E1|Q zn%ADQ(to`h9wF%UT|JfJ!C zH4~G&xcYZs$fWQnM`B_k?%4GRJ~nedGyyI`lM}R|Wqe}7NBnMpDqj^g9tnmpdH;%O zWmV^wJ1TH`MUk}K-ER7i;U+oCRR>{B_2f;x_QgG4XMN&=gKwiXD)_p|<3a>IP#s56 zyGXVeLJl#Im;w5D!06ng)tYj4Winjpm+Sx!tm(2oRJy+rjIcLCF}4>2cwjzC>E3l)okaJ59H+MS3`sM z0ZLLzs<>gxM1Oy|AoDkXyESsR6};dsvTdgx9*@_d>houo($dleX~JeT45^;+uNL1^MOiU)&~q(l46m_pR>Riq`kD& zD9ay-`AyL3$7vN{^@jNz4%>h80;)6?cFtXQidB1*1+AqIH{}8ozgop3ZXd&cqfAX# z*>a1Ckf?iSU6O(<zy?9?Cs_;{{+_wI2C2+%V6+}qQ7B|^v8m|M>6 z!>bkZP4iehN{WVLJ9f-dtsS}eVsBBIp-R^~XC;fvHAc=odRv(@o_+ib+K8#!C}wHkUhHb3NR<&X*-yS&~@ zD?ZG0mq^c2*9)@1w%tFU~CX6Rp+sh4>q`^sKC@12d6Fx#;QF zW{AMrTzat(a_W2D-ofrbx85S&NH2Q)`lfdLi9UILKN}@YqVcSvNm)o|jPwwJ>oe_SIcM12( z!1wPyID9*n^}9q59z2O~3&XH%7(EBx5f>8Lj4s`5+{deb`&NyR=f&KzIJIo@+Hr+l z*9VAMk z!bfYSohGBA{(?n-tfo2Q4m*j!?RfTdh9du}9#Z)oBDxQOQq!njj)436-Fe+P$C~x7 z{sO08@ej0RT=WY)q1W*}y7|P36BW(PTfLO^Z84kvX$N!2YQjbn-bVBM9vBmeH<_E; znLVKOre3>tt#-y6WN)-y^38tQ%-Su(sj7Uh5_5nw4tZYp)uQ!QKjgNkKBa!8^L(`6 z45hz0OwxJY^Lk112q&|^=WzeBg_crJ+spQ%Pn}jf)a6H}1`A`gB~rzwJRD4Kt^`S_ z*o7$$mVH_2$Tym{9 zo6Jof(1wclY@zl>L|E^H=Xr zrF8M?qTBbK^GitJg^o<6#d+zMMUyMlYQcF0GZ}OlZeGx}vUq_=_Hr`{8(cW?&ti)3 zn-=3N?jo(n@D(P2(AbE#VO&oPrO2hCU+U%qsC3)WKhU(&IXO9fDRpPtZ%}$q@tFb^ z@goYdUlZLsZ{NP%`Pyl}&jpLC{?c+_x6Z~|TUw@F=xn@b^|`C-IVuQraz)p;(0VIQ z&A9(r5Cc_pqF_B8>pfIw&rnaBuC>?IWe2_>21J#Ty5u_fMTWbaL)>%&X|ELv2g9s0 z=pr8FUu8eSx_hHt6uC%>>{W@etqmv>yjq?_#^=wqaIaB>F0fG3`W<3%$vuA&z{zU3EQ1w^himmTI z-Ky9N&%ZGFRTnuRQzQVjX*;lq798|zDjB2gZqIJ+XXcE9Lv<$m9K4i zp&`J)%={2-eKx5iwAT-SuTsJAkudFF~lb!v@UtTj+XYaBISRj;mdM}#wbdK{8QT!z;%Pu*HO6{{yJ`e4lBai# z&ckM1*u*rCarnRSeR4$Y0w2@6_wRWHe|9R~U!I?`{IYM~zV&E-qi84|`#lt(HuB|- z>m?K3%SVq=+0I$qxN%Nbl4_OqEe1Vj8tFZbjSU2Vyv<8lW=Pa8Z=o8VStTSaEK{L~tE8&7)~;z0pso?}FT4q+Wpwel z91o@>uX#SsEQPX0>00WwFZ`D>*=uvH0I|fB{Np^$?Xj|GzGm&(0nB`O)G*9DBM17j z8joK08(EW&!qx>R@5G!9YpBnC`3GCDABBVIVM)pD_&DBf)MUa1@w5u@vg@1f- zSeRzI>-P#AiEU%#^|SA^K*Qolk=E?=^lcxXjgTl1EE6~$JE*s>k9CmLI}4w~!Ssee z&IHvx?n&8XdOK>^Qpi~De7xUOX3U%o`uIx0x2HhD$ex^ zGSMQBU7vrgt);=t+{ozJiAFy>Kkj5h%%_9Um+o^J0@`y`)huh6_}3uTNY;1*@3SrN zR@|MQk@4}_vGuvupcq-j7!mzs+IQX;i2OXMZzj%?B_8)oS|qX6ThD4|3v@p0N_=+} zxcd1LFwDybKuO311UfkD1pJp!Ja)|G(lMmhyRg0ALIPYThq?*;+s)pj1Kr7Y@6wQ* z855+4xP(1TKQZ0k!V^J|cRu74&jva=-s>k)G>m~JfKs3!;cy<+uO|CgTs*{TbYz6F z!@#TlT0n-z{?y6j=G&-50`LUJh$L50TAsU|u-hRrC}dKw6|U6~^ZE2oW1q5$_%F|m zt@k-zvFy4y!+W|=OQ;4!E_jL)OP(njv?Lz<-04^S(AT%6+c<{d6paFIb?NKUyLVF| z(KP)SeQ2rGMM1Ju!VNrj$vmkgeLP-BKW=3|!9{PwlolHsEA6==3;nJrMti5Gzj(|? zPGkDzJWBFoC5+in5(qzg<_v+=D5=)Un&Er@j~1W@S-D-{J|3P&-pa(zCuiqj3^Lft z!NEb%xWOG|z5PB)&OuPV6pdcD$m)AFFF)4T)1vaEiPvs*n&^^ja)6)U%l+sL+;fs; zeqq{#abI-KmG-0z*67tAk6VoeYi5IvbANQUrZ}UaD!43JKJ@eyFbBz+H&9B?2wR(* zpKKzXsw|ufy8le|yp9l(HWC{3yD%R)RSeWAKy~lU;+UdcJ88Yyr}m(#{Ixixa$F@! zCko_6?x&0&$C`C3tXcY&#_my=n3RF>+_o=jmjVYXs6$O~g+T^Q9;`k@h65=YzDW9aOG)iOj|&3yTWr|6sx06pm>J2{++F4=kJ{t`fQ(}) z8U*Vlv7ge9<}t8x8=%U>fYj-wIm@P5KroFATYv}$z9gfiNe(e|Q>M4fGYEJM`2`f| z%xD0kAHi%;1lA5uzs>%soI5MzI5Z>8ajSJdMfIX<%R{ z(Yjc3B(lE`k1_lgK{z-l4IgI1)PqqZWP3dPaGpEZ5KTKk2Smlh-XiIISBxt_398a; zuztADqN{u-Fd6rOaN^R->G8s+m&aIqV|xm38Hgj&LkjiJ_MX&Uso|2 zYz;vbk8>Zzb>txM0MiSk!2Rh~i!-Z3Y$w%$(2w)HF07(Rvjq z{-LL57a)y$3S8y*F4FU4KO>#-!OsjKzM}Uz9#awpnzpIr%BI^StHuG?!^K4*D+zV2 zeg~|`x1%Z|wXwB(dmD%AuWwYiQbG8^6GH^$lS3;2CF}I ztmaTYuqyV19uV3#=x(RPWd`^j=U!M?=trn7vKgSpfGVGEE0Zn*;O`ITDU=NxHjtz! z8E@;@dwZfpUwxuR3l|rU8MLV)_U4HwVw+~W2UnC^cfrFcs+FZO9 zZ$tl2LqXrzLmbE1-pWYZ#3H}|e04JZDAs`V-9r!?#FFqnUx-(2Ee4ikp1BNSw;yQS z!+?O{Ke4hdiaR=~`-|q$M!64FH61<`vlN=duGc#s!^Yn&rozj(5zN%jp99B+hKBl4 z>{m@>;p0a?*CYlnUZh$H*uOkIcoGvYY|_JP1K3XPcv|AN7-BN<2F=r^W@Z*cduB~W zSZYS(yCqFQrs$VAtBpr?kFO9>8o5glFHXxz42F@<)XPXuf0#cD7*`CM5gr~Mg}tEz zIAiREjZmp@yIf3A-hL)Vn!)SGVLMdAr_P-_0Z14fg32``z}9b$e5?r5HrqR1I5V<36YI3<`PQs2qP%6p${&M68WIX)p2055 zzL}oZdA>V!wL1Rt*WmpIg5#!73quzTqif(BN;l6cS?`jF1fI9j> zFE2nbTxjTsrp=OM=$l<>czB!}Lvp-|O8-HHLJlu9VOya4KMKO}bnz)3#z5XkDgXQh zLqTCm8?D@bEYDFsrfYAkPp=g-|AhV#;30+ps!ciLyvvD}F|(z0y9A%SJSVyWcmlcN zbA?PEUzGp*YujS-#!Z{IN^&BYyu(YaSITP2ZW5UyWUysvXEfli{%8M1b(>2z`#I%=cUHl93ZAhn9x0p8{i_SXvniBS?jd}MVpeUQKRU4a1u@Pq4>EsB13m_n5DdOqV zvo%yw00H@PWs&E}&`JUVI1_!q$1d>66Ep-=bS%wkyPX4x9Q`l&fEeFFM0j+)bo$Zli9n)mj~N5n**`H6 zfaj?InP={*n|FoIoa(+*!*`5&U~DMBg}DGJoX>~D2pOa+D+Z;apM-f6y^>c!fdqK7 z7|c4+y1%%zRPp{j9pq(VsR68hWW2M(*nO}xxy_Nk*HcjHR06K@$@R~APf|<>fb=X% zXmJ=)bFz>Cvm5PGweLZK7x-53gvnTT!9PZ444zqYW~B811PVUnjwB^eDO04=!fsH&-qjv2P~OfWtT5KgbVEak}pvw1uR-MN?!>1yN=Dh zq2%R=s8z#F+JpnRD5dSc(VNFD9b{xfovd5x#sb0!6DX)iCcm(}e2hEzr#?Zcnv5TR z{fSp;2&i1^)l~*EMdgbzbt>~qtF4=B5_9n8V&v{wPk)0z@*y_YqX{qzj7l6{+@q-l z1qI;r6ufD-`!{(45J#LQd`1xjqtL6a!8t(8v;14y()QqUclRL9nyFgiEi0q@cuny@ zH)7mDt=r%~sd+-U@orm!8CX+iw6kN6LKlU5Z-O(TL=^EY&a5LM|J^sQS zz_&;`Kr*FC6lP41tgr>da4Gc8C!#=GpP&80?W3;y<66{b4~t^oFTZfxg`VMU$T3T{ z=?9;>hnQB`+#EE>dK#%eT9P0_qN;tmm!1@*3JbZ3>$4=(;hE|~Fxc1Jdn0HMZ+&&S3`OJv2^Tqh zKS(7&GH0VH4wUx!!RY>e!zNm@0@b8s^W52sdPN!;+LAGcotpZcjC3-Sb#k(sarwvG z|LODh*)xtT3lt~7Px#4bj^G{0!~a0U%Dy&H>TS3b@--jHjq&`QWU7wz^*wxi58YaU zgV7*1wmkfM70U*}(pO|3tT`JtyK`dcUVT)(FKX*lQc@yKN+@5A)EvEWaH~%~l>wXJ z5)%u)6g&)o5bqhTgE>?CcKAtl?SCCBW@d^~l)9NFH7sw5k6J);$w@3wEb|6P@j&F3 z^qUSzT}V806!W7`=*B@TIsiEQEwLSboC?wSgwOw^R^ym19awg`k$?4#=rJ6mz#*8-~l0FhyU>$xcLwZNSBwg*xQC$g6}bk{{pQDWdyayg@R~%Rlt& zGgW1d+qnna>D{U9=}vv^Y1X3uIJi17_z&OMuYj&U;qwcn-!)Z+R`CDl_up75;{m4b z!(s$GhWRz~ND+@OSeThr3s!~KnIh9vKoN6)GfTzc&j)@l{;x)t*C0fAP@$^ zzRH2iI}XjMXj3@)Of??rm~~l0QuhGfmAKAt0keqQnbr4Iu7W@q_x}A`K^P)iTTFNR zrozMcwZ?C;v(;N}N&;P|xij*><%Ap)YY{$*g!ta{(A*tobLFjwlmUH3w*UaIrkrU6wbHZIglbf->TDJbInfJW1o zO|;$>;@79fOOVCg#Sq%wLB$g%)&b6i29CnU_QbgD(y?xqpVqGYshl6$IHCsepe56v zUqKan`^y*I$R|%Coa6MuuWRf=7EaVh=dWHZ{ZR?2kk1Ey+g(;yuAGQXIp3FZzDJD7 zIGP=HW+ks061F8`KJaF1uC`36LfUGN?b6d+SJFXbqwKMS^Z zO~girhRSgcQSP$)F}RCfiQ#|mLBqF9c4a#{N&6w@#u6g`rV@Zg$=J5-)sdhm&L4+Q z?ARA@W|?Wj8jyX<3ceF`KNv*4sw0}EkP51ptrycXLnh|`N+^b4`quY~oqdZtu z`PJkfEOL6!L+4_Vf{hz5~gX ze0TYl)JokJ&+kpohES&H+#);Pa@=+I0iEjPO~?8k*cx0(&i)+vO02W1iX_N<5&_m=!%XYFy3V(Gn@I%EvSqPkWelSa76JhZ6+H zl=jWEM|@`IuU!+M7`}V7yF@Gy!KZCxml{&pVkl4YI zO8(uJ1-z$mz98YGC=6?NcXV_lk48fK!ITz6{x&{jrq5eoobPc~WdDWBCCe!llV#Ol zDL!KQ+#6jJ^7%A+M?di652_b{E(~{IT=_)GauOF1Zx}c@wxIJOBS&B5F486ETer9Y z0KiJly3C?#!Pdq`;mn!MfFvJ~3AX{4{^TDW75(3n*BsmKNPhoz)#97Ox#y_86~(+j zO1%B_X&W&0xTk*VeWVp+97j3AH+1dJA1h3>Qvjt3By0sv6lpU(#3_FInqw}!^D8b&7< zQ!l#;g*wS=cB=iKm&2s|c@UE8z0D3bHhiI@>i_$Bss5SzLsb7;hX2oh)pu;k1hM^lb|Nec9&$urC3YT?w2I84W<= z)4|IoCMJZV*GSdahyp>l;U(Kyb#=x}{Wreo--VE;9Fhxw8D>w@R}Vlm`Yu};M7V_eLFrqG~pnQ)A!$v0EVlxa{FNMsbhf$;14Ht;&fVcLyS61ar|u6_soi0Eivl*oiO2586(+6u>0Bh`Wq4~$H3U~)1Lm1SjX z>nn}8q^&^Gs?qym2t2$4e|$0da^7CjyIIdKsE1I5W9x+`;&h$DK%7zDdWd;!z_wGo zkW^uBf`J8-yslVxi?<>bo}Ex*qi>)Qwi&KRZbtoX_~wD@T}%L@5~5dNpCEn`vq%@s zpJihV`F7~WjNl?OFA3lU82^$`%lUub@9?LiCq4e#c5%X8YuLJeODJ~JZWnM4O}qBXfIl)2Y{HACQ467MTMbE9qb?!l!%F0Tb-@kvyxFN(>qw1%kh=_>% zoSCUW8dW!q9M8?Ry(8g0c8?F+_y4I#ZGHL5llJc{)(s>KItBQ_9S{$pCVThpW%nMy z&;C76Ad=s?>KEVi&ikAHTNChH1zI{PbJm473|EC9&OC>q4OpR}B2YIVn&e%yNvH<6 zBWy5g<@0ZdulM9gP+$D4b^F_04S}^304g{!+5Q(0yXx;?ci}F}d&g`G4(y?i&*Ht5 zCATP8CDaffFb3})WQ;P(>uKe!c$L-ajq8(!FGMr||Com4nnEFd3U*tdq7nXu)|W9` zU_cl=oOb-vLPATCtqD0xd0FxC6ijMdKo^E6I(=E$9{+doP*SrYP(f@7eH0pc7g-82 zJSs|+u^42OekIWFa7#*RW?4e)`xCGlIZwbs&_{6;i35<1B)n}?GkatyX!>{*6}3@e zcqAP-)Cs{tH2VFV>^aOArcAV6Q2Q4BfCETv5JAb#o!jE#fg$$Ftw*Au&%hxfe;Sc1 zSGgEFG^Xu6r@RMG_)cU9t?%waB7+I%gkgu$<1X$UoJl+o7ySm+XNqe9!LP&A@dx?& z`S*wKpV^CX9NaD)=x`w1dW`uyQ*nHy;2CNSGe|4QSsS2D!D4`*!pJT!^_13VPh=iM zf@);68&TpO`dLam{<0#ewXwHv<=X>Z3f!DxiU#l#roh0!66y+MqF6J6mjY8brL0^5 zB9MyG-rf!+n0~MW=6llM^RcctN=hKx49(4x=G^wmW0Alnpb%DtYVm2u)jbjt+lW%U zBuQ>M>leSuNC_~R$mrsyu2RsP-yvsfY2PC8X+j;AFr0Qs|p-BOXV zNg<4NF2KdaFLaBZ=-fui`1tsvh=>P-aT8C02Bp^B5`r2m@VjZC^UsmHYfojV@;!=< zR{r6jHU)1Q8mQdy`OxjcQShip1UQ5p*iLPWBIszMXiVP*!J2HV+gBRVvu;s0`*Z@i zLLrgSm@r4Hj;cRfTADWevkO+MhfMjO&w+?nHR`m`P^8o>Lko-yh;IiXH4cV)Om`IIL z-DF)!jhErjxkF%lH6I~_e&@~yxDv77G%|HraLcjIi}3L&kYp_$5Dv^UPT1QYz}CTT z1FBJ5mxR_sSur`gaie(Cs?DQLvZ@T?QK@I7omLAbww2S+>SX$K!Rx zc#PNy?@Unl0e`xU0?Fn2jM=l0N8z{=87*W~K;@I#r_nfh|I<3Zddp)Y_p4cGkOyDp zO31MGz(iRHO`?+E195Cm^YBd>JUP|RX3pE5wHp9k^~&O{#w>ro`^-+VMso&HvQAnx z$5;uVz@r1B!^6Az`F)1o$o2gfqg9o+{x5PQF!5uVA)q31tN;^O-g%*+B2^=$;xlkO zl7bS>oVDYX)n`U{Cz4k$vkXeo8#ja^592dr8CBI=p5UmLqX_~x0#60)I$)7Puyfoa ztVA@)1V_-75notbdXTX_Yu1FOytHjL!E9KM12}}{_nZ;*>Y>4Y@zFcIp zo7k5s3>#kq>q{YuU(0k4kC~y3po6F=U~vdy4DXj?#_zH2ej8c=v_c+#ipdCgTR8%2 zdax7(tNv^U12_0|&eLdA5V8;M{UE*2ZOmO16ckj8KX%6WU3Q-!SRyb$Jj;Z*#|Y-$ zKd@+#Vd#Rxk_mJaXv#%W~#F{)CdybN2hp5GIdXJH?p((;uAW0a7n5GPiHe& zLl-a#Nc3%O?a9iyP+gH)B<;39&762G_#x32UuJ|Sgm*M~wOsv9n_ zU09D&mX#zi&yX?w%TtxEU$ch(;8iQq&4CB7cx6C|ggqoklmox_@$&ALmX6%BV8$$J zNLl(lk#?zs)6pG{v+EIt6M_Q)cN#)~DDA#(9aZ*h>==+a*fT%Jp*A(ZO(H8R zi+MN{1>S74r6`;eBQ%?9$H9$uE0VEXcO+pbT|y^7kemGMf6MxJ2L*l)8z8IT?#6Da zhHwJi8q@QAo-d#qikaOHnHd(Dh5~cBy6b)!9eyQr5^+AnI*3=jmCg;r1>D^6m{l4>K|kDQnSwMR5!{F!|LM^9-ftEE6|0~Q6{ASZR z*lMJE*<*4z1n&bOn1-UOr(9oT3Qrl^q9Yjti7FY}J5BhhW;__&GdN{($?>INnRuDCk z7YK7eTF=1^^6ZDlzqIdhgakqaatGt*#;~*Od}VRLC*z0NV+TCb@$5>z%E-~|wKwp$ zS!oZS5anj{`2f8-rJwKM!ecHk5UJ3cb zNb60MwEPiRqd|}{F_x%JpgXfgEz|o7FeMif6JYr5Dh$}_+XHhmarUxby{f{WXJBJX zn>%!@p0U4u>xs*?7sshTsIsOOwvm^KxH`1q8^%icf^xEJF~A+xG6K;J$=F&(C}9|f zHZ%Ov4GJLy$9Ix&jsv{N`K$hzqdSpK7000zEMCPUN>BTe`3Xp$ZsOFkqhY*%Ljgox zO=?<&;NFmQ^8}zx3gF{NmA&bHEyMlH0KxcYj(`DEdF+6@r5ud!X?KZNQ|QSShabyb z^hAC|(m)95q$xBi3-jB_@g^L?ksuokAmK*jZ#aS`kQA_vK7}g7OSzmAIzt4aYkUE? z&HD!ij`mg~<$>Moac5^~NsxL7Rat8E{03JS8v(}LfC_Ytuz0Nb$Q!_Aoj~SAfEhS>uT6oI&f>__y z;WX}M&Ln~_c(t$e2>iDw3YylWrv;GocYD8NXf{y#p>-<69bc#lB}|=jH@viE-ItiK zfP5{iu{}+oV+IBXD_>KnC`9Lgt&f`Ya@GnOT_z&M&1gU4fZor~m&7fggxTiO^WuBy z{KKvwwN`6S(MdvQ>1If5hlIrW&-JL*Ha3p?@$I~_8T$`2b`{hy_TO99V(Zqxj(F2*q3bY!^0TbHekOIDlq7iQBKPF9)cA8}0C$i;&2o~*ITiVXz5gdh~Xefag z%$|a8M91%4Lb#yDKhEc{^2ddTmv=fbAV5Q4c!M&F5<*J@13i5_f>VR~Q!KJEjNi2Y zO`+>)E5tWVwg}0j?}><>(e9XYfOI^kxHd{%SfPkw?Qu2ifDE%5IMb=i2!b|Dp8mNT zDM%W9$PJ26iz9bCFHeG^$&uTW^W*L*9`3&?SFiHHmHN4@8@V9x+aOq!Y3G8C|N0b+ zeU8z}0~w7o!-CLR3)?3jGr{;&dF1US78WRUh~Nl$XE`rqG>dI4>|k^=;$ez}wD&%y>jAks?rNcIF7mj}w4foio~D zDzA~ydsYc8)2CQ}Pxdr0 zc;V{v=ai4Ng3gTl&>>c&h=fdK-?fV>xogjbKE$rmJ+hAD%t`VMjg36CDh399#?`;- zA+>|Pn3Bw7ij3Gx@frTr&nFN5w5mJFx7rxrdOe)-P|uI>rA7@Bi3bzRc+S{)B_YR zq)GrN`r#-%q@|(3gd(PnlOpZ$N4hQoq(8k=7U&)V>ro7`8`ychrHGQE{vW*O-S~zW zU|=dn;jBJ;H!V#Nr~?B!=1^G+=@y{_dh046v3D-j8EllF@S;GP$$*Lyy3o0uY9jux zkAsVQ+8%=dcw7w%J@*p#<%@$c;6kZX^ViC4l8rYVx&KcM1@tDa1Csarl0XX>v$PGD z%%v0!^a-w&@yx+kS03j2mh5`kL3V!6UK}vKUJXZ(b_O0)&O2y}W>)aHli+Rg?CCoKkT~$!hp0oJ^;i>?_OK&9zSBj^9+- zYHWJ?c3N-dL-u?wj=(D*7&&X~=yRO=xickRldoy7uyBADPXMzRHE5}Qid%EEHlqRg z<_#36l(6!bC^ZQ3hhz|%>a$JXAu?6_g+@}XG_FtdfFndPhGM1{TpMZnw`H+MIs%$c z5sg475zwX)VDRRa(j?r)PBBFiiK6D3#yELSfOmXEgk8=1GfQya-u7s8&*NA4P<|tO zig7Zltx_{ciGB1)p+y`OS8J9*9J`&Z?QSz?G-~7Huf6<)ZWnaq5Ov0>SZKe3m!#mo zMv4Kabo7!kgrDYNR1dU5B_xWUb00t>+0VH--dbpx7aOz=|5H?Ch=QSt_ADQhG5*K# zekRlu3T+-9tACv+3XtazB<;B_YWKI0 zIbXU7Y9yDd8Ro4GSQ14$#<>_SR5t$XG9h*`*Pne%Jj-T}DJ@>g->Y`qgmD=s5>bdV z2C9Tewu@#jib7k^&yCy@coA?70gCjXYD%NFqJkR4C6DhVQfouO`Dr~%_q>!v%e~fP zCyv&B3HrW@2>m{7eDoL}Q;6G{Q>VD74M?@Hts$OR@@S=rKHhJ@L2@P}hGZpLdI5bB znfc9LG^f0G{Y$iqaIBL)bVw2Y0aatzgrxDiu+Kx~%i4A8*P8$vikT%Pcp#^=jThf2 zRhw2d-#&^VFk*^EyBij2U3~6d)31A}Q%lUdsJcU1nQ)B35L z9wIP{2e4TnIrFG=9`pUv`(G@;M}9!_7ttcYR*LJdCy;L+Uha5x!yl}iP<>#JlV zjO;S9S0!adLX_;y_wnkw@6YErzP~?y|Nf5S=a2jDx-M~^@AEaD&&PT?q9(3)Y{*`F zZqEoYlC4@rd!}3h!S%EjvVbQPP^b*%d|-XxDr!SZA!vsO%J> zTL}L1E+T!PDn|YBnXvaUF@I5EKch2uH~%G_l5pnpM(ifOwxfFV$JEF?K1UZ9_yu@z zB&^;CLC%RVOY6hZ(pAgWC%L>JCbQso0d?@+au6St)#|kqz6RykuLmd^Z_VI}4D7{W zQI4)x3|o%bt3-8e1x>7H7% zaz&_z`m?Z?t1njS8>jb}Yi6TcW70bAseI zx)yW_J%Gtou2~(}D>&3pmleDjL!U>=y*4OQjTjmtXGCkIksf|fXqZ!xD;lra>cf7S z1Nyk)6yE>t>q}Bw#`;Fpd>ggS{Q@VzX=-b70BVu0#RkfCHa500w>GpIuXQ9vMc-;= zXxCc(Dhui>KhsV{*~#@*9$waJKfC1eirU%$t-&(wqo^VDTXpb6b{ri6=#kJ42#%sL z*@NVQO;#^a?VF%3{*1(#3QHHglw|HRlhUbPWnlLT;-nE9~`NUczHhGdcHN$;G?J{RS{ApT@s0USdcvNGBCv#>HK<3qj)xmT!E zb#@s{Yh}!pO-&mh-qx89#;3Q9k8cI26CmsR0UQ#u7We_+>77e*i*pGpYf;Z3qGMHzTGjdr%*4GTST<#gFev#H!YBV2C4m4W7!BI)}oV_H@L&UBVs>8Hr~wKjNt^ z>;*MEdUn*G?~l?}=uzQ7@G+{;O#efD+~6>0 zoz=(HSpFZGCE5cHVAW5CArBrL!qV-W90QfO)$JQj8wTLxp<3cmi~#5rqU<0vj9uY= z%;|e~w5@#7**;;`ILRQM7lwke%@t0N^DDbl}o2P-EXcWY{Zk=?%0buglwI60V=` zU?c7>KE99gWEnPza)*u!?Ri{#B{GeIQ(Zp=yN<8_58oG*F5~r|?Z?zrDNX?z5&UwC zruPPF%2_Cmnb-MmxJ+#_6G$vNntu?Wz5WAJ@@oM8RxIJRZ_mH64k^^#_Pz8Rmj@G> zY*y@Y2;lNU8BGW>5EP0isEBC{Z57{YD;xo~F_J~$l{jTgyCCNh#ZK%gT0>c1T7VL~ zY*Q1vOpVg9C|b{r+@}mavl-4M)YU~msd_OwwiA7RFKT~!S%0QPZG=9^R5I~(jdS>2 zh!|ezd$+!C-~F{VgY2tUA~0QG!$a|r-r-^Jm5gY~;TcglcI@cC+!J{+LwECQYnl#~9OjWRvX$x*JL z_DaN(gT3LW=;SN7Fbe!OfCK>g$-8~~N?=;NZpvt^2<8s2E-ms@xpCx$K*{^E4n)AY z;S6CQ`JT!%_55ELk33MXj&w*8=|Y;!9W?&~(lUZz(539xK)TX~M)OCI z&Ge+-$=|W@h&)&A(?56rMl_*3krEl6xamd~ioVucYsOzLL-2_R3vZEjUJ0HAF_j(^ zjWz$sD27XLY!x-BD%DgM%lHcJ+y2dMSDfFZ1h1BYoD{P{BF?f0-1QZ!d_|;|67N^v z0?cD_rf@&pHfWM5Db>O-d=pFqz8Cz2{XJB!+gp!X%2&K;=0$Sl$hC0g9rWwA1i*;0 zA?Y5vNr>rSvx#d~=G%(@e$k_rUjd`*PL_8(lCj|TYfj-dIGV>HzEdnMu#KT%w?Pp} zo+@yj^wYlUHePo?F(@%f`hbRk1{*W8`gf9v$Ni+8PVQwV4mb#u5vT1Bh;79gfv+du zTHPrM`=A^6_v%(|J1X)ojV@ruXfOGXXKtv5x6S0)Pf$neP!g&N@0JH%brj=_v(`*NiO0zNgH~`_?Tu#B zUW)^FAVbthIdkO2(NhV`}0u;U+M)hVMBIy4o&mB{T-K~?~4$N(V1 z$SHoO%y9_#0}?3ozE7e@QkW@3`Vr%n!;x7=5CFiP81&KiG1Lw5==L08ipH&n;Sa%Z zUE1~VtXuG;ctG~7)m4~zh`dsP$ z=6-BlhLXb2r0d}^N7IWJ9n3Gv>^(H@rK7BmgTp4q z6F`Inowt0g^GTl9<*tgFs1~Q~;UaIlzVOFdWQd{ZAp7`NdHR|DT&veQhy;ClMn{WV z=4^6HX=kUt7^}q*yvg${12yR&2>2t0@KJxmHIbs8 zu0~PcHvdCV+`mU#=k1wiZs6xGz1F!uemrzLQSVYF!o9sdn4=Z~DPIaVcMu*!X;sxf zD8mRqs~RU0h@Zr_V+S41yK?4N8009AGlW961J!WzJ(r(#1%!};gK+I@oj^2H-*t?v zs$S=ys`@iMT?xp&{9vTz>n}Yep&-?0@_|{NFF`K9Sl*Pj*b^Gaqjp1wzf-8|Zc`1? zP3TBg*u+4{fZkqA@z`h4tPmkl|Ed%HK{rJII|Y0*sZ@dxW~5g1n}PXk!lcjPj(n|8 ziI-u&yUXk-I!t`GM4R*8)uv-3@Wio*-i^fw`-pq2b9Y zIVkr?TpQlVR(}5XrkwCJmD|~1cM;U8Uw}>nC=q4AQK|V~qon)-)E^Z#7 zc{^E{g>E{x(#(a~qtr%L>47q_X3N(AeIHmerXgU9(l{LotUbD_pOiz0PgzL;98*(~ zboQCXpNWaEx^&GKiVgX<2mwtY(M&kz_c|FQw-{kp_B@>6TR`U7PHD3}dT;LFqgv4z zTpD@7gh~EP8(>jWl>+dN@!+9kVZq!!y-3|h*=fgYFIUDTiH4u5%F zW2$3hE3fL8V7%d$Xj0@#wa(O@L=z?{YBSC6aS=;`XNNeXH3f1`zCF5$r{S_hnZici1; z^em&t|AqpJsGq>E5)WAuLr=$zuDj^2h_9Y_zUTaAA#3OX=SrkW#}Z4SVp612190S5 za9j@HDlTqOm~YMx{Q*v&K<=T5@RdkPBqSk+%4L|92_N|3>kL#|1@N`im> zhXd=$WKb`S?Eu9^8X;&X0W%`-LO5Y>M@GV!UgzijLT3v=kjLIt7CcWOC*&6q%7tUTv4~!eKQ27Cy+-3;}wa;9sZiL4i$Q|wiW;z02DsR zIzr~As!BRyv-oez$jG3hmd(-;K^>KWIa=q_l}!}wghfcYm)hfjp&hQ_#)UdmTI&{_e&G#7rYCFY4uZ* zXP-xJ9l-4mGS3*I1{{J%Fbc=u>5lFH)dGMW<1gA3-<~M6C*bx~)a#YQZJFhBP^|KH zUbDBq3;3JjmY#ra)L$$CDN&=Cxk=NwN-Q9!CLRaNnHL{>?D19@QZK5b2`Qg62WJ_H z!fT7HyKqI#5J*)bDgf*RJqCNV)HNJ#TcAxjlGp_NhiR8;j2tSnviTp*ce(bi)Wb6c ztxM7vL6e!_kfFvOow{o3x`@>FUF1jJ5+G6qg#A$#_ZL9;LjZkz3LDtjR{@GEKq@!1 z3IaIwR?G45gV~n>ZvJ<{^HS058y^Bxbr(KyV%5i0LDV9~UoM`^E>%}llhBXo4c#bT zav1Ca%Jiz1X>mu)5;jf0kacP6p&NAqKV9T|uWCWiq!K5i_tF+yoo@&E-}3#?JFmoT zSB8od19xwtQv&>K(4LH=DSBco754Puhd7wZ7j2LH=i+g865W9r18N(dfrSQ4v#YtD zQ}AOT1_|qC{h*(q@yE%DPjfRk{`IVnDTEaX`{C*)iOGu95^T`xfKT?>Wdj9VX(GxZrE@$D=SO4g+Iz< zK^kLrU%}XX-|2(p>lA(o^OWn$5C~8PgyMzUf=Hza)|>F)6hri$pCK`=az)GDaBcnD z_12;qhEZSp5g{?F{7n+nCczD`L5Zdttfa~h3}gtj-XwdnS{PgR?73@FT6KZ<&9UXdVY0xlPP!{B({Cdqw&Gnt!4xe|hAZDClPLoBnqQ8BjIc^w z?crB%x}=FhXf?N2-_0|z{>;`pk)NkGQY)tM8D*=k#%HdI%*=@|Rz!I*>H+1AsfF3)36lWROXhASBE10+<|?dCQfi<-z=kmV_V%t{F*#oR0=MDd_I@nyZ4ALGWui6b zt@6nW&ou<_zWofVuwGbibD>$-oyBt9N$L2{e}U-xgSaR557MPgI3aGi6uP-U@PH)F zZs%Y&6QGDYVCh4s4OLZ2!o;@vQa6toYz$F{kuwwPYds!dDNd`$O_x|)G$20ojZaWb zeur%2d=0U@fx+;9FBe|1I8Ro$!2m@^<2 zVSD0)kCJ8gaPjGi)=mhX&j$3;4{$5?^>JMsEPR|)OatI}<1+`Q!4SYrtMNIZ)gqW7 z^x3eE`w15&9|1LB+UiV;{|2hqXLLrm&|_b}V#f>2=V+?ADLo9<&+iQI9NZ<$O@5zC z>g(5H25<@VOQ)JQO%Ath#DODW5o@h&4kTb_Y9Lc8wJtEzY(VL;#!bU^_0KcQn6lxw z94Hh=Q_|VF1w^U(%a!2Mm^5E%8#Pj=shf;GykSchAdW41` zE3u2hYZx`5is9iq!I|%7Q00giY)y~r$)gOM-9*-KM$DJCwx|G?=}#AIjc~8;>^DZa zXZkhV&7f~u`-i3squB>sGT(JyQ>o1J2j=aMq-vUAQWbIla(YN2N3E&KBRm^p7<2v1 zDgf((GpU3_-R!H;Wu70Jj~H8OC%yK%M%d+v1$>+$GrMbLNoir&np=7Na%+A}_G{?e zh%69nzmnG)%@V3r`c0iwHfdqB;ig~DP)(K8exst~|0-KiDLH@e7HUM+!eM9>E!7=R znlQ=n)b3rd)vkmP>6G&#mg6^U=$?5j37v?9Pc!3T98a}gYO7^;G107j=Z*<@%(x0@ z1{y{{GWkCesQ@J4joUUlX1;>4P=73R?S~S_uUCIYolV!5Mw8C3>5hloi+wnQxcc&a zy(UQ$d0rMfl*7&(o@Sb_)J^mQ+-wATX=e*y`dbKsjSRDYClyc=h{$r)M~8i}F=~Fm z6I23-?Ui+#IAxArvZ9w5wf#p|GF3;22z`2{{)|WnaPp}{uze+ZvRv0$YOXuHG(KG| zkZ(mV=pV$Zz}b<|A9V!84NHru4wcDkglS;9uz6{3*zE9EtBS6_}g${G%m$xV1QtS9xx7N$j)dUi17_O-0QW-CEy(0G1=waPJbG`>ak8um1N! zqsxrb@{}?AxG}zh|MapljGyu0Z8#ElbR7AQcToM`+bVx`c=8Au+%pw4`DFCbC##`i zYt$9Q?+r5QsXK+y;P1W3X@L+DEdZ_yE?MiR4Hc0|G+?RB~*9`Xvp?2q^gvg<{QVioyz}17#gYm1h2;hN(V{7&vjrI)C;y)Xe;InB68u6v3g!O&q{yrL`^CELY1wu>-v9X$Jof+i4tjFc{qL9GhQGZb`RV_D zmHW^f`k%j#KO`8Jd2asiFChP~CT3hhp2PoqrErKDlGpq{Um5{_;kEz$DgU2&84~4% zG<2-o+!xxT<^Jd8;t!@`Qv?wF-!H*qf=Z!JdOBDC@4v#M&|-D@yEXpjaj5J8-Vn~&bHY@9sD1JVg86n=EexHBhbf?P<(RmPd{Z9 ziYV?uMKs zOHwD9UeLqUWgH#H{=+m`4#bgu>+Yr~g*M{HW?8k8_m!8XmE5uwhI1f5D1L4{ikQuT zo~9B$q%#Q$|KLIc^8e(7kOU-4h+$L?_t6pbQ^@mmq5xe_JHd%GfFtQt5J(Vb8)NiUmA#r~~) zL8*0r|9%JDISH38FFfy*&@xDdG$8bT+qP}A5V;^%*fJz_51?1bDsTdh{^{3nv` zh<#ZC^EdkXTY+`OnIZ!u#SNWEf`TuzBd&gsiI39fF|&Mb1k=jOaTY_JNx?l%xr97+ zk}VC?f|a3gRy63Huy`}gC8^(YBR$T7)-as*O0o~7dIdYH6b;Ixju z`1rP?qhpv#*HM9IM1p(pTruqzA%G%{aE+Ebp>iR`K6nz`6)%gzN;Twh72O;ACRq3Or_)hY=fw(5yRREcjL3;_XU^-S7me-R6Xr z&>KqOXcbu)Z2*5nrvH*4;%7u2uf~g}c%ot@Ui!GL9%d4NaRgdhmMfNCC0xvxJA@aNX zx|%Xv3|Kfc1KihuRQOJV;xtQNK6NC8eX|_q9V!CtwOgFCr<4GKYC=E4cfmld>izo? z%tiJ_CA@+^ri)c6^beG9#yw@elJ)(FmqD52+lpag>{y;_Y!3O=pxnTmFk7G2<-VbR zHf-pt13uP>jK<6n1kP-M5L|pVmE?xwPqn*mK$(xTL3OkcBvmiuAMfy1%QBDY|JJ%L zwV8~wA3JmzqtAK2uBH$oUuLG8wk-?#u5SN5MWRs$;7j0f{c|(7tEL`g3OZX+i|y8f zOTo~mB0)Q-;T9r0X2A0hq8Mr~W(vuU>c+gob1|~;`vFhE$9l%K3ltDB@Iy_h(uo1J z0eNo8A1y~eY8ekZw1wmXs&@olZ^U|4(ut!tv?-}M-RjX(x42jx8kec#c2m`nbE_n zSx)T)Qt^Z9C9Nm8wI0}qcV|tyW1Kj2JX_KI`QX48svifC-N*5gmJ)c37AvMnsPQua zwo0Y2JdrKL2x&IrN@}i+RDm}pVnwvBP7jy6QsVm>bZeTl>TobCH^S!rs+b#RMeaObC-LJihg2zloA2}`>96Y{5>Fvw&nWio1 z*lIfMQN_IiO8x$pB9YaC6EeMd9~yNsX6T*>I|R8<2l%uSs03L1E6j-$O9dw26A%z4 za^puWCoZ5>P>@w3+`d+#`dldPJ;aB#jX0u5_y!eNq(Eh}&B}@5D73iYbVCTsB-+RF z;jLH}c(wqhgSJSo!KQ^Hm%&qpR}x6xc{lH*d08CTkRa}z7j}gH)pe@vBAHr%7&*mP zyLW|d|CZSxv$0ePPmd(t&frtTLAzE?R^u%+*rwA1US>=!_+>=ha$goaAdM2}24(F%W80!zo3!L_Yf=2ZUYZfAcV*I$QiI=%bI3KoQmc4+EFeZ3& zz_t4pFs0q>m>F&gzfWC=U0Q#DYC)*$)s`o+5a{?vasTvMKRvQ-FL> z+yw99ayf6E9~-NeK^K-X0Qra!f)uG1Xv)03y;ng<_y?c(d*_dsT1^kdmEStS*>kWT zje10ho2hgbV+2@5FwY+SLvXs0a9@nwfdHLk9`xXTVHuf5MhfWu`*h3!w_6cgr2w$I zE_>f~JG)XKj@!4$#X((z)#1aNhlUGxSzY#zCmywkIzv`3-)2<@Q08+D*)#jru0W=; zBHIa~NQPkXHn|XiuflGnXlLD1d~C`u%p)3#03%?Dcjuze8TRCCY0P1s9v_zn2o$gW z>vXbrR%98N#n_YY)PchMlj+f2GNj73O9wX2Ms5j}!$Jg;SkV9dIYWLz=c=6@{yI}5s9bQR+fy{N0*CRw z{D7p&bD-E!OyPph#-lYe3>w%`impgaO!W8p7Fe3jn`J5|9YsHENAgscHN=%e?*K*z zk9I*`P>>eD0vI~1KswXMqv|4-R+BJDpf>*G8fW(T&x%@6B zg%z9xh!S979Ytu<5fn8Pw{iMtSs*(N2W6ZRDg4X6n{aME`u`N~~Mx`S}a0%oOt!=vTvcmi?) z#5h5!#2RoLE8cqnQk&{sg8E79QzFE$B-a3R+rV|H^UuRkB0@X&7Q$jwD&E_bW)MPO zK9Bkp_tl2JaSU632Tb$~5@AD{#o_wFmOYM56oS}w#FvPf-!xk0t~Yr%eLxdbVZrQ= zXsY)kfXd(wjvNl-E;{J|B_{OB?3I9IJFV|JUcE}?-wRdy&i<>YLXo0eJ}r?|y|1$Y z>Vw-Ld_mIzilR_Z6*h?7v$U9X!KgF%Z4}!GJ_@-`Y_GVNTNHQihz>yX`w``m;TCcp zwGi{76#&q48%;$&mr8w2-pT>mEa-J96Y~gxt;Do0w)u3>7}VZq9OD3gA^GsJz}71# z52!iMXoh=D)+wWQC_*F)VTOJ@QaSF)_nEgG9xP4o7PRJwDC3<;l z2&1FE`V*8h9PkL)R|u0LOGPkz z4H9g?_gA3qXu`{bpKxERiwPz7`e5iK&qJ5n557c4QAuwdad}((a^1d(6X}o%qNtBE zk>9KodIfiDMjD(0)txu4UoQiH-HidUcm}r7StI)nX@2 z*J9vP&4DhScor2tc(- z*sLc&Z}t@8O!u88)9dqcbA4L9ilN`<|ILl))B8@D%agx5E>zdnhKaDVvF$`QlR$kj ze!dvO$P+Y@RX1nG?Z@1~HY(2G5c1-JW#&$(aFZ&5Gkm)enNA;>4mwR8o3qE6mX_A6 zrlZL1LP0A!K&9jsCA<&w=_A0+oJ6xH^}pp=VD4d_U^i+L6|qQI3Y$7+l7yH|^R#KRbn1yXI3K z82iyj#}dWzZE&xKqHHy%78N`?sXXrjtGi##W*JxQ(OmQ8y{8~tV;_uT{BAF zM^>D#vSK(rcJ*56>!aY^Q%N-x=(Vy0dyL86tM5A@TxC1**Q(mu&XecF!o_7teL3pz zUBe-8nQD+e=FGTV$zu}&3wCspG0<&Y+}FaY!<%3G1J@+#g&vu=?c-#$+jazT3(z+}&&4i;b=4CSIMMRs63OV6bN#X!q5{ z%XDqWdgt#U(CWvV-GI}eJW&Gv(hTy4)k6zuIw~?Pp^LVzvI*DIA8WLRx_Lypd~#e` z$h!_v^&nKX>dww@s^)Pc?ss_^(8aKJZM~fVCr1}g|Aes3Z?T$vTDd?1u%n z??AcXx#NFMU z$jG65+xqku{HqY;VCFFPp*Q%DXg4^rtB7b5dG~8D2G;sZ);~}f(8co{AHru3>}w;W zQ?D>OCZio2^fu02Tv#;NpzB+(%q=Apm7z6J5URrmN7aTMecfc%-hUoY0yl<698Kn{Y$T9r#(aH4)Hb(wdNd4qDKuSWv@vm*I4kZJfz#_FrbTEQs5Mf#kVGV0RMGhvS9bk2F`BJ$d4UC;T04 zH2v6|qlmU8Ot7DH@R+znymHc8%!La?J&VGv8H}wn=Sc4YV8a&}hWQ?7lSqCuOSQH`dhybm6aOTA zv?SuIO_*C4p-N&SVH}RBqW;h^>bGCWAw2IRr&(!w6c=P5k0Zusy+B7?J?>TkoGB1R zJf$(`7?D48_wVNy=%Ww_ z1IluV1ydePG(N8#&Q9pr*PzRZ=&;g$6NtZyX8PaR3TSA+NU~4Yp5W-)#c236>CR6n35-k5y2Vx>QL2#`J<9 z0DUA;p2!q&oDon1)KYZ>PPs<|qX*Dg643=J+>LEP$QhsqFxhrP@I)Ie@1tvIW&BYn zl2J1R9mA|M{PpRhoNsRVj0G?1`TFRuKm-3D!5P7Oi3XX{2;G0m$DfDYj)5oxeZ7W~ zf^G6hh&CKRkWciLYXXwn6Irx1uAo;XGr0&(_daMAfWhOBmNWw`Au6#_=d#;T7NaZN z{^ELrDg-SV!7ygp0eHc{8eNqOc~^Ik@O}zb(L0b>WiJ2by}sedr!*!jj806fj6a=p zQP(2wY)LN4Y3fKM#>_kDUt=`kMZLfSn?sni3O-Oq{E4^@h`s?BtM4?CW2$fEg0C@c zMiy)$YQ2HZ!b6Z{n9;t$^yqK!BojoI_3VRAxRVi?@D?+??qW|8$s-_($HKq-?0AQ< z=FzL`q*mYtCMH`b?)(RFBb5PIy4t=gB2vm;5cw9wz1TK^W6qDoHzJ}K`XE2*W6c+& zDniFb=297N2|Tu~dC(lUtmGzSwihpq`B%l+B^3flUYagm_HBhg<{h>^raJFp=poc8 zk*{r6g2VHsuyzi#rjU#2X_jJwp5T`EB9afnTqi$jK|A)wdO=i9_Lw$6Tr_@Ha5SIi zQjm{gSiM?Q$?ahWKFh5PpHK)fp;>>6w_(=b31Jn>s`vx%Pv)hlC3>w^p()89DT?mR z?t6fDN~TW0r`VQ9e$$~egso6p0Ytq+3xG)H=-z&4p%mHpbqKSF{uXejp9Ls{1lJ!q zF*I^W`7E0Na1yD}7`aV}89w$s)dP6g--d^U-8ZiJ3Ao}okkj%ZoSq~Jk|a;yC5D*n zh?GQGRDlmM0|^78IY6@S&l0)v)M@wNBM3qoh4jE@8mfVZ{c9R7)*76X-gpv5h-4*7j4Oaw%KOGM z1JR4|`D8<}w(n9S1?marp}B?e1~M=jF zF6Q{humFf9Fv(C66AtHF8xS}!V zPRrnRiYM@zn(8XdW+vwZ1?coTU_38AUn6}W-rvlikfg=fwi2>4v8emm2=#ZJDJR6AZxYo7b(rj8cVTuQ?-y zXy!0@j|;^=WuPGw412-i)YlZ?2Uv|n;7ZARAPE7xX(bsBM6!Mqobr&MgJNZe^SRmi zdH>!x2!N7w;b9=DSfp2tjopk7KfHIU&l}qupB(t3l@ub_2e_n2`P}F%xow-ggD}F8 zM*-88BC8pLJ4(@hmL0UNAo>V-cDb(mHKIXDV9}u?sdT<$QTquP-B#P{eCiX9!s2pl9<-wjjdc$k+PMKPo0^Sbq7}~ z=K&qp^XNc(P!pHHO6rB9{AgkmG3X@Rc#{<7oPchF6D9d^bPSimT5x|NNb~Hc88u(k z%6yN%Fr~girS| z6#P`LrwSSqpWp3f-zIU1Wf>AT9ccN%j9iO79l9NKia$#Pu7vv0r+apRry{e>|B|7E zzPxF>Qs4&ke<2;;qlaQ02n$1sh9(S98Px$NifhoXhBMg&qJB2K2Y*0mO>5GDMf5BZ zLlpo5${$SI?EyV@ZlM;+=crR#HSyLDCy5CQO1|Em1sGl|GWKkPTCd;LUeCLK4^Mcf zGU~DO{il&ECUVHz#@hN1hzj3UK*Ic4TO=qdEBxDTuk*6Sb!L7FIY4cr3&WWWrs1-X=Y{_=q3vb+3AIoXkTWoHQn9LRjBA;gSo`(dtD{D< z`*&%R(Vc*X{993`-iErrCqvK&Ot&$fG5Eqb_Vik`ouYPOl z1uX~Z%n1(4oSdHfEqhRse48_|;h>{@to}@;UdVhsFCU)?_6e~&tTu+$lZ}71X5Fr@RAT0JEFL`2?&b)=NyLIUO`eDnIHwQEa5R1<$SNe4zI9ZURj+uiX!%3 z5$`waTt=-Y@93CYbseM)`CbBLBW8}|@8EhRLu_z2(Z?5GJkZMD1lkG;Xfh=1uRuQE z;Z%DKes6FtTIZWNg=7&II`1dT7SX>jF0aOJD#zb94J<{KB*e9TW0U`A_4KRgKgAs7 zgIxjQHb%C-cfJdk4+bT13MD=08VIZ|9Te%EV3o33Cv(qehcpK;U@kC~575w~g+M$YpB;&^1q&AyA}x&y&Js8FPOum`zbWOOP?$ zZCSTsPSUqc-*~2;L;_;$irB9+9_*dS0?g;fy46YP0v5ko7&UnTebW&w3b0p6fJEW31HwOe#PC|bbA3Fl=UVwE9T^$JU;$9 z^_OhaSqM59_ParNwU|#vlmjR1k+A_P&G)XX#t>ID_0cbs6~y7;KHJBRGZSOdxv*4) z!|ciAG?4UE3(yp|kPk{mC7@d&L3idOw^4!Y6kmmN{>QTiJvG$jU%!5l`&KFR9u#{h zl1Pf7vF-p`%4+e~P_e868Mk+qv{l5Zg)-|caB(|CN5R`w&Gk_7;K34OJG~!d?L|1nQ*|3s8u1ZbYEfJXo-!B^$$gP~51JIVB!C{Td_er@_Fh-LBPCJvsmNY)$u9hC>r}^2WFYFcle1lMby?M#*WyS-q zQ8ypMPeho$nK0}tI1Y#ux~=*n@!tVT`ZsSK`z|ZR+YhjPf};Q5@XD@tyOP7aoYYvJ z@$1`rWnJ+sXw|(OKr52xv@nw)TyhSiXx8Np9nB-1iO1L7*Y|{Ohlp`mGbIC)BMOfz zs_p%~KNNF_O&CfShFfDW`j`n|!-I1RXfpo}$R4nzzWfUScj0R7<$C zIv#i@^3eDz?N%_n)opBU9@9dO9dWs%e$N;tCQ4z0qD^Rfk7M(W0x{sH=OJ_-K$rer z?t!y$=3P_60*e9Z;ZB>E(|P+tft9fSoHf+_ftm&e%1g}y?;IHmaQnj!y0w+}tPx$N zKSBv_=PpIg*DEthON)d*xN7c;Z!kp2VGjhkqD6~S7fyuU!MrLp3s!iE5FOY7|c$6K_MY_Tk{K#n0KpDjLWiHf(?Jp#B z9QF_tNU7G3aEqFtyrb$)0o;*7m$9|F3HRf>@epGhXrU(AqmdUdT;F#pN=q+#igR5%VV zwdZCCzf#ji&D(QhuWEi9WG#OU!>$#--IjoZ*q{Fffks06yC_^gR8 zSUF4%{t$QO#$bjvvYBVsTxA?n{+H^cT2xp_23qXna)rbKtOtn|BLbszet>gGxw0!p z>!CqlKD*8W({%#R=Y_9LN3{*nt)T|yi9Gn4`vrV&2{iF=d`SPsf@?J!%Ut#k{U)g} z=pGNChfhd#>f0JLx|ont*Lj@d=Y_B-Cw#PRZu*}q&n34+byVbZI-gvyO;h#r@uR18 z*pnxlCNM3!cV$>w=h?I}%efyfMz6HFEp00wEUr&|eo#8UeacpCeEE=?ofNHub7i_9 zPu%pwrFj=^dU|?eRB~6q_JE)pkChPu&kBjoium*xTnuj%!aCz#fRsRgLRO= zPSkZwIMflainPHGPr~)Ew>bKrWAms8o%3O2eeRV(<1o@02)v_z?iKAo%OWRfpzwZ= zKZ>Y9wiMJGtX&v({r2xxCpqRM0L;*kmtqL80~XVLoVJ3<;|5mAnvQ%9Q;Af=DZ}g} zX;(5y0mW65)HO8R#5txiRf-D=$0q&g8^F_Sbfq-oG`vZl?h$Dn-i8A2IJ9$A6Z-d+ z!9qAmdq&Sbf3K>lSrqi+K~f(IeS!y}-2}aO<;IOl99;w!APp_#V=TARwPYS>U zzItBgX;7UOV?oP5zvO1MTMj877Ng4^-=y@A7ZW0`nb_0~`tYwGZk+#|ImfaWu1LtQ zW#pjBQ2Bw*e`lp+dS5MbM8M;SuB-e?%p~4QY^oN-2vH2&KPF*YFnX*gr;i|KV(azv z^u*wIDR*KZOE*cK^=EFJg2F`C^nb?aQ6>ht*+q0rv$sA+jeWv97xT{m>{R`}2(1p} z1Z(A%^Dpk+U%UgKtl3!mJ+MZ<)etfd6VbVNn|-x6fUvoaRqfh2{S(pq^zjP;SD~ID z(j3pC4Sk^B$3D#Ll$|e5Au~|X{Mv?`rk3r|SjZetGo;7qzLFCc&kU&O6KH{7am}b3#W(8w{HsIhGeMuaGY{ z!Voy6lg@IoULi)C5{JX{(dhB37Y91T@Hne`0nw*O@g=iUOf=93lrRa3AHqH zyct^!?-kySAI-gtip8%mo$;#W`Aa4y+b&2z@PTwGK04v}5v3V$dH$`$NOs_azQE+G ze87|^y#Jx37fx{jgP;R(!<};(J~&LXz2&$Wrel!rzOCRAdyHyw%fCZ#g_QnX`bZ@I zE;ZxguC2aAW?^F`5uFA=l8x(Yhn3#iDR0jyglW#J9r|f*gg@ zTk$6F3H!_WBANihcpZj6-vk2aD{eKIXA0Ge4R!1du-m5Iy3*1k5zZg9^;;ak3+a6N z^R}kul7gEOs^lipk}6()(fDRr-O3+vw||k&*k9-?Ry`F_ggN#e^=l z(R}fd426W6xJ<0rWqLQbC{tDRw@8Ci04||~eB!lyu=4|Rl zmKxGtIahN3?%T%|ST#*QA-|GiMPgg4#pg~4$sV?IA6HcLy_kjO!{3RF2pzSiLV|bS zXcOb00FBS^Dmnodul_2mUS0`J{ot68kgXNm1hcSfzsx7-I&7pR_o(ZzT1=7K(b9^0 zGwF^K8hOo6e-6#@JbB=@+?Vavwe&E4#(mjgj;AQey}C4sb8$?Q=1gOs|AosY3YTY3 zN#;ua(W_B!T#QDF$mxY;0M{lcc1dhDC`~(PI^dmS^j!M!J~!tsBw?t}%Z5PEY?G91 zv#uEhH4kMv!B5f55kWE;vjdGeIfu~I(#997VXDj4Ez;t@UOxm73)TvwPmXB(p@Vh` zT{_C>O2i2f0kUqP^SOz+YuB#}|KWXa3Z;uV#1(9%xACaIL1K}DSP!;6`ofpHGp|8( zfqST|ZVojPIn@HV_LKR%eEYR=vjJbZOGH!n7nq9kawY&8-fzoGBg;5d?{3(3j3W9= zNgbdS)EQg`uA_96#djyr?0!RvKG>tkC!cUnZ0byx3#nJ)9x_88ZJ-e!~W^62h`FG-11)mk5XgRVu=iImuvyHb*VIovj*z;fnq04%`yf za>)NB;}&qaRH<)v82VIa9sHD}6hq&aqMgBq7TYR2JOfNDrT{3cc?@6z38XxzE6UM$ z5SE}#MqFb?TM(*G@}T(h(TV_5cJ!r*fgTnI@C&UGA3P-?6qlNAZ_ zl>3wfW#gNO?1gyFKsfr0prhMEoL))leJ^5YFlM9ppsf}1)CtwkF*9zJ7y2W`jZE|Y*kD%@+tOK?`O3OU@Skl>$A3WXy!9O@lBKIR)8(#1cHbd*K zqQXmACiQrQru{+K3y=n!61)Y|^DFcX{y{e}xo4+Jq~~86dN~4N$dZ*2(~__K4s6-= z6srzdcERsX~<&-!y@MW z{M>ki+ezQiYnFi6(R>Ah_$q;d!c>;qqZQ~G=4Ueiy{kkWB5GdCfg~PU)VcCkuDlwS zY0Dk8gk4t*|6W-86$Ql^NhyYQp9z`-%zF3H=*2}9zW+(qL@pWEfnL+|SmF`zYoyZL zXZc|@PI}_>FJFv#@ZdrDJB9TjW*o1C;$67(e(&uo(X|zpFG-H~n;XBj*YQ*q5nMc{ z;h$L&vZU)M>Pq8J=Bu$PNsX^*sd-`DMn!*2U46x-Jy*@H2)i&5tE>ZSe)Wy>=2eRmbw~xc80Tg#z6?3C zFxSN&=Rz;+VM&^{v9TexP(rM$?A3Dc^k{zmOhXU~(=`Mk{mcyIFod=m62+*{pyXv# z3MJ$0+ak|+WjrKak=ItOexL3jE1{e$5uG77=%S&;E+fL%enGkm0PKij;ym38Y#J<2 zMbYi)UF#ZGX#}_|pyK%li?1wl`Qk{?yXfaj$kA%qZX<8OPj^dBQ7(cvQ9C|h&q;w4 zVNSO1{``Er@(Ny_!gOu&>lIlz*Q_xR5MOD!j^@bIh;zrzi)@p-pf1(?q;4em@btpf z=xB*k7jBKYORsB?uPBt1obJ5VGA`MFjh@j{C)EqA7^(?BpjOq*pWV=@sm{kj)?@rL zG)Bgt3OW(JA_>&`u$UMe{xmeHjfvYoThsSEx)wvX<2;6O46n-qBNh+t-#9zE>C$zn zH08rlbbW)f2XIItzU1_WdGw*CwCgDIk~>pv9%~fE{G=kP?NysK5r!+4(7(zF27^ob zc_J!m{z+~G5uGeK#DkDi3-_l_SQruT0;MsV=aIbnFmA7yX5$r8UHm~bLZ@rAaYYj$ zHIbB4=DYOTAP8EGN4!258c$*F+E(0T54v_>762|@Adq9ZOa3eZWO!UJN+A*!f%w{p zq3)!1cYm454`-2U#e8H>rHVih$!w{4OY?cvk-steh~&pYdO9=x2kandO$u=$JHV`l z+eRSGXcOcKxD?w)#7+lWL7_rUToRUnvx+bREe^OG-=Yy^Ek3Y;b<5h#6V&wVhb+sB zXQxhgPEOrA zb@WIrJlt2`@aWwVI>ZtPDf=d53iX4*x>lPn=JJKtK|t4Kr74}Z>8vNF!dDk1o5Tuk zW*96~zjtm7)hsdbQRA5?9~TqyF{~S_tdL5;KA@@ z^rHO^Q~>07Mr!g+3{+}=)_VvvH>8(-H?f>nqcGBz=+T&SN7bgKYjuU7lk2SH+-0O9 z_PcbKjJlY~9(xqy0m`5fmrZ%?x8a?tF+R9QYd#&j5;Gbajkz@1shVwHe8600TmJym z@vcnl09PPicMn(xYzh9SYxi?7Vrjg^Cn8-G5e6?;iG}6`nED`(`gvVHLf|YtE=2p; zj%!juh{H%PqV?lNGh3k@%B@ko7Y|)d zR)0q7k#Yw^+)@am4eq&!3Jxhao6#p|ShJHV07-wO>|*mTPaLn!5E(|bS9Dw;|Bb98 zA3z(Tqk&T({&VR@tVWV#1>T%GUY_wA74RB(e!`XercO9maP!($%FS6vl9T?37u*1=0@2g8SfS)022$s#;lYWAadA8Vkx~y{62R_78EOA~Z^_a; zTsa;1o`$9qt`02r}VgtLPnl9a`GrxT-vFfZR(S3v2@`gDcM_zpE z(0F0QEukQR3kcopsP~A23`0Ey*KWD2OcL8@cq>ev3c!hH;7_AM%>G9aBLg=nu5`b!@DaT z)DSUs@Zd~HS8InfJtVSdkp;rWqkMecp9N}2Ji^FqCjxrnQ~vzMGEL_6Tz*wYSKq8a z;sp1U-Mq-2kWZJ_u3r8AY`5rvpyH6Ru^ToJQxU;KEY8g8)Gp0O3!7u(dIc8?Dc={T z_ikW)S^45z((%g+!T^%&ykZ32%4(?D5ITx>l}D!3p&|$(}dlbj(Gnh$)!Bg3I3$CR1Fv<}O= zo1KpWrb2s@@Zh98e86-f($ab_tImUR+0^O>xE)^!m46+t%U1y=lLmM!OgzNLXU#E0 zilq5}+1U30ACLXk0LNFjO6 zWD2D+6Gf&(MN%OdGKO>Az5BP$Z|$?rA7`Dv&Ux3n*4}&V;(5N`&v4(@bpLnmg5iI~ zECj6lzyA?$SCm;~8lyGEgw}!c8sEezJq{Moy1$?HA%Ae`zn{mh3snGY5zCQewTy#< z?o;mj{@&g%fPj!E{aun?eYn!7F6=>A`Q!s4TNSPYMf9x&21ysQf`i%KN*zU`^X<3G zmOD2Fuasq;gD&=OseuqUa4m%f+z;I{TdXNBjfw@75D($`!AaXL8rn*J5jfTr5*sLU zNN@+oFdVW8K?FLAbotp(ZkYFP_9$Six-CJ zT5k{>hHg)~sgFJsI@lOsEufYa$XgvOpz+uoY8OGg*-NmElK>j6sn>*aR0h5q(w_0X zuHkZxff{{Hf7QU48IBw#1{J>Gr{+hhbq{pQE+%m+bb_2Xo`?aETRaUtvI+1)DgmhF z!|Y$SbNgAR>}L z{fO<uUgqx}LV7BNsC%ov*wX+gkZ0L*cNl^Qp(PzI z*-J?{A>e9gzDr)p+sB7&a&i+9WiPPgXf`0Z0m)Su<@!^~f5deAs&v!{j3Rslb?}m9 zgKoeAmGQh7MlgJnW{u&>D}f+7<(Op*`eIP}$~G}6KtE4^r??Zm1iMR7O@qyYvRkh$ zUP0_bacdu*Ut9};3dii^HN*{)SeHg40ez)FLjk>v*c@MsWKukQ<6>i)J?-M1`?jr} z-j8Cucm@^HwVmxwv$5HMhNY}Lprq&}=(?2VszLc!WgCurj1;vQ-D|q>0OtzCX3#FLFbHZG3+?L4YJRUEUP1P3L@KdO~0U!aPH)VMU zXvWS*HU?jKfU!h4A}INvorWG+BimZ9#S$eN0ylg+nVbC!QH8;zh?6n0(g7hM^n)!j z^OBw;Dv09lQL`b?Ljj}l!1T@qF##q-if4Vy+Z!mai!3q`%oYRC$mjG{NDp5?y93iJ z&Ny^EWl&5qF_e7RUcmbu-kBF17Ip*0KK{%e{2dqzVPHHz?vWsm=WP79I3pF@@f_QY z02Q(EZo3~Yvwz8c!7pz38J;8Kpin~{EiiwTo_5FY`1>AI z`ihR)WE~@%+}5yrxDXH3NFp2pa#n=H;KnI3N#{jTjmy9KcRpSsBkckoMEoDVJ6>ot zEIX|(xFfQ{>~g~?ypz;=$6nQcr>s%eEd1ybU1!ij;u`DHc~f(8JI!@;8vC`5L8vGN zba%Mgv_190bI12wh!k&1p*7BIf!L<&c+U>xksV(R>`lu$2SW!vVO7OqqI3($xYW9% zpRB#59FrS*zu{B~Kx4@GH2{s?xfBOb1Gfc~lUnJ?kaHA+R8uMh{4y8QDa*zC9<*5N zxIII$Lw)NnY(idyJSfL#%;_D}jK{R4GH6qfJjR39u61$o`XEb1KW{l0wRRLSkQ>-0m}Ji^m!9 z-paS+GQ_2f%I86zGd8TiHaar=Fl3Efz<2|9`tYlZL6F;t_`ge;n4FB+7r>`BNt1iP z*_%v8-FZ5%w?}K$!nvHcl*z-AS}^F-F-hrFEX)6%AYKCKYRGdjGd;Qsns#KQQmQBf z;u+nqEw+(@3{=Vst8ggsOb{ui7Snh~MDH?MiM^>!<{?Pug|^ zK*uoXjQ#I7eN-|lHlH_dEG19t{^vhw?sOW_(q=5_aOdX5uu z4%EPJ1-r+jAbS$8yt8Eqg9aRu>61|e#wMb%R|-NlIMi7f1R3Dj-UQd@ll2vUc8l`& zp5HDQ9(#1oOOj-Qj(M42jR^z9xGP={>6~V`TE0_R>pq7;sXLTdAT352*7$>al9D^e z3c=3vhd0o+A_q;n2hl8Vjl&_HgnZ^$`p`v;%0e*f3V%EqfDH3-x}c^}fI|TlTE>~< zkq4j$gmy=Y&h}v`AfvnCW+T&yYr9Fh5xhJ!?o z^q~w-te)piu*{hE*P?6#M12jgXAC}g7!X;PjZ7z{ibaT2PdF&V&QxkBi85}e#HdAtBJ z9<@FW#vh0~zcnU@JITTXB7zBnbFVN#m6TKeR0Di64Xa^dkf<{2upfmyLuSAQYPAFi zijs^msC3Yus8QZot-kWY6Q$DA50+{e1t2;-1IOBD6nN+I)xZw;koUJe2UdK4KtNUR zmCL4-5!7TYA(QnA7#dySq$398)?oD<+p=`!3Ac5uPUM0lo@L?O*+4Ybv;GBt&C~cM z#T`UGUS?*caOL>!I7jBp`}gr<0IY4nea!3HZY^Pox0|t}gW(zpc754LkI7_{ypRt_ z-lJ>}&j_vas(r1nh%+%jSYYa_U;QK`MZ^W@3F*g4ta5TV6WL;23fhJeMi>gvpuSBp zkQtc35~RU*LhTnbKCUDw6jjWge{!zCf4@5^Kj9sRDyH^&qv(*FN@42ldyjrMWy}@G z^#~sGY9JDTfHxhEx`|Yrk|{1akbez{2aYd%N5@PnJ)ey2!jVDm}^{I1=8ojuS`&@>0^m9EBvIq0}d z0F`v48>W`wlJ~`FHH-0V{OfA`9spDt?@C}7GUo}zS#jgmEiYg`6=uXJVo+a!TXJOQ zK9)u=keG|N2y$+6ufcVVz`PU7t|vA~K(ePJvN}jCUJ0VrgiTO$4&eNy{kGg`pPFCvban=H zjy7kQ`_6AfxC}GSb&hU*!`5~*Hhf5y!|!;7+K#fv^je*}Yj|v{LoNrmfYR^4JEg1) zkO~7(xcewvkAdHi-BV6I9l}mJpwupWgh_&N6R?dXvwoD7#)X@t2<#+ zi0?4ZJj*khuzgbTSS=<+ET+uOTASvy-5g1+$f^gKx^Ybt@`O;~#WW~8uH4v{9G~wHX?&&SQFNsqay|d4NNAZG6#`g^OXg(;U^jZud zv28=Tcg5UuV5A?S8|wItsxKP<1x}}%PKQUBRs`;v`J=^=L{=3aP$LjMGt$<+Lh*pS zAt4VN@6Mq*$H&?~Nq<6$l}vtwxW0iRvgOmfvd$4YBSKr*6OtRgJE&cH(Tkx0v_Z*u zi8J*v$d&p+1S=%+iGjo1)%!l{fb99<$M2<4x1fac-RgiC0uIFks;d76C^45!+M=DM zaV!KCK*v)nHyROkW(>!y6mu^ep#0M((ASo1Wm86a$SrXV2LZ0&0pve3rNQzWndFyw0VnJL zNvr|&J!4R#6Q^$}n21CtLy`_cPjVg1 z?XXK>*qIHE?}^WY5$+N+)&Sx#4SE4~5Y!N)u=I%>fg*~O1kv^1jkew;i5dkF(l`ig z1EpVhZpj(HFF!rs#{$>~7@IL9H8??7;a{e3N#DhpSnfBBB0Corpf#feKonNX*SBNz zkDcsF6y&7sStCt}bPi7;So6XOvP`dm=KZdMG6UYteBhZC`gd^@<9>+P3+r#n8i>itZ?f;R3f=KZ` zhtitZni5cC zK=>f?qo3{ygwVl7>YMs(f(7VKDO3(LZJqiNt0~zE9Pd|~3|$xfD~jKZd&m4zH-3M* zS}T4m&Tb|wQ6LaCr7R)hRI*IHb-G*+3eg7dUxagFTk&&O3 z3)AGy0TeVeSsNbUBJAae%SF#;rezqeQ$!^Ltg?Gw8-tWdH#ZRWl;-I3QIwhx=;BLU z&q%BW=(qVND|H|Ev(Y+tIz=F$_u84xL-1E7bZJQdF=#n(STN79i=ZVxO~?;4Im z!!6Q+Op_u(A5bzMt=>1$e{seaTgbbH7j-@w-5aAwjauPZxIO{r4Y6NX`uqo8HDF|g z>|}2yqc`#c5RSaibvx11azel{){Z+1jogZa8ZtaIN?Nr&-NBfwPJ{Z($6fOLpM95- zdX@dx+``q&w)vQLXvgxgneF#AEpq_z;HfKiPeB4?{;|P!^P}GNW5`EW(nFXw!X`c4 z&tG;}h$u}z2*l#;MtYi-04P#Mmg(alO3WJCj5t*63HFcaD0KNsLf)QaD|@SfI|6sI z(!69GAGB8u?=-q@4S#KtZ30wNY94yn@+M?CDzYBi;Y{_Q;tmqXL_q52U+iyd& z(;{*OHA4&p{TWR>mMJi3dwW{I{}6U*4g*MzGQJep=ym!#6LGnJtBYf0xXSP)^LGmX z8C&Z$@%mVkH9Ym6%=4Rrq`C0OM2quC(`Ay(N7 zBQeS36_#S0$grASfUqvUwoaUYltSDx388?H;R#HpuohEB(MR~kfD<4+M(?&-Jg!AW z^5N>ob}mb6DsNPs?_R~Eaj zU%eU)EKaRes3F1Br5=b2i61+3*|!*SL%Pd@|BsnLjJe2|02c%_z-c!5Y2bJ@zp?@l zhd)-S&uMb-mSL+hnp0gb{2Z@yMbT-VS$D$eGqYY=wQZ>JS^TwYkWBgZ!~^=#%{}+P zsck_1E9b&CL`LP#zzVaFTT-m--R+hZYYE#n^6xb{6oCRpY)Q70$ZMfsfUw?|^l(@Q z_U+1lY2AaaCjin{!ojHMDFnuC_S}U_6P$qIZTY#V zF3WiPD)Y<|gv#;GZA5Ke7n5}ZlJDz?2BStzA{Rs0=EF?FFj_MGkwS!v6@-hT8b1uQ zPojeKo(S|fI%_;}5|WR%I+D}Mlm{;)@|S&NpOx4kR3{2BHRv01- zIvX5@(G(o9jl2mYV&GyKn@iyGjjEE&uJ{@y0)ux9T`CgxmPGze6$(*x zYsclxCSw$W@olQXaX1ZtDlea$!>f5;%43TPmY+UL&tB`k9PyNhpsXjCenvz0fz8jeu?783vtK-;Uy-QfDh}g#|Tz? zpU57+SkK58M(PoLUnIAw27WY6sQ(@zeFR@aQb+TixC*2W;@=!_`Du8>1)Jgna$M@B z@<>f3VRjpuTb!90ExM@oxd~UmCjTnES6n8JOG@+D) zKOQ)Icx4~;nD&w5S^$1pJVM9=Nm-`m;gYrw>yuU;Zf%D&+(+UUq*r`tpCuo!i{Fuv z0Yf-M($6GSfK>8H$DG0a^;7#F?FHa=9a=mHjiAa5x7c+)C7&W7+&J_p!vPqx^^y#m z`&wm_zyk;;Std)qcDDKpXWu{BAAHp6s{?ASztg+YYR?8($QR-iVD!FVDtnh-H;vH; z|8TNZ-7-CQ3P#!HtkZWM??p-+iPBN1j6svf=HG(hD`;Dg)y+G71mRoAVz z8+M)Jd9oW)3_rnB_Jg>QO#o97t(c@Ej5e&qW^dfbc&yae7P$*Qxe0A=?r*8v(SQ;| z@7|9;?+PKBZobp0u!{J(moJ0EPzrce+qy4Ofgm!;qRY+G_fCBjtY5owW#S_Z|+UuOcJ z%(A2ftgKqSpD>i(llzh-lmRR%$)`LU|Aw;)F6PC^QlRu%&)0MsQ2$>uaxH18pGnHMMu7mZt^{cgWw!ixyq< zt(e|ndomwVO13k& z;EudO5Cq%;^O2v#iZ?@JX&MXRh{{zN&A^dLr98;8>nJ=jH=%LyMK3^AdWPf2!46cL zrD$Ia+UxEAsYm?lo!vty`Fv-DUq|V@Pwo7zw{-LmIy7&te_#RJ3vydMQD^foW=jzz zp)YtM6G`bo`_8~Joy^u6S}=W9eHGhh@>UVC{{Rjqv@7#K7*i`trjghx=HA_V6Ov!= zH_mp{WbiNyUHh`Q=b19ko7X+os?Ep44=Q0h(vwk`aaf6imFGOD30ZB)yS$%USKT7o zVt!?}GRtD=Mmz2-1kie zKVv1U5-+bhV#sL@V5D+~=LW2Tz*fPdtUbD_gLM@mA?vqv&FkG(NlCnbynMRRVGkJO%ccp@P8FNIJ?O4Pm9akt)Vm*4@rwD$S!0T(q8%^6k^C% z(9FQZ%;-&U2$^*xWnW}x-NKb+ydh7{>!Z6!`Oe#q1V7YdRhJ#n;gCMD_xP{i;71x; z-6tGMPOGy#fqifL;qGMg?liT&$fFuG)ZZZ!rKNmgV(Qf?1H}j~zJj)-vaxUi%Ypo2 z6flTR$I;maKBrOQ!O`6sjsU!Ir9=ROxjl9(!1*4S`d;3aoh$}rDTRk+>}CZC&xv1% z_W9PPL-&X%_8M%#UatONAHfs4*4fH6j_sM>>?DH3fMt=5r@ER%;P!G zo5Ai+6glahU$^6XZ3a#bim|;Q#`f(Vzd!S*th0AM`0P^L9p*2j6AXhhRx@UHyO}B8Vgju*9*pQ8P{Ac zf&*~P%|(}tNU%Nd+M4z7%^Ku7pHicLbhj584My6$c?cB{wUFIu)Bd4LWZ#7>Odtm( zi{ppb;dCU5Q3M!+P$7Vym5pA(0H$`@>SVJ1$BT~1p9z1dxe&L04#XCl2#BsQW6mVa5#s|BCb({zXp!3aq91f>aQ;c(iEQtTb!eM)NI~$+7%f!7fj* z9|cANMTb}Yw@%Vepw5JT;)d2l6keIY`AP~u#=Bw!H?_G0|zeG{Op51>^e)I&UVo0;d#uAhK{1nAu+Rq*#A>jX8Z z0>*ZGz&zuGvE7M4BZZ@y$oCH^r~0FVT=9OpGFy5xwzV2)xmrr<%Z^W^O=!$P4 zo(3353ABzeIic+r`B>pawJ4k$Y%mZTi*e#$EIlrhA!p@^&*TrBCPLD7Ptp}DF;3aV zA}A`CrRBp1Yn@yT?(PexLpHYdA`HAa@)lmqmT`lnOwnZi0v!O6%cC&IcSvt1)saNi z!HEx`zv$>u`*&P7rXyr=LDNql3M%4^U8O!^H z_w@fMMq!7FiPLEt3@rqlA|HMaAY}HYG31&m96ugm5`F02j`*e?b1Tt?Q#;7_1qnLp z8%^1dfXw~p{odD8!88(F(lYzL)FO3z?vs#ci4C{`Wi{`wvT3t~IypEtrOpMi*JbP* z9u=eC5}E@Z$RQ9~sd*%hDLf0Z9}#X;XY86DTMy;5I=&kvqcF&870*UOV$kAp3|AGO z_|tt~j>08ZJcCW&`>w?n7Y1c8jG@F-j8>Zvm5!{jx;hBu2&>!qHUKH~2U_g0As)jM7kxUEEDIfIWqy@}v+*~4&^Hii8LY9nRt82og= zlZHt-3!3LyGDh^a)~!0}NBYZN3~Xk+L8Q1IuQIen~2lb<-O`Xp6w?F~DL9XNLEp1_F_ z7hCQd4;5FP?0QTccTe!woS*m`id==Zi%1R_be(3sJ={}=t7u>bF*anLM!H@J8v0*g zUwrkJqMW}1qZyDpH2REYnXjn1e8J#?1wh+q0@8yo8i|QLd+x`b2eM7Wj40^h;K7?t z&j6!P#m{h^_YGPHBq(iY+!i3s2^|n6EHL

0;75!R5G-Db$9Z2?2p4k@pw>>?LL$ z(C%t9{9vp|OcS;ao9y$j9^^)MUf&SsT)2i=iN}8ug+v@jGDxek9O}1~=Vp+ztgQ(53Y#3}_w%7QC4Apjl2+9IiHwNPn_CB0B3FBs-8L zQTj4U=Tb^(#&z3$x{nu~x%6=)tx{PEQil(}5SLAu%!L%rDN$wtWUS%vnN#Gk`6kki zaNa?NRECNo9V5Dsm9hZGa~Zy9i6x0F@tlg_v?3i`R4N)O$$6CMNM#FzUAQ}n@mS3= zg?QLY(}xvtS}UpapgK**Z7b_GwiL?-ik4;H|HKa8^qe{tD18)$$xAr<=^LWZfXswr z%yFT1?mw?yerj%cj$I3~1#D*P4MfR7w_H4-?!5nbc;vfv$qlCr&YN}T^fjEyGLhTp zZEExystXKBCUO^=i_bcF@OMzpUlBElunxOOgC0rUFIbDjchFoi907!!^)D#uWQ3Ti z|D10BD6ihKI7|rvT3lOQ1i=hM1 zS5lfWUaXJ31Jne}QD^ITASf}pT>~)FAG?Nzf6`Hg^{piR3KcTPvGG_}CZp%m=nDOD zHc;dgz}#h-OWQVvY(uaK{Ja(Q*)!v{7tQ>88WOwNcr`V#FHKdypgsQ_<1Y_DSqJM* zRI_$2Gqd;U%?QCjJR}XQfo>Zi+`fn9#}z;LBj)AH_Npg{g3ic(jbr7bvqF38Q;_kt zHtkQWR*-lcd9&*=Qydzm+syUB7L68b>7EvjAMMKd8Tb1pQ+L)ZjLp2kGF!_88<;&1 z(qR@2g7Rgm)~=8~u3kgo8DBlht^9=o+Ya6n7auSyFow0+AN$njM9~ z!hRpOp;*STZ13X#!e}W^iC?VRC@vHx&qC9hAUkqbWBHe%&Sfxg%IQQf(P)?)nXj=% zSJ*x{9O(uVQ>(=S<>5Z`FYMTVV1xL8UUv;g0q|^*_K1o&fYV(8G$$gF7ef-G!4Vts z2Z_cd_O){SYo7ml$x7%rBEEH{1w7@e*K>Sec4SN>YV3K)Cs`5VZ6X6u4+3mwnbD)JNum zFON4EdkDIx0v+=mdf6ZzT8S`#ojD^l>|Z3C_@5^$Accjam}gm08M zMuSqIG$Oqp8z4f)bt)AX1ho>UgmqZ+VT=hzn-EdCKF+1G&pBaDyGzgJo1Eg1XMzfN z0qL2++zxIT*NjwQfdJ)h%Nc93DTHma^fOU?jh%o$P?lh-BdwfbA&9P(0|V|g7IG3n zM_C(5T21NJDI>t6DQ%))@@KwJ>Tg`dhzt&hjKLQAS5W@~wL*jiKcTLmkOD*`*PW?H z(0$2i2s_@_go*DRkR^>vPrDp`ZkUw)qxvjlG#cpTWi%auDBx`ObqBv6zg^-_Hz3sT zoz2L3@Ijvd1*xDYV6PGfOcI~vgSc|aA}O&~hA0BN2$ObGleklUh~*6Jcd2O*VYWKq z*L~}WPU~Mk?=;?b`K)}uZN_$|`|X5Iqwq&UBdn7FpAGs2zc1$Y4;z4K5NKB~{thxnK=ViYxe@%uJ3*O3-eURSRg;q>a5 zgd{`(bG~gas>XIBLS|#)1whLPAvyN070=@r#-lJsdL}W{z@*ea26ZOJ|E*AKdbZw5 z;8b>PL4riXN=FIR@=P+-Dj+(ti!k4T1(%i^VE2xBsQF)KxEIU50xHk zFBJUbX>t@!$`*~EJOsIjqVzW`?$403FnS$jP@|SiK6BWGAhyJ+Ptk0@=0sTLcD-xN zt3#_v0~o*O>;^#vL9c+kuwvfZ8YYcO0xr-a4t8A>x=EC>D#3LF5fQr07Kx+N#H`?0@`%$&^!m(}g_$iP z(mmWVJ#yw*#{vQaXFvyar*ktQezg}xKU}&AX(JT__qQ7VM=WHp|Sep*1L)>wJ0sV zTAjBuCaD%wz6@8fWH>GiH~R;o(M{hJ1_HpuGgeHhF<^Kc-}faLOd~N)8c&q-qYr0~ ziSjsBq6Q}G?b)0YQJA|DdubzsBR8rsb!}fd9(3i2( z+waXves%d#!>P5--51qZp7uFLWDN86nPffQ$qLrP=GE5zvkZTM`P3ghiZZwJam!xzx6 zn8HnzQnyP`AdO9cRNFx7L6PUJrU*=r~YC}5e~{;=giv{7`iY6HyQhPkHx=zazASge%&RC7!L! z%|LdLqV1xJGA}$euqec_W0V>!^ai#(WN!tN#D$bb#o^+?fq{Uy?%w+NC1lVoLAAIn zKoL!C&|&!(xK$}Q7(|y(6KSNNo-;xwz?$T|W6<%YhZ?|5b1CF*ubbPKwnJpZ!sjp0 zUNwrUcmeW?q0Cxv1>-Fhhs$lR(QI(Jx4<;WwGA9tEuL(2GmFu)5iZwyx;=0bTM&Xl z+UUtTJ$)UyU0B^f)|ySTN;lG9m-?@H;e&jCaTI)?|NJvZ2I2qxPr-jpDd*erUqi{u zeg7{%^Zz$L;#Lmp?Gsq5L*!omU;oIK{(bj&{QvpKFc#)j37eId|JNV7@oj&}fB&)n z2i9Y}F8uTV%Dw#mu^(YoV8FmKd|2?G(3^mJ_gE4ed=RrsgQ(j@8=tG4IweHCBe3v2 z@%6hQ1w>*Wnb&iCza9bhg?w*eAOmjh?r)K-eRBJs{RYk05Aa-khWMcG;eUMO>?|R# zEi#?+mntd-UxYSf56}_l*xulZhVLpTd)um8f87-r(`jaIPBW)*!zfSd5c^dG>M z$ANt_;F@)3+hQnNHi|5VPXNo|B~!$YLhz42`qjKC=NWDE)UR-oG8kwsUm=g?Ti5a~ z@}uEMAqyFl%fxE}X0)a7Ga-P1L}7*%wmad;F?<$M65Nbia?Oo#2;2d<{OqTn0@a z`Gv#VIZtss2qYw0l~*u3LKfF9x)^KE+#c>ua>t^@xzuoqnE|MKHKh%}R8ZCTv%S!_ z|Jmf<|I;w_I@FoCO3Ct?J2k4|;IN&v#nf9pR)6qvCjCOYtp<1h+8J&Y_9Y@tr;4vV ze7OA9@*O8diZ5%h$q2oT))3Eb-goolLLrS_A7<9MtD9H96=za}|3ka&_T7=AJ&vg>^JTV8_Ez_9-Bv4G8*?NIqvL>^&I5p3UQ=@|CMM>6 z0eeV#bTk8gcNk&k3=R&Gx1GlI6j%)n4Ux?S0PS)#eRHG3{4vIfw*`#Hi2B3Tdj-W_Vq|{=1~D)9R_wc{>fs@e<|%H# znaF3@4&bLODk@^oWeYy6Bs^QTZxyIBP~M!YRt*|%5fD%SB=8xTr8>$iUYg8eY%E@T z#y@%AylEB@5y8pN&u@Wiry6+!Pbx1!IvJSy#Rh=-K@X2-I$dUFX6FWYzb35igcJcP2W@e8rguP`R9pcs$hZBz-3ueh#Ky~XdId^ za;9g{y->eF$=G<^_a?x82W@S|yC<+5_wm3+7ZFg^)v&>8yrQ<&5)gSwZf>sIui8Bi z)CJfo%c_B9?(i!^p=zUOS?TVGScW$t&9HX znlWgy*g#7(90gWb5mNTWfxGne^}pha2#r_j&r~}5JW6-Q99es0(U;cL_yy;{Es^!z zd@ENcy_Qh?zHNZh3Y_B)h3ouiHZ*A4AE)^h*4mEPhVA_VHu+JI7in{04(HyoM7B!T zYo%#1>H@(_BJglAQ6g081P%n8PUQobYJVNj(5nw0xIImB8o(932sXL#T5KVzV#)5S zd)C>!|MSN!>BRFj$Q5;gtLf?D zQqyc7W@GX!WhY~b#M`hMq}{>UEAm^eE|eTB-`+4mmE)P2xy{GNN4t*DT1YdtWF-xB zmURNU6zbjvmjc>5y8_Sz1@4m^FqNR$@_HYcwy^?RsjyHEP*IlZjNrpF1|Gc_MH}cr zzy>-OyOh;jT(*8yCQ}A&fK4%uaW>dWQfk}6aaZ$u$#*@0zl*xrd16>_?vgbJ{n{`b z3u_snueTzGMn=9?TQYemHG{VV z_JE+E*$ABm7wsQ0iBpV%sM^mlb%iWbuO6SlybkgQeu>z(fijR7!otEK!`aAMpS8+opfUDB2h)Z4eLo$*=awdaA`7n%u=>qtZ^ z>fu8^xG`>XySlgp=4vC;5DBp>$odB8okTW(wKVh_0ewAL^9!S;uL#VNzVP!VPUaL< z1OCSCkaRw>`w33)TT3Rt!IRDF-F*HTWqu__DI}JA6W0Wr^N98S?OF;{^7kP+?6y~IRe>oaGhf=WQe zEo~_=5yy1H#Vb~BC&-aj}-mj zz4L}S7Dm14iPOz3Ez5GgA*zOE4RF0eXi`Al3&2(4u%a>)P!1X+pc0wUd@?et!P;*! zb-ZT$si(&mCt=8eMuZx!A*z~D)ZV^^Vny+N8@>wq-&CFcGj#ZG)T~MMDyS&P=G(`O zi8l3S@)~uK;}GbJL#_;74gLmJB8OmY)p;;sX#=)p$B}?;+yW(_`76?OMMRHCP5fvO zhS!dXas2pkQu5n9$AMr9Zvyd~@N&_9M=uxg<#j~`#hNo1#IV2!^?1Ng6<4|#{1SYv zSb5}IyY*miWoyd9SD)}Zn4{IdK`!#+3YV#tz*-q?V--B9wPKW80S4#pP(_zrx!G2R zC+6L0G%|TcMXezM3CJ0v2nck8P_NlmuKvXm^29q+3ItIvm@*lA_>@8z!lTdvJ&xFg zLWKx_;Li!it12pXBc_Q_QoQ%@;U&<%3kV5aj*Ht!v$`QCz%RqgeSuRCr%DNqjR&cz z{y>lHOim-QiWfIWu$6_yH7r!S^FIWuX0!Qz+t_JtZfQx`TC*;Bjy`>433a0~zSB~6 zcBS)UckkT`UDeZzg|JUm^>RvzC?cpR+3}y>ZMDjL0lbJjK@_VI=e2iSlsAG!$6zd6 zwCKqBm`(irE4sWB5(G&q1SH+>NDm6RU+_!c?j$@5ZznA?b3KO>B!6WP3|4H|vVQ$+ zT%HUHDM>6|q~3m%cWE@XUis_SO6Si@06Ewd_!T0%ef#%+enOSvQZBCjb>v5dHj}pu z;thJJZ!!6t;WILfdF_CT=Q7~<+6xEM{`=wKzOX)i>FRn>Ts#LBO`U{pl*@K(F0dVlXlSU=cO2%oQDS>OKY=`VGfT_aV<%*o*!wSH zvM{_ud(WN~oimFGd+4!AUx|u~i!?Tfa#SKL8wiOOYM6LpW-$1|L+6r0bjJ5fZSl8m z-lUM2n%^)#!R;5=R!v1S7XOa3tKNJym=!%JSBaGfdGfwz*mLJP63V;mplrKVp9&M; zufeVZP+9I4;n;ih=t{dhZeYzAh3dU{eHNr5Nqw!$r_q-Vqcu5tkW+B z4Y$wHe7+a2*;MWsm^Y{v611z1|GT~W*JcNnyncO4z&DuiJ6iu>6PAHP>+Q8BV;L4a zwjaY2pNG`c5pK9MyfB#^VhgrrJ6UeO-hhs|NohA)c)a zemaJL#A1-p8p(H7GrB@?f#}mXT1Hx08o6e+m)clx&IPaY#gOJ_bwBm?UVy-5BV^9v zGvK@@KdJE1sqnBc;#8qk+lvl@0rk>cRF%pa8q4l(<6OOZuLy@JWcKIIo%6hVmkSX7 zBin-N? z#5oh!^v)H44u5@>avMwY`8W|c{d327>CsZr+ZAR)^1oUr=+x^&P-IPAU7(Njy!|Zx3Id`7r-e%J-%g%)uhHCI z$d}x-ZCj8rr_!zqc6OSpSCV8Yq5wFM3FkFqz{!=~`n(~k&aM5Z$s+#rO5R$r>7e@R zotJo4s0(UUJS$pR8=adQ#)U9Wsa?h|=Y;4QsWywh2u^2fNpIO+qWfmkHT?={p}U*p zIpQG83!EZx>EHqj-VxakQdd)3P@yk2UR-m9Qp9!ur z856vJYpNQ+kjD6ZHcrmR**DSYCB$wy{9Hg(^sDSgv?~qIPFMpUFT$A-;KmO#;^9h8 zsA%8Mr2c!!wQs?@F#Acwc>8uFh6r`GB3VnE!i^(dkvp60KfjOsXzSMyU}J`jr&#DkMa6>s`~UQ7S@3Q-tvbGbSy0_D znR@5qQJ{S?L4VEg#2zKPzEI;%>(T2B$+I%SjjH!VWE~tGsYt}sF|}SQuXJ;5k)`otH_>^J6f)mKLL1aIo;^Z-8knVg;*Dd82{4=8 zj?92w0h zs-o;K!ZtGqF~c;-Tcxg{SI1{0SE@Eixs9gh$ zKN?dE4%B&Pse&8)t2?b@}M@7}TD zcqp%`+6&@>=C!qRy0Wpv{dmBVFH|~ItlvKL+%KifH44@26WlVFilZ?)KpEZY04~(z zp-gtP>sFMoqPi+Bf4k%CeC)be>bZx%!G=~>U*FJ<0_93^i&poZdQ=c#wXf=mG)_p# zv%#OHbUgHiBA?rM*B$P-Js8mi9?g07`8#H~DQ{PG75rolAx$h254H>s51&JCQ*(I| z)yF3^NFetQMo0!6%$AjtBU;&Qdc6DO$7gaHj{t=)&%+Ndv0YvF{Nl{kcb8|S>)wQu zps2Z-lMJTFyPCxSeZvf=p?CibtN?y{EMaG*7;KDPXT{`+gv}SRS0cI%;H;r2TeQ3L zK+`fstE-dT2P4SEcJ3@gxgv%ufl-9R^cTjU!p(KVeg=-C-2!ZTHU%v^y4lmBL?37f z4JLe;R=@p$$Ra#`>Ta<#nsaS2-xWnC%%7g95o!JzVy$kwGX3B`!+4WsyjQLFT0{i5 zuD*UJ3U8vr_@B{;RbF&!ZP@@m==Z(b3s<{@b#sx%LQwcoG3Q!wwZ@-qYipxs0+RhZ z_8(CV+6JEtxg;^=Z_K$oW^V;bN->;bWX&c()25|Ya;0a7!D`$~cyL~@Cj?mHzwE%E zQf-a}AOvXCJK7?Zu6*I8^J$TAa&ju5l!gVAkM+?%Lj(V#1(=WGnr4zt^|SI<2P}jyZR#WP5?_&O8)Vys3(mRzMu`dX7=Jw#+v0l@#k8XL zd04;Na|@6Q5cGbLl^e>az%bxFj=~K*1#r6~GHl0!(E;RNtb>h}q+mcwV~^Z5-z^k! z*_e|sT^KL_x|vH#YXWT_p#Uxa*n22iRgrHQKF2kLG+mCs0myrCsG*DKWvFo=S@geP zZ>cwFh_AT73xIN2{`X%<)PpR*`fg>Mx&ZripBGUe&1-IfRyfh_tFR^#7osoX} zflosq_;3U|ane0{n((Id6@}f}x8ZVLo)r8_Fldpa{v1b1P*4!m_^}c*xZb>Hr4;yv z;<{IY?C96nfT`@oX>OnpRK=nIl$Sn`k9IcbIe?=pFfuKamX^jeky0qU83HE$A&=68 z&lHJp_}YH2+h`IpM<95RIO;@B89hdRhvx^y&ri?=PM&SOu73l!UR;;hV*io#p%jyC&V#5!8 zKZ=DlLS0p6TOaP5%f_LgYOaWlx{kxwd(TOfw&(2ZsNIT)j08h<1@{7)ju`N95q5B7 z9v10T{aM;u7w7xFyW#Cy4Z*|$nvH-!i9O(SHJX3Jz5~<2#(a?$-?=8~x}Akee9Mps zTAu#?T~m_^syxZYb6>xHC0#(nv1JyPmZrGZPxW_x{=9qE{n;#Cg&DQ8i=d;fxY|}( zNzwU5xS3}wJP?6ls}s0l^qCnrWIA-O_q7*>3k0FnfaiYp!%ya~+V{7@YeD+ir%#_! zCI$wN_`zSqr0#aY-roL52NV4^R3fL${jq35jd97Ag4;yI50iqUX6lpqM=GXRq+kTR ze0;tO2#gm(TTK9ekec{gYJ#Y%&y{r?codf1QwnmAtY?t zlfQ>u|4z|3G;IY_-5|la@AzOG&*y_*0L8=(Mldeq2r_5}587e0@z;-w z@;ADA?%|4cGmI-)z7|j<`Lf?z)_n*@()m-cx`g^8pDswO6XH@IP6eL2 z9u*S`YKmL|4T3gm07nwLxq($$a%C|1B9-L24^>sZ1@||8j7NIZx%Md#TLkXW6m(jN zsJKHX4NU5vU%Xhe^C5OJ=>eoHwwMLS*NQK^0w>CCQ_Rm&bN%t-hY3U%U&hcI71*6> z-GY$JFm-dDzlh!ar8oldbQQgEYO1f>sB6y0;Y-jnc>pkNma=*7=2N~61REhP&w)05 z0wQ-UKR@5+2#4#djcXUaqBL2v6_3&Sw6G<3-#b2oB>{v%L(1m#X;yp$LPdd|(Kut! z90MbL`lw}=dG4`_ubEWGd4@2Sxfnl6P#zK#HVu8mr4?L}A1IB}h&-4NF@9(aN((YM z;YD`hqIrcyx&J98s_hxt4Wj1!0J0X<&YR=V zV*#+SsVSH>2FJj$l84X@&bQs=j7t~MWGl2D9ehEY$10pYfTxzmDS!`2e|i!U{Pe3# z(H#d2cyNk*8r!py5d-3JHHT+1;LXjYPs*YbhVhrJLEl3JbLs_)1J*T zGT{fyt6><$p;q%7S6%zyfl^!R`bUe%pNcR9y#Edg78KTpzR&^iqv>W17i*Wg(Wjy-65HUeXTQ5dnzEz9$1=P;%hb&Y<3hb50 zc$%Ag(mYOA>&Hjb%AnlL)<K-XySJhw*jsP8c>;TQD5T2MB&FIf!O)Pr!l+$4uxTRHS7OOQlelT%51_IbTT^ks zLvD``RG+dKU*>UI4pI3_GP`X(PG>VkYEQ8rEtwKzkNF3S*GfZMn?^U^?!;UA3@{4k z-y2-bAYm9@8NQS6%e)oI3l1$LY!8aFgfA|HCF}AZ%%EHZ z-sa)SL%7m&Hw=%Cs(?~*Zqq+`@6Sm-$m4(pcYKK7j?P6g{T^z*()3_1X@`?>c`je} zZde{Lb_$#w=0im4aBS|C*Ik3vP%0&{b0>e0;6_xi5xI_<3EF3zffI*F?-yO9rKP2I zT>6mvqgdu6O6br(Jvoe0`7H$H6x)nrnum+4!uI0=29A$T_okMg%a96%Tltuv-6__5 z_lAn{>z6Ju0ktR3PY6#b2)Z(K6{x%XkT%lck-h~>vRbxK-zJY|DR)OGI(nY!)UupEW->6?A~hy-QvdU(~CrdM6j zy$V#w)}*^}&e&J5a2AvhNTKqNA3s)YRVZ&4NmArpY6L+fNeW<~y$X1aJ27${7oezG(DZq!)od)e<0 zI0=;s7J=aN_yz^vfiU3U*Rj|cbB{uZy=SRxSpFG4ak7i4!y*qQ(9$^7{mqR*xXQld z{)UCw;clC8D08;bZS>UdpQd3~M3}&&Cxw;a0^CbcW z^3x0bYQZ0Xc$5KUaq3x*cB*$Sv%-frI_%h0DnJ7EwW0StqO>64YBKd%=6)*W*ZL#R z;i0{K?mGfTv~=jKn!X=suF^g@eagpetxWB5 z7N?7B9+jCVlan<|aB5aD*@Mmy}CE5sJ2FWoLK zo^X!Qb?+r=ZmmsK5?Gkg(b1|Qmw56|L8bzW10&t#9b0D-Y%b(quXGOBSM2(1tJQ~G zaSh%C-_zwg#f|$X*t`|Vc`lCR{*e3s2X*fqk9Gh54IgMoG>wv$RCZB9LlKEo$lhB~ zgp^G>RYpQ)krlF6R<>+PlF>kRMhPKV_w!xn_xro=>;C_GTvvbme&4fkIF94<9xdk1{`>X0A_P^+rmK@mXLiM6EE-hNfVT>ysx>l9iuM<=i>q^(4Sc z?!<``zV1%Af58YU*I_{1J(&3Ju+5IPU#t=`ma2n?Q$yo%y?t)OQ(((U&mg?0g#EQn zAkrfP+qK>(N03FlV`3wrIMHU=q$SUbbt2Q11ndF5-yI|?0I&h~{_X<@9_9d|9quy^J-45b3mAP0@besbLbxuq8fcmMyAdMA_RmI$@-Qe zY3{-IN9SIZmAUm99D-GUFT*F})RGdHAdACMe@>vui3}vh;^$Gx=UZwa#OR|yl)wMR ziMQ9sIs}5Oj=wrc79*v~Ns42W^5bx)DL-)Qg6UUK^{=27_b^iOZO2<^Iwq~~W_+$% z1HB3f!J&Al`l9(sJ>n1)x0LJ!6s`hK8{hH!ugY;8IO~XY1$G)M{E)80B$_Jf`Dnln zPaIY{MRw5v`#~HuMg)Gl+o<7C|Y?(*8w+Hd9@k5!Xpt=IMq1P zR-(-DZj?(a>;SlCpbQA+$wLYKnuGNFX=jl~Di4elr`u#hQxp6QyJ2dVeE01`c0#@T zQSdX5N+DOWXPFQB`t_?GARF$Xe_?|Z+5SuHn>jQyj>)!6R@>^p%0RMtTNS=Ps4#<=hVbi8%oQ4p79_`XDDKLA1- ziXh`GYg+X$Tv#_Zj{?ldx(b}T#pmZig|cEHA*i|byPo6N1c2|(=D_1%ONmB6Z4|v* zwqj}rRO99%PRVd=LMl)Ar97lp_1CsR)K5v8nCtLbMq>(hPsY1`OX&Ug zuZm1a*nedw4vU%M56CwrGrG{=8Nyf8Uxf2DeYD;SsQo=;>G`uk@e*ce`)zRWOkfTe z)Iqi2MZi5JFfA)aHoE?b-*s6(&P7mcUtMJxg zJQyT?Qy8};Km#e#-q+h(Tl51-kcmH5vCmY?9yo9yh`|B)UFEj3sM~9+KTXzNzI^#U zY3t>$`f?}kk~@EXZ(kQsPwPM{v@aYkg@BhpS>#wJtF`?;0R2m%vAC$T|5=VAFNK>a zzXN8K>Kzdv&9oOGP3%^Y>7NfWP)H|eLSl8P>O0uP)us!bH zK-nCy|!u`1T_+H>n zWMTp`5o*5+03!xVu3Epil9~#qC~>YNDtRIKsp9o(27(bmeS)nX8$VfL;f;UXiyG@PE=?kGF}QMRli0bJ5Q;0;a-Z1- z>KhuA3nK?$V1@Xp3{U_WR>343E8E!Em~mrRQ7+;rlN-Cs7rYKJoddlw#HQ>I+s?+e z0V9BJpDI&-p9dBgohj<*(r7&(LnMl_SJcw_IMBF@hzyQUnXgxQ;7&Imi z_Lw8FrdIMB;+x0>2iQBWLke|4PUbw!Yz9DG2m(T4^-woQ1J5QXopg!l$pzI*zQ+0%Y<1!#8sj8#^Sv4N>D zX;K(f4C+G}(C@x(92FX2 zSjykLSw|sT<%L-*9Xc6FoHG~;Cs&W4Kn}pOlI#j$-Ejfk9>@X*_WlZEYzck?%)C}8 zQ!OR88)pQu1fzYfhWeqddb1crCLZL@tTiw<_l5}YRbwMPmh-@~2(V=ztzSS`1VaEpLUn7By?yOq1`7g0V2R5Q&>ml+~DzBS@^8N=-L;uVX$aCv{eS*Np^i8-pZW97$ zVIZehKR|j(599aE&E+W4iE%lA!2!LY6pDt8Y;1DJEx@S2xfj~clkNlddDm`g1l&Bt zyNQOjfLI~`fz=h6f^9HL+qQG(L*z*K3I2)3Na1~B!hfXxeBnT7DJJvLzl@Ff;OHh-C)P>@wxo=9W?xE3o;J*qYj6aioe&WbDZ}(DYCMIE}qB&qvF1zuBLjacRhGpFb$~7=wI%7-C1*$R9!bnN+!!hLL9S z;oeYzPbZ#$!aE~H#-hDZID^T+k5%<+hLU0qw|nB^Cm5HgiDrJFD!D*T zH2Jx?xkdIl4~ms1x4s|PhE~O-F;rY@jV#9|09Xm{C-L%}JjQ!V95L zg#4^QA?5e4Um%fp5?#%cC)*T0<`)!@nZ+QQR!3!sP0!8_slCvKj3J**0f>|p7BG|Q z{+XGX4c=8o?v9{gwGh1aeuzhX8BYnnNtj+w??zFZ!Cf#u11w-4#$?MT%{JWY+$q=J zGA6vKsG!DTWHWw4b`{X_ce&{K5$wBDX);y2Fj!9Syqw%Y$C<0X%3;>;G?-s}bH%ol-+K)hpp|>zaO>Wv>x)})AnhA)tH_eO!jOkp1HrAc z&=%pqX-2R%!KATXU!lUI;_OO*BrM|6O}xV|-@jk*1%W%U+yAW6M`rn-(ldD_sAw{B za`vvJslQcMRpp_opKw(gH8r}Qz&_TNSFcX*Eyge&Q~lH0_OiczduZ`XL%1aB0)7wB zCr{Ds=oqVozxasKI{H_BBHv}-zjmfXfjiB2nC8aU&&$V`iClj?q1Br_{}JxSP8ZQR z%3VP`O1N+h;F5*VQ4;ER<#)iBuQRF)1ZCo}69i5lj4Fk=LS;)pGmz)i{|jG3ID?N< zpZH$XbpV#2M!!%nT8gFuh5ULFIS$=5kqcqL;2Je+XOVqUdIU@asx%JSbkq@3@lc(f zK^G=6gtL~+U?4$u%S($zHktS_R*cS+3?fA;uqNVq5v$%6m^NBoz`x1!I)eP)XvGwL zGlTGxoJ3H&;+djJz9%b&)1L@ZXA4kfwocR)R`R~yt9xavfS2?&W-py~9#z&ZW%?G$ zWc;H19*_&3ns?f=bw%+$8O)g zz0O_W2|lGhoCu_6t-sOqSQf-HnAx4yW4*mG3LCFnz3PMOHlPo+jRb#)jRD20%0Q=z z?vvuZCbIJm2{%RiA zm=pDFN>^7GTf4g~&ZkDJ_PUaL==Sm6$fU5zt5;nRDnocJWZy`lYTY0F#M^sqP11EB zwBf(?d1fej04orqFqq$>gff-PnulrJs`oZmA}%CY2$J9N8)SxZ_Q;BDi^@1$h=5~R z`>VLS0bJgLN`BKJcW4+GNJKZzk{{K6dU>b8_$qgq&e+`;cE5nVH0}EII@gEILFFC~B?VjE;<$DJ5lo%EVMwwsQmE zDydPB!-AeGTY~(bUMz6#Hrs(=7F1V6Ng;X?zGrK$(ZeU!{(;Z~M^5kB@Z3jJNdL-} zx~-=Po{Z5#U$%E+q)#90-CVY@Z1YFEO*D_7N+^dUQR&U6j*c&QSz>^$&zYo74?V8>Bx`1<;C zx09(TIMCi4*YO1GMVQ|slbJyBuvh+(jiB-pokk^2(yoG>a2dc;#&7&3nPK%`Fk$C+qOLYRP= z0kBMH_pb86`FQZ25Y12+X$G?Bzj6%>;b7me<(QF&VSV8{;F5pE{m6G_r zM?Ia#JgRa4UP_Sm`m@5A`jo7}+l4RGTz1 z3WEG?b8}*r<(j`wd;JrD@nF)#rKMLJaRf#FM+*St{otWP$x2N^PP3P)ceUKyp}28t zkf9Ks8>l{Ik$t+xkAmZAI}NU0)k++tAIo%BuMQitH&7qkJP`Iu`I&Z*;mxQq8w;=* z1@BYRxyeuCjsVj}Vn523-8ZWWgOV1Kz49Xwy3k_5xb+MSd+U#4ub>80^-zl=FKl5f z4R)Jboz(@})>e(3!DsA^z~;6e-FF(94kFBcLTjSs)dn3LyPGcQ2p8|$w@>Iu*J=CT zX6o~a@2V`+OOFjWKcx8ma#WT%?;P^?9(hmykA%L5K|;`wi*cshr9rNAAEvFz#p~-e zSUxItWjfmrc@Bh4DLvC}IBJq0&#Amxxx@KOV+U8yiSa|(Cd)L7@^)K7njA~ArCPuF z#>jI&fr*$x$71W0>BbotfT+hNKkr zZM~!XuelmeJdHfm|0*LTY<&Ll>~Y(=vvYo1kT(eFisn8R=fI0k(9T{Dw8cTT>Pb9Q z=`lVbM05QYSHu5{8+t)DfRz)-TE4ea)*N0<#%y6_6y_jDIGz* zdKdc&rTFEHD*%gy$m9i#S5FvWzC-l#|GuNZ^_!B2Nd^BIBcV>Cb?HBU@Si`QjJ?!J z{olX--_P-9K}HJxRh0jKfA`OSDed{+@JH|Uz+aMv3b40I-oNiWiMDfu+3oK~l-iEi zGnC@Dqoa32?*N}d?8E{NXflHVD(+Y`tF2rP1u_^jg567|A%fkyG2XQu5Pd6OoAd*@ zePne|NM6G|Pfr=4bCQX)FHR)i#eIZshX~n`%av?lCC2*nq^mEySuqHfBuYQ5TU&3* zXnC_;IGRwB6Ei!s#tfR8pGKHH|GYa{rc+Ee|9*95yr^CfExI4DF8mp*Arm$~?g|-} zR;kN&Tyl4Uf|wNgojF&mUQNcQgxjF9kB4k*9}kcB`@(zoRxAH-`r>r%{ZaI`e^u$Ku}YDvu2xx`za$}F|K{HNr<*)ipx4+}13DSFL)_poU_=CT z^MxQrV}S0M|JfB$CN8>nkkLU@d*(P8S5iPtQR4y}zr>q*@ZiDc?IQT|G}4T9=_i(!S915CpROI0%s!bM{$ z(@VtSOK-*_1ZuLHLgt#G0c_<}n9IN3LyeWTZqJ@QK+o9V)uD;%h>CIANvT@)LrD>& zp`)g@1vzqOeNm09!JO54mhiu;Eo?3$H{##zeHmg!aa(VB6QUgH#)hatA{3b>h7i&M z);OGk$}%!MUx2yp5*Ai9dS1T3G1kXn9ZOMXU%{D7ufi*VkbGi;J;V))J2-;=`W{XzOmeJQ6712?Cl z;64I;bYAG(>1g?+J3u6e2G!6fA7&WTI{hbPm9s?=wKiAyj42{Eb`Q!v&lrLT|116N zDhwZ|$*qvymS@-M@$Q>BY>vuH7Z1_XtY5z#oi@b{dxj(~19QO7I{&yb6V4e|F%l#I zOryAF|8ocEi0|PPN`Bu2MukKT5a|Q@36kQb!mJ$0J@%S@=ZND@Ha2<+_6q4Vs$XF3 z!VJRNCsI>WL(~b$N?ZSuI7&PI-4peWr}jPCjhF`@=M=_A-`_EZJX7RC2yagPo=0_l zu$>^~?bX}28?a`PytX<@EsCTiSAg4{ z5il{bEU|}QJK)V8s+&b81e+<6f_8xI7Y<3B^qc&+ImJ;6#0yikb|hYU(Dy)9?1Ei$pN>^XF3b5&Ip$~iIoxF3-4ejORX z98QV22cQg)6$}I4R5zf6IWwt}c0-y2UlJgWm3fb4OBs&#`-|J5wb?$#3eO{Bh1tK22V(8zbaPCOV4;{Do+u5zpcdfF$77g>AyRW3x(}jAW)Zo2cyR50Mly+K8x! z(R5#Vgk59(IS&*V``*1CT9$ZVz?oumoeH$b7?5}ALMK9Scfo^ZEa+XMGBP%x zPsXO^omTHEab8QoH(kU}le0LJ)h#Y2T#V0w0~|-EM$M|L3{| z2tqPP@gq<5*ycB*o{GmrUMaM9#8QTpS=7DW7Q=%3AU`3k1>}4<^+nP+f~10vml z#0DlU{b&?GA+N0u8?a2wY7$f#0mi>y=L%kw+^}AW_@0Q&6AP$l-1LfZ)}w3*;=)+~7f6_jY~ic`De6%n zRd{g!J+l)fV00r1xJX-*8+Z(n42fhz)Xnub2!-gwVg$g*94nkwML$7f@2(~^aL;2!1Y^w|``SP};>%bS1`5raYKfSD-N_4W6o)?BR< zclRhhp)dBj%^Mu4{!3Bou6^3{C3grRVB|RjIpMC72J(^tr+k+K6n8_N+jlZCc|bFj zSX4^EB+TPo5wkcRJ0R&EulS4%O(KZT5!n49W4^_WiiSiZFo_cBKS_|lts>(5`-SXQ zUjgTkN>nLtG1JNV0yY?=fRg?IgzIiq6H`4iue@VAmOLi+`LcB*{t}@g>^0>W_e7wT zTWcv80V4qYuXPa^B}hWx`|AUIiw>{v*?KxURLwLLg2a67$lOy9|2e8`_B?rOXj67E z(%}vgZ3iZ{76(;OzCQ3v7)=I0??DoJ>Oeh|BLYzQ9iBQ{z_pzq}W2RB~#qT+8fd z`2ocDpLv$#?Lo$wa1rnWj@GKN*8CgneM3ssC9o-ZRQN+=99o_ z$BMKN{6;T=9l6I#QF4)M1HF;~K0fyVIv6IUzz!kZ4AGL-Dppu6rtrt}RclX6p6Q$Ap`41k> zivH)I8hE7Ip{?8ck4{4S@bvnhM?DnbQ(Fa0pb|$!Z2`9UF4!1w(V}R(e(P2Z4!gPw z-9U99qOfAt=&;`*=0pqYCbF~x3}44+Ne0Wt8I?x^nMWtE|B5WXQFeMMLK$2aCRXDN zO=ykL!Nm#Xb!{dTf+$lwu%;~Ck;iqAll-VwY>ZW^ey)3oh8oO z@H)g#1sk=HMi&nJ`@AYu)zwMLXJF(7m7Jljn(8q`a9tLFu>JEH5bMq1e_3m zpaz!&47%kCZ7{XaL%c^~dC|VK4)UDSr2f1Vt<)CuxlTv%irS=hXNEovAlTYWirviE zRya6CCZU;$EV4mkBo3XKslEUt5j%G5c;*bhGa2a=FobpUM<{4p`~6~lhcNJWK)rhg z$nJ*M;!7<{e1<)>JPoM%^Z;+|K67N3

mochajs/mocha ### [`v6.0.0`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#​600--2019-02-18) [Compare Source](https://togithub.com/mochajs/mocha/compare/v5.2.0...v6.0.0) #### :tada: Enhancements - [#​3726](https://togithub.com/mochajs/mocha/issues/3726): Add ability to unload files from `require` cache ([**@​plroebuck**](https://togithub.com/plroebuck)) #### :bug: Fixes - [#​3737](https://togithub.com/mochajs/mocha/issues/3737): Fix falsy values from options globals ([**@​plroebuck**](https://togithub.com/plroebuck)) - [#​3707](https://togithub.com/mochajs/mocha/issues/3707): Fix encapsulation issues for `Suite#_onlyTests` and `Suite#_onlySuites` ([**@​vkarpov15**](https://togithub.com/vkarpov15)) - [#​3711](https://togithub.com/mochajs/mocha/issues/3711): Fix diagnostic messages dealing with plurality and markup of output ([**@​plroebuck**](https://togithub.com/plroebuck)) - [#​3723](https://togithub.com/mochajs/mocha/issues/3723): Fix "reporter-option" to allow comma-separated options ([**@​boneskull**](https://togithub.com/boneskull)) - [#​3722](https://togithub.com/mochajs/mocha/issues/3722): Fix code quality and performance of `lookupFiles` and `files` ([**@​plroebuck**](https://togithub.com/plroebuck)) - [#​3650](https://togithub.com/mochajs/mocha/issues/3650), [#​3654](https://togithub.com/mochajs/mocha/issues/3654): Fix noisy error message when no files found ([**@​craigtaub**](https://togithub.com/craigtaub)) - [#​3632](https://togithub.com/mochajs/mocha/issues/3632): Tests having an empty title are no longer confused with the "root" suite ([**@​juergba**](https://togithub.com/juergba)) - [#​3666](https://togithub.com/mochajs/mocha/issues/3666): Fix missing error codes ([**@​vkarpov15**](https://togithub.com/vkarpov15)) - [#​3684](https://togithub.com/mochajs/mocha/issues/3684): Fix exiting problem in Node.js v11.7.0+ ([**@​addaleax**](https://togithub.com/addaleax)) - [#​3691](https://togithub.com/mochajs/mocha/issues/3691): Fix `--delay` (and other boolean options) not working in all cases ([**@​boneskull**](https://togithub.com/boneskull)) - [#​3692](https://togithub.com/mochajs/mocha/issues/3692): Fix invalid command-line argument usage not causing actual errors ([**@​boneskull**](https://togithub.com/boneskull)) - [#​3698](https://togithub.com/mochajs/mocha/issues/3698), [#​3699](https://togithub.com/mochajs/mocha/issues/3699): Fix debug-related Node.js options not working in all cases ([**@​boneskull**](https://togithub.com/boneskull)) - [#​3700](https://togithub.com/mochajs/mocha/issues/3700): Growl notifications now show the correct number of tests run ([**@​outsideris**](https://togithub.com/outsideris)) - [#​3686](https://togithub.com/mochajs/mocha/issues/3686): Avoid potential ReDoS when diffing large objects ([**@​cyjake**](https://togithub.com/cyjake)) - [#​3715](https://togithub.com/mochajs/mocha/issues/3715): Fix incorrect order of emitted events when used programmatically ([**@​boneskull**](https://togithub.com/boneskull)) - [#​3706](https://togithub.com/mochajs/mocha/issues/3706): Fix regression wherein `--reporter-option`/`--reporter-options` did not support comma-separated key/value pairs ([**@​boneskull**](https://togithub.com/boneskull)) #### :book: Documentation - [#​3652](https://togithub.com/mochajs/mocha/issues/3652): Switch from Jekyll to Eleventy ([**@​Munter**](https://togithub.com/Munter)) #### :nut_and_bolt: Other - [#​3677](https://togithub.com/mochajs/mocha/issues/3677): Add error objects for createUnsupportedError and createInvalidExceptionError ([**@​boneskull**](https://togithub.com/boneskull)) - [#​3733](https://togithub.com/mochajs/mocha/issues/3733): Removed unnecessary processing in post-processing hook ([**@​wanseob**](https://togithub.com/wanseob)) - [#​3730](https://togithub.com/mochajs/mocha/issues/3730): Update nyc to latest version ([**@​coreyfarrell**](https://togithub.com/coreyfarrell)) - [#​3648](https://togithub.com/mochajs/mocha/issues/3648), [#​3680](https://togithub.com/mochajs/mocha/issues/3680): Fixes to support latest versions of [unexpected](https://npm.im/unexpected) and [unexpected-sinon](https://npm.im/unexpected-sinon) ([**@​sunesimonsen**](https://togithub.com/sunesimonsen)) - [#​3638](https://togithub.com/mochajs/mocha/issues/3638): Add meta tag to site ([**@​MartijnCuppens**](https://togithub.com/MartijnCuppens)) - [#​3653](https://togithub.com/mochajs/mocha/issues/3653): Fix parts of test suite failing to run on Windows ([**@​boneskull**](https://togithub.com/boneskull))
--- ### Renovate configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is stale, or if you modify the PR title to begin with "`rebase!`". :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://togithub.com/marketplace/renovate). View repository job log [here](https://renovatebot.com/dashboard#googleapis/nodejs-error-reporting). #317 automerged by dpebot --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 253e6ae4bac..7ad45df0da2 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -100,7 +100,7 @@ "lodash.pick": "^4.4.0", "lodash.random": "^3.2.0", "lodash.without": "^4.4.0", - "mocha": "^5.2.0", + "mocha": "^6.0.0", "nock": "^10.0.0", "nyc": "^13.0.1", "post-install-check": "0.0.1", From 92c464fe8eee684af53a24408d91e99468fbc86a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Thu, 28 Feb 2019 16:36:13 -0800 Subject: [PATCH 230/527] chore(deps): update dependency restify to v8 (#318) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 7ad45df0da2..bfc43388469 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -108,7 +108,7 @@ "prettier": "^1.12.1", "proxyquire": "^2.0.1", "request": "^2.88.0", - "restify": "^7.2.0", + "restify": "^8.0.0", "source-map-support": "^0.5.9", "typescript": "~3.3.0", "uuid": "^3.3.2", From 51efe8b1df3499d9b5258ada0e6e7564f2a0f8f9 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot <44816363+yoshi-automation@users.noreply.github.com> Date: Tue, 5 Mar 2019 16:34:51 -0800 Subject: [PATCH 231/527] build: update release configuration --- .../.kokoro/release/publish.cfg | 20 +++++++++++++++++++ handwritten/error-reporting/synth.metadata | 4 ++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/.kokoro/release/publish.cfg b/handwritten/error-reporting/.kokoro/release/publish.cfg index ad381c4e907..92252f9a08f 100644 --- a/handwritten/error-reporting/.kokoro/release/publish.cfg +++ b/handwritten/error-reporting/.kokoro/release/publish.cfg @@ -18,6 +18,26 @@ before_action { } } +# Fetch magictoken to use with Magic Github Proxy +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "releasetool-magictoken" + } + } +} + +# Fetch api key to use with Magic Github Proxy +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "magic-github-proxy-api-key" + } + } +} + # Download trampoline resources. gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 0e482d56432..d4a2fbf7899 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -1,11 +1,11 @@ { - "updateTime": "2019-01-26T12:10:21.278057Z", + "updateTime": "2019-03-05T12:13:36.921240Z", "sources": [ { "template": { "name": "node_library", "origin": "synthtool.gcp", - "version": "2019.1.16" + "version": "2019.2.26" } } ] From c5f9c26e1fd79b9473d5b1a64948aa6f07f28b0f Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Wed, 6 Mar 2019 15:23:10 -0800 Subject: [PATCH 232/527] build: use node10 to run samples-test, system-test etc (#321) --- .../error-reporting/.kokoro/continuous/{node8 => node10}/docs.cfg | 0 .../error-reporting/.kokoro/continuous/{node8 => node10}/lint.cfg | 0 .../.kokoro/continuous/{node8 => node10}/samples-test.cfg | 0 .../.kokoro/continuous/{node8 => node10}/system-test-grpcjs.cfg | 0 .../.kokoro/continuous/{node8 => node10}/system-test.cfg | 0 .../error-reporting/.kokoro/presubmit/{node8 => node10}/docs.cfg | 0 .../error-reporting/.kokoro/presubmit/{node8 => node10}/lint.cfg | 0 .../.kokoro/presubmit/{node8 => node10}/samples-test.cfg | 0 .../.kokoro/presubmit/{node8 => node10}/system-test-grpcjs.cfg | 0 .../.kokoro/presubmit/{node8 => node10}/system-test.cfg | 0 10 files changed, 0 insertions(+), 0 deletions(-) rename handwritten/error-reporting/.kokoro/continuous/{node8 => node10}/docs.cfg (100%) rename handwritten/error-reporting/.kokoro/continuous/{node8 => node10}/lint.cfg (100%) rename handwritten/error-reporting/.kokoro/continuous/{node8 => node10}/samples-test.cfg (100%) rename handwritten/error-reporting/.kokoro/continuous/{node8 => node10}/system-test-grpcjs.cfg (100%) rename handwritten/error-reporting/.kokoro/continuous/{node8 => node10}/system-test.cfg (100%) rename handwritten/error-reporting/.kokoro/presubmit/{node8 => node10}/docs.cfg (100%) rename handwritten/error-reporting/.kokoro/presubmit/{node8 => node10}/lint.cfg (100%) rename handwritten/error-reporting/.kokoro/presubmit/{node8 => node10}/samples-test.cfg (100%) rename handwritten/error-reporting/.kokoro/presubmit/{node8 => node10}/system-test-grpcjs.cfg (100%) rename handwritten/error-reporting/.kokoro/presubmit/{node8 => node10}/system-test.cfg (100%) diff --git a/handwritten/error-reporting/.kokoro/continuous/node8/docs.cfg b/handwritten/error-reporting/.kokoro/continuous/node10/docs.cfg similarity index 100% rename from handwritten/error-reporting/.kokoro/continuous/node8/docs.cfg rename to handwritten/error-reporting/.kokoro/continuous/node10/docs.cfg diff --git a/handwritten/error-reporting/.kokoro/continuous/node8/lint.cfg b/handwritten/error-reporting/.kokoro/continuous/node10/lint.cfg similarity index 100% rename from handwritten/error-reporting/.kokoro/continuous/node8/lint.cfg rename to handwritten/error-reporting/.kokoro/continuous/node10/lint.cfg diff --git a/handwritten/error-reporting/.kokoro/continuous/node8/samples-test.cfg b/handwritten/error-reporting/.kokoro/continuous/node10/samples-test.cfg similarity index 100% rename from handwritten/error-reporting/.kokoro/continuous/node8/samples-test.cfg rename to handwritten/error-reporting/.kokoro/continuous/node10/samples-test.cfg diff --git a/handwritten/error-reporting/.kokoro/continuous/node8/system-test-grpcjs.cfg b/handwritten/error-reporting/.kokoro/continuous/node10/system-test-grpcjs.cfg similarity index 100% rename from handwritten/error-reporting/.kokoro/continuous/node8/system-test-grpcjs.cfg rename to handwritten/error-reporting/.kokoro/continuous/node10/system-test-grpcjs.cfg diff --git a/handwritten/error-reporting/.kokoro/continuous/node8/system-test.cfg b/handwritten/error-reporting/.kokoro/continuous/node10/system-test.cfg similarity index 100% rename from handwritten/error-reporting/.kokoro/continuous/node8/system-test.cfg rename to handwritten/error-reporting/.kokoro/continuous/node10/system-test.cfg diff --git a/handwritten/error-reporting/.kokoro/presubmit/node8/docs.cfg b/handwritten/error-reporting/.kokoro/presubmit/node10/docs.cfg similarity index 100% rename from handwritten/error-reporting/.kokoro/presubmit/node8/docs.cfg rename to handwritten/error-reporting/.kokoro/presubmit/node10/docs.cfg diff --git a/handwritten/error-reporting/.kokoro/presubmit/node8/lint.cfg b/handwritten/error-reporting/.kokoro/presubmit/node10/lint.cfg similarity index 100% rename from handwritten/error-reporting/.kokoro/presubmit/node8/lint.cfg rename to handwritten/error-reporting/.kokoro/presubmit/node10/lint.cfg diff --git a/handwritten/error-reporting/.kokoro/presubmit/node8/samples-test.cfg b/handwritten/error-reporting/.kokoro/presubmit/node10/samples-test.cfg similarity index 100% rename from handwritten/error-reporting/.kokoro/presubmit/node8/samples-test.cfg rename to handwritten/error-reporting/.kokoro/presubmit/node10/samples-test.cfg diff --git a/handwritten/error-reporting/.kokoro/presubmit/node8/system-test-grpcjs.cfg b/handwritten/error-reporting/.kokoro/presubmit/node10/system-test-grpcjs.cfg similarity index 100% rename from handwritten/error-reporting/.kokoro/presubmit/node8/system-test-grpcjs.cfg rename to handwritten/error-reporting/.kokoro/presubmit/node10/system-test-grpcjs.cfg diff --git a/handwritten/error-reporting/.kokoro/presubmit/node8/system-test.cfg b/handwritten/error-reporting/.kokoro/presubmit/node10/system-test.cfg similarity index 100% rename from handwritten/error-reporting/.kokoro/presubmit/node8/system-test.cfg rename to handwritten/error-reporting/.kokoro/presubmit/node10/system-test.cfg From 8df00fdf34e7c1dcfed2b2aafe8a62809ca274dc Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Thu, 7 Mar 2019 18:04:44 -0800 Subject: [PATCH 233/527] build: Add docuploader credentials to node publish jobs (#322) --- handwritten/error-reporting/.kokoro/release/publish.cfg | 9 +++++++++ handwritten/error-reporting/synth.metadata | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/.kokoro/release/publish.cfg b/handwritten/error-reporting/.kokoro/release/publish.cfg index 92252f9a08f..ec94dcbe3e8 100644 --- a/handwritten/error-reporting/.kokoro/release/publish.cfg +++ b/handwritten/error-reporting/.kokoro/release/publish.cfg @@ -18,6 +18,15 @@ before_action { } } +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "docuploader_service_account" + } + } +} + # Fetch magictoken to use with Magic Github Proxy before_action { fetch_keystore { diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index d4a2fbf7899..d2149a73b2d 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -1,11 +1,11 @@ { - "updateTime": "2019-03-05T12:13:36.921240Z", + "updateTime": "2019-03-08T00:45:38.322552Z", "sources": [ { "template": { "name": "node_library", "origin": "synthtool.gcp", - "version": "2019.2.26" + "version": "2019.1.16" } } ] From 436b14c817add18b73d2b96784ccf4051f143223 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Wed, 13 Mar 2019 22:06:25 -0700 Subject: [PATCH 234/527] Release v0.6.1 (#325) --- handwritten/error-reporting/CHANGELOG.md | 33 ++++++++++++++++++++++++ handwritten/error-reporting/package.json | 2 +- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/CHANGELOG.md b/handwritten/error-reporting/CHANGELOG.md index e6e6cc21e65..2f040ad0b96 100644 --- a/handwritten/error-reporting/CHANGELOG.md +++ b/handwritten/error-reporting/CHANGELOG.md @@ -4,6 +4,39 @@ [1]: https://www.npmjs.com/package/@google-cloud/error-reporting?activeTab=versions +## v0.6.1 + +03-13-2019 16:21 PDT + +### Bug Fixes +- fix: properly handle hapi v16+ req.url ([#311](https://github.com/googleapis/nodejs-error-reporting/pull/311)) + +### Dependencies +- fix(deps): update dependency @google-cloud/common to ^0.31.0 ([#304](https://github.com/googleapis/nodejs-error-reporting/pull/304)) + +### Documentation +- docs: document how to get async stack traces ([#314](https://github.com/googleapis/nodejs-error-reporting/pull/314)) +- docs: update links in contrib guide ([#316](https://github.com/googleapis/nodejs-error-reporting/pull/316)) +- docs: add custom documentation to the README ([#313](https://github.com/googleapis/nodejs-error-reporting/pull/313)) +- docs: update contributing path in README ([#307](https://github.com/googleapis/nodejs-error-reporting/pull/307)) +- docs: move CONTRIBUTING.md to root ([#306](https://github.com/googleapis/nodejs-error-reporting/pull/306)) +- docs: add lint/fix example to contributing guide ([#303](https://github.com/googleapis/nodejs-error-reporting/pull/303)) + +### Internal / Testing Changes +- build: Add docuploader credentials to node publish jobs ([#322](https://github.com/googleapis/nodejs-error-reporting/pull/322)) +- build: use node10 to run samples-test, system-test etc ([#321](https://github.com/googleapis/nodejs-error-reporting/pull/321)) +- build: update release configuration +- chore(deps): update dependency restify to v8 ([#318](https://github.com/googleapis/nodejs-error-reporting/pull/318)) +- chore(deps): update dependency mocha to v6 +- build: use linkinator for docs test ([#315](https://github.com/googleapis/nodejs-error-reporting/pull/315)) +- fix(deps): update dependency yargs to v13 ([#312](https://github.com/googleapis/nodejs-error-reporting/pull/312)) +- refactor: cleanup types for reportManualError ([#310](https://github.com/googleapis/nodejs-error-reporting/pull/310)) +- build: create docs test npm scripts ([#309](https://github.com/googleapis/nodejs-error-reporting/pull/309)) +- build: test using @grpc/grpc-js in CI ([#308](https://github.com/googleapis/nodejs-error-reporting/pull/308)) +- build: check for 404s when generating docs ([#301](https://github.com/googleapis/nodejs-error-reporting/pull/301)) +- chore(deps): update dependency eslint-config-prettier to v4 ([#300](https://github.com/googleapis/nodejs-error-reporting/pull/300)) +- chore(deps): update dependency @types/hapi to v18 ([#297](https://github.com/googleapis/nodejs-error-reporting/pull/297)) + ## v0.6.0 01-22-2019 09:59 PST diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index bfc43388469..a1361e72b62 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/error-reporting", "description": "Stackdriver Error Reporting Client Library for Node.js", - "version": "0.6.0", + "version": "0.6.1", "license": "Apache-2.0", "author": "Google Inc.", "engines": { From e2384a7c2f4984d1c14533bf4ad40f6b8408740e Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Thu, 14 Mar 2019 09:03:02 -0700 Subject: [PATCH 235/527] chore: test Restify 18 in the install tests (#324) --- .../system-test/test-install.ts | 54 ++++++++++++++++--- 1 file changed, 48 insertions(+), 6 deletions(-) diff --git a/handwritten/error-reporting/system-test/test-install.ts b/handwritten/error-reporting/system-test/test-install.ts index c3957d80e26..a5cbb633db7 100644 --- a/handwritten/error-reporting/system-test/test-install.ts +++ b/handwritten/error-reporting/system-test/test-install.ts @@ -23,7 +23,7 @@ const SKIP = { express: false, hapi: {sixteen: false, seventeen: false}, koa: {one: false, two: false}, - restify: false + restify: {seven: false, eight: false} }; const TS_CODE_ARRAY: check.CodeSample[] = [ @@ -217,9 +217,30 @@ server.get('/hello/:name', respond); server.head('/hello/:name', respond); `, description: 'uses restify', - dependencies: ['restify'], - devDependencies: ['@types/restify'], - skip: SKIP.restify + dependencies: ['restify@7.x.x'], + devDependencies: ['@types/restify@7.x.x'], + skip: SKIP.restify.seven + }, + { + code: `import * as restify from 'restify'; + +import {ErrorReporting} from '@google-cloud/error-reporting'; +const errors = new ErrorReporting(); + +function respond(req: {}, res: {}, next: Function) { + next(new Error('this is a restify error')); +} + +const server = restify.createServer(); + +server.use(errors.restify(server)); +server.get('/hello/:name', respond); +server.head('/hello/:name', respond); +`, + description: 'uses restify', + dependencies: ['restify@8.x.x'], + devDependencies: ['@types/restify@7.x.x'], + skip: SKIP.restify.eight }, ]; @@ -411,10 +432,31 @@ server.get('/hello/:name', respond); server.head('/hello/:name', respond); `, description: 'uses restify', - dependencies: ['restify'], + dependencies: ['restify@7.x.x'], devDependencies: [], - skip: SKIP.restify + skip: SKIP.restify.seven }, + { + code: `const restify = require('restify'); + +const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; +const errors = new ErrorReporting(); + +function respond(req, res, next) { + next(new Error('this is a restify error')); +} + +const server = restify.createServer(); + +server.use(errors.restify(server)); +server.get('/hello/:name', respond); +server.head('/hello/:name', respond); +`, + description: 'uses restify', + dependencies: ['restify@8.x.x'], + devDependencies: [], + skip: SKIP.restify.eight + } ]; check.testInstallation(TS_CODE_ARRAY, JS_CODE_ARRAY, {timeout: 2 * 60 * 1000}); From fa2b71f3efcb944586f1db371928f193174137ae Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Fri, 15 Mar 2019 10:05:28 -0700 Subject: [PATCH 236/527] build: use per-repo publish token (#327) --- handwritten/error-reporting/.kokoro/release/publish.cfg | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/handwritten/error-reporting/.kokoro/release/publish.cfg b/handwritten/error-reporting/.kokoro/release/publish.cfg index ec94dcbe3e8..702edc18ae0 100644 --- a/handwritten/error-reporting/.kokoro/release/publish.cfg +++ b/handwritten/error-reporting/.kokoro/release/publish.cfg @@ -47,6 +47,15 @@ before_action { } } +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "google-cloud-error-reporting-npm-token" + } + } +} + # Download trampoline resources. gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" From 7906faf0a70d3eb93dd94437abdaccaff335cdc5 Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Tue, 19 Mar 2019 18:13:22 -0700 Subject: [PATCH 237/527] chore: publish to npm using wombat (#328) --- handwritten/error-reporting/.kokoro/publish.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/.kokoro/publish.sh b/handwritten/error-reporting/.kokoro/publish.sh index f2a8adc0b43..4128c530734 100755 --- a/handwritten/error-reporting/.kokoro/publish.sh +++ b/handwritten/error-reporting/.kokoro/publish.sh @@ -24,8 +24,8 @@ python3 -m releasetool publish-reporter-script > /tmp/publisher-script; source / cd $(dirname $0)/.. -NPM_TOKEN=$(cat $KOKORO_KEYSTORE_DIR/73713_google_cloud_npm_token) -echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc +NPM_TOKEN=$(cat $KOKORO_KEYSTORE_DIR/73713_google-cloud-error-reporting-npm-token) +echo "//wombat-dressing-room.appspot.com/:_authToken=${NPM_TOKEN}" > ~/.npmrc npm install -npm publish --access=public +npm publish --access=public --registry=https://wombat-dressing-room.appspot.com From e8c7ff5f37dd9f32b41c96369cc0ea3858a01e16 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Mon, 1 Apr 2019 09:19:41 -0700 Subject: [PATCH 238/527] chore(deps): update dependency typescript to ~3.4.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit chore(deps): update dependency typescript to ~3.4.0 This PR contains the following updates: | Package | Type | Update | Change | References | |---|---|---|---|---| | typescript | devDependencies | minor | [`~3.3.0` -> `~3.4.0`](https://diff.intrinsic.com/typescript/3.3.4000/3.4.1) | [homepage](https://www.typescriptlang.org/), [source](https://togithub.com/Microsoft/TypeScript) | --- ### Release Notes
Microsoft/TypeScript ### [`v3.4.1`](https://togithub.com/Microsoft/TypeScript/releases/v3.4.1) [Compare Source](https://togithub.com/Microsoft/TypeScript/compare/v3.3.4000...v3.4.1) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-3-4/). For the complete list of fixed issues, check out the - [fixed issues query for Typescript v3.4 RC](https://togithub.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&q=is%3Aissue+milestone%3A%22TypeScript+3.4%22+is%3Aclosed+). - [fixed issues query for Typescript v3.4.1](https://togithub.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&q=is%3Aissue+milestone%3A%22TypeScript+3.4.1%22+is%3Aclosed+). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) - [Visual Studio 2017](https://marketplace.visualstudio.com/items?itemName=TypeScriptTeam.typescript-341-vs2017) ([Select new version in project options](https://togithub.com/Microsoft/TypeScript/wiki/Updating-TypeScript-in-Visual-Studio-2017)) - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) Special thanks to all of our contributors this release: - [@​AnyhowStep](https://togithub.com/AnyhowStep) - Alan Pierce - Alexander Tarasyuk - Anders Hejlsberg - Andy Hanson - Benedikt Meurer - Benjamin Lichtman - Collins Abitekaniza - Daniel Krom - Daniel Rosenwasser - [@​fullheightcoding](https://togithub.com/fullheightcoding) - Gabriela Araujo Britto - [@​ispedals](https://togithub.com/ispedals) - Jack Williams - Jesse Trinity - Jordi Oliveras Rovira - Joseph Wunderlich - K. Preißer - Kagami Sascha Rosylight - Klaus Meinhardt - Masahiro Wakame - Matt McCutchen - Matthew Aynalem - Mine Starks - Nathan Shively-Sanders - Ron Buckton - Ryan Cavanaugh - Sheetal Nandi - Titian Cernicova-Dragomir - [@​tomholub](https://togithub.com/tomholub) - Wenlu Wang - Wesley Wigham
--- ### Renovate configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is stale, or if you modify the PR title to begin with "`rebase!`". :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://togithub.com/marketplace/renovate). View repository job log [here](https://renovatebot.com/dashboard#googleapis/nodejs-error-reporting). #332 automerged by dpebot --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index a1361e72b62..08efcf9e2fa 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -110,7 +110,7 @@ "request": "^2.88.0", "restify": "^8.0.0", "source-map-support": "^0.5.9", - "typescript": "~3.3.0", + "typescript": "~3.4.0", "uuid": "^3.3.2", "linkinator": "^1.1.2" } From 2708d461ceaa11336f2a88f8e4864b88c3279bee Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Sat, 6 Apr 2019 20:37:03 -0700 Subject: [PATCH 239/527] fix(deps): update dependency @google-cloud/common to ^0.32.0 (#334) --- handwritten/error-reporting/package.json | 2 +- handwritten/error-reporting/src/google-apis/auth-client.ts | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 08efcf9e2fa..4d52741c474 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -44,7 +44,7 @@ "predocs-test": "npm run docs" }, "dependencies": { - "@google-cloud/common": "^0.31.0", + "@google-cloud/common": "^0.32.0", "console-log-level": "^1.4.0", "is": "^3.2.1", "lodash.has": "^4.5.2", diff --git a/handwritten/error-reporting/src/google-apis/auth-client.ts b/handwritten/error-reporting/src/google-apis/auth-client.ts index dc12fc5186c..70f25428a5c 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.ts +++ b/handwritten/error-reporting/src/google-apis/auth-client.ts @@ -20,7 +20,6 @@ import {Configuration, Logger} from '../configuration'; import {ErrorMessage} from '../classes/error-message'; import * as http from 'http'; import {Service, ServiceOptions} from '@google-cloud/common'; -import {teenyRequest} from 'teeny-request'; /* @const {Array} list of scopes needed to work with the errors api. */ const SCOPES = ['https://www.googleapis.com/auth/cloud-platform']; @@ -100,8 +99,6 @@ export class RequestHandler extends Service { }); super( { - // tslint:disable-next-line:no-any - requestModule: teenyRequest as any, packageJson: pkg, baseUrl: API, scopes: SCOPES, From 8cb0cae3e3e32defc13456079677c15e3b64d42c Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Tue, 9 Apr 2019 10:40:05 -0700 Subject: [PATCH 240/527] fix: in Koa2 interface await `next` as a function (#336) * fix: in Koa2 interface await `next` as a function Fixes: #335 --- handwritten/error-reporting/src/interfaces/koa.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/src/interfaces/koa.ts b/handwritten/error-reporting/src/interfaces/koa.ts index 6d1425c5f03..0ade93b786e 100644 --- a/handwritten/error-reporting/src/interfaces/koa.ts +++ b/handwritten/error-reporting/src/interfaces/koa.ts @@ -42,11 +42,12 @@ export function koaErrorHandler(client: RequestHandler, config: Configuration) { * @param {Function} next - the result of the request handlers to yield * @returns {Undefined} does not return anything */ - return function*(this: {request: Request; response: Response;}, next: {}) { + return function*( + this: {request: Request; response: Response;}, next: Function) { const svc = config.getServiceContext(); try { - yield next; + yield next(); } catch (err) { const em = new ErrorMessage() .consumeRequestInformation(koaRequestInformationExtractor( From abfc76544041d5af4e4af88589aea556ee39dade Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Tue, 9 Apr 2019 12:42:26 -0700 Subject: [PATCH 241/527] Release v0.6.2 (#338) --- handwritten/error-reporting/CHANGELOG.md | 22 ++++++++++++++++++++++ handwritten/error-reporting/package.json | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/CHANGELOG.md b/handwritten/error-reporting/CHANGELOG.md index 2f040ad0b96..23f3cc9eddb 100644 --- a/handwritten/error-reporting/CHANGELOG.md +++ b/handwritten/error-reporting/CHANGELOG.md @@ -4,6 +4,28 @@ [1]: https://www.npmjs.com/package/@google-cloud/error-reporting?activeTab=versions +## v0.6.2 + +04-09-2019 11:14 PDT + +### Bug Fixes + +- fix: in Koa2 interface await `next` as a function ([#336](https://github.com/googleapis/nodejs-error-reporting/pull/336)) + +### CI/CD + +- build: use per-repo publish token ([#327](https://github.com/googleapis/nodejs-error-reporting/pull/327)) +- chore: publish to npm using wombat ([#328](https://github.com/googleapis/nodejs-error-reporting/pull/328)) + +### Dependencies + +- fix(deps): update dependency @google-cloud/common to ^0.32.0 ([#334](https://github.com/googleapis/nodejs-error-reporting/pull/334)) +- chore(deps): update dependency typescript to ~3.4.0 + +### Internal / Testing Changes + +- chore: test Restify 18 in the install tests ([#324](https://github.com/googleapis/nodejs-error-reporting/pull/324)) + ## v0.6.1 03-13-2019 16:21 PDT diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 4d52741c474..4be157bb345 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/error-reporting", "description": "Stackdriver Error Reporting Client Library for Node.js", - "version": "0.6.1", + "version": "0.6.2", "license": "Apache-2.0", "author": "Google Inc.", "engines": { From d850a1c3c973b9c4edd13212030ad84d399b2847 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Thu, 11 Apr 2019 11:01:05 -0700 Subject: [PATCH 242/527] fix: update Koa2 plugin to await next (#339) PR #336 fixed the Koa plugin, but didn't fix the Koa2 plugin. Fixes: #335 --- handwritten/error-reporting/src/index.ts | 2 +- handwritten/error-reporting/src/interfaces/koa2.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/src/index.ts b/handwritten/error-reporting/src/index.ts index e8a00612255..aa0dbfd44e3 100644 --- a/handwritten/error-reporting/src/index.ts +++ b/handwritten/error-reporting/src/index.ts @@ -120,7 +120,7 @@ export class ErrorReporting { // tslint:disable-next-line:no-any koa!: (context: any, next: {}) => IterableIterator<{}>; // tslint:disable-next-line:no-any - koa2!: (context: any, next: {}) => Promise; + koa2!: (context: any, next: Function) => Promise; constructor(initConfiguration?: ConfigurationOptions) { if (!(this instanceof ErrorReporting)) { diff --git a/handwritten/error-reporting/src/interfaces/koa2.ts b/handwritten/error-reporting/src/interfaces/koa2.ts index 44f71c71766..d143ec89067 100644 --- a/handwritten/error-reporting/src/interfaces/koa2.ts +++ b/handwritten/error-reporting/src/interfaces/koa2.ts @@ -25,7 +25,7 @@ import {koaRequestInformationExtractor} from '../request-extractors/koa'; type KoaContext = { request: Request; response: Response }; -type KoaNext = {}; +type KoaNext = Function; /** * The koaErrorHandler should be placed at the beginning of the koa middleware @@ -54,7 +54,7 @@ export function koa2ErrorHandler( const svc = config.getServiceContext(); try { - await next; + await next(); } catch (err) { const em = new ErrorMessage() .consumeRequestInformation(koaRequestInformationExtractor( From fbde2fab202bf9385ad1f7fdbc67aa3bb5cf1072 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Thu, 11 Apr 2019 13:02:37 -0700 Subject: [PATCH 243/527] Release v0.6.3 (#340) --- handwritten/error-reporting/CHANGELOG.md | 8 ++++++++ handwritten/error-reporting/package.json | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/CHANGELOG.md b/handwritten/error-reporting/CHANGELOG.md index 23f3cc9eddb..782067cd3ae 100644 --- a/handwritten/error-reporting/CHANGELOG.md +++ b/handwritten/error-reporting/CHANGELOG.md @@ -4,6 +4,14 @@ [1]: https://www.npmjs.com/package/@google-cloud/error-reporting?activeTab=versions +## v0.6.3 + +04-11-2019 11:37 PDT + +### Bug Fixes + +- fix: update Koa2 plugin to await next ([#339](https://github.com/googleapis/nodejs-error-reporting/pull/339)) + ## v0.6.2 04-09-2019 11:14 PDT diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 4be157bb345..2a439aee147 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/error-reporting", "description": "Stackdriver Error Reporting Client Library for Node.js", - "version": "0.6.2", + "version": "0.6.3", "license": "Apache-2.0", "author": "Google Inc.", "engines": { From ed48b79b4da7aa579a0cf4a24317f2515942d878 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Tue, 16 Apr 2019 07:13:52 -0700 Subject: [PATCH 244/527] chore(deps): update dependency nyc to v14 chore(deps): update dependency nyc to v14 This PR contains the following updates: | Package | Type | Update | Change | References | |---|---|---|---|---| | nyc | devDependencies | major | [`^13.0.1` -> `^14.0.0`](https://diff.intrinsic.com/nyc/13.3.0/14.0.0) | [source](https://togithub.com/istanbuljs/nyc) | --- ### Release Notes
istanbuljs/nyc ### [`v14.0.0`](https://togithub.com/istanbuljs/nyc/blob/master/CHANGELOG.md#​1400httpsgithubcomistanbuljsnyccomparev1330v1400-2019-04-15) [Compare Source](https://togithub.com/istanbuljs/nyc/compare/v13.3.0...v14.0.0) ##### Bug Fixes - Add `cwd` option to instrument command ([#​1024](https://togithub.com/istanbuljs/nyc/issues/1024)) ([051d95a](https://togithub.com/istanbuljs/nyc/commit/051d95a)) - Add config values to hash salt ([#​988](https://togithub.com/istanbuljs/nyc/issues/988)) ([7ac325d](https://togithub.com/istanbuljs/nyc/commit/7ac325d)), closes [#​522](https://togithub.com/istanbuljs/nyc/issues/522) - Exclude negated not working with '--all' switch ([#​977](https://togithub.com/istanbuljs/nyc/issues/977)) ([91de23c](https://togithub.com/istanbuljs/nyc/commit/91de23c)) - Make --all work for transpiled code ([#​1047](https://togithub.com/istanbuljs/nyc/issues/1047)) ([18e04ba](https://togithub.com/istanbuljs/nyc/commit/18e04ba)) - Resolve absolute paths in nyc instrument ([#​1012](https://togithub.com/istanbuljs/nyc/issues/1012)) ([3cb1861](https://togithub.com/istanbuljs/nyc/commit/3cb1861)), closes [#​1014](https://togithub.com/istanbuljs/nyc/issues/1014) - Set processinfo pid/ppid to actual numbers ([#​1057](https://togithub.com/istanbuljs/nyc/issues/1057)) ([32f75b0](https://togithub.com/istanbuljs/nyc/commit/32f75b0)) - Use a single instance of nyc for all actions of main command. ([#​1059](https://togithub.com/istanbuljs/nyc/issues/1059)) ([b909575](https://togithub.com/istanbuljs/nyc/commit/b909575)) ##### Features - Add `delete` option to instrument command ([#​1005](https://togithub.com/istanbuljs/nyc/issues/1005)) ([d6db551](https://togithub.com/istanbuljs/nyc/commit/d6db551)) - Add `include` and `exclude` options to instrument command ([#​1007](https://togithub.com/istanbuljs/nyc/issues/1007)) ([8da097e](https://togithub.com/istanbuljs/nyc/commit/8da097e)) - Add processinfo index, add externalId ([#​1055](https://togithub.com/istanbuljs/nyc/issues/1055)) ([8dcf180](https://togithub.com/istanbuljs/nyc/commit/8dcf180)) - Add support for nyc.config.js ([#​1019](https://togithub.com/istanbuljs/nyc/issues/1019)) ([3b203c7](https://togithub.com/istanbuljs/nyc/commit/3b203c7)) - Add support to exclude files on coverage report generation ([#​982](https://togithub.com/istanbuljs/nyc/issues/982)) ([509c6aa](https://togithub.com/istanbuljs/nyc/commit/509c6aa)) - Add test-exclude args to check-coverage and report subcommands. ([0fc217e](https://togithub.com/istanbuljs/nyc/commit/0fc217e)) - Always build the processinfo temp dir ([#​1061](https://togithub.com/istanbuljs/nyc/issues/1061)) ([c213469](https://togithub.com/istanbuljs/nyc/commit/c213469)) - Enable `es-modules` option for nyc instrument command ([#​1006](https://togithub.com/istanbuljs/nyc/issues/1006)) ([596b120](https://togithub.com/istanbuljs/nyc/commit/596b120)) - Fix excludeAfterRemap functionality. ([36bcc0b](https://togithub.com/istanbuljs/nyc/commit/36bcc0b)) - Implement `nyc instrument --complete-copy` ([#​1056](https://togithub.com/istanbuljs/nyc/issues/1056)) ([2eb13c6](https://togithub.com/istanbuljs/nyc/commit/2eb13c6)) - Remove bundling ([#​1017](https://togithub.com/istanbuljs/nyc/issues/1017)) ([b25492a](https://togithub.com/istanbuljs/nyc/commit/b25492a)) - Support turning off node_modules default exclude via `exclude-node-modules` option ([#​912](https://togithub.com/istanbuljs/nyc/issues/912)) ([b7e16cd](https://togithub.com/istanbuljs/nyc/commit/b7e16cd)) - Add support for `--exclude-node-modules` to subcommands. ([#​1053](https://togithub.com/istanbuljs/nyc/issues/1053)) ([e597c46](https://togithub.com/istanbuljs/nyc/commit/e597c46)) ##### BREAKING CHANGES - The `--exclude-after-remap` option is now functional and enabled by default. This causes the `include` and `exclude` lists to be processed after using source maps to determine the original filename of sources. - Add a file named 'index.json' to the .nyc_output/processinfo directory, which has a different format from the other files in this dir. - Change the data type of the pid/ppid fields in processinfo files - `nyc instrument` now honors `include` and `exclude` settings, potentially resulting in some files that were previously instrumented being ignored. - The `plugins` option has been renamed to `parser-plugins`. - The logic involving include/exclude processing has changed. Results should be verified to ensure all desired sources have coverage data. - `nyc instrument` now enables the `--es-module` option by default. This can cause failures to instrument scripts which violate `'use strict'` rules.
--- ### Renovate configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is stale, or if you modify the PR title to begin with "`rebase!`". :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://togithub.com/marketplace/renovate). View repository job log [here](https://renovatebot.com/dashboard#googleapis/nodejs-error-reporting). #341 automerged by dpebot --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 2a439aee147..083df4e3e27 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -102,7 +102,7 @@ "lodash.without": "^4.4.0", "mocha": "^6.0.0", "nock": "^10.0.0", - "nyc": "^13.0.1", + "nyc": "^14.0.0", "post-install-check": "0.0.1", "power-assert": "^1.5.0", "prettier": "^1.12.1", From 8f663fa60aec303a4d70821a31851366c76c5e7a Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Mon, 29 Apr 2019 15:03:27 -0700 Subject: [PATCH 245/527] update to .nycrc with --all enabled (#344) --- handwritten/error-reporting/.nycrc | 40 +++++++++++++----------------- 1 file changed, 17 insertions(+), 23 deletions(-) diff --git a/handwritten/error-reporting/.nycrc b/handwritten/error-reporting/.nycrc index 88b001cb587..bfe4073a6ab 100644 --- a/handwritten/error-reporting/.nycrc +++ b/handwritten/error-reporting/.nycrc @@ -1,28 +1,22 @@ { "report-dir": "./.coverage", - "reporter": "lcov", + "reporter": ["text", "lcov"], "exclude": [ - "src/*{/*,/**/*}.js", - "src/*/v*/*.js", - "test/**/*.js", - "build/test" + "**/*-test", + "**/.coverage", + "**/apis", + "**/benchmark", + "**/docs", + "**/samples", + "**/scripts", + "**/src/**/v*/**/*.js", + "**/test", + ".jsdoc.js", + "**/.jsdoc.js", + "karma.conf.js", + "webpack-tests.config.js", + "webpack.config.js" ], - "watermarks": { - "branches": [ - 95, - 100 - ], - "functions": [ - 95, - 100 - ], - "lines": [ - 95, - 100 - ], - "statements": [ - 95, - 100 - ] - } + "exclude-after-remap": false, + "all": true } From cdaf66ca1ab28dd9a0bcb54f3208ac4a077df0e9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Tue, 30 Apr 2019 11:10:21 -0700 Subject: [PATCH 246/527] chore(deps): update dependency @types/nock to v10 (#343) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 083df4e3e27..59626427138 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -69,7 +69,7 @@ "@types/lodash.random": "^3.2.3", "@types/lodash.without": "^4.4.3", "@types/mocha": "^5.2.0", - "@types/nock": "^9.1.3", + "@types/nock": "^10.0.0", "@types/node": "^10.1.1", "@types/once": "^1.4.0", "@types/proxyquire": "^1.3.28", From 7022871172914536a94ba8e9db51780ae951222c Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Tue, 30 Apr 2019 12:06:31 -0700 Subject: [PATCH 247/527] chore(deps): remove unused broken link checker dependency (#345) --- handwritten/error-reporting/package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 59626427138..a00b42ae631 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -78,7 +78,6 @@ "@types/uuid": "^3.4.4", "body-parser": "^1.18.3", "boom": "^7.2.0", - "broken-link-checker-local": "^0.2.0", "codecov": "^3.0.2", "cpy-cli": "^2.0.0", "delay": "^4.1.0", From 72584c928427dc0bb9e868757fa77ac6dccd47ab Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Wed, 1 May 2019 21:42:33 -0700 Subject: [PATCH 248/527] docs(samples): modernize samples, sample tests (#346) --- handwritten/error-reporting/.gitignore | 1 + handwritten/error-reporting/.repo-metadata.json | 12 ++++++++++++ handwritten/error-reporting/package.json | 6 ++---- handwritten/error-reporting/synth.metadata | 4 ++-- handwritten/error-reporting/synth.py | 2 +- 5 files changed, 18 insertions(+), 7 deletions(-) create mode 100644 handwritten/error-reporting/.repo-metadata.json diff --git a/handwritten/error-reporting/.gitignore b/handwritten/error-reporting/.gitignore index 15a1347d47e..6f009f34ec3 100644 --- a/handwritten/error-reporting/.gitignore +++ b/handwritten/error-reporting/.gitignore @@ -12,3 +12,4 @@ build .vscode package-lock.json key.json +__pycache__ diff --git a/handwritten/error-reporting/.repo-metadata.json b/handwritten/error-reporting/.repo-metadata.json new file mode 100644 index 00000000000..0c77ccbff34 --- /dev/null +++ b/handwritten/error-reporting/.repo-metadata.json @@ -0,0 +1,12 @@ +{ + "name": "error_reporting", + "name_pretty": "Stackdriver Error Reporting", + "product_documentation": "https://cloud.google.com/error-reporting", + "client_documentation": "https://cloud.google.com/nodejs/docs/reference/error-reporting/latest/", + "issue_tracker": "https://issuetracker.google.com/savedsearches/559780", + "release_level": "beta", + "language": "nodejs", + "repo": "googleapis/nodejs-error-reporting", + "distribution_name": "@google-cloud/error-reporting", + "api_id": "clouderrorreporting.googleapis.com" +} diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index a00b42ae631..2cd840c7b1d 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -21,8 +21,7 @@ ], "scripts": { "docs": "compodoc src/", - "generate-scaffolding": "node node_modules/.bin/repo-tools generate all && node node_modules/.bin/repo-tools generate lib_samples_readme -l samples/ --config ../.cloud-repo-tools.json", - "lint": "eslint samples/ && gts check && jsgl --local .", + "lint": "eslint '**/*.js' && gts check && jsgl --local .", "presystem-test": "npm run compile", "system-test": "nyc --exclude=\"error-message.js\" mocha build/system-test/**/*.js", "cover": "nyc --exclude=\"fuzzer.js\" --reporter=lcov mocha build/test/unit/*.js build/test/unit/**/*.js && nyc report", @@ -35,7 +34,7 @@ "clean": "gts clean", "compile": "tsc -p .", "postcompile": "cpy 'utils/**/*.*' build --parents && cpy 'test/**/*.*' build --parents", - "fix": "gts fix", + "fix": "gts fix && eslint --fix '**/*.js'", "prepare": "npm run compile", "pretest-only": "npm run compile", "posttest": "npm run check && npm run license-check", @@ -52,7 +51,6 @@ }, "devDependencies": { "@compodoc/compodoc": "^1.1.7", - "@google-cloud/nodejs-repo-tools": "^3.0.0", "@types/boom": "^7.2.0", "@types/console-log-level": "^1.4.0", "@types/express": "^4.11.1", diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index d2149a73b2d..70c14c543b6 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -1,11 +1,11 @@ { - "updateTime": "2019-03-08T00:45:38.322552Z", + "updateTime": "2019-05-02T02:19:21.169437Z", "sources": [ { "template": { "name": "node_library", "origin": "synthtool.gcp", - "version": "2019.1.16" + "version": "2019.4.10" } } ] diff --git a/handwritten/error-reporting/synth.py b/handwritten/error-reporting/synth.py index be345236f2d..ef9de56efb5 100644 --- a/handwritten/error-reporting/synth.py +++ b/handwritten/error-reporting/synth.py @@ -19,4 +19,4 @@ logging.basicConfig(level=logging.DEBUG) common_templates = gcp.CommonTemplates() templates = common_templates.node_library() -s.copy(templates) +s.copy(templates, excludes=["README.md"]) From 0087a631cf782d57cbd8119894d63d3ac86c8273 Mon Sep 17 00:00:00 2001 From: Alexander Fenster Date: Thu, 2 May 2019 09:58:08 -0700 Subject: [PATCH 249/527] chore: removing node6 CI (#348) --- .../.kokoro/continuous/node6/common.cfg | 24 ------------------- .../.kokoro/continuous/node6/test.cfg | 0 .../.kokoro/presubmit/node6/common.cfg | 24 ------------------- .../.kokoro/presubmit/node6/test.cfg | 0 4 files changed, 48 deletions(-) delete mode 100644 handwritten/error-reporting/.kokoro/continuous/node6/common.cfg delete mode 100644 handwritten/error-reporting/.kokoro/continuous/node6/test.cfg delete mode 100644 handwritten/error-reporting/.kokoro/presubmit/node6/common.cfg delete mode 100644 handwritten/error-reporting/.kokoro/presubmit/node6/test.cfg diff --git a/handwritten/error-reporting/.kokoro/continuous/node6/common.cfg b/handwritten/error-reporting/.kokoro/continuous/node6/common.cfg deleted file mode 100644 index c13f0197a0c..00000000000 --- a/handwritten/error-reporting/.kokoro/continuous/node6/common.cfg +++ /dev/null @@ -1,24 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:6-user" -} -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-error-reporting/.kokoro/test.sh" -} diff --git a/handwritten/error-reporting/.kokoro/continuous/node6/test.cfg b/handwritten/error-reporting/.kokoro/continuous/node6/test.cfg deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/handwritten/error-reporting/.kokoro/presubmit/node6/common.cfg b/handwritten/error-reporting/.kokoro/presubmit/node6/common.cfg deleted file mode 100644 index c13f0197a0c..00000000000 --- a/handwritten/error-reporting/.kokoro/presubmit/node6/common.cfg +++ /dev/null @@ -1,24 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:6-user" -} -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-error-reporting/.kokoro/test.sh" -} diff --git a/handwritten/error-reporting/.kokoro/presubmit/node6/test.cfg b/handwritten/error-reporting/.kokoro/presubmit/node6/test.cfg deleted file mode 100644 index e69de29bb2d..00000000000 From 4ba6c0f7d0fda952f673ce7b509ae128c07634a2 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Thu, 2 May 2019 11:29:25 -0700 Subject: [PATCH 250/527] build!: upgrade engines field to >=8.10.0 (#349) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 2cd840c7b1d..2039b2806fb 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -5,7 +5,7 @@ "license": "Apache-2.0", "author": "Google Inc.", "engines": { - "node": ">=6.0" + "node": ">=8.10.0" }, "repository": "googleapis/nodejs-error-reporting", "main": "./build/src/index.js", From 2e1150e4fad4bc79ba66d41b515e7b88645cbd59 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Fri, 3 May 2019 08:20:09 -0700 Subject: [PATCH 251/527] chore(deps): update dependency eslint-plugin-node to v9 (#352) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 2039b2806fb..3730b900c2b 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -81,7 +81,7 @@ "delay": "^4.1.0", "eslint": "^5.0.0", "eslint-config-prettier": "^4.0.0", - "eslint-plugin-node": "^8.0.0", + "eslint-plugin-node": "^9.0.0", "eslint-plugin-prettier": "^3.0.0", "express": "^4.16.3", "gts": "^0.9.0", From 4e49c0b358121483fe1bc045ebb87a33526f2c63 Mon Sep 17 00:00:00 2001 From: Alexander Fenster Date: Fri, 3 May 2019 09:19:46 -0700 Subject: [PATCH 252/527] chore: do not run CI on grpc-js (#351) --- .../.kokoro/continuous/node10/system-test-grpcjs.cfg | 12 ------------ .../.kokoro/presubmit/node10/system-test-grpcjs.cfg | 12 ------------ 2 files changed, 24 deletions(-) delete mode 100644 handwritten/error-reporting/.kokoro/continuous/node10/system-test-grpcjs.cfg delete mode 100644 handwritten/error-reporting/.kokoro/presubmit/node10/system-test-grpcjs.cfg diff --git a/handwritten/error-reporting/.kokoro/continuous/node10/system-test-grpcjs.cfg b/handwritten/error-reporting/.kokoro/continuous/node10/system-test-grpcjs.cfg deleted file mode 100644 index b94fb9bb487..00000000000 --- a/handwritten/error-reporting/.kokoro/continuous/node10/system-test-grpcjs.cfg +++ /dev/null @@ -1,12 +0,0 @@ -# Download resources for system tests (service account key, etc.) -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-error-reporting/.kokoro/system-test.sh" -} - -env_vars: { - key: "GOOGLE_CLOUD_USE_GRPC_JS" - value: "1" -} diff --git a/handwritten/error-reporting/.kokoro/presubmit/node10/system-test-grpcjs.cfg b/handwritten/error-reporting/.kokoro/presubmit/node10/system-test-grpcjs.cfg deleted file mode 100644 index b94fb9bb487..00000000000 --- a/handwritten/error-reporting/.kokoro/presubmit/node10/system-test-grpcjs.cfg +++ /dev/null @@ -1,12 +0,0 @@ -# Download resources for system tests (service account key, etc.) -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-error-reporting/.kokoro/system-test.sh" -} - -env_vars: { - key: "GOOGLE_CLOUD_USE_GRPC_JS" - value: "1" -} From fb28e08ab46f0fbebabdf3deb57ef21b662f1d36 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Tue, 7 May 2019 22:54:23 -0700 Subject: [PATCH 253/527] build: patch Windows container, fixing Node 10 (#354) --- handwritten/error-reporting/.kokoro/test.bat | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/.kokoro/test.bat b/handwritten/error-reporting/.kokoro/test.bat index 767320757e0..fddff757050 100644 --- a/handwritten/error-reporting/.kokoro/test.bat +++ b/handwritten/error-reporting/.kokoro/test.bat @@ -17,7 +17,15 @@ cd /d %~dp0 cd .. -call npm install -g npm@latest || goto :error +@rem The image we're currently running has a broken version of Node.js enabled +@rem by nvm (v10.15.3), which has no npm bin. This hack uses the functional +@rem Node v8.9.1 to install npm@latest, it then uses this version of npm to +@rem install npm for v10.15.3. +call nvm use v8.9.1 || goto :error +call node C:\Users\kbuilder\AppData\Roaming\nvm-ps\versions\v8.9.1\node_modules\npm-bootstrap\bin\npm-cli.js i npm -g || goto :error +call nvm use v10.15.3 || goto :error +call node C:\Users\kbuilder\AppData\Roaming\nvm-ps\versions\v8.9.1\node_modules\npm\bin\npm-cli.js i npm -g || goto :error + call npm install || goto :error call npm run test || goto :error From b79869f05e1997f55a3041bdd109ca88b6223ea4 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Tue, 7 May 2019 23:00:15 -0700 Subject: [PATCH 254/527] build: allow Node 10 on presubmit to push to codecov (#356) --- .../error-reporting/.kokoro/presubmit/node10/test.cfg | 9 +++++++++ .../error-reporting/.kokoro/presubmit/node8/test.cfg | 9 --------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/handwritten/error-reporting/.kokoro/presubmit/node10/test.cfg b/handwritten/error-reporting/.kokoro/presubmit/node10/test.cfg index e69de29bb2d..468b8c7197a 100644 --- a/handwritten/error-reporting/.kokoro/presubmit/node10/test.cfg +++ b/handwritten/error-reporting/.kokoro/presubmit/node10/test.cfg @@ -0,0 +1,9 @@ +# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "dpebot_codecov_token" + } + } +} diff --git a/handwritten/error-reporting/.kokoro/presubmit/node8/test.cfg b/handwritten/error-reporting/.kokoro/presubmit/node8/test.cfg index 468b8c7197a..e69de29bb2d 100644 --- a/handwritten/error-reporting/.kokoro/presubmit/node8/test.cfg +++ b/handwritten/error-reporting/.kokoro/presubmit/node8/test.cfg @@ -1,9 +0,0 @@ -# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "dpebot_codecov_token" - } - } -} From 276f0c0fdc21da30264332b189791c647cd67543 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Tue, 7 May 2019 23:00:40 -0700 Subject: [PATCH 255/527] build: allow Node 10 to push to codecov (#355) --- .../error-reporting/.kokoro/continuous/node10/test.cfg | 9 +++++++++ .../error-reporting/.kokoro/continuous/node8/test.cfg | 9 --------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg b/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg index e69de29bb2d..468b8c7197a 100644 --- a/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg +++ b/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg @@ -0,0 +1,9 @@ +# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "dpebot_codecov_token" + } + } +} diff --git a/handwritten/error-reporting/.kokoro/continuous/node8/test.cfg b/handwritten/error-reporting/.kokoro/continuous/node8/test.cfg index 468b8c7197a..e69de29bb2d 100644 --- a/handwritten/error-reporting/.kokoro/continuous/node8/test.cfg +++ b/handwritten/error-reporting/.kokoro/continuous/node8/test.cfg @@ -1,9 +0,0 @@ -# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "dpebot_codecov_token" - } - } -} From 30b6732251f450757a76235ba742e52de9f19e97 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Thu, 9 May 2019 19:43:26 -0700 Subject: [PATCH 256/527] chore(deps): upgrade to gts 1.0.0 (#350) --- handwritten/error-reporting/README.md | 2 +- handwritten/error-reporting/package.json | 2 +- .../error-reporting/src/build-stack-trace.ts | 23 +- .../src/classes/error-message.ts | 42 +- .../error-reporting/src/configuration.ts | 92 ++- .../src/google-apis/auth-client.ts | 202 +++-- handwritten/error-reporting/src/index.ts | 34 +- .../error-reporting/src/interfaces/express.ts | 31 +- .../error-reporting/src/interfaces/hapi.ts | 112 +-- .../error-reporting/src/interfaces/koa.ts | 11 +- .../error-reporting/src/interfaces/koa2.ts | 18 +- .../error-reporting/src/interfaces/manual.ts | 151 ++-- .../src/interfaces/message-builder.ts | 9 +- .../error-reporting/src/interfaces/restify.ts | 95 ++- handwritten/error-reporting/src/logger.ts | 20 +- .../src/populate-error-message.ts | 14 +- .../src/request-extractors/express.ts | 23 +- .../src/request-extractors/hapi.ts | 39 +- .../src/request-extractors/koa.ts | 34 +- .../src/request-extractors/manual.ts | 43 +- .../system-test/error-reporting.ts | 777 ++++++++++-------- .../system-test/test-install.ts | 63 +- .../test/fixtures/configuration.ts | 10 +- .../test-servers/express_scaffold_server.ts | 63 +- .../test/test-servers/hapi_scaffold_server.ts | 2 +- .../test-servers/manual_scaffold_server.ts | 9 +- .../test/unit/classes/error-message.ts | 621 ++++++++------ .../test/unit/configuration.ts | 256 +++--- .../test/unit/google-apis/auth-client.ts | 224 ++--- .../test/unit/interfaces/express.ts | 53 +- .../test/unit/interfaces/hapi.ts | 424 +++++----- .../test/unit/interfaces/manual.ts | 161 ++-- .../test/unit/interfaces/restify.ts | 38 +- .../error-reporting/test/unit/logger.ts | 40 +- .../test/unit/populate-error-message.ts | 416 +++++----- .../test/unit/request-extractors/express.ts | 68 +- .../test/unit/request-extractors/hapi.ts | 31 +- .../test/unit/request-extractors/koa.ts | 15 +- .../test/unit/request-extractors/manual.ts | 94 ++- .../test/unit/service-configuration.ts | 413 ++++++---- handwritten/error-reporting/test/util.ts | 7 +- .../utils/errors-api-transport.ts | 20 +- handwritten/error-reporting/utils/fuzzer.ts | 114 ++- 43 files changed, 2817 insertions(+), 2099 deletions(-) diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 8c1620352f9..498dd7693b0 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -112,7 +112,7 @@ has instructions for running the samples. | Sample | Source Code | | --------------------------- | --------------------------------- | -| Examples | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/master/samples/snippets.js) | +| Examples | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/master/samples/quickstart.js) | ## Configuration diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 3730b900c2b..273e3ac5f7e 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -84,7 +84,7 @@ "eslint-plugin-node": "^9.0.0", "eslint-plugin-prettier": "^3.0.0", "express": "^4.16.3", - "gts": "^0.9.0", + "gts": "^1.0.0", "hapi": "^18.0.0", "intelli-espower-loader": "^1.0.1", "js-green-licenses": "^0.5.0", diff --git a/handwritten/error-reporting/src/build-stack-trace.ts b/handwritten/error-reporting/src/build-stack-trace.ts index 63bb24d6517..5873ef990e9 100644 --- a/handwritten/error-reporting/src/build-stack-trace.ts +++ b/handwritten/error-reporting/src/build-stack-trace.ts @@ -25,21 +25,22 @@ const SRC_ROOT = __dirname; * @returns {String} - A string representation of the stack trace at the point * where this method was invoked. */ -export function buildStackTrace(message?: string|null) { +export function buildStackTrace(message?: string | null) { const target = {}; // Build a stack trace without the frames associated with `buildStackTrace`. // The stack is located at `target.stack`. Error.captureStackTrace(target, buildStackTrace); const prefix = message ? message + '\n' : ''; return ( - prefix + - (target as {stack: string}) - .stack.split('\n') - .slice(1) - .filter((line: string) => { - // Filter out all frames that are specific to the error-reporting - // library - return !line || line.indexOf(SRC_ROOT) === -1; - }) - .join('\n')); + prefix + + (target as {stack: string}).stack + .split('\n') + .slice(1) + .filter((line: string) => { + // Filter out all frames that are specific to the error-reporting + // library + return !line || line.indexOf(SRC_ROOT) === -1; + }) + .join('\n') + ); } diff --git a/handwritten/error-reporting/src/classes/error-message.ts b/handwritten/error-reporting/src/classes/error-message.ts index 3e97fb6741e..886cd11d719 100644 --- a/handwritten/error-reporting/src/classes/error-message.ts +++ b/handwritten/error-reporting/src/classes/error-message.ts @@ -22,12 +22,15 @@ import {RequestInformationContainer} from './request-information-container'; export interface Context { httpRequest: { - method: string; url: string; userAgent: string; referrer: string; + method: string; + url: string; + userAgent: string; + referrer: string; responseStatusCode: number; remoteIp: string; }; user: string; - reportLocation: {filePath: string; lineNumber: number; functionName: string;}; + reportLocation: {filePath: string; lineNumber: number; functionName: string}; } export class ErrorMessage { @@ -172,8 +175,9 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setUserAgent(userAgent?: string) { - this.context.httpRequest.userAgent = - (is.string(userAgent) ? userAgent : '')!; + this.context.httpRequest.userAgent = (is.string(userAgent) + ? userAgent + : '')!; return this; } @@ -197,8 +201,9 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setResponseStatusCode(responseStatusCode?: number) { - this.context.httpRequest.responseStatusCode = - (is.number(responseStatusCode) ? responseStatusCode : 0)!; + this.context.httpRequest.responseStatusCode = (is.number(responseStatusCode) + ? responseStatusCode + : 0)!; return this; } @@ -234,8 +239,9 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setFilePath(filePath?: string) { - this.context.reportLocation.filePath = - (is.string(filePath) ? filePath : '')!; + this.context.reportLocation.filePath = (is.string(filePath) + ? filePath + : '')!; return this; } @@ -247,8 +253,9 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setLineNumber(lineNumber?: number) { - this.context.reportLocation.lineNumber = - (is.number(lineNumber) ? lineNumber : 0)!; + this.context.reportLocation.lineNumber = (is.number(lineNumber) + ? lineNumber + : 0)!; return this; } @@ -260,8 +267,9 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setFunctionName(functionName?: string) { - this.context.reportLocation.functionName = - (is.string(functionName) ? functionName : '')!; + this.context.reportLocation.functionName = (is.string(functionName) + ? functionName + : '')!; return this; } @@ -280,11 +288,11 @@ export class ErrorMessage { } this.setHttpMethod(requestInformation.method) - .setUrl(requestInformation.url) - .setUserAgent(requestInformation.userAgent) - .setReferrer(requestInformation.referrer) - .setResponseStatusCode(requestInformation.statusCode) - .setRemoteIp(requestInformation.remoteAddress); + .setUrl(requestInformation.url) + .setUserAgent(requestInformation.userAgent) + .setReferrer(requestInformation.referrer) + .setResponseStatusCode(requestInformation.statusCode) + .setRemoteIp(requestInformation.remoteAddress); return this; } diff --git a/handwritten/error-reporting/src/configuration.ts b/handwritten/error-reporting/src/configuration.ts index f750c1611b2..65faf7fbd23 100644 --- a/handwritten/error-reporting/src/configuration.ts +++ b/handwritten/error-reporting/src/configuration.ts @@ -25,7 +25,14 @@ const env = process.env; // TypeScript users of the error reporting library would // need to install @types/console-log-level to compile their // code. As a result, the interface is explicitly specified instead. -export type LogLevel = 'error'|'trace'|'debug'|'info'|'warn'|'fatal'|undefined; +export type LogLevel = + | 'error' + | 'trace' + | 'debug' + | 'info' + | 'warn' + | 'fatal' + | undefined; export interface Logger { error(...args: Array<{}>): void; trace(...args: Array<{}>): void; @@ -35,14 +42,14 @@ export interface Logger { fatal(...args: Array<{}>): void; } -export type ReportMode = 'production'|'always'|'never'; +export type ReportMode = 'production' | 'always' | 'never'; export interface ConfigurationOptions { projectId?: string; keyFilename?: string; - logLevel?: string|number; + logLevel?: string | number; key?: string; - serviceContext?: {service?: string; version?: string;}; + serviceContext?: {service?: string; version?: string}; ignoreEnvironmentCheck?: boolean; reportMode?: ReportMode; credentials?: {}; @@ -78,15 +85,15 @@ export interface ServiceContext { export class Configuration { _logger: Logger; _reportMode: ReportMode; - _projectId: string|null; - _key: string|null; - keyFilename: string|null; - credentials: {}|null; + _projectId: string | null; + _key: string | null; + keyFilename: string | null; + credentials: {} | null; _serviceContext: ServiceContext; _reportUnhandledRejections: boolean; _givenConfiguration: ConfigurationOptions; - constructor(givenConfig: ConfigurationOptions|undefined, logger: Logger) { + constructor(givenConfig: ConfigurationOptions | undefined, logger: Logger) { /** * The _logger property caches the logger instance created at the top-level * for configuration logging purposes. @@ -232,15 +239,13 @@ export class Configuration { if (is.object(this._givenConfiguration.serviceContext)) { if (is.string(this._givenConfiguration.serviceContext!.service)) { - this._serviceContext.service = - this._givenConfiguration.serviceContext!.service!; + this._serviceContext.service = this._givenConfiguration.serviceContext!.service!; } else if (has(this._givenConfiguration.serviceContext, 'service')) { throw new Error('config.serviceContext.service must be a string'); } if (is.string(this._givenConfiguration.serviceContext!.version)) { - this._serviceContext.version = - this._givenConfiguration.serviceContext!.version; + this._serviceContext.version = this._givenConfiguration.serviceContext!.version; } else if (has(this._givenConfiguration.serviceContext, 'version')) { throw new Error('config.serviceContext.version must be a string'); } @@ -248,8 +253,7 @@ export class Configuration { } _determineReportMode() { if (this._givenConfiguration.reportMode) { - this._reportMode = - this._givenConfiguration.reportMode.toLowerCase() as ReportMode; + this._reportMode = this._givenConfiguration.reportMode.toLowerCase() as ReportMode; } } /** @@ -269,36 +273,43 @@ export class Configuration { let isReportModeValid = true; if (has(this._givenConfiguration, 'reportMode')) { const reportMode = this._givenConfiguration.reportMode; - isReportModeValid = is.string(reportMode) && - (reportMode === 'production' || reportMode === 'always' || - reportMode === 'never'); + isReportModeValid = + is.string(reportMode) && + (reportMode === 'production' || + reportMode === 'always' || + reportMode === 'never'); } if (!isReportModeValid) { throw new Error( - 'config.reportMode must a string that is one ' + - 'of "production", "always", or "never".'); + 'config.reportMode must a string that is one ' + + 'of "production", "always", or "never".' + ); } const hasEnvCheck = has(this._givenConfiguration, 'ignoreEnvironmentCheck'); const hasReportMode = has(this._givenConfiguration, 'reportMode'); if (hasEnvCheck) { this._logger.warn( - 'The "ignoreEnvironmentCheck" config option is deprecated. ' + - 'Use the "reportMode" config option instead.'); + 'The "ignoreEnvironmentCheck" config option is deprecated. ' + + 'Use the "reportMode" config option instead.' + ); } if (hasEnvCheck && hasReportMode) { - this._logger.warn([ - 'Both the "ignoreEnvironmentCheck" and "reportMode" configuration options', - 'have been specified. The "reportMode" option will take precedence.' - ].join(' ')); + this._logger.warn( + [ + 'Both the "ignoreEnvironmentCheck" and "reportMode" configuration options', + 'have been specified. The "reportMode" option will take precedence.', + ].join(' ') + ); this._determineReportMode(); } else if (hasEnvCheck) { if (this._givenConfiguration.ignoreEnvironmentCheck === true) { this._reportMode = 'always'; } else if ( - has(this._givenConfiguration, 'ignoreEnvironmentCheck') && - !is.boolean(this._givenConfiguration.ignoreEnvironmentCheck)) { + has(this._givenConfiguration, 'ignoreEnvironmentCheck') && + !is.boolean(this._givenConfiguration.ignoreEnvironmentCheck) + ) { throw new Error('config.ignoreEnvironmentCheck must be a boolean'); } else { this._reportMode = 'production'; @@ -308,12 +319,14 @@ export class Configuration { } if (this.isReportingEnabled() && !this.getShouldReportErrorsToAPI()) { - this._logger.warn([ - 'The stackdriver error reporting client is configured to report errors', - 'if and only if the NODE_ENV environment variable is set to "production".', - 'Errors will not be reported. To have errors always reported, regardless of the', - 'value of NODE_ENV, set the reportMode configuration option to "always".' - ].join(' ')); + this._logger.warn( + [ + 'The stackdriver error reporting client is configured to report errors', + 'if and only if the NODE_ENV environment variable is set to "production".', + 'Errors will not be reported. To have errors always reported, regardless of the', + 'value of NODE_ENV, set the reportMode configuration option to "always".', + ].join(' ') + ); } if (is.string(this._givenConfiguration.key)) { @@ -332,8 +345,7 @@ export class Configuration { throw new Error('config.credentials must be a valid credentials object'); } if (is.boolean(this._givenConfiguration.reportUnhandledRejections)) { - this._reportUnhandledRejections = - this._givenConfiguration.reportUnhandledRejections!; + this._reportUnhandledRejections = this._givenConfiguration.reportUnhandledRejections!; } else if (has(this._givenConfiguration, 'reportUnhandledRejections')) { throw new Error('config.reportUnhandledRejections must be a boolean'); } @@ -385,9 +397,11 @@ export class Configuration { * @returns {Boolean} - whether errors should be reported to the API */ getShouldReportErrorsToAPI() { - return this._reportMode === 'always' || - (this._reportMode === 'production' && - (process.env.NODE_ENV || '').toLowerCase() === 'production'); + return ( + this._reportMode === 'always' || + (this._reportMode === 'production' && + (process.env.NODE_ENV || '').toLowerCase() === 'production') + ); } isReportingEnabled() { return this._reportMode !== 'never'; diff --git a/handwritten/error-reporting/src/google-apis/auth-client.ts b/handwritten/error-reporting/src/google-apis/auth-client.ts index 70f25428a5c..e80a112bcb5 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.ts +++ b/handwritten/error-reporting/src/google-apis/auth-client.ts @@ -66,7 +66,7 @@ export class RequestHandler extends Service { * null in case no api key is given * @static */ - static manufactureQueryString(key: string|null) { + static manufactureQueryString(key: string | null) { if (is.string(key)) { return {key}; } @@ -98,44 +98,56 @@ export class RequestHandler extends Service { customEndpoint: !tryAuthenticate, }); super( - { - packageJson: pkg, - baseUrl: API, - scopes: SCOPES, - projectIdRequired: true, - }, - serviceOptions); + { + packageJson: pkg, + baseUrl: API, + scopes: SCOPES, + projectIdRequired: true, + }, + serviceOptions + ); this._config = config; this._logger = logger; const that = this; if (tryAuthenticate) { - this.authClient.getAccessToken().then(() => {}, err => { - that._logger.error([ - 'Unable to find credential information on instance. This library', - 'will be unable to communicate with the Stackdriver API to save', - 'errors. Message: ' + err.message, - ].join(' ')); - }); + this.authClient.getAccessToken().then( + () => {}, + err => { + that._logger.error( + [ + 'Unable to find credential information on instance. This library', + 'will be unable to communicate with the Stackdriver API to save', + 'errors. Message: ' + err.message, + ].join(' ') + ); + } + ); } else { this.request( - { - uri: 'events:report', - qs: RequestHandler.manufactureQueryString(this._config.getKey()), - method: 'POST', - json: {}, - }, - (err, body, response) => { - if (err && err.message !== 'Message cannot be empty.' && response && - response.statusCode === 400) { - this._logger.error( - [ - 'Encountered an error while attempting to validate the provided', - 'API key', - ].join(' '), - err); - } - }); + { + uri: 'events:report', + qs: RequestHandler.manufactureQueryString(this._config.getKey()), + method: 'POST', + json: {}, + }, + (err, body, response) => { + if ( + err && + err.message !== 'Message cannot be empty.' && + response && + response.statusCode === 400 + ) { + this._logger.error( + [ + 'Encountered an error while attempting to validate the provided', + 'API key', + ].join(' '), + err + ); + } + } + ); that._logger.info('API key provided; skipping OAuth2 token request.'); } } @@ -152,64 +164,74 @@ export class RequestHandler extends Service { * @instance */ sendError( - errorMessage: ErrorMessage, - userCb?: - (err: Error|null, response: http.ServerResponse|null, - body: {}) => void) { - const cb: Function = (is.function(userCb) ? userCb : RequestHandler.noOp)!; - if (!this._config.isReportingEnabled()) { - cb(null, null, {}); - return; - } - if (this._config.getShouldReportErrorsToAPI()) { - this.request( - { - uri: 'events:report', - qs: RequestHandler.manufactureQueryString(this._config.getKey()), - method: 'POST', - json: errorMessage, - }, - (err, body, response) => { - if (err) { - this._logger.error( - [ - 'Encountered an error while attempting to transmit an error to', - 'the Stackdriver Error Reporting API.', - ].join(' '), - err); - } - cb(err, response, body); - }); - } else { - cb(new Error([ - 'The stackdriver error reporting client is configured to report errors', - 'if and only if the NODE_ENV environment variable is set to "production".', - 'Errors will not be reported. To have errors always reported, regardless of the', - 'value of NODE_ENV, set the reportMode configuration option to "always".' - ].join(' ')), - null, null); - } + errorMessage: ErrorMessage, + userCb?: ( + err: Error | null, + response: http.ServerResponse | null, + body: {} + ) => void + ) { + const cb: Function = (is.function(userCb) ? userCb : RequestHandler.noOp)!; + if (!this._config.isReportingEnabled()) { + cb(null, null, {}); + return; + } + if (this._config.getShouldReportErrorsToAPI()) { + this.request( + { + uri: 'events:report', + qs: RequestHandler.manufactureQueryString(this._config.getKey()), + method: 'POST', + json: errorMessage, + }, + (err, body, response) => { + if (err) { + this._logger.error( + [ + 'Encountered an error while attempting to transmit an error to', + 'the Stackdriver Error Reporting API.', + ].join(' '), + err + ); + } + cb(err, response, body); + } + ); + } else { + cb( + new Error( + [ + 'The stackdriver error reporting client is configured to report errors', + 'if and only if the NODE_ENV environment variable is set to "production".', + 'Errors will not be reported. To have errors always reported, regardless of the', + 'value of NODE_ENV, set the reportMode configuration option to "always".', + ].join(' ') + ), + null, + null + ); } } +} - /** - * The requestCallback callback function is called on completion of an API - * request whether that completion is success or failure. The request can - * either fail by reaching the max number of retries or encountering an - * unrecoverable response from the API. The first parameter to any invocation - * of the requestCallback function type will be the applicable error if one - * was generated during the request-response transaction. If an error was not - * generated during the transaction then the first parameter will be of type - * Null. The second parameter is the entire response from the transaction, - * this is an object that as well as containing the body of the response from - * the transaction will also include transaction information. The third - * parameter is the body of the response, this can be an object, a string or - * any type given by the response object. - * @callback RequestHandler~requestCallback cb - The function that will be - * invoked once the transaction has completed - * @param {Error|Null} err - The error, if applicable, generated during the - * transaction - * @param {Object|Undefined|Null} response - The response, if applicable, - * received during the transaction - * @param {Any} body - The response body if applicable - */ +/** + * The requestCallback callback function is called on completion of an API + * request whether that completion is success or failure. The request can + * either fail by reaching the max number of retries or encountering an + * unrecoverable response from the API. The first parameter to any invocation + * of the requestCallback function type will be the applicable error if one + * was generated during the request-response transaction. If an error was not + * generated during the transaction then the first parameter will be of type + * Null. The second parameter is the entire response from the transaction, + * this is an object that as well as containing the body of the response from + * the transaction will also include transaction information. The third + * parameter is the body of the response, this can be an object, a string or + * any type given by the response object. + * @callback RequestHandler~requestCallback cb - The function that will be + * invoked once the transaction has completed + * @param {Error|Null} err - The error, if applicable, generated during the + * transaction + * @param {Object|Undefined|Null} response - The response, if applicable, + * received during the transaction + * @param {Any} body - The response body if applicable + */ diff --git a/handwritten/error-reporting/src/index.ts b/handwritten/error-reporting/src/index.ts index aa0dbfd44e3..9406908202f 100644 --- a/handwritten/error-reporting/src/index.ts +++ b/handwritten/error-reporting/src/index.ts @@ -105,13 +105,16 @@ export class ErrorReporting { private _config!: Configuration; private _client!: AuthClient; // the `err` argument can be anything, including `null` and `undefined` - report!: - (err: any, // tslint:disable-line:no-any - request?: manualRequestExtractor.Request, additionalMessage?: string|{}, - callback?: manualInterface.Callback|{}|string) => ErrorMessage; + report!: ( + err: any, // tslint:disable-line:no-any + request?: manualRequestExtractor.Request, + additionalMessage?: string | {}, + callback?: manualInterface.Callback | {} | string + ) => ErrorMessage; event!: () => ErrorMessage; hapi!: { - register: (server: {}, options: {}, next?: Function) => void; name: string; + register: (server: {}, options: {}, next?: Function) => void; + name: string; version?: string; }; express!: (err: {}, req: {}, res: {}, next: Function) => void; @@ -135,10 +138,12 @@ export class ErrorReporting { const that = this; process.on('unhandledRejection', reason => { that._logger.warn( - 'UnhandledPromiseRejectionWarning: ' + - 'Unhandled promise rejection: ' + reason + + 'UnhandledPromiseRejectionWarning: ' + + 'Unhandled promise rejection: ' + + reason + '. This rejection has been reported to the ' + - 'Google Cloud Platform error-reporting console.'); + 'Google Cloud Platform error-reporting console.' + ); that.report(reason); }); } @@ -151,8 +156,11 @@ export class ErrorReporting { * console.log('done!'); * }); */ - this.report = - manualInterface.handlerSetup(this._client, this._config, this._logger); + this.report = manualInterface.handlerSetup( + this._client, + this._config, + this._logger + ); /** * @example @@ -186,8 +194,10 @@ export class ErrorReporting { * app.use(errors.express); * app.listen(3000); */ - this.express = - expressInterface.makeExpressHandler(this._client, this._config); + this.express = expressInterface.makeExpressHandler( + this._client, + this._config + ); /** * @example diff --git a/handwritten/error-reporting/src/interfaces/express.ts b/handwritten/error-reporting/src/interfaces/express.ts index 391114a445a..17e77876afe 100644 --- a/handwritten/error-reporting/src/interfaces/express.ts +++ b/handwritten/error-reporting/src/interfaces/express.ts @@ -33,7 +33,9 @@ import {expressRequestInformationExtractor} from '../request-extractors/express' * error handling middleware. */ export function makeExpressHandler( - client: RequestHandler, config: Configuration) { + client: RequestHandler, + config: Configuration +) { /** * The Express Error Handler function is an interface for the error handler * stack into the Express architecture. @@ -47,28 +49,33 @@ export function makeExpressHandler( */ function expressErrorHandler(err: {}, req: {}, res: {}, next: Function) { let ctxService = ''; - let ctxVersion: string|undefined = ''; + let ctxVersion: string | undefined = ''; if (is.object(config)) { ctxService = config.getServiceContext().service; ctxVersion = config.getServiceContext().version; } - const em = - new ErrorMessage() - .consumeRequestInformation(expressRequestInformationExtractor( - req as express.Request, res as express.Response)) - .setServiceContext(ctxService, ctxVersion); + const em = new ErrorMessage() + .consumeRequestInformation( + expressRequestInformationExtractor( + req as express.Request, + res as express.Response + ) + ) + .setServiceContext(ctxService, ctxVersion); populateErrorMessage(err, em); - if (is.object(client) && is.function(client.sendError)) - { client.sendError(em); } + if (is.object(client) && is.function(client.sendError)) { + client.sendError(em); + } - if (is.function(next)) - { next(err); } + if (is.function(next)) { + next(err); + } - return em; + return em; } return expressErrorHandler; diff --git a/handwritten/error-reporting/src/interfaces/hapi.ts b/handwritten/error-reporting/src/interfaces/hapi.ts index 745380bfa28..82bb4f2f71e 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.ts +++ b/handwritten/error-reporting/src/interfaces/hapi.ts @@ -39,17 +39,16 @@ import * as hapi from 'hapi'; */ function hapiErrorHandler(err: {}, req?: hapi.Request, config?: Configuration) { let service = ''; - let version: string|undefined = ''; + let version: string | undefined = ''; if (is.object(config)) { service = config!.getServiceContext().service; version = config!.getServiceContext().version; } - const em = - new ErrorMessage() - .consumeRequestInformation(hapiRequestInformationExtractor(req)) - .setServiceContext(service, version); + const em = new ErrorMessage() + .consumeRequestInformation(hapiRequestInformationExtractor(req)) + .setServiceContext(service, version); populateErrorMessage(err, em); @@ -79,70 +78,81 @@ export function makeHapiPlugin(client: RequestHandler, config: Configuration) { * @returns {Undefined} - returns the execution of the next callback */ function hapiRegisterFunction( - server: any, // tslint:disable-line:no-any - options: {}, next?: Function) { + server: any, // tslint:disable-line:no-any + options: {}, + next?: Function + ) { if (server) { if (server.events && server.events.on) { // Hapi 17 is being used server.events.on( - 'log', (event: {error?: {}; channel: string;}, tags: {}) => { - if (event.error && event.channel === 'app') { - client.sendError(hapiErrorHandler(event.error)); - } - }); + 'log', + (event: {error?: {}; channel: string}, tags: {}) => { + if (event.error && event.channel === 'app') { + client.sendError(hapiErrorHandler(event.error)); + } + } + ); server.events.on( - 'request', - (request: hapi.Request, event: {error?: {}; channel: string;}, - tags: {}) => { - if (event.error && event.channel === 'error') { - client.sendError(hapiErrorHandler(event.error, request)); - } - }); - } else { - if (is.function(server.on)) - { - server.on('request-error', (req: hapi.Request, err: {}) => { - client.sendError(hapiErrorHandler(err, req, config)); - }); + 'request', + ( + request: hapi.Request, + event: {error?: {}; channel: string}, + tags: {} + ) => { + if (event.error && event.channel === 'error') { + client.sendError(hapiErrorHandler(event.error, request)); + } } - - if (is.function(server.ext)) - { - server.ext( - 'onPreResponse', - (request: hapi.Request, - reply: any) => { // tslint:disable-line:no-any - if (is.object(request) && request.response && - (request.response as boom).isBoom) { - // Cast to {} is necessary, as@types/hapi@16 incorrectly types - // response as 'Response | null' instead of 'Response | Boom | - // null'. - const boom = request.response as {} as Error; - const em = hapiErrorHandler( - new Error(boom.message), request, config); - client.sendError(em); - } - - if (reply && is.function(reply.continue)) - { reply.continue(); } - }) - ; + ); + } else { + if (is.function(server.on)) { + server.on('request-error', (req: hapi.Request, err: {}) => { + client.sendError(hapiErrorHandler(err, req, config)); + }); } + + if (is.function(server.ext)) { + // tslint:disable-next-line no-any + server.ext('onPreResponse', (request: hapi.Request, reply: any) => { + if ( + is.object(request) && + request.response && + (request.response as boom).isBoom + ) { + // Cast to {} is necessary, as@types/hapi@16 incorrectly types + // response as 'Response | null' instead of 'Response | Boom | + // null'. + const boom = (request.response as {}) as Error; + const em = hapiErrorHandler( + new Error(boom.message), + request, + config + ); + client.sendError(em); + } + + if (reply && is.function(reply.continue)) { + reply.continue(); } + }); + } + } } - if (is.function(next)) - { return next!(); } + if (is.function(next)) { + return next!(); + } } const hapiPlugin = { register: hapiRegisterFunction, name: packageJson.name, - version: packageJson.version + version: packageJson.version, }; - (hapiPlugin.register as {} as {attributes: {}}).attributes = { + ((hapiPlugin.register as {}) as {attributes: {}}).attributes = { name: packageJson.name, version: packageJson.version, }; diff --git a/handwritten/error-reporting/src/interfaces/koa.ts b/handwritten/error-reporting/src/interfaces/koa.ts index 0ade93b786e..ffca551a4cf 100644 --- a/handwritten/error-reporting/src/interfaces/koa.ts +++ b/handwritten/error-reporting/src/interfaces/koa.ts @@ -43,16 +43,19 @@ export function koaErrorHandler(client: RequestHandler, config: Configuration) { * @returns {Undefined} does not return anything */ return function*( - this: {request: Request; response: Response;}, next: Function) { + this: {request: Request; response: Response}, + next: Function + ) { const svc = config.getServiceContext(); try { yield next(); } catch (err) { const em = new ErrorMessage() - .consumeRequestInformation(koaRequestInformationExtractor( - this.request, this.response)) - .setServiceContext(svc.service, svc.version); + .consumeRequestInformation( + koaRequestInformationExtractor(this.request, this.response) + ) + .setServiceContext(svc.service, svc.version); populateErrorMessage(err, em); diff --git a/handwritten/error-reporting/src/interfaces/koa2.ts b/handwritten/error-reporting/src/interfaces/koa2.ts index d143ec89067..0238eadff6d 100644 --- a/handwritten/error-reporting/src/interfaces/koa2.ts +++ b/handwritten/error-reporting/src/interfaces/koa2.ts @@ -22,9 +22,10 @@ import {RequestHandler} from '../google-apis/auth-client'; import {populateErrorMessage} from '../populate-error-message'; import {koaRequestInformationExtractor} from '../request-extractors/koa'; -type KoaContext = { - request: Request; response: Response -}; +interface KoaContext { + request: Request; + response: Response; +} type KoaNext = Function; /** @@ -40,7 +41,9 @@ type KoaNext = Function; * request handlers. */ export function koa2ErrorHandler( - client: RequestHandler, config: Configuration) { + client: RequestHandler, + config: Configuration +) { /** * The actual error handler for the Koa plugin attempts to await the results * of downstream request handlers and will attempt to catch errors emitted by @@ -57,9 +60,10 @@ export function koa2ErrorHandler( await next(); } catch (err) { const em = new ErrorMessage() - .consumeRequestInformation(koaRequestInformationExtractor( - ctx.request, ctx.response)) - .setServiceContext(svc.service, svc.version); + .consumeRequestInformation( + koaRequestInformationExtractor(ctx.request, ctx.response) + ) + .setServiceContext(svc.service, svc.version); populateErrorMessage(err, em); diff --git a/handwritten/error-reporting/src/interfaces/manual.ts b/handwritten/error-reporting/src/interfaces/manual.ts index 53dcf61de9f..802181f7e74 100644 --- a/handwritten/error-reporting/src/interfaces/manual.ts +++ b/handwritten/error-reporting/src/interfaces/manual.ts @@ -24,8 +24,11 @@ import {populateErrorMessage} from '../populate-error-message'; import {manualRequestInformationExtractor} from '../request-extractors/manual'; import {Request} from '../request-extractors/manual'; -export type Callback = - (err: Error|null, response: http.ServerResponse|null, body: {}) => void; +export type Callback = ( + err: Error | null, + response: http.ServerResponse | null, + body: {} +) => void; // tslint:disable-next-line:no-any type AnyError = any; @@ -45,7 +48,10 @@ type AnyError = any; * function */ export function handlerSetup( - client: RequestHandler, config: Configuration, logger: Logger) { + client: RequestHandler, + config: Configuration, + logger: Logger +) { /** * The interface for manually reporting errors to the Google Error API in * application code. @@ -66,85 +72,100 @@ export function handlerSetup( function reportManualError(err: AnyError): ErrorMessage; function reportManualError(err: AnyError, request: Request): ErrorMessage; function reportManualError( - err: AnyError, additionalMessage: string): ErrorMessage; + err: AnyError, + additionalMessage: string + ): ErrorMessage; function reportManualError(err: AnyError, callback: Callback): ErrorMessage; function reportManualError( - err: AnyError, request: Request, callback: Callback): ErrorMessage; + err: AnyError, + request: Request, + callback: Callback + ): ErrorMessage; function reportManualError( - err: AnyError, request: Request, additionalMessage: string): ErrorMessage; + err: AnyError, + request: Request, + additionalMessage: string + ): ErrorMessage; function reportManualError( - err: AnyError, additionalMessage: string, - callback: Callback): ErrorMessage; + err: AnyError, + additionalMessage: string, + callback: Callback + ): ErrorMessage; function reportManualError( - err: AnyError, request: Request, additionalMessage: string, - callback: Callback): ErrorMessage; + err: AnyError, + request: Request, + additionalMessage: string, + callback: Callback + ): ErrorMessage; function reportManualError( - err: AnyError, request?: Request|Callback|string, - additionalMessage?: Callback|string|{}, - callback?: Callback|{}|string): ErrorMessage { + err: AnyError, + request?: Request | Callback | string, + additionalMessage?: Callback | string | {}, + callback?: Callback | {} | string + ): ErrorMessage { let em; if (is.string(request)) { // no request given callback = additionalMessage; additionalMessage = request; request = undefined; - } else if (is.function(request)) - { - // neither request nor additionalMessage given - callback = request; - request = undefined; - additionalMessage = undefined; - } + } else if (is.function(request)) { + // neither request nor additionalMessage given + callback = request; + request = undefined; + additionalMessage = undefined; + } - if (is.function(additionalMessage)) - { - callback = additionalMessage; - additionalMessage = undefined; - } + if (is.function(additionalMessage)) { + callback = additionalMessage; + additionalMessage = undefined; + } - if (err instanceof ErrorMessage) { - // The API expects the error to contain a stack trace. Thus we - // append the stack trace of the point where the error was - // constructed. See the `message-builder.js` file for more details. - const stackErr = - err as ErrorMessage & {_autoGeneratedStackTrace: string}; - if (stackErr._autoGeneratedStackTrace) { - err.setMessage( - err.message + '\n' + stackErr._autoGeneratedStackTrace); - // Delete the property so that if the ErrorMessage is reported a - // second time, the stack trace is not appended a second time. Also, - // the API will not accept the ErrorMessage if it has additional - // properties. - delete stackErr._autoGeneratedStackTrace; - } else { - logger.warn( - 'Encountered a manually constructed error with message "' + - err.message + '" but without a construction site ' + - 'stack trace. This error might not be visible in the ' + - 'error reporting console.'); - } - em = err; - } else { - em = new ErrorMessage(); - em.setServiceContext( - config.getServiceContext().service, - config.getServiceContext().version); - populateErrorMessage(err, em); - } + if (err instanceof ErrorMessage) { + // The API expects the error to contain a stack trace. Thus we + // append the stack trace of the point where the error was + // constructed. See the `message-builder.js` file for more details. + const stackErr = err as ErrorMessage & {_autoGeneratedStackTrace: string}; + if (stackErr._autoGeneratedStackTrace) { + err.setMessage(err.message + '\n' + stackErr._autoGeneratedStackTrace); + // Delete the property so that if the ErrorMessage is reported a + // second time, the stack trace is not appended a second time. Also, + // the API will not accept the ErrorMessage if it has additional + // properties. + delete stackErr._autoGeneratedStackTrace; + } else { + logger.warn( + 'Encountered a manually constructed error with message "' + + err.message + + '" but without a construction site ' + + 'stack trace. This error might not be visible in the ' + + 'error reporting console.' + ); + } + em = err; + } else { + em = new ErrorMessage(); + em.setServiceContext( + config.getServiceContext().service, + config.getServiceContext().version + ); + populateErrorMessage(err, em); + } - if (is.object(request)) { - // TODO: Address this explicit cast - em.consumeRequestInformation( - manualRequestInformationExtractor(request as Request)); - } + if (is.object(request)) { + // TODO: Address this explicit cast + em.consumeRequestInformation( + manualRequestInformationExtractor(request as Request) + ); + } - if (is.string(additionalMessage)) { - em.setMessage(additionalMessage as string); - } + if (is.string(additionalMessage)) { + em.setMessage(additionalMessage as string); + } - // TODO: Address this type cast - client.sendError(em, callback as Callback); - return em; + // TODO: Address this type cast + client.sendError(em, callback as Callback); + return em; } return reportManualError; diff --git a/handwritten/error-reporting/src/interfaces/message-builder.ts b/handwritten/error-reporting/src/interfaces/message-builder.ts index 2988fafc52d..9182798cb17 100644 --- a/handwritten/error-reporting/src/interfaces/message-builder.ts +++ b/handwritten/error-reporting/src/interfaces/message-builder.ts @@ -48,9 +48,12 @@ export function handlerSetup(config: Configuration) { const cleanedStack = buildStackTrace(''); const em = new ErrorMessage().setServiceContext( - config.getServiceContext().service, config.getServiceContext().version); - (em as {} as {_autoGeneratedStackTrace: string})._autoGeneratedStackTrace = - cleanedStack; + config.getServiceContext().service, + config.getServiceContext().version + ); + ((em as {}) as { + _autoGeneratedStackTrace: string; + })._autoGeneratedStackTrace = cleanedStack; return em; } diff --git a/handwritten/error-reporting/src/interfaces/restify.ts b/handwritten/error-reporting/src/interfaces/restify.ts index 63d000de8af..42a684a75b4 100644 --- a/handwritten/error-reporting/src/interfaces/restify.ts +++ b/handwritten/error-reporting/src/interfaces/restify.ts @@ -39,7 +39,11 @@ import * as expressRequestInformationExtractor from '../request-extractors/expre * @returns {Undefined} - does not return anything */ function restifyErrorHandler( - client: RequestHandler, config: Configuration, err: {}, em: ErrorMessage) { + client: RequestHandler, + config: Configuration, + err: {}, + em: ErrorMessage +) { const svc = config.getServiceContext(); em.setServiceContext(svc.service, svc.version); @@ -64,20 +68,28 @@ function restifyErrorHandler( * @returns {Undefined} - does not return anything */ function restifyRequestFinishHandler( - client: RequestHandler, config: Configuration, req: restify.Request, - res: restify.Response) { + client: RequestHandler, + config: Configuration, + req: restify.Request, + res: restify.Response +) { let em; // TODO: Address the fact that `_body` does not exist in `res` - if ((res as {} as {_body: {}})._body instanceof Error || - (res.statusCode > 309 && res.statusCode < 512)) { + if ( + ((res as {}) as {_body: {}})._body instanceof Error || + (res.statusCode > 309 && res.statusCode < 512) + ) { em = new ErrorMessage().consumeRequestInformation( - // TODO: Address the type conflict with `req` and `res` and the types - // expected for `expressRequestInformationExtractor` - expressRequestInformationExtractor.expressRequestInformationExtractor( - req as {} as express.Request, res as {} as express.Response)); - - restifyErrorHandler(client, config, (res as {} as {_body: {}})._body, em); + // TODO: Address the type conflict with `req` and `res` and the types + // expected for `expressRequestInformationExtractor` + expressRequestInformationExtractor.expressRequestInformationExtractor( + (req as {}) as express.Request, + (res as {}) as express.Response + ) + ); + + restifyErrorHandler(client, config, ((res as {}) as {_body: {}})._body, em); } } @@ -100,22 +112,31 @@ function restifyRequestFinishHandler( * @returns {Any} - the result of the next function */ function restifyRequestHandler( - client: RequestHandler, config: Configuration, req: restify.Request, - res: restify.Response, next: Function) { + client: RequestHandler, + config: Configuration, + req: restify.Request, + res: restify.Response, + next: Function +) { // TODO: Address the fact that a cast is needed to use `listener` let listener = {}; - if (is.object(res) && is.function(res.on) && is.function(res.removeListener)) { - listener = () => { - restifyRequestFinishHandler(client, config, req, res); - res.removeListener( - 'finish', listener as {} as (...args: Array<{}>) => void); - }; - - res.on('finish', listener as {} as (...args: Array<{}>) => void); - } + if ( + is.object(res) && + is.function(res.on) && + is.function(res.removeListener) + ) { + listener = () => { + restifyRequestFinishHandler(client, config, req, res); + res.removeListener('finish', (listener as {}) as ( + ...args: Array<{}> + ) => void); + }; + + res.on('finish', (listener as {}) as (...args: Array<{}>) => void); + } - return next(); + return next(); } /** @@ -136,16 +157,22 @@ function restifyRequestHandler( * @returns {Function} - the actual request error handler */ function serverErrorHandler( - client: RequestHandler, config: Configuration, server: restify.Server) { - server.on('uncaughtException', (req, res, reqConfig, err) => { - const em = new ErrorMessage().consumeRequestInformation( - expressRequestInformationExtractor.expressRequestInformationExtractor( - req, res)); - - restifyErrorHandler(client, config, err, em); - }); - - return restifyRequestHandler.bind(null, client, config); + client: RequestHandler, + config: Configuration, + server: restify.Server +) { + server.on('uncaughtException', (req, res, reqConfig, err) => { + const em = new ErrorMessage().consumeRequestInformation( + expressRequestInformationExtractor.expressRequestInformationExtractor( + req, + res + ) + ); + + restifyErrorHandler(client, config, err, em); + }); + + return restifyRequestHandler.bind(null, client, config); } /** @@ -160,5 +187,5 @@ function serverErrorHandler( * restify middleware stack */ export function handlerSetup(client: RequestHandler, config: Configuration) { - return serverErrorHandler.bind(null, client, config); + return serverErrorHandler.bind(null, client, config); } diff --git a/handwritten/error-reporting/src/logger.ts b/handwritten/error-reporting/src/logger.ts index d7172b53b06..b7ede2565cb 100644 --- a/handwritten/error-reporting/src/logger.ts +++ b/handwritten/error-reporting/src/logger.ts @@ -22,10 +22,15 @@ const packageJson = require('../../package.json'); import {ConfigurationOptions, Logger} from './configuration'; - -const LEVELNAMES: consoleLogLevel.LogLevelNames[] = - ['fatal', 'error', 'warn', 'info', 'debug', 'trace']; -const DEFAULT_LEVEL = 2; // warn. +const LEVELNAMES: consoleLogLevel.LogLevelNames[] = [ + 'fatal', + 'error', + 'warn', + 'info', + 'debug', + 'trace', +]; +const DEFAULT_LEVEL = 2; // warn. function logLevelToName(level: number): consoleLogLevel.LogLevelNames { if (typeof level === 'string') { @@ -70,13 +75,14 @@ export function createLogger(config?: ConfigurationOptions): Logger { level = Number(config!.logLevel!) || DEFAULT_LEVEL; } else { throw new Error( - 'config.logLevel must be a number or decimal ' + - 'representation of a number in string form'); + 'config.logLevel must be a number or decimal ' + + 'representation of a number in string form' + ); } } return consoleLogLevel({ stderr: true, prefix: (level: string) => `${level.toUpperCase()}:${packageJson.name}:`, - level: logLevelToName(level) + level: logLevelToName(level), }); } diff --git a/handwritten/error-reporting/src/populate-error-message.ts b/handwritten/error-reporting/src/populate-error-message.ts index ad86f5a0cee..53fa6d7147d 100644 --- a/handwritten/error-reporting/src/populate-error-message.ts +++ b/handwritten/error-reporting/src/populate-error-message.ts @@ -27,7 +27,7 @@ export interface PopulatedObject { filePath?: string; lineNumber?: number; functionName?: string; - serviceContext?: {service?: string; version?: string;}; + serviceContext?: {service?: string; version?: string}; } /** @@ -69,7 +69,9 @@ export function populateErrorMessage(ob: any, em: ErrorMessage) { * @returns {Undefined} - does not return anything */ function populateFromError( - err: Error&PopulatedObject, errorMessage: ErrorMessage) { + err: Error & PopulatedObject, + errorMessage: ErrorMessage +) { errorMessage.setMessage(err.stack!); if (has(err, 'user')) { @@ -78,7 +80,9 @@ function populateFromError( if (has(err, 'serviceContext') && is.object(err.serviceContext)) { errorMessage.setServiceContext( - err.serviceContext!.service!, err.serviceContext!.version); + err.serviceContext!.service!, + err.serviceContext!.version + ); } } @@ -131,6 +135,8 @@ function populateFromObject(ob: PopulatedObject, errorMessage: ErrorMessage) { if (has(ob, 'serviceContext') && is.object(ob.serviceContext)) { errorMessage.setServiceContext( - ob.serviceContext!.service!, ob.serviceContext!.version); + ob.serviceContext!.service!, + ob.serviceContext!.version + ); } } diff --git a/handwritten/error-reporting/src/request-extractors/express.ts b/handwritten/error-reporting/src/request-extractors/express.ts index 9dce8b0f19e..858d7e8d9ca 100644 --- a/handwritten/error-reporting/src/request-extractors/express.ts +++ b/handwritten/error-reporting/src/request-extractors/express.ts @@ -51,19 +51,22 @@ function extractRemoteAddressFromRequest(req: express.Request) { * information in a standardized format */ export function expressRequestInformationExtractor( - req: express.Request, res: express.Response) { + req: express.Request, + res: express.Response +) { const returnObject = new RequestInformationContainer(); if (!is.object(req) || !is.function(req.header) || !is.object(res)) { - return returnObject; - } + return returnObject; + } - returnObject.setMethod(req.method) - .setUrl(req.url) - .setUserAgent(req.header('user-agent')) - .setReferrer(req.header('referrer')) - .setStatusCode(res.statusCode) - .setRemoteAddress(extractRemoteAddressFromRequest(req)); + returnObject + .setMethod(req.method) + .setUrl(req.url) + .setUserAgent(req.header('user-agent')) + .setReferrer(req.header('referrer')) + .setStatusCode(res.statusCode) + .setRemoteAddress(extractRemoteAddressFromRequest(req)); - return returnObject; + return returnObject; } diff --git a/handwritten/error-reporting/src/request-extractors/hapi.ts b/handwritten/error-reporting/src/request-extractors/hapi.ts index f3116a08c45..d425fa33d14 100644 --- a/handwritten/error-reporting/src/request-extractors/hapi.ts +++ b/handwritten/error-reporting/src/request-extractors/hapi.ts @@ -76,24 +76,29 @@ function extractRemoteAddressFromRequest(req: hapi.Request) { export function hapiRequestInformationExtractor(req?: hapi.Request) { const returnObject = new RequestInformationContainer(); - if (!is.object(req) || !is.object(req!.headers) || is.function(req) || - is.array(req)) { - return returnObject; - } + if ( + !is.object(req) || + !is.object(req!.headers) || + is.function(req) || + is.array(req) + ) { + return returnObject; + } - let urlString: string; - if (is.string(req!.url)) { - urlString = req!.url as {} as string; - } else { - urlString = req!.url.pathname; - } + let urlString: string; + if (is.string(req!.url)) { + urlString = (req!.url as {}) as string; + } else { + urlString = req!.url.pathname; + } - returnObject.setMethod(req!.method) - .setUrl(urlString) - .setUserAgent(req!.headers['user-agent']) - .setReferrer(req!.headers.referrer) - .setStatusCode(attemptToExtractStatusCode(req!)) - .setRemoteAddress(extractRemoteAddressFromRequest(req!)); + returnObject + .setMethod(req!.method) + .setUrl(urlString) + .setUserAgent(req!.headers['user-agent']) + .setReferrer(req!.headers.referrer) + .setStatusCode(attemptToExtractStatusCode(req!)) + .setRemoteAddress(extractRemoteAddressFromRequest(req!)); - return returnObject; + return returnObject; } diff --git a/handwritten/error-reporting/src/request-extractors/koa.ts b/handwritten/error-reporting/src/request-extractors/koa.ts index d679a1de0a1..dbea5864614 100644 --- a/handwritten/error-reporting/src/request-extractors/koa.ts +++ b/handwritten/error-reporting/src/request-extractors/koa.ts @@ -30,20 +30,30 @@ import {RequestInformationContainer} from '../classes/request-information-contai * container instance that may be in its initial state */ export function koaRequestInformationExtractor( - req: koa.Request, res: koa.Response) { + req: koa.Request, + res: koa.Response +) { const returnObject = new RequestInformationContainer(); - if (!is.object(req) || !is.object(res) || is.function(req) || is.function(res) || - is.array(req) || is.array(res) || !is.object(req.headers)) { - return returnObject; - } + if ( + !is.object(req) || + !is.object(res) || + is.function(req) || + is.function(res) || + is.array(req) || + is.array(res) || + !is.object(req.headers) + ) { + return returnObject; + } - returnObject.setMethod(req.method) - .setUrl(req.url) - .setUserAgent(req.headers['user-agent']) - .setReferrer(req.headers.referrer) - .setStatusCode(res.status) - .setRemoteAddress(req.ip); + returnObject + .setMethod(req.method) + .setUrl(req.url) + .setUserAgent(req.headers['user-agent']) + .setReferrer(req.headers.referrer) + .setStatusCode(res.status) + .setRemoteAddress(req.ip); - return returnObject; + return returnObject; } diff --git a/handwritten/error-reporting/src/request-extractors/manual.ts b/handwritten/error-reporting/src/request-extractors/manual.ts index c56781a0af1..153f41a42f7 100644 --- a/handwritten/error-reporting/src/request-extractors/manual.ts +++ b/handwritten/error-reporting/src/request-extractors/manual.ts @@ -48,32 +48,33 @@ export interface Request { export function manualRequestInformationExtractor(req: Request) { const returnObject = new RequestInformationContainer(); - if (!is.object(req) || is.array(req) || is.function(req)) - { return returnObject; } + if (!is.object(req) || is.array(req) || is.function(req)) { + return returnObject; + } - if (has(req, 'method')) { - returnObject.setMethod(req.method!); - } + if (has(req, 'method')) { + returnObject.setMethod(req.method!); + } - if (has(req, 'url')) { - returnObject.setUrl(req.url!); - } + if (has(req, 'url')) { + returnObject.setUrl(req.url!); + } - if (has(req, 'userAgent')) { - returnObject.setUserAgent(req.userAgent); - } + if (has(req, 'userAgent')) { + returnObject.setUserAgent(req.userAgent); + } - if (has(req, 'referrer')) { - returnObject.setReferrer(req.referrer); - } + if (has(req, 'referrer')) { + returnObject.setReferrer(req.referrer); + } - if (has(req, 'statusCode')) { - returnObject.setStatusCode(req.statusCode!); - } + if (has(req, 'statusCode')) { + returnObject.setStatusCode(req.statusCode!); + } - if (has(req, 'remoteAddress')) { - returnObject.setRemoteAddress(req.remoteAddress); - } + if (has(req, 'remoteAddress')) { + returnObject.setRemoteAddress(req.remoteAddress); + } - return returnObject; + return returnObject; } diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index 338deef1299..e5a7628c412 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -25,7 +25,10 @@ import {RequestHandler} from '../src/google-apis/auth-client'; import {createLogger} from '../src/logger'; import {FakeConfiguration as Configuration} from '../test/fixtures/configuration'; import {deepStrictEqual} from '../test/util'; -import {ErrorGroupStats, ErrorsApiTransport} from '../utils/errors-api-transport'; +import { + ErrorGroupStats, + ErrorsApiTransport, +} from '../utils/errors-api-transport'; import pick = require('lodash.pick'); import omitBy = require('lodash.omitby'); @@ -44,12 +47,12 @@ const envKeys = [ ]; class InstancedEnv { - injectedEnv: {[key: string]: string|undefined}; + injectedEnv: {[key: string]: string | undefined}; _originalEnv: Partial>; apiKey!: string; projectId!: string; - constructor(injectedEnv: {[key: string]: string|undefined}) { + constructor(injectedEnv: {[key: string]: string | undefined}) { Object.assign(this, injectedEnv); this.injectedEnv = injectedEnv; this._originalEnv = this._captureProcessProperties(); @@ -107,7 +110,7 @@ const env = new InstancedEnv({ projectId: process.env.GCLOUD_TESTS_PROJECT_ID, keyFilename: process.env.GCLOUD_TESTS_KEY, apiKey: process.env.GCLOUD_TESTS_API_KEY, - projectNumber: process.env.GCLOUD_TESTS_PROJECT_NUMBER + projectNumber: process.env.GCLOUD_TESTS_PROJECT_NUMBER, }); function shouldRun() { @@ -144,7 +147,7 @@ if (!shouldRun()) { describe('Request/Response lifecycle mocking', () => { const sampleError = new Error(ERR_TOKEN); const errorMessage = new ErrorMessage().setMessage(sampleError.message); - let fakeService: {reply: Function; query: Function;}; + let fakeService: {reply: Function; query: Function}; let client: RequestHandler; let logger; before(() => { @@ -152,16 +155,21 @@ describe('Request/Response lifecycle mocking', () => { }); beforeEach(() => { - env.setProjectId().setKeyFilename().setProduction(); - fakeService = - nock( - 'https://clouderrorreporting.googleapis.com/v1beta1/projects/' + - process.env.GCLOUD_PROJECT) - .persist() - .post('/events:report?'); + env + .setProjectId() + .setKeyFilename() + .setProduction(); + fakeService = nock( + 'https://clouderrorreporting.googleapis.com/v1beta1/projects/' + + process.env.GCLOUD_PROJECT + ) + .persist() + .post('/events:report?'); logger = createLogger({logLevel: 5}); client = new RequestHandler( - new Configuration({reportMode: 'always'}, logger), logger); + new Configuration({reportMode: 'always'}, logger), + logger + ); }); afterEach(() => { @@ -178,7 +186,9 @@ describe('Request/Response lifecycle mocking', () => { client.sendError({} as ErrorMessage, (err, response) => { assert(err instanceof Error); assert.strictEqual( - err!.message.toLowerCase(), 'message cannot be empty.'); + err!.message.toLowerCase(), + 'message cannot be empty.' + ); assert(is.object(response)); assert.strictEqual(response!.statusCode, 400); done(); @@ -200,30 +210,36 @@ describe('Request/Response lifecycle mocking', () => { }); }); - it('Should provide the key as a query string on outgoing requests when ' + - 'using an API key', - done => { - env.sterilizeProcess().setProjectId().setProduction(); - const key = env.apiKey; - const logger = createLogger({logLevel: 5}); - const client = new RequestHandler( - new Configuration({key, reportMode: 'always'}, logger), logger); - fakeService.query({key}).reply(200, (uri: string) => { - assert(uri.indexOf('key=' + key) > -1); - return {}; - }); - client.sendError(errorMessage, () => { - done(); - }); - }); - - it('Should still execute the request with a callback-less invocation', - done => { - fakeService.reply(200, () => { - done(); - }); - client.sendError(errorMessage); - }); + it( + 'Should provide the key as a query string on outgoing requests when ' + + 'using an API key', + done => { + env + .sterilizeProcess() + .setProjectId() + .setProduction(); + const key = env.apiKey; + const logger = createLogger({logLevel: 5}); + const client = new RequestHandler( + new Configuration({key, reportMode: 'always'}, logger), + logger + ); + fakeService.query({key}).reply(200, (uri: string) => { + assert(uri.indexOf('key=' + key) > -1); + return {}; + }); + client.sendError(errorMessage, () => { + done(); + }); + } + ); + + it('Should still execute the request with a callback-less invocation', done => { + fakeService.reply(200, () => { + done(); + }); + client.sendError(errorMessage); + }); }); describe('Client creation', () => { @@ -233,87 +249,111 @@ describe('Client creation', () => { env.sterilizeProcess(); }); - it('Should not throw on initialization when using only project id as a ' + - 'runtime argument', - function(this, done) { - env.sterilizeProcess().setKeyFilename(); - const logger = createLogger({logLevel: 5}); - const cfg = new Configuration( - { - projectId: env.injected().projectId, - reportMode: 'always', - }, - logger); - this.timeout(10000); - assert.doesNotThrow(() => { - new RequestHandler(cfg, logger) - .sendError(errorMessage, (err, response, body) => { - assert.strictEqual(err, null); - assert.strictEqual(response!.statusCode, 200); - assert(is.object(body) && is.empty(body)); - done(); - }); - }); - }); - - it('Should not throw on initialization when using only project id as an ' + - 'env variable', - function(this, done) { - env.sterilizeProcess().setProjectId().setKeyFilename(); - const logger = createLogger({logLevel: 5}); - const cfg = new Configuration({reportMode: 'always'}, logger); - this.timeout(10000); - assert.doesNotThrow(() => { - new RequestHandler(cfg, logger) - .sendError(errorMessage, (err, response, body) => { - assert.strictEqual(err, null); - assert.strictEqual(response!.statusCode, 200); - assert(is.object(body) && is.empty(body)); - done(); - }); - }); - }); - - it('Should not throw on initialization when using only project number as ' + - 'a runtime argument', - function(this, done) { - env.sterilizeProcess().setKeyFilename(); - const logger = createLogger({logLevel: 5}); - const cfg = new Configuration( - { - projectId: '' + Number(env.injected().projectNumber), - reportMode: 'always', - }, - logger); - this.timeout(10000); - assert.doesNotThrow(() => { - new RequestHandler(cfg, logger) - .sendError(errorMessage, (err, response, body) => { - assert.strictEqual(err, null); - assert.strictEqual(response!.statusCode, 200); - assert(is.object(body) && is.empty(body)); - done(); - }); - }); - }); - - it('Should not throw on initialization when using only project number as ' + - 'an env variable', - function(this, done) { - env.sterilizeProcess().setKeyFilename().setProjectNumber(); - const logger = createLogger({logLevel: 5}); - const cfg = new Configuration({reportMode: 'always'}, logger); - this.timeout(10000); - assert.doesNotThrow(() => { - new RequestHandler(cfg, logger) - .sendError(errorMessage, (err, response, body) => { - assert.strictEqual(err, null); - assert.strictEqual(response!.statusCode, 200); - assert(is.object(body) && is.empty(body)); - done(); - }); - }); - }); + it( + 'Should not throw on initialization when using only project id as a ' + + 'runtime argument', + function(this, done) { + env.sterilizeProcess().setKeyFilename(); + const logger = createLogger({logLevel: 5}); + const cfg = new Configuration( + { + projectId: env.injected().projectId, + reportMode: 'always', + }, + logger + ); + this.timeout(10000); + assert.doesNotThrow(() => { + new RequestHandler(cfg, logger).sendError( + errorMessage, + (err, response, body) => { + assert.strictEqual(err, null); + assert.strictEqual(response!.statusCode, 200); + assert(is.object(body) && is.empty(body)); + done(); + } + ); + }); + } + ); + + it( + 'Should not throw on initialization when using only project id as an ' + + 'env variable', + function(this, done) { + env + .sterilizeProcess() + .setProjectId() + .setKeyFilename(); + const logger = createLogger({logLevel: 5}); + const cfg = new Configuration({reportMode: 'always'}, logger); + this.timeout(10000); + assert.doesNotThrow(() => { + new RequestHandler(cfg, logger).sendError( + errorMessage, + (err, response, body) => { + assert.strictEqual(err, null); + assert.strictEqual(response!.statusCode, 200); + assert(is.object(body) && is.empty(body)); + done(); + } + ); + }); + } + ); + + it( + 'Should not throw on initialization when using only project number as ' + + 'a runtime argument', + function(this, done) { + env.sterilizeProcess().setKeyFilename(); + const logger = createLogger({logLevel: 5}); + const cfg = new Configuration( + { + projectId: '' + Number(env.injected().projectNumber), + reportMode: 'always', + }, + logger + ); + this.timeout(10000); + assert.doesNotThrow(() => { + new RequestHandler(cfg, logger).sendError( + errorMessage, + (err, response, body) => { + assert.strictEqual(err, null); + assert.strictEqual(response!.statusCode, 200); + assert(is.object(body) && is.empty(body)); + done(); + } + ); + }); + } + ); + + it( + 'Should not throw on initialization when using only project number as ' + + 'an env variable', + function(this, done) { + env + .sterilizeProcess() + .setKeyFilename() + .setProjectNumber(); + const logger = createLogger({logLevel: 5}); + const cfg = new Configuration({reportMode: 'always'}, logger); + this.timeout(10000); + assert.doesNotThrow(() => { + new RequestHandler(cfg, logger).sendError( + errorMessage, + (err, response, body) => { + assert.strictEqual(err, null); + assert.strictEqual(response!.statusCode, 200); + assert(is.object(body) && is.empty(body)); + done(); + } + ); + }); + } + ); }); describe('Expected Behavior', () => { @@ -321,7 +361,7 @@ describe('Expected Behavior', () => { 'The stackdriver error reporting client is configured to report errors', 'if and only if the NODE_ENV environment variable is set to "production".', 'Errors will not be reported. To have errors always reported, regardless of the', - 'value of NODE_ENV, set the reportMode configuration option to "always".' + 'value of NODE_ENV, set the reportMode configuration option to "always".', ].join(' '); const er = new Error(ERR_TOKEN); @@ -331,30 +371,35 @@ describe('Expected Behavior', () => { env.sterilizeProcess(); }); - it('Should callback with an error with a configuration that cannot report errors', - done => { - env.sterilizeProcess().setKeyFilename().setProjectId(); - process.env.NODE_ENV = 'null'; - const logger = createLogger({logLevel: 5, reportMode: 'production'}); - const client = - new RequestHandler(new Configuration(undefined, logger), logger); - client.sendError({} as ErrorMessage, (err, response) => { - assert(err instanceof Error); - assert.strictEqual(err!.message, ERROR_STRING); - assert.strictEqual(response, null); - done(); - }); - }); + it('Should callback with an error with a configuration that cannot report errors', done => { + env + .sterilizeProcess() + .setKeyFilename() + .setProjectId(); + process.env.NODE_ENV = 'null'; + const logger = createLogger({logLevel: 5, reportMode: 'production'}); + const client = new RequestHandler( + new Configuration(undefined, logger), + logger + ); + client.sendError({} as ErrorMessage, (err, response) => { + assert(err instanceof Error); + assert.strictEqual(err!.message, ERROR_STRING); + assert.strictEqual(response, null); + done(); + }); + }); it('Should succeed in its request given a valid project id', done => { env.sterilizeProcess().setKeyFilename(); const logger = createLogger({logLevel: 5}); const cfg = new Configuration( - { - projectId: env.injected().projectId, - reportMode: 'always', - }, - logger); + { + projectId: env.injected().projectId, + reportMode: 'always', + }, + logger + ); const client = new RequestHandler(cfg, logger); client.sendError(em, (err, response, body) => { @@ -370,11 +415,12 @@ describe('Expected Behavior', () => { env.sterilizeProcess().setKeyFilename(); const logger = createLogger({logLevel: 5}); const cfg = new Configuration( - { - projectId: '' + Number(env.injected().projectNumber), - reportMode: 'always', - }, - logger); + { + projectId: '' + Number(env.injected().projectNumber), + reportMode: 'always', + }, + logger + ); const client = new RequestHandler(cfg, logger); client.sendError(em, (err, response, body) => { assert.strictEqual(err, null); @@ -387,45 +433,48 @@ describe('Expected Behavior', () => { }); describe('Error Reporting API', () => { - [{ - name: 'when a valid API key is given', - getKey: () => env.apiKey, - message: 'Message cannot be empty.', - statusCode: 400 - }, - { - name: 'when an empty API key is given', - getKey: () => '', - message: 'The request is missing a valid API key.', - // TODO: Determine if 403 is the correct expected status code. - // Prior to the code migration, the expected status code - // was 400. However, the service is now reporting 403. - statusCode: 403 - }, - { - name: 'when an invalid API key is given', - getKey: () => env.apiKey.slice(1) + env.apiKey[0], - message: 'API key not valid. Please pass a valid API key.', - statusCode: 400 - }, + [ + { + name: 'when a valid API key is given', + getKey: () => env.apiKey, + message: 'Message cannot be empty.', + statusCode: 400, + }, + { + name: 'when an empty API key is given', + getKey: () => '', + message: 'The request is missing a valid API key.', + // TODO: Determine if 403 is the correct expected status code. + // Prior to the code migration, the expected status code + // was 400. However, the service is now reporting 403. + statusCode: 403, + }, + { + name: 'when an invalid API key is given', + getKey: () => env.apiKey.slice(1) + env.apiKey[0], + message: 'API key not valid. Please pass a valid API key.', + statusCode: 400, + }, ].forEach(testCase => { - it(`should return an expected message ${testCase.name}`, - function(this, done) { - this.timeout(60000); - const API = 'https://clouderrorreporting.googleapis.com/v1beta1'; - const key = testCase.getKey(); - request.post( - { - url: `${API}/projects/${env.projectId}/events:report?key=${key}`, - json: {}, - }, - (err, response, body) => { - assert.ok(!err && body.error); - assert.strictEqual(response.statusCode, testCase.statusCode); - assert.strictEqual(body.error.message, testCase.message); - done(); - }); - }); + it(`should return an expected message ${ + testCase.name + }`, function(this, done) { + this.timeout(60000); + const API = 'https://clouderrorreporting.googleapis.com/v1beta1'; + const key = testCase.getKey(); + request.post( + { + url: `${API}/projects/${env.projectId}/events:report?key=${key}`, + json: {}, + }, + (err, response, body) => { + assert.ok(!err && body.error); + assert.strictEqual(response.statusCode, testCase.statusCode); + assert.strictEqual(body.error.message, testCase.message); + done(); + } + ); + }); }); }); @@ -455,7 +504,10 @@ describe('error-reporting', () => { assert.strictEqual(process.listenerCount('unhandledRejection'), 0); oldLogger = console.error; console.error = function(this) { - const text = util.format.apply(null, arguments as {} as [{}, Array<{}>]); + const text = util.format.apply(null, (arguments as {}) as [ + {}, + Array<{}> + ]); oldLogger(text); logOutput += text; }; @@ -465,16 +517,17 @@ describe('error-reporting', () => { function reinitialize(extraConfig?: {}) { process.removeAllListeners('unhandledRejection'); const initConfiguration = Object.assign( - { - reportMode: 'always' as 'always', - serviceContext: { - service: SERVICE, - version: VERSION, - }, - projectId: env.projectId, - keyFilename: process.env.GCLOUD_TESTS_KEY + { + reportMode: 'always' as 'always', + serviceContext: { + service: SERVICE, + version: VERSION, }, - extraConfig || {}); + projectId: env.projectId, + keyFilename: process.env.GCLOUD_TESTS_KEY, + }, + extraConfig || {} + ); errors = new ErrorReporting(initConfiguration); const logger = createLogger(initConfiguration); const configuration = new Configuration(initConfiguration, logger); @@ -486,30 +539,40 @@ describe('error-reporting', () => { }); async function verifyAllGroups( - messageTest: (message: string) => void, maxCount: number, - timeout: number) { + messageTest: (message: string) => void, + maxCount: number, + timeout: number + ) { const start = Date.now(); let groups: ErrorGroupStats[] = []; const shouldContinue = () => - groups.length < maxCount && (Date.now() - start) <= timeout; + groups.length < maxCount && Date.now() - start <= timeout; while (shouldContinue()) { - let prevPageToken: string|undefined; - let allGroups: ErrorGroupStats[]|undefined; + let prevPageToken: string | undefined; + let allGroups: ErrorGroupStats[] | undefined; while (shouldContinue() && (!allGroups || allGroups.length > 0)) { const response = await transport.getAllGroups( - SERVICE, VERSION, PAGE_SIZE, prevPageToken); + SERVICE, + VERSION, + PAGE_SIZE, + prevPageToken + ); prevPageToken = response.nextPageToken; allGroups = response.errorGroupStats || []; assert.ok( - allGroups, 'Failed to get groups from the Error Reporting API'); + allGroups, + 'Failed to get groups from the Error Reporting API' + ); const filteredGroups = allGroups!.filter(errItem => { return ( - errItem && errItem.representative && - errItem.representative.serviceContext && - errItem.representative.serviceContext.service === SERVICE && - errItem.representative.serviceContext.version === VERSION && - messageTest(errItem.representative.message)); + errItem && + errItem.representative && + errItem.representative.serviceContext && + errItem.representative.serviceContext.service === SERVICE && + errItem.representative.serviceContext.version === VERSION && + messageTest(errItem.representative.message) + ); }); groups = groups.concat(filteredGroups); await delay(15000); @@ -520,25 +583,34 @@ describe('error-reporting', () => { } async function verifyServerResponse( - messageTest: (message: string) => void, maxCount: number, - timeout: number) { + messageTest: (message: string) => void, + maxCount: number, + timeout: number + ) { const matchedErrors = await verifyAllGroups(messageTest, maxCount, timeout); assert.strictEqual( - matchedErrors.length, maxCount, - `Expected to find ${maxCount} error items but found ${ - matchedErrors.length}: ${JSON.stringify(matchedErrors, null, 2)}`); + matchedErrors.length, + maxCount, + `Expected to find ${maxCount} error items but found ${ + matchedErrors.length + }: ${JSON.stringify(matchedErrors, null, 2)}` + ); const errItem = matchedErrors[0]; assert.ok( - errItem, - 'Retrieved an error item from the Error Reporting API but it is falsy.'); + errItem, + 'Retrieved an error item from the Error Reporting API but it is falsy.' + ); const rep = errItem.representative; assert.ok(rep, 'Expected the error item to have representative'); // Ensure the stack trace in the message does not contain any frames // specific to the error-reporting library. assert.strictEqual( - rep.message.indexOf(SRC_ROOT), -1, - `Expected the error item's representative's message to start with ${ - SRC_ROOT} but found '${rep.message}'`); + rep.message.indexOf(SRC_ROOT), + -1, + `Expected the error item's representative's message to start with ${SRC_ROOT} but found '${ + rep.message + }'` + ); // Ensure the stack trace in the mssage contains the frame corresponding // to the 'expectedTopOfStack' function because that is the name of // function used in this file that is the topmost function in the call @@ -547,35 +619,46 @@ describe('error-reporting', () => { // error-reporting library are removed from the stack trace. const expectedTopOfStack = 'expectedTopOfStack'; assert.notStrictEqual( - rep.message.indexOf(expectedTopOfStack), -1, - `Expected the error item's representative's message to not contain ${ - expectedTopOfStack} but found '${rep.message}'`); + rep.message.indexOf(expectedTopOfStack), + -1, + `Expected the error item's representative's message to not contain ${expectedTopOfStack} but found '${ + rep.message + }'` + ); const context = rep.serviceContext; assert.ok( - context, `Expected the error item's representative to have a context`); + context, + `Expected the error item's representative to have a context` + ); assert.strictEqual(context.service, SERVICE); assert.strictEqual(context.version, VERSION); } // the `errOb` argument can be anything, including `null` and `undefined` async function verifyReporting( - errOb: any, // tslint:disable-line:no-any - messageTest: (message: string) => void, maxCount: number, - timeout: number) { + errOb: any, // tslint:disable-line:no-any + messageTest: (message: string) => void, + maxCount: number, + timeout: number + ) { function expectedTopOfStack() { return new Promise((resolve, reject) => { errors.report( - errOb, undefined, undefined, async (err, response, body) => { - try { - assert.ifError(err); - assert(is.object(response)); - deepStrictEqual(body, {}); - await verifyServerResponse(messageTest, maxCount, timeout); - resolve(); - } catch (e) { - reject(e); - } - }); + errOb, + undefined, + undefined, + async (err, response, body) => { + try { + assert.ifError(err); + assert(is.object(response)); + deepStrictEqual(body, {}); + await verifyServerResponse(messageTest, maxCount, timeout); + resolve(); + } catch (e) { + reject(e); + } + } + ); }); } await expectedTopOfStack(); @@ -587,99 +670,133 @@ describe('error-reporting', () => { // As such, each test is set to fail due to a timeout only if sufficiently // more than TIMEOUT ms has elapsed to avoid test fragility. - it('Should correctly publish an error that is an Error object', - async function verifyErrors() { - this.timeout(TIMEOUT); - const errorId = buildName('with-error-constructor'); - function expectedTopOfStack() { - return new Error(errorId); - } - const errOb = expectedTopOfStack(); - await verifyReporting(errOb, message => { - return message.startsWith('Error: ' + errorId + '\n'); - }, 1, TIMEOUT); - }); - - it('Should correctly publish an error that is a string', - async function(this) { - this.timeout(TIMEOUT); - const errorId = buildName('with-string'); - await verifyReporting(errorId, message => { - return message.startsWith(errorId + '\n'); - }, 1, TIMEOUT); - }); - - it('Should correctly publish an error that is undefined', - async function(this) { - this.timeout(TIMEOUT); - await verifyReporting(undefined, message => { - return message.startsWith('undefined\n'); - }, 1, TIMEOUT); - }); + it('Should correctly publish an error that is an Error object', async function verifyErrors() { + this.timeout(TIMEOUT); + const errorId = buildName('with-error-constructor'); + function expectedTopOfStack() { + return new Error(errorId); + } + const errOb = expectedTopOfStack(); + await verifyReporting( + errOb, + message => { + return message.startsWith('Error: ' + errorId + '\n'); + }, + 1, + TIMEOUT + ); + }); + + it('Should correctly publish an error that is a string', async function(this) { + this.timeout(TIMEOUT); + const errorId = buildName('with-string'); + await verifyReporting( + errorId, + message => { + return message.startsWith(errorId + '\n'); + }, + 1, + TIMEOUT + ); + }); + + it('Should correctly publish an error that is undefined', async function(this) { + this.timeout(TIMEOUT); + await verifyReporting( + undefined, + message => { + return message.startsWith('undefined\n'); + }, + 1, + TIMEOUT + ); + }); it('Should correctly publish an error that is null', async function(this) { this.timeout(TIMEOUT); - await verifyReporting(null, message => { - return message.startsWith('null\n'); - }, 1, TIMEOUT); + await verifyReporting( + null, + message => { + return message.startsWith('null\n'); + }, + 1, + TIMEOUT + ); }); - it('Should correctly publish an error that is a plain object', - async function(this) { - this.timeout(TIMEOUT); - await verifyReporting({someKey: 'someValue'}, message => { - return message.startsWith('{ someKey: \'someValue\' }\n'); - }, 1, TIMEOUT); - }); - - it('Should correctly publish an error that is a number', - async function(this) { - this.timeout(TIMEOUT); - const num = new Date().getTime(); - await verifyReporting(num, message => { - return message.startsWith('' + num + '\n'); - }, 1, TIMEOUT); - }); - - it('Should correctly publish an error that is of an unknown type', - async function(this) { - this.timeout(TIMEOUT); - const bool = true; - await verifyReporting(bool, message => { - return message.startsWith('true\n'); - }, 1, TIMEOUT); - }); - - it('Should correctly publish errors using an error builder', - async function(this) { - this.timeout(TIMEOUT); - const errorId = buildName('with-error-builder'); - // Use an IIFE with the name `definitionSiteFunction` to use later to - // ensure the stack trace of the point where the error message was - // constructed is used. Use an IIFE with the name `expectedTopOfStack` so - // that the test can verify that the stack trace used does not contain - // any frames specific to the error-reporting library. - function definitionSiteFunction() { - function expectedTopOfStack() { - return errors.event().setMessage(errorId); - } - return expectedTopOfStack(); - } - const errOb = definitionSiteFunction(); - async function callingSiteFunction() { - await verifyReporting(errOb, message => { - // Verify that the stack trace of the constructed error - // uses the stack trace at the point where the error was constructed - // and not the stack trace at the point where the `report` method - // was called. - return ( - message.startsWith(errorId) && - message.indexOf('callingSiteFunction') === -1 && - message.indexOf('definitionSiteFunction') !== -1); - }, 1, TIMEOUT); - } - await callingSiteFunction(); - }); + it('Should correctly publish an error that is a plain object', async function(this) { + this.timeout(TIMEOUT); + await verifyReporting( + {someKey: 'someValue'}, + message => { + return message.startsWith("{ someKey: 'someValue' }\n"); + }, + 1, + TIMEOUT + ); + }); + + it('Should correctly publish an error that is a number', async function(this) { + this.timeout(TIMEOUT); + const num = new Date().getTime(); + await verifyReporting( + num, + message => { + return message.startsWith('' + num + '\n'); + }, + 1, + TIMEOUT + ); + }); + + it('Should correctly publish an error that is of an unknown type', async function(this) { + this.timeout(TIMEOUT); + const bool = true; + await verifyReporting( + bool, + message => { + return message.startsWith('true\n'); + }, + 1, + TIMEOUT + ); + }); + + it('Should correctly publish errors using an error builder', async function(this) { + this.timeout(TIMEOUT); + const errorId = buildName('with-error-builder'); + // Use an IIFE with the name `definitionSiteFunction` to use later to + // ensure the stack trace of the point where the error message was + // constructed is used. Use an IIFE with the name `expectedTopOfStack` so + // that the test can verify that the stack trace used does not contain + // any frames specific to the error-reporting library. + function definitionSiteFunction() { + function expectedTopOfStack() { + return errors.event().setMessage(errorId); + } + return expectedTopOfStack(); + } + const errOb = definitionSiteFunction(); + async function callingSiteFunction() { + await verifyReporting( + errOb, + message => { + // Verify that the stack trace of the constructed error + // uses the stack trace at the point where the error was constructed + // and not the stack trace at the point where the `report` method + // was called. + return ( + message.startsWith(errorId) && + message.indexOf('callingSiteFunction') === -1 && + message.indexOf('definitionSiteFunction') !== -1 + ); + }, + 1, + TIMEOUT + ); + } + await callingSiteFunction(); + }); it('Should report unhandledRejections if enabled', async function(this) { this.timeout(TIMEOUT); @@ -694,10 +811,12 @@ describe('error-reporting', () => { } expectedTopOfStack(); const rejectText = 'Error: ' + rejectValue; - const expected = 'UnhandledPromiseRejectionWarning: Unhandled ' + - 'promise rejection: ' + rejectText + - '. This rejection has been reported to the ' + - 'Google Cloud Platform error-reporting console.'; + const expected = + 'UnhandledPromiseRejectionWarning: Unhandled ' + + 'promise rejection: ' + + rejectText + + '. This rejection has been reported to the ' + + 'Google Cloud Platform error-reporting console.'; await delay(10000); assert.notStrictEqual(logOutput.indexOf(expected), -1); }); @@ -715,10 +834,12 @@ describe('error-reporting', () => { } expectedTopOfStack(); const rejectText = 'Error: ' + rejectValue; - const expected = 'UnhandledPromiseRejectionWarning: Unhandled ' + - 'promise rejection: ' + rejectText + - '. This rejection has been reported to the ' + - 'Google Cloud Platform error-reporting console.'; + const expected = + 'UnhandledPromiseRejectionWarning: Unhandled ' + + 'promise rejection: ' + + rejectText + + '. This rejection has been reported to the ' + + 'Google Cloud Platform error-reporting console.'; await delay(10000); assert.strictEqual(logOutput.indexOf(expected), -1); }); diff --git a/handwritten/error-reporting/system-test/test-install.ts b/handwritten/error-reporting/system-test/test-install.ts index a5cbb633db7..bc8b2937655 100644 --- a/handwritten/error-reporting/system-test/test-install.ts +++ b/handwritten/error-reporting/system-test/test-install.ts @@ -23,7 +23,7 @@ const SKIP = { express: false, hapi: {sixteen: false, seventeen: false}, koa: {one: false, two: false}, - restify: {seven: false, eight: false} + restify: {seven: false, eight: false}, }; const TS_CODE_ARRAY: check.CodeSample[] = [ @@ -33,7 +33,7 @@ new errorReporting.ErrorReporting();`, description: 'imports the module using * syntax', dependencies: [], devDependencies: [], - skip: SKIP.base + skip: SKIP.base, }, { code: `import {ErrorReporting} from '@google-cloud/error-reporting'; @@ -41,7 +41,7 @@ new ErrorReporting();`, description: 'imports the module with {} syntax', dependencies: [], devDependencies: [], - skip: SKIP.base + skip: SKIP.base, }, { code: `import {ErrorReporting} from '@google-cloud/error-reporting'; @@ -51,10 +51,10 @@ new ErrorReporting({ } });`, description: - 'imports the module and starts with a partial `serviceContext`', + 'imports the module and starts with a partial `serviceContext`', dependencies: [], devDependencies: [], - skip: SKIP.base + skip: SKIP.base, }, { code: `import {ErrorReporting} from '@google-cloud/error-reporting'; @@ -66,10 +66,10 @@ new ErrorReporting({ } });`, description: - 'imports the module and starts with a complete `serviceContext`', + 'imports the module and starts with a complete `serviceContext`', dependencies: [], devDependencies: [], - skip: SKIP.base + skip: SKIP.base, }, { code: `import * as express from 'express'; @@ -93,7 +93,7 @@ app.use(errors.express); description: 'uses express', dependencies: ['express'], devDependencies: ['@types/express'], - skip: SKIP.express + skip: SKIP.express, }, { code: `import * as hapi from 'hapi'; @@ -118,7 +118,7 @@ server.register(errors.hapi); description: 'uses hapi16', dependencies: ['hapi@16.x.x'], devDependencies: ['@types/hapi@16.x.x'], - skip: SKIP.hapi.sixteen + skip: SKIP.hapi.sixteen, }, { code: `import * as hapi from 'hapi'; @@ -148,7 +148,7 @@ start().catch(console.error); description: 'uses hapi17', dependencies: ['hapi@17.x.x'], devDependencies: ['@types/hapi@17.x.x'], - skip: SKIP.hapi.seventeen + skip: SKIP.hapi.seventeen, }, { code: `import * as Koa from 'koa'; @@ -173,7 +173,7 @@ app.use(function *(this: any): IterableIterator { description: 'uses koa1', dependencies: ['koa@1.x.x'], devDependencies: ['@types/koa'], - skip: SKIP.koa.one + skip: SKIP.koa.one, }, { code: `import * as Koa from 'koa'; @@ -198,7 +198,7 @@ app.use(async (ctx: Koa.Context, next: {}): Promise => { description: 'uses koa2', dependencies: ['koa@2.x.x'], devDependencies: ['@types/koa@2.x.x'], - skip: SKIP.koa.two + skip: SKIP.koa.two, }, { code: `import * as restify from 'restify'; @@ -219,7 +219,7 @@ server.head('/hello/:name', respond); description: 'uses restify', dependencies: ['restify@7.x.x'], devDependencies: ['@types/restify@7.x.x'], - skip: SKIP.restify.seven + skip: SKIP.restify.seven, }, { code: `import * as restify from 'restify'; @@ -240,37 +240,34 @@ server.head('/hello/:name', respond); description: 'uses restify', dependencies: ['restify@8.x.x'], devDependencies: ['@types/restify@7.x.x'], - skip: SKIP.restify.eight + skip: SKIP.restify.eight, }, ]; const JS_CODE_ARRAY: check.CodeSample[] = [ { - code: - `const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; + code: `const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; new ErrorReporting();`, description: 'requires the module using Node 4+ syntax', dependencies: [], devDependencies: [], - skip: SKIP.base + skip: SKIP.base, }, { - code: - `const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; + code: `const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; new ErrorReporting({ serviceContext: { service: 'some service' } });`, description: - 'requires the module and starts with a partial `serviceContext`', + 'requires the module and starts with a partial `serviceContext`', dependencies: [], devDependencies: [], - skip: SKIP.base + skip: SKIP.base, }, { - code: - `const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; + code: `const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; new ErrorReporting({ projectId: 'some-project', serviceContext: { @@ -279,10 +276,10 @@ new ErrorReporting({ } });`, description: - 'requires the module and starts with a complete `serviceContext`', + 'requires the module and starts with a complete `serviceContext`', dependencies: [], devDependencies: [], - skip: SKIP.base + skip: SKIP.base, }, { code: `const express = require('express'); @@ -308,7 +305,7 @@ app.use(errors.express); description: 'uses express', dependencies: ['express'], devDependencies: [], - skip: SKIP.express + skip: SKIP.express, }, { code: `const hapi = require('hapi'); @@ -333,7 +330,7 @@ server.register(errors.hapi); description: 'uses hapi16', dependencies: ['hapi@16.x.x'], devDependencies: [], - skip: SKIP.hapi.sixteen + skip: SKIP.hapi.sixteen, }, { code: `const hapi = require('hapi'); @@ -363,7 +360,7 @@ start().catch(console.error); description: 'uses hapi17', dependencies: ['hapi@17.x.x'], devDependencies: [], - skip: SKIP.hapi.seventeen + skip: SKIP.hapi.seventeen, }, { code: `const Koa = require('koa'); @@ -388,7 +385,7 @@ app.use(function *(){ description: 'uses koa1', dependencies: ['koa@1.x.x'], devDependencies: [], - skip: SKIP.koa.one + skip: SKIP.koa.one, }, { code: `const Koa = require('koa'); @@ -413,7 +410,7 @@ app.use(async (ctx, next) => { description: 'uses koa2', dependencies: ['koa@2.x.x'], devDependencies: [], - skip: SKIP.koa.two + skip: SKIP.koa.two, }, { code: `const restify = require('restify'); @@ -434,7 +431,7 @@ server.head('/hello/:name', respond); description: 'uses restify', dependencies: ['restify@7.x.x'], devDependencies: [], - skip: SKIP.restify.seven + skip: SKIP.restify.seven, }, { code: `const restify = require('restify'); @@ -455,8 +452,8 @@ server.head('/hello/:name', respond); description: 'uses restify', dependencies: ['restify@8.x.x'], devDependencies: [], - skip: SKIP.restify.eight - } + skip: SKIP.restify.eight, + }, ]; check.testInstallation(TS_CODE_ARRAY, JS_CODE_ARRAY, {timeout: 2 * 60 * 1000}); diff --git a/handwritten/error-reporting/test/fixtures/configuration.ts b/handwritten/error-reporting/test/fixtures/configuration.ts index 9e176a480e1..764bcff5ee6 100644 --- a/handwritten/error-reporting/test/fixtures/configuration.ts +++ b/handwritten/error-reporting/test/fixtures/configuration.ts @@ -14,10 +14,14 @@ * limitations under the License. */ -import {Configuration, ConfigurationOptions, Logger} from '../../src/configuration'; +import { + Configuration, + ConfigurationOptions, + Logger, +} from '../../src/configuration'; export class FakeConfiguration extends Configuration { - constructor(config: ConfigurationOptions|undefined, logger?: Logger) { - super(config, logger || {warn() {}} as {} as Logger); + constructor(config: ConfigurationOptions | undefined, logger?: Logger) { + super(config, logger || (({warn() {}} as {}) as Logger)); } } diff --git a/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts index 93357c96ae9..fba7f2b8e1f 100644 --- a/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts @@ -42,18 +42,20 @@ app.post('/testErrorHandling', (req, res, next) => { app.get('/customError', (req, res, next) => { errorHandler.report( - 'Error on Express Custom Error GET Route', (err: Error|null) => { - if (err) { - log(WARNING_HEADER); - log('Error in sending custom get error to api'); - log(err); - log(EXCLAMATION_LN); - } else { - log(EXCLAMATION_LN); - log('Successfully sent custom get error to api'); - log(EXCLAMATION_LN); - } - }); + 'Error on Express Custom Error GET Route', + (err: Error | null) => { + if (err) { + log(WARNING_HEADER); + log('Error in sending custom get error to api'); + log(err); + log(EXCLAMATION_LN); + } else { + log(EXCLAMATION_LN); + log('Successfully sent custom get error to api'); + log(EXCLAMATION_LN); + } + } + ); res.send('Success'); res.end(); @@ -75,26 +77,29 @@ function throwUncaughtError() { function reportManualError() { log('Reporting a manual error..'); errorHandler.report( - new Error('This is a manually reported error'), null, null, - (err: Error|null) => { - if (err) { - log(WARNING_HEADER); - log('Got an error in sending error information to the API'); - log(err); - log(EXCLAMATION_LN); - } else { - log(EXCLAMATION_LN); - log('Successfully sent error information to the API'); - log(EXCLAMATION_LN); - } + new Error('This is a manually reported error'), + null, + null, + (err: Error | null) => { + if (err) { + log(WARNING_HEADER); + log('Got an error in sending error information to the API'); + log(err); + log(EXCLAMATION_LN); + } else { + log(EXCLAMATION_LN); + log('Successfully sent error information to the API'); + log(EXCLAMATION_LN); + } - if (process.env.THROW_ON_STARTUP) { - throwUncaughtError(); - } - }); + if (process.env.THROW_ON_STARTUP) { + throwUncaughtError(); + } + } + ); } log('reporting a manual error first'); -errorHandler.report(new Error('This is a test'), (err: Error|null) => { +errorHandler.report(new Error('This is a test'), (err: Error | null) => { log('reported first manual error'); if (err) { log('Error was unable to be reported', err); diff --git a/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts index 61c89a5e678..7a5f07ffe87 100644 --- a/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts @@ -50,4 +50,4 @@ server.register({plugin: errorHandler.hapi}).then(() => { server.start().then(() => { log('Server running at', server.info!.uri); -}); \ No newline at end of file +}); diff --git a/handwritten/error-reporting/test/test-servers/manual_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/manual_scaffold_server.ts index eff0a50e9e0..6715e646f8f 100644 --- a/handwritten/error-reporting/test/test-servers/manual_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/manual_scaffold_server.ts @@ -16,8 +16,13 @@ import {ErrorReporting} from '../../src/index'; const errors = new ErrorReporting(); -(errors.report as Function)('Sample test string', (err: Error|null) => { +(errors.report as Function)('Sample test string', (err: Error | null) => { // eslint-disable-next-line no-console console.log( - 'Callback from report:\n', '\tError: ', err, '\n', '\tResponse Body:'); + 'Callback from report:\n', + '\tError: ', + err, + '\n', + '\tResponse Body:' + ); }); diff --git a/handwritten/error-reporting/test/unit/classes/error-message.ts b/handwritten/error-reporting/test/unit/classes/error-message.ts index 708d1142281..10ce61e1728 100644 --- a/handwritten/error-reporting/test/unit/classes/error-message.ts +++ b/handwritten/error-reporting/test/unit/classes/error-message.ts @@ -74,97 +74,116 @@ describe('Fuzzing against setServiceContext', () => { it('Should set the value for service context', () => { em.setServiceContext(AFFIRMATIVE_TEST_VALUE, AFFIRMATIVE_TEST_VALUE); deepStrictEqual( - em.serviceContext, { - service: AFFIRMATIVE_TEST_VALUE, - version: AFFIRMATIVE_TEST_VALUE, - }, - [ - 'In the affirmative case the value should be settable to a valid string', - 'and by setting this value this should mutate the instance', - ].join(' ')); + em.serviceContext, + { + service: AFFIRMATIVE_TEST_VALUE, + version: AFFIRMATIVE_TEST_VALUE, + }, + [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ') + ); }); it('Should set the default values', () => { em.setServiceContext(DEFAULT_TEST_VALUE, DEFAULT_TEST_VALUE); deepStrictEqual( - em.serviceContext, { - service: DEFAULT_TEST_VALUE, - version: DEFAULT_TEST_VALUE, - }, - [ - 'In resetting to default valid values the instance should reflect the', - 'value update', - ].join(' ')); + em.serviceContext, + { + service: DEFAULT_TEST_VALUE, + version: DEFAULT_TEST_VALUE, + }, + [ + 'In resetting to default valid values the instance should reflect the', + 'value update', + ].join(' ') + ); }); it('Should still set version with affirmative value', () => { em.setServiceContext(null!, AFFIRMATIVE_TEST_VALUE); deepStrictEqual( - em.serviceContext, { - service: DEFAULT_SERVICE_VALUE, - version: AFFIRMATIVE_TEST_VALUE, - }, - [ - 'Providing only a valid value to the second argument of', - 'setServiceContext should set the service property as an empty string', - 'but set the version property to the affirmative value.', - ].join(' ')); + em.serviceContext, + { + service: DEFAULT_SERVICE_VALUE, + version: AFFIRMATIVE_TEST_VALUE, + }, + [ + 'Providing only a valid value to the second argument of', + 'setServiceContext should set the service property as an empty string', + 'but set the version property to the affirmative value.', + ].join(' ') + ); }); it('Should still set service with affirmative value', () => { em.setServiceContext(AFFIRMATIVE_TEST_VALUE, null!); deepStrictEqual( - em.serviceContext, { - service: AFFIRMATIVE_TEST_VALUE, - version: DEFAULT_VERSION_VALUE, - }, - [ - 'Providing only a valid value to the first argument of', - 'setServiceContext should set the version property as an empty string', - 'but set the service property to the affirmative value.', - ].join(' ')); + em.serviceContext, + { + service: AFFIRMATIVE_TEST_VALUE, + version: DEFAULT_VERSION_VALUE, + }, + [ + 'Providing only a valid value to the first argument of', + 'setServiceContext should set the version property as an empty string', + 'but set the service property to the affirmative value.', + ].join(' ') + ); }); it('Should set default values on both', () => { em.setServiceContext(null!, null!); deepStrictEqual( - em.serviceContext, { - service: DEFAULT_SERVICE_VALUE, - version: DEFAULT_VERSION_VALUE, - }, - [ - 'Providing null as the value to both arguments should set both', - 'properties as empty strings.', - ].join(' ')); + em.serviceContext, + { + service: DEFAULT_SERVICE_VALUE, + version: DEFAULT_VERSION_VALUE, + }, + [ + 'Providing null as the value to both arguments should set both', + 'properties as empty strings.', + ].join(' ') + ); }); it('Should set default values on both', () => { - em.setServiceContext(2 as {} as string, 1.3 as {} as string); + em.setServiceContext((2 as {}) as string, (1.3 as {}) as string); deepStrictEqual( - em.serviceContext, { - service: DEFAULT_SERVICE_VALUE, - version: DEFAULT_VERSION_VALUE, - }, - [ - 'Providing numbers as the value to both arguments should set both', - 'properties as empty strings.', - ].join(' ')); + em.serviceContext, + { + service: DEFAULT_SERVICE_VALUE, + version: DEFAULT_VERSION_VALUE, + }, + [ + 'Providing numbers as the value to both arguments should set both', + 'properties as empty strings.', + ].join(' ') + ); }); it('Should set as default', () => { - em.setServiceContext({test: 'true'} as {} as string, [] as {} as string); + em.setServiceContext( + ({test: 'true'} as {}) as string, + ([] as {}) as string + ); deepStrictEqual( - em.serviceContext, { - service: DEFAULT_SERVICE_VALUE, - version: DEFAULT_VERSION_VALUE, - }, - [ - 'Providing arrays or objects as the value to both arguments', - 'should set both properties as empty strings.', - ].join(' ')); + em.serviceContext, + { + service: DEFAULT_SERVICE_VALUE, + version: DEFAULT_VERSION_VALUE, + }, + [ + 'Providing arrays or objects as the value to both arguments', + 'should set both properties as empty strings.', + ].join(' ') + ); }); it('Should set as default', () => { em.setServiceContext(); deepStrictEqual( - em.serviceContext, { - service: DEFAULT_SERVICE_VALUE, - version: DEFAULT_VERSION_VALUE, - }, - 'Providing no arguments should set both properties as empty strings'); + em.serviceContext, + { + service: DEFAULT_SERVICE_VALUE, + version: DEFAULT_VERSION_VALUE, + }, + 'Providing no arguments should set both properties as empty strings' + ); }); }); @@ -178,17 +197,23 @@ describe('Fuzzing against setMessage', () => { it('Should set the message', () => { em.setMessage(AFFIRMATIVE_TEST_VALUE); - assert(em.message === AFFIRMATIVE_TEST_VALUE, [ - 'In the affirmative case the value should be settable to a valid string', - 'and by setting this value this should mutate the instance', - ].join(' ')); + assert( + em.message === AFFIRMATIVE_TEST_VALUE, + [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ') + ); }); it('Should default', () => { em.setMessage(); - assert(em.message === NEGATIVE_TEST_VALUE, [ - 'By providing no argument (undefined) to setMessage the property', - 'message should be set to an empty string on the instance', - ].join(' ')); + assert( + em.message === NEGATIVE_TEST_VALUE, + [ + 'By providing no argument (undefined) to setMessage the property', + 'message should be set to an empty string on the instance', + ].join(' ') + ); }); }); @@ -201,17 +226,23 @@ describe('Fuzzing against setHttpMethod', () => { }); it('Should set the method', () => { em.setHttpMethod(AFFIRMATIVE_TEST_VALUE); - assert(em.context.httpRequest.method === AFFIRMATIVE_TEST_VALUE, [ - 'In the affirmative case the value should be settable to a valid string', - 'and by setting this value this should mutate the instance', - ].join(' ')); + assert( + em.context.httpRequest.method === AFFIRMATIVE_TEST_VALUE, + [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ') + ); }); it('Should default', () => { em.setHttpMethod(); - assert(em.context.httpRequest.method === NEGATIVE_TEST_VALUE, [ - 'By providing no argument (undefined) to setHttpMethod the property', - 'message should be set to an empty string on the instance', - ].join(' ')); + assert( + em.context.httpRequest.method === NEGATIVE_TEST_VALUE, + [ + 'By providing no argument (undefined) to setHttpMethod the property', + 'message should be set to an empty string on the instance', + ].join(' ') + ); }); }); @@ -224,17 +255,23 @@ describe('Fuzzing against setUrl', () => { }); it('Should set url', () => { em.setUrl(AFFIRMATIVE_TEST_VALUE); - assert(em.context.httpRequest.url === AFFIRMATIVE_TEST_VALUE, [ - 'In the affirmative case the value should be settable to a valid string', - 'and by setting this value this should mutate the instance', - ].join(' ')); + assert( + em.context.httpRequest.url === AFFIRMATIVE_TEST_VALUE, + [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ') + ); }); it('Should default', () => { em.setUrl(); - assert(em.context.httpRequest.url === NEGATIVE_TEST_VALUE, [ - 'By providing no argument (undefined) to setUrl the property', - 'message should be set to an empty string on the instance', - ].join(' ')); + assert( + em.context.httpRequest.url === NEGATIVE_TEST_VALUE, + [ + 'By providing no argument (undefined) to setUrl the property', + 'message should be set to an empty string on the instance', + ].join(' ') + ); }); }); @@ -247,17 +284,23 @@ describe('Fuzzing against setUserAgent', () => { }); it('Should set userAgent', () => { em.setUserAgent(AFFIRMATIVE_TEST_VALUE); - assert(em.context.httpRequest.userAgent === AFFIRMATIVE_TEST_VALUE, [ - 'In the affirmative case the value should be settable to a valid string', - 'and by setting this value this should mutate the instance', - ].join(' ')); + assert( + em.context.httpRequest.userAgent === AFFIRMATIVE_TEST_VALUE, + [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ') + ); }); it('Should default', () => { em.setUserAgent(); - assert(em.context.httpRequest.userAgent === NEGATIVE_TEST_VALUE, [ - 'By providing no argument (undefined) to setUserAgent the property', - 'message should be set to an empty string on the instance', - ].join(' ')); + assert( + em.context.httpRequest.userAgent === NEGATIVE_TEST_VALUE, + [ + 'By providing no argument (undefined) to setUserAgent the property', + 'message should be set to an empty string on the instance', + ].join(' ') + ); }); }); @@ -270,17 +313,23 @@ describe('Fuzzing against setReferrer', () => { }); it('Should set referrer', () => { em.setReferrer(AFFIRMATIVE_TEST_VALUE); - assert(em.context.httpRequest.referrer === AFFIRMATIVE_TEST_VALUE, [ - 'In the affirmative case the value should be settable to a valid string', - 'and by setting this value this should mutate the instance', - ].join(' ')); + assert( + em.context.httpRequest.referrer === AFFIRMATIVE_TEST_VALUE, + [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ') + ); }); it('Should default', () => { em.setReferrer(); - assert(em.context.httpRequest.referrer === NEGATIVE_TEST_VALUE, [ - 'By providing no argument (undefined) to setReferrer the property', - 'message should be set to an empty string on the instance', - ].join(' ')); + assert( + em.context.httpRequest.referrer === NEGATIVE_TEST_VALUE, + [ + 'By providing no argument (undefined) to setReferrer the property', + 'message should be set to an empty string on the instance', + ].join(' ') + ); }); }); @@ -293,17 +342,23 @@ describe('Fuzzing against setResponseStatusCode', () => { }); it('Should set responseStatusCode', () => { em.setResponseStatusCode(AFFIRMATIVE_TEST_VALUE); - assert(em.context.httpRequest.responseStatusCode === AFFIRMATIVE_TEST_VALUE, [ - 'In the affirmative case the value should be settable to a valid string', - 'and by setting this value this should mutate the instance', - ].join(' ')); + assert( + em.context.httpRequest.responseStatusCode === AFFIRMATIVE_TEST_VALUE, + [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ') + ); }); it('Should default', () => { em.setResponseStatusCode(); - assert(em.context.httpRequest.responseStatusCode === NEGATIVE_TEST_VALUE, [ - 'By providing no argument (undefined) to setResponseStatusCode the property', - 'message should be set to an empty string on the instance', - ].join(' ')); + assert( + em.context.httpRequest.responseStatusCode === NEGATIVE_TEST_VALUE, + [ + 'By providing no argument (undefined) to setResponseStatusCode the property', + 'message should be set to an empty string on the instance', + ].join(' ') + ); }); }); @@ -316,17 +371,23 @@ describe('Fuzzing against setRemoteIp', () => { }); it('Should set remoteIp', () => { em.setRemoteIp(AFFIRMATIVE_TEST_VALUE); - assert(em.context.httpRequest.remoteIp === AFFIRMATIVE_TEST_VALUE, [ - 'In the affirmative case the value should be settable to a valid string', - 'and by setting this value this should mutate the instance', - ].join(' ')); + assert( + em.context.httpRequest.remoteIp === AFFIRMATIVE_TEST_VALUE, + [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ') + ); }); it('Should default', () => { em.setRemoteIp(); - assert(em.context.httpRequest.remoteIp === NEGATIVE_TEST_VALUE, [ - 'By providing no argument (undefined) to setRemoteIp the property', - 'message should be set to an empty string on the instance', - ].join(' ')); + assert( + em.context.httpRequest.remoteIp === NEGATIVE_TEST_VALUE, + [ + 'By providing no argument (undefined) to setRemoteIp the property', + 'message should be set to an empty string on the instance', + ].join(' ') + ); }); }); @@ -339,17 +400,23 @@ describe('Fuzzing against setUser', () => { }); it('Should set user', () => { em.setUser(AFFIRMATIVE_TEST_VALUE); - assert(em.context.user === AFFIRMATIVE_TEST_VALUE, [ - 'In the affirmative case the value should be settable to a valid string', - 'and by setting this value this should mutate the instance', - ].join(' ')); + assert( + em.context.user === AFFIRMATIVE_TEST_VALUE, + [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ') + ); }); it('Should default', () => { em.setUser(); - assert(em.context.user === NEGATIVE_TEST_VALUE, [ - 'By providing no argument (undefined) to setUser the property', - 'user should be set to an empty string on the instance', - ].join(' ')); + assert( + em.context.user === NEGATIVE_TEST_VALUE, + [ + 'By providing no argument (undefined) to setUser the property', + 'user should be set to an empty string on the instance', + ].join(' ') + ); }); }); @@ -362,17 +429,23 @@ describe('Fuzzing against setFilePath', () => { }); it('Should set filePath', () => { em.setFilePath(AFFIRMATIVE_TEST_VALUE); - assert(em.context.reportLocation.filePath === AFFIRMATIVE_TEST_VALUE, [ - 'In the affirmative case the value should be settable to a valid string', - 'and by setting this value this should mutate the instance', - ].join(' ')); + assert( + em.context.reportLocation.filePath === AFFIRMATIVE_TEST_VALUE, + [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ') + ); }); it('Should default', () => { em.setFilePath(); - assert(em.context.reportLocation.filePath === NEGATIVE_TEST_VALUE, [ - 'By providing no argument (undefined) to setFilePath the property', - 'filePath should be set to an empty string on the instance', - ].join(' ')); + assert( + em.context.reportLocation.filePath === NEGATIVE_TEST_VALUE, + [ + 'By providing no argument (undefined) to setFilePath the property', + 'filePath should be set to an empty string on the instance', + ].join(' ') + ); }); }); @@ -385,17 +458,23 @@ describe('Fuzzing against setLineNumber', () => { }); it('Should set lineNumber', () => { em.setLineNumber(AFFIRMATIVE_TEST_VALUE); - assert(em.context.reportLocation.lineNumber === AFFIRMATIVE_TEST_VALUE, [ - 'In the affirmative case the value should be settable to a valid string', - 'and by setting this value this should mutate the instance', - ].join(' ')); + assert( + em.context.reportLocation.lineNumber === AFFIRMATIVE_TEST_VALUE, + [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ') + ); }); it('Should default', () => { em.setLineNumber(); - assert(em.context.reportLocation.lineNumber === NEGATIVE_TEST_VALUE, [ - 'By providing no argument (undefined) to setLineNumber the property', - 'lineNumber should be set to an empty string on the instance', - ].join(' ')); + assert( + em.context.reportLocation.lineNumber === NEGATIVE_TEST_VALUE, + [ + 'By providing no argument (undefined) to setLineNumber the property', + 'lineNumber should be set to an empty string on the instance', + ].join(' ') + ); }); }); @@ -408,17 +487,23 @@ describe('Fuzzing against setFunctionName', () => { }); it('Should set functionName', () => { em.setFunctionName(AFFIRMATIVE_TEST_VALUE); - assert(em.context.reportLocation.functionName === AFFIRMATIVE_TEST_VALUE, [ - 'In the affirmative case the value should be settable to a valid string', - 'and by setting this value this should mutate the instance', - ].join(' ')); + assert( + em.context.reportLocation.functionName === AFFIRMATIVE_TEST_VALUE, + [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ') + ); }); it('Should default', () => { em.setFunctionName(); - assert(em.context.reportLocation.functionName === NEGATIVE_TEST_VALUE, [ - 'By providing no argument (undefined) to setFunctionName the property', - 'functionName should be set to an empty string on the instance', - ].join(' ')); + assert( + em.context.reportLocation.functionName === NEGATIVE_TEST_VALUE, + [ + 'By providing no argument (undefined) to setFunctionName the property', + 'functionName should be set to an empty string on the instance', + ].join(' ') + ); }); }); @@ -447,99 +532,159 @@ describe('Fuzzing against consumeRequestInformation', () => { }; it('Should consume the stubbed request object', () => { em.consumeRequestInformation( - AFFIRMATIVE_TEST_VALUE as RequestInformationContainer); - assert(em.context.httpRequest.method === A_VALID_STRING, [ - 'The error messages method, given a valid string, should be', - 'set to that value', - ].join(' ')); - assert(em.context.httpRequest.url === A_VALID_STRING, [ - 'The error messages url, given a valid string, should be', - 'set to that value', - ].join(' ')); - assert(em.context.httpRequest.userAgent === A_VALID_STRING, [ - 'The error messages userAgent, given a valid string, should be', - 'set to that value', - ].join(' ')); - assert(em.context.httpRequest.referrer === A_VALID_STRING, [ - 'The error messages referrer, given a valid string, should be', - 'set to that value', - ].join(' ')); - assert(em.context.httpRequest.responseStatusCode === A_VALID_NUMBER, [ - 'The error messages responseStatusCode, given a valid number, should be', - 'set to that value', - ].join(' ')); - assert(em.context.httpRequest.remoteIp === A_VALID_STRING, [ - 'The error messages remoteAddress, given a valid string, should be', - 'set to that value', - ].join(' ')); + AFFIRMATIVE_TEST_VALUE as RequestInformationContainer + ); + assert( + em.context.httpRequest.method === A_VALID_STRING, + [ + 'The error messages method, given a valid string, should be', + 'set to that value', + ].join(' ') + ); + assert( + em.context.httpRequest.url === A_VALID_STRING, + [ + 'The error messages url, given a valid string, should be', + 'set to that value', + ].join(' ') + ); + assert( + em.context.httpRequest.userAgent === A_VALID_STRING, + [ + 'The error messages userAgent, given a valid string, should be', + 'set to that value', + ].join(' ') + ); + assert( + em.context.httpRequest.referrer === A_VALID_STRING, + [ + 'The error messages referrer, given a valid string, should be', + 'set to that value', + ].join(' ') + ); + assert( + em.context.httpRequest.responseStatusCode === A_VALID_NUMBER, + [ + 'The error messages responseStatusCode, given a valid number, should be', + 'set to that value', + ].join(' ') + ); + assert( + em.context.httpRequest.remoteIp === A_VALID_STRING, + [ + 'The error messages remoteAddress, given a valid string, should be', + 'set to that value', + ].join(' ') + ); }); it('Should default when consuming a malformed request object', () => { em.consumeRequestInformation(null!); - assert(em.context.httpRequest.method === A_VALID_STRING, [ - 'The error messages method, given an invalid type a the top-level', - 'should remain untouched', - ].join(' ')); - assert(em.context.httpRequest.url === A_VALID_STRING, [ - 'The error messages url, given an invalid type a the top-level', - 'should remain untouched', - ].join(' ')); - assert(em.context.httpRequest.userAgent === A_VALID_STRING, [ - 'The error messages userAgent, given an invalid type a the top-level', - 'should remain untouched', - ].join(' ')); - assert(em.context.httpRequest.referrer === A_VALID_STRING, [ - 'The error messages referrer, given an invalid type a the top-level', - 'should remain untouched', - ].join(' ')); - assert(em.context.httpRequest.responseStatusCode === A_VALID_NUMBER, [ - 'The error messages responseStatusCode, given an invalid type a the top-level', - 'should remain untouched', - ].join(' ')); - assert(em.context.httpRequest.remoteIp === A_VALID_STRING, [ - 'The error messages remoteAddress, given an invalid type a the top-level', - 'should remain untouched', - ].join(' ')); + assert( + em.context.httpRequest.method === A_VALID_STRING, + [ + 'The error messages method, given an invalid type a the top-level', + 'should remain untouched', + ].join(' ') + ); + assert( + em.context.httpRequest.url === A_VALID_STRING, + [ + 'The error messages url, given an invalid type a the top-level', + 'should remain untouched', + ].join(' ') + ); + assert( + em.context.httpRequest.userAgent === A_VALID_STRING, + [ + 'The error messages userAgent, given an invalid type a the top-level', + 'should remain untouched', + ].join(' ') + ); + assert( + em.context.httpRequest.referrer === A_VALID_STRING, + [ + 'The error messages referrer, given an invalid type a the top-level', + 'should remain untouched', + ].join(' ') + ); + assert( + em.context.httpRequest.responseStatusCode === A_VALID_NUMBER, + [ + 'The error messages responseStatusCode, given an invalid type a the top-level', + 'should remain untouched', + ].join(' ') + ); + assert( + em.context.httpRequest.remoteIp === A_VALID_STRING, + [ + 'The error messages remoteAddress, given an invalid type a the top-level', + 'should remain untouched', + ].join(' ') + ); }); it('Should default when consuming mistyped response object properties', () => { em.consumeRequestInformation( - NEGATIVE_TEST_VALUE as {} as RequestInformationContainer); - assert(em.context.httpRequest.method === NEGATIVE_STRING_CASE, [ - 'The error messages method, given an invalid input should default to', - 'the negative value', - ].join(' ')); - assert(em.context.httpRequest.url === NEGATIVE_STRING_CASE, [ - 'The error messages url, given an invalid input should default to', - 'the negative value', - ].join(' ')); - assert(em.context.httpRequest.userAgent === NEGATIVE_STRING_CASE, [ - 'The error messages userAgent, ggiven an invalid input should default to', - 'the negative value', - ].join(' ')); - assert(em.context.httpRequest.referrer === NEGATIVE_STRING_CASE, [ - 'The error messages referrer, given an invalid input should default to', - 'the negative value', - ].join(' ')); - assert(em.context.httpRequest.responseStatusCode === NEGATIVE_NUMBER_CASE, [ - 'The error messages responseStatusCode, given an invalid input should default to', - 'the negative value', - ].join(' ')); - assert(em.context.httpRequest.remoteIp === NEGATIVE_STRING_CASE, [ - 'The error messages remoteAddress, given an invalid input should default to', - 'the negative value', - ].join(' ')); + (NEGATIVE_TEST_VALUE as {}) as RequestInformationContainer + ); + assert( + em.context.httpRequest.method === NEGATIVE_STRING_CASE, + [ + 'The error messages method, given an invalid input should default to', + 'the negative value', + ].join(' ') + ); + assert( + em.context.httpRequest.url === NEGATIVE_STRING_CASE, + [ + 'The error messages url, given an invalid input should default to', + 'the negative value', + ].join(' ') + ); + assert( + em.context.httpRequest.userAgent === NEGATIVE_STRING_CASE, + [ + 'The error messages userAgent, ggiven an invalid input should default to', + 'the negative value', + ].join(' ') + ); + assert( + em.context.httpRequest.referrer === NEGATIVE_STRING_CASE, + [ + 'The error messages referrer, given an invalid input should default to', + 'the negative value', + ].join(' ') + ); + assert( + em.context.httpRequest.responseStatusCode === NEGATIVE_NUMBER_CASE, + [ + 'The error messages responseStatusCode, given an invalid input should default to', + 'the negative value', + ].join(' ') + ); + assert( + em.context.httpRequest.remoteIp === NEGATIVE_STRING_CASE, + [ + 'The error messages remoteAddress, given an invalid input should default to', + 'the negative value', + ].join(' ') + ); }); it('Should return the instance on calling consumeRequestInformation', () => { assert( - em.consumeRequestInformation( - AFFIRMATIVE_TEST_VALUE as RequestInformationContainer) - instanceof ErrorMessage, - [ - 'Calling consumeRequestInformation with valid input should return', - 'the ErrorMessage instance', - ].join(' ')); - assert(em.consumeRequestInformation(undefined!) instanceof ErrorMessage, [ - 'Calling consumeRequestInformation with invalid input should return', - 'the ErrorMessage instance', - ].join(' ')); + em.consumeRequestInformation( + AFFIRMATIVE_TEST_VALUE as RequestInformationContainer + ) instanceof ErrorMessage, + [ + 'Calling consumeRequestInformation with valid input should return', + 'the ErrorMessage instance', + ].join(' ') + ); + assert( + em.consumeRequestInformation(undefined!) instanceof ErrorMessage, + [ + 'Calling consumeRequestInformation with invalid input should return', + 'the ErrorMessage instance', + ].join(' ') + ); }); }); diff --git a/handwritten/error-reporting/test/unit/configuration.ts b/handwritten/error-reporting/test/unit/configuration.ts index fb0f588cab9..f72bf5ab3ee 100644 --- a/handwritten/error-reporting/test/unit/configuration.ts +++ b/handwritten/error-reporting/test/unit/configuration.ts @@ -29,7 +29,7 @@ const logger = createLogger({ import * as nock from 'nock'; const METADATA_URL = - 'http://metadata.google.internal/computeMetadata/v1/project'; + 'http://metadata.google.internal/computeMetadata/v1/project'; const configEnv = { NODE_ENV: process.env.NODE_ENV, @@ -50,7 +50,10 @@ function restoreConfigEnv() { process.env.GAE_MODULE_VERSION = configEnv.GAE_MODULE_VERSION; } function createDeadMetadataService() { - return nock(METADATA_URL).get('/project-id').times(1).reply(500); + return nock(METADATA_URL) + .get('/project-id') + .times(1) + .reply(500); } describe('Configuration class', () => { @@ -65,10 +68,13 @@ describe('Configuration class', () => { describe('fuzzing the constructor', () => { it('Should return default values', () => { let c; - f.fuzzFunctionForTypes((givenConfigFuzz: ConfigurationOptions) => { - c = new Configuration(givenConfigFuzz, logger); - deepStrictEqual(c._givenConfiguration, {}); - }, ['object']); + f.fuzzFunctionForTypes( + (givenConfigFuzz: ConfigurationOptions) => { + c = new Configuration(givenConfigFuzz, logger); + deepStrictEqual(c._givenConfiguration, {}); + }, + ['object'] + ); }); }); describe('valid config and default values', () => { @@ -105,7 +111,7 @@ describe('Configuration class', () => { }); }); describe('reportMode', () => { - let nodeEnv: string|undefined; + let nodeEnv: string | undefined; beforeEach(() => { nodeEnv = process.env.NODE_ENV; }); @@ -118,61 +124,60 @@ describe('Configuration class', () => { } }); - it('Should print a deprecation warning if "ignoreEvnironmentCheck" is used', - () => { - let warnText = ''; - const logger = { - warn: (text) => { - warnText += text + '\n'; - } - } as Logger; - // tslint:disable-next-line:no-unused-expression - new Configuration({ignoreEnvironmentCheck: true}, logger); - assert.strictEqual( - warnText, - 'The "ignoreEnvironmentCheck" config option is deprecated. ' + - 'Use the "reportMode" config option instead.\n'); - }); + it('Should print a deprecation warning if "ignoreEvnironmentCheck" is used', () => { + let warnText = ''; + const logger = { + warn: text => { + warnText += text + '\n'; + }, + } as Logger; + // tslint:disable-next-line:no-unused-expression + new Configuration({ignoreEnvironmentCheck: true}, logger); + assert.strictEqual( + warnText, + 'The "ignoreEnvironmentCheck" config option is deprecated. ' + + 'Use the "reportMode" config option instead.\n' + ); + }); - it('Should print a warning if both "ignoreEnvironmentCheck" and "reportMode" are specified', - () => { - let warnText = ''; - const logger = { - warn: (text) => { - warnText += text + '\n'; - } - } as Logger; - // tslint:disable-next-line:no-unused-expression - new Configuration( - {ignoreEnvironmentCheck: true, reportMode: 'never'}, logger); - assert.strictEqual( - warnText, - 'The "ignoreEnvironmentCheck" config option is deprecated. ' + - 'Use the "reportMode" config option instead.\nBoth the "ignoreEnvironmentCheck" ' + - 'and "reportMode" configuration options have been specified. The "reportMode" ' + - 'option will take precedence.\n'); - }); + it('Should print a warning if both "ignoreEnvironmentCheck" and "reportMode" are specified', () => { + let warnText = ''; + const logger = { + warn: text => { + warnText += text + '\n'; + }, + } as Logger; + // tslint:disable-next-line:no-unused-expression + new Configuration( + {ignoreEnvironmentCheck: true, reportMode: 'never'}, + logger + ); + assert.strictEqual( + warnText, + 'The "ignoreEnvironmentCheck" config option is deprecated. ' + + 'Use the "reportMode" config option instead.\nBoth the "ignoreEnvironmentCheck" ' + + 'and "reportMode" configuration options have been specified. The "reportMode" ' + + 'option will take precedence.\n' + ); + }); - it('Should set "reportMode" to "always" if "ignoreEnvironmentCheck" is true', - () => { - const conf = - new Configuration({ignoreEnvironmentCheck: true}, logger); - assert.strictEqual(conf._reportMode, 'always'); - }); + it('Should set "reportMode" to "always" if "ignoreEnvironmentCheck" is true', () => { + const conf = new Configuration({ignoreEnvironmentCheck: true}, logger); + assert.strictEqual(conf._reportMode, 'always'); + }); - it('Should set "reportMode" to "production" if "ignoreEnvironmentCheck" is false', - () => { - const conf = - new Configuration({ignoreEnvironmentCheck: false}, logger); - assert.strictEqual(conf._reportMode, 'production'); - }); + it('Should set "reportMode" to "production" if "ignoreEnvironmentCheck" is false', () => { + const conf = new Configuration({ignoreEnvironmentCheck: false}, logger); + assert.strictEqual(conf._reportMode, 'production'); + }); - it('Should prefer "reportMode" config if "ignoreEnvironmentCheck" is also set', - () => { - const conf = new Configuration( - {ignoreEnvironmentCheck: true, reportMode: 'never'}, logger); - assert.strictEqual(conf._reportMode, 'never'); - }); + it('Should prefer "reportMode" config if "ignoreEnvironmentCheck" is also set', () => { + const conf = new Configuration( + {ignoreEnvironmentCheck: true, reportMode: 'never'}, + logger + ); + assert.strictEqual(conf._reportMode, 'never'); + }); it('Should be set to "production" by default', () => { const conf = new Configuration({}, logger); @@ -194,51 +199,48 @@ describe('Configuration class', () => { assert.strictEqual(conf.isReportingEnabled(), false); }); - it('Should state reporting should proceed with mode "production" and env "production"', - () => { - process.env.NODE_ENV = 'production'; - const conf = new Configuration({reportMode: 'production'}, logger); - assert.strictEqual(conf.getShouldReportErrorsToAPI(), true); - }); + it('Should state reporting should proceed with mode "production" and env "production"', () => { + process.env.NODE_ENV = 'production'; + const conf = new Configuration({reportMode: 'production'}, logger); + assert.strictEqual(conf.getShouldReportErrorsToAPI(), true); + }); - it('Should state reporting should not proceed with mode "production" and env not "production"', - () => { - process.env.NODE_ENV = 'dev'; - const conf = new Configuration({reportMode: 'production'}, logger); - assert.strictEqual(conf.getShouldReportErrorsToAPI(), false); - }); + it('Should state reporting should not proceed with mode "production" and env not "production"', () => { + process.env.NODE_ENV = 'dev'; + const conf = new Configuration({reportMode: 'production'}, logger); + assert.strictEqual(conf.getShouldReportErrorsToAPI(), false); + }); - it('Should state reporting should proceed with mode "always" and env "production"', - () => { - process.env.NODE_ENV = 'production'; - const conf = new Configuration({reportMode: 'always'}, logger); - assert.strictEqual(conf.getShouldReportErrorsToAPI(), true); - }); + it('Should state reporting should proceed with mode "always" and env "production"', () => { + process.env.NODE_ENV = 'production'; + const conf = new Configuration({reportMode: 'always'}, logger); + assert.strictEqual(conf.getShouldReportErrorsToAPI(), true); + }); - it('Should state reporting should proceed with mode "always" and env not "production"', - () => { - process.env.NODE_ENV = 'dev'; - const conf = new Configuration({reportMode: 'always'}, logger); - assert.strictEqual(conf.getShouldReportErrorsToAPI(), true); - }); + it('Should state reporting should proceed with mode "always" and env not "production"', () => { + process.env.NODE_ENV = 'dev'; + const conf = new Configuration({reportMode: 'always'}, logger); + assert.strictEqual(conf.getShouldReportErrorsToAPI(), true); + }); - it('Should state reporting should not proceed with mode "never" and env "production"', - () => { - process.env.NODE_ENV = 'production'; - const conf = new Configuration({reportMode: 'never'}, logger); - assert.strictEqual(conf.getShouldReportErrorsToAPI(), false); - }); + it('Should state reporting should not proceed with mode "never" and env "production"', () => { + process.env.NODE_ENV = 'production'; + const conf = new Configuration({reportMode: 'never'}, logger); + assert.strictEqual(conf.getShouldReportErrorsToAPI(), false); + }); - it('Should state reporting should not proceed with mode "never" and env not "production"', - () => { - process.env.NODE_ENV = 'dev'; - const conf = new Configuration({reportMode: 'never'}, logger); - assert.strictEqual(conf.getShouldReportErrorsToAPI(), false); - }); + it('Should state reporting should not proceed with mode "never" and env not "production"', () => { + process.env.NODE_ENV = 'dev'; + const conf = new Configuration({reportMode: 'never'}, logger); + assert.strictEqual(conf.getShouldReportErrorsToAPI(), false); + }); }); describe('with ignoreEnvironmentCheck', () => { - const conf = - merge({}, {projectId: 'some-id'}, {ignoreEnvironmentCheck: true}); + const conf = merge( + {}, + {projectId: 'some-id'}, + {ignoreEnvironmentCheck: true} + ); const c = new Configuration(conf, logger); it('Should reportErrorsToAPI', () => { assert.strictEqual(c.getShouldReportErrorsToAPI(), true); @@ -265,15 +267,18 @@ describe('Configuration class', () => { assert.throws(() => { // tslint:disable-next-line:no-unused-expression new Configuration( - {reportMode: new Date()} as {} as ConfigurationOptions, logger); + ({reportMode: new Date()} as {}) as ConfigurationOptions, + logger + ); }); }); it('Should throw if invalid value for reportMode', () => { assert.throws(() => { // tslint:disable-next-line:no-unused-expression new Configuration( - {reportMode: 'invalid-mode'} as {} as ConfigurationOptions, - logger); + ({reportMode: 'invalid-mode'} as {}) as ConfigurationOptions, + logger + ); }); }); it('Should throw if invalid type for key', () => { @@ -281,7 +286,10 @@ describe('Configuration class', () => { // we are intentionally providing an invalid configuration // thus an explicit cast is needed // tslint:disable-next-line:no-unused-expression - new Configuration({key: null} as {} as ConfigurationOptions, logger); + new Configuration( + ({key: null} as {}) as ConfigurationOptions, + logger + ); }); }); it('Should throw if invalid for ignoreEnvironmentCheck', () => { @@ -290,8 +298,9 @@ describe('Configuration class', () => { // thus an explicit cast is needed // tslint:disable-next-line:no-unused-expression new Configuration( - {ignoreEnvironmentCheck: null} as {} as ConfigurationOptions, - logger); + ({ignoreEnvironmentCheck: null} as {}) as ConfigurationOptions, + logger + ); }); }); it('Should throw if invalid for serviceContext.service', () => { @@ -300,8 +309,9 @@ describe('Configuration class', () => { // thus an explicit cast is needed // tslint:disable-next-line:no-unused-expression new Configuration( - {serviceContext: {service: false}} as {} as ConfigurationOptions, - logger); + ({serviceContext: {service: false}} as {}) as ConfigurationOptions, + logger + ); }); }); it('Should throw if invalid for serviceContext.version', () => { @@ -310,8 +320,9 @@ describe('Configuration class', () => { // thus an explicit cast is needed // tslint:disable-next-line:no-unused-expression new Configuration( - {serviceContext: {version: true}} as {} as ConfigurationOptions, - logger); + ({serviceContext: {version: true}} as {}) as ConfigurationOptions, + logger + ); }); }); it('Should throw if invalid for reportUnhandledRejections', () => { @@ -320,9 +331,11 @@ describe('Configuration class', () => { // thus an explicit cast is needed // tslint:disable-next-line:no-unused-expression new Configuration( - {reportUnhandledRejections: 'INVALID'} as {} as - ConfigurationOptions, - logger); + ({ + reportUnhandledRejections: 'INVALID', + } as {}) as ConfigurationOptions, + logger + ); }); }); it('Should not throw given an empty object for serviceContext', () => { @@ -355,7 +368,9 @@ describe('Configuration class', () => { before(() => { sterilizeConfigEnv(); c = new Configuration( - {projectId: pn} as {} as ConfigurationOptions, logger); + ({projectId: pn} as {}) as ConfigurationOptions, + logger + ); }); after(() => { nock.cleanAll(); @@ -390,7 +405,9 @@ describe('Configuration class', () => { // we are intentionally providing an invalid configuration // thus an explicit cast is needed c = new Configuration( - {projectId: null} as {} as ConfigurationOptions, logger); + ({projectId: null} as {}) as ConfigurationOptions, + logger + ); }); after(() => { nock.cleanAll(); @@ -475,11 +492,12 @@ describe('Configuration class', () => { const key = '1337-api-key'; before(() => { c = new Configuration( - { - key, - projectId, - }, - logger); + { + key, + projectId, + }, + logger + ); }); it('Should assign', () => { assert.strictEqual(c.getKey(), key); @@ -495,10 +513,12 @@ describe('Configuration class', () => { }); it('Should assign', () => { assert.strictEqual( - c.getReportUnhandledRejections(), reportRejections); + c.getReportUnhandledRejections(), + reportRejections + ); }); }); }); }); }); -}); \ No newline at end of file +}); diff --git a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts index 9de389c0d4a..28a87302eba 100644 --- a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts +++ b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts @@ -16,13 +16,19 @@ import * as proxyquire from 'proxyquire'; -import {Configuration, ConfigurationOptions, Logger} from '../../../src/configuration'; +import { + Configuration, + ConfigurationOptions, + Logger, +} from '../../../src/configuration'; import {deepStrictEqual} from '../../util'; function verifyReportedMessage( - config1: ConfigurationOptions, errToReturn: Error|null|undefined, - expectedLogs: {error?: string; info?: string; warn?: string;}, - done: () => void) { + config1: ConfigurationOptions, + errToReturn: Error | null | undefined, + expectedLogs: {error?: string; info?: string; warn?: string}, + done: () => void +) { class ServiceStub { authClient: {}; request: {}; @@ -40,13 +46,13 @@ function verifyReportedMessage( } const RequestHandler = proxyquire('../../../src/google-apis/auth-client', { - '@google-cloud/common': { - Service: ServiceStub, - }, - }).RequestHandler; + '@google-cloud/common': { + Service: ServiceStub, + }, + }).RequestHandler; const logs: {error?: string; info?: string; warn?: string} = {}; - const logger = { + const logger = ({ error(text: string) { if (!logs.error) { logs.error = ''; @@ -64,8 +70,8 @@ function verifyReportedMessage( logs.warn = ''; } logs.warn += text; - } - } as {} as Logger; + }, + } as {}) as Logger; const config2 = new Configuration(config1, logger); // tslint:disable-next-line:no-unused-expression new RequestHandler(config2, logger); @@ -75,7 +81,7 @@ function verifyReportedMessage( }); } describe('RequestHandler', () => { - let nodeEnv: string|undefined; + let nodeEnv: string | undefined; beforeEach(() => { nodeEnv = process.env.NODE_ENV; }); @@ -95,110 +101,116 @@ describe('RequestHandler', () => { }; const message = 'Made OAuth2 Token Request'; verifyReportedMessage( - config, new Error(message), { - info: 'API key provided; skipping OAuth2 token request.', - }, - done); + config, + new Error(message), + { + info: 'API key provided; skipping OAuth2 token request.', + }, + done + ); }).timeout(8000); + it('should not issue a warning if disabled and can communicate with the API', done => { + process.env.NODE_ENV = 'production'; + verifyReportedMessage( + {reportMode: 'never'}, + null, // no access token error + {}, // no expected logs + done + ); + }); - it('should not issue a warning if disabled and can communicate with the API', - (done) => { - process.env.NODE_ENV = 'production'; - verifyReportedMessage( - {reportMode: 'never'}, - null, // no access token error - {}, // no expected logs - done); - }); - - it('should not issue a warning if disabled and cannot communicate with the API', - (done) => { - process.env.NODE_ENV = 'dev'; - verifyReportedMessage( - {reportMode: 'never'}, - null, // no access token error - {}, // no expected logs - done); - }); + it('should not issue a warning if disabled and cannot communicate with the API', done => { + process.env.NODE_ENV = 'dev'; + verifyReportedMessage( + {reportMode: 'never'}, + null, // no access token error + {}, // no expected logs + done + ); + }); - it('should not issue a warning if enabled and can communicate with the API', - (done) => { - process.env.NODE_ENV = 'production'; - verifyReportedMessage( - {reportMode: 'production'}, - null, // no access token error - {}, // no expected logs - done); - }); + it('should not issue a warning if enabled and can communicate with the API', done => { + process.env.NODE_ENV = 'production'; + verifyReportedMessage( + {reportMode: 'production'}, + null, // no access token error + {}, // no expected logs + done + ); + }); - it('should not issue a warning with a default config and can communicate with the API', - (done) => { - process.env.NODE_ENV = 'production'; - verifyReportedMessage( - {}, - null, // no access token error - {}, // no expected logs - done); - }); + it('should not issue a warning with a default config and can communicate with the API', done => { + process.env.NODE_ENV = 'production'; + verifyReportedMessage( + {}, + null, // no access token error + {}, // no expected logs + done + ); + }); - it('should not issue a warning if it can communicate with the API', - (done: () => void) => { - const config = {ignoreEnvironmentCheck: true}; - const warn = - 'The "ignoreEnvironmentCheck" config option is deprecated. ' + - 'Use the "reportMode" config option instead.'; - verifyReportedMessage(config, null, {warn}, () => { - verifyReportedMessage(config, undefined, {warn}, done); - }); - }); + it('should not issue a warning if it can communicate with the API', (done: () => void) => { + const config = {ignoreEnvironmentCheck: true}; + const warn = + 'The "ignoreEnvironmentCheck" config option is deprecated. ' + + 'Use the "reportMode" config option instead.'; + verifyReportedMessage(config, null, {warn}, () => { + verifyReportedMessage(config, undefined, {warn}, done); + }); + }); - it('should issue a warning if enabled and cannot communicate with the API', (done) => { + it('should issue a warning if enabled and cannot communicate with the API', done => { process.env.NODE_ENV = 'dev'; verifyReportedMessage( - {reportMode: 'production'}, - null, // no access token error - { - warn: - 'The stackdriver error reporting client is configured to report ' + - 'errors if and only if the NODE_ENV environment variable is set to ' + - '"production". Errors will not be reported. To have errors always ' + - 'reported, regardless of the value of NODE_ENV, set the reportMode ' + - 'configuration option to "always".' - }, - done); + {reportMode: 'production'}, + null, // no access token error + { + warn: + 'The stackdriver error reporting client is configured to report ' + + 'errors if and only if the NODE_ENV environment variable is set to ' + + '"production". Errors will not be reported. To have errors always ' + + 'reported, regardless of the value of NODE_ENV, set the reportMode ' + + 'configuration option to "always".', + }, + done + ); }); - it('should issue a warning with a default config and cannot communicate with the API', - (done) => { - process.env.NODE_ENV = 'dev'; - verifyReportedMessage( - {}, - null, // no access token error - { - warn: - 'The stackdriver error reporting client is configured to report ' + - 'errors if and only if the NODE_ENV environment variable is set to ' + - '"production". Errors will not be reported. To have errors always ' + - 'reported, regardless of the value of NODE_ENV, set the reportMode ' + - 'configuration option to "always".' - }, - done); - }); + it('should issue a warning with a default config and cannot communicate with the API', done => { + process.env.NODE_ENV = 'dev'; + verifyReportedMessage( + {}, + null, // no access token error + { + warn: + 'The stackdriver error reporting client is configured to report ' + + 'errors if and only if the NODE_ENV environment variable is set to ' + + '"production". Errors will not be reported. To have errors always ' + + 'reported, regardless of the value of NODE_ENV, set the reportMode ' + + 'configuration option to "always".', + }, + done + ); + }); - it('should issue a warning if it cannot communicate with the API', - (done: () => void) => { - const config = {ignoreEnvironmentCheck: true}; - const message = 'Test Error'; - verifyReportedMessage( - config, new Error(message), { - error: 'Unable to find credential information on instance. This ' + - 'library will be unable to communicate with the Stackdriver API to ' + - 'save errors. Message: ' + message, - warn: - 'The "ignoreEnvironmentCheck" config option is deprecated. ' + - 'Use the "reportMode" config option instead.' - }, - done); - }); + it('should issue a warning if it cannot communicate with the API', (done: () => void) => { + const config = {ignoreEnvironmentCheck: true}; + const message = 'Test Error'; + verifyReportedMessage( + config, + new Error(message), + { + error: + 'Unable to find credential information on instance. This ' + + 'library will be unable to communicate with the Stackdriver API to ' + + 'save errors. Message: ' + + message, + warn: + 'The "ignoreEnvironmentCheck" config option is deprecated. ' + + 'Use the "reportMode" config option instead.', + }, + done + ); + }); }); diff --git a/handwritten/error-reporting/test/unit/interfaces/express.ts b/handwritten/error-reporting/test/unit/interfaces/express.ts index ad0312a65e4..f58f6501484 100644 --- a/handwritten/error-reporting/test/unit/interfaces/express.ts +++ b/handwritten/error-reporting/test/unit/interfaces/express.ts @@ -39,36 +39,43 @@ describe('expressInterface', () => { }); describe('Intended behaviour', () => { const stubbedConfig = new Configuration( - { - serviceContext: { - service: 'a_test_service', - version: 'a_version', - }, + { + serviceContext: { + service: 'a_test_service', + version: 'a_version', }, - createLogger({logLevel: 4})); - (stubbedConfig as {} as {lacksCredentials: Function}).lacksCredentials = - () => { - return false; - }; + }, + createLogger({logLevel: 4}) + ); + ((stubbedConfig as {}) as { + lacksCredentials: Function; + }).lacksCredentials = () => { + return false; + }; const client = { sendError() { return; }, }; const testError = new Error('This is a test'); - const validBoundHandler = - expressInterface(client as {} as RequestHandler, stubbedConfig); + const validBoundHandler = expressInterface( + (client as {}) as RequestHandler, + stubbedConfig + ); it('Should return the error message', () => { const res = validBoundHandler(testError, null!, null!, null!); deepStrictEqual( - res, - merge( - new ErrorMessage() - .setMessage(testError.stack!) - .setServiceContext( - stubbedConfig._serviceContext.service, - stubbedConfig._serviceContext.version), - {eventTime: res.eventTime})); + res, + merge( + new ErrorMessage() + .setMessage(testError.stack!) + .setServiceContext( + stubbedConfig._serviceContext.service, + stubbedConfig._serviceContext.version + ), + {eventTime: res.eventTime} + ) + ); }); describe('Calling back to express builtins', () => { it('Should callback to next', done => { @@ -84,8 +91,10 @@ describe('expressInterface', () => { const client = { sendError, }; - const handler = - expressInterface(client as {} as RequestHandler, stubbedConfig); + const handler = expressInterface( + (client as {}) as RequestHandler, + stubbedConfig + ); handler(testError, null!, null!, () => { return; }); diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.ts b/handwritten/error-reporting/test/unit/interfaces/hapi.ts index a234a1769d8..706d03a8df0 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.ts +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.ts @@ -30,12 +30,11 @@ import * as boom from 'boom'; const packageJson = require('../../../../package.json'); -type HapiPlugin = { - register: - ((server: {}, options: {}, next: Function) => void)&{ - attributes?: {name: string; version: string;} - } -}; +interface HapiPlugin { + register: ((server: {}, options: {}, next: Function) => void) & { + attributes?: {name: string; version: string}; + }; +} describe('Hapi interface', () => { describe('Fuzzing the setup handler', () => { @@ -55,232 +54,257 @@ describe('Hapi interface', () => { }; let plugin: HapiPlugin; beforeEach(() => { - plugin = hapiInterface(null!, givenConfig as {} as config.Configuration); + plugin = hapiInterface( + null!, + (givenConfig as {}) as config.Configuration + ); }); it('should have plain object as plugin', () => { assert(is.object(plugin)); }); it('plugin should have a register function property', () => { - assert(has(plugin, 'register') && is.function(plugin.register)) - ; + assert(has(plugin, 'register') && is.function(plugin.register)); }); - it('the plugin\'s register property should have an attributes property', - () => { - assert( - has(plugin.register, 'attributes') && - is.object(plugin.register.attributes)); - }); - it('the plugin\'s attribute property should have a name property', () => { - assert(has(plugin.register.attributes, 'name')); - assert.strictEqual( - plugin.register !.attributes!.name, - '@google-cloud/error-reporting'); - }); - it('the plugin\'s attribute property should have a version property', - () => { - assert(has(plugin.register.attributes, 'version')); - }); + it("the plugin's register property should have an attributes property", () => { + assert( + has(plugin.register, 'attributes') && + is.object(plugin.register.attributes) + ); }); - describe('hapiRegisterFunction behaviour', () => { - let fakeServer: EventEmitter; - beforeEach(() => { - fakeServer = new EventEmitter(); - }); - it('Should call fn when the request-error event is emitted', () => { - const fakeClient = { - sendError(errMsg: ErrorMessage) { - assert( - errMsg instanceof ErrorMessage, - 'should be an instance of Error message'); - }, - } as {} as RequestHandler; - const plugin = hapiInterface(fakeClient, { - lacksCredentials() { - return false; - }, - getVersion() { - return '1'; - }, - getServiceContext() { - return {service: 'node'}; - }, - } as {} as config.Configuration); - plugin.register(fakeServer, null!, null!); - fakeServer.emit('request-error'); - }); + it("the plugin's attribute property should have a name property", () => { + assert(has(plugin.register.attributes, 'name')); + assert.strictEqual( + plugin.register!.attributes!.name, + '@google-cloud/error-reporting' + ); }); - describe('Behaviour around the request/response lifecycle', () => { - const EVENT = 'onPreResponse'; - const fakeClient = {sendError() {}} as {} as RequestHandler; - let fakeServer: EventEmitter&{ext?: Function}, - config: Configuration&{lacksCredentials?: () => boolean}, - plugin: HapiPlugin; - before(() => { - config = new Configuration({ - projectId: 'xyz', - serviceContext: { - service: 'x', - version: '1.x', - }, - }); - config.lacksCredentials = () => { + it("the plugin's attribute property should have a version property", () => { + assert(has(plugin.register.attributes, 'version')); + }); + }); + describe('hapiRegisterFunction behaviour', () => { + let fakeServer: EventEmitter; + beforeEach(() => { + fakeServer = new EventEmitter(); + }); + it('Should call fn when the request-error event is emitted', () => { + const fakeClient = ({ + sendError(errMsg: ErrorMessage) { + assert( + errMsg instanceof ErrorMessage, + 'should be an instance of Error message' + ); + }, + } as {}) as RequestHandler; + const plugin = hapiInterface(fakeClient, ({ + lacksCredentials() { return false; - }; - plugin = hapiInterface(fakeClient, config); - }); - beforeEach(() => { - fakeServer = new EventEmitter(); - fakeServer.ext = fakeServer.on; - }); - afterEach(() => { - fakeServer.removeAllListeners(); + }, + getVersion() { + return '1'; + }, + getServiceContext() { + return {service: 'node'}; + }, + } as {}) as config.Configuration); + plugin.register(fakeServer, null!, null!); + fakeServer.emit('request-error'); + }); + }); + describe('Behaviour around the request/response lifecycle', () => { + const EVENT = 'onPreResponse'; + const fakeClient = ({sendError() {}} as {}) as RequestHandler; + let fakeServer: EventEmitter & {ext?: Function}, + config: Configuration & {lacksCredentials?: () => boolean}, + plugin: HapiPlugin; + before(() => { + config = new Configuration({ + projectId: 'xyz', + serviceContext: { + service: 'x', + version: '1.x', + }, }); - it('Should call continue when a boom is emitted if reply is an object', - done => { - plugin.register(fakeServer, null!, () => {}); - fakeServer.emit( - EVENT, {response: new boom('message', {statusCode: 427})}, { - continue() { - // The continue function should be called - done(); - }, - }); - }); - it('Should call continue when a boom is emitted if reply is a function', - done => { - // Manually testing has shown that in actual usage the `reply` object - // provided to listeners of the `onPreResponse` event can be a - // function that has a `continue` property that is a function. If - // `reply.continue()` is not invoked in this situation, the Hapi app - // will become unresponsive. - plugin.register(fakeServer, null!, () => {}); - const reply: Function&{continue?: Function} = () => {}; - reply.continue = () => { - // The continue function should be called - done(); - }; - fakeServer.emit( - EVENT, {response: new boom('message', {statusCode: 427})}, - reply); - }); - it('Should call sendError when a boom is received', done => { - const fakeClient = { - sendError(err: ErrorMessage) { - assert(err instanceof ErrorMessage); + config.lacksCredentials = () => { + return false; + }; + plugin = hapiInterface(fakeClient, config); + }); + beforeEach(() => { + fakeServer = new EventEmitter(); + fakeServer.ext = fakeServer.on; + }); + afterEach(() => { + fakeServer.removeAllListeners(); + }); + it('Should call continue when a boom is emitted if reply is an object', done => { + plugin.register(fakeServer, null!, () => {}); + fakeServer.emit( + EVENT, + {response: new boom('message', {statusCode: 427})}, + { + continue() { + // The continue function should be called done(); }, - } as {} as RequestHandler; - const plugin = hapiInterface(fakeClient, config); - plugin.register(fakeServer, null!, () => {}); - fakeServer.emit( - 'onPreResponse', - {response: new boom('message', {statusCode: 427})}); - }); - it('Should call next when completing a request', done => { - plugin.register(fakeServer, null!, () => { - // The next function should be called + } + ); + }); + it('Should call continue when a boom is emitted if reply is a function', done => { + // Manually testing has shown that in actual usage the `reply` object + // provided to listeners of the `onPreResponse` event can be a + // function that has a `continue` property that is a function. If + // `reply.continue()` is not invoked in this situation, the Hapi app + // will become unresponsive. + plugin.register(fakeServer, null!, () => {}); + const reply: Function & {continue?: Function} = () => {}; + reply.continue = () => { + // The continue function should be called + done(); + }; + fakeServer.emit( + EVENT, + {response: new boom('message', {statusCode: 427})}, + reply + ); + }); + it('Should call sendError when a boom is received', done => { + const fakeClient = ({ + sendError(err: ErrorMessage) { + assert(err instanceof ErrorMessage); done(); - }); - fakeServer.emit( - EVENT, {response: new boom('message', {statusCode: 427})}, - {continue() {}}); + }, + } as {}) as RequestHandler; + const plugin = hapiInterface(fakeClient, config); + plugin.register(fakeServer, null!, () => {}); + fakeServer.emit('onPreResponse', { + response: new boom('message', {statusCode: 427}), }); }); - describe('Hapi17', () => { - const errorsSent: ErrorMessage[] = []; - // the only method in the client that should be used is `sendError` - const fakeClient = { - sendError: - (errorMessage: ErrorMessage, - userCb?: ( - err: Error|null, response: http.ServerResponse|null, - body: {}) => void) => { - errorsSent.push(errorMessage); - } - } as {} as RequestHandler; - - // the configuration should be not be needed to send errors correctly - const plugin = hapiInterface(fakeClient, {} as Configuration); - - afterEach(() => { - errorsSent.length = 0; + it('Should call next when completing a request', done => { + plugin.register(fakeServer, null!, () => { + // The next function should be called + done(); }); + fakeServer.emit( + EVENT, + {response: new boom('message', {statusCode: 427})}, + {continue() {}} + ); + }); + }); + describe('Hapi17', () => { + const errorsSent: ErrorMessage[] = []; + // the only method in the client that should be used is `sendError` + const fakeClient = ({ + sendError: ( + errorMessage: ErrorMessage, + userCb?: ( + err: Error | null, + response: http.ServerResponse | null, + body: {} + ) => void + ) => { + errorsSent.push(errorMessage); + }, + } as {}) as RequestHandler; - it('Plugin should have name and version properties', () => { - assert.strictEqual(plugin.name, packageJson.name); - assert.strictEqual(plugin.version, packageJson.version); - }); + // the configuration should be not be needed to send errors correctly + const plugin = hapiInterface(fakeClient, {} as Configuration); - it(`Should record 'log' events correctly`, () => { - const fakeServer = {events: new EventEmitter()}; + afterEach(() => { + errorsSent.length = 0; + }); - // emulate how the hapi server would register itself - plugin.register(fakeServer, {}); + it('Plugin should have name and version properties', () => { + assert.strictEqual(plugin.name, packageJson.name); + assert.strictEqual(plugin.version, packageJson.version); + }); - // emulate the hapi server emitting a log event - const testError = new Error('Error emitted through a log event'); + it(`Should record 'log' events correctly`, () => { + const fakeServer = {events: new EventEmitter()}; - // this event should not be recorded - fakeServer.events.emit('log', {error: testError, channel: 'internal'}); + // emulate how the hapi server would register itself + plugin.register(fakeServer, {}); - // this event should be recorded - fakeServer.events.emit('log', {error: testError, channel: 'app'}); + // emulate the hapi server emitting a log event + const testError = new Error('Error emitted through a log event'); - assert.strictEqual(errorsSent.length, 1); - const errorMessage = errorsSent[0]; + // this event should not be recorded + fakeServer.events.emit('log', {error: testError, channel: 'internal'}); - // note: the error's stack contains the error message - assert.strictEqual(errorMessage.message, testError.stack); - }); + // this event should be recorded + fakeServer.events.emit('log', {error: testError, channel: 'app'}); - it(`Should record 'request' events correctly`, () => { - const fakeServer = {events: new EventEmitter()}; + assert.strictEqual(errorsSent.length, 1); + const errorMessage = errorsSent[0]; - // emulate how the hapi server would register itself - plugin.register(fakeServer, {}); + // note: the error's stack contains the error message + assert.strictEqual(errorMessage.message, testError.stack); + }); - // emulate the hapi server emitting a request event - // a cast to hapi.Request is being done since only the listed - // properties are the properties that are being tested. In - // addition other properties of hapi.Request should be needed - // to properly send the error. - const fakeRequest = { - method: 'custom-method', - url: 'custom-url', - headers: { - 'user-agent': 'custom-user-agent', - referrer: 'custom-referrer', - 'x-forwarded-for': 'some-remote-address' - }, - response: {statusCode: 42} - } as {} as hapi.Request; + it(`Should record 'request' events correctly`, () => { + const fakeServer = {events: new EventEmitter()}; - const testError = new Error('Error emitted through a request event'); + // emulate how the hapi server would register itself + plugin.register(fakeServer, {}); - // this event should not be recorded - fakeServer.events.emit( - 'request', fakeRequest, {error: testError, channel: 'internal'}); + // emulate the hapi server emitting a request event + // a cast to hapi.Request is being done since only the listed + // properties are the properties that are being tested. In + // addition other properties of hapi.Request should be needed + // to properly send the error. + const fakeRequest = ({ + method: 'custom-method', + url: 'custom-url', + headers: { + 'user-agent': 'custom-user-agent', + referrer: 'custom-referrer', + 'x-forwarded-for': 'some-remote-address', + }, + response: {statusCode: 42}, + } as {}) as hapi.Request; - // this event should be recorded - fakeServer.events.emit( - 'request', fakeRequest, {error: testError, channel: 'error'}); + const testError = new Error('Error emitted through a request event'); - assert.strictEqual(errorsSent.length, 1); - const errorMessage = errorsSent[0]; + // this event should not be recorded + fakeServer.events.emit('request', fakeRequest, { + error: testError, + channel: 'internal', + }); - // note: the error's stack contains the error message - assert.strictEqual(errorMessage.message, testError.stack); - assert.strictEqual( - errorMessage.context.httpRequest.method, 'custom-method'); - assert.strictEqual(errorMessage.context.httpRequest.url, 'custom-url'); - assert.strictEqual( - errorMessage.context.httpRequest.userAgent, 'custom-user-agent'); - assert.strictEqual( - errorMessage.context.httpRequest.referrer, 'custom-referrer'); - assert.strictEqual( - errorMessage.context.httpRequest.remoteIp, 'some-remote-address'); - assert.strictEqual( - errorMessage.context.httpRequest.responseStatusCode, 42); + // this event should be recorded + fakeServer.events.emit('request', fakeRequest, { + error: testError, + channel: 'error', }); + + assert.strictEqual(errorsSent.length, 1); + const errorMessage = errorsSent[0]; + + // note: the error's stack contains the error message + assert.strictEqual(errorMessage.message, testError.stack); + assert.strictEqual( + errorMessage.context.httpRequest.method, + 'custom-method' + ); + assert.strictEqual(errorMessage.context.httpRequest.url, 'custom-url'); + assert.strictEqual( + errorMessage.context.httpRequest.userAgent, + 'custom-user-agent' + ); + assert.strictEqual( + errorMessage.context.httpRequest.referrer, + 'custom-referrer' + ); + assert.strictEqual( + errorMessage.context.httpRequest.remoteIp, + 'some-remote-address' + ); + assert.strictEqual( + errorMessage.context.httpRequest.responseStatusCode, + 42 + ); }); }); +}); diff --git a/handwritten/error-reporting/test/unit/interfaces/manual.ts b/handwritten/error-reporting/test/unit/interfaces/manual.ts index d05b0a1278e..eb4d60e092a 100644 --- a/handwritten/error-reporting/test/unit/interfaces/manual.ts +++ b/handwritten/error-reporting/test/unit/interfaces/manual.ts @@ -21,7 +21,7 @@ import * as manual from '../../../src/interfaces/manual'; import {FakeConfiguration as Configuration} from '../../fixtures/configuration'; const config = new Configuration({}); -(config as {} as {lacksCredentials: Function}).lacksCredentials = () => { +((config as {}) as {lacksCredentials: Function}).lacksCredentials = () => { return false; }; import {ErrorMessage} from '../../../src/classes/error-message'; @@ -32,15 +32,15 @@ import {Request} from '../../../src/request-extractors/manual'; describe('Manual handler', () => { // nock.disableNetConnect(); // Mocked client - const client: RequestHandler = { + const client: RequestHandler = ({ sendError(e: ErrorMessage, cb: () => void) { // immediately callback if (cb) { setImmediate(cb); } }, - } as {} as RequestHandler; - const report = manual.handlerSetup(client, config, { + } as {}) as RequestHandler; + const report = manual.handlerSetup(client, config, ({ warn(message: string) { // The use of `report` in this class should issue the following warning // becasue the `report` class is used directly and, as such, cannot @@ -50,13 +50,14 @@ describe('Manual handler', () => { // tests do not have construction site information to verify that if // that information is not available, the user is issued a warning. assert.strictEqual( - message, - 'Encountered a manually constructed error ' + - 'with message "builder test" but without a construction site stack ' + - 'trace. This error might not be visible in the error reporting ' + - 'console.'); + message, + 'Encountered a manually constructed error ' + + 'with message "builder test" but without a construction site stack ' + + 'trace. This error might not be visible in the error reporting ' + + 'console.' + ); }, - } as {} as Logger); + } as {}) as Logger); describe('Report invocation behaviour', () => { it('Should allow argument-less invocation', () => { const r = report(null!); @@ -71,18 +72,17 @@ describe('Manual handler', () => { const r = report(new Error('hokeypokey')); assert(r.message.match(/hokeypokey/)); }); - it('Should allow a function as a malformed error input', - function(this, done) { - this.timeout(2000); - const r = report(() => { - assert(false, 'callback should not be called'); - done(); - }); - assert(r instanceof ErrorMessage, 'should be an inst of ErrorMessage'); - setTimeout(() => { - done(); - }, 1000); - }); + it('Should allow a function as a malformed error input', function(this, done) { + this.timeout(2000); + const r = report(() => { + assert(false, 'callback should not be called'); + done(); + }); + assert(r instanceof ErrorMessage, 'should be an inst of ErrorMessage'); + setTimeout(() => { + done(); + }, 1000); + }); it('Should callback to the supplied function', done => { const r = report('malarkey', () => { done(); @@ -94,7 +94,10 @@ describe('Manual handler', () => { done(); }); assert.strictEqual( - r.message, 'wrench', 'additional message should replace'); + r.message, + 'wrench', + 'additional message should replace' + ); }); it('Should allow a full array of optional arguments', done => { const r = report('donkey', {method: 'FETCH'}, 'cart', () => { @@ -113,27 +116,33 @@ describe('Manual handler', () => { done(); }); assert( - r.message.match(/ticky/) && !r.message.match(/TACKEY/), - 'original message should be preserved'); + r.message.match(/ticky/) && !r.message.match(/TACKEY/), + 'original message should be preserved' + ); assert.strictEqual(r.context.httpRequest.method, 'TACKEY'); }); it('Should ignore arguments', done => { const r = report( - 'hockey', (() => { - done(); - }) as unknown as string, - 'field' as unknown as manual.Callback); + 'hockey', + ((() => { + done(); + }) as unknown) as string, + ('field' as unknown) as manual.Callback + ); assert( - r.message.match('hockey') && !r.message.match('field'), - 'string after callback should be ignored'); + r.message.match('hockey') && !r.message.match('field'), + 'string after callback should be ignored' + ); }); it('Should ignore arguments', done => { const r = report( - 'passkey', (() => { - done(); - }) as unknown as string, - {method: 'HONK'} as unknown as manual.Callback); - assert.notEqual(r.context.httpRequest.method, 'HONK'); + 'passkey', + ((() => { + done(); + }) as unknown) as string, + ({method: 'HONK'} as unknown) as manual.Callback + ); + assert.notStrictEqual(r.context.httpRequest.method, 'HONK'); }); it('Should allow null arguments as placeholders', done => { const r = report('pokey', null!, null!, () => { @@ -143,27 +152,39 @@ describe('Manual handler', () => { }); it('Should allow explicit undefined', done => { const r = report( - 'Turkey', undefined as unknown as Request, - undefined as unknown as string, () => { - done(); - }); + 'Turkey', + (undefined as unknown) as Request, + (undefined as unknown) as string, + () => { + done(); + } + ); assert(r.message.match(/Turkey/), 'string error should propagate'); }); it('Should allow request to be supplied as undefined', done => { - const r = - report('turnkey', undefined as unknown as Request, 'solution', () => { - done(); - }); + const r = report( + 'turnkey', + (undefined as unknown) as Request, + 'solution', + () => { + done(); + } + ); assert.strictEqual(r.message, 'solution', 'error should propagate'); }); it('Should allow additional message', done => { const r = report( - 'Mickey', {method: 'SNIFF'}, undefined as unknown as string, () => { - done(); - }); + 'Mickey', + {method: 'SNIFF'}, + (undefined as unknown) as string, + () => { + done(); + } + ); assert( - r.message.match(/Mickey/) && !r.message.match(/SNIFF/), - 'string error should propagate'); + r.message.match(/Mickey/) && !r.message.match(/SNIFF/), + 'string error should propagate' + ); assert.strictEqual(r.context.httpRequest.method, 'SNIFF'); }); }); @@ -173,33 +194,45 @@ describe('Manual handler', () => { const msg = 'builder test'; const r = report(new ErrorMessage().setMessage(msg)); assert( - r.message.startsWith(msg), - 'string message should propagate from error message inst'); + r.message.startsWith(msg), + 'string message should propagate from error message inst' + ); }); it('Should accept builder and request as arguments', () => { const msg = 'builder test'; const oldReq = {method: 'GET'}; const newReq = {method: 'POST'}; const r = report( - new ErrorMessage().setMessage(msg).consumeRequestInformation( - oldReq as RequestInformationContainer), - newReq); + new ErrorMessage() + .setMessage(msg) + .consumeRequestInformation(oldReq as RequestInformationContainer), + newReq + ); assert( - r.message.startsWith(msg), - 'string message should propagate from error message inst'); - assert.strictEqual(r.context.httpRequest.method, newReq.method, [ - 'request argument supplied at report invocation should propagte and', - 'if supplied, should overwrite any prexisting data in the field.', - ].join('\n')); + r.message.startsWith(msg), + 'string message should propagate from error message inst' + ); + assert.strictEqual( + r.context.httpRequest.method, + newReq.method, + [ + 'request argument supplied at report invocation should propagte and', + 'if supplied, should overwrite any prexisting data in the field.', + ].join('\n') + ); }); it('Should accept message and additional message params as', () => { const oldMsg = 'builder test'; const newMsg = 'analysis'; const r = report(new ErrorMessage().setMessage(oldMsg), newMsg); - assert.strictEqual(r.message, newMsg, [ - 'message supplied at report invocation should propagte and, if', - 'supplied, should overwrite any prexisting data in the message field.', - ].join('\n')); + assert.strictEqual( + r.message, + newMsg, + [ + 'message supplied at report invocation should propagte and, if', + 'supplied, should overwrite any prexisting data in the message field.', + ].join('\n') + ); }); it('Should accept message and callback function', done => { const oldMsg = 'builder test'; diff --git a/handwritten/error-reporting/test/unit/interfaces/restify.ts b/handwritten/error-reporting/test/unit/interfaces/restify.ts index 5ac8a64d1b9..52815e08629 100644 --- a/handwritten/error-reporting/test/unit/interfaces/restify.ts +++ b/handwritten/error-reporting/test/unit/interfaces/restify.ts @@ -25,7 +25,7 @@ import {handlerSetup as restifyInterface} from '../../../src/interfaces/restify' // node v0.12 compatibility if (!EventEmitter.prototype.listenerCount) { EventEmitter.prototype.listenerCount = function(this, eventName) { - // eslint-disable-next-line node/no-deprecated-api + // tslint:disable-next-line deprecation return EventEmitter.listenerCount(this, eventName); }; } @@ -40,15 +40,19 @@ describe('restifyInterface', () => { it('Should attach one listener after instantiation', () => { const ee = new EventEmitter(); assert.strictEqual( - ee.listenerCount(UNCAUGHT_EVENT), 0, - 'Listeners on event should be zero'); + ee.listenerCount(UNCAUGHT_EVENT), + 0, + 'Listeners on event should be zero' + ); // return the bound function which the user will actually interface with const errorHandlerInstance = restifyInterface(null!, null!); // execute the handler the user will use with the stubbed server instance errorHandlerInstance(ee as restify.Server); assert.strictEqual( - ee.listenerCount(UNCAUGHT_EVENT), 1, - 'Listeners on event should now be one'); + ee.listenerCount(UNCAUGHT_EVENT), + 1, + 'Listeners on event should now be one' + ); }); }); describe('Request handler lifecycle events', () => { @@ -66,14 +70,17 @@ describe('restifyInterface', () => { ee.removeAllListeners(); const req = new EventEmitter(); const res = new EventEmitter(); - (res as {} as {statusCode: number}).statusCode = 200; + ((res as {}) as {statusCode: number}).statusCode = 200; it('Should have 0 listeners on the finish event', () => { assert.strictEqual(res.listenerCount(FINISH), 0); }); it('Should not throw while handling the req/res objects', () => { assert.doesNotThrow(() => { requestHandlerInstance( - req as restify.Request, res as restify.Response, noOp); + req as restify.Request, + res as restify.Response, + noOp + ); }); }); it('Should have 1 listener', () => { @@ -92,7 +99,7 @@ describe('restifyInterface', () => { assert(true, 'sendError should be called'); }, }; - const config = { + const config = ({ getServiceContext() { assert(true, 'getServiceContext should be called'); return { @@ -106,20 +113,25 @@ describe('restifyInterface', () => { getVersion() { return '1'; }, - } as {} as Configuration; - const errorHandlerInstance = - restifyInterface(client as {} as RequestHandler, config); + } as {}) as Configuration; + const errorHandlerInstance = restifyInterface( + (client as {}) as RequestHandler, + config + ); const requestHandlerInstance = errorHandlerInstance(ee as restify.Server); const req = new EventEmitter(); const res = new EventEmitter(); - (res as {} as {statusCode: number}).statusCode = 500; + ((res as {}) as {statusCode: number}).statusCode = 500; it('Should have 0 Listeners on the finish event', () => { assert.strictEqual(res.listenerCount(FINISH), 0); }); it('Should not throw on instantiation', () => { assert.doesNotThrow(() => { requestHandlerInstance( - req as restify.Request, res as restify.Response, noOp); + req as restify.Request, + res as restify.Response, + noOp + ); }); }); it('Should have 1 listener on the finish event', () => { diff --git a/handwritten/error-reporting/test/unit/logger.ts b/handwritten/error-reporting/test/unit/logger.ts index d983a583531..25238bda9a1 100644 --- a/handwritten/error-reporting/test/unit/logger.ts +++ b/handwritten/error-reporting/test/unit/logger.ts @@ -19,7 +19,7 @@ import {createLogger} from '../../src/logger'; describe('logger', () => { describe('Initialization', () => { - let oldEnv: string|undefined; + let oldEnv: string | undefined; before(() => { oldEnv = process.env.GCLOUD_ERRORS_LOGLEVEL; delete process.env.GCLOUD_ERRORS_LOGLEVEL; @@ -29,29 +29,33 @@ describe('logger', () => { }); describe('Exception handling', () => { it('Should not throw given undefined', () => { - assert.doesNotThrow( - createLogger, createLogger() as {} as (err: Error) => boolean); + assert.doesNotThrow(createLogger, (createLogger() as {}) as ( + err: Error + ) => boolean); }); it('Should not throw given an empty object', () => { assert.doesNotThrow( - createLogger.bind(null, {}), - createLogger() as {} as (err: Error) => boolean); + createLogger.bind(null, {}), + (createLogger() as {}) as (err: Error) => boolean + ); }); it('Should not throw given logLevel as a number', () => { assert.doesNotThrow( - createLogger.bind(null, {logLevel: 3}), - createLogger({logLevel: 3}) as {} as (err: Error) => boolean); + createLogger.bind(null, {logLevel: 3}), + (createLogger({logLevel: 3}) as {}) as (err: Error) => boolean + ); }); it('Should not throw given logLevel as a string', () => { assert.doesNotThrow( - createLogger.bind(null, {logLevel: '3'}), - createLogger({logLevel: 3}) as {} as (err: Error) => boolean); + createLogger.bind(null, {logLevel: '3'}), + (createLogger({logLevel: 3}) as {}) as (err: Error) => boolean + ); }); it('Should not throw given an env variable to use', () => { process.env.GCLOUD_ERRORS_LOGLEVEL = '4'; - assert.doesNotThrow( - createLogger, - createLogger({logLevel: 4}) as {} as (err: Error) => boolean); + assert.doesNotThrow(createLogger, (createLogger({ + logLevel: 4, + }) as {}) as (err: Error) => boolean); delete process.env.GCLOUD_ERRORS_LOGLEVEL; }); it('Should thow given logLevel as null', () => { @@ -60,14 +64,14 @@ describe('logger', () => { }); describe('Default log level', () => { let oldLog: (text: string) => void; - let text: string|undefined; + let text: string | undefined; beforeEach(() => { // eslint-disable-next-line no-console oldLog = console.error; text = ''; // eslint-disable-next-line no-console console.error = function(this) { - oldLog.apply(this, arguments as {} as [string]); + oldLog.apply(this, (arguments as {}) as [string]); for (let i = 0; i < arguments.length; i++) { text += arguments[i]; } @@ -82,13 +86,17 @@ describe('logger', () => { const logger = createLogger(); logger.warn('test warning message'); assert.strictEqual( - text, 'WARN:@google-cloud/error-reporting: test warning message'); + text, + 'WARN:@google-cloud/error-reporting: test warning message' + ); }); it('Should print ERROR logs by default', () => { const logger = createLogger(); logger.error('test error message'); assert.strictEqual( - text, 'ERROR:@google-cloud/error-reporting: test error message'); + text, + 'ERROR:@google-cloud/error-reporting: test error message' + ); }); }); }); diff --git a/handwritten/error-reporting/test/unit/populate-error-message.ts b/handwritten/error-reporting/test/unit/populate-error-message.ts index 607a7cb192f..17f704dbc8c 100644 --- a/handwritten/error-reporting/test/unit/populate-error-message.ts +++ b/handwritten/error-reporting/test/unit/populate-error-message.ts @@ -24,7 +24,7 @@ const TEST_USER_INVALID = 12; const TEST_MESSAGE = 'This is a test'; const TEST_SERVICE_DEFAULT = { service: 'node', - version: undefined + version: undefined, }; const TEST_STACK_DEFAULT = { filePath: '', @@ -87,202 +87,226 @@ describe('populate-error-message', () => { it('Should not throw given an object of invalid form', () => { assert.doesNotThrow( - populateErrorMessage.bind(null, adversarialObjectInput, em)); + populateErrorMessage.bind(null, adversarialObjectInput, em) + ); assert.doesNotThrow( - populateErrorMessage.bind(null, adversarialObjectInputTwo, em)); + populateErrorMessage.bind(null, adversarialObjectInputTwo, em) + ); }); - it('Message Field: Should set the message as the stack given an Error', - () => { - const err = new Error(TEST_MESSAGE); - populateErrorMessage(err, em); - deepStrictEqual( - em.message, err.stack, - 'Given a valid message the ' + - 'error message should absorb the error stack as the message'); - }); - - it('Message Field: Should set the field given valid input given an object', - () => { - let err = {}; - const MESSAGE = 'test'; - err = {message: MESSAGE}; - populateErrorMessage(err, em); - assert.strictEqual(em.message, MESSAGE); - }); - - it('Message Field: Should default the field given lack-of input given ' + - 'an object', - () => { - const err = {error: 'some error message'}; - populateErrorMessage(err, em); - assert(em.message.startsWith('{ error: \'some error message\' }')); - }); - - it('User Field: Should set the field given valid input given an Error', - () => { - const err: AnnotatedError = new Error(); - const TEST_USER_VALID = 'TEST_USER'; - err.user = TEST_USER_VALID; - populateErrorMessage(err, em); - assert.strictEqual(em.context.user, TEST_USER_VALID); - }); - - it('User Field: Should default the field given invalid input given an Error', - () => { - const err: AnnotatedError = new Error(); - err.user = TEST_USER_INVALID; - populateErrorMessage(err, em); - assert.strictEqual(em.context.user, ''); - }); - - it('User Field: Should set the field given valid input given an object', - () => { - const err: AnnotatedError = {}; - const USER = 'test'; - err.user = USER; - populateErrorMessage(err, em); - assert.strictEqual(em.context.user, USER); - }); - - it('User Field: Should default the field given lack-of input given an ' + - 'object', - () => { - const err = {}; - populateErrorMessage(err, em); - assert.strictEqual(em.context.user, ''); - }); - - it('ServiceContext Field: Should set the field given valid input given ' + - 'an Error', - () => { - const err: AnnotatedError = new Error(); - const TEST_SERVICE_VALID = {service: 'test', version: 'test'}; - err.serviceContext = TEST_SERVICE_VALID; - populateErrorMessage(err, em); - deepStrictEqual(err.serviceContext, TEST_SERVICE_VALID); - }); - - it('ServiceContext Field: Should default the field given invalid input ' + - 'given an Error', - () => { - const err: AnnotatedError = new Error(); - const TEST_SERVICE_INVALID = 12; - err.serviceContext = TEST_SERVICE_INVALID; - populateErrorMessage(err, em); - deepStrictEqual(em.serviceContext, TEST_SERVICE_DEFAULT); - }); - - it('ServiceContext Field: Should default the field if not given input ' + - 'given an Error', - () => { - const err = new Error(); - populateErrorMessage(err, em); - deepStrictEqual(em.serviceContext, TEST_SERVICE_DEFAULT); - }); - - it('ServiceContext Field: Should set the field given valid input given an ' + - 'object', - () => { - const err: AnnotatedError = {}; - const TEST_SERVICE_VALID = {service: 'test', version: 'test'}; - err.serviceContext = TEST_SERVICE_VALID; - populateErrorMessage(err, em); - deepStrictEqual(em.serviceContext, TEST_SERVICE_VALID); - }); - - it('ServiceContext Field: Should default the field given invalid input ' + - 'given an object', - () => { - const err: AnnotatedError = {}; - const TEST_SERVICE_INVALID = 12; - err.serviceContext = TEST_SERVICE_INVALID; - populateErrorMessage(err, em); - deepStrictEqual(em.serviceContext, TEST_SERVICE_DEFAULT); - }); - - it('ServiceContext Field: Should default the field given lack-of input ' + - 'given an object', - () => { - const err = {}; - populateErrorMessage(err, em); - deepStrictEqual(em.serviceContext, TEST_SERVICE_DEFAULT); - }); - - it('Report location Field: Should default the field if given invalid input ' + - 'given an Error', - () => { - const TEST_STACK_INVALID_CONTENTS = { - filePath: null, - lineNumber: '2', - functionName: {}, - }; - const err: AnnotatedError = new Error(); - err.stack = TEST_STACK_INVALID_CONTENTS; - populateErrorMessage(err, em); - deepStrictEqual(em.context.reportLocation, TEST_STACK_DEFAULT); - }); - - it('Report location Field: Should default field if not given a valid type ' + - 'given an Error', - () => { - const err: AnnotatedError = new Error(); - const TEST_STACK_INVALID_TYPE = [] as {}; - err.stack = TEST_STACK_INVALID_TYPE; - populateErrorMessage(err, em); - deepStrictEqual(em.context.reportLocation, TEST_STACK_DEFAULT); - }); - - it('FilePath Field: Should set the field given valid input given an object', - () => { - const err: AnnotatedError = {}; - const PATH = 'test'; - err.filePath = PATH; - populateErrorMessage(err, em); - assert.strictEqual(em.context.reportLocation.filePath, PATH); - }); - - it('FilePath Field: Should default the field given lack-of input given ' + - 'an object', - () => { - const err = {}; - populateErrorMessage(err, em); - assert.strictEqual(em.context.reportLocation.filePath, ''); - }); - - it('LineNumber Field: Should set the field given valid input given an object', - () => { - const err: AnnotatedError = {}; - const LINE_NUMBER = 10; - err.lineNumber = LINE_NUMBER; - populateErrorMessage(err, em); - assert.strictEqual(em.context.reportLocation.lineNumber, LINE_NUMBER); - }); - - it('LineNumber Field: Should default the field given lack-of input given ' + - 'an object', - () => { - const err = {}; - populateErrorMessage(err, em); - assert.strictEqual(em.context.reportLocation.lineNumber, 0); - }); - - it('FunctionName Field: Should set the field given valid input given ' + - 'an object', - () => { - const err: AnnotatedError = {}; - const FUNCTION_NAME = 'test'; - err.functionName = FUNCTION_NAME; - populateErrorMessage(err, em); - assert.strictEqual( - em.context.reportLocation.functionName, FUNCTION_NAME); - }); - - it('FunctionName Field: Should default the field given lack-of input given ' + - 'an object', - () => { - const err = {}; - populateErrorMessage(err, em); - assert.strictEqual(em.context.reportLocation.functionName, ''); - }); + it('Message Field: Should set the message as the stack given an Error', () => { + const err = new Error(TEST_MESSAGE); + populateErrorMessage(err, em); + deepStrictEqual( + em.message, + err.stack, + 'Given a valid message the ' + + 'error message should absorb the error stack as the message' + ); + }); + + it('Message Field: Should set the field given valid input given an object', () => { + let err = {}; + const MESSAGE = 'test'; + err = {message: MESSAGE}; + populateErrorMessage(err, em); + assert.strictEqual(em.message, MESSAGE); + }); + + it( + 'Message Field: Should default the field given lack-of input given ' + + 'an object', + () => { + const err = {error: 'some error message'}; + populateErrorMessage(err, em); + assert(em.message.startsWith("{ error: 'some error message' }")); + } + ); + + it('User Field: Should set the field given valid input given an Error', () => { + const err: AnnotatedError = new Error(); + const TEST_USER_VALID = 'TEST_USER'; + err.user = TEST_USER_VALID; + populateErrorMessage(err, em); + assert.strictEqual(em.context.user, TEST_USER_VALID); + }); + + it('User Field: Should default the field given invalid input given an Error', () => { + const err: AnnotatedError = new Error(); + err.user = TEST_USER_INVALID; + populateErrorMessage(err, em); + assert.strictEqual(em.context.user, ''); + }); + + it('User Field: Should set the field given valid input given an object', () => { + const err: AnnotatedError = {}; + const USER = 'test'; + err.user = USER; + populateErrorMessage(err, em); + assert.strictEqual(em.context.user, USER); + }); + + it( + 'User Field: Should default the field given lack-of input given an ' + + 'object', + () => { + const err = {}; + populateErrorMessage(err, em); + assert.strictEqual(em.context.user, ''); + } + ); + + it( + 'ServiceContext Field: Should set the field given valid input given ' + + 'an Error', + () => { + const err: AnnotatedError = new Error(); + const TEST_SERVICE_VALID = {service: 'test', version: 'test'}; + err.serviceContext = TEST_SERVICE_VALID; + populateErrorMessage(err, em); + deepStrictEqual(err.serviceContext, TEST_SERVICE_VALID); + } + ); + + it( + 'ServiceContext Field: Should default the field given invalid input ' + + 'given an Error', + () => { + const err: AnnotatedError = new Error(); + const TEST_SERVICE_INVALID = 12; + err.serviceContext = TEST_SERVICE_INVALID; + populateErrorMessage(err, em); + deepStrictEqual(em.serviceContext, TEST_SERVICE_DEFAULT); + } + ); + + it( + 'ServiceContext Field: Should default the field if not given input ' + + 'given an Error', + () => { + const err = new Error(); + populateErrorMessage(err, em); + deepStrictEqual(em.serviceContext, TEST_SERVICE_DEFAULT); + } + ); + + it( + 'ServiceContext Field: Should set the field given valid input given an ' + + 'object', + () => { + const err: AnnotatedError = {}; + const TEST_SERVICE_VALID = {service: 'test', version: 'test'}; + err.serviceContext = TEST_SERVICE_VALID; + populateErrorMessage(err, em); + deepStrictEqual(em.serviceContext, TEST_SERVICE_VALID); + } + ); + + it( + 'ServiceContext Field: Should default the field given invalid input ' + + 'given an object', + () => { + const err: AnnotatedError = {}; + const TEST_SERVICE_INVALID = 12; + err.serviceContext = TEST_SERVICE_INVALID; + populateErrorMessage(err, em); + deepStrictEqual(em.serviceContext, TEST_SERVICE_DEFAULT); + } + ); + + it( + 'ServiceContext Field: Should default the field given lack-of input ' + + 'given an object', + () => { + const err = {}; + populateErrorMessage(err, em); + deepStrictEqual(em.serviceContext, TEST_SERVICE_DEFAULT); + } + ); + + it( + 'Report location Field: Should default the field if given invalid input ' + + 'given an Error', + () => { + const TEST_STACK_INVALID_CONTENTS = { + filePath: null, + lineNumber: '2', + functionName: {}, + }; + const err: AnnotatedError = new Error(); + err.stack = TEST_STACK_INVALID_CONTENTS; + populateErrorMessage(err, em); + deepStrictEqual(em.context.reportLocation, TEST_STACK_DEFAULT); + } + ); + + it( + 'Report location Field: Should default field if not given a valid type ' + + 'given an Error', + () => { + const err: AnnotatedError = new Error(); + const TEST_STACK_INVALID_TYPE = [] as {}; + err.stack = TEST_STACK_INVALID_TYPE; + populateErrorMessage(err, em); + deepStrictEqual(em.context.reportLocation, TEST_STACK_DEFAULT); + } + ); + + it('FilePath Field: Should set the field given valid input given an object', () => { + const err: AnnotatedError = {}; + const PATH = 'test'; + err.filePath = PATH; + populateErrorMessage(err, em); + assert.strictEqual(em.context.reportLocation.filePath, PATH); + }); + + it( + 'FilePath Field: Should default the field given lack-of input given ' + + 'an object', + () => { + const err = {}; + populateErrorMessage(err, em); + assert.strictEqual(em.context.reportLocation.filePath, ''); + } + ); + + it('LineNumber Field: Should set the field given valid input given an object', () => { + const err: AnnotatedError = {}; + const LINE_NUMBER = 10; + err.lineNumber = LINE_NUMBER; + populateErrorMessage(err, em); + assert.strictEqual(em.context.reportLocation.lineNumber, LINE_NUMBER); + }); + + it( + 'LineNumber Field: Should default the field given lack-of input given ' + + 'an object', + () => { + const err = {}; + populateErrorMessage(err, em); + assert.strictEqual(em.context.reportLocation.lineNumber, 0); + } + ); + + it( + 'FunctionName Field: Should set the field given valid input given ' + + 'an object', + () => { + const err: AnnotatedError = {}; + const FUNCTION_NAME = 'test'; + err.functionName = FUNCTION_NAME; + populateErrorMessage(err, em); + assert.strictEqual(em.context.reportLocation.functionName, FUNCTION_NAME); + } + ); + + it( + 'FunctionName Field: Should default the field given lack-of input given ' + + 'an object', + () => { + const err = {}; + populateErrorMessage(err, em); + assert.strictEqual(em.context.reportLocation.functionName, ''); + } + ); }); diff --git a/handwritten/error-reporting/test/unit/request-extractors/express.ts b/handwritten/error-reporting/test/unit/request-extractors/express.ts index c1d916eba46..4efc74b2da1 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/express.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/express.ts @@ -37,7 +37,10 @@ describe('Behaviour under varying input', () => { deepStrictEqual(value, DEFAULT_RETURN_VALUE); }; f.fuzzFunctionForTypes( - expressRequestInformationExtractor, ['object', 'object'], cbFn); + expressRequestInformationExtractor, + ['object', 'object'], + cbFn + ); }); it('Should return valid request object given valid input', () => { const FULL_REQ_DERIVATION_VALUE = { @@ -112,31 +115,46 @@ describe('Behaviour under varying input', () => { return lrn; }; let tmpOutput = expressRequestInformationExtractor( - headerFactory(FULL_REQ_DERIVATION_VALUE), - FULL_RES_DERIVATION_VALUE as Response); - deepStrictEqual(tmpOutput, FULL_REQ_EXPECTED_VALUE, [ - 'Given a valid object input for the request parameter and an', - '\'x-forwarded-for\' parameter the request extractor should return', - 'the expected full req output and the \'x-forwarded-for\' value', - 'as the value for the \'remoteAddress\' property.', - ].join(' ')); + headerFactory(FULL_REQ_DERIVATION_VALUE), + FULL_RES_DERIVATION_VALUE as Response + ); + deepStrictEqual( + tmpOutput, + FULL_REQ_EXPECTED_VALUE, + [ + 'Given a valid object input for the request parameter and an', + "'x-forwarded-for' parameter the request extractor should return", + "the expected full req output and the 'x-forwarded-for' value", + "as the value for the 'remoteAddress' property.", + ].join(' ') + ); tmpOutput = expressRequestInformationExtractor( - headerFactory(PARTIAL_REQ_DERIVATION_VALUE), - PARTIAL_RES_DERIVATION_VALUE as Response); - deepStrictEqual(tmpOutput, PARTIAL_REQ_EXPECTED_VALUE, [ - 'Given a valid object input for the request parameter but sans an', - '\'x-forwarded-for\' parameter the request extractor should return', - 'the expected parital req output and the remoteAddress value', - 'as the value for the \'remoteAddress\' property.', - ].join(' ')); + headerFactory(PARTIAL_REQ_DERIVATION_VALUE), + PARTIAL_RES_DERIVATION_VALUE as Response + ); + deepStrictEqual( + tmpOutput, + PARTIAL_REQ_EXPECTED_VALUE, + [ + 'Given a valid object input for the request parameter but sans an', + "'x-forwarded-for' parameter the request extractor should return", + 'the expected parital req output and the remoteAddress value', + "as the value for the 'remoteAddress' property.", + ].join(' ') + ); tmpOutput = expressRequestInformationExtractor( - headerFactory(ANOTHER_PARTIAL_REQ_DERIVATION_VALUE), - ANOTHER_PARTIAL_RES_DERIVATION_VALUE as Response); - deepStrictEqual(tmpOutput, ANOTHER_PARTIAL_REQ_EXPECTED_VALUE, [ - 'Given a valid object input for the request parameter but sans an', - '\'x-forwarded-for\' parameter or a remoteAddress parameter', - 'the request extractor should return an empty string', - 'as the value for the \'remoteAddress\' property.', - ].join(' ')); + headerFactory(ANOTHER_PARTIAL_REQ_DERIVATION_VALUE), + ANOTHER_PARTIAL_RES_DERIVATION_VALUE as Response + ); + deepStrictEqual( + tmpOutput, + ANOTHER_PARTIAL_REQ_EXPECTED_VALUE, + [ + 'Given a valid object input for the request parameter but sans an', + "'x-forwarded-for' parameter or a remoteAddress parameter", + 'the request extractor should return an empty string', + "as the value for the 'remoteAddress' property.", + ].join(' ') + ); }); }); diff --git a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts index 7317c1febbe..7de17c40c53 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts @@ -105,32 +105,39 @@ describe('hapiRequestInformationExtractor behaviour', () => { }; it('Should produce the full request input', () => { deepStrictEqual( - hapiRequestInformationExtractor( - FULL_REQ_DERIVATION_VALUE as {} as hapi.Request), - FULL_REQ_EXPECTED_VALUE); + hapiRequestInformationExtractor( + (FULL_REQ_DERIVATION_VALUE as {}) as hapi.Request + ), + FULL_REQ_EXPECTED_VALUE + ); }); it('Should produce the partial request input', () => { deepStrictEqual( - hapiRequestInformationExtractor( - PARTIAL_REQ_DERIVATION_VALUE as {} as hapi.Request), - PARTIAL_REQ_EXPECTED_VALUE); + hapiRequestInformationExtractor( + (PARTIAL_REQ_DERIVATION_VALUE as {}) as hapi.Request + ), + PARTIAL_REQ_EXPECTED_VALUE + ); }); it('Should produce the second partial request input', () => { deepStrictEqual( - hapiRequestInformationExtractor( - ANOTHER_PARTIAL_REQ_DERIVATION_VALUE as {} as hapi.Request), - ANOTHER_PARTIAL_REQ_EXPECTED_VALUE); + hapiRequestInformationExtractor( + (ANOTHER_PARTIAL_REQ_DERIVATION_VALUE as {}) as hapi.Request + ), + ANOTHER_PARTIAL_REQ_EXPECTED_VALUE + ); }); it('Should deal with hapi v16+ URL objects', () => { const PATH = '/foo/bar'; const REQUEST = { ...FULL_REQ_DERIVATION_VALUE, - url: new URL(`https://www.SUPER-TEST.com${PATH}`) + url: new URL(`https://www.SUPER-TEST.com${PATH}`), }; const EXPECTED = {...FULL_REQ_EXPECTED_VALUE, url: PATH}; deepStrictEqual( - hapiRequestInformationExtractor(REQUEST as {} as hapi.Request), - EXPECTED); + hapiRequestInformationExtractor((REQUEST as {}) as hapi.Request), + EXPECTED + ); }); }); }); diff --git a/handwritten/error-reporting/test/unit/request-extractors/koa.ts b/handwritten/error-reporting/test/unit/request-extractors/koa.ts index c25f378bf54..48e893c711a 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/koa.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/koa.ts @@ -36,7 +36,10 @@ describe('koaRequestInformationExtractor', () => { deepStrictEqual(value, DEFAULT_RETURN_VALUE); }; f.fuzzFunctionForTypes( - koaRequestInformationExtractor, ['object', 'object'], cbFn); + koaRequestInformationExtractor, + ['object', 'object'], + cbFn + ); }); }); describe('Behaviour under valid input', () => { @@ -62,10 +65,12 @@ describe('koaRequestInformationExtractor', () => { statusCode: 200, }; deepStrictEqual( - koaRequestInformationExtractor( - FULL_REQ_DERIVATION_VALUE as Request, - FULL_RES_DERIVATION_VALUE as Response), - FULL_REQ_EXPECTED_VALUE); + koaRequestInformationExtractor( + FULL_REQ_DERIVATION_VALUE as Request, + FULL_RES_DERIVATION_VALUE as Response + ), + FULL_REQ_EXPECTED_VALUE + ); }); }); }); diff --git a/handwritten/error-reporting/test/unit/request-extractors/manual.ts b/handwritten/error-reporting/test/unit/request-extractors/manual.ts index c00d07acba8..e8425a3d1c2 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/manual.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/manual.ts @@ -35,7 +35,10 @@ describe('manualRequestInformationExtractor', () => { deepStrictEqual(value, DEFAULT_RETURN_VALUE); }; f.fuzzFunctionForTypes( - manualRequestInformationExtractor, ['object'], cbFn); + manualRequestInformationExtractor, + ['object'], + cbFn + ); }); }); describe('Behaviour given valid input', () => { @@ -49,50 +52,63 @@ describe('manualRequestInformationExtractor', () => { }; it('Should return expected output', () => { deepStrictEqual( - manualRequestInformationExtractor(FULL_VALID_INPUT), FULL_VALID_INPUT, - [ - 'Given a full valid input object these values should be reflected by', - 'the output of the request extraction', - ].join(' ')); + manualRequestInformationExtractor(FULL_VALID_INPUT), + FULL_VALID_INPUT, + [ + 'Given a full valid input object these values should be reflected by', + 'the output of the request extraction', + ].join(' ') + ); deepStrictEqual( - manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'method')), - Object.assign({}, FULL_VALID_INPUT, {method: ''}), [ - 'Given a full valid input object sans the method property values', - 'should be reflected by the output of the request extraction', - ].join(' ')); + manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'method')), + Object.assign({}, FULL_VALID_INPUT, {method: ''}), + [ + 'Given a full valid input object sans the method property values', + 'should be reflected by the output of the request extraction', + ].join(' ') + ); deepStrictEqual( - manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'url')), - Object.assign({}, FULL_VALID_INPUT, {url: ''}), [ - 'Given a valid input sans the url property these values should be', - 'reflected by the output of the request extraction', - ].join('')); + manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'url')), + Object.assign({}, FULL_VALID_INPUT, {url: ''}), + [ + 'Given a valid input sans the url property these values should be', + 'reflected by the output of the request extraction', + ].join('') + ); deepStrictEqual( - manualRequestInformationExtractor( - omit(FULL_VALID_INPUT, 'userAgent')), - Object.assign({}, FULL_VALID_INPUT, {userAgent: ''}), [ - 'Given a full valid input sans the userAgent property these values', - 'should be reflected by the output of the request extraction', - ].join('')); + manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'userAgent')), + Object.assign({}, FULL_VALID_INPUT, {userAgent: ''}), + [ + 'Given a full valid input sans the userAgent property these values', + 'should be reflected by the output of the request extraction', + ].join('') + ); deepStrictEqual( - manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'referrer')), - Object.assign({}, FULL_VALID_INPUT, {referrer: ''}), [ - 'Given a full valid input sans the referrer property these values', - 'should be reflected by the output of the request extraction', - ].join('')); + manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'referrer')), + Object.assign({}, FULL_VALID_INPUT, {referrer: ''}), + [ + 'Given a full valid input sans the referrer property these values', + 'should be reflected by the output of the request extraction', + ].join('') + ); deepStrictEqual( - manualRequestInformationExtractor( - omit(FULL_VALID_INPUT, 'statusCode')), - Object.assign({}, FULL_VALID_INPUT, {statusCode: 0}), [ - 'Given a full valid input sans the statusCode property these values', - 'should be reflected by the output of the request extraction', - ].join('')); + manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'statusCode')), + Object.assign({}, FULL_VALID_INPUT, {statusCode: 0}), + [ + 'Given a full valid input sans the statusCode property these values', + 'should be reflected by the output of the request extraction', + ].join('') + ); deepStrictEqual( - manualRequestInformationExtractor( - omit(FULL_VALID_INPUT, 'remoteAddress')), - Object.assign({}, FULL_VALID_INPUT, {remoteAddress: ''}), [ - 'Given a valid input sans the remoteAddress property these values', - 'should be reflected by the output of the request extraction', - ].join('')); + manualRequestInformationExtractor( + omit(FULL_VALID_INPUT, 'remoteAddress') + ), + Object.assign({}, FULL_VALID_INPUT, {remoteAddress: ''}), + [ + 'Given a valid input sans the remoteAddress property these values', + 'should be reflected by the output of the request extraction', + ].join('') + ); }); }); }); diff --git a/handwritten/error-reporting/test/unit/service-configuration.ts b/handwritten/error-reporting/test/unit/service-configuration.ts index 0487b0cea77..16d72747367 100644 --- a/handwritten/error-reporting/test/unit/service-configuration.ts +++ b/handwritten/error-reporting/test/unit/service-configuration.ts @@ -37,21 +37,27 @@ function sterilizeServiceConfigEnv() { }); } function setEnv( - serviceName: string|null, serviceVersion: string, moduleName: string|null, - mv: string, fn: string|null) { + serviceName: string | null, + serviceVersion: string, + moduleName: string | null, + mv: string, + fn: string | null +) { Object.assign( - process.env, - omitBy( - { - GAE_SERVICE: serviceName, - GAE_VERSION: serviceVersion, - GAE_MODULE_NAME: moduleName, - GAE_MODULE_VERSION: mv, - FUNCTION_NAME: fn, - }, - val => { - return !is.string(val); - })); + process.env, + omitBy( + { + GAE_SERVICE: serviceName, + GAE_VERSION: serviceVersion, + GAE_MODULE_NAME: moduleName, + GAE_MODULE_VERSION: mv, + FUNCTION_NAME: fn, + }, + val => { + return !is.string(val); + } + ) + ); } function restoreServiceConfigEnv() { Object.assign(process.env, serviceConfigEnv); @@ -64,172 +70,215 @@ describe('Testing service configuration', () => { after(() => { restoreServiceConfigEnv(); }); - it('A Configuration uses the function name as the service name on GCF ' + - 'if the service name is not given in the given config', - () => { - setEnv( - 'someModuleName', '1.0', 'InvalidName', 'InvalidVersion', - 'someFunction'); - const c = new Configuration({}, logger); - deepStrictEqual(c.getServiceContext().service, 'someFunction'); - // FUNCTION_NAME is set and the user didn't specify a version, and so - // the version should not be defined - deepStrictEqual(c.getServiceContext().version, undefined); - }); - it('A Configuration uses the function name as the service name on GCF ' + - 'if the service name is not given in the given config ' + - 'even if the GAE_SERVICE was not set', - () => { - setEnv(null, '1.0', null, 'InvalidVersion', 'someFunction'); - const c = new Configuration({}, logger); - deepStrictEqual(c.getServiceContext().service, 'someFunction'); - // The user didn't specify a version and FUNCTION_NAME is defined, and - // so the version should not be defined - deepStrictEqual(c.getServiceContext().version, undefined); - }); - it('A Configuration uses the GAE_SERVICE env value as the service name ' + - 'if the FUNCTION_NAME env variable is not set and the given config ' + - 'does not specify the service name', - () => { - setEnv('someModuleName', '1.0', 'InvalidName', 'InvalidVersion', null); - const c = new Configuration({}, logger); - deepStrictEqual(c.getServiceContext().service, 'someModuleName'); - // The user didn't specify a version, and FUNCTION_NAME is not defined, - // and so use the GAE_MODULE_VERSION - deepStrictEqual(c.getServiceContext().version, '1.0'); - }); - it('A Configuration uses the service name in the given config if it ' + - 'was specified and both the GAE_SERVICE and FUNCTION_NAME ' + - 'env vars are set', - () => { - setEnv( - 'someModuleName', '1.0', 'InvalidName', 'InvalidVersion', - 'someFunction'); - const c = new Configuration( - { - serviceContext: { - service: 'customService', - }, - }, - logger); - deepStrictEqual(c.getServiceContext().service, 'customService'); - // The user didn't specify a version, but FUNCTION_NAME is defined, and - // so the version should not be defined - deepStrictEqual(c.getServiceContext().version, undefined); - }); - it('A Configuration uses the service name and version in the given config' + - 'they were both specified and both the GAE_SERVICE and FUNCTION_NAME ' + - 'env vars are set', - () => { - setEnv( - 'someModuleName', '1.0', 'InvalidName', 'InvalidVersion', - 'someFunction'); - const c = new Configuration( - { - serviceContext: { - service: 'customService', - version: '2.0', - }, - }, - logger); - deepStrictEqual(c.getServiceContext().service, 'customService'); - // The user specified version should be used - deepStrictEqual(c.getServiceContext().version, '2.0'); - }); - it('A Configuration uses the service name in the given config if it ' + - 'was specified and only the GAE_SERVICE env const is set', - () => { - setEnv('someModuleName', '1.0', 'InvalidName', 'InvalidVersion', null); - const c = new Configuration( - { - serviceContext: { - service: 'customService', - }, - }, - logger); - deepStrictEqual(c.getServiceContext().service, 'customService'); - // The user didn't specify a version and FUNCTION_NAME is not defined - // and so the GAE_MODULE_VERSION should be used - deepStrictEqual(c.getServiceContext().version, '1.0'); - }); - it('A Configuration uses the service name and version in the given config ' + - 'they were both specified and only the GAE_SERVICE env const is set', - () => { - setEnv('someModuleName', '1.0', 'InvalidName', 'InvalidVersion', null); - const c = new Configuration( - { - serviceContext: { - service: 'customService', - version: '2.0', - }, - }, - logger); - deepStrictEqual(c.getServiceContext().service, 'customService'); - // The user specified version should be used - deepStrictEqual(c.getServiceContext().version, '2.0'); - }); - it('A Configuration uses the service name in the given config if it ' + - 'was specified and only the FUNCTION_NAME env const is set', - () => { - setEnv(null, '1.0', null, 'InvalidVersion', 'someFunction'); - const c = new Configuration( - { - serviceContext: { - service: 'customService', - }, - }, - logger); - deepStrictEqual(c.getServiceContext().service, 'customService'); - // The user didn't specify a version and thus because FUNCTION_NAME is - // defined the version should not be defined - deepStrictEqual(c.getServiceContext().version, undefined); - }); - it('A Configuration uses the service name and version in the given config ' + - 'if they were both specified and only the FUNCTION_NAME env const is set', - () => { - setEnv(null, '1.0', null, 'InvalidVersion', 'someFunction'); - const c = new Configuration( - { - serviceContext: { - service: 'customService', - version: '2.0', - }, - }, - logger); - assert.strictEqual(c.getServiceContext().service, 'customService'); - // The user specified version should be used - assert.strictEqual(c.getServiceContext().version, '2.0'); - }); - it('A Configuration uses the service name "node" and no version if ' + - 'GAE_SERVICE is not set, FUNCTION_NAME is not set, and the user has ' + - 'not specified a service name or version', - () => { - const c = new Configuration({}, logger); - assert.strictEqual(c.getServiceContext().service, 'node'); - assert.strictEqual(c.getServiceContext().version, undefined); - }); - it('A Configuration uses the service name "node" and no version if ' + - 'GAE_SERVICE is not set, FUNCTION_NAME is not set, and the user has ' + - 'not specified a service name or version even if GAE_VERSION has ' + - 'been set', - () => { - setEnv(null, 'InvalidVersion', null, 'InvalidVersion', null); - const c = new Configuration({}, logger); - assert.strictEqual(c.getServiceContext().service, 'node'); - assert.strictEqual(c.getServiceContext().version, undefined); - }); - it('A Configuration uses the service name "node" and the user specified ' + - 'version if GAE_SERVICE is not set, FUNCTION_NAME is not set, and the ' + - 'user has not specified a service name but has specified a version', - () => { - const c = new Configuration( - { - serviceContext: { - version: '2.0', - }, - }, - logger); - deepStrictEqual(c.getServiceContext().service, 'node'); - deepStrictEqual(c.getServiceContext().version, '2.0'); - }); + it( + 'A Configuration uses the function name as the service name on GCF ' + + 'if the service name is not given in the given config', + () => { + setEnv( + 'someModuleName', + '1.0', + 'InvalidName', + 'InvalidVersion', + 'someFunction' + ); + const c = new Configuration({}, logger); + deepStrictEqual(c.getServiceContext().service, 'someFunction'); + // FUNCTION_NAME is set and the user didn't specify a version, and so + // the version should not be defined + deepStrictEqual(c.getServiceContext().version, undefined); + } + ); + it( + 'A Configuration uses the function name as the service name on GCF ' + + 'if the service name is not given in the given config ' + + 'even if the GAE_SERVICE was not set', + () => { + setEnv(null, '1.0', null, 'InvalidVersion', 'someFunction'); + const c = new Configuration({}, logger); + deepStrictEqual(c.getServiceContext().service, 'someFunction'); + // The user didn't specify a version and FUNCTION_NAME is defined, and + // so the version should not be defined + deepStrictEqual(c.getServiceContext().version, undefined); + } + ); + it( + 'A Configuration uses the GAE_SERVICE env value as the service name ' + + 'if the FUNCTION_NAME env variable is not set and the given config ' + + 'does not specify the service name', + () => { + setEnv('someModuleName', '1.0', 'InvalidName', 'InvalidVersion', null); + const c = new Configuration({}, logger); + deepStrictEqual(c.getServiceContext().service, 'someModuleName'); + // The user didn't specify a version, and FUNCTION_NAME is not defined, + // and so use the GAE_MODULE_VERSION + deepStrictEqual(c.getServiceContext().version, '1.0'); + } + ); + it( + 'A Configuration uses the service name in the given config if it ' + + 'was specified and both the GAE_SERVICE and FUNCTION_NAME ' + + 'env vars are set', + () => { + setEnv( + 'someModuleName', + '1.0', + 'InvalidName', + 'InvalidVersion', + 'someFunction' + ); + const c = new Configuration( + { + serviceContext: { + service: 'customService', + }, + }, + logger + ); + deepStrictEqual(c.getServiceContext().service, 'customService'); + // The user didn't specify a version, but FUNCTION_NAME is defined, and + // so the version should not be defined + deepStrictEqual(c.getServiceContext().version, undefined); + } + ); + it( + 'A Configuration uses the service name and version in the given config' + + 'they were both specified and both the GAE_SERVICE and FUNCTION_NAME ' + + 'env vars are set', + () => { + setEnv( + 'someModuleName', + '1.0', + 'InvalidName', + 'InvalidVersion', + 'someFunction' + ); + const c = new Configuration( + { + serviceContext: { + service: 'customService', + version: '2.0', + }, + }, + logger + ); + deepStrictEqual(c.getServiceContext().service, 'customService'); + // The user specified version should be used + deepStrictEqual(c.getServiceContext().version, '2.0'); + } + ); + it( + 'A Configuration uses the service name in the given config if it ' + + 'was specified and only the GAE_SERVICE env const is set', + () => { + setEnv('someModuleName', '1.0', 'InvalidName', 'InvalidVersion', null); + const c = new Configuration( + { + serviceContext: { + service: 'customService', + }, + }, + logger + ); + deepStrictEqual(c.getServiceContext().service, 'customService'); + // The user didn't specify a version and FUNCTION_NAME is not defined + // and so the GAE_MODULE_VERSION should be used + deepStrictEqual(c.getServiceContext().version, '1.0'); + } + ); + it( + 'A Configuration uses the service name and version in the given config ' + + 'they were both specified and only the GAE_SERVICE env const is set', + () => { + setEnv('someModuleName', '1.0', 'InvalidName', 'InvalidVersion', null); + const c = new Configuration( + { + serviceContext: { + service: 'customService', + version: '2.0', + }, + }, + logger + ); + deepStrictEqual(c.getServiceContext().service, 'customService'); + // The user specified version should be used + deepStrictEqual(c.getServiceContext().version, '2.0'); + } + ); + it( + 'A Configuration uses the service name in the given config if it ' + + 'was specified and only the FUNCTION_NAME env const is set', + () => { + setEnv(null, '1.0', null, 'InvalidVersion', 'someFunction'); + const c = new Configuration( + { + serviceContext: { + service: 'customService', + }, + }, + logger + ); + deepStrictEqual(c.getServiceContext().service, 'customService'); + // The user didn't specify a version and thus because FUNCTION_NAME is + // defined the version should not be defined + deepStrictEqual(c.getServiceContext().version, undefined); + } + ); + it( + 'A Configuration uses the service name and version in the given config ' + + 'if they were both specified and only the FUNCTION_NAME env const is set', + () => { + setEnv(null, '1.0', null, 'InvalidVersion', 'someFunction'); + const c = new Configuration( + { + serviceContext: { + service: 'customService', + version: '2.0', + }, + }, + logger + ); + assert.strictEqual(c.getServiceContext().service, 'customService'); + // The user specified version should be used + assert.strictEqual(c.getServiceContext().version, '2.0'); + } + ); + it( + 'A Configuration uses the service name "node" and no version if ' + + 'GAE_SERVICE is not set, FUNCTION_NAME is not set, and the user has ' + + 'not specified a service name or version', + () => { + const c = new Configuration({}, logger); + assert.strictEqual(c.getServiceContext().service, 'node'); + assert.strictEqual(c.getServiceContext().version, undefined); + } + ); + it( + 'A Configuration uses the service name "node" and no version if ' + + 'GAE_SERVICE is not set, FUNCTION_NAME is not set, and the user has ' + + 'not specified a service name or version even if GAE_VERSION has ' + + 'been set', + () => { + setEnv(null, 'InvalidVersion', null, 'InvalidVersion', null); + const c = new Configuration({}, logger); + assert.strictEqual(c.getServiceContext().service, 'node'); + assert.strictEqual(c.getServiceContext().version, undefined); + } + ); + it( + 'A Configuration uses the service name "node" and the user specified ' + + 'version if GAE_SERVICE is not set, FUNCTION_NAME is not set, and the ' + + 'user has not specified a service name but has specified a version', + () => { + const c = new Configuration( + { + serviceContext: { + version: '2.0', + }, + }, + logger + ); + deepStrictEqual(c.getServiceContext().service, 'node'); + deepStrictEqual(c.getServiceContext().version, '2.0'); + } + ); }); diff --git a/handwritten/error-reporting/test/util.ts b/handwritten/error-reporting/test/util.ts index beda6b8ab6e..6a2269bf2fe 100644 --- a/handwritten/error-reporting/test/util.ts +++ b/handwritten/error-reporting/test/util.ts @@ -17,9 +17,12 @@ import * as assert from 'assert'; import * as stringify from 'json-stable-stringify'; -export type Anything = {}|undefined|null; +export type Anything = {} | undefined | null; export function deepStrictEqual( - actual: Anything, expected: Anything, message?: string) { + actual: Anything, + expected: Anything, + message?: string +) { assert.deepStrictEqual(stringify(actual), stringify(expected), message); } diff --git a/handwritten/error-reporting/utils/errors-api-transport.ts b/handwritten/error-reporting/utils/errors-api-transport.ts index e018c729bab..76df0c549e7 100644 --- a/handwritten/error-reporting/utils/errors-api-transport.ts +++ b/handwritten/error-reporting/utils/errors-api-transport.ts @@ -53,18 +53,22 @@ export class ErrorsApiTransport extends AuthClient { } async getAllGroups( - service: string, version: string, pageSize: number, - pageToken?: string): Promise { + service: string, + version: string, + pageSize: number, + pageToken?: string + ): Promise { const id = await this.getProjectId(); const options = { uri: [ - API, id, - 'groupStats?' + ONE_HOUR_API + - `&serviceFilter.service=${service}&serviceFilter.version=${ - version}&pageSize=${pageSize}&order=LAST_SEEN_DESC` + - (pageToken ? `&pageToken=${pageToken}` : '') + API, + id, + 'groupStats?' + + ONE_HOUR_API + + `&serviceFilter.service=${service}&serviceFilter.version=${version}&pageSize=${pageSize}&order=LAST_SEEN_DESC` + + (pageToken ? `&pageToken=${pageToken}` : ''), ].join('/'), - method: 'GET' + method: 'GET', }; return new Promise((resolve, reject) => { this.request(options, (err, body, res) => { diff --git a/handwritten/error-reporting/utils/fuzzer.ts b/handwritten/error-reporting/utils/fuzzer.ts index 17f955aff9c..585289e080f 100644 --- a/handwritten/error-reporting/utils/fuzzer.ts +++ b/handwritten/error-reporting/utils/fuzzer.ts @@ -63,7 +63,7 @@ export class Fuzzer { return chars.join(''); }, - function(this: {[key: string]: () => void; types: () => string[];}) { + function(this: {[key: string]: () => void; types: () => string[]}) { const availableTypes = without(this.types(), 'function'); const typeToGen = this.types()[random(0, availableTypes.length - 1)]; const fnToCall = this[typeToGen]; @@ -89,17 +89,20 @@ export class Fuzzer { }, array( - len?: number, ofOneType?: string, currentDepth?: number, - allowedDepth?: number) { + len?: number, + ofOneType?: string, + currentDepth?: number, + allowedDepth?: number + ) { const lenChecked = (is.number(len) ? len : random(1, 10))!; - let availableTypes = - (is.string(ofOneType) && this.types().indexOf(ofOneType!) > -1 ? - [ofOneType] : - this.types())!; + let availableTypes = (is.string(ofOneType) && + this.types().indexOf(ofOneType!) > -1 + ? [ofOneType] + : this.types())!; let currentDepthChecked = (is.number(currentDepth) ? currentDepth : 0)!; const allowedDepthChecked = (is.number(allowedDepth) ? allowedDepth : 3)!; const arr: Array<{}> = []; - let currentTypeBeingGenerated: string|undefined = ''; + let currentTypeBeingGenerated: string | undefined = ''; currentDepthChecked += 1; // Deny the ability to nest more objects @@ -109,17 +112,29 @@ export class Fuzzer { for (let i = 0; i < lenChecked; i++) { currentTypeBeingGenerated = - availableTypes[random(0, availableTypes.length - 1)]; + availableTypes[random(0, availableTypes.length - 1)]; if (currentTypeBeingGenerated === 'object') { - arr.push(this[currentTypeBeingGenerated]( - null!, currentDepthChecked, allowedDepthChecked)); + arr.push( + this[currentTypeBeingGenerated]( + null!, + currentDepthChecked, + allowedDepthChecked + ) + ); } else if (currentTypeBeingGenerated === 'array') { - arr.push(this[currentTypeBeingGenerated]( - null!, ofOneType, currentDepthChecked, allowedDepthChecked)); + arr.push( + this[currentTypeBeingGenerated]( + null!, + ofOneType, + currentDepthChecked, + allowedDepthChecked + ) + ); } else { - arr.push(( - this as {[key: string]: Function})[currentTypeBeingGenerated!]()); + arr.push( + (this as {[key: string]: Function})[currentTypeBeingGenerated!]() + ); } } @@ -127,9 +142,13 @@ export class Fuzzer { }, object( - numProperties?: number, currentDepth?: number, allowedDepth?: number) { - const numPropertiesChecked = - (is.number(numProperties) ? numProperties : random(1, 10))!; + numProperties?: number, + currentDepth?: number, + allowedDepth?: number + ) { + const numPropertiesChecked = (is.number(numProperties) + ? numProperties + : random(1, 10))!; let currentDepthChecked = (is.number(currentDepth) ? currentDepth : 0)!; const allowedDepthChecked = (is.number(allowedDepth) ? allowedDepth : 3)!; const obj: {[key: string]: {}} = {}; @@ -142,40 +161,49 @@ export class Fuzzer { availableTypes = without(availableTypes, 'object', 'array'); } - let currentTypeBeingGenerated: string|number = 0; + let currentTypeBeingGenerated: string | number = 0; let currentKey = ''; for (let i = 0; i < numPropertiesChecked; i++) { currentTypeBeingGenerated = - availableTypes[random(0, availableTypes.length - 1)]; + availableTypes[random(0, availableTypes.length - 1)]; currentKey = this.alphaNumericString(random(1, 10)); if (currentTypeBeingGenerated === 'object') { obj[currentKey] = this[currentTypeBeingGenerated]( - null!, currentDepthChecked, allowedDepthChecked); + null!, + currentDepthChecked, + allowedDepthChecked + ); } else if (currentTypeBeingGenerated === 'array') { obj[currentKey] = this[currentTypeBeingGenerated]( - null!, null!, currentDepthChecked, allowedDepthChecked); + null!, + null!, + currentDepthChecked, + allowedDepthChecked + ); } else { - obj[currentKey] = - (this as {[key: string]: Function})[currentTypeBeingGenerated](); + obj[currentKey] = (this as {[key: string]: Function})[ + currentTypeBeingGenerated + ](); } } return obj; - } + }, }; _backFillUnevenTypesArrays(argsTypesArray: Array>) { const largestLength = maxBy(argsTypesArray, o => { - return o.length; - })!.length; + return o.length; + })!.length; for (let i = 0; i < argsTypesArray.length; i++) { if (argsTypesArray[i].length !== largestLength) { while (argsTypesArray[i].length < largestLength) { argsTypesArray[i].push( - argsTypesArray[i][random(0, argsTypesArray[i].length - 1)]); + argsTypesArray[i][random(0, argsTypesArray[i].length - 1)] + ); } } } @@ -201,7 +229,7 @@ export class Fuzzer { return this._backFillUnevenTypesArrays(argsTypesArray); } - _generateTypesToFuzzWith(expectsArgTypes: Array) { + _generateTypesToFuzzWith(expectsArgTypes: Array) { let argsTypesArray: Array> = []; let tmpArray = this.generate.types(); @@ -237,23 +265,31 @@ export class Fuzzer { } fuzzFunctionForTypes( - fnToFuzz: Function, expectsArgTypes?: string[], cb?: Function, - withContext?: {}) { - const expectsArgTypesChecked = - (is.array(expectsArgTypes) ? expectsArgTypes : [])!; - const typesToFuzzOnEach = - this._generateTypesToFuzzWith(expectsArgTypesChecked) as string[][]; + fnToFuzz: Function, + expectsArgTypes?: string[], + cb?: Function, + withContext?: {} + ) { + const expectsArgTypesChecked = (is.array(expectsArgTypes) + ? expectsArgTypes + : [])!; + const typesToFuzzOnEach = this._generateTypesToFuzzWith( + expectsArgTypesChecked + ) as string[][]; let returnValue = undefined; for (let i = 0; i < typesToFuzzOnEach[0].length; i++) { returnValue = fnToFuzz.apply( - withContext, this._generateValuesForFuzzTyping(typesToFuzzOnEach, i)); + withContext, + this._generateValuesForFuzzTyping(typesToFuzzOnEach, i) + ); - if (is.function(cb)) - { cb!(returnValue); } + if (is.function(cb)) { + cb!(returnValue); + } } return true; - } } +} From 8df16d591a2bda1ef65c10a63f1bdd9d5742335f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Fri, 10 May 2019 15:47:28 -0700 Subject: [PATCH 257/527] fix(deps): update dependency @google-cloud/common to v1 (#357) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 273e3ac5f7e..6586b4ac081 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -43,7 +43,7 @@ "predocs-test": "npm run docs" }, "dependencies": { - "@google-cloud/common": "^0.32.0", + "@google-cloud/common": "^1.0.0", "console-log-level": "^1.4.0", "is": "^3.2.1", "lodash.has": "^4.5.2", From d16eabcd0387843701fb5a224d7ced74cdc87a90 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot <44816363+yoshi-automation@users.noreply.github.com> Date: Fri, 10 May 2019 15:47:47 -0700 Subject: [PATCH 258/527] build: only pipe to codecov if tests run on Node 10 (#353) --- handwritten/error-reporting/.kokoro/lint.sh | 10 ++++++---- .../error-reporting/.kokoro/samples-test.sh | 16 +++++++++------- handwritten/error-reporting/.kokoro/test.sh | 12 ++++++++++-- handwritten/error-reporting/synth.metadata | 4 ++-- 4 files changed, 27 insertions(+), 15 deletions(-) diff --git a/handwritten/error-reporting/.kokoro/lint.sh b/handwritten/error-reporting/.kokoro/lint.sh index 7c2ea2a28f9..bcb7508363b 100755 --- a/handwritten/error-reporting/.kokoro/lint.sh +++ b/handwritten/error-reporting/.kokoro/lint.sh @@ -23,9 +23,11 @@ cd $(dirname $0)/.. npm install # Install and link samples -cd samples/ -npm link ../ -npm install -cd .. +if [ -f samples/package.json ]; then + cd samples/ + npm link ../ + npm install + cd .. +fi npm run lint diff --git a/handwritten/error-reporting/.kokoro/samples-test.sh b/handwritten/error-reporting/.kokoro/samples-test.sh index 5a81ec01fcc..f83f712a88a 100755 --- a/handwritten/error-reporting/.kokoro/samples-test.sh +++ b/handwritten/error-reporting/.kokoro/samples-test.sh @@ -31,12 +31,14 @@ if [ -f .kokoro/pre-samples-test.sh ]; then set -x fi -npm install +if [ -f samples/package.json ]; then + npm install -# Install and link samples -cd samples/ -npm link ../ -npm install -cd .. + # Install and link samples + cd samples/ + npm link ../ + npm install + cd .. -npm run samples-test + npm run samples-test +fi diff --git a/handwritten/error-reporting/.kokoro/test.sh b/handwritten/error-reporting/.kokoro/test.sh index 4d6c3f83188..f7e9fe78163 100755 --- a/handwritten/error-reporting/.kokoro/test.sh +++ b/handwritten/error-reporting/.kokoro/test.sh @@ -22,6 +22,14 @@ cd $(dirname $0)/.. npm install npm test -./node_modules/nyc/bin/nyc.js report -bash $KOKORO_GFILE_DIR/codecov.sh +COVERAGE_NODE=10 +if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then + NYC_BIN=./node_modules/nyc/bin/nyc.js + if [ -f "$NYC_BIN" ]; then + $NYC_BIN report + fi + bash $KOKORO_GFILE_DIR/codecov.sh +else + echo "coverage is only reported for Node $COVERAGE_NODE" +fi diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 70c14c543b6..2dd0c30b02d 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -1,11 +1,11 @@ { - "updateTime": "2019-05-02T02:19:21.169437Z", + "updateTime": "2019-05-04T11:14:31.622905Z", "sources": [ { "template": { "name": "node_library", "origin": "synthtool.gcp", - "version": "2019.4.10" + "version": "2019.5.2" } } ] From e94ed013f9937821b6d747efbcd026c49be7e307 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Fri, 17 May 2019 08:19:06 -0700 Subject: [PATCH 259/527] build: add new kokoro config for coverage and release-please (#358) --- .../.kokoro/continuous/node10/common.cfg | 10 ++++++++ .../.kokoro/continuous/node10/test.cfg | 9 ------- .../.kokoro/presubmit/node10/common.cfg | 10 ++++++++ .../.kokoro/presubmit/node10/test.cfg | 9 ------- .../.kokoro/release-candidate-issue.sh | 25 +++++++++++++++++++ .../.kokoro/release-requested.sh | 25 +++++++++++++++++++ .../.kokoro/release/common.cfg | 8 ++++++ .../.kokoro/release/publish.cfg | 9 ------- .../release/release-candidate-issue.cfg | 22 ++++++++++++++++ .../.kokoro/release/release-requested.cfg | 22 ++++++++++++++++ .../error-reporting/.kokoro/samples-test.sh | 13 ++++++++++ .../error-reporting/.kokoro/system-test.sh | 13 ++++++++++ handwritten/error-reporting/.kokoro/test.sh | 4 ++- handwritten/error-reporting/synth.metadata | 4 +-- 14 files changed, 153 insertions(+), 30 deletions(-) create mode 100755 handwritten/error-reporting/.kokoro/release-candidate-issue.sh create mode 100755 handwritten/error-reporting/.kokoro/release-requested.sh create mode 100644 handwritten/error-reporting/.kokoro/release/common.cfg create mode 100644 handwritten/error-reporting/.kokoro/release/release-candidate-issue.cfg create mode 100644 handwritten/error-reporting/.kokoro/release/release-requested.cfg diff --git a/handwritten/error-reporting/.kokoro/continuous/node10/common.cfg b/handwritten/error-reporting/.kokoro/continuous/node10/common.cfg index 46a485cb122..4d88b992141 100644 --- a/handwritten/error-reporting/.kokoro/continuous/node10/common.cfg +++ b/handwritten/error-reporting/.kokoro/continuous/node10/common.cfg @@ -7,6 +7,16 @@ action { } } +# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "dpebot_codecov_token" + } + } +} + # Download trampoline resources. gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" diff --git a/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg b/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg index 468b8c7197a..e69de29bb2d 100644 --- a/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg +++ b/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg @@ -1,9 +0,0 @@ -# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "dpebot_codecov_token" - } - } -} diff --git a/handwritten/error-reporting/.kokoro/presubmit/node10/common.cfg b/handwritten/error-reporting/.kokoro/presubmit/node10/common.cfg index 46a485cb122..4d88b992141 100644 --- a/handwritten/error-reporting/.kokoro/presubmit/node10/common.cfg +++ b/handwritten/error-reporting/.kokoro/presubmit/node10/common.cfg @@ -7,6 +7,16 @@ action { } } +# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "dpebot_codecov_token" + } + } +} + # Download trampoline resources. gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" diff --git a/handwritten/error-reporting/.kokoro/presubmit/node10/test.cfg b/handwritten/error-reporting/.kokoro/presubmit/node10/test.cfg index 468b8c7197a..e69de29bb2d 100644 --- a/handwritten/error-reporting/.kokoro/presubmit/node10/test.cfg +++ b/handwritten/error-reporting/.kokoro/presubmit/node10/test.cfg @@ -1,9 +0,0 @@ -# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "dpebot_codecov_token" - } - } -} diff --git a/handwritten/error-reporting/.kokoro/release-candidate-issue.sh b/handwritten/error-reporting/.kokoro/release-candidate-issue.sh new file mode 100755 index 00000000000..940333ed53f --- /dev/null +++ b/handwritten/error-reporting/.kokoro/release-candidate-issue.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -eo pipefail + +export NPM_CONFIG_PREFIX=/home/node/.npm-global + +GITHUB_TOKEN=$(cat $KOKORO_KEYSTORE_DIR/73713_yoshi-automation-github-key) + +npx release-please candidate-issue --token=$GITHUB_TOKEN \ + --repo-url=googleapis/nodejs-error-reporting \ + --package-name=@google-cloud/error-reporting diff --git a/handwritten/error-reporting/.kokoro/release-requested.sh b/handwritten/error-reporting/.kokoro/release-requested.sh new file mode 100755 index 00000000000..894889c2f87 --- /dev/null +++ b/handwritten/error-reporting/.kokoro/release-requested.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -eo pipefail + +export NPM_CONFIG_PREFIX=/home/node/.npm-global + +GITHUB_TOKEN=$(cat $KOKORO_KEYSTORE_DIR/73713_yoshi-automation-github-key) + +npx release-please detect-checked --token=$GITHUB_TOKEN \ + --repo-url=googleapis/nodejs-error-reporting \ + --package-name=@google-cloud/error-reporting diff --git a/handwritten/error-reporting/.kokoro/release/common.cfg b/handwritten/error-reporting/.kokoro/release/common.cfg new file mode 100644 index 00000000000..3ba2eb095fe --- /dev/null +++ b/handwritten/error-reporting/.kokoro/release/common.cfg @@ -0,0 +1,8 @@ +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "yoshi-automation-github-key" + } + } +} diff --git a/handwritten/error-reporting/.kokoro/release/publish.cfg b/handwritten/error-reporting/.kokoro/release/publish.cfg index 702edc18ae0..30d8fc15814 100644 --- a/handwritten/error-reporting/.kokoro/release/publish.cfg +++ b/handwritten/error-reporting/.kokoro/release/publish.cfg @@ -9,15 +9,6 @@ before_action { } } -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "yoshi-automation-github-key" - } - } -} - before_action { fetch_keystore { keystore_resource { diff --git a/handwritten/error-reporting/.kokoro/release/release-candidate-issue.cfg b/handwritten/error-reporting/.kokoro/release/release-candidate-issue.cfg new file mode 100644 index 00000000000..8c77aada041 --- /dev/null +++ b/handwritten/error-reporting/.kokoro/release/release-candidate-issue.cfg @@ -0,0 +1,22 @@ +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" +} +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-error-reporting/.kokoro/release-candidate-issue.sh" +} diff --git a/handwritten/error-reporting/.kokoro/release/release-requested.cfg b/handwritten/error-reporting/.kokoro/release/release-requested.cfg new file mode 100644 index 00000000000..9fcd026fe12 --- /dev/null +++ b/handwritten/error-reporting/.kokoro/release/release-requested.cfg @@ -0,0 +1,22 @@ +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" +} +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-error-reporting/.kokoro/release-requested.sh" +} diff --git a/handwritten/error-reporting/.kokoro/samples-test.sh b/handwritten/error-reporting/.kokoro/samples-test.sh index f83f712a88a..07d31dccc45 100755 --- a/handwritten/error-reporting/.kokoro/samples-test.sh +++ b/handwritten/error-reporting/.kokoro/samples-test.sh @@ -42,3 +42,16 @@ if [ -f samples/package.json ]; then npm run samples-test fi + +# codecov combines coverage across integration and unit tests. Include +# the logic below for any environment you wish to collect coverage for: +COVERAGE_NODE=10 +if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then + NYC_BIN=./node_modules/nyc/bin/nyc.js + if [ -f "$NYC_BIN" ]; then + $NYC_BIN report || true + fi + bash $KOKORO_GFILE_DIR/codecov.sh +else + echo "coverage is only reported for Node $COVERAGE_NODE" +fi diff --git a/handwritten/error-reporting/.kokoro/system-test.sh b/handwritten/error-reporting/.kokoro/system-test.sh index fd8f0b638d0..b7374d0ad45 100755 --- a/handwritten/error-reporting/.kokoro/system-test.sh +++ b/handwritten/error-reporting/.kokoro/system-test.sh @@ -34,3 +34,16 @@ fi npm install npm run system-test + +# codecov combines coverage across integration and unit tests. Include +# the logic below for any environment you wish to collect coverage for: +COVERAGE_NODE=10 +if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then + NYC_BIN=./node_modules/nyc/bin/nyc.js + if [ -f "$NYC_BIN" ]; then + $NYC_BIN report || true + fi + bash $KOKORO_GFILE_DIR/codecov.sh +else + echo "coverage is only reported for Node $COVERAGE_NODE" +fi diff --git a/handwritten/error-reporting/.kokoro/test.sh b/handwritten/error-reporting/.kokoro/test.sh index f7e9fe78163..bfc7b26154e 100755 --- a/handwritten/error-reporting/.kokoro/test.sh +++ b/handwritten/error-reporting/.kokoro/test.sh @@ -23,11 +23,13 @@ cd $(dirname $0)/.. npm install npm test +# codecov combines coverage across integration and unit tests. Include +# the logic below for any environment you wish to collect coverage for: COVERAGE_NODE=10 if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then NYC_BIN=./node_modules/nyc/bin/nyc.js if [ -f "$NYC_BIN" ]; then - $NYC_BIN report + $NYC_BIN report || true fi bash $KOKORO_GFILE_DIR/codecov.sh else diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 2dd0c30b02d..e800d902d7b 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -1,11 +1,11 @@ { - "updateTime": "2019-05-04T11:14:31.622905Z", + "updateTime": "2019-05-17T01:05:32.220485Z", "sources": [ { "template": { "name": "node_library", "origin": "synthtool.gcp", - "version": "2019.5.2" + "version": "2019.4.10" } } ] From 64a0b44ff4839c241a2e90312595ea5aa06b4c7a Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Fri, 17 May 2019 16:48:59 -0700 Subject: [PATCH 260/527] build: updated kokoro config for coverage and release-please (#359) --- .../.kokoro/continuous/node10/test.cfg | 19 ++++++++++++++ .../.kokoro/release-candidate-issue.sh | 25 ------------------- .../.kokoro/release-requested.sh | 25 ------------------- .../.kokoro/release/publish.cfg | 9 +++++++ .../release/release-candidate-issue.cfg | 22 ---------------- .../.kokoro/release/release-requested.cfg | 22 ---------------- handwritten/error-reporting/.kokoro/test.sh | 8 ++++++ handwritten/error-reporting/synth.metadata | 2 +- 8 files changed, 37 insertions(+), 95 deletions(-) delete mode 100755 handwritten/error-reporting/.kokoro/release-candidate-issue.sh delete mode 100755 handwritten/error-reporting/.kokoro/release-requested.sh delete mode 100644 handwritten/error-reporting/.kokoro/release/release-candidate-issue.cfg delete mode 100644 handwritten/error-reporting/.kokoro/release/release-requested.cfg diff --git a/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg b/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg index e69de29bb2d..38c174e6b3d 100644 --- a/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg +++ b/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg @@ -0,0 +1,19 @@ +# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "dpebot_codecov_token" + } + } +} + +# token used by release-please to keep an up-to-date release PR. +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "yoshi-automation-github-key" + } + } +} diff --git a/handwritten/error-reporting/.kokoro/release-candidate-issue.sh b/handwritten/error-reporting/.kokoro/release-candidate-issue.sh deleted file mode 100755 index 940333ed53f..00000000000 --- a/handwritten/error-reporting/.kokoro/release-candidate-issue.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# Copyright 2019 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -set -eo pipefail - -export NPM_CONFIG_PREFIX=/home/node/.npm-global - -GITHUB_TOKEN=$(cat $KOKORO_KEYSTORE_DIR/73713_yoshi-automation-github-key) - -npx release-please candidate-issue --token=$GITHUB_TOKEN \ - --repo-url=googleapis/nodejs-error-reporting \ - --package-name=@google-cloud/error-reporting diff --git a/handwritten/error-reporting/.kokoro/release-requested.sh b/handwritten/error-reporting/.kokoro/release-requested.sh deleted file mode 100755 index 894889c2f87..00000000000 --- a/handwritten/error-reporting/.kokoro/release-requested.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# Copyright 2019 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -set -eo pipefail - -export NPM_CONFIG_PREFIX=/home/node/.npm-global - -GITHUB_TOKEN=$(cat $KOKORO_KEYSTORE_DIR/73713_yoshi-automation-github-key) - -npx release-please detect-checked --token=$GITHUB_TOKEN \ - --repo-url=googleapis/nodejs-error-reporting \ - --package-name=@google-cloud/error-reporting diff --git a/handwritten/error-reporting/.kokoro/release/publish.cfg b/handwritten/error-reporting/.kokoro/release/publish.cfg index 30d8fc15814..702edc18ae0 100644 --- a/handwritten/error-reporting/.kokoro/release/publish.cfg +++ b/handwritten/error-reporting/.kokoro/release/publish.cfg @@ -9,6 +9,15 @@ before_action { } } +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "yoshi-automation-github-key" + } + } +} + before_action { fetch_keystore { keystore_resource { diff --git a/handwritten/error-reporting/.kokoro/release/release-candidate-issue.cfg b/handwritten/error-reporting/.kokoro/release/release-candidate-issue.cfg deleted file mode 100644 index 8c77aada041..00000000000 --- a/handwritten/error-reporting/.kokoro/release/release-candidate-issue.cfg +++ /dev/null @@ -1,22 +0,0 @@ -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" -} -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-error-reporting/.kokoro/release-candidate-issue.sh" -} diff --git a/handwritten/error-reporting/.kokoro/release/release-requested.cfg b/handwritten/error-reporting/.kokoro/release/release-requested.cfg deleted file mode 100644 index 9fcd026fe12..00000000000 --- a/handwritten/error-reporting/.kokoro/release/release-requested.cfg +++ /dev/null @@ -1,22 +0,0 @@ -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" -} -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-error-reporting/.kokoro/release-requested.sh" -} diff --git a/handwritten/error-reporting/.kokoro/test.sh b/handwritten/error-reporting/.kokoro/test.sh index bfc7b26154e..800c28920de 100755 --- a/handwritten/error-reporting/.kokoro/test.sh +++ b/handwritten/error-reporting/.kokoro/test.sh @@ -35,3 +35,11 @@ if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then else echo "coverage is only reported for Node $COVERAGE_NODE" fi + +# if the GITHUB_TOKEN is set, we kick off a task to update the release-PR. +GITHUB_TOKEN=$(cat $KOKORO_KEYSTORE_DIR/73713_yoshi-automation-github-key) || true +if [ "$GITHUB_TOKEN" ]; then + npx release-please release-pr --token=$GITHUB_TOKEN \ + --repo-url=googleapis/nodejs-error-reporting \ + --package-name=@google-cloud/error-reporting +fi diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index e800d902d7b..f4e7ac7aadf 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -1,5 +1,5 @@ { - "updateTime": "2019-05-17T01:05:32.220485Z", + "updateTime": "2019-05-17T19:45:10.132305Z", "sources": [ { "template": { From 6cfd59003b38909c2201f9750053eb5335f2c367 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 17 May 2019 21:18:40 -0700 Subject: [PATCH 261/527] chore: release 1.0.0 (#360) * updated CHANGELOG.md * updated package.json * updated samples/package.json --- handwritten/error-reporting/CHANGELOG.md | 18 +++++++++++++++++- handwritten/error-reporting/package.json | 2 +- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/CHANGELOG.md b/handwritten/error-reporting/CHANGELOG.md index 782067cd3ae..aae66880100 100644 --- a/handwritten/error-reporting/CHANGELOG.md +++ b/handwritten/error-reporting/CHANGELOG.md @@ -4,6 +4,23 @@ [1]: https://www.npmjs.com/package/@google-cloud/error-reporting?activeTab=versions +## [1.0.0](https://www.github.com/googleapis/nodejs-error-reporting/compare/v0.6.3...v1.0.0) (2019-05-17) + + +### Bug Fixes + +* **deps:** update dependency @google-cloud/common to v1 ([#357](https://www.github.com/googleapis/nodejs-error-reporting/issues/357)) ([1e928e8](https://www.github.com/googleapis/nodejs-error-reporting/commit/1e928e8)) + + +### Build System + +* upgrade engines field to >=8.10.0 ([#349](https://www.github.com/googleapis/nodejs-error-reporting/issues/349)) ([1ab75f2](https://www.github.com/googleapis/nodejs-error-reporting/commit/1ab75f2)) + + +### BREAKING CHANGES + +* upgrade engines field to >=8.10.0 (#349) + ## v0.6.3 04-11-2019 11:37 PDT @@ -186,4 +203,3 @@ - chore: use post-install-check ([#166](https://github.com/googleapis/nodejs-error-reporting/pull/166)) - test: fix system tests ([#162](https://github.com/googleapis/nodejs-error-reporting/pull/162)) - fix: drop support for nodejs 9.x ([#161](https://github.com/googleapis/nodejs-error-reporting/pull/161)) - diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 6586b4ac081..26a4f8d281a 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/error-reporting", "description": "Stackdriver Error Reporting Client Library for Node.js", - "version": "0.6.3", + "version": "1.0.0", "license": "Apache-2.0", "author": "Google Inc.", "engines": { From 078f154591357e49199bee83fa11b140fe39c4a5 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Wed, 22 May 2019 17:50:33 +0000 Subject: [PATCH 262/527] refactor: remove request and ineffective tests (#361) --- handwritten/error-reporting/package.json | 11 ++--- .../system-test/error-reporting.ts | 47 ------------------- .../test/unit/interfaces/manual.ts | 14 +++--- 3 files changed, 11 insertions(+), 61 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 26a4f8d281a..d282d3d9789 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -46,8 +46,7 @@ "@google-cloud/common": "^1.0.0", "console-log-level": "^1.4.0", "is": "^3.2.1", - "lodash.has": "^4.5.2", - "teeny-request": "^3.6.0" + "lodash.has": "^4.5.2" }, "devDependencies": { "@compodoc/compodoc": "^1.1.7", @@ -71,7 +70,6 @@ "@types/node": "^10.1.1", "@types/once": "^1.4.0", "@types/proxyquire": "^1.3.28", - "@types/request": "^2.48.1", "@types/restify": "^7.2.0", "@types/uuid": "^3.4.4", "body-parser": "^1.18.3", @@ -90,6 +88,7 @@ "js-green-licenses": "^0.5.0", "json-stable-stringify": "^1.0.1", "koa": "^2.5.1", + "linkinator": "^1.1.2", "lodash.maxby": "^4.6.0", "lodash.merge": "^4.6.1", "lodash.omit": "^4.5.0", @@ -97,18 +96,16 @@ "lodash.pick": "^4.4.0", "lodash.random": "^3.2.0", "lodash.without": "^4.4.0", - "mocha": "^6.0.0", + "mocha": "^6.1.4", "nock": "^10.0.0", "nyc": "^14.0.0", "post-install-check": "0.0.1", "power-assert": "^1.5.0", "prettier": "^1.12.1", "proxyquire": "^2.0.1", - "request": "^2.88.0", "restify": "^8.0.0", "source-map-support": "^0.5.9", "typescript": "~3.4.0", - "uuid": "^3.3.2", - "linkinator": "^1.1.2" + "uuid": "^3.3.2" } } diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index e5a7628c412..4395335574c 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -32,7 +32,6 @@ import { import pick = require('lodash.pick'); import omitBy = require('lodash.omitby'); -import * as request from 'request'; import * as uuid from 'uuid'; import * as util from 'util'; import * as path from 'path'; @@ -432,52 +431,6 @@ describe('Expected Behavior', () => { }); }); -describe('Error Reporting API', () => { - [ - { - name: 'when a valid API key is given', - getKey: () => env.apiKey, - message: 'Message cannot be empty.', - statusCode: 400, - }, - { - name: 'when an empty API key is given', - getKey: () => '', - message: 'The request is missing a valid API key.', - // TODO: Determine if 403 is the correct expected status code. - // Prior to the code migration, the expected status code - // was 400. However, the service is now reporting 403. - statusCode: 403, - }, - { - name: 'when an invalid API key is given', - getKey: () => env.apiKey.slice(1) + env.apiKey[0], - message: 'API key not valid. Please pass a valid API key.', - statusCode: 400, - }, - ].forEach(testCase => { - it(`should return an expected message ${ - testCase.name - }`, function(this, done) { - this.timeout(60000); - const API = 'https://clouderrorreporting.googleapis.com/v1beta1'; - const key = testCase.getKey(); - request.post( - { - url: `${API}/projects/${env.projectId}/events:report?key=${key}`, - json: {}, - }, - (err, response, body) => { - assert.ok(!err && body.error); - assert.strictEqual(response.statusCode, testCase.statusCode); - assert.strictEqual(body.error.message, testCase.message); - done(); - } - ); - }); - }); -}); - describe('error-reporting', () => { const SRC_ROOT = path.join(__dirname, '..', 'src'); const UUID = uuid.v4(); diff --git a/handwritten/error-reporting/test/unit/interfaces/manual.ts b/handwritten/error-reporting/test/unit/interfaces/manual.ts index eb4d60e092a..cd69a9ef3e0 100644 --- a/handwritten/error-reporting/test/unit/interfaces/manual.ts +++ b/handwritten/error-reporting/test/unit/interfaces/manual.ts @@ -42,13 +42,13 @@ describe('Manual handler', () => { } as {}) as RequestHandler; const report = manual.handlerSetup(client, config, ({ warn(message: string) { - // The use of `report` in this class should issue the following warning - // becasue the `report` class is used directly and, as such, cannot - // by itself have information where a ErrorMesasge was constructed. It - // only knows that an error has been reported. - // Thus, the ErrorMessage objects given to the `report` method in the - // tests do not have construction site information to verify that if - // that information is not available, the user is issued a warning. + // The use of `report` in this class should issue the following + // warning becasue the `report` class is used directly and, as such, + // cannot by itself have information where a ErrorMesasge was + // constructed. It only knows that an error has been reported. Thus, + // the ErrorMessage objects given to the `report` method in the tests + // do not have construction site information to verify that if that + // information is not available, the user is issued a warning. assert.strictEqual( message, 'Encountered a manually constructed error ' + From f3beec1495c92934dfbf623b2a521da6c137b44a Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Thu, 23 May 2019 17:09:49 -0700 Subject: [PATCH 263/527] build: add configuration for automated doc deployment (#363) --- .../error-reporting/.kokoro/release/docs.cfg | 26 ++++++++++ .../error-reporting/.kokoro/release/docs.sh | 50 +++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 handwritten/error-reporting/.kokoro/release/docs.cfg create mode 100755 handwritten/error-reporting/.kokoro/release/docs.sh diff --git a/handwritten/error-reporting/.kokoro/release/docs.cfg b/handwritten/error-reporting/.kokoro/release/docs.cfg new file mode 100644 index 00000000000..dd4d77a9918 --- /dev/null +++ b/handwritten/error-reporting/.kokoro/release/docs.cfg @@ -0,0 +1,26 @@ +# service account used to publish up-to-date docs. +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "docuploader_service_account" + } + } +} + +# doc publications use a Python image. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-error-reporting/.kokoro/release/docs.sh" +} diff --git a/handwritten/error-reporting/.kokoro/release/docs.sh b/handwritten/error-reporting/.kokoro/release/docs.sh new file mode 100755 index 00000000000..4d3a0868531 --- /dev/null +++ b/handwritten/error-reporting/.kokoro/release/docs.sh @@ -0,0 +1,50 @@ +#!/bin/bash + +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -eo pipefail + +# build jsdocs (Python is installed on the Node 10 docker image). +if [[ -z "$CREDENTIALS" ]]; then + # if CREDENTIALS are explicitly set, assume we're testing locally + # and don't set NPM_CONFIG_PREFIX. + export NPM_CONFIG_PREFIX=/home/node/.npm-global + export PATH="$PATH:/home/node/.npm-global/bin" + cd $(dirname $0)/../.. +fi +npm install +npm run docs + +# create docs.metadata, based on package.json and .repo-metadata.json. +npm i json@9.0.6 -g +python3 -m pip install --user gcp-docuploader +python3 -m docuploader create-metadata \ + --name=$(cat .repo-metadata.json | json name) \ + --version=$(cat package.json | json version) \ + --language=$(cat .repo-metadata.json | json language) \ + --distribution-name=$(cat .repo-metadata.json | json distribution_name) \ + --product-page=$(cat .repo-metadata.json | json product_documentation) \ + --github-repository=$(cat .repo-metadata.json | json repo) \ + --issue-tracker=$(cat .repo-metadata.json | json issue_tracker) +cp docs.metadata ./docs/docs.metadata + +# deploy the docs. +if [[ -z "$CREDENTIALS" ]]; then + CREDENTIALS=${KOKORO_KEYSTORE_DIR}/73713_docuploader_service_account +fi +if [[ -z "$BUCKET" ]]; then + BUCKET=docs-staging +fi +python3 -m docuploader upload ./docs --credentials $CREDENTIALS --staging-bucket $BUCKET From 3062537534df95a77baff6c27e3cd59a52dbe3dd Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Tue, 28 May 2019 20:38:46 +0000 Subject: [PATCH 264/527] build: ignore proto files in test coverage (#365) --- handwritten/error-reporting/.nycrc | 1 + 1 file changed, 1 insertion(+) diff --git a/handwritten/error-reporting/.nycrc b/handwritten/error-reporting/.nycrc index bfe4073a6ab..83a421a0628 100644 --- a/handwritten/error-reporting/.nycrc +++ b/handwritten/error-reporting/.nycrc @@ -10,6 +10,7 @@ "**/samples", "**/scripts", "**/src/**/v*/**/*.js", + "**/protos", "**/test", ".jsdoc.js", "**/.jsdoc.js", From 58bfdee74aeba1331702e00ccfc9b00345ce23e9 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Wed, 29 May 2019 12:43:41 -0700 Subject: [PATCH 265/527] chore: update @google-cloud/common to 2.x (#366) --- handwritten/error-reporting/package.json | 2 +- handwritten/error-reporting/src/google-apis/auth-client.ts | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index d282d3d9789..1e3618c30fd 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -43,7 +43,7 @@ "predocs-test": "npm run docs" }, "dependencies": { - "@google-cloud/common": "^1.0.0", + "@google-cloud/common": "^2.0.0", "console-log-level": "^1.4.0", "is": "^3.2.1", "lodash.has": "^4.5.2" diff --git a/handwritten/error-reporting/src/google-apis/auth-client.ts b/handwritten/error-reporting/src/google-apis/auth-client.ts index e80a112bcb5..736b7878f7d 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.ts +++ b/handwritten/error-reporting/src/google-apis/auth-client.ts @@ -27,6 +27,8 @@ const SCOPES = ['https://www.googleapis.com/auth/cloud-platform']; /* @const {String} Base Error Reporting API */ const API = 'https://clouderrorreporting.googleapis.com/v1beta1'; +const API_ENDPOINT = 'clouderrorreporting.googleapis.com'; + /** * The RequestHandler constructor initializes several properties on the * RequestHandler instance and create a new request factory for requesting @@ -101,6 +103,7 @@ export class RequestHandler extends Service { { packageJson: pkg, baseUrl: API, + apiEndpoint: API_ENDPOINT, scopes: SCOPES, projectIdRequired: true, }, From 8067dcb3585f3ac7282ff9dc339d04e2669c49b5 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Wed, 29 May 2019 21:53:03 +0200 Subject: [PATCH 266/527] build: remove verbose logging from test scripts (#367) --- handwritten/error-reporting/.kokoro/docs.sh | 2 +- handwritten/error-reporting/.kokoro/lint.sh | 2 +- handwritten/error-reporting/.kokoro/samples-test.sh | 2 +- handwritten/error-reporting/.kokoro/system-test.sh | 2 +- handwritten/error-reporting/.kokoro/test.sh | 2 +- handwritten/error-reporting/.kokoro/trampoline.sh | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/handwritten/error-reporting/.kokoro/docs.sh b/handwritten/error-reporting/.kokoro/docs.sh index a4f318794e6..952403faede 100755 --- a/handwritten/error-reporting/.kokoro/docs.sh +++ b/handwritten/error-reporting/.kokoro/docs.sh @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -set -xeo pipefail +set -eo pipefail export NPM_CONFIG_PREFIX=/home/node/.npm-global diff --git a/handwritten/error-reporting/.kokoro/lint.sh b/handwritten/error-reporting/.kokoro/lint.sh index bcb7508363b..b03cb0439a6 100755 --- a/handwritten/error-reporting/.kokoro/lint.sh +++ b/handwritten/error-reporting/.kokoro/lint.sh @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -set -xeo pipefail +set -eo pipefail export NPM_CONFIG_PREFIX=/home/node/.npm-global diff --git a/handwritten/error-reporting/.kokoro/samples-test.sh b/handwritten/error-reporting/.kokoro/samples-test.sh index 07d31dccc45..20e3241c9e9 100755 --- a/handwritten/error-reporting/.kokoro/samples-test.sh +++ b/handwritten/error-reporting/.kokoro/samples-test.sh @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -set -xeo pipefail +set -eo pipefail export NPM_CONFIG_PREFIX=/home/node/.npm-global diff --git a/handwritten/error-reporting/.kokoro/system-test.sh b/handwritten/error-reporting/.kokoro/system-test.sh index b7374d0ad45..fc5824e6667 100755 --- a/handwritten/error-reporting/.kokoro/system-test.sh +++ b/handwritten/error-reporting/.kokoro/system-test.sh @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -set -xeo pipefail +set -eo pipefail export NPM_CONFIG_PREFIX=/home/node/.npm-global diff --git a/handwritten/error-reporting/.kokoro/test.sh b/handwritten/error-reporting/.kokoro/test.sh index 800c28920de..48121602d5b 100755 --- a/handwritten/error-reporting/.kokoro/test.sh +++ b/handwritten/error-reporting/.kokoro/test.sh @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -set -xeo pipefail +set -eo pipefail export NPM_CONFIG_PREFIX=/home/node/.npm-global diff --git a/handwritten/error-reporting/.kokoro/trampoline.sh b/handwritten/error-reporting/.kokoro/trampoline.sh index 87ffd2ca960..9bd4905c4b5 100755 --- a/handwritten/error-reporting/.kokoro/trampoline.sh +++ b/handwritten/error-reporting/.kokoro/trampoline.sh @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -set -xeo pipefail +set -eo pipefail # Always run the cleanup script, regardless of the success of bouncing into # the container. From 12c23a5d58e976342bf2231d1996965e100b2cf5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Thu, 30 May 2019 14:27:43 -0400 Subject: [PATCH 267/527] chore(deps): update dependency typescript to ~3.5.0 (#368) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 1e3618c30fd..8479887a582 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -105,7 +105,7 @@ "proxyquire": "^2.0.1", "restify": "^8.0.0", "source-map-support": "^0.5.9", - "typescript": "~3.4.0", + "typescript": "~3.5.0", "uuid": "^3.3.2" } } From 68ba39f32b197e3529a92105ccb16e3371098d99 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Fri, 31 May 2019 10:06:16 -0700 Subject: [PATCH 268/527] chore(deps): update dependency js-green-licenses to v1 (#369) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 8479887a582..8babb325ca1 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -85,7 +85,7 @@ "gts": "^1.0.0", "hapi": "^18.0.0", "intelli-espower-loader": "^1.0.1", - "js-green-licenses": "^0.5.0", + "js-green-licenses": "^1.0.0", "json-stable-stringify": "^1.0.1", "koa": "^2.5.1", "linkinator": "^1.1.2", From 84cc4717ced8e8d695c6aea45af2ca4341ab9487 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Mon, 10 Jun 2019 09:17:30 -0700 Subject: [PATCH 269/527] build: remove unused clang format (#371) --- handwritten/error-reporting/.clang-format.yaml | 2 -- .../error-reporting/system-test/error-reporting.ts | 8 ++------ 2 files changed, 2 insertions(+), 8 deletions(-) delete mode 100644 handwritten/error-reporting/.clang-format.yaml diff --git a/handwritten/error-reporting/.clang-format.yaml b/handwritten/error-reporting/.clang-format.yaml deleted file mode 100644 index e1a95210184..00000000000 --- a/handwritten/error-reporting/.clang-format.yaml +++ /dev/null @@ -1,2 +0,0 @@ -BasedOnStyle: Google -Language: Javascript diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index 4395335574c..5a7b13d20c3 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -560,9 +560,7 @@ describe('error-reporting', () => { assert.strictEqual( rep.message.indexOf(SRC_ROOT), -1, - `Expected the error item's representative's message to start with ${SRC_ROOT} but found '${ - rep.message - }'` + `Expected the error item's representative's message to start with ${SRC_ROOT} but found '${rep.message}'` ); // Ensure the stack trace in the mssage contains the frame corresponding // to the 'expectedTopOfStack' function because that is the name of @@ -574,9 +572,7 @@ describe('error-reporting', () => { assert.notStrictEqual( rep.message.indexOf(expectedTopOfStack), -1, - `Expected the error item's representative's message to not contain ${expectedTopOfStack} but found '${ - rep.message - }'` + `Expected the error item's representative's message to not contain ${expectedTopOfStack} but found '${rep.message}'` ); const context = rep.serviceContext; assert.ok( From ed923171c731e6835b4994ee8ed318f796959a4a Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Mon, 17 Jun 2019 17:07:26 -0700 Subject: [PATCH 270/527] docs: use repo metadata to generate docs (#372) --- .../error-reporting/.cloud-repo-tools.json | 16 - .../error-reporting/.readme-partials.yaml | 283 +++++++++++++++ .../error-reporting/.repo-metadata.json | 4 +- handwritten/error-reporting/README.md | 326 +++++++++--------- handwritten/error-reporting/config.tar.enc | Bin 9232 -> 0 bytes .../error-reporting/js-green-licenses.json | 6 - handwritten/error-reporting/synth.metadata | 4 +- handwritten/error-reporting/synth.py | 2 +- 8 files changed, 456 insertions(+), 185 deletions(-) delete mode 100644 handwritten/error-reporting/.cloud-repo-tools.json create mode 100644 handwritten/error-reporting/.readme-partials.yaml delete mode 100644 handwritten/error-reporting/config.tar.enc delete mode 100644 handwritten/error-reporting/js-green-licenses.json diff --git a/handwritten/error-reporting/.cloud-repo-tools.json b/handwritten/error-reporting/.cloud-repo-tools.json deleted file mode 100644 index d8e457b8368..00000000000 --- a/handwritten/error-reporting/.cloud-repo-tools.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "requiresKeyFile": true, - "requiresProjectId": true, - "product": "error_reporting", - "client_reference_url": "https://cloud.google.com/nodejs/docs/reference/error-reporting/latest/", - "release_quality": "beta", - "samples": [ - { - "id": "snippets", - "name": "Examples", - "file": "snippets.js", - "docs_link": "https://cloud.google.com/error-reporting/docs", - "usage": "node snippets.js --help" - } - ] -} diff --git a/handwritten/error-reporting/.readme-partials.yaml b/handwritten/error-reporting/.readme-partials.yaml new file mode 100644 index 00000000000..94425a8fbf5 --- /dev/null +++ b/handwritten/error-reporting/.readme-partials.yaml @@ -0,0 +1,283 @@ +introduction: |- + > Node.js idiomatic client for [Error Reporting][product-docs]. + + [Stackdriver Error Reporting](https://cloud.google.com/error-reporting/docs/) aggregates and displays errors produced in your running cloud services. + +body: |- + This module provides custom Stackdriver Error Reporting support for Node.js applications. + [Stackdriver Error Reporting](https://cloud.google.com/error-reporting/) is a feature of + Google Cloud Platform that allows in-depth monitoring and viewing of errors reported by + applications running in almost any environment. + + However, note that [@google-cloud/logging-winston](https://github.com/googleapis/nodejs-logging-winston) and [@google-cloud/logging-bunyan](https://github.com/googleapis/nodejs-logging-bunyan) automatically integrate with the Error Reporting service for Error objects logged at severity `error` or higher, for applications running on Google Cloud Platform. + + Thus, if you are already using Winston or Bunyan in your application, and don't need custom error reporting capabilities, you do not need to use the `@google-cloud/error-reporting` library directly to report errors to the Error Reporting Console. + + ![Stackdriver Error Reporting overview](https://raw.githubusercontent.com/googleapis/nodejs-error-reporting/master/doc/images/errors-overview.png) + + Here's an introductory video that provides some more details: + + [![Learn about Error Reporting in Stackdriver](https://img.youtube.com/vi/cVpWVD75Hs8/0.jpg)](https://www.youtube.com/watch?v=cVpWVD75Hs8) + + # When Errors Are Reported + + The `reportMode` configuration option is used to specify when errors are reported to the Error Reporting Console. It can have one of three values: + * `'production'` (default): Only report errors if the NODE_ENV environment variable is set to "production". + * `'always'`: Always report errors regardless of the value of NODE_ENV. + * `'never'`: Never report errors regardless of the value of NODE_ENV. + + The `reportMode` configuration option replaces the deprecated `ignoreEnvironmentCheck` configuration option. If both the `reportMode` and `ignoreEnvironmentCheck` options are specified, the `reportMode` configuration option takes precedence. + + The `ignoreEnvironmentCheck` option should not be used. However, if it is used, and the `reportMode` option is not specified, it can have the values: + * `false` (default): Only report errors if the NODE_ENV environment variable is set to "production". + * `true`: Always report errors regardless of the value of NODE_ENV. + + See the [Configuration](#configuration) section to learn how to specify configuration options. + + ## Configuration + The following code snippet lists available configuration options. All configuration options are optional. + + ```js + const {ErrorReporting} = require('@google-cloud/error-reporting'); + + // Using ES6 style imports via TypeScript or Babel + // import {ErrorReporting} from '@google-cloud/error-reporting'; + + // Instantiates a client + const errors = new ErrorReporting({ + projectId: 'my-project-id', + keyFilename: '/path/to/keyfile.json', + credentials: require('./path/to/keyfile.json'), + // Specifies when errors are reported to the Error Reporting Console. + // See the "When Errors Are Reported" section for more information. + // Defaults to 'production' + reportMode: 'production', + // Determines the logging level internal to the library; levels range 0-5 + // where 0 indicates no logs should be reported and 5 indicates all logs + // should be reported. + // Defaults to 2 (warnings) + logLevel: 2, + serviceContext: { + service: 'my-service', + version: 'my-service-version' + } + }); + ``` + + ## Examples + + ### Reporting Manually + + ```js + const {ErrorReporting} = require('@google-cloud/error-reporting'); + + // Using ES6 style imports via TypeScript or Babel + // import {ErrorReporting} from '@google-cloud/error-reporting'; + + // Instantiates a client + const errors = new ErrorReporting(); + + // Use the error message builder to customize all fields ... + const errorEvt = errors.event() + .setMessage('My error message') + .setUser('root@nexus'); + errors.report(errorEvt, () => console.log('done!')); + + // or just use a regular error ... + errors.report(new Error('My error message'), () => console.log('done!')); + + // or one can even just use a string. + errors.report('My error message'); + ``` + + The stack trace associated with an error can be viewed in the error reporting console. + * If the `errors.report` method is given an `ErrorMessage` object built using the `errors.event` method, the stack trace at the point where the error event was constructed will be used. + * If the `errors.report` method is given an `Error` object, the stack trace where the error was instantiated will be used. + * If the `errors.report` method is given a string, the stack trace at the point where `errors.report` is invoked will be used. + + ### Using Express + + ```js + const express = require('express'); + + const {ErrorReporting} = require('@google-cloud/error-reporting'); + + // Using ES6 style imports via TypeScript or Babel + // import {ErrorReporting} from '@google-cloud/error-reporting'; + + // Instantiates a client + const errors = new ErrorReporting(); + + const app = express(); + + app.get('/error', (req, res, next) => { + res.send('Something broke!'); + next(new Error('Custom error message')); + }); + + app.get('/exception', () => { + JSON.parse('{\"malformedJson\": true'); + }); + + // Note that express error handling middleware should be attached after all + // the other routes and use() calls. See [express docs][express-error-docs]. + app.use(errors.express); + + app.listen(3000); + ``` + + ### Using Hapi + + ```js + const hapi = require('hapi'); + const {ErrorReporting} = require('@google-cloud/error-reporting'); + + // Using ES6 style imports via TypeScript or Babel + // import {ErrorReporting} from '@google-cloud/error-reporting'; + + // Instantiates a client + const errors = new ErrorReporting(); + + const server = new hapi.Server(); + server.connection({ port: 3000 }); + server.start(); + + server.route({ + method: 'GET', + path: '/error', + handler: (request, reply) => { + reply('Something broke!'); + throw new Error('Custom error message'); + } + }); + + server.register(errors.hapi); + ``` + + ### Using Koa + + ```js + const Koa = require('koa'); + const {ErrorReporting} = require('@google-cloud/error-reporting'); + + // Using ES6 style imports via TypeScript or Babel + // import {ErrorReporting} from '@google-cloud/error-reporting'; + + // Instantiates a client + const errors = new ErrorReporting(); + + const app = new Koa(); + + app.use(errors.koa); + + app.use(function *(next) { + //This will set status and message + this.throw('Error Message', 500); + }); + + // response + app.use(function *(){ + this.body = 'Hello World'; + }); + + app.listen(3000); + ``` + + ### Using Restify + + ```js + const restify = require('restify'); + const {ErrorReporting} = require('@google-cloud/error-reporting'); + + // Using ES6 style imports via TypeScript or Babel + // import {ErrorReporting} from '@google-cloud/error-reporting'; + + // Instantiates a client + const errors = new ErrorReporting(); + + function respond(req, res, next) { + next(new Error('this is a restify error')); + } + + const server = restify.createServer(); + + server.use(errors.restify(server)); + server.get('/hello/:name', respond); + server.head('/hello/:name', respond); + + server.listen(3000); + ``` + + ## Unhandled Rejections + + Unhandled Rejections are not reported by default. The reporting of unhandled rejections can be enabled using the `reportUnhandledRejections` configuration option. See the [Configuration](#configuration) section for more details. + + If unhandled rejections are set to be reported, then, when an unhandled rejection occurs, a message is printed to standard out indicated that an unhandled rejection had occurred and is being reported, and the value causing the rejection is reported to the error-reporting console. + + ## Catching and Reporting Application-wide Uncaught Errors + + Uncaught exceptions are not reported by default. *It is recommended to process `uncaughtException`s for production-deployed applications.* + + Note that uncaught exceptions are not reported by default because to do so would require adding a listener to the `uncaughtException` event. Adding such a listener without knowledge of other `uncaughtException` listeners can cause interference between the event handlers or prevent the process from terminating cleanly. As such, it is necessary for `uncaughtException`s to be reported manually. + + ```js + const {ErrorReporting} = require('@google-cloud/error-reporting'); + + // Using ES6 style imports via TypeScript or Babel + // import {ErrorReporting} from '@google-cloud/error-reporting'; + + // Instantiates a client + const errors = new ErrorReporting(); + + process.on('uncaughtException', (e) => { + // Write the error to stderr. + console.error(e); + // Report that same error the Stackdriver Error Service + errors.report(e); + }); + ``` + + More information about uncaught exception handling in Node.js and what it means for your application can be found [here](https://nodejs.org/api/process.html#process_event_uncaughtexception). + + ### Using an API Key + + You may use an API key in lieu of locally-stored credentials. Please see [this document](https://support.google.com/cloud/answer/6158862) on how to set up an API key if you do not already have one. + + Once you have obtained an API key, you may provide it as part of the Error Reporting instance configuration: + + ```js + const {ErrorReporting} = require('@google-cloud/error-reporting'); + + // Using ES6 style imports via TypeScript or Babel + // import {ErrorReporting} from '@google-cloud/error-reporting'; + + // Instantiates a client + const errors = new ErrorReporting({ + projectId: '{your project ID}', + key: '{your api key}' + }); + ``` + + If a key is provided, the module will not attempt to authenticate using the methods associated with locally-stored credentials. We recommend using a file, environment variable, or another mechanism to store the API key rather than hard-coding it into your application's source. + + **Note:** The Error Reporting instance will check if the provided API key is invalid shortly after it is instantiated. If the key is invalid, an error-level message will be logged to stdout. + + ### Long Stack Traces + + The [longjohn](https://www.npmjs.com/package/longjohn) module can be used with this library to enable [long-stack-traces](https://github.com/tlrobinson/long-stack-traces) and updates an `Error` object's stack trace, by adding special line, to indicate an async jump. In `longjohn` version `0.2.12`, for example, a single line of dashes is included in a stack trace, by default, to indicate an async jump. + + Before reporting an `Error` object using the `report` method of the `@google-cloud/error-reporting` module, the stack trace needs to modified to remove this special line added by `longjohn`. Since the `longjohn` module can be configured to have a custom line indicating an async jump, the process of removing the custom line should be handled by the user of the `longjohn` module. + + The following code illustrates how to update an `Error`'s stack trace, to remove the default line of dashes added by `longjohn` to indicate an async jump, before reporting the error. + ```js + const {ErrorReporting} = require('@google-cloud/error-reporting'); + + // Instantiates a client + const errors = new ErrorReporting(); + + const err = new Error('Some Error'); + err.stack = (err.stack || '').split('\n') + .filter(line => !!line.replace(/-/g, '').trim()) + .join('\n'); + errors.report(err); + ``` diff --git a/handwritten/error-reporting/.repo-metadata.json b/handwritten/error-reporting/.repo-metadata.json index 0c77ccbff34..3a615c02afc 100644 --- a/handwritten/error-reporting/.repo-metadata.json +++ b/handwritten/error-reporting/.repo-metadata.json @@ -1,8 +1,8 @@ { - "name": "error_reporting", + "name": "error-reporting", "name_pretty": "Stackdriver Error Reporting", "product_documentation": "https://cloud.google.com/error-reporting", - "client_documentation": "https://cloud.google.com/nodejs/docs/reference/error-reporting/latest/", + "client_documentation": "https://googleapis.dev/nodejs/error-reporting/latest/", "issue_tracker": "https://issuetracker.google.com/savedsearches/559780", "release_level": "beta", "language": "nodejs", diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 498dd7693b0..5a6931b1596 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -1,16 +1,24 @@ +[//]: # "This README.md file is auto-generated, all changes to this file will be lost." +[//]: # "To regenerate it, use `python -m synthtool`." Google Cloud Platform logo -# Stackdriver Error Reporting: Node.js Client +# [Stackdriver Error Reporting: Node.js Client](https://github.com/googleapis/nodejs-error-reporting) -[![release level](https://img.shields.io/badge/release%20level-beta-yellow.svg?style=flat)](https://cloud.google.com/terms/launch-stages) +[![release level](https://img.shields.io/badge/release%20level-beta-yellow.svg?style=flat)](https://cloud.google.com/terms/launch-stages) [![npm version](https://img.shields.io/npm/v/@google-cloud/error-reporting.svg)](https://www.npmjs.org/package/@google-cloud/error-reporting) [![codecov](https://img.shields.io/codecov/c/github/googleapis/nodejs-error-reporting/master.svg?style=flat)](https://codecov.io/gh/googleapis/nodejs-error-reporting) + + + > Node.js idiomatic client for [Error Reporting][product-docs]. [Stackdriver Error Reporting](https://cloud.google.com/error-reporting/docs/) aggregates and displays errors produced in your running cloud services. -* [Error Reporting Documentation][product-docs] + +* [Stackdriver Error Reporting Node.js Client API Reference][client-docs] +* [Stackdriver Error Reporting Documentation][product-docs] +* [github.com/googleapis/nodejs-error-reporting](https://github.com/googleapis/nodejs-error-reporting) Read more about the client libraries for Cloud APIs, including the older Google APIs Client Libraries, in [Client Libraries Explained][explained]. @@ -19,7 +27,7 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. **Table of contents:** -* [Overview](#overview) + * [Quickstart](#quickstart) * [Before you begin](#before-you-begin) * [Installing the client library](#installing-the-client-library) @@ -29,8 +37,35 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. * [Contributing](#contributing) * [License](#license) -## Overview +## Quickstart + +### Before you begin + +1. [Select or create a Cloud Platform project][projects]. +1. [Enable the Stackdriver Error Reporting API][enable_api]. +1. [Set up authentication with a service account][auth] so you can access the + API from your local workstation. + +### Installing the client library + +```bash +npm install @google-cloud/error-reporting +``` + + +### Using the client library + +```javascript + // Imports the Google Cloud client library + const {ErrorReporting} = require('@google-cloud/error-reporting'); + + // Instantiates a client + const errors = new ErrorReporting(); + + // Reports a simple error + errors.report('Something broke!'); +``` This module provides custom Stackdriver Error Reporting support for Node.js applications. [Stackdriver Error Reporting](https://cloud.google.com/error-reporting/) is a feature of Google Cloud Platform that allows in-depth monitoring and viewing of errors reported by @@ -61,71 +96,17 @@ The `ignoreEnvironmentCheck` option should not be used. However, if it is used, See the [Configuration](#configuration) section to learn how to specify configuration options. -## Quickstart - -### Before you begin - -1. Select or create a Cloud Platform project. - - [Go to the projects page][projects] - -1. Enable billing for your project. - - [Enable billing][billing] - -1. Enable the Stackdriver Error Reporting API. - - [Enable the API][enable_api] - -1. [Set up authentication with a service account][auth] so you can access the - API from your local workstation. - -[projects]: https://console.cloud.google.com/project -[billing]: https://support.google.com/cloud/answer/6293499#enable-billing -[enable_api]: https://console.cloud.google.com/flows/enableapi?apiid=clouderrorreporting.googleapis.com -[auth]: https://cloud.google.com/docs/authentication/getting-started - -### Installing the client library - - npm install --save @google-cloud/error-reporting - -### Using the client library - -```javascript - // Imports the Google Cloud client library - const {ErrorReporting} = require('@google-cloud/error-reporting'); - - // Using ES6 style imports via TypeScript or Babel - // import {ErrorReporting} from '@google-cloud/error-reporting'; - - // Instantiates a client - const errors = new ErrorReporting(); - - // Reports a simple error - errors.report('Something broke!'); -``` - -## Samples - -Samples are in the [`samples/`](https://github.com/googleapis/nodejs-error-reporting/blob/master/samples) directory. The samples' `README.md` -has instructions for running the samples. - -| Sample | Source Code | -| --------------------------- | --------------------------------- | -| Examples | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/master/samples/quickstart.js) | - ## Configuration - The following code snippet lists available configuration options. All configuration options are optional. ```js - const {ErrorReporting} = require('@google-cloud/error-reporting'); +const {ErrorReporting} = require('@google-cloud/error-reporting'); - // Using ES6 style imports via TypeScript or Babel - // import {ErrorReporting} from '@google-cloud/error-reporting'; +// Using ES6 style imports via TypeScript or Babel +// import {ErrorReporting} from '@google-cloud/error-reporting'; - // Instantiates a client - const errors = new ErrorReporting({ +// Instantiates a client +const errors = new ErrorReporting({ projectId: 'my-project-id', keyFilename: '/path/to/keyfile.json', credentials: require('./path/to/keyfile.json'), @@ -142,7 +123,7 @@ The following code snippet lists available configuration options. All configura service: 'my-service', version: 'my-service-version' } - }); +}); ``` ## Examples @@ -150,25 +131,25 @@ The following code snippet lists available configuration options. All configura ### Reporting Manually ```js - const {ErrorReporting} = require('@google-cloud/error-reporting'); +const {ErrorReporting} = require('@google-cloud/error-reporting'); - // Using ES6 style imports via TypeScript or Babel - // import {ErrorReporting} from '@google-cloud/error-reporting'; +// Using ES6 style imports via TypeScript or Babel +// import {ErrorReporting} from '@google-cloud/error-reporting'; - // Instantiates a client - const errors = new ErrorReporting(); +// Instantiates a client +const errors = new ErrorReporting(); - // Use the error message builder to customize all fields ... - const errorEvt = errors.event() - .setMessage('My error message') - .setUser('root@nexus'); - errors.report(errorEvt, () => console.log('done!')); +// Use the error message builder to customize all fields ... +const errorEvt = errors.event() + .setMessage('My error message') + .setUser('root@nexus'); +errors.report(errorEvt, () => console.log('done!')); - // or just use a regular error ... - errors.report(new Error('My error message'), () => console.log('done!')); +// or just use a regular error ... +errors.report(new Error('My error message'), () => console.log('done!')); - // or one can even just use a string. - errors.report('My error message'); +// or one can even just use a string. +errors.report('My error message'); ``` The stack trace associated with an error can be viewed in the error reporting console. @@ -179,114 +160,114 @@ The stack trace associated with an error can be viewed in the error reporting co ### Using Express ```js - const express = require('express'); +const express = require('express'); - const {ErrorReporting} = require('@google-cloud/error-reporting'); +const {ErrorReporting} = require('@google-cloud/error-reporting'); - // Using ES6 style imports via TypeScript or Babel - // import {ErrorReporting} from '@google-cloud/error-reporting'; +// Using ES6 style imports via TypeScript or Babel +// import {ErrorReporting} from '@google-cloud/error-reporting'; - // Instantiates a client - const errors = new ErrorReporting(); +// Instantiates a client +const errors = new ErrorReporting(); - const app = express(); +const app = express(); - app.get('/error', (req, res, next) => { +app.get('/error', (req, res, next) => { res.send('Something broke!'); next(new Error('Custom error message')); - }); +}); - app.get('/exception', () => { +app.get('/exception', () => { JSON.parse('{\"malformedJson\": true'); - }); +}); - // Note that express error handling middleware should be attached after all - // the other routes and use() calls. See [express docs][express-error-docs]. - app.use(errors.express); +// Note that express error handling middleware should be attached after all +// the other routes and use() calls. See [express docs][express-error-docs]. +app.use(errors.express); - app.listen(3000); +app.listen(3000); ``` ### Using Hapi ```js - const hapi = require('hapi'); - const {ErrorReporting} = require('@google-cloud/error-reporting'); +const hapi = require('hapi'); +const {ErrorReporting} = require('@google-cloud/error-reporting'); - // Using ES6 style imports via TypeScript or Babel - // import {ErrorReporting} from '@google-cloud/error-reporting'; +// Using ES6 style imports via TypeScript or Babel +// import {ErrorReporting} from '@google-cloud/error-reporting'; - // Instantiates a client - const errors = new ErrorReporting(); +// Instantiates a client +const errors = new ErrorReporting(); - const server = new hapi.Server(); - server.connection({ port: 3000 }); - server.start(); +const server = new hapi.Server(); +server.connection({ port: 3000 }); +server.start(); - server.route({ +server.route({ method: 'GET', path: '/error', handler: (request, reply) => { - reply('Something broke!'); - throw new Error('Custom error message'); + reply('Something broke!'); + throw new Error('Custom error message'); } - }); +}); - server.register(errors.hapi); +server.register(errors.hapi); ``` ### Using Koa ```js - const Koa = require('koa'); - const {ErrorReporting} = require('@google-cloud/error-reporting'); +const Koa = require('koa'); +const {ErrorReporting} = require('@google-cloud/error-reporting'); - // Using ES6 style imports via TypeScript or Babel - // import {ErrorReporting} from '@google-cloud/error-reporting'; +// Using ES6 style imports via TypeScript or Babel +// import {ErrorReporting} from '@google-cloud/error-reporting'; - // Instantiates a client - const errors = new ErrorReporting(); +// Instantiates a client +const errors = new ErrorReporting(); - const app = new Koa(); +const app = new Koa(); - app.use(errors.koa); +app.use(errors.koa); - app.use(function *(next) { +app.use(function *(next) { //This will set status and message this.throw('Error Message', 500); - }); +}); - // response - app.use(function *(){ +// response +app.use(function *(){ this.body = 'Hello World'; - }); +}); - app.listen(3000); +app.listen(3000); ``` ### Using Restify ```js - const restify = require('restify'); - const {ErrorReporting} = require('@google-cloud/error-reporting'); +const restify = require('restify'); +const {ErrorReporting} = require('@google-cloud/error-reporting'); - // Using ES6 style imports via TypeScript or Babel - // import {ErrorReporting} from '@google-cloud/error-reporting'; +// Using ES6 style imports via TypeScript or Babel +// import {ErrorReporting} from '@google-cloud/error-reporting'; - // Instantiates a client - const errors = new ErrorReporting(); +// Instantiates a client +const errors = new ErrorReporting(); - function respond(req, res, next) { +function respond(req, res, next) { next(new Error('this is a restify error')); - } +} - const server = restify.createServer(); +const server = restify.createServer(); - server.use(errors.restify(server)); - server.get('/hello/:name', respond); - server.head('/hello/:name', respond); +server.use(errors.restify(server)); +server.get('/hello/:name', respond); +server.head('/hello/:name', respond); - server.listen(3000); +server.listen(3000); ``` ## Unhandled Rejections @@ -302,20 +283,20 @@ Uncaught exceptions are not reported by default. *It is recommended to process Note that uncaught exceptions are not reported by default because to do so would require adding a listener to the `uncaughtException` event. Adding such a listener without knowledge of other `uncaughtException` listeners can cause interference between the event handlers or prevent the process from terminating cleanly. As such, it is necessary for `uncaughtException`s to be reported manually. ```js - const {ErrorReporting} = require('@google-cloud/error-reporting'); +const {ErrorReporting} = require('@google-cloud/error-reporting'); - // Using ES6 style imports via TypeScript or Babel - // import {ErrorReporting} from '@google-cloud/error-reporting'; +// Using ES6 style imports via TypeScript or Babel +// import {ErrorReporting} from '@google-cloud/error-reporting'; - // Instantiates a client - const errors = new ErrorReporting(); +// Instantiates a client +const errors = new ErrorReporting(); - process.on('uncaughtException', (e) => { +process.on('uncaughtException', (e) => { // Write the error to stderr. console.error(e); // Report that same error the Stackdriver Error Service errors.report(e); - }); +}); ``` More information about uncaught exception handling in Node.js and what it means for your application can be found [here](https://nodejs.org/api/process.html#process_event_uncaughtexception). @@ -327,16 +308,16 @@ You may use an API key in lieu of locally-stored credentials. Please see [this d Once you have obtained an API key, you may provide it as part of the Error Reporting instance configuration: ```js - const {ErrorReporting} = require('@google-cloud/error-reporting'); +const {ErrorReporting} = require('@google-cloud/error-reporting'); - // Using ES6 style imports via TypeScript or Babel - // import {ErrorReporting} from '@google-cloud/error-reporting'; +// Using ES6 style imports via TypeScript or Babel +// import {ErrorReporting} from '@google-cloud/error-reporting'; - // Instantiates a client - const errors = new ErrorReporting({ +// Instantiates a client +const errors = new ErrorReporting({ projectId: '{your project ID}', key: '{your api key}' - }); +}); ``` If a key is provided, the module will not attempt to authenticate using the methods associated with locally-stored credentials. We recommend using a file, environment variable, or another mechanism to store the API key rather than hard-coding it into your application's source. @@ -351,27 +332,51 @@ Before reporting an `Error` object using the `report` method of the `@google-clo The following code illustrates how to update an `Error`'s stack trace, to remove the default line of dashes added by `longjohn` to indicate an async jump, before reporting the error. ```js - const {ErrorReporting} = require('@google-cloud/error-reporting'); +const {ErrorReporting} = require('@google-cloud/error-reporting'); - // Instantiates a client - const errors = new ErrorReporting(); +// Instantiates a client +const errors = new ErrorReporting(); - const err = new Error('Some Error'); - err.stack = (err.stack || '').split('\n') - .filter(line => !!line.replace(/-/g, '').trim()) - .join('\n'); - errors.report(err); +const err = new Error('Some Error'); +err.stack = (err.stack || '').split('\n') + .filter(line => !!line.replace(/-/g, '').trim()) + .join('\n'); +errors.report(err); ``` + +## Samples + +Samples are in the [`samples/`](https://github.com/googleapis/nodejs-error-reporting/tree/master/samples) directory. The samples' `README.md` +has instructions for running the samples. + +| Sample | Source Code | Try it | +| --------------------------- | --------------------------------- | ------ | +| Explicit setup | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/master/samples/explicitSetup.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-error-reporting&page=editor&open_in_editor=samples/explicitSetup.js,samples/README.md) | +| Express integration | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/master/samples/express.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-error-reporting&page=editor&open_in_editor=samples/express.js,samples/README.md) | +| Implicit setup | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/master/samples/implicitSetup.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-error-reporting&page=editor&open_in_editor=samples/implicitSetup.js,samples/README.md) | +| Manual reporting | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/master/samples/manual.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-error-reporting&page=editor&open_in_editor=samples/manual.js,samples/README.md) | +| Quickstart | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/master/samples/quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-error-reporting&page=editor&open_in_editor=samples/quickstart.js,samples/README.md) | + + + +The [Stackdriver Error Reporting Node.js Client API Reference][client-docs] documentation +also contains samples. + ## Versioning This library follows [Semantic Versioning](http://semver.org/). + + This library is considered to be in **beta**. This means it is expected to be mostly stable while we work toward a general availability release; however, complete stability is not guaranteed. We will address issues and requests against beta libraries with a high priority. + + + More Information: [Google Cloud Platform Launch Stages][launch_stages] [launch_stages]: https://cloud.google.com/terms/launch-stages @@ -386,5 +391,10 @@ Apache Version 2.0 See [LICENSE](https://github.com/googleapis/nodejs-error-reporting/blob/master/LICENSE) -[product-docs]: https://cloud.google.com/error-reporting/docs/ - +[client-docs]: https://cloud.google.com/nodejs/docs/reference/error-reporting/latest/ +[product-docs]: https://cloud.google.com/error-reporting +[shell_img]: https://gstatic.com/cloudssh/images/open-btn.png +[projects]: https://console.cloud.google.com/project +[billing]: https://support.google.com/cloud/answer/6293499#enable-billing +[enable_api]: https://console.cloud.google.com/flows/enableapi?apiid=clouderrorreporting.googleapis.com +[auth]: https://cloud.google.com/docs/authentication/getting-started \ No newline at end of file diff --git a/handwritten/error-reporting/config.tar.enc b/handwritten/error-reporting/config.tar.enc deleted file mode 100644 index ed17326de570eff6820ab5ed1b0d8009476e7fc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9232 zcmV+rB=6hr0IYH{j!loT!9hObHJy7}mrQpR&908QnM$XKuhfFOpx#x9%n~Ik80EXj zHwG2S41-?H?=R;G)LD-c&Zv{DRQ-(SJynpf4e3R)d; z#uda4I5U8;PjwGFNmD{Zdtv&Wa+S#L7%Wml9+35zs*qz~5g8?O-Cq+U`=dTuXW z&ZPvf$2J;fPmh~Lw+HZ+sc2$VT27ZcMwF@WL@uf6(Up%J^_f%|P@K`_8upHpJ6ZR`PU;+LDPG>nDBGTObaWG5A z)ed9Afh7S8V`8m&|E7Bt2Ui<5QW|Gm6tt`C%#j1WF8kxyV7^9?$3b3s=f4D5^^^kgS+TUTqD*xOGiP6;@iqTQ??>#5^1CIgQvsEaKX;Qd!^`TtOWst3;rK|2eP_3fasAf|vm*@+O zT(HcaYWMm|xiOpa!a9W>ZG9sm@RjbQTTDV@Bj=PFthN9`03F_`KYV}g zPtpEL{Qz}jG&RT;3lzqRV0H>J{O!;_=bt-Xx#r--VwFJ0qopwR4F9o+OJR)Cw`20s z3g2RXc}?PG6k_evg{)V&YJO^o#Sn&62h5-dq`*tf0Dr_1K@08S0r?@R(x$4kPR^r0 z|B7W|(yW)_7e!qxpcSL!^Kw#(#8pSg$O11tX&MTG$OKo^#MmdMNpyc}Uu-zfKo{W^q{2Q_ zxA0a)?$H)Z{#Z&Up(4_Fu*dVBiO#gWv`cKq9>EHjSFJ67pl~thMcr>ZsOO_Z78Tzu zt90%Lt$$ z0coT%5c%o@e>ax7pj0`vP6?dd_nw*I?~hLp1F@X3c&l;4I?C9{6}>PWIgwAA=kzij zH}H$n!k7$mwL^d5Le`h6nYBfsfP&5dqwvxt?3_KUY2D(ckul*?p>u*|)+?{A+u zsh09PL@cRi>w7b~_dr~mh`T0?ZxJ`g7ZquHG@Bgff&ZOyie0*A9zok*@tFkxph(9B zyX&BqT;Z#+pKO^|NJ_YW zuJm^JU6KPQp5y zWj8t9B}0`tC_0>*_^GOu4(n_x#G&?L5h3%yYB24-dM-=Pc2{nPCl;&MR~V#4T}tt5+kI(%bBO(SZ9x`BeZ_ZqVj!7ZD*yGLo|pVk=p6q8|vn`G~cn!Hi zDOIRqDiF4H5Vc9Q#j-H4HZ8S0x)k2;S{ zW}?CARjg|ik<*>JB)i8j69#2%7SXUad?V`NSF4`X)8V{h{*E-%3Bqr){#Y3*Am}+N z=XazjGyWeML8V#b$W|YcJn9Q^A)0&}hipGzhaNYm<69zO-vuliTqbvPP!JMV(DIm!RhLlkD6`K zE1cr@5%MvjK|A@*$Br8qd^?A6WS**K&#yH(uo?$rOW@p=t|;`k&%~d!ZJv=hFHNd_ zwIo*({!Ip7&nJB>Q00;Lm?4|kZqk;qADKHe_Dvjq_NBo4H3eK_adjCmhf zD2>Vhm~8n3#lEcaS)JcXHdjaO1cw%?XzQo-%^@mo+9}hLQd{8|`2;`f0;S?L%y79) z@M2MknOmyTM*7#6T;_Gc{qx3Nh;QsaCRXQ!z91FY`X09>i}CmDhb7{JXQh%;E^ILJLbkMxI7PPz4SDh~K2Z8C!(e~*S#0=ocrkhy#U(E{V z%pX1|^SShgbIaIa(7tv>=A4?9ovmT%CFz7a6W=;`ef_KZ1k70myVP5+6a0O@^27^p zmLIzR0=06)f!Db5yf;8U8=~0Hm$CW&)XKitG|(Kg?d7Lr)nar|gecy=m|1fjO%sa% z`~{ZVo0-wpMyQN!pE+t3fhM4sK*h>3%0k+5XN-&bNFiCO)6On)QpCf{7;P5x+;bUk z&CsSYK6Bd4L~4B{Fd*%xrLR;=biiOcs>3*a4>KEDQj*T2hML29I-Xe&Cxt0%7TM#FKmWmUU zzEhJD@@{hdsZ!elV)Tc{aC>}bi zDk7Gxy8>y&)Lzv+e1cwJ%ayICj^EFy10)||2GprW>{O0UoRjY~l@jpEMShGE!@&)* z4>FKvGSQ)h-FzLXkLAr3oiGmYXi+%T zE;^YDXK6ihn@}6C@D@3{<5Jhnn2tBLbwBvmwSm2;m*lXX{ny3c3B#oQ%6a8f50k`8ATf<0I1H=FttC-0;m?AiOh)R(GJl zWnclQ;b%f6)dhOy%bBPba%f50I9S|X;!FtN7Sgaq_vBIQnp3C#Vn7hlkK4hUjYu-- zk!$OR-0gGv17!t*gjCb3%{@KjmXuC|Kf&!N@M;N>AIDh)ssk18T-3B;SUnhaTQ4S% z*6LjiJp3u_(!9FIh{)g;%msf0YaM5W4iYE3N8nwPw(3Dy>L{+$F$HP>K8s^{I#mMo z?77PesT~Nl z{!7n<&xQuj`MPPUvnlv5q<)po2$ZBdL9O6xuQdYu`HiEp=BZy(MJA%~Mx@v_FsF`|yjtba%ocex>|ivUvgxA2J6bf9N9(L! z8uv_krTcr|T{N=w`LqgJDMu4fNQ1AXRgprAPPvN0(t4*r5D=Lv0naa*bm-ewsV{#f ziZGPf>^5v+Go8^$k+|o?luX>7%-S01c9#P-shD+DSP$F4OW^4r8w*^~#7dqKL2l*H z@dY>Uzt)X~e%F>@$bi?QrudF#%%S$H`gg^2`jxju9~KKp)1^x9MTD?bzE$8e zAjd&BWlz5&N8$;b0A*T)fBOf7$>b80dP7-F!+ z?Vc&_U?0Pl$msmxYp#9cSwoHNugN>T{=f=qa0}bk>1*h(Gc#WQKr?4nGKjATp8vA( zo_^4&`b1iA9MLQ0L9#Qg5EwUNIU~W|X~vWE9U}nb&7n76(2hV>M8udR4cAj$g8XLP zRxQ%mJMX@-nbBZuLhpIrXmK&pXsq}#g_9pf^~cH zT{i$fuvrv_ZbGP2(q%s!8hgr&c3)NNMSUA^9DQH(GT z;)@^3Z51QSu6fUFThmSkeMvd)G$M=F|h{76@N9XE=oK5GU)4w7e}j`v_>-(7iVZix?;ro~0X0F7V=tcVMnu)35b*T2MhK&j9%&yj zPOpG=9jsj{H*JyN z>tGC^k#pW(jxfZZBh+_1R2fKBh_`5(dsDjanrH_1{*&wpTavV_Z)2@_=5X|iSX%|$ z-;CQ#AQ^_4lAPEodp-DyWzhK;g1ON|LlJ%k$;KW#^HgwX9krtmEv|A}X~{zuwE>&3 z7Q?FlfqIYEuE&C_lJ9Jv!>46$A1VOeke_9@8fPNGT9wEW~Pg^#Yq6Vp;E z+j;32a&ZSUE$dkzM}&RWHON|IhA?ZSOANEqpeZxy-g`7Sg}dFw<^iCwxT;k@sJ3on zDt1Y~0@G0g2g>sr9(fA&Ob>IKGlz!v1A3qX|84Q6AAz1iE&%#Ep#mB7w^9z}`66=@ z(oE=rEUcckIcsV1HW2_@+dyJ&QtKhhq#Mq0QMe+D?j5->G5WM6r84B?I0%>k&~luR zKx!O3B&$bH(M6ETpYDqh;rUt+<-2o>{fzU2UKZ`*V*r`h|Vr=%0=gvvuDGDrjD~r=%t@(s#LsMn5{5Ci9VOX)M2oalQ2NsLd zA!)r=o#Xrp&RX{)s6vIlqHZdAa-26h>p+l0J3k&%KCWxNuB#7Q-t7wX_F5>G92IuHvNQ9P5Jn^m?$5n$i)*xA9=CCE}+g(i3l) zrqmAC*KdRbXvGJYL^M#b32_MM)u|(UO}ggM1JFgl)uwg;A?o){>H=u8qB9A9S#|B7 z4OeVW()6^WLQ{pHYtTzcOU!hPL?}N@uF+WsBO`roO@&>nMWX(p#4!*d+CYzkiq+mK;HdWMscR=_#H#Kj8~6ks zF{3F;Ax&!6{E#=yBN$x;0&QtAhwkGSm+NWz%sI$?`X=tu`2k}gafXBomm^}a(h(Ek zFrIeRZKPTkn=-{NqhZP;#<2K7Baa`xymlaRdX`K&OT3(a`hKdo$SJ8J3%xlqK~jRG z%+x6%K;jC`&1l~KFIp85Aohe8GuAHbVS?jlOK{tW2<0`q{&`yM`*LOmVH6Q%U zBd@q7DVcr{o}ihy9V91a$q(P_D4_Qc=M#ul$;bDk+=rI097eHA52xZBA#gI`LpRlf zxh@RnWT@H#wrjPecq@u`pxRZqUE6W|kKW)CZ%X)-kwoE^iG{3tnG$OZ7z#n;!)F$& zUWUuM3$OPBmqR+UW~pBNMB!$J%24um-0xSb^AuUUg~wwUMQ@Wwnb7u71YC$w`mc%R z3qT}Gb2Ft8HpLXfzD|?j89hCfrrT100|jDqQS_XQJ!&Ra|ce zT@XHVA}ZjJ9_;n23L>>?+&VCRA&iv1tcZBXCbaPN<}8LiJku;3eHUa+X>Zm_-|flc znV#i!)SLY?HZi=*gH19hMaY@jdlA4E!+}aHyvZScOZ+-w8TAh|LRs`O~B9{4f>pJSX2AF46w(LFg+uJ9~pa_~Cyg~&MTqy`${=ZbEIYD~A#8~T6 zRT@f5YfTz>yW*0?aSOoVY3dUP@GPBbSqsib{p;m}y)3ub9Vw&CbUWz70awi=B@UPo z3J69F6WLg2rQb0%_x1%xGhW^{0lRI!GcUc(lQxB?OWc$yfo!1Zeri`4En5 zp-o6BK|e}Q#+il4{xnK+XxC&{z%deL$Iu=M@b|Z+WC*a2jpEfYkGz3f;p{k{QmcGQ zzxaW03X1v3_oC`D96K=0v6npg=2_wCCDg=^UjN34GM7g~(ISReKNKL4&cMX~j=}Ti z8Pca2Q=fXCju|*&OMOa1T~;ob3HSP=J2}nMLP$a~chE#Nsq6qkg5NjY5e*qT5H?6O zIpj{Rn6pe53G#K3YoGKa?D3z8=(w{piieeFR!&5p+Kh8C;%WhoqvSdO@v%wE3~ebT zPNWc#;cy8Ktg~mpos*$vhw4mWAK@ZPATeI?v;5~Ya4lDZw)SjLZA!Q?rWb)@*P38L zVm4%AgDn_vMWl#rwnzB>o{fXE$`pHhM*81}lCI>6STSoBy{h)jZhVowyF8&5lO|!| z65xjN+caF_==`c~^7GVPt3S%#JdJ?^tL>Q9D1kjeHK=4{=tozHjJyKP{}SkT(wCO? z3_lE1Bi6^H(37f?`*x96<)=S}ZvhDL&j2>*(o!W^5V(f?2I(tA+-U4{uOeaBNHBnP z>lLv>%4(lp8?QH{RE#|-jw@!EC$cN}&Jr<^$F26P{$neq<@Tn8RbALGh*{w3Y4tTW z%6`6>ZOc}RqV2L}k^LAf9dyW8LT87C!8ye9U@xX}Qm{Nr0!YGljx;!5^x~`PuD9w- z(&yNH9Ckd;^QX!OA~?8ZE40%<%4QvA?N)L-VkrWYO^V>q3Sm7Vz6Pbd$0l#p56 z>%6V|Qw#sLoJy+2&iT9I2k8)^0Up+2#xAhBpHjB{uAs&qhW)Xy*hyz^q>dF^w}VWX zwCOns5g0JV4sB9xD$k0q$nYqBbloFQPxaAqbxUrpK)rD6-|FcT4S{n9 zoi&XWymj8wFsdp0>U8eDxNS+xH*blOy(9X14h5IBHTO{0lYy_%^;4HKQq_bE{rzHC z`UMh$CP%ZkKV~Hx=YS#g#O*jjX00($dMwzS`6k{yTTX*y%0@CxDS((#Vp6dsh-Ekc zf(HvaR0#&s=f{vIKjuNg?}jJ$!_>cE{hPPwb}aj24PJ=u!`Nj_U#c)$*c4Et+BA;< zl9L;?Lt0J}9!1>LqG$@-fAH}az|>X2EAdLR%lP7VC=s6<75RTr0Fsi8eVdZ-rw5QE zd;iu{SOs(O(q2dG$+AIce$PiQielywwB)~ItaPKJe37v7ed-~ZZuGy6_>B*X5AUkJ zy?#mze6K;M3S@C|*G!;p;dXkcdQwk1(Fi+hukYu-&tuvkBF_M~nBX9df5`Z+~&VIV48&DPLaMEDfTB4qh+3kqvM~KaS6RA14Ka!4~G21+9T58J7y}5v`OK zE1uu6X%WY<9Ze&C(nS-5OIl(}zO*lIpK_;zt&|&hXRyyJ1|dsDuFBX7IGC5d<^m$p zlV_k2*YtBJ0idX56$Pkp_LoOlJ_C!w+xjOf{V-W!yv%Lflfr@j$BmTFidpw&>+qU1MhmboLWfnS!q;6ZX+7#?ukhP&6bOpd<1E-uBmU;Kx|(cz_%)*RYu z2}qO~97QB3;_&wQwvWpji&fg1-glr@5eLdhLh>P*9rwi!pRI9#nrFgEM$NM1hYe%7 zMe0pm8Oy>EF@gilmAJvy+)1s%^C+n2<-_uV;o^)ZYgR1icF1H_)+61b*O;g$bQgv< zZSiRc*4$xPf3}-q)fDj%juUzGH3L$gR7?kbDVWLrq2Krf*>uxyuflfC!)oYJ-c~0= zwB6)XXzn%0C{Ve}96w!;U2?jQwBwU@F!@ybq*Ecj+@+abn+eW%7a>zkg@b|Y`S-(f zg&g1mkD{(l8B*;DYFJ=+li8a6asr1U*b(XX&C9 zO#}EvB6%o2Y43lqFWh}VNF61*hIt*2D$b_9$H4K^-hI{+c|OFL+u`v7ixqu&r{Fyr z71#?;VEZ7^`SL<+k3R1y`Cn^r@L7_xy^WxR?udu?|7Y|-O^v}MuBKknHt1mX1H%yF=R}l6(}MV45H@78`W4mUUA;Nx6|<% zl1GFY#X@Sr$NQ}1)!okBAH-XiDt@PaI&fal^^d_{Ie8^$b{4Yo5b_(|9on;{6l8D} zOEkY%L0U_7w|lxnFV%A%J0PdK2HPe`RqW=5=Q1m1{i0Upv&gVasF*fZBz;3S~5E#^E`Z**eR1c&hv5yL10p63^nXQcy+kOG*6Mmf^gus-#fl z7K~BlM#<3<=W-VI0Eo_!qJSiICC7`vdV;pnv#$QESuPM#%a*3^C0lrj(Nm!seU&}V zhcCPAt`@v9wc&iMrbSlMS9%e8hQJ;t~zS@lA1`mgTI zZeN0CddHTcNFOT|pMd4vLww+uyu|uvkB?9FLeHcgQLv^#ZsOd^W%V?zDAF z#;q& Date: Tue, 18 Jun 2019 10:05:54 -0700 Subject: [PATCH 271/527] build: switch to GitHub magic proxy (#373) --- .../.kokoro/continuous/node10/test.cfg | 22 +++++++++++++++++-- handwritten/error-reporting/.kokoro/test.sh | 11 +++++----- handwritten/error-reporting/README.md | 2 +- handwritten/error-reporting/synth.metadata | 2 +- 4 files changed, 28 insertions(+), 9 deletions(-) diff --git a/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg b/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg index 38c174e6b3d..fefee48ba76 100644 --- a/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg +++ b/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg @@ -8,12 +8,30 @@ before_action { } } -# token used by release-please to keep an up-to-date release PR. +# tokens used by release-please to keep an up-to-date release PR. before_action { fetch_keystore { keystore_resource { keystore_config_id: 73713 - keyname: "yoshi-automation-github-key" + keyname: "github-magic-proxy-key-release-please" + } + } +} + +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "github-magic-proxy-token-release-please" + } + } +} + +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "github-magic-proxy-url-release-please" } } } diff --git a/handwritten/error-reporting/.kokoro/test.sh b/handwritten/error-reporting/.kokoro/test.sh index 48121602d5b..c72c3a63fa1 100755 --- a/handwritten/error-reporting/.kokoro/test.sh +++ b/handwritten/error-reporting/.kokoro/test.sh @@ -36,10 +36,11 @@ else echo "coverage is only reported for Node $COVERAGE_NODE" fi -# if the GITHUB_TOKEN is set, we kick off a task to update the release-PR. -GITHUB_TOKEN=$(cat $KOKORO_KEYSTORE_DIR/73713_yoshi-automation-github-key) || true -if [ "$GITHUB_TOKEN" ]; then - npx release-please release-pr --token=$GITHUB_TOKEN \ +# if release-please keys set, we kick off a task to update the release-PR. +if [ -f ${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-url-release-please ]; then + npx release-please release-pr --token=${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-token-release-please \ --repo-url=googleapis/nodejs-error-reporting \ - --package-name=@google-cloud/error-reporting + --package-name=@google-cloud/error-reporting \ + --api-url=${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-url-release-please \ + --proxy-key=${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-key-release-please fi diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 5a6931b1596..9d7d22ab74b 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -391,7 +391,7 @@ Apache Version 2.0 See [LICENSE](https://github.com/googleapis/nodejs-error-reporting/blob/master/LICENSE) -[client-docs]: https://cloud.google.com/nodejs/docs/reference/error-reporting/latest/ +[client-docs]: https://googleapis.dev/nodejs/error-reporting/latest/ [product-docs]: https://cloud.google.com/error-reporting [shell_img]: https://gstatic.com/cloudssh/images/open-btn.png [projects]: https://console.cloud.google.com/project diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 5d2e613718b..2c2377154ff 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -1,5 +1,5 @@ { - "updateTime": "2019-06-17T05:01:51.068320Z", + "updateTime": "2019-06-18T01:00:41.245594Z", "sources": [ { "template": { From cd5197a7cc73dab3166c9919ed79de30aee219d5 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Tue, 18 Jun 2019 20:21:19 -0700 Subject: [PATCH 272/527] fix: bump min required versions and fix package scripts (#376) --- handwritten/error-reporting/package.json | 102 ++++++++---------- .../test/test-servers/koa_scaffold_server.ts | 4 +- 2 files changed, 48 insertions(+), 58 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 8babb325ca1..af60d883171 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -10,85 +10,76 @@ "repository": "googleapis/nodejs-error-reporting", "main": "./build/src/index.js", "types": "./build/src/index.d.ts", - "nyc": { - "exclude": [ - "./build/utils/fuzzer.js" - ] - }, "files": [ "build/src", "!build/src/**/*.map" ], "scripts": { "docs": "compodoc src/", - "lint": "eslint '**/*.js' && gts check && jsgl --local .", + "lint": "eslint '**/*.js' && gts check", "presystem-test": "npm run compile", - "system-test": "nyc --exclude=\"error-message.js\" mocha build/system-test/**/*.js", - "cover": "nyc --exclude=\"fuzzer.js\" --reporter=lcov mocha build/test/unit/*.js build/test/unit/**/*.js && nyc report", + "system-test": "c8 mocha build/system-test", "presamples-test": "npm run compile", "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", - "test-no-cover": "mocha build/test/unit/**/*.js --timeout 20000", - "test-only": "npm run cover", - "test": "npm run test-only", - "check": "gts check", + "test": "c8 mocha --recursive build/test/unit", "clean": "gts clean", "compile": "tsc -p .", "postcompile": "cpy 'utils/**/*.*' build --parents && cpy 'test/**/*.*' build --parents", "fix": "gts fix && eslint --fix '**/*.js'", "prepare": "npm run compile", - "pretest-only": "npm run compile", - "posttest": "npm run check && npm run license-check", + "pretest": "npm run compile", "license-check": "jsgl --local .", - "docs-test": "linkinator docs -r --skip www.googleapis.com", + "docs-test": "linkinator docs --recurse", "predocs-test": "npm run docs" }, "dependencies": { - "@google-cloud/common": "^2.0.0", - "console-log-level": "^1.4.0", - "is": "^3.2.1", + "@google-cloud/common": "^2.0.1", + "console-log-level": "^1.4.1", + "is": "^3.3.0", "lodash.has": "^4.5.2" }, "devDependencies": { - "@compodoc/compodoc": "^1.1.7", - "@types/boom": "^7.2.0", + "@compodoc/compodoc": "^1.1.9", + "@types/boom": "^7.2.1", "@types/console-log-level": "^1.4.0", - "@types/express": "^4.11.1", - "@types/hapi": "^18.0.0", + "@types/express": "^4.17.0", + "@types/hapi": "^18.0.2", "@types/is": "0.0.21", "@types/json-stable-stringify": "^1.0.32", - "@types/koa": "^2.0.45", - "@types/lodash.has": "^4.5.3", - "@types/lodash.maxby": "^4.6.3", - "@types/lodash.merge": "^4.6.3", - "@types/lodash.omit": "^4.5.3", - "@types/lodash.omitby": "^4.6.3", - "@types/lodash.pick": "^4.4.3", - "@types/lodash.random": "^3.2.3", - "@types/lodash.without": "^4.4.3", - "@types/mocha": "^5.2.0", - "@types/nock": "^10.0.0", - "@types/node": "^10.1.1", + "@types/koa": "^2.0.48", + "@types/lodash.has": "^4.5.6", + "@types/lodash.maxby": "^4.6.6", + "@types/lodash.merge": "^4.6.6", + "@types/lodash.omit": "^4.5.6", + "@types/lodash.omitby": "^4.6.6", + "@types/lodash.pick": "^4.4.6", + "@types/lodash.random": "^3.2.6", + "@types/lodash.without": "^4.4.6", + "@types/mocha": "^5.2.7", + "@types/nock": "^10.0.3", + "@types/node": "^12.0.8", "@types/once": "^1.4.0", "@types/proxyquire": "^1.3.28", - "@types/restify": "^7.2.0", + "@types/restify": "^7.2.11", "@types/uuid": "^3.4.4", - "body-parser": "^1.18.3", - "boom": "^7.2.0", - "codecov": "^3.0.2", + "body-parser": "^1.19.0", + "boom": "^7.3.0", + "c8": "^5.0.1", + "codecov": "^3.5.0", "cpy-cli": "^2.0.0", - "delay": "^4.1.0", - "eslint": "^5.0.0", - "eslint-config-prettier": "^4.0.0", - "eslint-plugin-node": "^9.0.0", - "eslint-plugin-prettier": "^3.0.0", - "express": "^4.16.3", + "delay": "^4.3.0", + "eslint": "^5.16.0", + "eslint-config-prettier": "^5.0.0", + "eslint-plugin-node": "^9.1.0", + "eslint-plugin-prettier": "^3.1.0", + "express": "^4.17.1", "gts": "^1.0.0", - "hapi": "^18.0.0", + "hapi": "^18.1.0", "intelli-espower-loader": "^1.0.1", - "js-green-licenses": "^1.0.0", + "js-green-licenses": "^1.1.0", "json-stable-stringify": "^1.0.1", - "koa": "^2.5.1", - "linkinator": "^1.1.2", + "koa": "^2.7.0", + "linkinator": "^1.4.3", "lodash.maxby": "^4.6.0", "lodash.merge": "^4.6.1", "lodash.omit": "^4.5.0", @@ -97,15 +88,14 @@ "lodash.random": "^3.2.0", "lodash.without": "^4.4.0", "mocha": "^6.1.4", - "nock": "^10.0.0", - "nyc": "^14.0.0", + "nock": "^10.0.6", "post-install-check": "0.0.1", - "power-assert": "^1.5.0", - "prettier": "^1.12.1", - "proxyquire": "^2.0.1", - "restify": "^8.0.0", - "source-map-support": "^0.5.9", - "typescript": "~3.5.0", + "power-assert": "^1.6.1", + "prettier": "^1.18.2", + "proxyquire": "^2.1.0", + "restify": "^8.3.3", + "source-map-support": "^0.5.12", + "typescript": "~3.5.2", "uuid": "^3.3.2" } } diff --git a/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts index 5fee62e1e64..8a5e1c7be24 100644 --- a/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts @@ -20,8 +20,8 @@ const errorHandler = new ErrorReporting({ // option is now invalid. onUncaughtException: 'report', } as {}); -import * as koa from 'koa'; -const app = (koa as Function)(); +import * as Koa from 'koa'; +const app = new Koa(); app.use(errorHandler.koa); From 28cd5d90742b740d045263f09b21d5c6b5445066 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Wed, 19 Jun 2019 07:59:27 -0700 Subject: [PATCH 273/527] feat: automatically use service and revision name in Knative environments (#375) Fixes #370 --- .../error-reporting/src/configuration.ts | 13 +- .../test/unit/service-configuration.ts | 174 ++++++++++++++---- 2 files changed, 146 insertions(+), 41 deletions(-) diff --git a/handwritten/error-reporting/src/configuration.ts b/handwritten/error-reporting/src/configuration.ts index 65faf7fbd23..5f29adc35c6 100644 --- a/handwritten/error-reporting/src/configuration.ts +++ b/handwritten/error-reporting/src/configuration.ts @@ -204,6 +204,14 @@ export class Configuration { * @returns {Undefined} - does not return anything */ _checkLocalServiceContext() { + // Update June 18, 2019: When running on Cloud Run, Cloud Run + // on GKE, or any Knative install, the + // K_SERVICE env var should be used as + // the service and the K_REVISION env var + // should be used as the version. See the + // Knative runtime contract for more info + // (https://github.com/knative/serving/blob/master/docs/runtime-contract.md#process) + // // Note: The GAE_MODULE_NAME environment variable is set on GAE. // If the code is, in particular, running on GCF, then the // FUNCTION_NAME environment variable is set. @@ -224,7 +232,10 @@ export class Configuration { let service; let version; - if (env.FUNCTION_NAME) { + if (env.K_SERVICE) { + service = env.K_SERVICE; + version = env.K_REVISION; + } else if (env.FUNCTION_NAME) { service = env.FUNCTION_NAME; } else if (env.GAE_SERVICE) { service = env.GAE_SERVICE; diff --git a/handwritten/error-reporting/test/unit/service-configuration.ts b/handwritten/error-reporting/test/unit/service-configuration.ts index 16d72747367..d5fd4d0f7f1 100644 --- a/handwritten/error-reporting/test/unit/service-configuration.ts +++ b/handwritten/error-reporting/test/unit/service-configuration.ts @@ -36,22 +36,26 @@ function sterilizeServiceConfigEnv() { delete process.env[key]; }); } -function setEnv( - serviceName: string | null, - serviceVersion: string, - moduleName: string | null, - mv: string, - fn: string | null -) { +function setEnv(envData: { + gaeServiceName: string | null; + gaeServiceVersion: string; + gaeModuleName: string | null; + gaeModuleVersion: string; + functionName: string | null; + kService: string | null; + kRevision: string | null; +}) { Object.assign( process.env, omitBy( { - GAE_SERVICE: serviceName, - GAE_VERSION: serviceVersion, - GAE_MODULE_NAME: moduleName, - GAE_MODULE_VERSION: mv, - FUNCTION_NAME: fn, + GAE_SERVICE: envData.gaeServiceName, + GAE_VERSION: envData.gaeServiceVersion, + GAE_MODULE_NAME: envData.gaeModuleName, + GAE_MODULE_VERSION: envData.gaeModuleVersion, + FUNCTION_NAME: envData.functionName, + K_SERVICE: envData.kService, + K_REVISION: envData.kRevision, }, val => { return !is.string(val); @@ -74,13 +78,15 @@ describe('Testing service configuration', () => { 'A Configuration uses the function name as the service name on GCF ' + 'if the service name is not given in the given config', () => { - setEnv( - 'someModuleName', - '1.0', - 'InvalidName', - 'InvalidVersion', - 'someFunction' - ); + setEnv({ + gaeServiceName: 'someModuleName', + gaeServiceVersion: '1.0', + gaeModuleName: 'InvalidName', + gaeModuleVersion: 'InvalidVersion', + functionName: 'someFunction', + kService: null, + kRevision: null, + }); const c = new Configuration({}, logger); deepStrictEqual(c.getServiceContext().service, 'someFunction'); // FUNCTION_NAME is set and the user didn't specify a version, and so @@ -93,7 +99,15 @@ describe('Testing service configuration', () => { 'if the service name is not given in the given config ' + 'even if the GAE_SERVICE was not set', () => { - setEnv(null, '1.0', null, 'InvalidVersion', 'someFunction'); + setEnv({ + gaeServiceName: null, + gaeServiceVersion: '1.0', + gaeModuleName: null, + gaeModuleVersion: 'InvalidVersion', + functionName: 'someFunction', + kService: null, + kRevision: null, + }); const c = new Configuration({}, logger); deepStrictEqual(c.getServiceContext().service, 'someFunction'); // The user didn't specify a version and FUNCTION_NAME is defined, and @@ -106,7 +120,15 @@ describe('Testing service configuration', () => { 'if the FUNCTION_NAME env variable is not set and the given config ' + 'does not specify the service name', () => { - setEnv('someModuleName', '1.0', 'InvalidName', 'InvalidVersion', null); + setEnv({ + gaeServiceName: 'someModuleName', + gaeServiceVersion: '1.0', + gaeModuleName: 'InvalidName', + gaeModuleVersion: 'InvalidVersion', + functionName: null, + kService: null, + kRevision: null, + }); const c = new Configuration({}, logger); deepStrictEqual(c.getServiceContext().service, 'someModuleName'); // The user didn't specify a version, and FUNCTION_NAME is not defined, @@ -119,13 +141,15 @@ describe('Testing service configuration', () => { 'was specified and both the GAE_SERVICE and FUNCTION_NAME ' + 'env vars are set', () => { - setEnv( - 'someModuleName', - '1.0', - 'InvalidName', - 'InvalidVersion', - 'someFunction' - ); + setEnv({ + gaeServiceName: 'someModuleName', + gaeServiceVersion: '1.0', + gaeModuleName: 'InvalidName', + gaeModuleVersion: 'InvalidVersion', + functionName: 'someFunction', + kService: null, + kRevision: null, + }); const c = new Configuration( { serviceContext: { @@ -145,13 +169,15 @@ describe('Testing service configuration', () => { 'they were both specified and both the GAE_SERVICE and FUNCTION_NAME ' + 'env vars are set', () => { - setEnv( - 'someModuleName', - '1.0', - 'InvalidName', - 'InvalidVersion', - 'someFunction' - ); + setEnv({ + gaeServiceName: 'someModuleName', + gaeServiceVersion: '1.0', + gaeModuleName: 'InvalidName', + gaeModuleVersion: 'InvalidVersion', + functionName: 'someFunction', + kService: null, + kRevision: null, + }); const c = new Configuration( { serviceContext: { @@ -170,7 +196,15 @@ describe('Testing service configuration', () => { 'A Configuration uses the service name in the given config if it ' + 'was specified and only the GAE_SERVICE env const is set', () => { - setEnv('someModuleName', '1.0', 'InvalidName', 'InvalidVersion', null); + setEnv({ + gaeServiceName: 'someModuleName', + gaeServiceVersion: '1.0', + gaeModuleName: 'InvalidName', + gaeModuleVersion: 'InvalidVersion', + functionName: null, + kService: null, + kRevision: null, + }); const c = new Configuration( { serviceContext: { @@ -189,7 +223,15 @@ describe('Testing service configuration', () => { 'A Configuration uses the service name and version in the given config ' + 'they were both specified and only the GAE_SERVICE env const is set', () => { - setEnv('someModuleName', '1.0', 'InvalidName', 'InvalidVersion', null); + setEnv({ + gaeServiceName: 'someModuleName', + gaeServiceVersion: '1.0', + gaeModuleName: 'InvalidName', + gaeModuleVersion: 'InvalidVersion', + functionName: null, + kService: null, + kRevision: null, + }); const c = new Configuration( { serviceContext: { @@ -208,7 +250,15 @@ describe('Testing service configuration', () => { 'A Configuration uses the service name in the given config if it ' + 'was specified and only the FUNCTION_NAME env const is set', () => { - setEnv(null, '1.0', null, 'InvalidVersion', 'someFunction'); + setEnv({ + gaeServiceName: null, + gaeServiceVersion: '1.0', + gaeModuleName: null, + gaeModuleVersion: 'InvalidVersion', + functionName: 'someFunction', + kService: null, + kRevision: null, + }); const c = new Configuration( { serviceContext: { @@ -227,7 +277,15 @@ describe('Testing service configuration', () => { 'A Configuration uses the service name and version in the given config ' + 'if they were both specified and only the FUNCTION_NAME env const is set', () => { - setEnv(null, '1.0', null, 'InvalidVersion', 'someFunction'); + setEnv({ + gaeServiceName: null, + gaeServiceVersion: '1.0', + gaeModuleName: null, + gaeModuleVersion: 'InvalidVersion', + functionName: 'someFunction', + kService: null, + kRevision: null, + }); const c = new Configuration( { serviceContext: { @@ -258,7 +316,15 @@ describe('Testing service configuration', () => { 'not specified a service name or version even if GAE_VERSION has ' + 'been set', () => { - setEnv(null, 'InvalidVersion', null, 'InvalidVersion', null); + setEnv({ + gaeServiceName: null, + gaeServiceVersion: 'InvalidVersion', + gaeModuleName: null, + gaeModuleVersion: 'InvalidVersion', + functionName: null, + kService: null, + kRevision: null, + }); const c = new Configuration({}, logger); assert.strictEqual(c.getServiceContext().service, 'node'); assert.strictEqual(c.getServiceContext().version, undefined); @@ -281,4 +347,32 @@ describe('Testing service configuration', () => { deepStrictEqual(c.getServiceContext().version, '2.0'); } ); + it('A Configuration uses the K_SERVICE and K_REVISION env variables if set', () => { + setEnv({ + gaeServiceName: null, + gaeServiceVersion: 'x', + gaeModuleName: null, + gaeModuleVersion: 'y', + functionName: null, + kService: 'custom-service', + kRevision: 'custom-revision', + }); + const c = new Configuration({}, logger); + assert.strictEqual(c.getServiceContext().service, 'custom-service'); + assert.strictEqual(c.getServiceContext().version, 'custom-revision'); + }); + it('A Configuration gives priority to K_SERVICE and K_REVISION env variables', () => { + setEnv({ + gaeServiceName: 'gae-service-name', + gaeServiceVersion: 'gae-service-version', + gaeModuleName: 'gae-module-name', + gaeModuleVersion: 'gae-module-version', + functionName: 'function-name', + kService: 'k-service', + kRevision: 'k-revision', + }); + const c = new Configuration({}, logger); + assert.strictEqual(c.getServiceContext().service, 'k-service'); + assert.strictEqual(c.getServiceContext().version, 'k-revision'); + }); }); From 447df66770224ece0002338ba875f521e6724f1d Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 20 Jun 2019 07:42:22 -0700 Subject: [PATCH 274/527] chore: release 1.1.0 (#378) * updated CHANGELOG.md * updated package.json * updated samples/package.json --- handwritten/error-reporting/CHANGELOG.md | 12 ++++++++++++ handwritten/error-reporting/package.json | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/CHANGELOG.md b/handwritten/error-reporting/CHANGELOG.md index aae66880100..9a6b1626304 100644 --- a/handwritten/error-reporting/CHANGELOG.md +++ b/handwritten/error-reporting/CHANGELOG.md @@ -4,6 +4,18 @@ [1]: https://www.npmjs.com/package/@google-cloud/error-reporting?activeTab=versions +## [1.1.0](https://www.github.com/googleapis/nodejs-error-reporting/compare/v1.0.0...v1.1.0) (2019-06-20) + + +### Bug Fixes + +* bump min required versions and fix package scripts ([#376](https://www.github.com/googleapis/nodejs-error-reporting/issues/376)) ([eb3ae66](https://www.github.com/googleapis/nodejs-error-reporting/commit/eb3ae66)) + + +### Features + +* automatically use service and revision name in Knative environments ([#375](https://www.github.com/googleapis/nodejs-error-reporting/issues/375)) ([453bd6e](https://www.github.com/googleapis/nodejs-error-reporting/commit/453bd6e)), closes [#370](https://www.github.com/googleapis/nodejs-error-reporting/issues/370) + ## [1.0.0](https://www.github.com/googleapis/nodejs-error-reporting/compare/v0.6.3...v1.0.0) (2019-05-17) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index af60d883171..1344ff135a4 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/error-reporting", "description": "Stackdriver Error Reporting Client Library for Node.js", - "version": "1.0.0", + "version": "1.1.0", "license": "Apache-2.0", "author": "Google Inc.", "engines": { From f68771a1694f6dd8136782d9d378005ca60e699a Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Tue, 25 Jun 2019 16:42:25 -0700 Subject: [PATCH 275/527] fix(docs): link to reference docs section on googleapis.dev (#381) * fix(docs): reference docs should link to section of googleapis.dev with API reference * fix(docs): make anchors work in jsdoc --- handwritten/error-reporting/.jsdoc.js | 3 +++ handwritten/error-reporting/README.md | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/.jsdoc.js b/handwritten/error-reporting/.jsdoc.js index 66ce7d634be..5490383868c 100644 --- a/handwritten/error-reporting/.jsdoc.js +++ b/handwritten/error-reporting/.jsdoc.js @@ -41,5 +41,8 @@ module.exports = { sourceFiles: false, systemName: '@google-cloud/error-reporting', theme: 'lumen' + }, + markdown: { + idInHeadings: true } }; diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 9d7d22ab74b..7eebd1d3f06 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -391,10 +391,12 @@ Apache Version 2.0 See [LICENSE](https://github.com/googleapis/nodejs-error-reporting/blob/master/LICENSE) -[client-docs]: https://googleapis.dev/nodejs/error-reporting/latest/ +[client-docs]: https://googleapis.dev/nodejs/error-reporting/latest/#reference [product-docs]: https://cloud.google.com/error-reporting [shell_img]: https://gstatic.com/cloudssh/images/open-btn.png [projects]: https://console.cloud.google.com/project [billing]: https://support.google.com/cloud/answer/6293499#enable-billing [enable_api]: https://console.cloud.google.com/flows/enableapi?apiid=clouderrorreporting.googleapis.com -[auth]: https://cloud.google.com/docs/authentication/getting-started \ No newline at end of file +[auth]: https://cloud.google.com/docs/authentication/getting-started + +
From c11e1121a94c6ccaa7906f3bfa59c093ba69097c Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 26 Jun 2019 13:48:29 -0700 Subject: [PATCH 276/527] chore: release 1.1.1 (#382) --- handwritten/error-reporting/CHANGELOG.md | 7 +++++++ handwritten/error-reporting/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/CHANGELOG.md b/handwritten/error-reporting/CHANGELOG.md index 9a6b1626304..48eefc9f72d 100644 --- a/handwritten/error-reporting/CHANGELOG.md +++ b/handwritten/error-reporting/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/@google-cloud/error-reporting?activeTab=versions +### [1.1.1](https://www.github.com/googleapis/nodejs-error-reporting/compare/v1.1.0...v1.1.1) (2019-06-26) + + +### Bug Fixes + +* **docs:** link to reference docs section on googleapis.dev ([#381](https://www.github.com/googleapis/nodejs-error-reporting/issues/381)) ([d54aa8f](https://www.github.com/googleapis/nodejs-error-reporting/commit/d54aa8f)) + ## [1.1.0](https://www.github.com/googleapis/nodejs-error-reporting/compare/v1.0.0...v1.1.0) (2019-06-20) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 1344ff135a4..2cde3ae0b3d 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/error-reporting", "description": "Stackdriver Error Reporting Client Library for Node.js", - "version": "1.1.0", + "version": "1.1.1", "license": "Apache-2.0", "author": "Google Inc.", "engines": { From f8636eaa5bb3581fe221dc1da8a4f4b92e25f9c9 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Fri, 28 Jun 2019 10:06:05 -0700 Subject: [PATCH 277/527] build: use config file for linkinator (#383) --- handwritten/error-reporting/linkinator.config.json | 7 +++++++ handwritten/error-reporting/package.json | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 handwritten/error-reporting/linkinator.config.json diff --git a/handwritten/error-reporting/linkinator.config.json b/handwritten/error-reporting/linkinator.config.json new file mode 100644 index 00000000000..d780d6bfff5 --- /dev/null +++ b/handwritten/error-reporting/linkinator.config.json @@ -0,0 +1,7 @@ +{ + "recurse": true, + "skip": [ + "https://codecov.io/gh/googleapis/", + "www.googleapis.com" + ] +} diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 2cde3ae0b3d..816de65c10a 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -29,7 +29,7 @@ "prepare": "npm run compile", "pretest": "npm run compile", "license-check": "jsgl --local .", - "docs-test": "linkinator docs --recurse", + "docs-test": "linkinator docs", "predocs-test": "npm run docs" }, "dependencies": { @@ -79,7 +79,7 @@ "js-green-licenses": "^1.1.0", "json-stable-stringify": "^1.0.1", "koa": "^2.7.0", - "linkinator": "^1.4.3", + "linkinator": "^1.5.0", "lodash.maxby": "^4.6.0", "lodash.merge": "^4.6.1", "lodash.omit": "^4.5.0", From 1318d93136e5d2f732494e381fd7258806147f70 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 26 Jul 2019 18:58:25 +0300 Subject: [PATCH 278/527] chore(deps): update linters (#384) --- handwritten/error-reporting/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 816de65c10a..bf9d18c9447 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -68,8 +68,8 @@ "codecov": "^3.5.0", "cpy-cli": "^2.0.0", "delay": "^4.3.0", - "eslint": "^5.16.0", - "eslint-config-prettier": "^5.0.0", + "eslint": "^6.0.0", + "eslint-config-prettier": "^6.0.0", "eslint-plugin-node": "^9.1.0", "eslint-plugin-prettier": "^3.1.0", "express": "^4.17.1", From 8071cee96958e30f46b9a518cfcf2ba55ca9c3cd Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Wed, 31 Jul 2019 09:01:49 -0700 Subject: [PATCH 279/527] docs: use the jsdoc-fresh theme (#385) --- handwritten/error-reporting/.jsdoc.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/.jsdoc.js b/handwritten/error-reporting/.jsdoc.js index 5490383868c..81c21a73e6f 100644 --- a/handwritten/error-reporting/.jsdoc.js +++ b/handwritten/error-reporting/.jsdoc.js @@ -20,7 +20,7 @@ module.exports = { opts: { readme: './README.md', package: './package.json', - template: './node_modules/jsdoc-baseline', + template: './node_modules/jsdoc-fresh', recurse: true, verbose: true, destination: './docs/' From e30a52928cdc5887e306c5bc87cb7a41118b1668 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Wed, 31 Jul 2019 19:45:07 -0700 Subject: [PATCH 280/527] build: add Node 12 remove Node 11 (#386) --- .../.kokoro/continuous/{node11 => node12}/common.cfg | 2 +- .../.kokoro/continuous/{node11 => node12}/test.cfg | 0 .../.kokoro/presubmit/{node11 => node12}/common.cfg | 2 +- .../.kokoro/presubmit/{node11 => node12}/test.cfg | 0 4 files changed, 2 insertions(+), 2 deletions(-) rename handwritten/error-reporting/.kokoro/continuous/{node11 => node12}/common.cfg (89%) rename handwritten/error-reporting/.kokoro/continuous/{node11 => node12}/test.cfg (100%) rename handwritten/error-reporting/.kokoro/presubmit/{node11 => node12}/common.cfg (89%) rename handwritten/error-reporting/.kokoro/presubmit/{node11 => node12}/test.cfg (100%) diff --git a/handwritten/error-reporting/.kokoro/continuous/node11/common.cfg b/handwritten/error-reporting/.kokoro/continuous/node12/common.cfg similarity index 89% rename from handwritten/error-reporting/.kokoro/continuous/node11/common.cfg rename to handwritten/error-reporting/.kokoro/continuous/node12/common.cfg index 9e5d6ef820a..e596b27c433 100644 --- a/handwritten/error-reporting/.kokoro/continuous/node11/common.cfg +++ b/handwritten/error-reporting/.kokoro/continuous/node12/common.cfg @@ -16,7 +16,7 @@ build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:11-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:12-user" } env_vars: { key: "TRAMPOLINE_BUILD_FILE" diff --git a/handwritten/error-reporting/.kokoro/continuous/node11/test.cfg b/handwritten/error-reporting/.kokoro/continuous/node12/test.cfg similarity index 100% rename from handwritten/error-reporting/.kokoro/continuous/node11/test.cfg rename to handwritten/error-reporting/.kokoro/continuous/node12/test.cfg diff --git a/handwritten/error-reporting/.kokoro/presubmit/node11/common.cfg b/handwritten/error-reporting/.kokoro/presubmit/node12/common.cfg similarity index 89% rename from handwritten/error-reporting/.kokoro/presubmit/node11/common.cfg rename to handwritten/error-reporting/.kokoro/presubmit/node12/common.cfg index 9e5d6ef820a..e596b27c433 100644 --- a/handwritten/error-reporting/.kokoro/presubmit/node11/common.cfg +++ b/handwritten/error-reporting/.kokoro/presubmit/node12/common.cfg @@ -16,7 +16,7 @@ build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:11-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:12-user" } env_vars: { key: "TRAMPOLINE_BUILD_FILE" diff --git a/handwritten/error-reporting/.kokoro/presubmit/node11/test.cfg b/handwritten/error-reporting/.kokoro/presubmit/node12/test.cfg similarity index 100% rename from handwritten/error-reporting/.kokoro/presubmit/node11/test.cfg rename to handwritten/error-reporting/.kokoro/presubmit/node12/test.cfg From 8e5548842143036a5f25d1146778e7d6ca7680dc Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Sat, 31 Aug 2019 16:31:58 -0700 Subject: [PATCH 281/527] fix(docs): remove anchor from reference doc link (#388) --- handwritten/error-reporting/README.md | 4 +--- handwritten/error-reporting/synth.metadata | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 7eebd1d3f06..730370d5fc3 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -391,12 +391,10 @@ Apache Version 2.0 See [LICENSE](https://github.com/googleapis/nodejs-error-reporting/blob/master/LICENSE) -[client-docs]: https://googleapis.dev/nodejs/error-reporting/latest/#reference +[client-docs]: https://googleapis.dev/nodejs/error-reporting/latest/ [product-docs]: https://cloud.google.com/error-reporting [shell_img]: https://gstatic.com/cloudssh/images/open-btn.png [projects]: https://console.cloud.google.com/project [billing]: https://support.google.com/cloud/answer/6293499#enable-billing [enable_api]: https://console.cloud.google.com/flows/enableapi?apiid=clouderrorreporting.googleapis.com [auth]: https://cloud.google.com/docs/authentication/getting-started - - diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 2c2377154ff..c7e97aae43c 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -1,5 +1,5 @@ { - "updateTime": "2019-06-18T01:00:41.245594Z", + "updateTime": "2019-08-28T11:12:31.182768Z", "sources": [ { "template": { From 0fe2eb49ad436e4d393682ee06ba61e53db13d73 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Fri, 6 Sep 2019 18:11:42 -0400 Subject: [PATCH 282/527] update .nycrc ignore rules (#392) --- handwritten/error-reporting/.nycrc | 1 + 1 file changed, 1 insertion(+) diff --git a/handwritten/error-reporting/.nycrc b/handwritten/error-reporting/.nycrc index 83a421a0628..23e322204ec 100644 --- a/handwritten/error-reporting/.nycrc +++ b/handwritten/error-reporting/.nycrc @@ -6,6 +6,7 @@ "**/.coverage", "**/apis", "**/benchmark", + "**/conformance", "**/docs", "**/samples", "**/scripts", From d1f608bbf86cdb685ca94f516174e0d88d7a0a5a Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 7 Sep 2019 02:51:22 +0300 Subject: [PATCH 283/527] chore(deps): update dependency eslint-plugin-node to v10 (#391) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index bf9d18c9447..d6b436c215b 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -70,7 +70,7 @@ "delay": "^4.3.0", "eslint": "^6.0.0", "eslint-config-prettier": "^6.0.0", - "eslint-plugin-node": "^9.1.0", + "eslint-plugin-node": "^10.0.0", "eslint-plugin-prettier": "^3.1.0", "express": "^4.17.1", "gts": "^1.0.0", From 00fe4a369b60bf0f44069923233011eb3d4a04bc Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Fri, 6 Sep 2019 16:54:38 -0700 Subject: [PATCH 284/527] chore(deps): upgrade to the latest release of nock (#394) --- handwritten/error-reporting/package.json | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index d6b436c215b..fe15cd0c9ea 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -39,7 +39,7 @@ "lodash.has": "^4.5.2" }, "devDependencies": { - "@compodoc/compodoc": "^1.1.9", + "@compodoc/compodoc": "^1.1.10", "@types/boom": "^7.2.1", "@types/console-log-level": "^1.4.0", "@types/express": "^4.17.0", @@ -56,7 +56,6 @@ "@types/lodash.random": "^3.2.6", "@types/lodash.without": "^4.4.6", "@types/mocha": "^5.2.7", - "@types/nock": "^10.0.3", "@types/node": "^12.0.8", "@types/once": "^1.4.0", "@types/proxyquire": "^1.3.28", @@ -81,14 +80,14 @@ "koa": "^2.7.0", "linkinator": "^1.5.0", "lodash.maxby": "^4.6.0", - "lodash.merge": "^4.6.1", + "lodash.merge": "^4.6.2", "lodash.omit": "^4.5.0", "lodash.omitby": "^4.6.0", "lodash.pick": "^4.4.0", "lodash.random": "^3.2.0", "lodash.without": "^4.4.0", "mocha": "^6.1.4", - "nock": "^10.0.6", + "nock": "^11.3.2", "post-install-check": "0.0.1", "power-assert": "^1.6.1", "prettier": "^1.18.2", From 1a3c2508617c4d9f03b539213ca1f2dd6bc63319 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 7 Sep 2019 02:55:49 +0300 Subject: [PATCH 285/527] chore(deps): update dependency typescript to ~3.6.0 (#389) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index fe15cd0c9ea..79a1fc4692b 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -94,7 +94,7 @@ "proxyquire": "^2.1.0", "restify": "^8.3.3", "source-map-support": "^0.5.12", - "typescript": "~3.5.2", + "typescript": "~3.6.0", "uuid": "^3.3.2" } } From 18daa6510db8e1101dc9ed34cb478c9735f69d30 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Tue, 24 Sep 2019 11:49:54 -0700 Subject: [PATCH 286/527] chore: fix the system tests (#400) --- handwritten/error-reporting/system-test/error-reporting.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index 5a7b13d20c3..d51a746218f 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -223,6 +223,12 @@ describe('Request/Response lifecycle mocking', () => { new Configuration({key, reportMode: 'always'}, logger), logger ); + const fakeService = nock( + 'https://clouderrorreporting.googleapis.com/v1beta1/projects/' + + process.env.GCLOUD_PROJECT + ) + .persist() + .post('/events:report'); fakeService.query({key}).reply(200, (uri: string) => { assert(uri.indexOf('key=' + key) > -1); return {}; From 2f047df6b4fc84574e0491cd18299023ed22c921 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Tue, 24 Sep 2019 16:04:39 -0400 Subject: [PATCH 287/527] build: switch to GitHub app for releases (#396) --- .../.github/release-please.yml | 0 .../.kokoro/continuous/node10/test.cfg | 28 ------------------- handwritten/error-reporting/.kokoro/test.sh | 9 ------ 3 files changed, 37 deletions(-) create mode 100644 handwritten/error-reporting/.github/release-please.yml diff --git a/handwritten/error-reporting/.github/release-please.yml b/handwritten/error-reporting/.github/release-please.yml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg b/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg index fefee48ba76..468b8c7197a 100644 --- a/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg +++ b/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg @@ -7,31 +7,3 @@ before_action { } } } - -# tokens used by release-please to keep an up-to-date release PR. -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "github-magic-proxy-key-release-please" - } - } -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "github-magic-proxy-token-release-please" - } - } -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "github-magic-proxy-url-release-please" - } - } -} diff --git a/handwritten/error-reporting/.kokoro/test.sh b/handwritten/error-reporting/.kokoro/test.sh index c72c3a63fa1..9db11bb09d6 100755 --- a/handwritten/error-reporting/.kokoro/test.sh +++ b/handwritten/error-reporting/.kokoro/test.sh @@ -35,12 +35,3 @@ if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then else echo "coverage is only reported for Node $COVERAGE_NODE" fi - -# if release-please keys set, we kick off a task to update the release-PR. -if [ -f ${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-url-release-please ]; then - npx release-please release-pr --token=${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-token-release-please \ - --repo-url=googleapis/nodejs-error-reporting \ - --package-name=@google-cloud/error-reporting \ - --api-url=${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-url-release-please \ - --proxy-key=${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-key-release-please -fi From 087bf056ae8f97c19fafc48590008f329dbf764e Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 24 Sep 2019 13:05:35 -0700 Subject: [PATCH 288/527] chore: Re-generated to pick up changes in the API or client library generator. (#399) --- handwritten/error-reporting/synth.metadata | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index c7e97aae43c..14e5f2d6a7b 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -1,5 +1,5 @@ { - "updateTime": "2019-08-28T11:12:31.182768Z", + "updateTime": "2019-09-20T11:14:32.739504Z", "sources": [ { "template": { From 4ab362e4a43e18469d4beaf590d87a8f1f90a1d8 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Thu, 26 Sep 2019 10:32:04 -0700 Subject: [PATCH 289/527] chore: update @types/restify to v8 (#401) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 79a1fc4692b..7101309dd49 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -59,7 +59,7 @@ "@types/node": "^12.0.8", "@types/once": "^1.4.0", "@types/proxyquire": "^1.3.28", - "@types/restify": "^7.2.11", + "@types/restify": "^8.0.0", "@types/uuid": "^3.4.4", "body-parser": "^1.19.0", "boom": "^7.3.0", From e51b301756fcbecf3f6d96fca4e2e36f442236de Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 26 Sep 2019 12:49:49 -0700 Subject: [PATCH 290/527] chore: release 1.1.2 (#393) --- handwritten/error-reporting/CHANGELOG.md | 7 +++++++ handwritten/error-reporting/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/CHANGELOG.md b/handwritten/error-reporting/CHANGELOG.md index 48eefc9f72d..4f5aec527ec 100644 --- a/handwritten/error-reporting/CHANGELOG.md +++ b/handwritten/error-reporting/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/@google-cloud/error-reporting?activeTab=versions +### [1.1.2](https://www.github.com/googleapis/nodejs-error-reporting/compare/v1.1.1...v1.1.2) (2019-09-26) + + +### Bug Fixes + +* **docs:** remove anchor from reference doc link ([#388](https://www.github.com/googleapis/nodejs-error-reporting/issues/388)) ([c7d5d22](https://www.github.com/googleapis/nodejs-error-reporting/commit/c7d5d22)) + ### [1.1.1](https://www.github.com/googleapis/nodejs-error-reporting/compare/v1.1.0...v1.1.1) (2019-06-26) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 7101309dd49..fd14156e6b8 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/error-reporting", "description": "Stackdriver Error Reporting Client Library for Node.js", - "version": "1.1.1", + "version": "1.1.2", "license": "Apache-2.0", "author": "Google Inc.", "engines": { From 5338067468935b91cc8e0175a322858ca3ccfc60 Mon Sep 17 00:00:00 2001 From: Alexander Fenster Date: Thu, 26 Sep 2019 17:04:46 -0400 Subject: [PATCH 291/527] chore: add protos/ to .eslintignore (#402) --- handwritten/error-reporting/.eslintignore | 1 + 1 file changed, 1 insertion(+) diff --git a/handwritten/error-reporting/.eslintignore b/handwritten/error-reporting/.eslintignore index f0c7aead4bf..09b31fe735a 100644 --- a/handwritten/error-reporting/.eslintignore +++ b/handwritten/error-reporting/.eslintignore @@ -2,3 +2,4 @@ src/**/doc/* build/ docs/ +protos/ From a92e7957a6bd079a832208dbb61fa41733b7e777 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Fri, 27 Sep 2019 17:37:04 -0400 Subject: [PATCH 292/527] chore: update pull request template --- .../error-reporting/.github/PULL_REQUEST_TEMPLATE.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/.github/PULL_REQUEST_TEMPLATE.md b/handwritten/error-reporting/.github/PULL_REQUEST_TEMPLATE.md index 809750308d7..46cd1076bd7 100644 --- a/handwritten/error-reporting/.github/PULL_REQUEST_TEMPLATE.md +++ b/handwritten/error-reporting/.github/PULL_REQUEST_TEMPLATE.md @@ -1,5 +1,7 @@ -Fixes # (it's a good idea to open an issue first for discussion) - -- [ ] Tests and linter pass +Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: +- [ ] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/{{metadata['repo']['name']}}/issues) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea +- [ ] Ensure the tests and linter pass - [ ] Code coverage does not decrease (if any source code was changed) - [ ] Appropriate docs were updated (if necessary) + +Fixes # 🦕 From cb437e25427e1c375494b7670ca56ec10a70cbfd Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 30 Sep 2019 10:42:13 -0700 Subject: [PATCH 293/527] chore: re-generated to pick up changes in the API or client library generator. (#404) --- handwritten/error-reporting/.github/PULL_REQUEST_TEMPLATE.md | 2 +- handwritten/error-reporting/synth.metadata | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/.github/PULL_REQUEST_TEMPLATE.md b/handwritten/error-reporting/.github/PULL_REQUEST_TEMPLATE.md index 46cd1076bd7..4d83aadb679 100644 --- a/handwritten/error-reporting/.github/PULL_REQUEST_TEMPLATE.md +++ b/handwritten/error-reporting/.github/PULL_REQUEST_TEMPLATE.md @@ -1,5 +1,5 @@ Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: -- [ ] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/{{metadata['repo']['name']}}/issues) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea +- [ ] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/error-reporting/issues) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [ ] Ensure the tests and linter pass - [ ] Code coverage does not decrease (if any source code was changed) - [ ] Appropriate docs were updated (if necessary) diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 14e5f2d6a7b..20cca96d520 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -1,5 +1,5 @@ { - "updateTime": "2019-09-20T11:14:32.739504Z", + "updateTime": "2019-09-28T11:16:02.515600Z", "sources": [ { "template": { From 4721b753a6a805cbedb63a905beacc5d8360af9c Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 2 Oct 2019 16:03:51 -0700 Subject: [PATCH 294/527] chore: re-generated to pick up changes in the API or client library generator. (#405) --- handwritten/error-reporting/.github/PULL_REQUEST_TEMPLATE.md | 2 +- handwritten/error-reporting/synth.metadata | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/.github/PULL_REQUEST_TEMPLATE.md b/handwritten/error-reporting/.github/PULL_REQUEST_TEMPLATE.md index 4d83aadb679..3ba18ded383 100644 --- a/handwritten/error-reporting/.github/PULL_REQUEST_TEMPLATE.md +++ b/handwritten/error-reporting/.github/PULL_REQUEST_TEMPLATE.md @@ -1,5 +1,5 @@ Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: -- [ ] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/error-reporting/issues) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea +- [ ] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/nodejs-error-reporting/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [ ] Ensure the tests and linter pass - [ ] Code coverage does not decrease (if any source code was changed) - [ ] Appropriate docs were updated (if necessary) diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 20cca96d520..a922a605ee2 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -1,5 +1,5 @@ { - "updateTime": "2019-09-28T11:16:02.515600Z", + "updateTime": "2019-10-01T11:17:38.906065Z", "sources": [ { "template": { From 33429be5f7a2e54856df37ca6c5c6367d51954fb Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Tue, 8 Oct 2019 17:42:28 -0700 Subject: [PATCH 295/527] chore: update CONTRIBUTING.md and make releaseType node (#407) --- handwritten/error-reporting/.github/release-please.yml | 1 + handwritten/error-reporting/CONTRIBUTING.md | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/handwritten/error-reporting/.github/release-please.yml b/handwritten/error-reporting/.github/release-please.yml index e69de29bb2d..85344b92c7f 100644 --- a/handwritten/error-reporting/.github/release-please.yml +++ b/handwritten/error-reporting/.github/release-please.yml @@ -0,0 +1 @@ +releaseType: node diff --git a/handwritten/error-reporting/CONTRIBUTING.md b/handwritten/error-reporting/CONTRIBUTING.md index 78aaa61b269..f6c4cf010e3 100644 --- a/handwritten/error-reporting/CONTRIBUTING.md +++ b/handwritten/error-reporting/CONTRIBUTING.md @@ -34,6 +34,7 @@ accept your pull requests. 1. Ensure that your code adheres to the existing style in the code to which you are contributing. 1. Ensure that your code has an appropriate set of tests which all pass. +1. Title your pull request following [Conventional Commits](https://www.conventionalcommits.org/) styling. 1. Submit a pull request. ## Running the tests @@ -46,8 +47,17 @@ accept your pull requests. 1. Run the tests: + # Run unit tests. npm test + # Run sample integration tests. + gcloud auth application-default login + npm run samples-test + + # Run all system tests. + gcloud auth application-default login + npm run system-test + 1. Lint (and maybe fix) any changes: npm run fix From 94ec1b8bb20321e9859bec19aac10401ff422fbb Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 29 Oct 2019 03:35:15 +0200 Subject: [PATCH 296/527] chore(deps): update dependency c8 to v6 (#408) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index fd14156e6b8..ff27dbc016c 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -63,7 +63,7 @@ "@types/uuid": "^3.4.4", "body-parser": "^1.19.0", "boom": "^7.3.0", - "c8": "^5.0.1", + "c8": "^6.0.0", "codecov": "^3.5.0", "cpy-cli": "^2.0.0", "delay": "^4.3.0", From f78e3785d8c1be41ee4782e43ab50ed9c92a1c01 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 30 Oct 2019 16:14:23 -0700 Subject: [PATCH 297/527] test: collect coverage for src/ folder --- handwritten/error-reporting/.nycrc | 1 - handwritten/error-reporting/synth.metadata | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/.nycrc b/handwritten/error-reporting/.nycrc index 23e322204ec..367688844eb 100644 --- a/handwritten/error-reporting/.nycrc +++ b/handwritten/error-reporting/.nycrc @@ -10,7 +10,6 @@ "**/docs", "**/samples", "**/scripts", - "**/src/**/v*/**/*.js", "**/protos", "**/test", ".jsdoc.js", diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index a922a605ee2..8f6e7544cd3 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -1,11 +1,11 @@ { - "updateTime": "2019-10-01T11:17:38.906065Z", + "updateTime": "2019-10-30T22:17:49.804850Z", "sources": [ { "template": { "name": "node_library", "origin": "synthtool.gcp", - "version": "2019.5.2" + "version": "2019.10.17" } } ] From a881b32fbba5d22edd140fa97aa22412a9c7b5c5 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 7 Nov 2019 21:46:46 +0200 Subject: [PATCH 298/527] chore(deps): update dependency typescript to ~3.7.0 (#410) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index ff27dbc016c..f42f6b6b0b2 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -94,7 +94,7 @@ "proxyquire": "^2.1.0", "restify": "^8.3.3", "source-map-support": "^0.5.12", - "typescript": "~3.6.0", + "typescript": "~3.7.0", "uuid": "^3.3.2" } } From 2bc5c8f77df9052ab0da6bf65ec4ccec53a8986d Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Fri, 15 Nov 2019 10:20:09 -0800 Subject: [PATCH 299/527] chore: add gitattributes to kokoro --- handwritten/error-reporting/.kokoro/.gitattributes | 1 + 1 file changed, 1 insertion(+) create mode 100644 handwritten/error-reporting/.kokoro/.gitattributes diff --git a/handwritten/error-reporting/.kokoro/.gitattributes b/handwritten/error-reporting/.kokoro/.gitattributes new file mode 100644 index 00000000000..87acd4f484e --- /dev/null +++ b/handwritten/error-reporting/.kokoro/.gitattributes @@ -0,0 +1 @@ +* linguist-generated=true From 72ff31c5f696eb91b455e55f835ba8dbb08ead7c Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Fri, 22 Nov 2019 13:44:51 -0800 Subject: [PATCH 300/527] fix(docs): snippets are now replaced in jsdoc comments (#411) --- handwritten/error-reporting/.jsdoc.js | 3 ++- .../error-reporting/src/interfaces/restify.ts | 7 ++++--- .../system-test/error-reporting.ts | 8 ++++---- handwritten/error-reporting/test/unit/logger.ts | 16 ++++++++++------ handwritten/error-reporting/utils/fuzzer.ts | 6 +++++- 5 files changed, 25 insertions(+), 15 deletions(-) diff --git a/handwritten/error-reporting/.jsdoc.js b/handwritten/error-reporting/.jsdoc.js index 81c21a73e6f..6061ce17e94 100644 --- a/handwritten/error-reporting/.jsdoc.js +++ b/handwritten/error-reporting/.jsdoc.js @@ -26,7 +26,8 @@ module.exports = { destination: './docs/' }, plugins: [ - 'plugins/markdown' + 'plugins/markdown', + 'jsdoc-region-tag' ], source: { excludePattern: '(^|\\/|\\\\)[._]', diff --git a/handwritten/error-reporting/src/interfaces/restify.ts b/handwritten/error-reporting/src/interfaces/restify.ts index 42a684a75b4..9c9b903dae9 100644 --- a/handwritten/error-reporting/src/interfaces/restify.ts +++ b/handwritten/error-reporting/src/interfaces/restify.ts @@ -128,9 +128,10 @@ function restifyRequestHandler( ) { listener = () => { restifyRequestFinishHandler(client, config, req, res); - res.removeListener('finish', (listener as {}) as ( - ...args: Array<{}> - ) => void); + res.removeListener( + 'finish', + (listener as {}) as (...args: Array<{}>) => void + ); }; res.on('finish', (listener as {}) as (...args: Array<{}>) => void); diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index d51a746218f..0c144f71840 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -463,10 +463,10 @@ describe('error-reporting', () => { assert.strictEqual(process.listenerCount('unhandledRejection'), 0); oldLogger = console.error; console.error = function(this) { - const text = util.format.apply(null, (arguments as {}) as [ - {}, - Array<{}> - ]); + const text = util.format.apply( + null, + (arguments as {}) as [{}, Array<{}>] + ); oldLogger(text); logOutput += text; }; diff --git a/handwritten/error-reporting/test/unit/logger.ts b/handwritten/error-reporting/test/unit/logger.ts index 25238bda9a1..4a5f501a2e9 100644 --- a/handwritten/error-reporting/test/unit/logger.ts +++ b/handwritten/error-reporting/test/unit/logger.ts @@ -29,9 +29,10 @@ describe('logger', () => { }); describe('Exception handling', () => { it('Should not throw given undefined', () => { - assert.doesNotThrow(createLogger, (createLogger() as {}) as ( - err: Error - ) => boolean); + assert.doesNotThrow( + createLogger, + (createLogger() as {}) as (err: Error) => boolean + ); }); it('Should not throw given an empty object', () => { assert.doesNotThrow( @@ -53,9 +54,12 @@ describe('logger', () => { }); it('Should not throw given an env variable to use', () => { process.env.GCLOUD_ERRORS_LOGLEVEL = '4'; - assert.doesNotThrow(createLogger, (createLogger({ - logLevel: 4, - }) as {}) as (err: Error) => boolean); + assert.doesNotThrow( + createLogger, + (createLogger({ + logLevel: 4, + }) as {}) as (err: Error) => boolean + ); delete process.env.GCLOUD_ERRORS_LOGLEVEL; }); it('Should thow given logLevel as null', () => { diff --git a/handwritten/error-reporting/utils/fuzzer.ts b/handwritten/error-reporting/utils/fuzzer.ts index 585289e080f..281b071f0c8 100644 --- a/handwritten/error-reporting/utils/fuzzer.ts +++ b/handwritten/error-reporting/utils/fuzzer.ts @@ -53,7 +53,11 @@ export class Fuzzer { const lenChecked = (is.number(len) ? len : 10)!; const chars: string[] = []; let thisRange: number[] = []; - const ranges = [[48, 57], [65, 90], [97, 122]]; + const ranges = [ + [48, 57], + [65, 90], + [97, 122], + ]; for (let i = 0; i < lenChecked; i++) { thisRange = ranges[random(0, 2)]; From 5f02a2056420685228b89333e80bb671dbacd961 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Mon, 25 Nov 2019 08:54:42 -0800 Subject: [PATCH 301/527] chore: update license headers --- .../error-reporting/src/build-stack-trace.ts | 28 +++++++++---------- .../src/classes/error-message.ts | 28 +++++++++---------- .../classes/request-information-container.ts | 28 +++++++++---------- .../error-reporting/src/configuration.ts | 28 +++++++++---------- .../src/google-apis/auth-client.ts | 28 +++++++++---------- .../error-reporting/src/interfaces/express.ts | 28 +++++++++---------- .../error-reporting/src/interfaces/hapi.ts | 28 +++++++++---------- .../error-reporting/src/interfaces/koa.ts | 28 +++++++++---------- .../error-reporting/src/interfaces/koa2.ts | 28 +++++++++---------- .../error-reporting/src/interfaces/manual.ts | 28 +++++++++---------- .../src/interfaces/message-builder.ts | 28 +++++++++---------- .../error-reporting/src/interfaces/restify.ts | 28 +++++++++---------- handwritten/error-reporting/src/logger.ts | 28 +++++++++---------- .../src/populate-error-message.ts | 28 +++++++++---------- .../src/request-extractors/express.ts | 28 +++++++++---------- .../src/request-extractors/hapi.ts | 28 +++++++++---------- .../src/request-extractors/koa.ts | 28 +++++++++---------- .../src/request-extractors/manual.ts | 28 +++++++++---------- .../system-test/error-reporting.ts | 28 +++++++++---------- .../system-test/test-install.ts | 28 +++++++++---------- .../test/fixtures/configuration.ts | 28 +++++++++---------- .../test-servers/express_scaffold_server.ts | 28 +++++++++---------- .../test/test-servers/hapi_scaffold_server.ts | 28 +++++++++---------- .../test/test-servers/koa2_scaffold_server.ts | 28 +++++++++---------- .../test/test-servers/koa_scaffold_server.ts | 28 +++++++++---------- .../test-servers/manual_scaffold_server.ts | 28 +++++++++---------- .../test-servers/restify_scaffold_server.ts | 28 +++++++++---------- .../test/unit/build-stack-trace.ts | 28 +++++++++---------- .../test/unit/classes/error-message.ts | 28 +++++++++---------- .../classes/request-information-container.ts | 28 +++++++++---------- .../test/unit/configuration.ts | 28 +++++++++---------- .../test/unit/google-apis/auth-client.ts | 28 +++++++++---------- .../test/unit/interfaces/express.ts | 28 +++++++++---------- .../test/unit/interfaces/hapi.ts | 28 +++++++++---------- .../test/unit/interfaces/manual.ts | 28 +++++++++---------- .../test/unit/interfaces/restify.ts | 28 +++++++++---------- .../error-reporting/test/unit/logger.ts | 28 +++++++++---------- .../test/unit/populate-error-message.ts | 28 +++++++++---------- .../test/unit/request-extractors/express.ts | 28 +++++++++---------- .../test/unit/request-extractors/hapi.ts | 28 +++++++++---------- .../test/unit/request-extractors/koa.ts | 28 +++++++++---------- .../test/unit/request-extractors/manual.ts | 28 +++++++++---------- .../test/unit/service-configuration.ts | 28 +++++++++---------- handwritten/error-reporting/test/util.ts | 28 +++++++++---------- .../utils/errors-api-transport.ts | 28 +++++++++---------- handwritten/error-reporting/utils/fuzzer.ts | 28 +++++++++---------- 46 files changed, 598 insertions(+), 690 deletions(-) diff --git a/handwritten/error-reporting/src/build-stack-trace.ts b/handwritten/error-reporting/src/build-stack-trace.ts index 5873ef990e9..b13b18bf800 100644 --- a/handwritten/error-reporting/src/build-stack-trace.ts +++ b/handwritten/error-reporting/src/build-stack-trace.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2017 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2017 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. const SRC_ROOT = __dirname; diff --git a/handwritten/error-reporting/src/classes/error-message.ts b/handwritten/error-reporting/src/classes/error-message.ts index 886cd11d719..f613f54ea10 100644 --- a/handwritten/error-reporting/src/classes/error-message.ts +++ b/handwritten/error-reporting/src/classes/error-message.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as is from 'is'; diff --git a/handwritten/error-reporting/src/classes/request-information-container.ts b/handwritten/error-reporting/src/classes/request-information-container.ts index 87e57a25442..1d04b1ebd68 100644 --- a/handwritten/error-reporting/src/classes/request-information-container.ts +++ b/handwritten/error-reporting/src/classes/request-information-container.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as is from 'is'; diff --git a/handwritten/error-reporting/src/configuration.ts b/handwritten/error-reporting/src/configuration.ts index 5f29adc35c6..6b31b342340 100644 --- a/handwritten/error-reporting/src/configuration.ts +++ b/handwritten/error-reporting/src/configuration.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as is from 'is'; import has = require('lodash.has'); diff --git a/handwritten/error-reporting/src/google-apis/auth-client.ts b/handwritten/error-reporting/src/google-apis/auth-client.ts index 736b7878f7d..3b9775cccb4 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.ts +++ b/handwritten/error-reporting/src/google-apis/auth-client.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. const pkg = require('../../../package.json'); import * as is from 'is'; diff --git a/handwritten/error-reporting/src/interfaces/express.ts b/handwritten/error-reporting/src/interfaces/express.ts index 17e77876afe..a0a083b9f58 100644 --- a/handwritten/error-reporting/src/interfaces/express.ts +++ b/handwritten/error-reporting/src/interfaces/express.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as express from 'express'; import * as is from 'is'; diff --git a/handwritten/error-reporting/src/interfaces/hapi.ts b/handwritten/error-reporting/src/interfaces/hapi.ts index 82bb4f2f71e..129e59e9ade 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.ts +++ b/handwritten/error-reporting/src/interfaces/hapi.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as boom from 'boom'; import * as is from 'is'; diff --git a/handwritten/error-reporting/src/interfaces/koa.ts b/handwritten/error-reporting/src/interfaces/koa.ts index ffca551a4cf..cd689a04504 100644 --- a/handwritten/error-reporting/src/interfaces/koa.ts +++ b/handwritten/error-reporting/src/interfaces/koa.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import {Middleware, Request, Response} from 'koa'; diff --git a/handwritten/error-reporting/src/interfaces/koa2.ts b/handwritten/error-reporting/src/interfaces/koa2.ts index 0238eadff6d..68b388dbc30 100644 --- a/handwritten/error-reporting/src/interfaces/koa2.ts +++ b/handwritten/error-reporting/src/interfaces/koa2.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2018 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2018 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import {Request, Response} from 'koa'; diff --git a/handwritten/error-reporting/src/interfaces/manual.ts b/handwritten/error-reporting/src/interfaces/manual.ts index 802181f7e74..aa782975b5d 100644 --- a/handwritten/error-reporting/src/interfaces/manual.ts +++ b/handwritten/error-reporting/src/interfaces/manual.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as http from 'http'; import * as is from 'is'; diff --git a/handwritten/error-reporting/src/interfaces/message-builder.ts b/handwritten/error-reporting/src/interfaces/message-builder.ts index 9182798cb17..0f8eb1407b5 100644 --- a/handwritten/error-reporting/src/interfaces/message-builder.ts +++ b/handwritten/error-reporting/src/interfaces/message-builder.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import {buildStackTrace} from '../build-stack-trace'; import {ErrorMessage} from '../classes/error-message'; diff --git a/handwritten/error-reporting/src/interfaces/restify.ts b/handwritten/error-reporting/src/interfaces/restify.ts index 9c9b903dae9..9ea7325b513 100644 --- a/handwritten/error-reporting/src/interfaces/restify.ts +++ b/handwritten/error-reporting/src/interfaces/restify.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as express from 'express'; import * as is from 'is'; diff --git a/handwritten/error-reporting/src/logger.ts b/handwritten/error-reporting/src/logger.ts index b7ede2565cb..6bd331c43e9 100644 --- a/handwritten/error-reporting/src/logger.ts +++ b/handwritten/error-reporting/src/logger.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as is from 'is'; import has = require('lodash.has'); diff --git a/handwritten/error-reporting/src/populate-error-message.ts b/handwritten/error-reporting/src/populate-error-message.ts index 53fa6d7147d..0425153851c 100644 --- a/handwritten/error-reporting/src/populate-error-message.ts +++ b/handwritten/error-reporting/src/populate-error-message.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as is from 'is'; import has = require('lodash.has'); diff --git a/handwritten/error-reporting/src/request-extractors/express.ts b/handwritten/error-reporting/src/request-extractors/express.ts index 858d7e8d9ca..757d4fa74b2 100644 --- a/handwritten/error-reporting/src/request-extractors/express.ts +++ b/handwritten/error-reporting/src/request-extractors/express.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as express from 'express'; import * as is from 'is'; diff --git a/handwritten/error-reporting/src/request-extractors/hapi.ts b/handwritten/error-reporting/src/request-extractors/hapi.ts index d425fa33d14..3153aa112f9 100644 --- a/handwritten/error-reporting/src/request-extractors/hapi.ts +++ b/handwritten/error-reporting/src/request-extractors/hapi.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as boom from 'boom'; import * as is from 'is'; diff --git a/handwritten/error-reporting/src/request-extractors/koa.ts b/handwritten/error-reporting/src/request-extractors/koa.ts index dbea5864614..49ab06e9dff 100644 --- a/handwritten/error-reporting/src/request-extractors/koa.ts +++ b/handwritten/error-reporting/src/request-extractors/koa.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as is from 'is'; import * as koa from 'koa'; diff --git a/handwritten/error-reporting/src/request-extractors/manual.ts b/handwritten/error-reporting/src/request-extractors/manual.ts index 153f41a42f7..b6d943c369c 100644 --- a/handwritten/error-reporting/src/request-extractors/manual.ts +++ b/handwritten/error-reporting/src/request-extractors/manual.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as is from 'is'; import has = require('lodash.has'); diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index 0c144f71840..cee7b0e6173 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as assert from 'assert'; import delay from 'delay'; diff --git a/handwritten/error-reporting/system-test/test-install.ts b/handwritten/error-reporting/system-test/test-install.ts index bc8b2937655..194d8747bd1 100644 --- a/handwritten/error-reporting/system-test/test-install.ts +++ b/handwritten/error-reporting/system-test/test-install.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2018 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2018 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as check from 'post-install-check'; diff --git a/handwritten/error-reporting/test/fixtures/configuration.ts b/handwritten/error-reporting/test/fixtures/configuration.ts index 764bcff5ee6..f8f5dc7f5ba 100644 --- a/handwritten/error-reporting/test/fixtures/configuration.ts +++ b/handwritten/error-reporting/test/fixtures/configuration.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import { Configuration, diff --git a/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts index fba7f2b8e1f..e06301f02a2 100644 --- a/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the 'License'); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an 'AS IS' BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. const WARNING_HEADER = '\n!! -WARNING-'; const EXCLAMATION_LN = '\n!!'; diff --git a/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts index 7a5f07ffe87..aaa0d310e4e 100644 --- a/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the 'License'); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an 'AS IS' BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as Hapi from 'hapi'; import {ErrorReporting} from '../../src/index'; diff --git a/handwritten/error-reporting/test/test-servers/koa2_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/koa2_scaffold_server.ts index e9870f895eb..06a2e7cca70 100644 --- a/handwritten/error-reporting/test/test-servers/koa2_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/koa2_scaffold_server.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. // jscs doesn't understand koa.. // jscs:disable diff --git a/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts index 8a5e1c7be24..e1d0830b6b4 100644 --- a/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import {ErrorReporting} from '../../src'; const errorHandler = new ErrorReporting({ diff --git a/handwritten/error-reporting/test/test-servers/manual_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/manual_scaffold_server.ts index 6715e646f8f..e7b3dc8ca80 100644 --- a/handwritten/error-reporting/test/test-servers/manual_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/manual_scaffold_server.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import {ErrorReporting} from '../../src/index'; const errors = new ErrorReporting(); diff --git a/handwritten/error-reporting/test/test-servers/restify_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/restify_scaffold_server.ts index 0330c1bc831..386f58d9def 100644 --- a/handwritten/error-reporting/test/test-servers/restify_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/restify_scaffold_server.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. function respond(req: {}, res: {}, next: Function) { next(new Error('this is a restify error')); diff --git a/handwritten/error-reporting/test/unit/build-stack-trace.ts b/handwritten/error-reporting/test/unit/build-stack-trace.ts index fd26aad230d..2fa677d90ac 100644 --- a/handwritten/error-reporting/test/unit/build-stack-trace.ts +++ b/handwritten/error-reporting/test/unit/build-stack-trace.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2017 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2017 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as assert from 'assert'; import * as path from 'path'; diff --git a/handwritten/error-reporting/test/unit/classes/error-message.ts b/handwritten/error-reporting/test/unit/classes/error-message.ts index 10ce61e1728..b1f4e72bd65 100644 --- a/handwritten/error-reporting/test/unit/classes/error-message.ts +++ b/handwritten/error-reporting/test/unit/classes/error-message.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the 'License'); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an 'AS IS' BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as assert from 'assert'; import {ErrorMessage} from '../../../src/classes/error-message'; diff --git a/handwritten/error-reporting/test/unit/classes/request-information-container.ts b/handwritten/error-reporting/test/unit/classes/request-information-container.ts index 56fc8010fa2..30767e5fe57 100644 --- a/handwritten/error-reporting/test/unit/classes/request-information-container.ts +++ b/handwritten/error-reporting/test/unit/classes/request-information-container.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the 'License'); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an 'AS IS' BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as assert from 'assert'; import {RequestInformationContainer} from '../../../src/classes/request-information-container'; diff --git a/handwritten/error-reporting/test/unit/configuration.ts b/handwritten/error-reporting/test/unit/configuration.ts index f72bf5ab3ee..791b00df53f 100644 --- a/handwritten/error-reporting/test/unit/configuration.ts +++ b/handwritten/error-reporting/test/unit/configuration.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as assert from 'assert'; import * as is from 'is'; diff --git a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts index 28a87302eba..a3d56561d3b 100644 --- a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts +++ b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2017 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2017 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as proxyquire from 'proxyquire'; diff --git a/handwritten/error-reporting/test/unit/interfaces/express.ts b/handwritten/error-reporting/test/unit/interfaces/express.ts index f58f6501484..e5145f438fb 100644 --- a/handwritten/error-reporting/test/unit/interfaces/express.ts +++ b/handwritten/error-reporting/test/unit/interfaces/express.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the 'License'); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an 'AS IS' BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as assert from 'assert'; import merge = require('lodash.merge'); diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.ts b/handwritten/error-reporting/test/unit/interfaces/hapi.ts index 706d03a8df0..96b6a9187fe 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.ts +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as is from 'is'; import has = require('lodash.has'); diff --git a/handwritten/error-reporting/test/unit/interfaces/manual.ts b/handwritten/error-reporting/test/unit/interfaces/manual.ts index cd69a9ef3e0..7f4a2d4e360 100644 --- a/handwritten/error-reporting/test/unit/interfaces/manual.ts +++ b/handwritten/error-reporting/test/unit/interfaces/manual.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as assert from 'assert'; diff --git a/handwritten/error-reporting/test/unit/interfaces/restify.ts b/handwritten/error-reporting/test/unit/interfaces/restify.ts index 52815e08629..008f81f8860 100644 --- a/handwritten/error-reporting/test/unit/interfaces/restify.ts +++ b/handwritten/error-reporting/test/unit/interfaces/restify.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as assert from 'assert'; import {EventEmitter} from 'events'; diff --git a/handwritten/error-reporting/test/unit/logger.ts b/handwritten/error-reporting/test/unit/logger.ts index 4a5f501a2e9..b978b45934f 100644 --- a/handwritten/error-reporting/test/unit/logger.ts +++ b/handwritten/error-reporting/test/unit/logger.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as assert from 'assert'; import {createLogger} from '../../src/logger'; diff --git a/handwritten/error-reporting/test/unit/populate-error-message.ts b/handwritten/error-reporting/test/unit/populate-error-message.ts index 17f704dbc8c..13d8c0c5bf8 100644 --- a/handwritten/error-reporting/test/unit/populate-error-message.ts +++ b/handwritten/error-reporting/test/unit/populate-error-message.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2017 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2017 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as assert from 'assert'; diff --git a/handwritten/error-reporting/test/unit/request-extractors/express.ts b/handwritten/error-reporting/test/unit/request-extractors/express.ts index 4efc74b2da1..af4154b55a0 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/express.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/express.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the 'License'); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an 'AS IS' BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import {Response} from 'express'; import {expressRequestInformationExtractor} from '../../../src/request-extractors/express'; diff --git a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts index 7de17c40c53..a07aa4634d0 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the 'License'); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an 'AS IS' BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as hapi from 'hapi'; import {URL} from 'url'; diff --git a/handwritten/error-reporting/test/unit/request-extractors/koa.ts b/handwritten/error-reporting/test/unit/request-extractors/koa.ts index 48e893c711a..bac185f48f2 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/koa.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/koa.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import {Request, Response} from 'koa'; diff --git a/handwritten/error-reporting/test/unit/request-extractors/manual.ts b/handwritten/error-reporting/test/unit/request-extractors/manual.ts index e8425a3d1c2..884d1e43080 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/manual.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/manual.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the 'License'); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an 'AS IS' BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import omit = require('lodash.omit'); import {manualRequestInformationExtractor} from '../../../src/request-extractors/manual'; diff --git a/handwritten/error-reporting/test/unit/service-configuration.ts b/handwritten/error-reporting/test/unit/service-configuration.ts index d5fd4d0f7f1..6d9aec90a78 100644 --- a/handwritten/error-reporting/test/unit/service-configuration.ts +++ b/handwritten/error-reporting/test/unit/service-configuration.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as assert from 'assert'; import * as is from 'is'; diff --git a/handwritten/error-reporting/test/util.ts b/handwritten/error-reporting/test/util.ts index 6a2269bf2fe..43887717053 100644 --- a/handwritten/error-reporting/test/util.ts +++ b/handwritten/error-reporting/test/util.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2018 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the 'License'); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an 'AS IS' BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2018 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import * as assert from 'assert'; import * as stringify from 'json-stable-stringify'; diff --git a/handwritten/error-reporting/utils/errors-api-transport.ts b/handwritten/error-reporting/utils/errors-api-transport.ts index 76df0c549e7..e6b57601252 100644 --- a/handwritten/error-reporting/utils/errors-api-transport.ts +++ b/handwritten/error-reporting/utils/errors-api-transport.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import {Configuration, Logger} from '../src/configuration'; import {RequestHandler as AuthClient} from '../src/google-apis/auth-client'; diff --git a/handwritten/error-reporting/utils/fuzzer.ts b/handwritten/error-reporting/utils/fuzzer.ts index 281b071f0c8..f99dc7b1a3b 100644 --- a/handwritten/error-reporting/utils/fuzzer.ts +++ b/handwritten/error-reporting/utils/fuzzer.ts @@ -1,18 +1,16 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. import without = require('lodash.without'); import maxBy = require('lodash.maxby'); From ab353761d2f027a8f7ae0243d4236c7705ef6f00 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Thu, 5 Dec 2019 10:44:40 -0800 Subject: [PATCH 302/527] fix(deps): pin TypeScript below 3.7.0 --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index f42f6b6b0b2..e904ef13f25 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -94,7 +94,7 @@ "proxyquire": "^2.1.0", "restify": "^8.3.3", "source-map-support": "^0.5.12", - "typescript": "~3.7.0", + "typescript": "3.6.4", "uuid": "^3.3.2" } } From ccf65021c00853a26b23f1fde705b613b5487ea9 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 5 Dec 2019 13:31:50 -0800 Subject: [PATCH 303/527] chore: release 1.1.3 (#414) --- handwritten/error-reporting/CHANGELOG.md | 8 ++++++++ handwritten/error-reporting/package.json | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/CHANGELOG.md b/handwritten/error-reporting/CHANGELOG.md index 4f5aec527ec..e7e438114c0 100644 --- a/handwritten/error-reporting/CHANGELOG.md +++ b/handwritten/error-reporting/CHANGELOG.md @@ -4,6 +4,14 @@ [1]: https://www.npmjs.com/package/@google-cloud/error-reporting?activeTab=versions +### [1.1.3](https://www.github.com/googleapis/nodejs-error-reporting/compare/v1.1.2...v1.1.3) (2019-12-05) + + +### Bug Fixes + +* **deps:** pin TypeScript below 3.7.0 ([e54ef75](https://www.github.com/googleapis/nodejs-error-reporting/commit/e54ef75df1aced12b862bf0688ddb02a28b87c81)) +* **docs:** snippets are now replaced in jsdoc comments ([#411](https://www.github.com/googleapis/nodejs-error-reporting/issues/411)) ([edd884f](https://www.github.com/googleapis/nodejs-error-reporting/commit/edd884fdb81fb6d4434f8487f8040fd9f463869e)) + ### [1.1.2](https://www.github.com/googleapis/nodejs-error-reporting/compare/v1.1.1...v1.1.2) (2019-09-26) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index e904ef13f25..73757ec7bf7 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/error-reporting", "description": "Stackdriver Error Reporting Client Library for Node.js", - "version": "1.1.2", + "version": "1.1.3", "license": "Apache-2.0", "author": "Google Inc.", "engines": { From 78eec596f22ab05a64da9025ec0bdc2b8495c2d1 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Mon, 23 Dec 2019 12:18:15 -0500 Subject: [PATCH 304/527] docs: update jsdoc license/samples-README (#421) --- handwritten/error-reporting/.jsdoc.js | 29 +++++++++++++-------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/handwritten/error-reporting/.jsdoc.js b/handwritten/error-reporting/.jsdoc.js index 6061ce17e94..86ba64f82ff 100644 --- a/handwritten/error-reporting/.jsdoc.js +++ b/handwritten/error-reporting/.jsdoc.js @@ -1,18 +1,17 @@ -/*! - * Copyright 2018 Google LLC. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2019 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// 'use strict'; From 92ce1bb78cb3a0b70ce2672bf1d4a4a8dec308db Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 27 Dec 2019 00:22:08 +0200 Subject: [PATCH 305/527] chore(deps): update dependency eslint-plugin-node to v11 (#424) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 73757ec7bf7..e47d6c18c6e 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -69,7 +69,7 @@ "delay": "^4.3.0", "eslint": "^6.0.0", "eslint-config-prettier": "^6.0.0", - "eslint-plugin-node": "^10.0.0", + "eslint-plugin-node": "^11.0.0", "eslint-plugin-prettier": "^3.1.0", "express": "^4.17.1", "gts": "^1.0.0", From cc66609462bdc71196d1e2c189e05373ecb9545e Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Mon, 30 Dec 2019 11:15:31 -0800 Subject: [PATCH 306/527] refactor: use explicit mocha imports (#425) --- handwritten/error-reporting/system-test/.eslintrc.yml | 2 -- handwritten/error-reporting/system-test/error-reporting.ts | 1 + handwritten/error-reporting/test/.eslintrc.yml | 2 -- handwritten/error-reporting/test/unit/build-stack-trace.ts | 1 + handwritten/error-reporting/test/unit/classes/error-message.ts | 1 + .../test/unit/classes/request-information-container.ts | 1 + handwritten/error-reporting/test/unit/configuration.ts | 1 + handwritten/error-reporting/test/unit/interfaces/express.ts | 1 + handwritten/error-reporting/test/unit/interfaces/hapi.ts | 1 + handwritten/error-reporting/test/unit/interfaces/manual.ts | 1 + handwritten/error-reporting/test/unit/interfaces/restify.ts | 1 + handwritten/error-reporting/test/unit/logger.ts | 1 + handwritten/error-reporting/test/unit/populate-error-message.ts | 1 + handwritten/error-reporting/test/unit/service-configuration.ts | 1 + handwritten/error-reporting/test/util.ts | 1 + 15 files changed, 13 insertions(+), 4 deletions(-) diff --git a/handwritten/error-reporting/system-test/.eslintrc.yml b/handwritten/error-reporting/system-test/.eslintrc.yml index 2e6882e46d2..5adab99ca15 100644 --- a/handwritten/error-reporting/system-test/.eslintrc.yml +++ b/handwritten/error-reporting/system-test/.eslintrc.yml @@ -1,6 +1,4 @@ --- -env: - mocha: true rules: node/no-unpublished-require: off no-console: off diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index cee7b0e6173..e119bf42469 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -13,6 +13,7 @@ // limitations under the License. import * as assert from 'assert'; +import {describe, it} from 'mocha'; import delay from 'delay'; import * as is from 'is'; import * as nock from 'nock'; diff --git a/handwritten/error-reporting/test/.eslintrc.yml b/handwritten/error-reporting/test/.eslintrc.yml index 73f7bbc946f..cd088a97818 100644 --- a/handwritten/error-reporting/test/.eslintrc.yml +++ b/handwritten/error-reporting/test/.eslintrc.yml @@ -1,5 +1,3 @@ --- -env: - mocha: true rules: node/no-unpublished-require: off diff --git a/handwritten/error-reporting/test/unit/build-stack-trace.ts b/handwritten/error-reporting/test/unit/build-stack-trace.ts index 2fa677d90ac..da9aaeecd9b 100644 --- a/handwritten/error-reporting/test/unit/build-stack-trace.ts +++ b/handwritten/error-reporting/test/unit/build-stack-trace.ts @@ -13,6 +13,7 @@ // limitations under the License. import * as assert from 'assert'; +import {describe, it} from 'mocha'; import * as path from 'path'; import {buildStackTrace} from '../../src/build-stack-trace'; diff --git a/handwritten/error-reporting/test/unit/classes/error-message.ts b/handwritten/error-reporting/test/unit/classes/error-message.ts index b1f4e72bd65..0f798547ceb 100644 --- a/handwritten/error-reporting/test/unit/classes/error-message.ts +++ b/handwritten/error-reporting/test/unit/classes/error-message.ts @@ -13,6 +13,7 @@ // limitations under the License. import * as assert from 'assert'; +import {describe, it} from 'mocha'; import {ErrorMessage} from '../../../src/classes/error-message'; import {RequestInformationContainer} from '../../../src/classes/request-information-container'; import {deepStrictEqual} from '../../util'; diff --git a/handwritten/error-reporting/test/unit/classes/request-information-container.ts b/handwritten/error-reporting/test/unit/classes/request-information-container.ts index 30767e5fe57..3a4e791a0d0 100644 --- a/handwritten/error-reporting/test/unit/classes/request-information-container.ts +++ b/handwritten/error-reporting/test/unit/classes/request-information-container.ts @@ -13,6 +13,7 @@ // limitations under the License. import * as assert from 'assert'; +import {describe, it} from 'mocha'; import {RequestInformationContainer} from '../../../src/classes/request-information-container'; import {Fuzzer} from '../../../utils/fuzzer'; import {deepStrictEqual} from '../../util'; diff --git a/handwritten/error-reporting/test/unit/configuration.ts b/handwritten/error-reporting/test/unit/configuration.ts index 791b00df53f..27bf6486cc2 100644 --- a/handwritten/error-reporting/test/unit/configuration.ts +++ b/handwritten/error-reporting/test/unit/configuration.ts @@ -13,6 +13,7 @@ // limitations under the License. import * as assert from 'assert'; +import {describe, it} from 'mocha'; import * as is from 'is'; import merge = require('lodash.merge'); import {FakeConfiguration as Configuration} from '../fixtures/configuration'; diff --git a/handwritten/error-reporting/test/unit/interfaces/express.ts b/handwritten/error-reporting/test/unit/interfaces/express.ts index e5145f438fb..e472cf0649c 100644 --- a/handwritten/error-reporting/test/unit/interfaces/express.ts +++ b/handwritten/error-reporting/test/unit/interfaces/express.ts @@ -13,6 +13,7 @@ // limitations under the License. import * as assert from 'assert'; +import {describe, it} from 'mocha'; import merge = require('lodash.merge'); import {ErrorMessage} from '../../../src/classes/error-message'; diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.ts b/handwritten/error-reporting/test/unit/interfaces/hapi.ts index 96b6a9187fe..405b0a92de9 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.ts +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.ts @@ -15,6 +15,7 @@ import * as is from 'is'; import has = require('lodash.has'); import * as assert from 'assert'; +import {describe, it} from 'mocha'; import {makeHapiPlugin as hapiInterface} from '../../../src/interfaces/hapi'; import {ErrorMessage} from '../../../src/classes/error-message'; import {Fuzzer} from '../../../utils/fuzzer'; diff --git a/handwritten/error-reporting/test/unit/interfaces/manual.ts b/handwritten/error-reporting/test/unit/interfaces/manual.ts index 7f4a2d4e360..93c4fb7d09b 100644 --- a/handwritten/error-reporting/test/unit/interfaces/manual.ts +++ b/handwritten/error-reporting/test/unit/interfaces/manual.ts @@ -13,6 +13,7 @@ // limitations under the License. import * as assert from 'assert'; +import {describe, it} from 'mocha'; import {Logger} from '../../../src/configuration'; import * as manual from '../../../src/interfaces/manual'; diff --git a/handwritten/error-reporting/test/unit/interfaces/restify.ts b/handwritten/error-reporting/test/unit/interfaces/restify.ts index 008f81f8860..24c8d11c914 100644 --- a/handwritten/error-reporting/test/unit/interfaces/restify.ts +++ b/handwritten/error-reporting/test/unit/interfaces/restify.ts @@ -13,6 +13,7 @@ // limitations under the License. import * as assert from 'assert'; +import {describe, it} from 'mocha'; import {EventEmitter} from 'events'; import * as restify from 'restify'; diff --git a/handwritten/error-reporting/test/unit/logger.ts b/handwritten/error-reporting/test/unit/logger.ts index b978b45934f..fd12c7eb1ca 100644 --- a/handwritten/error-reporting/test/unit/logger.ts +++ b/handwritten/error-reporting/test/unit/logger.ts @@ -13,6 +13,7 @@ // limitations under the License. import * as assert from 'assert'; +import {describe, it} from 'mocha'; import {createLogger} from '../../src/logger'; describe('logger', () => { diff --git a/handwritten/error-reporting/test/unit/populate-error-message.ts b/handwritten/error-reporting/test/unit/populate-error-message.ts index 13d8c0c5bf8..00544704d99 100644 --- a/handwritten/error-reporting/test/unit/populate-error-message.ts +++ b/handwritten/error-reporting/test/unit/populate-error-message.ts @@ -13,6 +13,7 @@ // limitations under the License. import * as assert from 'assert'; +import {describe, it} from 'mocha'; import {ErrorMessage} from '../../src/classes/error-message'; import {populateErrorMessage} from '../../src/populate-error-message'; diff --git a/handwritten/error-reporting/test/unit/service-configuration.ts b/handwritten/error-reporting/test/unit/service-configuration.ts index 6d9aec90a78..23c3bb77a60 100644 --- a/handwritten/error-reporting/test/unit/service-configuration.ts +++ b/handwritten/error-reporting/test/unit/service-configuration.ts @@ -13,6 +13,7 @@ // limitations under the License. import * as assert from 'assert'; +import {describe, it} from 'mocha'; import * as is from 'is'; import omitBy = require('lodash.omitby'); import {FakeConfiguration as Configuration} from '../fixtures/configuration'; diff --git a/handwritten/error-reporting/test/util.ts b/handwritten/error-reporting/test/util.ts index 43887717053..04e8fafffa1 100644 --- a/handwritten/error-reporting/test/util.ts +++ b/handwritten/error-reporting/test/util.ts @@ -13,6 +13,7 @@ // limitations under the License. import * as assert from 'assert'; +import {describe, it} from 'mocha'; import * as stringify from 'json-stable-stringify'; export type Anything = {} | undefined | null; From 62ac601fe5b26dd6318b2caa71b21645291dde6f Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 2 Jan 2020 10:41:47 -0800 Subject: [PATCH 307/527] [CHANGE ME] Re-generated to pick up changes in the API or client library generator. (#422) Co-authored-by: Benjamin E. Coe --- handwritten/error-reporting/synth.metadata | 430 ++++++++++++++++++++- 1 file changed, 429 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 8f6e7544cd3..a9af1d607b8 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -1,5 +1,5 @@ { - "updateTime": "2019-10-30T22:17:49.804850Z", + "updateTime": "2019-12-21T12:17:08.343780Z", "sources": [ { "template": { @@ -8,5 +8,433 @@ "version": "2019.10.17" } } + ], + "newFiles": [ + { + "path": ".repo-metadata.json" + }, + { + "path": ".readme-partials.yaml" + }, + { + "path": "README.md" + }, + { + "path": "package.json" + }, + { + "path": "CHANGELOG.md" + }, + { + "path": ".gitignore" + }, + { + "path": "CODE_OF_CONDUCT.md" + }, + { + "path": "CONTRIBUTING.md" + }, + { + "path": ".prettierrc" + }, + { + "path": ".eslintignore" + }, + { + "path": "linkinator.config.json" + }, + { + "path": ".eslintrc.yml" + }, + { + "path": "renovate.json" + }, + { + "path": "synth.metadata" + }, + { + "path": ".compodocrc" + }, + { + "path": ".prettierignore" + }, + { + "path": "synth.py" + }, + { + "path": "codecov.yaml" + }, + { + "path": ".jsdoc.js" + }, + { + "path": "LICENSE" + }, + { + "path": ".nycrc" + }, + { + "path": "tsconfig.json" + }, + { + "path": "src/build-stack-trace.ts" + }, + { + "path": "src/index.ts" + }, + { + "path": "src/logger.ts" + }, + { + "path": "src/populate-error-message.ts" + }, + { + "path": "src/configuration.ts" + }, + { + "path": "src/classes/error-message.ts" + }, + { + "path": "src/classes/request-information-container.ts" + }, + { + "path": "src/interfaces/restify.ts" + }, + { + "path": "src/interfaces/koa.ts" + }, + { + "path": "src/interfaces/manual.ts" + }, + { + "path": "src/interfaces/express.ts" + }, + { + "path": "src/interfaces/hapi.ts" + }, + { + "path": "src/interfaces/koa2.ts" + }, + { + "path": "src/interfaces/message-builder.ts" + }, + { + "path": "src/request-extractors/koa.ts" + }, + { + "path": "src/request-extractors/manual.ts" + }, + { + "path": "src/request-extractors/express.ts" + }, + { + "path": "src/request-extractors/hapi.ts" + }, + { + "path": "src/google-apis/auth-client.ts" + }, + { + "path": "__pycache__/synth.cpython-36.pyc" + }, + { + "path": "samples/README.md" + }, + { + "path": "samples/package.json" + }, + { + "path": "samples/explicitSetup.js" + }, + { + "path": "samples/implicitSetup.js" + }, + { + "path": "samples/.eslintrc.yml" + }, + { + "path": "samples/manual.js" + }, + { + "path": "samples/quickstart.js" + }, + { + "path": "samples/express.js" + }, + { + "path": "samples/test/snippets.test.js" + }, + { + "path": "samples/test/.eslintrc.yml" + }, + { + "path": "doc/images/errors-overview.png" + }, + { + "path": ".github/PULL_REQUEST_TEMPLATE.md" + }, + { + "path": ".github/release-please.yml" + }, + { + "path": ".github/ISSUE_TEMPLATE/support_request.md" + }, + { + "path": ".github/ISSUE_TEMPLATE/feature_request.md" + }, + { + "path": ".github/ISSUE_TEMPLATE/bug_report.md" + }, + { + "path": "utils/fuzzer.ts" + }, + { + "path": "utils/errors-api-transport.ts" + }, + { + "path": ".kokoro/pre-system-test.sh" + }, + { + "path": ".kokoro/test.sh" + }, + { + "path": ".kokoro/docs.sh" + }, + { + "path": ".kokoro/samples-test.sh" + }, + { + "path": ".kokoro/.gitattributes" + }, + { + "path": ".kokoro/trampoline.sh" + }, + { + "path": ".kokoro/lint.sh" + }, + { + "path": ".kokoro/publish.sh" + }, + { + "path": ".kokoro/test.bat" + }, + { + "path": ".kokoro/common.cfg" + }, + { + "path": ".kokoro/system-test.sh" + }, + { + "path": ".kokoro/release/docs.cfg" + }, + { + "path": ".kokoro/release/docs.sh" + }, + { + "path": ".kokoro/release/publish.cfg" + }, + { + "path": ".kokoro/release/common.cfg" + }, + { + "path": ".kokoro/continuous/node10/lint.cfg" + }, + { + "path": ".kokoro/continuous/node10/docs.cfg" + }, + { + "path": ".kokoro/continuous/node10/test.cfg" + }, + { + "path": ".kokoro/continuous/node10/system-test.cfg" + }, + { + "path": ".kokoro/continuous/node10/samples-test.cfg" + }, + { + "path": ".kokoro/continuous/node10/common.cfg" + }, + { + "path": ".kokoro/continuous/node8/test.cfg" + }, + { + "path": ".kokoro/continuous/node8/common.cfg" + }, + { + "path": ".kokoro/continuous/node12/test.cfg" + }, + { + "path": ".kokoro/continuous/node12/common.cfg" + }, + { + "path": ".kokoro/presubmit/node10/lint.cfg" + }, + { + "path": ".kokoro/presubmit/node10/docs.cfg" + }, + { + "path": ".kokoro/presubmit/node10/test.cfg" + }, + { + "path": ".kokoro/presubmit/node10/system-test.cfg" + }, + { + "path": ".kokoro/presubmit/node10/samples-test.cfg" + }, + { + "path": ".kokoro/presubmit/node10/common.cfg" + }, + { + "path": ".kokoro/presubmit/node8/test.cfg" + }, + { + "path": ".kokoro/presubmit/node8/common.cfg" + }, + { + "path": ".kokoro/presubmit/node12/test.cfg" + }, + { + "path": ".kokoro/presubmit/node12/common.cfg" + }, + { + "path": ".kokoro/presubmit/windows/test.cfg" + }, + { + "path": ".kokoro/presubmit/windows/common.cfg" + }, + { + "path": ".git/packed-refs" + }, + { + "path": ".git/HEAD" + }, + { + "path": ".git/config" + }, + { + "path": ".git/index" + }, + { + "path": ".git/shallow" + }, + { + "path": ".git/logs/HEAD" + }, + { + "path": ".git/logs/refs/remotes/origin/HEAD" + }, + { + "path": ".git/logs/refs/heads/autosynth" + }, + { + "path": ".git/logs/refs/heads/master" + }, + { + "path": ".git/refs/tags/v1.1.3" + }, + { + "path": ".git/refs/remotes/origin/HEAD" + }, + { + "path": ".git/refs/heads/autosynth" + }, + { + "path": ".git/refs/heads/master" + }, + { + "path": ".git/objects/pack/pack-ff441abdcb3eb9efae52378e730d682011485f71.idx" + }, + { + "path": ".git/objects/pack/pack-ff441abdcb3eb9efae52378e730d682011485f71.pack" + }, + { + "path": "test/util.ts" + }, + { + "path": "test/.eslintrc.yml" + }, + { + "path": "test/mocha.opts" + }, + { + "path": "test/fixtures/gcloud-credentials.json" + }, + { + "path": "test/fixtures/configuration.ts" + }, + { + "path": "test/test-servers/koa_scaffold_server.ts" + }, + { + "path": "test/test-servers/koa2_scaffold_server.ts" + }, + { + "path": "test/test-servers/express_scaffold_server.ts" + }, + { + "path": "test/test-servers/restify_scaffold_server.ts" + }, + { + "path": "test/test-servers/manual_scaffold_server.ts" + }, + { + "path": "test/test-servers/hapi_scaffold_server.ts" + }, + { + "path": "test/unit/build-stack-trace.ts" + }, + { + "path": "test/unit/service-configuration.ts" + }, + { + "path": "test/unit/logger.ts" + }, + { + "path": "test/unit/populate-error-message.ts" + }, + { + "path": "test/unit/configuration.ts" + }, + { + "path": "test/unit/classes/error-message.ts" + }, + { + "path": "test/unit/classes/request-information-container.ts" + }, + { + "path": "test/unit/interfaces/restify.ts" + }, + { + "path": "test/unit/interfaces/manual.ts" + }, + { + "path": "test/unit/interfaces/express.ts" + }, + { + "path": "test/unit/interfaces/hapi.ts" + }, + { + "path": "test/unit/request-extractors/koa.ts" + }, + { + "path": "test/unit/request-extractors/manual.ts" + }, + { + "path": "test/unit/request-extractors/express.ts" + }, + { + "path": "test/unit/request-extractors/hapi.ts" + }, + { + "path": "test/unit/google-apis/auth-client.ts" + }, + { + "path": "system-test/error-reporting.ts" + }, + { + "path": "system-test/.eslintrc.yml" + }, + { + "path": "system-test/test-install.ts" + } ] } \ No newline at end of file From ed910ea70911b7ef003cdfab477f53a95b9c7310 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 2 Jan 2020 23:51:06 +0200 Subject: [PATCH 308/527] deps: update c8 dependency --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index e47d6c18c6e..b8c426eaf56 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -63,7 +63,7 @@ "@types/uuid": "^3.4.4", "body-parser": "^1.19.0", "boom": "^7.3.0", - "c8": "^6.0.0", + "c8": "^7.0.0", "codecov": "^3.5.0", "cpy-cli": "^2.0.0", "delay": "^4.3.0", From a9fc41741dbb33ba4c7aa71d8481683978fd0e6f Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 3 Jan 2020 18:42:43 -0800 Subject: [PATCH 309/527] chore: update .nycrc --- handwritten/error-reporting/.nycrc | 1 + handwritten/error-reporting/synth.metadata | 278 ++++++++++----------- 2 files changed, 137 insertions(+), 142 deletions(-) diff --git a/handwritten/error-reporting/.nycrc b/handwritten/error-reporting/.nycrc index 367688844eb..b18d5472b62 100644 --- a/handwritten/error-reporting/.nycrc +++ b/handwritten/error-reporting/.nycrc @@ -12,6 +12,7 @@ "**/scripts", "**/protos", "**/test", + "**/*.d.ts", ".jsdoc.js", "**/.jsdoc.js", "karma.conf.js", diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index a9af1d607b8..da3a76882e2 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -1,5 +1,5 @@ { - "updateTime": "2019-12-21T12:17:08.343780Z", + "updateTime": "2020-01-03T12:13:23.923496Z", "sources": [ { "template": { @@ -11,430 +11,424 @@ ], "newFiles": [ { - "path": ".repo-metadata.json" + "path": ".readme-partials.yaml" }, { - "path": ".readme-partials.yaml" + "path": "synth.metadata" }, { - "path": "README.md" + "path": ".repo-metadata.json" }, { - "path": "package.json" + "path": "CONTRIBUTING.md" }, { - "path": "CHANGELOG.md" + "path": "linkinator.config.json" }, { - "path": ".gitignore" + "path": ".compodocrc" }, { - "path": "CODE_OF_CONDUCT.md" + "path": ".prettierignore" }, { - "path": "CONTRIBUTING.md" + "path": "tsconfig.json" }, { - "path": ".prettierrc" + "path": ".jsdoc.js" }, { - "path": ".eslintignore" + "path": ".gitignore" }, { - "path": "linkinator.config.json" + "path": "synth.py" }, { - "path": ".eslintrc.yml" + "path": "CODE_OF_CONDUCT.md" }, { - "path": "renovate.json" + "path": "README.md" }, { - "path": "synth.metadata" + "path": ".prettierrc" }, { - "path": ".compodocrc" + "path": "codecov.yaml" }, { - "path": ".prettierignore" + "path": ".nycrc" }, { - "path": "synth.py" + "path": "package.json" }, { - "path": "codecov.yaml" + "path": ".eslintrc.yml" }, { - "path": ".jsdoc.js" + "path": "renovate.json" }, { "path": "LICENSE" }, { - "path": ".nycrc" + "path": "CHANGELOG.md" }, { - "path": "tsconfig.json" + "path": ".eslintignore" }, { - "path": "src/build-stack-trace.ts" + "path": ".github/PULL_REQUEST_TEMPLATE.md" }, { - "path": "src/index.ts" + "path": ".github/release-please.yml" }, { - "path": "src/logger.ts" + "path": ".github/ISSUE_TEMPLATE/support_request.md" }, { - "path": "src/populate-error-message.ts" + "path": ".github/ISSUE_TEMPLATE/bug_report.md" }, { - "path": "src/configuration.ts" + "path": ".github/ISSUE_TEMPLATE/feature_request.md" }, { - "path": "src/classes/error-message.ts" + "path": ".kokoro/samples-test.sh" }, { - "path": "src/classes/request-information-container.ts" + "path": ".kokoro/system-test.sh" }, { - "path": "src/interfaces/restify.ts" + "path": ".kokoro/docs.sh" }, { - "path": "src/interfaces/koa.ts" + "path": ".kokoro/lint.sh" }, { - "path": "src/interfaces/manual.ts" + "path": ".kokoro/pre-system-test.sh" }, { - "path": "src/interfaces/express.ts" + "path": ".kokoro/.gitattributes" }, { - "path": "src/interfaces/hapi.ts" + "path": ".kokoro/publish.sh" }, { - "path": "src/interfaces/koa2.ts" + "path": ".kokoro/trampoline.sh" }, { - "path": "src/interfaces/message-builder.ts" + "path": ".kokoro/common.cfg" }, { - "path": "src/request-extractors/koa.ts" + "path": ".kokoro/test.bat" }, { - "path": "src/request-extractors/manual.ts" + "path": ".kokoro/test.sh" }, { - "path": "src/request-extractors/express.ts" + "path": ".kokoro/release/docs.sh" }, { - "path": "src/request-extractors/hapi.ts" + "path": ".kokoro/release/docs.cfg" }, { - "path": "src/google-apis/auth-client.ts" + "path": ".kokoro/release/common.cfg" }, { - "path": "__pycache__/synth.cpython-36.pyc" + "path": ".kokoro/release/publish.cfg" }, { - "path": "samples/README.md" + "path": ".kokoro/presubmit/node12/test.cfg" }, { - "path": "samples/package.json" + "path": ".kokoro/presubmit/node12/common.cfg" }, { - "path": "samples/explicitSetup.js" + "path": ".kokoro/presubmit/node8/test.cfg" }, { - "path": "samples/implicitSetup.js" + "path": ".kokoro/presubmit/node8/common.cfg" }, { - "path": "samples/.eslintrc.yml" + "path": ".kokoro/presubmit/windows/test.cfg" }, { - "path": "samples/manual.js" + "path": ".kokoro/presubmit/windows/common.cfg" }, { - "path": "samples/quickstart.js" + "path": ".kokoro/presubmit/node10/lint.cfg" }, { - "path": "samples/express.js" + "path": ".kokoro/presubmit/node10/system-test.cfg" }, { - "path": "samples/test/snippets.test.js" + "path": ".kokoro/presubmit/node10/test.cfg" }, { - "path": "samples/test/.eslintrc.yml" + "path": ".kokoro/presubmit/node10/docs.cfg" }, { - "path": "doc/images/errors-overview.png" + "path": ".kokoro/presubmit/node10/common.cfg" }, { - "path": ".github/PULL_REQUEST_TEMPLATE.md" + "path": ".kokoro/presubmit/node10/samples-test.cfg" }, { - "path": ".github/release-please.yml" + "path": ".kokoro/continuous/node12/test.cfg" }, { - "path": ".github/ISSUE_TEMPLATE/support_request.md" + "path": ".kokoro/continuous/node12/common.cfg" }, { - "path": ".github/ISSUE_TEMPLATE/feature_request.md" + "path": ".kokoro/continuous/node8/test.cfg" }, { - "path": ".github/ISSUE_TEMPLATE/bug_report.md" + "path": ".kokoro/continuous/node8/common.cfg" }, { - "path": "utils/fuzzer.ts" + "path": ".kokoro/continuous/node10/lint.cfg" }, { - "path": "utils/errors-api-transport.ts" + "path": ".kokoro/continuous/node10/system-test.cfg" }, { - "path": ".kokoro/pre-system-test.sh" + "path": ".kokoro/continuous/node10/test.cfg" }, { - "path": ".kokoro/test.sh" + "path": ".kokoro/continuous/node10/docs.cfg" }, { - "path": ".kokoro/docs.sh" + "path": ".kokoro/continuous/node10/common.cfg" }, { - "path": ".kokoro/samples-test.sh" + "path": ".kokoro/continuous/node10/samples-test.cfg" }, { - "path": ".kokoro/.gitattributes" + "path": "test/util.ts" }, { - "path": ".kokoro/trampoline.sh" + "path": "test/mocha.opts" }, { - "path": ".kokoro/lint.sh" + "path": "test/.eslintrc.yml" }, { - "path": ".kokoro/publish.sh" + "path": "test/unit/service-configuration.ts" }, { - "path": ".kokoro/test.bat" + "path": "test/unit/logger.ts" }, { - "path": ".kokoro/common.cfg" + "path": "test/unit/build-stack-trace.ts" }, { - "path": ".kokoro/system-test.sh" + "path": "test/unit/configuration.ts" }, { - "path": ".kokoro/release/docs.cfg" + "path": "test/unit/populate-error-message.ts" }, { - "path": ".kokoro/release/docs.sh" + "path": "test/unit/request-extractors/hapi.ts" }, { - "path": ".kokoro/release/publish.cfg" + "path": "test/unit/request-extractors/koa.ts" }, { - "path": ".kokoro/release/common.cfg" + "path": "test/unit/request-extractors/express.ts" }, { - "path": ".kokoro/continuous/node10/lint.cfg" + "path": "test/unit/request-extractors/manual.ts" }, { - "path": ".kokoro/continuous/node10/docs.cfg" + "path": "test/unit/classes/error-message.ts" }, { - "path": ".kokoro/continuous/node10/test.cfg" + "path": "test/unit/classes/request-information-container.ts" }, { - "path": ".kokoro/continuous/node10/system-test.cfg" + "path": "test/unit/interfaces/hapi.ts" }, { - "path": ".kokoro/continuous/node10/samples-test.cfg" + "path": "test/unit/interfaces/restify.ts" }, { - "path": ".kokoro/continuous/node10/common.cfg" + "path": "test/unit/interfaces/express.ts" }, { - "path": ".kokoro/continuous/node8/test.cfg" + "path": "test/unit/interfaces/manual.ts" }, { - "path": ".kokoro/continuous/node8/common.cfg" + "path": "test/unit/google-apis/auth-client.ts" }, { - "path": ".kokoro/continuous/node12/test.cfg" + "path": "test/fixtures/gcloud-credentials.json" }, { - "path": ".kokoro/continuous/node12/common.cfg" + "path": "test/fixtures/configuration.ts" }, { - "path": ".kokoro/presubmit/node10/lint.cfg" + "path": "test/test-servers/koa2_scaffold_server.ts" }, { - "path": ".kokoro/presubmit/node10/docs.cfg" + "path": "test/test-servers/express_scaffold_server.ts" }, { - "path": ".kokoro/presubmit/node10/test.cfg" + "path": "test/test-servers/hapi_scaffold_server.ts" }, { - "path": ".kokoro/presubmit/node10/system-test.cfg" + "path": "test/test-servers/restify_scaffold_server.ts" }, { - "path": ".kokoro/presubmit/node10/samples-test.cfg" + "path": "test/test-servers/koa_scaffold_server.ts" }, { - "path": ".kokoro/presubmit/node10/common.cfg" + "path": "test/test-servers/manual_scaffold_server.ts" }, { - "path": ".kokoro/presubmit/node8/test.cfg" + "path": "system-test/error-reporting.ts" }, { - "path": ".kokoro/presubmit/node8/common.cfg" + "path": "system-test/test-install.ts" }, { - "path": ".kokoro/presubmit/node12/test.cfg" + "path": "system-test/.eslintrc.yml" }, { - "path": ".kokoro/presubmit/node12/common.cfg" + "path": ".git/shallow" }, { - "path": ".kokoro/presubmit/windows/test.cfg" + "path": ".git/HEAD" }, { - "path": ".kokoro/presubmit/windows/common.cfg" + "path": ".git/config" }, { "path": ".git/packed-refs" }, { - "path": ".git/HEAD" - }, - { - "path": ".git/config" + "path": ".git/index" }, { - "path": ".git/index" + "path": ".git/objects/pack/pack-df74cfb77b192dd48a6182e6e7bfe70228a57509.idx" }, { - "path": ".git/shallow" + "path": ".git/objects/pack/pack-df74cfb77b192dd48a6182e6e7bfe70228a57509.pack" }, { "path": ".git/logs/HEAD" }, { - "path": ".git/logs/refs/remotes/origin/HEAD" + "path": ".git/logs/refs/heads/master" }, { "path": ".git/logs/refs/heads/autosynth" }, { - "path": ".git/logs/refs/heads/master" - }, - { - "path": ".git/refs/tags/v1.1.3" + "path": ".git/logs/refs/remotes/origin/HEAD" }, { - "path": ".git/refs/remotes/origin/HEAD" + "path": ".git/refs/heads/master" }, { "path": ".git/refs/heads/autosynth" }, { - "path": ".git/refs/heads/master" + "path": ".git/refs/remotes/origin/HEAD" }, { - "path": ".git/objects/pack/pack-ff441abdcb3eb9efae52378e730d682011485f71.idx" + "path": "src/logger.ts" }, { - "path": ".git/objects/pack/pack-ff441abdcb3eb9efae52378e730d682011485f71.pack" + "path": "src/index.ts" }, { - "path": "test/util.ts" + "path": "src/build-stack-trace.ts" }, { - "path": "test/.eslintrc.yml" + "path": "src/configuration.ts" }, { - "path": "test/mocha.opts" + "path": "src/populate-error-message.ts" }, { - "path": "test/fixtures/gcloud-credentials.json" + "path": "src/request-extractors/hapi.ts" }, { - "path": "test/fixtures/configuration.ts" + "path": "src/request-extractors/koa.ts" }, { - "path": "test/test-servers/koa_scaffold_server.ts" + "path": "src/request-extractors/express.ts" }, { - "path": "test/test-servers/koa2_scaffold_server.ts" + "path": "src/request-extractors/manual.ts" }, { - "path": "test/test-servers/express_scaffold_server.ts" + "path": "src/classes/error-message.ts" }, { - "path": "test/test-servers/restify_scaffold_server.ts" + "path": "src/classes/request-information-container.ts" }, { - "path": "test/test-servers/manual_scaffold_server.ts" + "path": "src/interfaces/hapi.ts" }, { - "path": "test/test-servers/hapi_scaffold_server.ts" + "path": "src/interfaces/koa.ts" }, { - "path": "test/unit/build-stack-trace.ts" + "path": "src/interfaces/restify.ts" }, { - "path": "test/unit/service-configuration.ts" + "path": "src/interfaces/koa2.ts" }, { - "path": "test/unit/logger.ts" + "path": "src/interfaces/express.ts" }, { - "path": "test/unit/populate-error-message.ts" + "path": "src/interfaces/message-builder.ts" }, { - "path": "test/unit/configuration.ts" + "path": "src/interfaces/manual.ts" }, { - "path": "test/unit/classes/error-message.ts" + "path": "src/google-apis/auth-client.ts" }, { - "path": "test/unit/classes/request-information-container.ts" + "path": "samples/manual.js" }, { - "path": "test/unit/interfaces/restify.ts" + "path": "samples/README.md" }, { - "path": "test/unit/interfaces/manual.ts" + "path": "samples/implicitSetup.js" }, { - "path": "test/unit/interfaces/express.ts" + "path": "samples/explicitSetup.js" }, { - "path": "test/unit/interfaces/hapi.ts" + "path": "samples/package.json" }, { - "path": "test/unit/request-extractors/koa.ts" + "path": "samples/express.js" }, { - "path": "test/unit/request-extractors/manual.ts" + "path": "samples/quickstart.js" }, { - "path": "test/unit/request-extractors/express.ts" + "path": "samples/.eslintrc.yml" }, { - "path": "test/unit/request-extractors/hapi.ts" + "path": "samples/test/snippets.test.js" }, { - "path": "test/unit/google-apis/auth-client.ts" + "path": "utils/errors-api-transport.ts" }, { - "path": "system-test/error-reporting.ts" + "path": "utils/fuzzer.ts" }, { - "path": "system-test/.eslintrc.yml" + "path": "__pycache__/synth.cpython-36.pyc" }, { - "path": "system-test/test-install.ts" + "path": "doc/images/errors-overview.png" } ] } \ No newline at end of file From 8502b96f533c14e77f06956cc9801c2dfd46d128 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 6 Jan 2020 18:50:07 +0200 Subject: [PATCH 310/527] chore(deps): update dependency mocha to v7 (#428) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index b8c426eaf56..766502b5fbc 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -86,7 +86,7 @@ "lodash.pick": "^4.4.0", "lodash.random": "^3.2.0", "lodash.without": "^4.4.0", - "mocha": "^6.1.4", + "mocha": "^7.0.0", "nock": "^11.3.2", "post-install-check": "0.0.1", "power-assert": "^1.6.1", From b6373c1bfdbaa52f1f4c6495679145963bdaf2bf Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Tue, 21 Jan 2020 15:40:09 -0800 Subject: [PATCH 311/527] build: update windows configuration to match new vm --- handwritten/error-reporting/.kokoro/test.bat | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/handwritten/error-reporting/.kokoro/test.bat b/handwritten/error-reporting/.kokoro/test.bat index fddff757050..ae59e59be3e 100644 --- a/handwritten/error-reporting/.kokoro/test.bat +++ b/handwritten/error-reporting/.kokoro/test.bat @@ -17,14 +17,12 @@ cd /d %~dp0 cd .. -@rem The image we're currently running has a broken version of Node.js enabled -@rem by nvm (v10.15.3), which has no npm bin. This hack uses the functional -@rem Node v8.9.1 to install npm@latest, it then uses this version of npm to -@rem install npm for v10.15.3. -call nvm use v8.9.1 || goto :error -call node C:\Users\kbuilder\AppData\Roaming\nvm-ps\versions\v8.9.1\node_modules\npm-bootstrap\bin\npm-cli.js i npm -g || goto :error -call nvm use v10.15.3 || goto :error -call node C:\Users\kbuilder\AppData\Roaming\nvm-ps\versions\v8.9.1\node_modules\npm\bin\npm-cli.js i npm -g || goto :error +@rem npm path is not currently set in our image, we should fix this next time +@rem we upgrade Node.js in the image: +SET PATH=%PATH%;/cygdrive/c/Program Files/nodejs/npm + +call nvm use v12.14.1 +call which node call npm install || goto :error call npm run test || goto :error From 58b19e41e2be1b5e05999101ca024247c6a9b033 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Thu, 23 Jan 2020 16:25:09 -0800 Subject: [PATCH 312/527] chore: clear synth.metadata --- handwritten/error-reporting/synth.metadata | 434 --------------------- 1 file changed, 434 deletions(-) delete mode 100644 handwritten/error-reporting/synth.metadata diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata deleted file mode 100644 index da3a76882e2..00000000000 --- a/handwritten/error-reporting/synth.metadata +++ /dev/null @@ -1,434 +0,0 @@ -{ - "updateTime": "2020-01-03T12:13:23.923496Z", - "sources": [ - { - "template": { - "name": "node_library", - "origin": "synthtool.gcp", - "version": "2019.10.17" - } - } - ], - "newFiles": [ - { - "path": ".readme-partials.yaml" - }, - { - "path": "synth.metadata" - }, - { - "path": ".repo-metadata.json" - }, - { - "path": "CONTRIBUTING.md" - }, - { - "path": "linkinator.config.json" - }, - { - "path": ".compodocrc" - }, - { - "path": ".prettierignore" - }, - { - "path": "tsconfig.json" - }, - { - "path": ".jsdoc.js" - }, - { - "path": ".gitignore" - }, - { - "path": "synth.py" - }, - { - "path": "CODE_OF_CONDUCT.md" - }, - { - "path": "README.md" - }, - { - "path": ".prettierrc" - }, - { - "path": "codecov.yaml" - }, - { - "path": ".nycrc" - }, - { - "path": "package.json" - }, - { - "path": ".eslintrc.yml" - }, - { - "path": "renovate.json" - }, - { - "path": "LICENSE" - }, - { - "path": "CHANGELOG.md" - }, - { - "path": ".eslintignore" - }, - { - "path": ".github/PULL_REQUEST_TEMPLATE.md" - }, - { - "path": ".github/release-please.yml" - }, - { - "path": ".github/ISSUE_TEMPLATE/support_request.md" - }, - { - "path": ".github/ISSUE_TEMPLATE/bug_report.md" - }, - { - "path": ".github/ISSUE_TEMPLATE/feature_request.md" - }, - { - "path": ".kokoro/samples-test.sh" - }, - { - "path": ".kokoro/system-test.sh" - }, - { - "path": ".kokoro/docs.sh" - }, - { - "path": ".kokoro/lint.sh" - }, - { - "path": ".kokoro/pre-system-test.sh" - }, - { - "path": ".kokoro/.gitattributes" - }, - { - "path": ".kokoro/publish.sh" - }, - { - "path": ".kokoro/trampoline.sh" - }, - { - "path": ".kokoro/common.cfg" - }, - { - "path": ".kokoro/test.bat" - }, - { - "path": ".kokoro/test.sh" - }, - { - "path": ".kokoro/release/docs.sh" - }, - { - "path": ".kokoro/release/docs.cfg" - }, - { - "path": ".kokoro/release/common.cfg" - }, - { - "path": ".kokoro/release/publish.cfg" - }, - { - "path": ".kokoro/presubmit/node12/test.cfg" - }, - { - "path": ".kokoro/presubmit/node12/common.cfg" - }, - { - "path": ".kokoro/presubmit/node8/test.cfg" - }, - { - "path": ".kokoro/presubmit/node8/common.cfg" - }, - { - "path": ".kokoro/presubmit/windows/test.cfg" - }, - { - "path": ".kokoro/presubmit/windows/common.cfg" - }, - { - "path": ".kokoro/presubmit/node10/lint.cfg" - }, - { - "path": ".kokoro/presubmit/node10/system-test.cfg" - }, - { - "path": ".kokoro/presubmit/node10/test.cfg" - }, - { - "path": ".kokoro/presubmit/node10/docs.cfg" - }, - { - "path": ".kokoro/presubmit/node10/common.cfg" - }, - { - "path": ".kokoro/presubmit/node10/samples-test.cfg" - }, - { - "path": ".kokoro/continuous/node12/test.cfg" - }, - { - "path": ".kokoro/continuous/node12/common.cfg" - }, - { - "path": ".kokoro/continuous/node8/test.cfg" - }, - { - "path": ".kokoro/continuous/node8/common.cfg" - }, - { - "path": ".kokoro/continuous/node10/lint.cfg" - }, - { - "path": ".kokoro/continuous/node10/system-test.cfg" - }, - { - "path": ".kokoro/continuous/node10/test.cfg" - }, - { - "path": ".kokoro/continuous/node10/docs.cfg" - }, - { - "path": ".kokoro/continuous/node10/common.cfg" - }, - { - "path": ".kokoro/continuous/node10/samples-test.cfg" - }, - { - "path": "test/util.ts" - }, - { - "path": "test/mocha.opts" - }, - { - "path": "test/.eslintrc.yml" - }, - { - "path": "test/unit/service-configuration.ts" - }, - { - "path": "test/unit/logger.ts" - }, - { - "path": "test/unit/build-stack-trace.ts" - }, - { - "path": "test/unit/configuration.ts" - }, - { - "path": "test/unit/populate-error-message.ts" - }, - { - "path": "test/unit/request-extractors/hapi.ts" - }, - { - "path": "test/unit/request-extractors/koa.ts" - }, - { - "path": "test/unit/request-extractors/express.ts" - }, - { - "path": "test/unit/request-extractors/manual.ts" - }, - { - "path": "test/unit/classes/error-message.ts" - }, - { - "path": "test/unit/classes/request-information-container.ts" - }, - { - "path": "test/unit/interfaces/hapi.ts" - }, - { - "path": "test/unit/interfaces/restify.ts" - }, - { - "path": "test/unit/interfaces/express.ts" - }, - { - "path": "test/unit/interfaces/manual.ts" - }, - { - "path": "test/unit/google-apis/auth-client.ts" - }, - { - "path": "test/fixtures/gcloud-credentials.json" - }, - { - "path": "test/fixtures/configuration.ts" - }, - { - "path": "test/test-servers/koa2_scaffold_server.ts" - }, - { - "path": "test/test-servers/express_scaffold_server.ts" - }, - { - "path": "test/test-servers/hapi_scaffold_server.ts" - }, - { - "path": "test/test-servers/restify_scaffold_server.ts" - }, - { - "path": "test/test-servers/koa_scaffold_server.ts" - }, - { - "path": "test/test-servers/manual_scaffold_server.ts" - }, - { - "path": "system-test/error-reporting.ts" - }, - { - "path": "system-test/test-install.ts" - }, - { - "path": "system-test/.eslintrc.yml" - }, - { - "path": ".git/shallow" - }, - { - "path": ".git/HEAD" - }, - { - "path": ".git/config" - }, - { - "path": ".git/packed-refs" - }, - { - "path": ".git/index" - }, - { - "path": ".git/objects/pack/pack-df74cfb77b192dd48a6182e6e7bfe70228a57509.idx" - }, - { - "path": ".git/objects/pack/pack-df74cfb77b192dd48a6182e6e7bfe70228a57509.pack" - }, - { - "path": ".git/logs/HEAD" - }, - { - "path": ".git/logs/refs/heads/master" - }, - { - "path": ".git/logs/refs/heads/autosynth" - }, - { - "path": ".git/logs/refs/remotes/origin/HEAD" - }, - { - "path": ".git/refs/heads/master" - }, - { - "path": ".git/refs/heads/autosynth" - }, - { - "path": ".git/refs/remotes/origin/HEAD" - }, - { - "path": "src/logger.ts" - }, - { - "path": "src/index.ts" - }, - { - "path": "src/build-stack-trace.ts" - }, - { - "path": "src/configuration.ts" - }, - { - "path": "src/populate-error-message.ts" - }, - { - "path": "src/request-extractors/hapi.ts" - }, - { - "path": "src/request-extractors/koa.ts" - }, - { - "path": "src/request-extractors/express.ts" - }, - { - "path": "src/request-extractors/manual.ts" - }, - { - "path": "src/classes/error-message.ts" - }, - { - "path": "src/classes/request-information-container.ts" - }, - { - "path": "src/interfaces/hapi.ts" - }, - { - "path": "src/interfaces/koa.ts" - }, - { - "path": "src/interfaces/restify.ts" - }, - { - "path": "src/interfaces/koa2.ts" - }, - { - "path": "src/interfaces/express.ts" - }, - { - "path": "src/interfaces/message-builder.ts" - }, - { - "path": "src/interfaces/manual.ts" - }, - { - "path": "src/google-apis/auth-client.ts" - }, - { - "path": "samples/manual.js" - }, - { - "path": "samples/README.md" - }, - { - "path": "samples/implicitSetup.js" - }, - { - "path": "samples/explicitSetup.js" - }, - { - "path": "samples/package.json" - }, - { - "path": "samples/express.js" - }, - { - "path": "samples/quickstart.js" - }, - { - "path": "samples/.eslintrc.yml" - }, - { - "path": "samples/test/snippets.test.js" - }, - { - "path": "utils/errors-api-transport.ts" - }, - { - "path": "utils/fuzzer.ts" - }, - { - "path": "__pycache__/synth.cpython-36.pyc" - }, - { - "path": "doc/images/errors-overview.png" - } - ] -} \ No newline at end of file From 2454caa09fadbcfce8dcf37993fc2e2ba9b522e3 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 27 Jan 2020 09:23:42 -0800 Subject: [PATCH 313/527] chore: regenerate synth.metadata (#432) --- handwritten/error-reporting/synth.metadata | 386 +++++++++++++++++++++ 1 file changed, 386 insertions(+) create mode 100644 handwritten/error-reporting/synth.metadata diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata new file mode 100644 index 00000000000..3b550fbe8cc --- /dev/null +++ b/handwritten/error-reporting/synth.metadata @@ -0,0 +1,386 @@ +{ + "updateTime": "2020-01-24T12:18:47.030727Z", + "sources": [ + { + "template": { + "name": "node_library", + "origin": "synthtool.gcp", + "version": "2019.10.17" + } + } + ], + "newFiles": [ + { + "path": ".compodocrc" + }, + { + "path": ".eslintignore" + }, + { + "path": ".eslintrc.yml" + }, + { + "path": ".github/ISSUE_TEMPLATE/bug_report.md" + }, + { + "path": ".github/ISSUE_TEMPLATE/feature_request.md" + }, + { + "path": ".github/ISSUE_TEMPLATE/support_request.md" + }, + { + "path": ".github/PULL_REQUEST_TEMPLATE.md" + }, + { + "path": ".github/release-please.yml" + }, + { + "path": ".gitignore" + }, + { + "path": ".jsdoc.js" + }, + { + "path": ".kokoro/.gitattributes" + }, + { + "path": ".kokoro/common.cfg" + }, + { + "path": ".kokoro/continuous/node10/common.cfg" + }, + { + "path": ".kokoro/continuous/node10/docs.cfg" + }, + { + "path": ".kokoro/continuous/node10/lint.cfg" + }, + { + "path": ".kokoro/continuous/node10/samples-test.cfg" + }, + { + "path": ".kokoro/continuous/node10/system-test.cfg" + }, + { + "path": ".kokoro/continuous/node10/test.cfg" + }, + { + "path": ".kokoro/continuous/node12/common.cfg" + }, + { + "path": ".kokoro/continuous/node12/test.cfg" + }, + { + "path": ".kokoro/continuous/node8/common.cfg" + }, + { + "path": ".kokoro/continuous/node8/test.cfg" + }, + { + "path": ".kokoro/docs.sh" + }, + { + "path": ".kokoro/lint.sh" + }, + { + "path": ".kokoro/pre-system-test.sh" + }, + { + "path": ".kokoro/presubmit/node10/common.cfg" + }, + { + "path": ".kokoro/presubmit/node10/docs.cfg" + }, + { + "path": ".kokoro/presubmit/node10/lint.cfg" + }, + { + "path": ".kokoro/presubmit/node10/samples-test.cfg" + }, + { + "path": ".kokoro/presubmit/node10/system-test.cfg" + }, + { + "path": ".kokoro/presubmit/node10/test.cfg" + }, + { + "path": ".kokoro/presubmit/node12/common.cfg" + }, + { + "path": ".kokoro/presubmit/node12/test.cfg" + }, + { + "path": ".kokoro/presubmit/node8/common.cfg" + }, + { + "path": ".kokoro/presubmit/node8/test.cfg" + }, + { + "path": ".kokoro/presubmit/windows/common.cfg" + }, + { + "path": ".kokoro/presubmit/windows/test.cfg" + }, + { + "path": ".kokoro/publish.sh" + }, + { + "path": ".kokoro/release/common.cfg" + }, + { + "path": ".kokoro/release/docs.cfg" + }, + { + "path": ".kokoro/release/docs.sh" + }, + { + "path": ".kokoro/release/publish.cfg" + }, + { + "path": ".kokoro/samples-test.sh" + }, + { + "path": ".kokoro/system-test.sh" + }, + { + "path": ".kokoro/test.bat" + }, + { + "path": ".kokoro/test.sh" + }, + { + "path": ".kokoro/trampoline.sh" + }, + { + "path": ".nycrc" + }, + { + "path": ".prettierignore" + }, + { + "path": ".prettierrc" + }, + { + "path": ".readme-partials.yaml" + }, + { + "path": ".repo-metadata.json" + }, + { + "path": "CHANGELOG.md" + }, + { + "path": "CODE_OF_CONDUCT.md" + }, + { + "path": "CONTRIBUTING.md" + }, + { + "path": "LICENSE" + }, + { + "path": "README.md" + }, + { + "path": "codecov.yaml" + }, + { + "path": "doc/images/errors-overview.png" + }, + { + "path": "linkinator.config.json" + }, + { + "path": "package.json" + }, + { + "path": "renovate.json" + }, + { + "path": "samples/.eslintrc.yml" + }, + { + "path": "samples/README.md" + }, + { + "path": "samples/explicitSetup.js" + }, + { + "path": "samples/express.js" + }, + { + "path": "samples/implicitSetup.js" + }, + { + "path": "samples/manual.js" + }, + { + "path": "samples/package.json" + }, + { + "path": "samples/quickstart.js" + }, + { + "path": "samples/test/snippets.test.js" + }, + { + "path": "src/build-stack-trace.ts" + }, + { + "path": "src/classes/error-message.ts" + }, + { + "path": "src/classes/request-information-container.ts" + }, + { + "path": "src/configuration.ts" + }, + { + "path": "src/google-apis/auth-client.ts" + }, + { + "path": "src/index.ts" + }, + { + "path": "src/interfaces/express.ts" + }, + { + "path": "src/interfaces/hapi.ts" + }, + { + "path": "src/interfaces/koa.ts" + }, + { + "path": "src/interfaces/koa2.ts" + }, + { + "path": "src/interfaces/manual.ts" + }, + { + "path": "src/interfaces/message-builder.ts" + }, + { + "path": "src/interfaces/restify.ts" + }, + { + "path": "src/logger.ts" + }, + { + "path": "src/populate-error-message.ts" + }, + { + "path": "src/request-extractors/express.ts" + }, + { + "path": "src/request-extractors/hapi.ts" + }, + { + "path": "src/request-extractors/koa.ts" + }, + { + "path": "src/request-extractors/manual.ts" + }, + { + "path": "synth.py" + }, + { + "path": "system-test/.eslintrc.yml" + }, + { + "path": "system-test/error-reporting.ts" + }, + { + "path": "system-test/test-install.ts" + }, + { + "path": "test/.eslintrc.yml" + }, + { + "path": "test/fixtures/configuration.ts" + }, + { + "path": "test/fixtures/gcloud-credentials.json" + }, + { + "path": "test/mocha.opts" + }, + { + "path": "test/test-servers/express_scaffold_server.ts" + }, + { + "path": "test/test-servers/hapi_scaffold_server.ts" + }, + { + "path": "test/test-servers/koa2_scaffold_server.ts" + }, + { + "path": "test/test-servers/koa_scaffold_server.ts" + }, + { + "path": "test/test-servers/manual_scaffold_server.ts" + }, + { + "path": "test/test-servers/restify_scaffold_server.ts" + }, + { + "path": "test/unit/build-stack-trace.ts" + }, + { + "path": "test/unit/classes/error-message.ts" + }, + { + "path": "test/unit/classes/request-information-container.ts" + }, + { + "path": "test/unit/configuration.ts" + }, + { + "path": "test/unit/google-apis/auth-client.ts" + }, + { + "path": "test/unit/interfaces/express.ts" + }, + { + "path": "test/unit/interfaces/hapi.ts" + }, + { + "path": "test/unit/interfaces/manual.ts" + }, + { + "path": "test/unit/interfaces/restify.ts" + }, + { + "path": "test/unit/logger.ts" + }, + { + "path": "test/unit/populate-error-message.ts" + }, + { + "path": "test/unit/request-extractors/express.ts" + }, + { + "path": "test/unit/request-extractors/hapi.ts" + }, + { + "path": "test/unit/request-extractors/koa.ts" + }, + { + "path": "test/unit/request-extractors/manual.ts" + }, + { + "path": "test/unit/service-configuration.ts" + }, + { + "path": "test/util.ts" + }, + { + "path": "tsconfig.json" + }, + { + "path": "utils/errors-api-transport.ts" + }, + { + "path": "utils/fuzzer.ts" + } + ] +} \ No newline at end of file From 24843c3e5bb9b96fe660295fb91e5cd64724526d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 30 Jan 2020 16:34:15 +0100 Subject: [PATCH 314/527] chore(deps): update dependency @types/mocha to v7 --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 766502b5fbc..1e464827e24 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -55,7 +55,7 @@ "@types/lodash.pick": "^4.4.6", "@types/lodash.random": "^3.2.6", "@types/lodash.without": "^4.4.6", - "@types/mocha": "^5.2.7", + "@types/mocha": "^7.0.0", "@types/node": "^12.0.8", "@types/once": "^1.4.0", "@types/proxyquire": "^1.3.28", From a9ff1bed056481846cb403fe66451de6fa1fbbcf Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Fri, 31 Jan 2020 17:22:45 -0800 Subject: [PATCH 315/527] chore: skip img.shields.io in docs test --- handwritten/error-reporting/linkinator.config.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/linkinator.config.json b/handwritten/error-reporting/linkinator.config.json index d780d6bfff5..b555215ca02 100644 --- a/handwritten/error-reporting/linkinator.config.json +++ b/handwritten/error-reporting/linkinator.config.json @@ -2,6 +2,7 @@ "recurse": true, "skip": [ "https://codecov.io/gh/googleapis/", - "www.googleapis.com" + "www.googleapis.com", + "img.shields.io" ] } From 88a782f206bcb5bc7aba7c72f5db176da839e059 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 10 Feb 2020 18:04:58 +0100 Subject: [PATCH 316/527] chore(deps): update dependency linkinator to v2 --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 1e464827e24..3d6f3e20c0d 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -78,7 +78,7 @@ "js-green-licenses": "^1.1.0", "json-stable-stringify": "^1.0.1", "koa": "^2.7.0", - "linkinator": "^1.5.0", + "linkinator": "^2.0.0", "lodash.maxby": "^4.6.0", "lodash.merge": "^4.6.2", "lodash.omit": "^4.5.0", From 3e205533c9e31165ade6ba372defc67311477323 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Mon, 10 Feb 2020 11:27:20 -0800 Subject: [PATCH 317/527] chore(deps): remove dependency cpy-cli (#436) --- handwritten/error-reporting/package.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 3d6f3e20c0d..ae6e1425842 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -24,7 +24,6 @@ "test": "c8 mocha --recursive build/test/unit", "clean": "gts clean", "compile": "tsc -p .", - "postcompile": "cpy 'utils/**/*.*' build --parents && cpy 'test/**/*.*' build --parents", "fix": "gts fix && eslint --fix '**/*.js'", "prepare": "npm run compile", "pretest": "npm run compile", @@ -65,7 +64,6 @@ "boom": "^7.3.0", "c8": "^7.0.0", "codecov": "^3.5.0", - "cpy-cli": "^2.0.0", "delay": "^4.3.0", "eslint": "^6.0.0", "eslint-config-prettier": "^6.0.0", From e34ee819ee52b06013fda50555b18c521e40a4dd Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Tue, 11 Feb 2020 22:34:13 -0800 Subject: [PATCH 318/527] build: add GitHub actions config for unit tests * build: add GitHub actions config for unit tests * chore: link root directory before linting * chore: also need to npm i --- handwritten/error-reporting/package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index ae6e1425842..69d2b1c6250 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -29,7 +29,8 @@ "pretest": "npm run compile", "license-check": "jsgl --local .", "docs-test": "linkinator docs", - "predocs-test": "npm run docs" + "predocs-test": "npm run docs", + "prelint": "cd samples; npm link ../; npm i" }, "dependencies": { "@google-cloud/common": "^2.0.1", From 441d21138293a573e312f9923a0bbcc67dc5b31c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 20 Feb 2020 03:31:48 +0100 Subject: [PATCH 319/527] chore(deps): update dependency nock to v12 --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 69d2b1c6250..b4a26adba84 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -86,7 +86,7 @@ "lodash.random": "^3.2.0", "lodash.without": "^4.4.0", "mocha": "^7.0.0", - "nock": "^11.3.2", + "nock": "^12.0.0", "post-install-check": "0.0.1", "power-assert": "^1.6.1", "prettier": "^1.18.2", From 1687accdcd83bb27c11983e8b113da86a57352d4 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 26 Feb 2020 20:24:50 +0100 Subject: [PATCH 320/527] chore(deps): update dependency uuid to v7 (#441) --- handwritten/error-reporting/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index b4a26adba84..12bef819379 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -60,7 +60,7 @@ "@types/once": "^1.4.0", "@types/proxyquire": "^1.3.28", "@types/restify": "^8.0.0", - "@types/uuid": "^3.4.4", + "@types/uuid": "^7.0.0", "body-parser": "^1.19.0", "boom": "^7.3.0", "c8": "^7.0.0", @@ -94,6 +94,6 @@ "restify": "^8.3.3", "source-map-support": "^0.5.12", "typescript": "3.6.4", - "uuid": "^3.3.2" + "uuid": "^7.0.0" } } From d84d90f30c86aad4fab047be4218b9f983fd0ec0 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Wed, 26 Feb 2020 20:00:12 -0800 Subject: [PATCH 321/527] build: add publish.yml enabling GitHub app for publishes --- handwritten/error-reporting/.github/publish.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 handwritten/error-reporting/.github/publish.yml diff --git a/handwritten/error-reporting/.github/publish.yml b/handwritten/error-reporting/.github/publish.yml new file mode 100644 index 00000000000..e69de29bb2d From 0333d2edca58dc94363d24b9e502556e7932a648 Mon Sep 17 00:00:00 2001 From: Summer Ji Date: Thu, 27 Feb 2020 12:22:05 -0800 Subject: [PATCH 322/527] chore: update jsdoc.js (#443) --- handwritten/error-reporting/.jsdoc.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/.jsdoc.js b/handwritten/error-reporting/.jsdoc.js index 86ba64f82ff..6611eaf7351 100644 --- a/handwritten/error-reporting/.jsdoc.js +++ b/handwritten/error-reporting/.jsdoc.js @@ -36,11 +36,14 @@ module.exports = { includePattern: '\\.js$' }, templates: { - copyright: 'Copyright 2018 Google, LLC.', + copyright: 'Copyright 2019 Google, LLC.', includeDate: false, sourceFiles: false, systemName: '@google-cloud/error-reporting', - theme: 'lumen' + theme: 'lumen', + default: { + "outputSourceFiles": false + } }, markdown: { idInHeadings: true From ebada73731b30b8617b7ff57cb85c126e3fc7e54 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Thu, 5 Mar 2020 11:46:57 -0800 Subject: [PATCH 323/527] test: modernize mocha config (#434) --- handwritten/error-reporting/.mocharc.js | 28 +++++++++++++++++++++ handwritten/error-reporting/package.json | 5 +--- handwritten/error-reporting/test/mocha.opts | 4 --- 3 files changed, 29 insertions(+), 8 deletions(-) create mode 100644 handwritten/error-reporting/.mocharc.js delete mode 100644 handwritten/error-reporting/test/mocha.opts diff --git a/handwritten/error-reporting/.mocharc.js b/handwritten/error-reporting/.mocharc.js new file mode 100644 index 00000000000..d260f450ec1 --- /dev/null +++ b/handwritten/error-reporting/.mocharc.js @@ -0,0 +1,28 @@ +// Copyright 2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +const config = { + "enable-source-maps": true, + "throw-deprecation": true, + "timeout": 10000 +} +if (process.env.MOCHA_THROW_DEPRECATION === 'false') { + delete config['throw-deprecation']; +} +if (process.env.MOCHA_REPORTER) { + config.reporter = process.env.MOCHA_REPORTER; +} +if (process.env.MOCHA_REPORTER_OUTPUT) { + config['reporter-option'] = `output=${process.env.MOCHA_REPORTER_OUTPUT}`; +} +module.exports = config; diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 12bef819379..fc376775017 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -18,7 +18,7 @@ "docs": "compodoc src/", "lint": "eslint '**/*.js' && gts check", "presystem-test": "npm run compile", - "system-test": "c8 mocha build/system-test", + "system-test": "MOCHA_THROW_DEPRECATION=false c8 mocha build/system-test", "presamples-test": "npm run compile", "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", "test": "c8 mocha --recursive build/test/unit", @@ -73,7 +73,6 @@ "express": "^4.17.1", "gts": "^1.0.0", "hapi": "^18.1.0", - "intelli-espower-loader": "^1.0.1", "js-green-licenses": "^1.1.0", "json-stable-stringify": "^1.0.1", "koa": "^2.7.0", @@ -88,11 +87,9 @@ "mocha": "^7.0.0", "nock": "^12.0.0", "post-install-check": "0.0.1", - "power-assert": "^1.6.1", "prettier": "^1.18.2", "proxyquire": "^2.1.0", "restify": "^8.3.3", - "source-map-support": "^0.5.12", "typescript": "3.6.4", "uuid": "^7.0.0" } diff --git a/handwritten/error-reporting/test/mocha.opts b/handwritten/error-reporting/test/mocha.opts deleted file mode 100644 index 98bab23c258..00000000000 --- a/handwritten/error-reporting/test/mocha.opts +++ /dev/null @@ -1,4 +0,0 @@ ---require intelli-espower-loader ---timeout 10000 ---require source-map-support/register - From 18f01c555b6f8aca6748569a6f52639d09553f67 Mon Sep 17 00:00:00 2001 From: "gcf-merge-on-green[bot]" <60162190+gcf-merge-on-green[bot]@users.noreply.github.com> Date: Fri, 6 Mar 2020 01:23:58 +0000 Subject: [PATCH 324/527] build: update linkinator config (#445) --- handwritten/error-reporting/linkinator.config.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/linkinator.config.json b/handwritten/error-reporting/linkinator.config.json index b555215ca02..29a223b6db6 100644 --- a/handwritten/error-reporting/linkinator.config.json +++ b/handwritten/error-reporting/linkinator.config.json @@ -4,5 +4,7 @@ "https://codecov.io/gh/googleapis/", "www.googleapis.com", "img.shields.io" - ] + ], + "silent": true, + "concurrency": 10 } From 7eb9dc19f542f27aabd63c0b7a904d8c7864d827 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Fri, 6 Mar 2020 15:24:03 -0800 Subject: [PATCH 325/527] build(tests): fix coveralls and enable build cop (#446) --- handwritten/error-reporting/.kokoro/samples-test.sh | 11 +++++++++++ handwritten/error-reporting/.kokoro/system-test.sh | 12 ++++++++++++ handwritten/error-reporting/.kokoro/test.sh | 11 +++++++++++ handwritten/error-reporting/.mocharc.js | 2 +- 4 files changed, 35 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/.kokoro/samples-test.sh b/handwritten/error-reporting/.kokoro/samples-test.sh index 20e3241c9e9..86e83c9d3da 100755 --- a/handwritten/error-reporting/.kokoro/samples-test.sh +++ b/handwritten/error-reporting/.kokoro/samples-test.sh @@ -39,6 +39,17 @@ if [ -f samples/package.json ]; then npm link ../ npm install cd .. + # If tests are running against master, configure Build Cop + # to open issues on failures: + if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]]; then + export MOCHA_REPORTER_OUTPUT=test_output_sponge_log.xml + export MOCHA_REPORTER=xunit + cleanup() { + chmod +x $KOKORO_GFILE_DIR/linux_amd64/buildcop + $KOKORO_GFILE_DIR/linux_amd64/buildcop + } + trap cleanup EXIT HUP + fi npm run samples-test fi diff --git a/handwritten/error-reporting/.kokoro/system-test.sh b/handwritten/error-reporting/.kokoro/system-test.sh index fc5824e6667..dfae142a231 100755 --- a/handwritten/error-reporting/.kokoro/system-test.sh +++ b/handwritten/error-reporting/.kokoro/system-test.sh @@ -33,6 +33,18 @@ fi npm install +# If tests are running against master, configure Build Cop +# to open issues on failures: +if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]]; then + export MOCHA_REPORTER_OUTPUT=test_output_sponge_log.xml + export MOCHA_REPORTER=xunit + cleanup() { + chmod +x $KOKORO_GFILE_DIR/linux_amd64/buildcop + $KOKORO_GFILE_DIR/linux_amd64/buildcop + } + trap cleanup EXIT HUP +fi + npm run system-test # codecov combines coverage across integration and unit tests. Include diff --git a/handwritten/error-reporting/.kokoro/test.sh b/handwritten/error-reporting/.kokoro/test.sh index 9db11bb09d6..8d9c2954579 100755 --- a/handwritten/error-reporting/.kokoro/test.sh +++ b/handwritten/error-reporting/.kokoro/test.sh @@ -21,6 +21,17 @@ export NPM_CONFIG_PREFIX=/home/node/.npm-global cd $(dirname $0)/.. npm install +# If tests are running against master, configure Build Cop +# to open issues on failures: +if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]]; then + export MOCHA_REPORTER_OUTPUT=test_output_sponge_log.xml + export MOCHA_REPORTER=xunit + cleanup() { + chmod +x $KOKORO_GFILE_DIR/linux_amd64/buildcop + $KOKORO_GFILE_DIR/linux_amd64/buildcop + } + trap cleanup EXIT HUP +fi npm test # codecov combines coverage across integration and unit tests. Include diff --git a/handwritten/error-reporting/.mocharc.js b/handwritten/error-reporting/.mocharc.js index d260f450ec1..ff7b34fa5d1 100644 --- a/handwritten/error-reporting/.mocharc.js +++ b/handwritten/error-reporting/.mocharc.js @@ -25,4 +25,4 @@ if (process.env.MOCHA_REPORTER) { if (process.env.MOCHA_REPORTER_OUTPUT) { config['reporter-option'] = `output=${process.env.MOCHA_REPORTER_OUTPUT}`; } -module.exports = config; +module.exports = config From 63407a0986be86bab998e138c5df0ba90de3b6d6 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Wed, 18 Mar 2020 13:48:13 -0700 Subject: [PATCH 326/527] docs: mention templates in contributing section of README (#448) --- handwritten/error-reporting/README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 730370d5fc3..7e4d5f8c464 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -385,6 +385,12 @@ More Information: [Google Cloud Platform Launch Stages][launch_stages] Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/nodejs-error-reporting/blob/master/CONTRIBUTING.md). +Please note that this `README.md`, the `samples/README.md`, +and a variety of configuration files in this repository (including `.nycrc` and `tsconfig.json`) +are generated from a central template. To edit one of these files, make an edit +to its template in this +[directory](https://github.com/googleapis/synthtool/tree/master/synthtool/gcp/templates/node_library). + ## License Apache Version 2.0 From 7a0f9664431d781c0c67f0cce0848f82c2746672 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 19 Mar 2020 08:53:29 -0700 Subject: [PATCH 327/527] chore: remove snippet leading whitespace (#450) --- handwritten/error-reporting/README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 7e4d5f8c464..8649c574c87 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -56,14 +56,14 @@ npm install @google-cloud/error-reporting ### Using the client library ```javascript - // Imports the Google Cloud client library - const {ErrorReporting} = require('@google-cloud/error-reporting'); +// Imports the Google Cloud client library +const {ErrorReporting} = require('@google-cloud/error-reporting'); - // Instantiates a client - const errors = new ErrorReporting(); +// Instantiates a client +const errors = new ErrorReporting(); - // Reports a simple error - errors.report('Something broke!'); +// Reports a simple error +errors.report('Something broke!'); ``` This module provides custom Stackdriver Error Reporting support for Node.js applications. From 02acb5e5ac0c0eeb84a36a11201328046b4a2afa Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Mon, 23 Mar 2020 18:56:14 -0700 Subject: [PATCH 328/527] docs: document version support goals (#456) --- handwritten/error-reporting/README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 8649c574c87..e2e3fea2bde 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -363,6 +363,27 @@ has instructions for running the samples. The [Stackdriver Error Reporting Node.js Client API Reference][client-docs] documentation also contains samples. +## Supported Node.js Versions + +Our client libraries follow the [Node.js release schedule](https://nodejs.org/en/about/releases/). +Libraries are compatible with all current _active_ and _maintenance_ versions of +Node.js. + +Client libraries targetting some end-of-life versions of Node.js are available, and +can be installed via npm [dist-tags](https://docs.npmjs.com/cli/dist-tag). +The dist-tags follow the naming convention `legacy-(version)`. + +_Legacy Node.js versions are supported as a best effort:_ + +* Legacy versions will not be tested in continuous integration. +* Some security patches may not be able to be backported. +* Dependencies will not be kept up-to-date, and features will not be backported. + +#### Legacy tags available + +* `legacy-8`: install client libraries from this dist-tag for versions + compatible with Node.js 8. + ## Versioning This library follows [Semantic Versioning](http://semver.org/). From 66a63c88260e7685502facda7bcd2705f651ab55 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 25 Mar 2020 00:38:07 -0700 Subject: [PATCH 329/527] chore: update github actions configuration (#455) This PR was generated using Autosynth. :rainbow:
Log from Synthtool ``` 2020-03-22 04:27:03,890 synthtool > Executing /tmpfs/src/git/autosynth/working_repo/synth.py. .eslintignore .eslintrc.yml .github/ISSUE_TEMPLATE/bug_report.md .github/ISSUE_TEMPLATE/feature_request.md .github/ISSUE_TEMPLATE/support_request.md .github/PULL_REQUEST_TEMPLATE.md .github/publish.yml .github/release-please.yml .github/workflows/ci.yaml .kokoro/common.cfg .kokoro/continuous/node10/common.cfg .kokoro/continuous/node10/docs.cfg .kokoro/continuous/node10/lint.cfg .kokoro/continuous/node10/samples-test.cfg .kokoro/continuous/node10/system-test.cfg .kokoro/continuous/node10/test.cfg .kokoro/continuous/node12/common.cfg .kokoro/continuous/node12/test.cfg .kokoro/continuous/node8/common.cfg .kokoro/continuous/node8/test.cfg .kokoro/docs.sh .kokoro/lint.sh .kokoro/presubmit/node10/common.cfg .kokoro/presubmit/node10/docs.cfg .kokoro/presubmit/node10/lint.cfg .kokoro/presubmit/node10/samples-test.cfg .kokoro/presubmit/node10/system-test.cfg .kokoro/presubmit/node10/test.cfg .kokoro/presubmit/node12/common.cfg .kokoro/presubmit/node12/test.cfg .kokoro/presubmit/node8/common.cfg .kokoro/presubmit/node8/test.cfg .kokoro/presubmit/windows/common.cfg .kokoro/presubmit/windows/test.cfg .kokoro/publish.sh .kokoro/release/docs.cfg .kokoro/release/docs.sh .kokoro/release/publish.cfg .kokoro/samples-test.sh .kokoro/system-test.sh .kokoro/test.bat .kokoro/test.sh .kokoro/trampoline.sh .mocharc.js .nycrc .prettierignore .prettierrc CODE_OF_CONDUCT.md CONTRIBUTING.md LICENSE README.md codecov.yaml renovate.json samples/README.md 2020-03-22 04:27:04,656 synthtool > Wrote metadata to synth.metadata. ```
--- handwritten/error-reporting/synth.metadata | 384 +-------------------- 1 file changed, 5 insertions(+), 379 deletions(-) diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 3b550fbe8cc..7015abab49f 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -1,386 +1,12 @@ { - "updateTime": "2020-01-24T12:18:47.030727Z", + "updateTime": "2020-03-22T11:27:04.656441Z", "sources": [ { - "template": { - "name": "node_library", - "origin": "synthtool.gcp", - "version": "2019.10.17" + "git": { + "name": "synthtool", + "remote": "https://github.com/googleapis/synthtool.git", + "sha": "7e98e1609c91082f4eeb63b530c6468aefd18cfd" } } - ], - "newFiles": [ - { - "path": ".compodocrc" - }, - { - "path": ".eslintignore" - }, - { - "path": ".eslintrc.yml" - }, - { - "path": ".github/ISSUE_TEMPLATE/bug_report.md" - }, - { - "path": ".github/ISSUE_TEMPLATE/feature_request.md" - }, - { - "path": ".github/ISSUE_TEMPLATE/support_request.md" - }, - { - "path": ".github/PULL_REQUEST_TEMPLATE.md" - }, - { - "path": ".github/release-please.yml" - }, - { - "path": ".gitignore" - }, - { - "path": ".jsdoc.js" - }, - { - "path": ".kokoro/.gitattributes" - }, - { - "path": ".kokoro/common.cfg" - }, - { - "path": ".kokoro/continuous/node10/common.cfg" - }, - { - "path": ".kokoro/continuous/node10/docs.cfg" - }, - { - "path": ".kokoro/continuous/node10/lint.cfg" - }, - { - "path": ".kokoro/continuous/node10/samples-test.cfg" - }, - { - "path": ".kokoro/continuous/node10/system-test.cfg" - }, - { - "path": ".kokoro/continuous/node10/test.cfg" - }, - { - "path": ".kokoro/continuous/node12/common.cfg" - }, - { - "path": ".kokoro/continuous/node12/test.cfg" - }, - { - "path": ".kokoro/continuous/node8/common.cfg" - }, - { - "path": ".kokoro/continuous/node8/test.cfg" - }, - { - "path": ".kokoro/docs.sh" - }, - { - "path": ".kokoro/lint.sh" - }, - { - "path": ".kokoro/pre-system-test.sh" - }, - { - "path": ".kokoro/presubmit/node10/common.cfg" - }, - { - "path": ".kokoro/presubmit/node10/docs.cfg" - }, - { - "path": ".kokoro/presubmit/node10/lint.cfg" - }, - { - "path": ".kokoro/presubmit/node10/samples-test.cfg" - }, - { - "path": ".kokoro/presubmit/node10/system-test.cfg" - }, - { - "path": ".kokoro/presubmit/node10/test.cfg" - }, - { - "path": ".kokoro/presubmit/node12/common.cfg" - }, - { - "path": ".kokoro/presubmit/node12/test.cfg" - }, - { - "path": ".kokoro/presubmit/node8/common.cfg" - }, - { - "path": ".kokoro/presubmit/node8/test.cfg" - }, - { - "path": ".kokoro/presubmit/windows/common.cfg" - }, - { - "path": ".kokoro/presubmit/windows/test.cfg" - }, - { - "path": ".kokoro/publish.sh" - }, - { - "path": ".kokoro/release/common.cfg" - }, - { - "path": ".kokoro/release/docs.cfg" - }, - { - "path": ".kokoro/release/docs.sh" - }, - { - "path": ".kokoro/release/publish.cfg" - }, - { - "path": ".kokoro/samples-test.sh" - }, - { - "path": ".kokoro/system-test.sh" - }, - { - "path": ".kokoro/test.bat" - }, - { - "path": ".kokoro/test.sh" - }, - { - "path": ".kokoro/trampoline.sh" - }, - { - "path": ".nycrc" - }, - { - "path": ".prettierignore" - }, - { - "path": ".prettierrc" - }, - { - "path": ".readme-partials.yaml" - }, - { - "path": ".repo-metadata.json" - }, - { - "path": "CHANGELOG.md" - }, - { - "path": "CODE_OF_CONDUCT.md" - }, - { - "path": "CONTRIBUTING.md" - }, - { - "path": "LICENSE" - }, - { - "path": "README.md" - }, - { - "path": "codecov.yaml" - }, - { - "path": "doc/images/errors-overview.png" - }, - { - "path": "linkinator.config.json" - }, - { - "path": "package.json" - }, - { - "path": "renovate.json" - }, - { - "path": "samples/.eslintrc.yml" - }, - { - "path": "samples/README.md" - }, - { - "path": "samples/explicitSetup.js" - }, - { - "path": "samples/express.js" - }, - { - "path": "samples/implicitSetup.js" - }, - { - "path": "samples/manual.js" - }, - { - "path": "samples/package.json" - }, - { - "path": "samples/quickstart.js" - }, - { - "path": "samples/test/snippets.test.js" - }, - { - "path": "src/build-stack-trace.ts" - }, - { - "path": "src/classes/error-message.ts" - }, - { - "path": "src/classes/request-information-container.ts" - }, - { - "path": "src/configuration.ts" - }, - { - "path": "src/google-apis/auth-client.ts" - }, - { - "path": "src/index.ts" - }, - { - "path": "src/interfaces/express.ts" - }, - { - "path": "src/interfaces/hapi.ts" - }, - { - "path": "src/interfaces/koa.ts" - }, - { - "path": "src/interfaces/koa2.ts" - }, - { - "path": "src/interfaces/manual.ts" - }, - { - "path": "src/interfaces/message-builder.ts" - }, - { - "path": "src/interfaces/restify.ts" - }, - { - "path": "src/logger.ts" - }, - { - "path": "src/populate-error-message.ts" - }, - { - "path": "src/request-extractors/express.ts" - }, - { - "path": "src/request-extractors/hapi.ts" - }, - { - "path": "src/request-extractors/koa.ts" - }, - { - "path": "src/request-extractors/manual.ts" - }, - { - "path": "synth.py" - }, - { - "path": "system-test/.eslintrc.yml" - }, - { - "path": "system-test/error-reporting.ts" - }, - { - "path": "system-test/test-install.ts" - }, - { - "path": "test/.eslintrc.yml" - }, - { - "path": "test/fixtures/configuration.ts" - }, - { - "path": "test/fixtures/gcloud-credentials.json" - }, - { - "path": "test/mocha.opts" - }, - { - "path": "test/test-servers/express_scaffold_server.ts" - }, - { - "path": "test/test-servers/hapi_scaffold_server.ts" - }, - { - "path": "test/test-servers/koa2_scaffold_server.ts" - }, - { - "path": "test/test-servers/koa_scaffold_server.ts" - }, - { - "path": "test/test-servers/manual_scaffold_server.ts" - }, - { - "path": "test/test-servers/restify_scaffold_server.ts" - }, - { - "path": "test/unit/build-stack-trace.ts" - }, - { - "path": "test/unit/classes/error-message.ts" - }, - { - "path": "test/unit/classes/request-information-container.ts" - }, - { - "path": "test/unit/configuration.ts" - }, - { - "path": "test/unit/google-apis/auth-client.ts" - }, - { - "path": "test/unit/interfaces/express.ts" - }, - { - "path": "test/unit/interfaces/hapi.ts" - }, - { - "path": "test/unit/interfaces/manual.ts" - }, - { - "path": "test/unit/interfaces/restify.ts" - }, - { - "path": "test/unit/logger.ts" - }, - { - "path": "test/unit/populate-error-message.ts" - }, - { - "path": "test/unit/request-extractors/express.ts" - }, - { - "path": "test/unit/request-extractors/hapi.ts" - }, - { - "path": "test/unit/request-extractors/koa.ts" - }, - { - "path": "test/unit/request-extractors/manual.ts" - }, - { - "path": "test/unit/service-configuration.ts" - }, - { - "path": "test/util.ts" - }, - { - "path": "tsconfig.json" - }, - { - "path": "utils/errors-api-transport.ts" - }, - { - "path": "utils/fuzzer.ts" - } ] } \ No newline at end of file From 6c0ec510f7e02001c97c905bac6ba72fa195239f Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Tue, 31 Mar 2020 18:54:25 -0700 Subject: [PATCH 330/527] build: set AUTOSYNTH_MULTIPLE_COMMITS=true for context aware commits (#461) --- handwritten/error-reporting/synth.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/handwritten/error-reporting/synth.py b/handwritten/error-reporting/synth.py index be345236f2d..0352e7a8117 100644 --- a/handwritten/error-reporting/synth.py +++ b/handwritten/error-reporting/synth.py @@ -17,6 +17,9 @@ import logging logging.basicConfig(level=logging.DEBUG) + +AUTOSYNTH_MULTIPLE_COMMITS = True + common_templates = gcp.CommonTemplates() templates = common_templates.node_library() s.copy(templates) From f75e2c6b3a9211b8f46e0a8da6c53f2738910f46 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 1 Apr 2020 11:53:56 -0700 Subject: [PATCH 331/527] build: update templates for Node.js libraries (#462) --- handwritten/error-reporting/.eslintrc.json | 3 +++ handwritten/error-reporting/.prettierrc.js | 17 +++++++++++++++++ handwritten/error-reporting/synth.metadata | 5 +++-- 3 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 handwritten/error-reporting/.eslintrc.json create mode 100644 handwritten/error-reporting/.prettierrc.js diff --git a/handwritten/error-reporting/.eslintrc.json b/handwritten/error-reporting/.eslintrc.json new file mode 100644 index 00000000000..78215349546 --- /dev/null +++ b/handwritten/error-reporting/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "./node_modules/gts" +} diff --git a/handwritten/error-reporting/.prettierrc.js b/handwritten/error-reporting/.prettierrc.js new file mode 100644 index 00000000000..08cba3775be --- /dev/null +++ b/handwritten/error-reporting/.prettierrc.js @@ -0,0 +1,17 @@ +// Copyright 2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +module.exports = { + ...require('gts/.prettierrc.json') +} diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 7015abab49f..e931546308d 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -1,11 +1,12 @@ { - "updateTime": "2020-03-22T11:27:04.656441Z", + "updateTime": "2020-04-01T11:54:34.475178Z", "sources": [ { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "7e98e1609c91082f4eeb63b530c6468aefd18cfd" + "sha": "99820243d348191bc9c634f2b48ddf65096285ed", + "log": "99820243d348191bc9c634f2b48ddf65096285ed\nfix: update template files for Node.js libraries (#463)\n\n\n3cbe6bcd5623139ac9834c43818424ddca5430cb\nfix(ruby): remove dead troubleshooting link from generated auth guide (#462)\n\n\na003d8655d3ebec2bbbd5fc3898e91e152265c67\ndocs: remove \"install stable\" instructions (#461)\n\nThe package hasn't been released to PyPI in some time\nf5e8c88d9870d8aa4eb43fa0b39f07e02bfbe4df\nchore(python): add license headers to config files; make small tweaks to templates (#458)\n\n\ne36822bfa0acb355502dab391b8ef9c4f30208d8\nchore(java): treat samples shared configuration dependency update as chore (#457)\n\n\n1b4cc80a7aaf164f6241937dd87f3bd1f4149e0c\nfix: do not run node 8 CI (#456)\n\n\nee4330a0e5f4b93978e8683fbda8e6d4148326b7\nchore(java_templates): mark version bumps of current library as a chore (#452)\n\nWith the samples/install-without-bom/pom.xml referencing the latest released library, we want to mark updates of this version as a chore for renovate bot.\na0d3133a5d45544a66345059eebf76933265c099\nfix(java): run mvn install with retry (#453)\n\n* fix(java): run mvn install with retry\n\n* fix invocation of command\n6a17abc7652e2fe563e1288c6e8c23fc260dda97\ndocs: document the release schedule we follow (#454)\n\n\n" } } ] From 5400ae18e0c93a07319ceea4697a9b7bee2798e6 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 7 Apr 2020 10:22:19 -0700 Subject: [PATCH 332/527] fix: apache license URL (#468) (#463) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/9c94202f-63a5-4df0-9d76-871a00f99b85/targets --- handwritten/error-reporting/.prettierrc.js | 2 +- handwritten/error-reporting/synth.metadata | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/handwritten/error-reporting/.prettierrc.js b/handwritten/error-reporting/.prettierrc.js index 08cba3775be..d1b95106f4c 100644 --- a/handwritten/error-reporting/.prettierrc.js +++ b/handwritten/error-reporting/.prettierrc.js @@ -4,7 +4,7 @@ // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // -// http://www.apache.org/licenses/LICENSE-2.0 +// https://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index e931546308d..7417095f8f8 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -1,12 +1,12 @@ { - "updateTime": "2020-04-01T11:54:34.475178Z", + "updateTime": "2020-04-07T12:39:27.172259Z", "sources": [ { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "99820243d348191bc9c634f2b48ddf65096285ed", - "log": "99820243d348191bc9c634f2b48ddf65096285ed\nfix: update template files for Node.js libraries (#463)\n\n\n3cbe6bcd5623139ac9834c43818424ddca5430cb\nfix(ruby): remove dead troubleshooting link from generated auth guide (#462)\n\n\na003d8655d3ebec2bbbd5fc3898e91e152265c67\ndocs: remove \"install stable\" instructions (#461)\n\nThe package hasn't been released to PyPI in some time\nf5e8c88d9870d8aa4eb43fa0b39f07e02bfbe4df\nchore(python): add license headers to config files; make small tweaks to templates (#458)\n\n\ne36822bfa0acb355502dab391b8ef9c4f30208d8\nchore(java): treat samples shared configuration dependency update as chore (#457)\n\n\n1b4cc80a7aaf164f6241937dd87f3bd1f4149e0c\nfix: do not run node 8 CI (#456)\n\n\nee4330a0e5f4b93978e8683fbda8e6d4148326b7\nchore(java_templates): mark version bumps of current library as a chore (#452)\n\nWith the samples/install-without-bom/pom.xml referencing the latest released library, we want to mark updates of this version as a chore for renovate bot.\na0d3133a5d45544a66345059eebf76933265c099\nfix(java): run mvn install with retry (#453)\n\n* fix(java): run mvn install with retry\n\n* fix invocation of command\n6a17abc7652e2fe563e1288c6e8c23fc260dda97\ndocs: document the release schedule we follow (#454)\n\n\n" + "sha": "1df68ed6735ddce6797d0f83641a731c3c3f75b4", + "log": "1df68ed6735ddce6797d0f83641a731c3c3f75b4\nfix: apache license URL (#468)\n\n\nf4a59efa54808c4b958263de87bc666ce41e415f\nfeat: Add discogapic support for GAPICBazel generation (#459)\n\n* feat: Add discogapic support for GAPICBazel generation\n\n* reformat with black\n\n* Rename source repository variable\n\nCo-authored-by: Jeffrey Rennie \n" } } ] From 68c8f1d47025b722e73002e089ed19abc4357e8c Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Sat, 11 Apr 2020 19:17:42 -0700 Subject: [PATCH 333/527] build: remove unused codecov config (#468) --- handwritten/error-reporting/codecov.yaml | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 handwritten/error-reporting/codecov.yaml diff --git a/handwritten/error-reporting/codecov.yaml b/handwritten/error-reporting/codecov.yaml deleted file mode 100644 index 5724ea9478d..00000000000 --- a/handwritten/error-reporting/codecov.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -codecov: - ci: - - source.cloud.google.com From de75d62b24660d19345518fdb2b84a742ba80c98 Mon Sep 17 00:00:00 2001 From: sofisl <55454395+sofisl@users.noreply.github.com> Date: Sun, 12 Apr 2020 11:50:06 -0700 Subject: [PATCH 334/527] feat!: require node 10 in engines field (#465) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index fc376775017..6310bb70288 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -5,7 +5,7 @@ "license": "Apache-2.0", "author": "Google Inc.", "engines": { - "node": ">=8.10.0" + "node": ">=10" }, "repository": "googleapis/nodejs-error-reporting", "main": "./build/src/index.js", From b75f65829a27155df766b6cab29d9f71491f020b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sun, 12 Apr 2020 21:26:07 +0200 Subject: [PATCH 335/527] fix(deps): update dependency @google-cloud/common to v3 (#459) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [@google-cloud/common](https://togithub.com/googleapis/nodejs-common) | dependencies | major | [`^2.0.1` -> `^3.0.0`](https://renovatebot.com/diffs/npm/@google-cloud%2fcommon/2.4.0/3.0.0) | --- ### Release Notes
googleapis/nodejs-common ### [`v3.0.0`](https://togithub.com/googleapis/nodejs-common/blob/master/CHANGELOG.md#​300-httpswwwgithubcomgoogleapisnodejs-commoncomparev240v300-2020-03-26) [Compare Source](https://togithub.com/googleapis/nodejs-common/compare/v2.4.0...v3.0.0) ##### ⚠ BREAKING CHANGES - drop support for node.js 8 ([#​554](https://togithub.com/googleapis/nodejs-common/issues/554)) - remove support for custom promises ([#​541](https://togithub.com/googleapis/nodejs-common/issues/541)) ##### Features - add progress events ([#​540](https://www.github.com/googleapis/nodejs-common/issues/540)) ([1834059](https://www.github.com/googleapis/nodejs-common/commit/18340596ecb61018e5427371b9b5a120753ec003)) ##### Bug Fixes - remove support for custom promises ([#​541](https://www.github.com/googleapis/nodejs-common/issues/541)) ([ecf1c16](https://www.github.com/googleapis/nodejs-common/commit/ecf1c167927b609f13dc4fbec1954ff3a2765344)) - **deps:** update dependency [@​google-cloud/projectify](https://togithub.com/google-cloud/projectify) to v2 ([#​553](https://www.github.com/googleapis/nodejs-common/issues/553)) ([23030a2](https://www.github.com/googleapis/nodejs-common/commit/23030a25783cd091f4720c25a15416c91e7bd0a0)) - **deps:** update dependency [@​google-cloud/promisify](https://togithub.com/google-cloud/promisify) to v2 ([#​552](https://www.github.com/googleapis/nodejs-common/issues/552)) ([63175e0](https://www.github.com/googleapis/nodejs-common/commit/63175e0c4504020466a95e92c2449bdb8ac47546)) ##### Miscellaneous Chores - drop support for node.js 8 ([#​554](https://www.github.com/googleapis/nodejs-common/issues/554)) ([9f41047](https://www.github.com/googleapis/nodejs-common/commit/9f410477432893f68e57b5eeb31a068a3d8ef52f))
--- ### Renovate configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/nodejs-error-reporting). --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 6310bb70288..cf2473b72a6 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -33,7 +33,7 @@ "prelint": "cd samples; npm link ../; npm i" }, "dependencies": { - "@google-cloud/common": "^2.0.1", + "@google-cloud/common": "^3.0.0", "console-log-level": "^1.4.1", "is": "^3.3.0", "lodash.has": "^4.5.2" From bc9d7d915c7cdd99b9b03c179a46d7a49b4552fc Mon Sep 17 00:00:00 2001 From: sofisl <55454395+sofisl@users.noreply.github.com> Date: Sun, 12 Apr 2020 13:14:06 -0700 Subject: [PATCH 336/527] build!: update to latest version of gts and typescript (#467) --- handwritten/error-reporting/.eslintrc.yml | 15 --------------- handwritten/error-reporting/.prettierignore | 8 +++++--- handwritten/error-reporting/.prettierrc | 8 -------- handwritten/error-reporting/package.json | 7 ++++--- .../src/google-apis/auth-client.ts | 6 +++--- handwritten/error-reporting/src/index.ts | 5 ++--- .../error-reporting/src/interfaces/hapi.ts | 1 + handwritten/error-reporting/src/logger.ts | 1 + .../system-test/error-reporting.ts | 9 +++------ .../error-reporting/system-test/test-install.ts | 4 ++-- .../test/test-servers/express_scaffold_server.ts | 3 ++- .../test/unit/classes/error-message.ts | 2 +- .../unit/classes/request-information-container.ts | 2 +- .../error-reporting/test/unit/configuration.ts | 2 +- .../test/unit/google-apis/auth-client.ts | 1 + .../error-reporting/test/unit/interfaces/hapi.ts | 3 ++- .../test/unit/interfaces/restify.ts | 2 +- handwritten/error-reporting/test/unit/logger.ts | 12 ++++++------ .../test/unit/populate-error-message.ts | 2 +- .../test/unit/request-extractors/express.ts | 3 ++- .../test/unit/request-extractors/hapi.ts | 1 + .../test/unit/request-extractors/koa.ts | 1 + .../test/unit/request-extractors/manual.ts | 1 + .../test/unit/service-configuration.ts | 3 ++- handwritten/error-reporting/tsconfig.json | 1 + 25 files changed, 45 insertions(+), 58 deletions(-) delete mode 100644 handwritten/error-reporting/.eslintrc.yml delete mode 100644 handwritten/error-reporting/.prettierrc diff --git a/handwritten/error-reporting/.eslintrc.yml b/handwritten/error-reporting/.eslintrc.yml deleted file mode 100644 index 73eeec27612..00000000000 --- a/handwritten/error-reporting/.eslintrc.yml +++ /dev/null @@ -1,15 +0,0 @@ ---- -extends: - - 'eslint:recommended' - - 'plugin:node/recommended' - - prettier -plugins: - - node - - prettier -rules: - prettier/prettier: error - block-scoped-var: error - eqeqeq: error - no-warning-comments: warn - no-var: error - prefer-const: error diff --git a/handwritten/error-reporting/.prettierignore b/handwritten/error-reporting/.prettierignore index f6fac98b0a8..a4ac7b37510 100644 --- a/handwritten/error-reporting/.prettierignore +++ b/handwritten/error-reporting/.prettierignore @@ -1,3 +1,5 @@ -node_modules/* -samples/node_modules/* -src/**/doc/* +**/node_modules +**/.coverage +build/ +docs/ +protos/ diff --git a/handwritten/error-reporting/.prettierrc b/handwritten/error-reporting/.prettierrc deleted file mode 100644 index df6eac07446..00000000000 --- a/handwritten/error-reporting/.prettierrc +++ /dev/null @@ -1,8 +0,0 @@ ---- -bracketSpacing: false -printWidth: 80 -semi: true -singleQuote: true -tabWidth: 2 -trailingComma: es5 -useTabs: false diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index cf2473b72a6..7e27a22099f 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -64,6 +64,7 @@ "body-parser": "^1.19.0", "boom": "^7.3.0", "c8": "^7.0.0", + "chai": "^4.2.0", "codecov": "^3.5.0", "delay": "^4.3.0", "eslint": "^6.0.0", @@ -71,7 +72,7 @@ "eslint-plugin-node": "^11.0.0", "eslint-plugin-prettier": "^3.1.0", "express": "^4.17.1", - "gts": "^1.0.0", + "gts": "^2.0.0", "hapi": "^18.1.0", "js-green-licenses": "^1.1.0", "json-stable-stringify": "^1.0.1", @@ -84,13 +85,13 @@ "lodash.pick": "^4.4.0", "lodash.random": "^3.2.0", "lodash.without": "^4.4.0", - "mocha": "^7.0.0", + "mocha": "^7.1.1", "nock": "^12.0.0", "post-install-check": "0.0.1", "prettier": "^1.18.2", "proxyquire": "^2.1.0", "restify": "^8.3.3", - "typescript": "3.6.4", + "typescript": "^3.8.3", "uuid": "^7.0.0" } } diff --git a/handwritten/error-reporting/src/google-apis/auth-client.ts b/handwritten/error-reporting/src/google-apis/auth-client.ts index 3b9775cccb4..f222c683e42 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.ts +++ b/handwritten/error-reporting/src/google-apis/auth-client.ts @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +// eslint-disable-next-line @typescript-eslint/no-var-requires const pkg = require('../../../package.json'); import * as is from 'is'; import {Configuration, Logger} from '../configuration'; @@ -110,12 +111,11 @@ export class RequestHandler extends Service { this._config = config; this._logger = logger; - const that = this; if (tryAuthenticate) { this.authClient.getAccessToken().then( () => {}, err => { - that._logger.error( + this._logger.error( [ 'Unable to find credential information on instance. This library', 'will be unable to communicate with the Stackdriver API to save', @@ -149,7 +149,7 @@ export class RequestHandler extends Service { } } ); - that._logger.info('API key provided; skipping OAuth2 token request.'); + this._logger.info('API key provided; skipping OAuth2 token request.'); } } /** diff --git a/handwritten/error-reporting/src/index.ts b/handwritten/error-reporting/src/index.ts index 9406908202f..eb511bbeba7 100644 --- a/handwritten/error-reporting/src/index.ts +++ b/handwritten/error-reporting/src/index.ts @@ -135,16 +135,15 @@ export class ErrorReporting { this._client = new AuthClient(this._config, this._logger); if (this._config.getReportUnhandledRejections()) { - const that = this; process.on('unhandledRejection', reason => { - that._logger.warn( + this._logger.warn( 'UnhandledPromiseRejectionWarning: ' + 'Unhandled promise rejection: ' + reason + '. This rejection has been reported to the ' + 'Google Cloud Platform error-reporting console.' ); - that.report(reason); + this.report(reason); }); } diff --git a/handwritten/error-reporting/src/interfaces/hapi.ts b/handwritten/error-reporting/src/interfaces/hapi.ts index 129e59e9ade..2b6bd8a0cb5 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.ts +++ b/handwritten/error-reporting/src/interfaces/hapi.ts @@ -19,6 +19,7 @@ import {ErrorMessage} from '../classes/error-message'; import {populateErrorMessage} from '../populate-error-message'; import {hapiRequestInformationExtractor} from '../request-extractors/hapi'; +// eslint-disable-next-line @typescript-eslint/no-var-requires const packageJson = require('../../../package.json'); import {RequestHandler} from '../google-apis/auth-client'; diff --git a/handwritten/error-reporting/src/logger.ts b/handwritten/error-reporting/src/logger.ts index 6bd331c43e9..c1343d51c2d 100644 --- a/handwritten/error-reporting/src/logger.ts +++ b/handwritten/error-reporting/src/logger.ts @@ -16,6 +16,7 @@ import * as is from 'is'; import has = require('lodash.has'); import consoleLogLevel = require('console-log-level'); +// eslint-disable-next-line @typescript-eslint/no-var-requires const packageJson = require('../../package.json'); import {ConfigurationOptions, Logger} from './configuration'; diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index e119bf42469..f75195800a5 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -13,7 +13,7 @@ // limitations under the License. import * as assert from 'assert'; -import {describe, it} from 'mocha'; +import {describe, it, before, beforeEach, after, afterEach} from 'mocha'; import delay from 'delay'; import * as is from 'is'; import * as nock from 'nock'; @@ -461,11 +461,8 @@ describe('error-reporting', () => { // interfering with existing listeners of the 'unhandledRejection' event. assert.strictEqual(process.listenerCount('unhandledRejection'), 0); oldLogger = console.error; - console.error = function(this) { - const text = util.format.apply( - null, - (arguments as {}) as [{}, Array<{}>] - ); + console.error = function(this, ...args: any[]) { + const text = util.format(null, args); oldLogger(text); logOutput += text; }; diff --git a/handwritten/error-reporting/system-test/test-install.ts b/handwritten/error-reporting/system-test/test-install.ts index 194d8747bd1..ed71dc16444 100644 --- a/handwritten/error-reporting/system-test/test-install.ts +++ b/handwritten/error-reporting/system-test/test-install.ts @@ -83,7 +83,7 @@ app.get('/error', (req, res, next) => { }); app.get('/exception', () => { - JSON.parse('{\"malformedJson\": true'); + JSON.parse('{"malformedJson": true'); }); app.use(errors.express); @@ -293,7 +293,7 @@ app.get('/error', (req, res, next) => { }); app.get('/exception', () => { - JSON.parse('{\"malformedJson\": true'); + JSON.parse('{"malformedJson": true'); }); // Note that express error handling middleware should be attached after all diff --git a/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts index e06301f02a2..aecef67628c 100644 --- a/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts @@ -17,12 +17,13 @@ const EXCLAMATION_LN = '\n!!'; import has = require('lodash.has'); import * as express from 'express'; const app = express(); +// eslint-disable-next-line @typescript-eslint/no-var-requires const errorHandler = require('../../src/index.js')({ onUncaughtException: 'report', key: process.env.STUBBED_API_KEY, projectId: process.env.STUBBED_PROJECT_NUM, }); -const bodyParser = require('body-parser'); +import bodyParser = require('body-parser'); // eslint-disable-next-line no-console const log = console.log; diff --git a/handwritten/error-reporting/test/unit/classes/error-message.ts b/handwritten/error-reporting/test/unit/classes/error-message.ts index 0f798547ceb..0c1a1b06752 100644 --- a/handwritten/error-reporting/test/unit/classes/error-message.ts +++ b/handwritten/error-reporting/test/unit/classes/error-message.ts @@ -13,7 +13,7 @@ // limitations under the License. import * as assert from 'assert'; -import {describe, it} from 'mocha'; +import {describe, it, beforeEach} from 'mocha'; import {ErrorMessage} from '../../../src/classes/error-message'; import {RequestInformationContainer} from '../../../src/classes/request-information-container'; import {deepStrictEqual} from '../../util'; diff --git a/handwritten/error-reporting/test/unit/classes/request-information-container.ts b/handwritten/error-reporting/test/unit/classes/request-information-container.ts index 3a4e791a0d0..9638109ee1d 100644 --- a/handwritten/error-reporting/test/unit/classes/request-information-container.ts +++ b/handwritten/error-reporting/test/unit/classes/request-information-container.ts @@ -13,7 +13,7 @@ // limitations under the License. import * as assert from 'assert'; -import {describe, it} from 'mocha'; +import {describe, it, beforeEach} from 'mocha'; import {RequestInformationContainer} from '../../../src/classes/request-information-container'; import {Fuzzer} from '../../../utils/fuzzer'; import {deepStrictEqual} from '../../util'; diff --git a/handwritten/error-reporting/test/unit/configuration.ts b/handwritten/error-reporting/test/unit/configuration.ts index 27bf6486cc2..090257a2ea1 100644 --- a/handwritten/error-reporting/test/unit/configuration.ts +++ b/handwritten/error-reporting/test/unit/configuration.ts @@ -13,7 +13,7 @@ // limitations under the License. import * as assert from 'assert'; -import {describe, it} from 'mocha'; +import {describe, it, before, after, afterEach, beforeEach} from 'mocha'; import * as is from 'is'; import merge = require('lodash.merge'); import {FakeConfiguration as Configuration} from '../fixtures/configuration'; diff --git a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts index a3d56561d3b..294d4756725 100644 --- a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts +++ b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts @@ -13,6 +13,7 @@ // limitations under the License. import * as proxyquire from 'proxyquire'; +import {describe, beforeEach, afterEach, it} from 'mocha'; import { Configuration, diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.ts b/handwritten/error-reporting/test/unit/interfaces/hapi.ts index 405b0a92de9..c91a1992fc3 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.ts +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.ts @@ -15,7 +15,7 @@ import * as is from 'is'; import has = require('lodash.has'); import * as assert from 'assert'; -import {describe, it} from 'mocha'; +import {describe, it, beforeEach, before, afterEach} from 'mocha'; import {makeHapiPlugin as hapiInterface} from '../../../src/interfaces/hapi'; import {ErrorMessage} from '../../../src/classes/error-message'; import {Fuzzer} from '../../../utils/fuzzer'; @@ -27,6 +27,7 @@ import * as http from 'http'; import * as hapi from 'hapi'; import * as boom from 'boom'; +// eslint-disable-next-line @typescript-eslint/no-var-requires const packageJson = require('../../../../package.json'); interface HapiPlugin { diff --git a/handwritten/error-reporting/test/unit/interfaces/restify.ts b/handwritten/error-reporting/test/unit/interfaces/restify.ts index 24c8d11c914..f6bee702ae3 100644 --- a/handwritten/error-reporting/test/unit/interfaces/restify.ts +++ b/handwritten/error-reporting/test/unit/interfaces/restify.ts @@ -24,7 +24,7 @@ import {handlerSetup as restifyInterface} from '../../../src/interfaces/restify' // node v0.12 compatibility if (!EventEmitter.prototype.listenerCount) { EventEmitter.prototype.listenerCount = function(this, eventName) { - // tslint:disable-next-line deprecation + // eslint-disable-next-line node/no-deprecated-api return EventEmitter.listenerCount(this, eventName); }; } diff --git a/handwritten/error-reporting/test/unit/logger.ts b/handwritten/error-reporting/test/unit/logger.ts index fd12c7eb1ca..bb09139dbca 100644 --- a/handwritten/error-reporting/test/unit/logger.ts +++ b/handwritten/error-reporting/test/unit/logger.ts @@ -13,7 +13,7 @@ // limitations under the License. import * as assert from 'assert'; -import {describe, it} from 'mocha'; +import {describe, it, before, after, beforeEach, afterEach} from 'mocha'; import {createLogger} from '../../src/logger'; describe('logger', () => { @@ -66,17 +66,17 @@ describe('logger', () => { }); }); describe('Default log level', () => { - let oldLog: (text: string) => void; + let oldLog: (text: any, args: string[]) => void; let text: string | undefined; beforeEach(() => { // eslint-disable-next-line no-console oldLog = console.error; text = ''; // eslint-disable-next-line no-console - console.error = function(this) { - oldLog.apply(this, (arguments as {}) as [string]); - for (let i = 0; i < arguments.length; i++) { - text += arguments[i]; + console.error = function(this, ...args: string[]) { + oldLog(this, args); + for (let i = 0; i < args.length; i++) { + text += args[i]; } }; }); diff --git a/handwritten/error-reporting/test/unit/populate-error-message.ts b/handwritten/error-reporting/test/unit/populate-error-message.ts index 00544704d99..41b2d54be52 100644 --- a/handwritten/error-reporting/test/unit/populate-error-message.ts +++ b/handwritten/error-reporting/test/unit/populate-error-message.ts @@ -13,7 +13,7 @@ // limitations under the License. import * as assert from 'assert'; -import {describe, it} from 'mocha'; +import {describe, it, beforeEach} from 'mocha'; import {ErrorMessage} from '../../src/classes/error-message'; import {populateErrorMessage} from '../../src/populate-error-message'; diff --git a/handwritten/error-reporting/test/unit/request-extractors/express.ts b/handwritten/error-reporting/test/unit/request-extractors/express.ts index af4154b55a0..32fbfa04e51 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/express.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/express.ts @@ -16,6 +16,7 @@ import {Response} from 'express'; import {expressRequestInformationExtractor} from '../../../src/request-extractors/express'; import {Fuzzer} from '../../../utils/fuzzer'; import {deepStrictEqual} from '../../util'; +import {describe, it, beforeEach} from 'mocha'; describe('Behaviour under varying input', () => { let f: Fuzzer; @@ -105,7 +106,7 @@ describe('Behaviour under varying input', () => { const headerFactory = (toDeriveFrom: any) => { const lrn = Object.assign({}, toDeriveFrom); lrn.header = (toRet: string) => { - if (lrn.hasOwnProperty(toRet)) { + if (Object.prototype.hasOwnProperty.call(lrn, toRet)) { return lrn[toRet]; } return undefined; diff --git a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts index a07aa4634d0..c36f295fe9a 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts @@ -14,6 +14,7 @@ import * as hapi from 'hapi'; import {URL} from 'url'; +import {describe, it} from 'mocha'; import {hapiRequestInformationExtractor} from '../../../src/request-extractors/hapi'; import {Fuzzer} from '../../../utils/fuzzer'; diff --git a/handwritten/error-reporting/test/unit/request-extractors/koa.ts b/handwritten/error-reporting/test/unit/request-extractors/koa.ts index bac185f48f2..9cd5125a8c1 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/koa.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/koa.ts @@ -13,6 +13,7 @@ // limitations under the License. import {Request, Response} from 'koa'; +import {describe, it} from 'mocha'; import {koaRequestInformationExtractor} from '../../../src/request-extractors/koa'; import {Fuzzer} from '../../../utils/fuzzer'; diff --git a/handwritten/error-reporting/test/unit/request-extractors/manual.ts b/handwritten/error-reporting/test/unit/request-extractors/manual.ts index 884d1e43080..0f5592e4dc4 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/manual.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/manual.ts @@ -16,6 +16,7 @@ import omit = require('lodash.omit'); import {manualRequestInformationExtractor} from '../../../src/request-extractors/manual'; import {Fuzzer} from '../../../utils/fuzzer'; import {deepStrictEqual} from '../../util'; +import {describe, it} from 'mocha'; describe('manualRequestInformationExtractor', () => { describe('Behaviour given invalid input', () => { diff --git a/handwritten/error-reporting/test/unit/service-configuration.ts b/handwritten/error-reporting/test/unit/service-configuration.ts index 23c3bb77a60..59213cbc3ae 100644 --- a/handwritten/error-reporting/test/unit/service-configuration.ts +++ b/handwritten/error-reporting/test/unit/service-configuration.ts @@ -13,13 +13,14 @@ // limitations under the License. import * as assert from 'assert'; -import {describe, it} from 'mocha'; +import {describe, beforeEach, after, it} from 'mocha'; import * as is from 'is'; import omitBy = require('lodash.omitby'); import {FakeConfiguration as Configuration} from '../fixtures/configuration'; import {deepStrictEqual} from '../util'; const level = process.env.GCLOUD_ERRORS_LOGLEVEL; import {createLogger} from '../../src/logger'; + const logger = createLogger({ logLevel: is.number(level) ? level : 4, }); diff --git a/handwritten/error-reporting/tsconfig.json b/handwritten/error-reporting/tsconfig.json index 6a6a03b1209..dc4a94d726f 100644 --- a/handwritten/error-reporting/tsconfig.json +++ b/handwritten/error-reporting/tsconfig.json @@ -1,6 +1,7 @@ { "extends": "./node_modules/gts/tsconfig-google.json", "compilerOptions": { + "lib": ["es2018", "dom"], "rootDir": ".", "outDir": "build" }, From 893146093107844e1a589601ec564b5fa02c6845 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Mon, 13 Apr 2020 20:34:12 -0700 Subject: [PATCH 337/527] chore: update lint ignore files (#471) --- handwritten/error-reporting/.eslintignore | 3 ++- handwritten/error-reporting/.prettierignore | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/.eslintignore b/handwritten/error-reporting/.eslintignore index 09b31fe735a..9340ad9b86d 100644 --- a/handwritten/error-reporting/.eslintignore +++ b/handwritten/error-reporting/.eslintignore @@ -1,5 +1,6 @@ **/node_modules -src/**/doc/* +**/coverage +test/fixtures build/ docs/ protos/ diff --git a/handwritten/error-reporting/.prettierignore b/handwritten/error-reporting/.prettierignore index a4ac7b37510..9340ad9b86d 100644 --- a/handwritten/error-reporting/.prettierignore +++ b/handwritten/error-reporting/.prettierignore @@ -1,5 +1,6 @@ **/node_modules -**/.coverage +**/coverage +test/fixtures build/ docs/ protos/ From 46bdd382d50a258e0f799c650da97acd6698377a Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Tue, 14 Apr 2020 14:25:13 -0700 Subject: [PATCH 338/527] chore: update packages and linting (#473) --- handwritten/error-reporting/package.json | 9 +-- handwritten/error-reporting/src/index.ts | 11 ++-- .../error-reporting/src/interfaces/hapi.ts | 22 +++---- .../error-reporting/src/interfaces/koa.ts | 4 +- .../error-reporting/src/interfaces/manual.ts | 2 +- .../src/populate-error-message.ts | 2 +- .../error-reporting/system-test/.eslintrc.yml | 4 -- .../system-test/error-reporting.ts | 63 ++++++++----------- .../test/test-servers/hapi_scaffold_server.ts | 4 +- .../test/test-servers/koa_scaffold_server.ts | 8 +-- .../test/unit/configuration.ts | 5 +- .../test/unit/interfaces/hapi.ts | 5 +- .../test/unit/interfaces/manual.ts | 2 +- .../test/unit/interfaces/restify.ts | 2 +- .../error-reporting/test/unit/logger.ts | 3 +- .../test/unit/request-extractors/express.ts | 2 +- handwritten/error-reporting/test/util.ts | 1 - handwritten/error-reporting/tsconfig.json | 3 - .../utils/errors-api-transport.ts | 2 +- 19 files changed, 60 insertions(+), 94 deletions(-) delete mode 100644 handwritten/error-reporting/system-test/.eslintrc.yml diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 7e27a22099f..ddf4221f0a3 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -16,7 +16,7 @@ ], "scripts": { "docs": "compodoc src/", - "lint": "eslint '**/*.js' && gts check", + "lint": "gts check", "presystem-test": "npm run compile", "system-test": "MOCHA_THROW_DEPRECATION=false c8 mocha build/system-test", "presamples-test": "npm run compile", @@ -24,7 +24,7 @@ "test": "c8 mocha --recursive build/test/unit", "clean": "gts clean", "compile": "tsc -p .", - "fix": "gts fix && eslint --fix '**/*.js'", + "fix": "gts fix", "prepare": "npm run compile", "pretest": "npm run compile", "license-check": "jsgl --local .", @@ -67,10 +67,6 @@ "chai": "^4.2.0", "codecov": "^3.5.0", "delay": "^4.3.0", - "eslint": "^6.0.0", - "eslint-config-prettier": "^6.0.0", - "eslint-plugin-node": "^11.0.0", - "eslint-plugin-prettier": "^3.1.0", "express": "^4.17.1", "gts": "^2.0.0", "hapi": "^18.1.0", @@ -88,7 +84,6 @@ "mocha": "^7.1.1", "nock": "^12.0.0", "post-install-check": "0.0.1", - "prettier": "^1.18.2", "proxyquire": "^2.1.0", "restify": "^8.3.3", "typescript": "^3.8.3", diff --git a/handwritten/error-reporting/src/index.ts b/handwritten/error-reporting/src/index.ts index eb511bbeba7..0ec447df367 100644 --- a/handwritten/error-reporting/src/index.ts +++ b/handwritten/error-reporting/src/index.ts @@ -32,7 +32,7 @@ import * as restifyInterface from './interfaces/restify'; import {createLogger} from './logger'; import * as manualRequestExtractor from './request-extractors/manual'; -// tslint:disable-next-line:no-any +// eslint-disable-next-line @typescript-eslint/no-explicit-any export type RestifyRequestHandler = (req: any, res: any, next: Function) => any; /** @@ -106,7 +106,8 @@ export class ErrorReporting { private _client!: AuthClient; // the `err` argument can be anything, including `null` and `undefined` report!: ( - err: any, // tslint:disable-line:no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any + err: any, request?: manualRequestExtractor.Request, additionalMessage?: string | {}, callback?: manualInterface.Callback | {} | string @@ -118,11 +119,11 @@ export class ErrorReporting { version?: string; }; express!: (err: {}, req: {}, res: {}, next: Function) => void; - // tslint:disable-next-line:no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any restify!: (server: any) => RestifyRequestHandler | RestifyRequestHandler[]; - // tslint:disable-next-line:no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any koa!: (context: any, next: {}) => IterableIterator<{}>; - // tslint:disable-next-line:no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any koa2!: (context: any, next: Function) => Promise; constructor(initConfiguration?: ConfigurationOptions) { diff --git a/handwritten/error-reporting/src/interfaces/hapi.ts b/handwritten/error-reporting/src/interfaces/hapi.ts index 2b6bd8a0cb5..da7a8512113 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.ts +++ b/handwritten/error-reporting/src/interfaces/hapi.ts @@ -77,29 +77,23 @@ export function makeHapiPlugin(client: RequestHandler, config: Configuration) { * @returns {Undefined} - returns the execution of the next callback */ function hapiRegisterFunction( - server: any, // tslint:disable-line:no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any + server: any, options: {}, next?: Function ) { if (server) { if (server.events && server.events.on) { // Hapi 17 is being used - server.events.on( - 'log', - (event: {error?: {}; channel: string}, tags: {}) => { - if (event.error && event.channel === 'app') { - client.sendError(hapiErrorHandler(event.error)); - } + server.events.on('log', (event: {error?: {}; channel: string}) => { + if (event.error && event.channel === 'app') { + client.sendError(hapiErrorHandler(event.error)); } - ); + }); server.events.on( 'request', - ( - request: hapi.Request, - event: {error?: {}; channel: string}, - tags: {} - ) => { + (request: hapi.Request, event: {error?: {}; channel: string}) => { if (event.error && event.channel === 'error') { client.sendError(hapiErrorHandler(event.error, request)); } @@ -113,7 +107,7 @@ export function makeHapiPlugin(client: RequestHandler, config: Configuration) { } if (is.function(server.ext)) { - // tslint:disable-next-line no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any server.ext('onPreResponse', (request: hapi.Request, reply: any) => { if ( is.object(request) && diff --git a/handwritten/error-reporting/src/interfaces/koa.ts b/handwritten/error-reporting/src/interfaces/koa.ts index cd689a04504..ce4293c65ee 100644 --- a/handwritten/error-reporting/src/interfaces/koa.ts +++ b/handwritten/error-reporting/src/interfaces/koa.ts @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import {Middleware, Request, Response} from 'koa'; +import {Request, Response} from 'koa'; import {ErrorMessage} from '../classes/error-message'; import {Configuration} from '../configuration'; @@ -40,7 +40,7 @@ export function koaErrorHandler(client: RequestHandler, config: Configuration) { * @param {Function} next - the result of the request handlers to yield * @returns {Undefined} does not return anything */ - return function*( + return function* ( this: {request: Request; response: Response}, next: Function ) { diff --git a/handwritten/error-reporting/src/interfaces/manual.ts b/handwritten/error-reporting/src/interfaces/manual.ts index aa782975b5d..d9ac5f10ee5 100644 --- a/handwritten/error-reporting/src/interfaces/manual.ts +++ b/handwritten/error-reporting/src/interfaces/manual.ts @@ -28,7 +28,7 @@ export type Callback = ( body: {} ) => void; -// tslint:disable-next-line:no-any +// eslint-disable-next-line @typescript-eslint/no-explicit-any type AnyError = any; /** diff --git a/handwritten/error-reporting/src/populate-error-message.ts b/handwritten/error-reporting/src/populate-error-message.ts index 0425153851c..d71507efda8 100644 --- a/handwritten/error-reporting/src/populate-error-message.ts +++ b/handwritten/error-reporting/src/populate-error-message.ts @@ -39,7 +39,7 @@ export interface PopulatedObject { * @returns {Undefined} - does not return a value */ // the `ob` argument can be anything, including `null` and `undefined` -// tslint:disable-next-line:no-any +// eslint-disable-next-line @typescript-eslint/no-explicit-any export function populateErrorMessage(ob: any, em: ErrorMessage) { if (ob === null || ob === undefined) { em.setMessage(buildStackTrace('' + ob)); diff --git a/handwritten/error-reporting/system-test/.eslintrc.yml b/handwritten/error-reporting/system-test/.eslintrc.yml deleted file mode 100644 index 5adab99ca15..00000000000 --- a/handwritten/error-reporting/system-test/.eslintrc.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- -rules: - node/no-unpublished-require: off - no-console: off diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index f75195800a5..26c75e9d0ba 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -153,10 +153,7 @@ describe('Request/Response lifecycle mocking', () => { }); beforeEach(() => { - env - .setProjectId() - .setKeyFilename() - .setProduction(); + env.setProjectId().setKeyFilename().setProduction(); fakeService = nock( 'https://clouderrorreporting.googleapis.com/v1beta1/projects/' + process.env.GCLOUD_PROJECT @@ -179,7 +176,7 @@ describe('Request/Response lifecycle mocking', () => { env.restoreProcessToOriginalState(); }); - it('Should fail when receiving non-retryable errors', function(this, done) { + it('Should fail when receiving non-retryable errors', function (this, done) { this.timeout(5000); client.sendError({} as ErrorMessage, (err, response) => { assert(err instanceof Error); @@ -193,7 +190,7 @@ describe('Request/Response lifecycle mocking', () => { }); }); - it('Should retry when receiving retryable errors', function(this, done) { + it('Should retry when receiving retryable errors', function (this, done) { this.timeout(25000); let tries = 0; const intendedTries = 4; @@ -212,10 +209,7 @@ describe('Request/Response lifecycle mocking', () => { 'Should provide the key as a query string on outgoing requests when ' + 'using an API key', done => { - env - .sterilizeProcess() - .setProjectId() - .setProduction(); + env.sterilizeProcess().setProjectId().setProduction(); const key = env.apiKey; const logger = createLogger({logLevel: 5}); const client = new RequestHandler( @@ -256,7 +250,7 @@ describe('Client creation', () => { it( 'Should not throw on initialization when using only project id as a ' + 'runtime argument', - function(this, done) { + function (this, done) { env.sterilizeProcess().setKeyFilename(); const logger = createLogger({logLevel: 5}); const cfg = new Configuration( @@ -284,11 +278,8 @@ describe('Client creation', () => { it( 'Should not throw on initialization when using only project id as an ' + 'env variable', - function(this, done) { - env - .sterilizeProcess() - .setProjectId() - .setKeyFilename(); + function (this, done) { + env.sterilizeProcess().setProjectId().setKeyFilename(); const logger = createLogger({logLevel: 5}); const cfg = new Configuration({reportMode: 'always'}, logger); this.timeout(10000); @@ -309,7 +300,7 @@ describe('Client creation', () => { it( 'Should not throw on initialization when using only project number as ' + 'a runtime argument', - function(this, done) { + function (this, done) { env.sterilizeProcess().setKeyFilename(); const logger = createLogger({logLevel: 5}); const cfg = new Configuration( @@ -337,11 +328,8 @@ describe('Client creation', () => { it( 'Should not throw on initialization when using only project number as ' + 'an env variable', - function(this, done) { - env - .sterilizeProcess() - .setKeyFilename() - .setProjectNumber(); + function (this, done) { + env.sterilizeProcess().setKeyFilename().setProjectNumber(); const logger = createLogger({logLevel: 5}); const cfg = new Configuration({reportMode: 'always'}, logger); this.timeout(10000); @@ -376,10 +364,7 @@ describe('Expected Behavior', () => { }); it('Should callback with an error with a configuration that cannot report errors', done => { - env - .sterilizeProcess() - .setKeyFilename() - .setProjectId(); + env.sterilizeProcess().setKeyFilename().setProjectId(); process.env.NODE_ENV = 'null'; const logger = createLogger({logLevel: 5, reportMode: 'production'}); const client = new RequestHandler( @@ -461,7 +446,8 @@ describe('error-reporting', () => { // interfering with existing listeners of the 'unhandledRejection' event. assert.strictEqual(process.listenerCount('unhandledRejection'), 0); oldLogger = console.error; - console.error = function(this, ...args: any[]) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + console.error = function (this, ...args: any[]) { const text = util.format(null, args); oldLogger(text); logOutput += text; @@ -579,7 +565,7 @@ describe('error-reporting', () => { const context = rep.serviceContext; assert.ok( context, - `Expected the error item's representative to have a context` + "Expected the error item's representative to have a context" ); assert.strictEqual(context.service, SERVICE); assert.strictEqual(context.version, VERSION); @@ -587,7 +573,8 @@ describe('error-reporting', () => { // the `errOb` argument can be anything, including `null` and `undefined` async function verifyReporting( - errOb: any, // tslint:disable-line:no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any + errOb: any, messageTest: (message: string) => void, maxCount: number, timeout: number @@ -638,7 +625,7 @@ describe('error-reporting', () => { ); }); - it('Should correctly publish an error that is a string', async function(this) { + it('Should correctly publish an error that is a string', async function (this) { this.timeout(TIMEOUT); const errorId = buildName('with-string'); await verifyReporting( @@ -651,7 +638,7 @@ describe('error-reporting', () => { ); }); - it('Should correctly publish an error that is undefined', async function(this) { + it('Should correctly publish an error that is undefined', async function (this) { this.timeout(TIMEOUT); await verifyReporting( undefined, @@ -663,7 +650,7 @@ describe('error-reporting', () => { ); }); - it('Should correctly publish an error that is null', async function(this) { + it('Should correctly publish an error that is null', async function (this) { this.timeout(TIMEOUT); await verifyReporting( null, @@ -675,7 +662,7 @@ describe('error-reporting', () => { ); }); - it('Should correctly publish an error that is a plain object', async function(this) { + it('Should correctly publish an error that is a plain object', async function (this) { this.timeout(TIMEOUT); await verifyReporting( {someKey: 'someValue'}, @@ -687,7 +674,7 @@ describe('error-reporting', () => { ); }); - it('Should correctly publish an error that is a number', async function(this) { + it('Should correctly publish an error that is a number', async function (this) { this.timeout(TIMEOUT); const num = new Date().getTime(); await verifyReporting( @@ -700,7 +687,7 @@ describe('error-reporting', () => { ); }); - it('Should correctly publish an error that is of an unknown type', async function(this) { + it('Should correctly publish an error that is of an unknown type', async function (this) { this.timeout(TIMEOUT); const bool = true; await verifyReporting( @@ -713,7 +700,7 @@ describe('error-reporting', () => { ); }); - it('Should correctly publish errors using an error builder', async function(this) { + it('Should correctly publish errors using an error builder', async function (this) { this.timeout(TIMEOUT); const errorId = buildName('with-error-builder'); // Use an IIFE with the name `definitionSiteFunction` to use later to @@ -749,7 +736,7 @@ describe('error-reporting', () => { await callingSiteFunction(); }); - it('Should report unhandledRejections if enabled', async function(this) { + it('Should report unhandledRejections if enabled', async function (this) { this.timeout(TIMEOUT); reinitialize({reportUnhandledRejections: true}); const rejectValue = buildName('report-promise-rejection'); @@ -772,7 +759,7 @@ describe('error-reporting', () => { assert.notStrictEqual(logOutput.indexOf(expected), -1); }); - it('Should not report unhandledRejections if disabled', async function(this) { + it('Should not report unhandledRejections if disabled', async function (this) { this.timeout(TIMEOUT); reinitialize({reportUnhandledRejections: false}); const rejectValue = buildName('do-not-report-promise-rejection'); diff --git a/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts index aaa0d310e4e..8cd0f49acab 100644 --- a/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts @@ -18,10 +18,8 @@ const errorHandler = new ErrorReporting(); const server = new Hapi.Server({port: 3000}); -// eslint-disable-next-line no-console const log = console.log; - -// eslint-disable-next-line no-console +// eslint-disable-next-line @typescript-eslint/no-unused-vars const error = console.error; server.route({ diff --git a/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts index e1d0830b6b4..3cbfd5e2620 100644 --- a/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts @@ -23,13 +23,13 @@ const app = new Koa(); app.use(errorHandler.koa); -app.use(function*(this: {throw: Function}, next: {}) { +app.use(function* (this: {throw: Function}, next: {}) { // This will set status and message this.throw('Error Message', 500); yield next; }); -app.use(function*(this: {set: Function}, next: {}) { +app.use(function* (this: {set: Function}, next: {}) { const start = Date.now(); yield next; const ms = Date.now() - start; @@ -38,7 +38,7 @@ app.use(function*(this: {set: Function}, next: {}) { // logger -app.use(function*(this: {method: {}; url: {}}, next: {}) { +app.use(function* (this: {method: {}; url: {}}, next: {}) { const start = Date.now(); yield next; const ms = Date.now() - start; @@ -47,7 +47,7 @@ app.use(function*(this: {method: {}; url: {}}, next: {}) { }); // response -app.use(function*(this: {body: string}, next: {}) { +app.use(function* (this: {body: string}, next: {}) { this.body = 'Hello World'; yield next; }); diff --git a/handwritten/error-reporting/test/unit/configuration.ts b/handwritten/error-reporting/test/unit/configuration.ts index 090257a2ea1..5030051bbb6 100644 --- a/handwritten/error-reporting/test/unit/configuration.ts +++ b/handwritten/error-reporting/test/unit/configuration.ts @@ -49,10 +49,7 @@ function restoreConfigEnv() { process.env.GAE_MODULE_VERSION = configEnv.GAE_MODULE_VERSION; } function createDeadMetadataService() { - return nock(METADATA_URL) - .get('/project-id') - .times(1) - .reply(500); + return nock(METADATA_URL).get('/project-id').times(1).reply(500); } describe('Configuration class', () => { diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.ts b/handwritten/error-reporting/test/unit/interfaces/hapi.ts index c91a1992fc3..b72f12ebf76 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.ts +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.ts @@ -199,6 +199,7 @@ describe('Hapi interface', () => { const fakeClient = ({ sendError: ( errorMessage: ErrorMessage, + // eslint-disable-next-line @typescript-eslint/no-unused-vars userCb?: ( err: Error | null, response: http.ServerResponse | null, @@ -221,7 +222,7 @@ describe('Hapi interface', () => { assert.strictEqual(plugin.version, packageJson.version); }); - it(`Should record 'log' events correctly`, () => { + it("Should record 'log' events correctly", () => { const fakeServer = {events: new EventEmitter()}; // emulate how the hapi server would register itself @@ -243,7 +244,7 @@ describe('Hapi interface', () => { assert.strictEqual(errorMessage.message, testError.stack); }); - it(`Should record 'request' events correctly`, () => { + it("Should record 'request' events correctly", () => { const fakeServer = {events: new EventEmitter()}; // emulate how the hapi server would register itself diff --git a/handwritten/error-reporting/test/unit/interfaces/manual.ts b/handwritten/error-reporting/test/unit/interfaces/manual.ts index 93c4fb7d09b..128960a8db0 100644 --- a/handwritten/error-reporting/test/unit/interfaces/manual.ts +++ b/handwritten/error-reporting/test/unit/interfaces/manual.ts @@ -71,7 +71,7 @@ describe('Manual handler', () => { const r = report(new Error('hokeypokey')); assert(r.message.match(/hokeypokey/)); }); - it('Should allow a function as a malformed error input', function(this, done) { + it('Should allow a function as a malformed error input', function (this, done) { this.timeout(2000); const r = report(() => { assert(false, 'callback should not be called'); diff --git a/handwritten/error-reporting/test/unit/interfaces/restify.ts b/handwritten/error-reporting/test/unit/interfaces/restify.ts index f6bee702ae3..e5d5949b3de 100644 --- a/handwritten/error-reporting/test/unit/interfaces/restify.ts +++ b/handwritten/error-reporting/test/unit/interfaces/restify.ts @@ -23,7 +23,7 @@ import {handlerSetup as restifyInterface} from '../../../src/interfaces/restify' // node v0.12 compatibility if (!EventEmitter.prototype.listenerCount) { - EventEmitter.prototype.listenerCount = function(this, eventName) { + EventEmitter.prototype.listenerCount = function (this, eventName) { // eslint-disable-next-line node/no-deprecated-api return EventEmitter.listenerCount(this, eventName); }; diff --git a/handwritten/error-reporting/test/unit/logger.ts b/handwritten/error-reporting/test/unit/logger.ts index bb09139dbca..8415414ac79 100644 --- a/handwritten/error-reporting/test/unit/logger.ts +++ b/handwritten/error-reporting/test/unit/logger.ts @@ -66,6 +66,7 @@ describe('logger', () => { }); }); describe('Default log level', () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any let oldLog: (text: any, args: string[]) => void; let text: string | undefined; beforeEach(() => { @@ -73,7 +74,7 @@ describe('logger', () => { oldLog = console.error; text = ''; // eslint-disable-next-line no-console - console.error = function(this, ...args: string[]) { + console.error = function (this, ...args: string[]) { oldLog(this, args); for (let i = 0; i < args.length; i++) { text += args[i]; diff --git a/handwritten/error-reporting/test/unit/request-extractors/express.ts b/handwritten/error-reporting/test/unit/request-extractors/express.ts index 32fbfa04e51..fe053963667 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/express.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/express.ts @@ -102,7 +102,7 @@ describe('Behaviour under varying input', () => { remoteAddress: '', statusCode: 201, }; - // tslint:disable-next-line:no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any const headerFactory = (toDeriveFrom: any) => { const lrn = Object.assign({}, toDeriveFrom); lrn.header = (toRet: string) => { diff --git a/handwritten/error-reporting/test/util.ts b/handwritten/error-reporting/test/util.ts index 04e8fafffa1..43887717053 100644 --- a/handwritten/error-reporting/test/util.ts +++ b/handwritten/error-reporting/test/util.ts @@ -13,7 +13,6 @@ // limitations under the License. import * as assert from 'assert'; -import {describe, it} from 'mocha'; import * as stringify from 'json-stable-stringify'; export type Anything = {} | undefined | null; diff --git a/handwritten/error-reporting/tsconfig.json b/handwritten/error-reporting/tsconfig.json index dc4a94d726f..f672e8c73ca 100644 --- a/handwritten/error-reporting/tsconfig.json +++ b/handwritten/error-reporting/tsconfig.json @@ -13,8 +13,5 @@ "system-test/*.ts", "system-test/**/*.ts", "utils/*.ts" - ], - "exclude": [ - "node_modules" ] } diff --git a/handwritten/error-reporting/utils/errors-api-transport.ts b/handwritten/error-reporting/utils/errors-api-transport.ts index e6b57601252..78d1f9e5478 100644 --- a/handwritten/error-reporting/utils/errors-api-transport.ts +++ b/handwritten/error-reporting/utils/errors-api-transport.ts @@ -69,7 +69,7 @@ export class ErrorsApiTransport extends AuthClient { method: 'GET', }; return new Promise((resolve, reject) => { - this.request(options, (err, body, res) => { + this.request(options, (err, body) => { if (err) { reject(err); return; From 211e220ca14c50550f9e2fc9767ffcba7f153acb Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 20 Apr 2020 15:40:43 -0700 Subject: [PATCH 339/527] build: use codecov's action, now that it's authless (#474) --- handwritten/error-reporting/synth.metadata | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 7417095f8f8..2b2d37ec808 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -1,12 +1,17 @@ { - "updateTime": "2020-04-07T12:39:27.172259Z", "sources": [ + { + "git": { + "name": ".", + "remote": "https://github.com/googleapis/nodejs-error-reporting.git", + "sha": "07d7900bb9bfca103433909b30cd387be5e8cb58" + } + }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "1df68ed6735ddce6797d0f83641a731c3c3f75b4", - "log": "1df68ed6735ddce6797d0f83641a731c3c3f75b4\nfix: apache license URL (#468)\n\n\nf4a59efa54808c4b958263de87bc666ce41e415f\nfeat: Add discogapic support for GAPICBazel generation (#459)\n\n* feat: Add discogapic support for GAPICBazel generation\n\n* reformat with black\n\n* Rename source repository variable\n\nCo-authored-by: Jeffrey Rennie \n" + "sha": "19465d3ec5e5acdb01521d8f3bddd311bcbee28d" } } ] From 7863711c3d02872ba38fc675406f73af03546111 Mon Sep 17 00:00:00 2001 From: Alexander Fenster Date: Thu, 23 Apr 2020 19:54:11 -0700 Subject: [PATCH 340/527] chore: update npm scripts and synth.py (#475) Update npm scripts: add clean, prelint, prefix; make sure that lint and fix are set properly. Use post-process feature of synthtool. --- handwritten/error-reporting/package.json | 3 ++- handwritten/error-reporting/synth.py | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index ddf4221f0a3..9828f25639d 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -30,7 +30,8 @@ "license-check": "jsgl --local .", "docs-test": "linkinator docs", "predocs-test": "npm run docs", - "prelint": "cd samples; npm link ../; npm i" + "prelint": "cd samples; npm link ../; npm install", + "precompile": "gts clean" }, "dependencies": { "@google-cloud/common": "^3.0.0", diff --git a/handwritten/error-reporting/synth.py b/handwritten/error-reporting/synth.py index 0352e7a8117..7bb04578e57 100644 --- a/handwritten/error-reporting/synth.py +++ b/handwritten/error-reporting/synth.py @@ -14,6 +14,7 @@ import synthtool as s import synthtool.gcp as gcp +import synthtool.languages.node as node import logging logging.basicConfig(level=logging.DEBUG) @@ -23,3 +24,5 @@ common_templates = gcp.CommonTemplates() templates = common_templates.node_library() s.copy(templates) +node.install() +node.fix() From e8951d2ccea5e02cccd751c4bec48028cf80aebd Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 1 May 2020 06:54:27 +0200 Subject: [PATCH 341/527] chore(deps): update dependency uuid to v8 (#476) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [uuid](https://togithub.com/uuidjs/uuid) | devDependencies | major | [`^7.0.0` -> `^8.0.0`](https://renovatebot.com/diffs/npm/uuid/7.0.3/8.0.0) | --- ### Release Notes
uuidjs/uuid ### [`v8.0.0`](https://togithub.com/uuidjs/uuid/blob/master/CHANGELOG.md#​800-httpsgithubcomuuidjsuuidcomparev703v800-2020-04-29) [Compare Source](https://togithub.com/uuidjs/uuid/compare/v7.0.3...v8.0.0) ##### ⚠ BREAKING CHANGES - For native ECMAScript Module (ESM) usage in Node.js only named exports are exposed, there is no more default export. ```diff -import uuid from 'uuid'; -console.log(uuid.v4()); // -> 'cd6c3b08-0adc-4f4b-a6ef-36087a1c9869' +import { v4 as uuidv4 } from 'uuid'; +uuidv4(); // ⇨ '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d' ``` - Deep requiring specific algorithms of this library like `require('uuid/v4')`, which has been deprecated in `uuid@7`, is no longer supported. Instead use the named exports that this module exports. For ECMAScript Modules (ESM): ```diff -import uuidv4 from 'uuid/v4'; +import { v4 as uuidv4 } from 'uuid'; uuidv4(); ``` For CommonJS: ```diff -const uuidv4 = require('uuid/v4'); +const { v4: uuidv4 } = require('uuid'); uuidv4(); ``` ##### Features - native Node.js ES Modules (wrapper approach) ([#​423](https://togithub.com/uuidjs/uuid/issues/423)) ([2d9f590](https://togithub.com/uuidjs/uuid/commit/2d9f590ad9701d692625c07ed62f0a0f91227991)), closes [#​245](https://togithub.com/uuidjs/uuid/issues/245) [#​419](https://togithub.com/uuidjs/uuid/issues/419) [#​342](https://togithub.com/uuidjs/uuid/issues/342) - remove deep requires ([#​426](https://togithub.com/uuidjs/uuid/issues/426)) ([daf72b8](https://togithub.com/uuidjs/uuid/commit/daf72b84ceb20272a81bb5fbddb05dd95922cbba)) ##### Bug Fixes - add CommonJS syntax example to README quickstart section ([#​417](https://togithub.com/uuidjs/uuid/issues/417)) ([e0ec840](https://togithub.com/uuidjs/uuid/commit/e0ec8402c7ad44b7ef0453036c612f5db513fda0)) ##### [7.0.3](https://togithub.com/uuidjs/uuid/compare/v7.0.2...v7.0.3) (2020-03-31) ##### Bug Fixes - make deep require deprecation warning work in browsers ([#​409](https://togithub.com/uuidjs/uuid/issues/409)) ([4b71107](https://togithub.com/uuidjs/uuid/commit/4b71107d8c0d2ef56861ede6403fc9dc35a1e6bf)), closes [#​408](https://togithub.com/uuidjs/uuid/issues/408) ##### [7.0.2](https://togithub.com/uuidjs/uuid/compare/v7.0.1...v7.0.2) (2020-03-04) ##### Bug Fixes - make access to msCrypto consistent ([#​393](https://togithub.com/uuidjs/uuid/issues/393)) ([8bf2a20](https://togithub.com/uuidjs/uuid/commit/8bf2a20f3565df743da7215eebdbada9d2df118c)) - simplify link in deprecation warning ([#​391](https://togithub.com/uuidjs/uuid/issues/391)) ([bb2c8e4](https://togithub.com/uuidjs/uuid/commit/bb2c8e4e9f4c5f9c1eaaf3ea59710c633cd90cb7)) - update links to match content in readme ([#​386](https://togithub.com/uuidjs/uuid/issues/386)) ([44f2f86](https://togithub.com/uuidjs/uuid/commit/44f2f86e9d2bbf14ee5f0f00f72a3db1292666d4)) ##### [7.0.1](https://togithub.com/uuidjs/uuid/compare/v7.0.0...v7.0.1) (2020-02-25) ##### Bug Fixes - clean up esm builds for node and browser ([#​383](https://togithub.com/uuidjs/uuid/issues/383)) ([59e6a49](https://togithub.com/uuidjs/uuid/commit/59e6a49e7ce7b3e8fb0f3ee52b9daae72af467dc)) - provide browser versions independent from module system ([#​380](https://togithub.com/uuidjs/uuid/issues/380)) ([4344a22](https://togithub.com/uuidjs/uuid/commit/4344a22e7aed33be8627eeaaf05360f256a21753)), closes [#​378](https://togithub.com/uuidjs/uuid/issues/378)
--- ### Renovate configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/nodejs-error-reporting). --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 9828f25639d..53b58808734 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -88,6 +88,6 @@ "proxyquire": "^2.1.0", "restify": "^8.3.3", "typescript": "^3.8.3", - "uuid": "^7.0.0" + "uuid": "^8.0.0" } } From 841b4d235a5d6d7d404646d0154aa9411e73a97d Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Wed, 6 May 2020 15:44:16 -0700 Subject: [PATCH 342/527] test: address typescript nit (#478) --- handwritten/error-reporting/test/unit/interfaces/manual.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/handwritten/error-reporting/test/unit/interfaces/manual.ts b/handwritten/error-reporting/test/unit/interfaces/manual.ts index 128960a8db0..97189150e9f 100644 --- a/handwritten/error-reporting/test/unit/interfaces/manual.ts +++ b/handwritten/error-reporting/test/unit/interfaces/manual.ts @@ -75,7 +75,6 @@ describe('Manual handler', () => { this.timeout(2000); const r = report(() => { assert(false, 'callback should not be called'); - done(); }); assert(r instanceof ErrorMessage, 'should be an inst of ErrorMessage'); setTimeout(() => { From e50fc2095474b551504a7d5c5af95d0207c1f2e2 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 8 May 2020 11:34:59 -0700 Subject: [PATCH 343/527] build: do not fail builds on codecov errors (#528) (#479) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/13e8b547-7af0-436b-b85e-2c1942f8f36a/targets Source-Link: https://github.com/googleapis/synthtool/commit/be74d3e532faa47eb59f1a0eaebde0860d1d8ab4 --- handwritten/error-reporting/synth.metadata | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 2b2d37ec808..89fe9fa1d56 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "07d7900bb9bfca103433909b30cd387be5e8cb58" + "sha": "bb5582dfe6b6118d1cba9c86f1df853f898cbe8a" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "19465d3ec5e5acdb01521d8f3bddd311bcbee28d" + "sha": "be74d3e532faa47eb59f1a0eaebde0860d1d8ab4" } } ] From 6ad0858499e161b4aed97c5f598e3661006f2d0e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sat, 9 May 2020 22:52:21 +0200 Subject: [PATCH 344/527] chore(deps): update dependency js-green-licenses to v2 (#480) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [js-green-licenses](https://togithub.com/google/js-green-licenses) | devDependencies | major | [`^1.1.0` -> `^2.0.0`](https://renovatebot.com/diffs/npm/js-green-licenses/1.1.0/2.0.0) | --- ### Release Notes
google/js-green-licenses ### [`v2.0.0`](https://togithub.com/google/js-green-licenses/blob/master/CHANGELOG.md#​200-httpswwwgithubcomgooglejs-green-licensescomparev110v200-2020-05-07) [Compare Source](https://togithub.com/google/js-green-licenses/compare/v1.1.0...v2.0.0) ##### ⚠ BREAKING CHANGES - drop support for node.js 8 ([#​124](https://togithub.com/google/js-green-licenses/issues/124)) ##### Bug Fixes - **deps:** update dependency gaxios to v3 ([#​121](https://www.github.com/google/js-green-licenses/issues/121)) ([1fdd3e4](https://www.github.com/google/js-green-licenses/commit/1fdd3e4e7ad642da55ad94b72d71049f4789310c)) - **deps:** update dependency npm-package-arg to v7 ([#​110](https://www.github.com/google/js-green-licenses/issues/110)) ([25d0235](https://www.github.com/google/js-green-licenses/commit/25d0235d0ff996b644fe84482241bda5a4b14b2a)) - **deps:** update dependency npm-package-arg to v8 ([#​111](https://www.github.com/google/js-green-licenses/issues/111)) ([4763858](https://www.github.com/google/js-green-licenses/commit/4763858fe10d35e2f1e944d0f4e91a309503c812)) - add 0BSD as a valid license ([#​132](https://www.github.com/google/js-green-licenses/issues/132)) ([e4db3eb](https://www.github.com/google/js-green-licenses/commit/e4db3ebe01bf49a922f0d3a0d71d9ee4af83cdf0)) ##### Build System - drop support for node.js 8 ([#​124](https://www.github.com/google/js-green-licenses/issues/124)) ([06283e1](https://www.github.com/google/js-green-licenses/commit/06283e10c44306f88cdb382ac9d593f4a48c0b7d))
--- ### Renovate configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/nodejs-error-reporting). --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 53b58808734..7c9012c3995 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -71,7 +71,7 @@ "express": "^4.17.1", "gts": "^2.0.0", "hapi": "^18.1.0", - "js-green-licenses": "^1.1.0", + "js-green-licenses": "^2.0.0", "json-stable-stringify": "^1.0.1", "koa": "^2.7.0", "linkinator": "^2.0.0", From c53eff31c82a34a123171d65836f9da391ceb152 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Tue, 26 May 2020 19:46:27 -0700 Subject: [PATCH 345/527] fix(typescript): cast Object.assign value to ServiceOptions (#483) --- handwritten/error-reporting/src/google-apis/auth-client.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/src/google-apis/auth-client.ts b/handwritten/error-reporting/src/google-apis/auth-client.ts index f222c683e42..342978cbdb0 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.ts +++ b/handwritten/error-reporting/src/google-apis/auth-client.ts @@ -97,7 +97,7 @@ export class RequestHandler extends Service { const serviceOptions: ServiceOptions = Object.assign(config, { projectId: pid !== null ? pid : undefined, customEndpoint: !tryAuthenticate, - }); + }) as ServiceOptions; super( { packageJson: pkg, From adbafcc90c381765284cf118be463b006d6bc1e4 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 27 May 2020 05:28:07 +0200 Subject: [PATCH 346/527] chore(deps): update dependency @types/uuid to v8 (#482) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [@types/uuid](https://togithub.com/DefinitelyTyped/DefinitelyTyped) | devDependencies | major | [`^7.0.0` -> `^8.0.0`](https://renovatebot.com/diffs/npm/@types%2fuuid/7.0.4/8.0.0) | --- ### Renovate configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/nodejs-error-reporting). --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 7c9012c3995..0ffff05e2bd 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -61,7 +61,7 @@ "@types/once": "^1.4.0", "@types/proxyquire": "^1.3.28", "@types/restify": "^8.0.0", - "@types/uuid": "^7.0.0", + "@types/uuid": "^8.0.0", "body-parser": "^1.19.0", "boom": "^7.3.0", "c8": "^7.0.0", From 239af991b5fd2699c9cbcfb3b90c7b6feb4a2f97 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 4 Jun 2020 12:36:15 -0700 Subject: [PATCH 347/527] chore: release 2.0.0 (#469) * updated CHANGELOG.md [ci skip] * updated package.json [ci skip] * updated samples/package.json Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> Co-authored-by: Benjamin E. Coe --- handwritten/error-reporting/CHANGELOG.md | 24 ++++++++++++++++++++++++ handwritten/error-reporting/package.json | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/CHANGELOG.md b/handwritten/error-reporting/CHANGELOG.md index e7e438114c0..3e6f382615a 100644 --- a/handwritten/error-reporting/CHANGELOG.md +++ b/handwritten/error-reporting/CHANGELOG.md @@ -4,6 +4,30 @@ [1]: https://www.npmjs.com/package/@google-cloud/error-reporting?activeTab=versions +## [2.0.0](https://www.github.com/googleapis/nodejs-error-reporting/compare/v1.1.3...v2.0.0) (2020-05-27) + + +### ⚠ BREAKING CHANGES + +* update to latest version of gts and typescript (#467) +* require node 10 in engines field (#465) + +### Features + +* require node 10 in engines field ([#465](https://www.github.com/googleapis/nodejs-error-reporting/issues/465)) ([f7d1164](https://www.github.com/googleapis/nodejs-error-reporting/commit/f7d11649329cd33aa992f156c0379f457758cd45)) + + +### Bug Fixes + +* apache license URL ([#468](https://www.github.com/googleapis/nodejs-error-reporting/issues/468)) ([#463](https://www.github.com/googleapis/nodejs-error-reporting/issues/463)) ([191326c](https://www.github.com/googleapis/nodejs-error-reporting/commit/191326c7e29197eb3f09d68d2a89d72e0229f3b4)) +* **deps:** update dependency @google-cloud/common to v3 ([#459](https://www.github.com/googleapis/nodejs-error-reporting/issues/459)) ([0ce41a8](https://www.github.com/googleapis/nodejs-error-reporting/commit/0ce41a854ed4bc2971b535b86efda5593dc2d232)) +* **typescript:** cast Object.assign value to ServiceOptions ([#483](https://www.github.com/googleapis/nodejs-error-reporting/issues/483)) ([cfee918](https://www.github.com/googleapis/nodejs-error-reporting/commit/cfee9187fdb553bca5e290c6b17e42a57ce5a291)) + + +### Build System + +* update to latest version of gts and typescript ([#467](https://www.github.com/googleapis/nodejs-error-reporting/issues/467)) ([454f76b](https://www.github.com/googleapis/nodejs-error-reporting/commit/454f76b33abc5775af64289e41b83e460f6bc519)) + ### [1.1.3](https://www.github.com/googleapis/nodejs-error-reporting/compare/v1.1.2...v1.1.3) (2019-12-05) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 0ffff05e2bd..b9dbe47ef8a 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/error-reporting", "description": "Stackdriver Error Reporting Client Library for Node.js", - "version": "1.1.3", + "version": "2.0.0", "license": "Apache-2.0", "author": "Google Inc.", "engines": { From 91655636282559885cf2868d7b181cf386515efd Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 9 Jun 2020 16:35:10 -0700 Subject: [PATCH 348/527] build(secrets): begin migration to secret manager from keystore (#484) Source-Author: Benjamin E. Coe Source-Date: Mon Jun 8 09:51:11 2020 -0700 Source-Repo: googleapis/synthtool Source-Sha: 1c92077459db3dc50741e878f98b08c6261181e0 Source-Link: https://github.com/googleapis/synthtool/commit/1c92077459db3dc50741e878f98b08c6261181e0 --- .../.kokoro/populate-secrets.sh | 32 +++++++++++++++++++ .../error-reporting/.kokoro/publish.sh | 2 +- .../.kokoro/release/publish.cfg | 10 ++---- .../error-reporting/.kokoro/trampoline.sh | 1 + handwritten/error-reporting/synth.metadata | 4 +-- 5 files changed, 39 insertions(+), 10 deletions(-) create mode 100755 handwritten/error-reporting/.kokoro/populate-secrets.sh diff --git a/handwritten/error-reporting/.kokoro/populate-secrets.sh b/handwritten/error-reporting/.kokoro/populate-secrets.sh new file mode 100755 index 00000000000..85801f403e2 --- /dev/null +++ b/handwritten/error-reporting/.kokoro/populate-secrets.sh @@ -0,0 +1,32 @@ +#!/bin/bash +# Copyright 2020 Google LLC. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -eo pipefail + +# Populates requested secrets set in SECRET_MANAGER_KEYS from service account: +# kokoro-trampoline@cloud-devrel-kokoro-resources.iam.gserviceaccount.com +SECRET_LOCATION="${KOKORO_GFILE_DIR}/secret_manager" +mkdir -p ${SECRET_LOCATION} +for key in $(echo ${SECRET_MANAGER_KEYS} | sed "s/,/ /g") +do + docker run --entrypoint=gcloud \ + --volume=${KOKORO_GFILE_DIR}:${KOKORO_GFILE_DIR} \ + gcr.io/google.com/cloudsdktool/cloud-sdk \ + secrets versions access latest \ + --credential-file-override=${KOKORO_GFILE_DIR}/kokoro-trampoline.service-account.json \ + --project cloud-devrel-kokoro-resources \ + --secret $key > \ + "$SECRET_LOCATION/$key" +done diff --git a/handwritten/error-reporting/.kokoro/publish.sh b/handwritten/error-reporting/.kokoro/publish.sh index 4128c530734..24957d71def 100755 --- a/handwritten/error-reporting/.kokoro/publish.sh +++ b/handwritten/error-reporting/.kokoro/publish.sh @@ -24,7 +24,7 @@ python3 -m releasetool publish-reporter-script > /tmp/publisher-script; source / cd $(dirname $0)/.. -NPM_TOKEN=$(cat $KOKORO_KEYSTORE_DIR/73713_google-cloud-error-reporting-npm-token) +NPM_TOKEN=$(cat $KOKORO_GFILE_DIR/secret_manager/npm_publish_token echo "//wombat-dressing-room.appspot.com/:_authToken=${NPM_TOKEN}" > ~/.npmrc npm install diff --git a/handwritten/error-reporting/.kokoro/release/publish.cfg b/handwritten/error-reporting/.kokoro/release/publish.cfg index 702edc18ae0..3ac258bc394 100644 --- a/handwritten/error-reporting/.kokoro/release/publish.cfg +++ b/handwritten/error-reporting/.kokoro/release/publish.cfg @@ -47,13 +47,9 @@ before_action { } } -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "google-cloud-error-reporting-npm-token" - } - } +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "npm_publish_token" } # Download trampoline resources. diff --git a/handwritten/error-reporting/.kokoro/trampoline.sh b/handwritten/error-reporting/.kokoro/trampoline.sh index 9bd4905c4b5..a4241db23f4 100755 --- a/handwritten/error-reporting/.kokoro/trampoline.sh +++ b/handwritten/error-reporting/.kokoro/trampoline.sh @@ -24,4 +24,5 @@ function cleanup() { } trap cleanup EXIT +$(dirname $0)/populate-secrets.sh # Secret Manager secrets. python3 "${KOKORO_GFILE_DIR}/trampoline_v1.py" diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 89fe9fa1d56..6dde29fc786 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "bb5582dfe6b6118d1cba9c86f1df853f898cbe8a" + "sha": "ed486eeb570eb7dd26062d3dbda8a5d583d2824c" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "be74d3e532faa47eb59f1a0eaebde0860d1d8ab4" + "sha": "1c92077459db3dc50741e878f98b08c6261181e0" } } ] From 3dc5aff52f609cbde11422b2a46bc464f8be832e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 11 Jun 2020 17:51:21 +0200 Subject: [PATCH 349/527] chore(deps): update dependency mocha to v8 (#485) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [mocha](https://mochajs.org/) ([source](https://togithub.com/mochajs/mocha)) | devDependencies | major | [`^7.0.0` -> `^8.0.0`](https://renovatebot.com/diffs/npm/mocha/7.2.0/8.0.1) | --- ### Release Notes
mochajs/mocha ### [`v8.0.1`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#​801--2020-06-10) [Compare Source](https://togithub.com/mochajs/mocha/compare/v8.0.0...v8.0.1) The obligatory patch after a major. #### :bug: Fixes - [#​4328](https://togithub.com/mochajs/mocha/issues/4328): Fix `--parallel` when combined with `--watch` ([**@​boneskull**](https://togithub.com/boneskull)) ### [`v8.0.0`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#​800--2020-06-10) [Compare Source](https://togithub.com/mochajs/mocha/compare/v7.2.0...v8.0.0) In this major release, Mocha adds the ability to _run tests in parallel_. Better late than never! Please note the **breaking changes** detailed below. Let's welcome [**@​giltayar**](https://togithub.com/giltayar) and [**@​nicojs**](https://togithub.com/nicojs) to the maintenance team! #### :boom: Breaking Changes - [#​4164](https://togithub.com/mochajs/mocha/issues/4164): **Mocha v8.0.0 now requires Node.js v10.0.0 or newer.** Mocha no longer supports the Node.js v8.x line ("Carbon"), which entered End-of-Life at the end of 2019 ([**@​UlisesGascon**](https://togithub.com/UlisesGascon)) - [#​4175](https://togithub.com/mochajs/mocha/issues/4175): Having been deprecated with a warning since v7.0.0, **`mocha.opts` is no longer supported** ([**@​juergba**](https://togithub.com/juergba)) :sparkles: **WORKAROUND:** Replace `mocha.opts` with a [configuration file](https://mochajs.org/#configuring-mocha-nodejs). - [#​4260](https://togithub.com/mochajs/mocha/issues/4260): Remove `enableTimeout()` (`this.enableTimeout()`) from the context object ([**@​craigtaub**](https://togithub.com/craigtaub)) :sparkles: **WORKAROUND:** Replace usage of `this.enableTimeout(false)` in your tests with `this.timeout(0)`. - [#​4315](https://togithub.com/mochajs/mocha/issues/4315): The `spec` option no longer supports a comma-delimited list of files ([**@​juergba**](https://togithub.com/juergba)) :sparkles: **WORKAROUND**: Use an array instead (e.g., `"spec": "foo.js,bar.js"` becomes `"spec": ["foo.js", "bar.js"]`). - [#​4309](https://togithub.com/mochajs/mocha/issues/4309): Drop support for Node.js v13.x line, which is now End-of-Life ([**@​juergba**](https://togithub.com/juergba)) - [#​4282](https://togithub.com/mochajs/mocha/issues/4282): `--forbid-only` will throw an error even if exclusive tests are avoided via `--grep` or other means ([**@​arvidOtt**](https://togithub.com/arvidOtt)) - [#​4223](https://togithub.com/mochajs/mocha/issues/4223): The context object's `skip()` (`this.skip()`) in a "before all" (`before()`) hook will no longer execute subsequent sibling hooks, in addition to hooks in child suites ([**@​juergba**](https://togithub.com/juergba)) - [#​4178](https://togithub.com/mochajs/mocha/issues/4178): Remove previously soft-deprecated APIs ([**@​wnghdcjfe**](https://togithub.com/wnghdcjfe)): - `Mocha.prototype.ignoreLeaks()` - `Mocha.prototype.useColors()` - `Mocha.prototype.useInlineDiffs()` - `Mocha.prototype.hideDiff()` #### :tada: Enhancements - [#​4245](https://togithub.com/mochajs/mocha/issues/4245): Add ability to run tests in parallel for Node.js (see [docs](https://mochajs.org/#parallel-tests)) ([**@​boneskull**](https://togithub.com/boneskull)) :exclamation: See also [#​4244](https://togithub.com/mochajs/mocha/issues/4244); [Root Hook Plugins (docs)](https://mochajs.org/#root-hook-plugins) -- _root hooks must be defined via Root Hook Plugins to work in parallel mode_ - [#​4304](https://togithub.com/mochajs/mocha/issues/4304): `--require` now works with ES modules ([**@​JacobLey**](https://togithub.com/JacobLey)) - [#​4299](https://togithub.com/mochajs/mocha/issues/4299): In some circumstances, Mocha can run ES modules under Node.js v10 -- _use at your own risk!_ ([**@​giltayar**](https://togithub.com/giltayar)) #### :book: Documentation - [#​4246](https://togithub.com/mochajs/mocha/issues/4246): Add documentation for parallel mode and Root Hook plugins ([**@​boneskull**](https://togithub.com/boneskull)) #### :bug: Fixes (All bug fixes in Mocha v8.0.0 are also breaking changes, and are listed above)
--- ### Renovate configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/nodejs-error-reporting). --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index b9dbe47ef8a..dff4617daf5 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -82,7 +82,7 @@ "lodash.pick": "^4.4.0", "lodash.random": "^3.2.0", "lodash.without": "^4.4.0", - "mocha": "^7.1.1", + "mocha": "^8.0.0", "nock": "^12.0.0", "post-install-check": "0.0.1", "proxyquire": "^2.1.0", From b20b63f49883681d553cf24499d4ae7992ab8bd7 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 11 Jun 2020 10:22:48 -0700 Subject: [PATCH 350/527] chore(nodejs_templates): add script logging to node_library populate-secrets.sh (#486) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/e306327b-605f-4c07-9420-c106e40c47d5/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/e7034945fbdc0e79d3c57f6e299e5c90b0f11469 --- .../error-reporting/.kokoro/populate-secrets.sh | 12 ++++++++++++ handwritten/error-reporting/synth.metadata | 4 ++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/.kokoro/populate-secrets.sh b/handwritten/error-reporting/.kokoro/populate-secrets.sh index 85801f403e2..e6ce8200d75 100755 --- a/handwritten/error-reporting/.kokoro/populate-secrets.sh +++ b/handwritten/error-reporting/.kokoro/populate-secrets.sh @@ -15,12 +15,19 @@ set -eo pipefail +function now { date +"%Y-%m-%d %H:%M:%S" | tr -d '\n' ;} +function msg { println "$*" >&2 ;} +function println { printf '%s\n' "$(now) $*" ;} + + # Populates requested secrets set in SECRET_MANAGER_KEYS from service account: # kokoro-trampoline@cloud-devrel-kokoro-resources.iam.gserviceaccount.com SECRET_LOCATION="${KOKORO_GFILE_DIR}/secret_manager" +msg "Creating folder on disk for secrets: ${SECRET_LOCATION}" mkdir -p ${SECRET_LOCATION} for key in $(echo ${SECRET_MANAGER_KEYS} | sed "s/,/ /g") do + msg "Retrieving secret ${key}" docker run --entrypoint=gcloud \ --volume=${KOKORO_GFILE_DIR}:${KOKORO_GFILE_DIR} \ gcr.io/google.com/cloudsdktool/cloud-sdk \ @@ -29,4 +36,9 @@ do --project cloud-devrel-kokoro-resources \ --secret $key > \ "$SECRET_LOCATION/$key" + if [[ $? == 0 ]]; then + msg "Secret written to ${SECRET_LOCATION}/${key}" + else + msg "Error retrieving secret ${key}" + fi done diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 6dde29fc786..965c0b27a8b 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "ed486eeb570eb7dd26062d3dbda8a5d583d2824c" + "sha": "e637ede92f4d3dbbfbfb2803f2fda712f9285987" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "1c92077459db3dc50741e878f98b08c6261181e0" + "sha": "e7034945fbdc0e79d3c57f6e299e5c90b0f11469" } } ] From b3ddedc804edde9f8eb4335452b7ce8e2f2523f2 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 18 Jun 2020 07:48:32 -0700 Subject: [PATCH 351/527] chore: update node issue template (#488) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/37f383f8-7560-459e-b66c-def10ff830cb/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/b10590a4a1568548dd13cfcea9aa11d40898144b --- .../.github/ISSUE_TEMPLATE/bug_report.md | 11 ++++++++--- handwritten/error-reporting/synth.metadata | 4 ++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/handwritten/error-reporting/.github/ISSUE_TEMPLATE/bug_report.md b/handwritten/error-reporting/.github/ISSUE_TEMPLATE/bug_report.md index 55691a8b7cc..82af7c9c0fa 100644 --- a/handwritten/error-reporting/.github/ISSUE_TEMPLATE/bug_report.md +++ b/handwritten/error-reporting/.github/ISSUE_TEMPLATE/bug_report.md @@ -8,13 +8,18 @@ Thanks for stopping by to let us know something could be better! **PLEASE READ**: If you have a support contract with Google, please create an issue in the [support console](https://cloud.google.com/support/) instead of filing on GitHub. This will ensure a timely response. -Please run down the following list and make sure you've tried the usual "quick fixes": +1) Is this a client library issue or a product issue? +This is the client library for . We will only be able to assist with issues that pertain to the behaviors of this library. If the issue you're experiencing is due to the behavior of the product itself, please visit the [ Support page]() to reach the most relevant engineers. +2) Did someone already solve this? - Search the issues already opened: https://github.com/googleapis/nodejs-error-reporting/issues - Search the issues on our "catch-all" repository: https://github.com/googleapis/google-cloud-node - - Search StackOverflow: http://stackoverflow.com/questions/tagged/google-cloud-platform+node.js + - Search or ask on StackOverflow (engineers monitor these tags): http://stackoverflow.com/questions/tagged/google-cloud-platform+node.js -If you are still having issues, please be sure to include as much information as possible: +3) Do you have a support contract? +Please create an issue in the [support console](https://cloud.google.com/support/) to ensure a timely response. + +If the support paths suggested above still do not result in a resolution, please provide the following details. #### Environment details diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 965c0b27a8b..beb609f42ec 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "e637ede92f4d3dbbfbfb2803f2fda712f9285987" + "sha": "54aff9797da80c18ea5b844a1ab0f70a039d9fc0" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "e7034945fbdc0e79d3c57f6e299e5c90b0f11469" + "sha": "b10590a4a1568548dd13cfcea9aa11d40898144b" } } ] From b8fd2dcc6a2a9c034d5260bac6b6b3fb522d709c Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Sat, 27 Jun 2020 17:48:33 -0700 Subject: [PATCH 352/527] build: add config .gitattributes (#489) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/2a81bca4-7abd-4108-ac1f-21340f858709/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/dc9caca650c77b7039e2bbc3339ffb34ae78e5b7 --- handwritten/error-reporting/.gitattributes | 3 +++ handwritten/error-reporting/synth.metadata | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 handwritten/error-reporting/.gitattributes diff --git a/handwritten/error-reporting/.gitattributes b/handwritten/error-reporting/.gitattributes new file mode 100644 index 00000000000..2e63216ae9c --- /dev/null +++ b/handwritten/error-reporting/.gitattributes @@ -0,0 +1,3 @@ +*.ts text eol=lf +*.js test eol=lf +protos/* linguist-generated diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index beb609f42ec..66f064fdefd 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "54aff9797da80c18ea5b844a1ab0f70a039d9fc0" + "sha": "cf9f4554a872f2e4c8ee955edcc33bb6ad0be492" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "b10590a4a1568548dd13cfcea9aa11d40898144b" + "sha": "dc9caca650c77b7039e2bbc3339ffb34ae78e5b7" } } ] From 490d5a26c4e9ac3998d4e373dddf8f506a3be12c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 29 Jun 2020 18:42:53 +0200 Subject: [PATCH 353/527] chore(deps): update dependency nock to v13 (#490) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [nock](https://togithub.com/nock/nock) | devDependencies | major | [`^12.0.0` -> `^13.0.0`](https://renovatebot.com/diffs/npm/nock/12.0.3/13.0.0) | --- ### Release Notes
nock/nock ### [`v13.0.0`](https://togithub.com/nock/nock/releases/v13.0.0) [Compare Source](https://togithub.com/nock/nock/compare/v12.0.3...v13.0.0) See the [Migration Guide](https://togithub.com/nock/nock/blob/75507727cf09a0b7bf0aa7ebdf3621952921b82e/migration_guides/migrating_to_13.md) ##### Breaking changes 1. `Scope.log` has been removed. Use the `debug` library when [debugging](https://togithub.com/nock/nock#debugging) failed matches. 2. `socketDelay` has been removed. Use [`delayConnection`](https://togithub.com/nock/nock#delay-the-connection) instead. 3. `delay`, `delayConnection`, and `delayBody` are now setters instead of additive. 4. [When recording](https://togithub.com/nock/nock#recording), skipping body matching using `*` is no longer supported by `nock.define`. Set the definition body to `undefined` instead. 5. `ClientRequest.abort()` has been updated to align with Node's native behavior. This could be considered a feature, however, it created some subtle differences that are not backwards compatible. Refer to the migration guide for details. 6. Playback of a mocked responses will now never happen until the 'socket' event is emitted.
--- ### Renovate configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/nodejs-error-reporting). --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index dff4617daf5..7b36565484a 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -83,7 +83,7 @@ "lodash.random": "^3.2.0", "lodash.without": "^4.4.0", "mocha": "^8.0.0", - "nock": "^12.0.0", + "nock": "^13.0.0", "post-install-check": "0.0.1", "proxyquire": "^2.1.0", "restify": "^8.3.3", From cd2001c4067f92a885cdda1c70df24cebed195e9 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Mon, 6 Jul 2020 11:29:11 -0700 Subject: [PATCH 354/527] chore: update CODEOWNERS (#491) --- handwritten/error-reporting/.github/CODEOWNERS | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 handwritten/error-reporting/.github/CODEOWNERS diff --git a/handwritten/error-reporting/.github/CODEOWNERS b/handwritten/error-reporting/.github/CODEOWNERS new file mode 100644 index 00000000000..d904d1e2bde --- /dev/null +++ b/handwritten/error-reporting/.github/CODEOWNERS @@ -0,0 +1,9 @@ +# Code owners file. +# This file controls who is tagged for review for any given pull request. +# +# For syntax help see: +# https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners#codeowners-syntax + + +# The yoshi-nodejs team is the default owner for nodejs repositories. +* @googleapis/yoshi-nodejs From 676598270ce6f47bada8a49949157dde09e72c31 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 9 Jul 2020 17:50:42 -0700 Subject: [PATCH 355/527] build: typeo in nodejs .gitattribute (#492) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/cc99acfa-05b8-434b-9500-2f6faf2eaa02/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/799d8e6522c1ef7cb55a70d9ea0b15e045c3d00b --- handwritten/error-reporting/.gitattributes | 2 +- handwritten/error-reporting/synth.metadata | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/.gitattributes b/handwritten/error-reporting/.gitattributes index 2e63216ae9c..d4f4169b28b 100644 --- a/handwritten/error-reporting/.gitattributes +++ b/handwritten/error-reporting/.gitattributes @@ -1,3 +1,3 @@ *.ts text eol=lf -*.js test eol=lf +*.js text eol=lf protos/* linguist-generated diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 66f064fdefd..3276a58c76f 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "cf9f4554a872f2e4c8ee955edcc33bb6ad0be492" + "sha": "01529b7fe6a319ac0e5fc5008992103973acc97e" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "dc9caca650c77b7039e2bbc3339ffb34ae78e5b7" + "sha": "799d8e6522c1ef7cb55a70d9ea0b15e045c3d00b" } } ] From ebf807dd82b4de3f3985d67730fcf21430a56ce7 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sun, 12 Jul 2020 18:47:36 +0200 Subject: [PATCH 356/527] chore(deps): update dependency @types/mocha to v8 (#493) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [@types/mocha](https://togithub.com/DefinitelyTyped/DefinitelyTyped) | devDependencies | major | [`^7.0.0` -> `^8.0.0`](https://renovatebot.com/diffs/npm/@types%2fmocha/7.0.2/8.0.0) | --- ### Renovate configuration :date: **Schedule**: "after 9am and before 3pm" (UTC). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/nodejs-error-reporting). --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 7b36565484a..be7f354e4fc 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -56,7 +56,7 @@ "@types/lodash.pick": "^4.4.6", "@types/lodash.random": "^3.2.6", "@types/lodash.without": "^4.4.6", - "@types/mocha": "^7.0.0", + "@types/mocha": "^8.0.0", "@types/node": "^12.0.8", "@types/once": "^1.4.0", "@types/proxyquire": "^1.3.28", From 67408b7272f0c0542ff408f31b113f73863bc999 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 14 Jul 2020 09:09:25 -0700 Subject: [PATCH 357/527] build: missing closing paren in publish script (#495) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/9c6207e5-a7a6-4e44-ab6b-91751e0230b1/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/d82deccf657a66e31bd5da9efdb96c6fa322fc7e --- handwritten/error-reporting/.kokoro/publish.sh | 2 +- handwritten/error-reporting/synth.metadata | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/.kokoro/publish.sh b/handwritten/error-reporting/.kokoro/publish.sh index 24957d71def..f056d861729 100755 --- a/handwritten/error-reporting/.kokoro/publish.sh +++ b/handwritten/error-reporting/.kokoro/publish.sh @@ -24,7 +24,7 @@ python3 -m releasetool publish-reporter-script > /tmp/publisher-script; source / cd $(dirname $0)/.. -NPM_TOKEN=$(cat $KOKORO_GFILE_DIR/secret_manager/npm_publish_token +NPM_TOKEN=$(cat $KOKORO_GFILE_DIR/secret_manager/npm_publish_token) echo "//wombat-dressing-room.appspot.com/:_authToken=${NPM_TOKEN}" > ~/.npmrc npm install diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 3276a58c76f..93ab258c557 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "01529b7fe6a319ac0e5fc5008992103973acc97e" + "sha": "fc6113e6aee5aec492dedbb05c67f5b46e16bb7f" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "799d8e6522c1ef7cb55a70d9ea0b15e045c3d00b" + "sha": "d82deccf657a66e31bd5da9efdb96c6fa322fc7e" } } ] From cbeda35ad5f748eceda308dabeb9c99a9ac96fcd Mon Sep 17 00:00:00 2001 From: "F. Hinkelmann" Date: Tue, 14 Jul 2020 15:36:03 -0400 Subject: [PATCH 358/527] chore: delete Node 8 presubmit tests (#494) --- .../.kokoro/presubmit/node8/common.cfg | 24 ------------------- .../.kokoro/presubmit/node8/test.cfg | 0 2 files changed, 24 deletions(-) delete mode 100644 handwritten/error-reporting/.kokoro/presubmit/node8/common.cfg delete mode 100644 handwritten/error-reporting/.kokoro/presubmit/node8/test.cfg diff --git a/handwritten/error-reporting/.kokoro/presubmit/node8/common.cfg b/handwritten/error-reporting/.kokoro/presubmit/node8/common.cfg deleted file mode 100644 index a605e42f84e..00000000000 --- a/handwritten/error-reporting/.kokoro/presubmit/node8/common.cfg +++ /dev/null @@ -1,24 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:8-user" -} -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-error-reporting/.kokoro/test.sh" -} diff --git a/handwritten/error-reporting/.kokoro/presubmit/node8/test.cfg b/handwritten/error-reporting/.kokoro/presubmit/node8/test.cfg deleted file mode 100644 index e69de29bb2d..00000000000 From 83ad9e326f260f94cec90621bb87abd0e25e65b8 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 17 Jul 2020 16:00:04 -0700 Subject: [PATCH 359/527] chore: add config files for cloud-rad for node.js, delete Node 8 templates (#499) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/5e903fff-57bb-4395-bb94-8b4d1909dbf6/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/21f1470ecd01424dc91c70f1a7c798e4e87d1eec Source-Link: https://github.com/googleapis/synthtool/commit/388e10f5ae302d3e8de1fac99f3a95d1ab8f824a --- .../.kokoro/release/docs-devsite.cfg | 26 ++ .../.kokoro/release/docs-devsite.sh | 62 +++ .../error-reporting/api-extractor.json | 369 ++++++++++++++++++ handwritten/error-reporting/synth.metadata | 4 +- 4 files changed, 459 insertions(+), 2 deletions(-) create mode 100644 handwritten/error-reporting/.kokoro/release/docs-devsite.cfg create mode 100755 handwritten/error-reporting/.kokoro/release/docs-devsite.sh create mode 100644 handwritten/error-reporting/api-extractor.json diff --git a/handwritten/error-reporting/.kokoro/release/docs-devsite.cfg b/handwritten/error-reporting/.kokoro/release/docs-devsite.cfg new file mode 100644 index 00000000000..77a501f8f20 --- /dev/null +++ b/handwritten/error-reporting/.kokoro/release/docs-devsite.cfg @@ -0,0 +1,26 @@ +# service account used to publish up-to-date docs. +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "docuploader_service_account" + } + } +} + +# doc publications use a Python image. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-scheduler/.kokoro/trampoline.sh" + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-scheduler/.kokoro/release/docs-devsite.sh" +} diff --git a/handwritten/error-reporting/.kokoro/release/docs-devsite.sh b/handwritten/error-reporting/.kokoro/release/docs-devsite.sh new file mode 100755 index 00000000000..b679c48c044 --- /dev/null +++ b/handwritten/error-reporting/.kokoro/release/docs-devsite.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -eo pipefail + +# build jsdocs (Python is installed on the Node 10 docker image). +if [[ -z "$CREDENTIALS" ]]; then + # if CREDENTIALS are explicitly set, assume we're testing locally + # and don't set NPM_CONFIG_PREFIX. + export NPM_CONFIG_PREFIX=/home/node/.npm-global + export PATH="$PATH:/home/node/.npm-global/bin" + cd $(dirname $0)/../.. +fi + +mkdir ./etc + +npm install +npm run api-extractor +npm run api-documenter + +npm i json@9.0.6 -g +NAME=$(cat .repo-metadata.json | json name) + +mkdir ./_devsite +cp ./yaml/$NAME/* ./_devsite +cp ./yaml/toc.yml ./_devsite/_toc.yaml + +# create docs.metadata, based on package.json and .repo-metadata.json. +pip install -U pip +python3 -m pip install --user gcp-docuploader +python3 -m docuploader create-metadata \ + --name=$NAME \ + --version=$(cat package.json | json version) \ + --language=$(cat .repo-metadata.json | json language) \ + --distribution-name=$(cat .repo-metadata.json | json distribution_name) \ + --product-page=$(cat .repo-metadata.json | json product_documentation) \ + --github-repository=$(cat .repo-metadata.json | json repo) \ + --issue-tracker=$(cat .repo-metadata.json | json issue_tracker) +cp docs.metadata ./_devsite/docs.metadata + +# deploy the docs. +if [[ -z "$CREDENTIALS" ]]; then + CREDENTIALS=${KOKORO_KEYSTORE_DIR}/73713_docuploader_service_account +fi +if [[ -z "$BUCKET" ]]; then + BUCKET=docs-staging-v2-staging +fi + +python3 -m docuploader upload ./_devsite --destination-prefix docfx --credentials $CREDENTIALS --staging-bucket $BUCKET diff --git a/handwritten/error-reporting/api-extractor.json b/handwritten/error-reporting/api-extractor.json new file mode 100644 index 00000000000..de228294b23 --- /dev/null +++ b/handwritten/error-reporting/api-extractor.json @@ -0,0 +1,369 @@ +/** + * Config file for API Extractor. For more info, please visit: https://api-extractor.com + */ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + + /** + * Optionally specifies another JSON config file that this file extends from. This provides a way for + * standard settings to be shared across multiple projects. + * + * If the path starts with "./" or "../", the path is resolved relative to the folder of the file that contains + * the "extends" field. Otherwise, the first path segment is interpreted as an NPM package name, and will be + * resolved using NodeJS require(). + * + * SUPPORTED TOKENS: none + * DEFAULT VALUE: "" + */ + // "extends": "./shared/api-extractor-base.json" + // "extends": "my-package/include/api-extractor-base.json" + + /** + * Determines the "" token that can be used with other config file settings. The project folder + * typically contains the tsconfig.json and package.json config files, but the path is user-defined. + * + * The path is resolved relative to the folder of the config file that contains the setting. + * + * The default value for "projectFolder" is the token "", which means the folder is determined by traversing + * parent folders, starting from the folder containing api-extractor.json, and stopping at the first folder + * that contains a tsconfig.json file. If a tsconfig.json file cannot be found in this way, then an error + * will be reported. + * + * SUPPORTED TOKENS: + * DEFAULT VALUE: "" + */ + // "projectFolder": "..", + + /** + * (REQUIRED) Specifies the .d.ts file to be used as the starting point for analysis. API Extractor + * analyzes the symbols exported by this module. + * + * The file extension must be ".d.ts" and not ".ts". + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + */ + "mainEntryPointFilePath": "/protos/protos.d.ts", + + /** + * A list of NPM package names whose exports should be treated as part of this package. + * + * For example, suppose that Webpack is used to generate a distributed bundle for the project "library1", + * and another NPM package "library2" is embedded in this bundle. Some types from library2 may become part + * of the exported API for library1, but by default API Extractor would generate a .d.ts rollup that explicitly + * imports library2. To avoid this, we can specify: + * + * "bundledPackages": [ "library2" ], + * + * This would direct API Extractor to embed those types directly in the .d.ts rollup, as if they had been + * local files for library1. + */ + "bundledPackages": [ ], + + /** + * Determines how the TypeScript compiler engine will be invoked by API Extractor. + */ + "compiler": { + /** + * Specifies the path to the tsconfig.json file to be used by API Extractor when analyzing the project. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * Note: This setting will be ignored if "overrideTsconfig" is used. + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/tsconfig.json" + */ + // "tsconfigFilePath": "/tsconfig.json", + + /** + * Provides a compiler configuration that will be used instead of reading the tsconfig.json file from disk. + * The object must conform to the TypeScript tsconfig schema: + * + * http://json.schemastore.org/tsconfig + * + * If omitted, then the tsconfig.json file will be read from the "projectFolder". + * + * DEFAULT VALUE: no overrideTsconfig section + */ + // "overrideTsconfig": { + // . . . + // } + + /** + * This option causes the compiler to be invoked with the --skipLibCheck option. This option is not recommended + * and may cause API Extractor to produce incomplete or incorrect declarations, but it may be required when + * dependencies contain declarations that are incompatible with the TypeScript engine that API Extractor uses + * for its analysis. Where possible, the underlying issue should be fixed rather than relying on skipLibCheck. + * + * DEFAULT VALUE: false + */ + // "skipLibCheck": true, + }, + + /** + * Configures how the API report file (*.api.md) will be generated. + */ + "apiReport": { + /** + * (REQUIRED) Whether to generate an API report. + */ + "enabled": true, + + /** + * The filename for the API report files. It will be combined with "reportFolder" or "reportTempFolder" to produce + * a full file path. + * + * The file extension should be ".api.md", and the string should not contain a path separator such as "\" or "/". + * + * SUPPORTED TOKENS: , + * DEFAULT VALUE: ".api.md" + */ + // "reportFileName": ".api.md", + + /** + * Specifies the folder where the API report file is written. The file name portion is determined by + * the "reportFileName" setting. + * + * The API report file is normally tracked by Git. Changes to it can be used to trigger a branch policy, + * e.g. for an API review. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/etc/" + */ + // "reportFolder": "/etc/", + + /** + * Specifies the folder where the temporary report file is written. The file name portion is determined by + * the "reportFileName" setting. + * + * After the temporary file is written to disk, it is compared with the file in the "reportFolder". + * If they are different, a production build will fail. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/temp/" + */ + // "reportTempFolder": "/temp/" + }, + + /** + * Configures how the doc model file (*.api.json) will be generated. + */ + "docModel": { + /** + * (REQUIRED) Whether to generate a doc model file. + */ + "enabled": true, + + /** + * The output path for the doc model file. The file extension should be ".api.json". + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/temp/.api.json" + */ + // "apiJsonFilePath": "/temp/.api.json" + }, + + /** + * Configures how the .d.ts rollup file will be generated. + */ + "dtsRollup": { + /** + * (REQUIRED) Whether to generate the .d.ts rollup file. + */ + "enabled": true, + + /** + * Specifies the output path for a .d.ts rollup file to be generated without any trimming. + * This file will include all declarations that are exported by the main entry point. + * + * If the path is an empty string, then this file will not be written. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/dist/.d.ts" + */ + // "untrimmedFilePath": "/dist/.d.ts", + + /** + * Specifies the output path for a .d.ts rollup file to be generated with trimming for a "beta" release. + * This file will include only declarations that are marked as "@public" or "@beta". + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "" + */ + // "betaTrimmedFilePath": "/dist/-beta.d.ts", + + + /** + * Specifies the output path for a .d.ts rollup file to be generated with trimming for a "public" release. + * This file will include only declarations that are marked as "@public". + * + * If the path is an empty string, then this file will not be written. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "" + */ + // "publicTrimmedFilePath": "/dist/-public.d.ts", + + /** + * When a declaration is trimmed, by default it will be replaced by a code comment such as + * "Excluded from this release type: exampleMember". Set "omitTrimmingComments" to true to remove the + * declaration completely. + * + * DEFAULT VALUE: false + */ + // "omitTrimmingComments": true + }, + + /** + * Configures how the tsdoc-metadata.json file will be generated. + */ + "tsdocMetadata": { + /** + * Whether to generate the tsdoc-metadata.json file. + * + * DEFAULT VALUE: true + */ + // "enabled": true, + + /** + * Specifies where the TSDoc metadata file should be written. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * The default value is "", which causes the path to be automatically inferred from the "tsdocMetadata", + * "typings" or "main" fields of the project's package.json. If none of these fields are set, the lookup + * falls back to "tsdoc-metadata.json" in the package folder. + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "" + */ + // "tsdocMetadataFilePath": "/dist/tsdoc-metadata.json" + }, + + /** + * Specifies what type of newlines API Extractor should use when writing output files. By default, the output files + * will be written with Windows-style newlines. To use POSIX-style newlines, specify "lf" instead. + * To use the OS's default newline kind, specify "os". + * + * DEFAULT VALUE: "crlf" + */ + // "newlineKind": "crlf", + + /** + * Configures how API Extractor reports error and warning messages produced during analysis. + * + * There are three sources of messages: compiler messages, API Extractor messages, and TSDoc messages. + */ + "messages": { + /** + * Configures handling of diagnostic messages reported by the TypeScript compiler engine while analyzing + * the input .d.ts files. + * + * TypeScript message identifiers start with "TS" followed by an integer. For example: "TS2551" + * + * DEFAULT VALUE: A single "default" entry with logLevel=warning. + */ + "compilerMessageReporting": { + /** + * Configures the default routing for messages that don't match an explicit rule in this table. + */ + "default": { + /** + * Specifies whether the message should be written to the the tool's output log. Note that + * the "addToApiReportFile" property may supersede this option. + * + * Possible values: "error", "warning", "none" + * + * Errors cause the build to fail and return a nonzero exit code. Warnings cause a production build fail + * and return a nonzero exit code. For a non-production build (e.g. when "api-extractor run" includes + * the "--local" option), the warning is displayed but the build will not fail. + * + * DEFAULT VALUE: "warning" + */ + "logLevel": "warning", + + /** + * When addToApiReportFile is true: If API Extractor is configured to write an API report file (.api.md), + * then the message will be written inside that file; otherwise, the message is instead logged according to + * the "logLevel" option. + * + * DEFAULT VALUE: false + */ + // "addToApiReportFile": false + }, + + // "TS2551": { + // "logLevel": "warning", + // "addToApiReportFile": true + // }, + // + // . . . + }, + + /** + * Configures handling of messages reported by API Extractor during its analysis. + * + * API Extractor message identifiers start with "ae-". For example: "ae-extra-release-tag" + * + * DEFAULT VALUE: See api-extractor-defaults.json for the complete table of extractorMessageReporting mappings + */ + "extractorMessageReporting": { + "default": { + "logLevel": "warning", + // "addToApiReportFile": false + }, + + // "ae-extra-release-tag": { + // "logLevel": "warning", + // "addToApiReportFile": true + // }, + // + // . . . + }, + + /** + * Configures handling of messages reported by the TSDoc parser when analyzing code comments. + * + * TSDoc message identifiers start with "tsdoc-". For example: "tsdoc-link-tag-unescaped-text" + * + * DEFAULT VALUE: A single "default" entry with logLevel=warning. + */ + "tsdocMessageReporting": { + "default": { + "logLevel": "warning", + // "addToApiReportFile": false + } + + // "tsdoc-link-tag-unescaped-text": { + // "logLevel": "warning", + // "addToApiReportFile": true + // }, + // + // . . . + } + } + +} diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 93ab258c557..04fd21210cf 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "fc6113e6aee5aec492dedbb05c67f5b46e16bb7f" + "sha": "4abc339e3f48aa5080b3f4647a00ae15b7d9b34f" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "d82deccf657a66e31bd5da9efdb96c6fa322fc7e" + "sha": "21f1470ecd01424dc91c70f1a7c798e4e87d1eec" } } ] From 646042d7be9f055150684f4cacaba2fca844128e Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 17 Jul 2020 16:46:11 -0700 Subject: [PATCH 360/527] build: add Node 8 tests (#498) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/5e903fff-57bb-4395-bb94-8b4d1909dbf6/targets - [ ] To automatically regenerate this PR, check this box. --- .../.kokoro/presubmit/node8/common.cfg | 24 +++++++++++++++++++ .../.kokoro/presubmit/node8/test.cfg | 0 2 files changed, 24 insertions(+) create mode 100644 handwritten/error-reporting/.kokoro/presubmit/node8/common.cfg create mode 100644 handwritten/error-reporting/.kokoro/presubmit/node8/test.cfg diff --git a/handwritten/error-reporting/.kokoro/presubmit/node8/common.cfg b/handwritten/error-reporting/.kokoro/presubmit/node8/common.cfg new file mode 100644 index 00000000000..a605e42f84e --- /dev/null +++ b/handwritten/error-reporting/.kokoro/presubmit/node8/common.cfg @@ -0,0 +1,24 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:8-user" +} +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-error-reporting/.kokoro/test.sh" +} diff --git a/handwritten/error-reporting/.kokoro/presubmit/node8/test.cfg b/handwritten/error-reporting/.kokoro/presubmit/node8/test.cfg new file mode 100644 index 00000000000..e69de29bb2d From 2e1c2a4f638895394b72f464f0854902fc265283 Mon Sep 17 00:00:00 2001 From: "F. Hinkelmann" Date: Tue, 21 Jul 2020 14:41:53 -0400 Subject: [PATCH 361/527] chore: add dev dependencies for cloud-rad ref docs (#500) --- handwritten/error-reporting/package.json | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index be7f354e4fc..dfee04280cd 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -31,7 +31,9 @@ "docs-test": "linkinator docs", "predocs-test": "npm run docs", "prelint": "cd samples; npm link ../; npm install", - "precompile": "gts clean" + "precompile": "gts clean", + "api-extractor": "api-extractor run --local", + "api-documenter": "api-documenter yaml --input-folder=temp" }, "dependencies": { "@google-cloud/common": "^3.0.0", @@ -88,6 +90,8 @@ "proxyquire": "^2.1.0", "restify": "^8.3.3", "typescript": "^3.8.3", - "uuid": "^8.0.0" + "uuid": "^8.0.0", + "@microsoft/api-documenter": "^7.8.10", + "@microsoft/api-extractor": "^7.8.10" } } From 1670cffd561eef79f914e383e4a5a543ed284364 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 21 Jul 2020 22:20:25 -0700 Subject: [PATCH 362/527] build: rename _toc to toc (#501) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/940354f9-15cd-4361-bbf4-dc9af1426979/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/99c93fe09f8c1dca09dfc0301c8668e3a70dd796 --- handwritten/error-reporting/.kokoro/release/docs-devsite.sh | 2 +- handwritten/error-reporting/synth.metadata | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/.kokoro/release/docs-devsite.sh b/handwritten/error-reporting/.kokoro/release/docs-devsite.sh index b679c48c044..3b93137d4db 100755 --- a/handwritten/error-reporting/.kokoro/release/docs-devsite.sh +++ b/handwritten/error-reporting/.kokoro/release/docs-devsite.sh @@ -36,7 +36,7 @@ NAME=$(cat .repo-metadata.json | json name) mkdir ./_devsite cp ./yaml/$NAME/* ./_devsite -cp ./yaml/toc.yml ./_devsite/_toc.yaml +cp ./yaml/toc.yml ./_devsite/toc.yml # create docs.metadata, based on package.json and .repo-metadata.json. pip install -U pip diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 04fd21210cf..f8eb0a9abd7 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "4abc339e3f48aa5080b3f4647a00ae15b7d9b34f" + "sha": "6c0e4a8c2d9b3337581a16381625246e5d9279a5" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "21f1470ecd01424dc91c70f1a7c798e4e87d1eec" + "sha": "99c93fe09f8c1dca09dfc0301c8668e3a70dd796" } } ] From c2fbefe2276a4cedd74aa58d002a48b2724f26d6 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 23 Jul 2020 21:34:09 -0700 Subject: [PATCH 363/527] chore: move gitattributes files to node templates (#503) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/d43b90cc-a087-4c57-864c-1e4f93292dc6/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/3a00b7fea8c4c83eaff8eb207f530a2e3e8e1de3 --- handwritten/error-reporting/.gitattributes | 1 + handwritten/error-reporting/synth.metadata | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/.gitattributes b/handwritten/error-reporting/.gitattributes index d4f4169b28b..33739cb74e4 100644 --- a/handwritten/error-reporting/.gitattributes +++ b/handwritten/error-reporting/.gitattributes @@ -1,3 +1,4 @@ *.ts text eol=lf *.js text eol=lf protos/* linguist-generated +**/api-extractor.json linguist-language=JSON-with-Comments diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index f8eb0a9abd7..9d033555516 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "6c0e4a8c2d9b3337581a16381625246e5d9279a5" + "sha": "7eec3fdbbaa8500efa82156171da0d1a928589e6" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "99c93fe09f8c1dca09dfc0301c8668e3a70dd796" + "sha": "3a00b7fea8c4c83eaff8eb207f530a2e3e8e1de3" } } ] From 7a763e3994d8901a8272fc9cc21e8460fd09a52a Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 29 Jul 2020 11:58:24 -0700 Subject: [PATCH 364/527] chore(node): fix kokoro build path for cloud-rad (#504) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/4bdc1826-2f69-49f1-a63b-94f99cceb5ee/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/89d431fb2975fc4e0ed24995a6e6dfc8ff4c24fa --- handwritten/error-reporting/.kokoro/release/docs-devsite.cfg | 4 ++-- handwritten/error-reporting/synth.metadata | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/handwritten/error-reporting/.kokoro/release/docs-devsite.cfg b/handwritten/error-reporting/.kokoro/release/docs-devsite.cfg index 77a501f8f20..a29d00b3885 100644 --- a/handwritten/error-reporting/.kokoro/release/docs-devsite.cfg +++ b/handwritten/error-reporting/.kokoro/release/docs-devsite.cfg @@ -18,9 +18,9 @@ env_vars: { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-scheduler/.kokoro/trampoline.sh" +build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-scheduler/.kokoro/release/docs-devsite.sh" + value: "github/nodejs-error-reporting/.kokoro/release/docs-devsite.sh" } diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 9d033555516..1b9e0a9c4e4 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "7eec3fdbbaa8500efa82156171da0d1a928589e6" + "sha": "a2051503e6eac951f773f91a1d3ad253cf003552" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "3a00b7fea8c4c83eaff8eb207f530a2e3e8e1de3" + "sha": "89d431fb2975fc4e0ed24995a6e6dfc8ff4c24fa" } } ] From 422ed242c1099c9a430e8b815d65a54ea1b6475a Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 31 Jul 2020 09:24:10 -0700 Subject: [PATCH 365/527] docs: add links to the CHANGELOG from the README.md for Java and Node (#505) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/7b446397-88f3-4463-9e7d-d2ce7069989d/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/5936421202fb53ed4641bcb824017dd393a3dbcc --- handwritten/error-reporting/README.md | 3 +++ handwritten/error-reporting/synth.metadata | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index e2e3fea2bde..f9762af72b3 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -16,6 +16,9 @@ [Stackdriver Error Reporting](https://cloud.google.com/error-reporting/docs/) aggregates and displays errors produced in your running cloud services. +A comprehensive list of changes in each version may be found in +[the CHANGELOG](https://github.com/googleapis/nodejs-error-reporting/blob/master/CHANGELOG.md). + * [Stackdriver Error Reporting Node.js Client API Reference][client-docs] * [Stackdriver Error Reporting Documentation][product-docs] * [github.com/googleapis/nodejs-error-reporting](https://github.com/googleapis/nodejs-error-reporting) diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 1b9e0a9c4e4..2e30b7c2efc 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "a2051503e6eac951f773f91a1d3ad253cf003552" + "sha": "81000ea66079dde0e49b7ebd008676560d1dfb4f" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "89d431fb2975fc4e0ed24995a6e6dfc8ff4c24fa" + "sha": "5936421202fb53ed4641bcb824017dd393a3dbcc" } } ] From 25abbd9185bca7541d6c0d44327a75c6e51db188 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Sat, 8 Aug 2020 11:36:04 -0700 Subject: [PATCH 366/527] build: --credential-file-override is no longer required (#507) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/4de22315-84b1-493d-8da2-dfa7688128f5/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/94421c47802f56a44c320257b2b4c190dc7d6b68 --- handwritten/error-reporting/.kokoro/populate-secrets.sh | 1 - handwritten/error-reporting/synth.metadata | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/.kokoro/populate-secrets.sh b/handwritten/error-reporting/.kokoro/populate-secrets.sh index e6ce8200d75..6f9d228859d 100755 --- a/handwritten/error-reporting/.kokoro/populate-secrets.sh +++ b/handwritten/error-reporting/.kokoro/populate-secrets.sh @@ -32,7 +32,6 @@ do --volume=${KOKORO_GFILE_DIR}:${KOKORO_GFILE_DIR} \ gcr.io/google.com/cloudsdktool/cloud-sdk \ secrets versions access latest \ - --credential-file-override=${KOKORO_GFILE_DIR}/kokoro-trampoline.service-account.json \ --project cloud-devrel-kokoro-resources \ --secret $key > \ "$SECRET_LOCATION/$key" diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 2e30b7c2efc..f57767b23a0 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "81000ea66079dde0e49b7ebd008676560d1dfb4f" + "sha": "4ba89d101e7258d352859b7b7d9be88d64d33113" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "5936421202fb53ed4641bcb824017dd393a3dbcc" + "sha": "94421c47802f56a44c320257b2b4c190dc7d6b68" } } ] From 1a3af5676196238b87b5dafb71a865e161e5f7ac Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 11 Aug 2020 22:08:59 -0700 Subject: [PATCH 367/527] chore: update cloud rad kokoro build job (#508) Delete `SharePoint` item from TOC. Source-Author: F. Hinkelmann Source-Date: Tue Aug 11 11:25:41 2020 -0400 Source-Repo: googleapis/synthtool Source-Sha: bd0deaa1113b588d70449535ab9cbf0f2bd0e72f Source-Link: https://github.com/googleapis/synthtool/commit/bd0deaa1113b588d70449535ab9cbf0f2bd0e72f --- handwritten/error-reporting/.kokoro/release/docs-devsite.sh | 5 +++++ handwritten/error-reporting/synth.metadata | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/.kokoro/release/docs-devsite.sh b/handwritten/error-reporting/.kokoro/release/docs-devsite.sh index 3b93137d4db..fa089cf290e 100755 --- a/handwritten/error-reporting/.kokoro/release/docs-devsite.sh +++ b/handwritten/error-reporting/.kokoro/release/docs-devsite.sh @@ -36,6 +36,11 @@ NAME=$(cat .repo-metadata.json | json name) mkdir ./_devsite cp ./yaml/$NAME/* ./_devsite + +# Delete SharePoint item, see https://github.com/microsoft/rushstack/issues/1229 +sed -i -e '1,3d' ./yaml/toc.yml +sed -i -e 's/^ //' ./yaml/toc.yml + cp ./yaml/toc.yml ./_devsite/toc.yml # create docs.metadata, based on package.json and .repo-metadata.json. diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index f57767b23a0..f36781cbba0 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "4ba89d101e7258d352859b7b7d9be88d64d33113" + "sha": "7c9a10c14a681ad02be92a3809e208e55cf2d53f" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "94421c47802f56a44c320257b2b4c190dc7d6b68" + "sha": "bd0deaa1113b588d70449535ab9cbf0f2bd0e72f" } } ] From 4179a6ae19dc4c587a722f29baf57569a6a10ce1 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 13 Aug 2020 09:14:43 -0700 Subject: [PATCH 368/527] build: perform publish using Node 12 (#509) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/c36c6dbc-ab79-4f17-b70b-523b420b2a70/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/5747555f7620113d9a2078a48f4c047a99d31b3e --- handwritten/error-reporting/.kokoro/release/publish.cfg | 2 +- handwritten/error-reporting/synth.metadata | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/.kokoro/release/publish.cfg b/handwritten/error-reporting/.kokoro/release/publish.cfg index 3ac258bc394..447d2ed6fce 100644 --- a/handwritten/error-reporting/.kokoro/release/publish.cfg +++ b/handwritten/error-reporting/.kokoro/release/publish.cfg @@ -61,7 +61,7 @@ build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:8-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:12-user" } env_vars: { diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index f36781cbba0..973a53bc442 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "7c9a10c14a681ad02be92a3809e208e55cf2d53f" + "sha": "981c13bb1d689e7b1ab35379d7a7cee0265d3ad1" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "bd0deaa1113b588d70449535ab9cbf0f2bd0e72f" + "sha": "5747555f7620113d9a2078a48f4c047a99d31b3e" } } ] From 7d42cf7eb3da173956413a1d19d7a3ce00b70cf9 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 19 Aug 2020 22:08:22 -0700 Subject: [PATCH 369/527] chore: start tracking obsolete files --- handwritten/error-reporting/synth.metadata | 59 +++++++++++++++++++++- 1 file changed, 57 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 973a53bc442..d8f4cf01d48 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -4,15 +4,70 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "981c13bb1d689e7b1ab35379d7a7cee0265d3ad1" + "sha": "414444240844973f817abe77ab22ec3a0110089f" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "5747555f7620113d9a2078a48f4c047a99d31b3e" + "sha": "1a60ff2a3975c2f5054431588bd95db9c3b862ba" } } + ], + "generatedFiles": [ + ".eslintignore", + ".eslintrc.json", + ".gitattributes", + ".github/ISSUE_TEMPLATE/bug_report.md", + ".github/ISSUE_TEMPLATE/feature_request.md", + ".github/ISSUE_TEMPLATE/support_request.md", + ".github/PULL_REQUEST_TEMPLATE.md", + ".github/publish.yml", + ".github/release-please.yml", + ".github/workflows/ci.yaml", + ".kokoro/.gitattributes", + ".kokoro/common.cfg", + ".kokoro/continuous/node10/common.cfg", + ".kokoro/continuous/node10/docs.cfg", + ".kokoro/continuous/node10/lint.cfg", + ".kokoro/continuous/node10/samples-test.cfg", + ".kokoro/continuous/node10/system-test.cfg", + ".kokoro/continuous/node10/test.cfg", + ".kokoro/continuous/node12/common.cfg", + ".kokoro/continuous/node12/test.cfg", + ".kokoro/docs.sh", + ".kokoro/lint.sh", + ".kokoro/populate-secrets.sh", + ".kokoro/presubmit/node10/common.cfg", + ".kokoro/presubmit/node10/samples-test.cfg", + ".kokoro/presubmit/node10/system-test.cfg", + ".kokoro/presubmit/node12/common.cfg", + ".kokoro/presubmit/node12/test.cfg", + ".kokoro/publish.sh", + ".kokoro/release/docs-devsite.cfg", + ".kokoro/release/docs-devsite.sh", + ".kokoro/release/docs.cfg", + ".kokoro/release/docs.sh", + ".kokoro/release/publish.cfg", + ".kokoro/samples-test.sh", + ".kokoro/system-test.sh", + ".kokoro/test.bat", + ".kokoro/test.sh", + ".kokoro/trampoline.sh", + ".mocharc.js", + ".nycrc", + ".prettierignore", + ".prettierrc.js", + "CODE_OF_CONDUCT.md", + "CONTRIBUTING.md", + "LICENSE", + "README.md", + "api-extractor.json", + "package-lock.json.1413988711", + "package-lock.json.2372783541", + "renovate.json", + "samples/README.md", + "samples/package-lock.json.2318239361" ] } \ No newline at end of file From fa48eea0dd99b95c57e6871f7f7fd8e00b03b6fc Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 21 Aug 2020 09:28:03 -0700 Subject: [PATCH 370/527] build: move system and samples test from Node 10 to Node 12 (#511) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/ba2d388f-b3b2-4ad7-a163-0c6b4d86894f/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/05de3e1e14a0b07eab8b474e669164dbd31f81fb --- .../continuous/{node10 => node12}/lint.cfg | 0 .../{node10 => node12}/samples-test.cfg | 0 .../{node10 => node12}/system-test.cfg | 0 .../{node10 => node12}/samples-test.cfg | 0 .../{node10 => node12}/system-test.cfg | 0 handwritten/error-reporting/synth.metadata | 19 ++++++++----------- 6 files changed, 8 insertions(+), 11 deletions(-) rename handwritten/error-reporting/.kokoro/continuous/{node10 => node12}/lint.cfg (100%) rename handwritten/error-reporting/.kokoro/continuous/{node10 => node12}/samples-test.cfg (100%) rename handwritten/error-reporting/.kokoro/continuous/{node10 => node12}/system-test.cfg (100%) rename handwritten/error-reporting/.kokoro/presubmit/{node10 => node12}/samples-test.cfg (100%) rename handwritten/error-reporting/.kokoro/presubmit/{node10 => node12}/system-test.cfg (100%) diff --git a/handwritten/error-reporting/.kokoro/continuous/node10/lint.cfg b/handwritten/error-reporting/.kokoro/continuous/node12/lint.cfg similarity index 100% rename from handwritten/error-reporting/.kokoro/continuous/node10/lint.cfg rename to handwritten/error-reporting/.kokoro/continuous/node12/lint.cfg diff --git a/handwritten/error-reporting/.kokoro/continuous/node10/samples-test.cfg b/handwritten/error-reporting/.kokoro/continuous/node12/samples-test.cfg similarity index 100% rename from handwritten/error-reporting/.kokoro/continuous/node10/samples-test.cfg rename to handwritten/error-reporting/.kokoro/continuous/node12/samples-test.cfg diff --git a/handwritten/error-reporting/.kokoro/continuous/node10/system-test.cfg b/handwritten/error-reporting/.kokoro/continuous/node12/system-test.cfg similarity index 100% rename from handwritten/error-reporting/.kokoro/continuous/node10/system-test.cfg rename to handwritten/error-reporting/.kokoro/continuous/node12/system-test.cfg diff --git a/handwritten/error-reporting/.kokoro/presubmit/node10/samples-test.cfg b/handwritten/error-reporting/.kokoro/presubmit/node12/samples-test.cfg similarity index 100% rename from handwritten/error-reporting/.kokoro/presubmit/node10/samples-test.cfg rename to handwritten/error-reporting/.kokoro/presubmit/node12/samples-test.cfg diff --git a/handwritten/error-reporting/.kokoro/presubmit/node10/system-test.cfg b/handwritten/error-reporting/.kokoro/presubmit/node12/system-test.cfg similarity index 100% rename from handwritten/error-reporting/.kokoro/presubmit/node10/system-test.cfg rename to handwritten/error-reporting/.kokoro/presubmit/node12/system-test.cfg diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index d8f4cf01d48..a0be636b362 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "414444240844973f817abe77ab22ec3a0110089f" + "sha": "9f139c1901a1114bf45aa1961629ee5819c3e1e0" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "1a60ff2a3975c2f5054431588bd95db9c3b862ba" + "sha": "05de3e1e14a0b07eab8b474e669164dbd31f81fb" } } ], @@ -30,19 +30,19 @@ ".kokoro/common.cfg", ".kokoro/continuous/node10/common.cfg", ".kokoro/continuous/node10/docs.cfg", - ".kokoro/continuous/node10/lint.cfg", - ".kokoro/continuous/node10/samples-test.cfg", - ".kokoro/continuous/node10/system-test.cfg", ".kokoro/continuous/node10/test.cfg", ".kokoro/continuous/node12/common.cfg", + ".kokoro/continuous/node12/lint.cfg", + ".kokoro/continuous/node12/samples-test.cfg", + ".kokoro/continuous/node12/system-test.cfg", ".kokoro/continuous/node12/test.cfg", ".kokoro/docs.sh", ".kokoro/lint.sh", ".kokoro/populate-secrets.sh", ".kokoro/presubmit/node10/common.cfg", - ".kokoro/presubmit/node10/samples-test.cfg", - ".kokoro/presubmit/node10/system-test.cfg", ".kokoro/presubmit/node12/common.cfg", + ".kokoro/presubmit/node12/samples-test.cfg", + ".kokoro/presubmit/node12/system-test.cfg", ".kokoro/presubmit/node12/test.cfg", ".kokoro/publish.sh", ".kokoro/release/docs-devsite.cfg", @@ -64,10 +64,7 @@ "LICENSE", "README.md", "api-extractor.json", - "package-lock.json.1413988711", - "package-lock.json.2372783541", "renovate.json", - "samples/README.md", - "samples/package-lock.json.2318239361" + "samples/README.md" ] } \ No newline at end of file From b7cad821039ce189e48887e2599bf5b18f6125b0 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 28 Aug 2020 10:02:10 -0700 Subject: [PATCH 371/527] build: track flaky tests for "nightly", add new secrets for tagging (#512) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/157de3e1-dc75-4d92-b3d9-35d704dfd201/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/8cf6d2834ad14318e64429c3b94f6443ae83daf9 --- handwritten/error-reporting/.github/publish.yml | 0 handwritten/error-reporting/.kokoro/release/publish.cfg | 2 +- handwritten/error-reporting/.kokoro/samples-test.sh | 2 +- handwritten/error-reporting/.kokoro/system-test.sh | 2 +- handwritten/error-reporting/.kokoro/test.sh | 2 +- handwritten/error-reporting/synth.metadata | 5 ++--- 6 files changed, 6 insertions(+), 7 deletions(-) delete mode 100644 handwritten/error-reporting/.github/publish.yml diff --git a/handwritten/error-reporting/.github/publish.yml b/handwritten/error-reporting/.github/publish.yml deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/handwritten/error-reporting/.kokoro/release/publish.cfg b/handwritten/error-reporting/.kokoro/release/publish.cfg index 447d2ed6fce..9f9ab311f4b 100644 --- a/handwritten/error-reporting/.kokoro/release/publish.cfg +++ b/handwritten/error-reporting/.kokoro/release/publish.cfg @@ -49,7 +49,7 @@ before_action { env_vars: { key: "SECRET_MANAGER_KEYS" - value: "npm_publish_token" + value: "npm_publish_token,releasetool-publish-reporter-app,releasetool-publish-reporter-googleapis-installation,releasetool-publish-reporter-pem" } # Download trampoline resources. diff --git a/handwritten/error-reporting/.kokoro/samples-test.sh b/handwritten/error-reporting/.kokoro/samples-test.sh index 86e83c9d3da..c0c40139cb7 100755 --- a/handwritten/error-reporting/.kokoro/samples-test.sh +++ b/handwritten/error-reporting/.kokoro/samples-test.sh @@ -41,7 +41,7 @@ if [ -f samples/package.json ]; then cd .. # If tests are running against master, configure Build Cop # to open issues on failures: - if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]]; then + if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]] || [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"nightly"* ]]; then export MOCHA_REPORTER_OUTPUT=test_output_sponge_log.xml export MOCHA_REPORTER=xunit cleanup() { diff --git a/handwritten/error-reporting/.kokoro/system-test.sh b/handwritten/error-reporting/.kokoro/system-test.sh index dfae142a231..283f1700fef 100755 --- a/handwritten/error-reporting/.kokoro/system-test.sh +++ b/handwritten/error-reporting/.kokoro/system-test.sh @@ -35,7 +35,7 @@ npm install # If tests are running against master, configure Build Cop # to open issues on failures: -if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]]; then +if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]] || [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"nightly"* ]]; then export MOCHA_REPORTER_OUTPUT=test_output_sponge_log.xml export MOCHA_REPORTER=xunit cleanup() { diff --git a/handwritten/error-reporting/.kokoro/test.sh b/handwritten/error-reporting/.kokoro/test.sh index 8d9c2954579..47be59b987c 100755 --- a/handwritten/error-reporting/.kokoro/test.sh +++ b/handwritten/error-reporting/.kokoro/test.sh @@ -23,7 +23,7 @@ cd $(dirname $0)/.. npm install # If tests are running against master, configure Build Cop # to open issues on failures: -if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]]; then +if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]] || [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"nightly"* ]]; then export MOCHA_REPORTER_OUTPUT=test_output_sponge_log.xml export MOCHA_REPORTER=xunit cleanup() { diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index a0be636b362..681ed182f8a 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "9f139c1901a1114bf45aa1961629ee5819c3e1e0" + "sha": "5f654dba2e750d5c7f6e2b707c8437270b859cb6" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "05de3e1e14a0b07eab8b474e669164dbd31f81fb" + "sha": "8cf6d2834ad14318e64429c3b94f6443ae83daf9" } } ], @@ -23,7 +23,6 @@ ".github/ISSUE_TEMPLATE/feature_request.md", ".github/ISSUE_TEMPLATE/support_request.md", ".github/PULL_REQUEST_TEMPLATE.md", - ".github/publish.yml", ".github/release-please.yml", ".github/workflows/ci.yaml", ".kokoro/.gitattributes", From 029911b4ad1d62dce719784ffad50de7285bd3fd Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Sat, 12 Sep 2020 11:20:03 -0700 Subject: [PATCH 372/527] build(test): recursively find test files; fail on unsupported dependency versions (#515) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/690c7a47-5578-464e-a3d6-7b377467cdd9/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/fdd03c161003ab97657cc0218f25c82c89ddf4b6 --- handwritten/error-reporting/.mocharc.js | 3 ++- handwritten/error-reporting/synth.metadata | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/.mocharc.js b/handwritten/error-reporting/.mocharc.js index ff7b34fa5d1..0b600509bed 100644 --- a/handwritten/error-reporting/.mocharc.js +++ b/handwritten/error-reporting/.mocharc.js @@ -14,7 +14,8 @@ const config = { "enable-source-maps": true, "throw-deprecation": true, - "timeout": 10000 + "timeout": 10000, + "recursive": true } if (process.env.MOCHA_THROW_DEPRECATION === 'false') { delete config['throw-deprecation']; diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 681ed182f8a..4812da360ca 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "5f654dba2e750d5c7f6e2b707c8437270b859cb6" + "sha": "0c445fbba680eb6a05790607850bf9062da1f419" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "8cf6d2834ad14318e64429c3b94f6443ae83daf9" + "sha": "fdd03c161003ab97657cc0218f25c82c89ddf4b6" } } ], From 641efba46aec362b33174f3b77791924bb4becb8 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 1 Oct 2020 05:06:45 -0700 Subject: [PATCH 373/527] chore: update bucket for cloud-rad (#516) Co-authored-by: gcf-merge-on-green[bot] <60162190+gcf-merge-on-green[bot]@users.noreply.github.com> Source-Author: F. Hinkelmann Source-Date: Wed Sep 30 14:13:57 2020 -0400 Source-Repo: googleapis/synthtool Source-Sha: 079dcce498117f9570cebe6e6cff254b38ba3860 Source-Link: https://github.com/googleapis/synthtool/commit/079dcce498117f9570cebe6e6cff254b38ba3860 --- handwritten/error-reporting/.kokoro/release/docs-devsite.sh | 2 +- handwritten/error-reporting/synth.metadata | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/.kokoro/release/docs-devsite.sh b/handwritten/error-reporting/.kokoro/release/docs-devsite.sh index fa089cf290e..458fe4f9062 100755 --- a/handwritten/error-reporting/.kokoro/release/docs-devsite.sh +++ b/handwritten/error-reporting/.kokoro/release/docs-devsite.sh @@ -61,7 +61,7 @@ if [[ -z "$CREDENTIALS" ]]; then CREDENTIALS=${KOKORO_KEYSTORE_DIR}/73713_docuploader_service_account fi if [[ -z "$BUCKET" ]]; then - BUCKET=docs-staging-v2-staging + BUCKET=docs-staging-v2 fi python3 -m docuploader upload ./_devsite --destination-prefix docfx --credentials $CREDENTIALS --staging-bucket $BUCKET diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 4812da360ca..9120000784f 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "0c445fbba680eb6a05790607850bf9062da1f419" + "sha": "f926b506ea33b1794729ea156f5afed650aa0d1a" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "fdd03c161003ab97657cc0218f25c82c89ddf4b6" + "sha": "079dcce498117f9570cebe6e6cff254b38ba3860" } } ], From a003d7408446496d0bc59e42054cf965ecf46532 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 5 Oct 2020 10:42:07 -0700 Subject: [PATCH 374/527] build(node_library): migrate to Trampoline V2 (#518) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/939e9a1a-ee83-4100-84cf-4883fa030728/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/0c868d49b8e05bc1f299bc773df9eb4ef9ed96e9 --- .../error-reporting/.kokoro/common.cfg | 2 +- .../.kokoro/continuous/node10/common.cfg | 2 +- .../.kokoro/continuous/node12/common.cfg | 2 +- handwritten/error-reporting/.kokoro/docs.sh | 2 +- handwritten/error-reporting/.kokoro/lint.sh | 2 +- .../.kokoro/populate-secrets.sh | 65 ++- .../.kokoro/presubmit/node10/common.cfg | 2 +- .../.kokoro/presubmit/node12/common.cfg | 2 +- .../error-reporting/.kokoro/publish.sh | 2 +- .../.kokoro/release/docs-devsite.cfg | 2 +- .../.kokoro/release/docs-devsite.sh | 4 +- .../error-reporting/.kokoro/release/docs.cfg | 2 +- .../error-reporting/.kokoro/release/docs.sh | 4 +- .../.kokoro/release/publish.cfg | 6 +- .../error-reporting/.kokoro/samples-test.sh | 2 +- .../error-reporting/.kokoro/system-test.sh | 2 +- handwritten/error-reporting/.kokoro/test.sh | 2 +- .../error-reporting/.kokoro/trampoline.sh | 4 + .../error-reporting/.kokoro/trampoline_v2.sh | 488 ++++++++++++++++++ handwritten/error-reporting/.trampolinerc | 51 ++ handwritten/error-reporting/synth.metadata | 6 +- 21 files changed, 616 insertions(+), 38 deletions(-) create mode 100755 handwritten/error-reporting/.kokoro/trampoline_v2.sh create mode 100644 handwritten/error-reporting/.trampolinerc diff --git a/handwritten/error-reporting/.kokoro/common.cfg b/handwritten/error-reporting/.kokoro/common.cfg index 46a485cb122..ea2265473b2 100644 --- a/handwritten/error-reporting/.kokoro/common.cfg +++ b/handwritten/error-reporting/.kokoro/common.cfg @@ -11,7 +11,7 @@ action { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" +build_file: "nodejs-error-reporting/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { diff --git a/handwritten/error-reporting/.kokoro/continuous/node10/common.cfg b/handwritten/error-reporting/.kokoro/continuous/node10/common.cfg index 4d88b992141..95a5d793382 100644 --- a/handwritten/error-reporting/.kokoro/continuous/node10/common.cfg +++ b/handwritten/error-reporting/.kokoro/continuous/node10/common.cfg @@ -21,7 +21,7 @@ before_action { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" +build_file: "nodejs-error-reporting/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { diff --git a/handwritten/error-reporting/.kokoro/continuous/node12/common.cfg b/handwritten/error-reporting/.kokoro/continuous/node12/common.cfg index e596b27c433..eb54e947e9f 100644 --- a/handwritten/error-reporting/.kokoro/continuous/node12/common.cfg +++ b/handwritten/error-reporting/.kokoro/continuous/node12/common.cfg @@ -11,7 +11,7 @@ action { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" +build_file: "nodejs-error-reporting/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { diff --git a/handwritten/error-reporting/.kokoro/docs.sh b/handwritten/error-reporting/.kokoro/docs.sh index 952403faede..85901242b5e 100755 --- a/handwritten/error-reporting/.kokoro/docs.sh +++ b/handwritten/error-reporting/.kokoro/docs.sh @@ -16,7 +16,7 @@ set -eo pipefail -export NPM_CONFIG_PREFIX=/home/node/.npm-global +export NPM_CONFIG_PREFIX=${HOME}/.npm-global cd $(dirname $0)/.. diff --git a/handwritten/error-reporting/.kokoro/lint.sh b/handwritten/error-reporting/.kokoro/lint.sh index b03cb0439a6..aef4866e4c4 100755 --- a/handwritten/error-reporting/.kokoro/lint.sh +++ b/handwritten/error-reporting/.kokoro/lint.sh @@ -16,7 +16,7 @@ set -eo pipefail -export NPM_CONFIG_PREFIX=/home/node/.npm-global +export NPM_CONFIG_PREFIX=${HOME}/.npm-global cd $(dirname $0)/.. diff --git a/handwritten/error-reporting/.kokoro/populate-secrets.sh b/handwritten/error-reporting/.kokoro/populate-secrets.sh index 6f9d228859d..deb2b199eb4 100755 --- a/handwritten/error-reporting/.kokoro/populate-secrets.sh +++ b/handwritten/error-reporting/.kokoro/populate-secrets.sh @@ -13,31 +13,64 @@ # See the License for the specific language governing permissions and # limitations under the License. +# This file is called in the early stage of `trampoline_v2.sh` to +# populate secrets needed for the CI builds. + set -eo pipefail function now { date +"%Y-%m-%d %H:%M:%S" | tr -d '\n' ;} function msg { println "$*" >&2 ;} function println { printf '%s\n' "$(now) $*" ;} +# Populates requested secrets set in SECRET_MANAGER_KEYS + +# In Kokoro CI builds, we use the service account attached to the +# Kokoro VM. This means we need to setup auth on other CI systems. +# For local run, we just use the gcloud command for retrieving the +# secrets. + +if [[ "${RUNNING_IN_CI:-}" == "true" ]]; then + GCLOUD_COMMANDS=( + "docker" + "run" + "--entrypoint=gcloud" + "--volume=${KOKORO_GFILE_DIR}:${KOKORO_GFILE_DIR}" + "gcr.io/google.com/cloudsdktool/cloud-sdk" + ) + if [[ "${TRAMPOLINE_CI:-}" == "kokoro" ]]; then + SECRET_LOCATION="${KOKORO_GFILE_DIR}/secret_manager" + else + echo "Authentication for this CI system is not implemented yet." + exit 2 + # TODO: Determine appropriate SECRET_LOCATION and the GCLOUD_COMMANDS. + fi +else + # For local run, use /dev/shm or temporary directory for + # KOKORO_GFILE_DIR. + if [[ -d "/dev/shm" ]]; then + export KOKORO_GFILE_DIR=/dev/shm + else + export KOKORO_GFILE_DIR=$(mktemp -d -t ci-XXXXXXXX) + fi + SECRET_LOCATION="${KOKORO_GFILE_DIR}/secret_manager" + GCLOUD_COMMANDS=("gcloud") +fi -# Populates requested secrets set in SECRET_MANAGER_KEYS from service account: -# kokoro-trampoline@cloud-devrel-kokoro-resources.iam.gserviceaccount.com -SECRET_LOCATION="${KOKORO_GFILE_DIR}/secret_manager" msg "Creating folder on disk for secrets: ${SECRET_LOCATION}" mkdir -p ${SECRET_LOCATION} + for key in $(echo ${SECRET_MANAGER_KEYS} | sed "s/,/ /g") do - msg "Retrieving secret ${key}" - docker run --entrypoint=gcloud \ - --volume=${KOKORO_GFILE_DIR}:${KOKORO_GFILE_DIR} \ - gcr.io/google.com/cloudsdktool/cloud-sdk \ - secrets versions access latest \ - --project cloud-devrel-kokoro-resources \ - --secret $key > \ - "$SECRET_LOCATION/$key" - if [[ $? == 0 ]]; then - msg "Secret written to ${SECRET_LOCATION}/${key}" - else - msg "Error retrieving secret ${key}" - fi + msg "Retrieving secret ${key}" + "${GCLOUD_COMMANDS[@]}" \ + secrets versions access latest \ + --project cloud-devrel-kokoro-resources \ + --secret $key > \ + "$SECRET_LOCATION/$key" + if [[ $? == 0 ]]; then + msg "Secret written to ${SECRET_LOCATION}/${key}" + else + msg "Error retrieving secret ${key}" + exit 2 + fi done diff --git a/handwritten/error-reporting/.kokoro/presubmit/node10/common.cfg b/handwritten/error-reporting/.kokoro/presubmit/node10/common.cfg index 4d88b992141..95a5d793382 100644 --- a/handwritten/error-reporting/.kokoro/presubmit/node10/common.cfg +++ b/handwritten/error-reporting/.kokoro/presubmit/node10/common.cfg @@ -21,7 +21,7 @@ before_action { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" +build_file: "nodejs-error-reporting/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { diff --git a/handwritten/error-reporting/.kokoro/presubmit/node12/common.cfg b/handwritten/error-reporting/.kokoro/presubmit/node12/common.cfg index e596b27c433..eb54e947e9f 100644 --- a/handwritten/error-reporting/.kokoro/presubmit/node12/common.cfg +++ b/handwritten/error-reporting/.kokoro/presubmit/node12/common.cfg @@ -11,7 +11,7 @@ action { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" +build_file: "nodejs-error-reporting/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { diff --git a/handwritten/error-reporting/.kokoro/publish.sh b/handwritten/error-reporting/.kokoro/publish.sh index f056d861729..4db6bf1c7f5 100755 --- a/handwritten/error-reporting/.kokoro/publish.sh +++ b/handwritten/error-reporting/.kokoro/publish.sh @@ -16,7 +16,7 @@ set -eo pipefail -export NPM_CONFIG_PREFIX=/home/node/.npm-global +export NPM_CONFIG_PREFIX=${HOME}/.npm-global # Start the releasetool reporter python3 -m pip install gcp-releasetool diff --git a/handwritten/error-reporting/.kokoro/release/docs-devsite.cfg b/handwritten/error-reporting/.kokoro/release/docs-devsite.cfg index a29d00b3885..7e58bf5e026 100644 --- a/handwritten/error-reporting/.kokoro/release/docs-devsite.cfg +++ b/handwritten/error-reporting/.kokoro/release/docs-devsite.cfg @@ -18,7 +18,7 @@ env_vars: { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" +build_file: "nodejs-error-reporting/.kokoro/trampoline_v2.sh" env_vars: { key: "TRAMPOLINE_BUILD_FILE" diff --git a/handwritten/error-reporting/.kokoro/release/docs-devsite.sh b/handwritten/error-reporting/.kokoro/release/docs-devsite.sh index 458fe4f9062..0d11b7ae951 100755 --- a/handwritten/error-reporting/.kokoro/release/docs-devsite.sh +++ b/handwritten/error-reporting/.kokoro/release/docs-devsite.sh @@ -20,8 +20,8 @@ set -eo pipefail if [[ -z "$CREDENTIALS" ]]; then # if CREDENTIALS are explicitly set, assume we're testing locally # and don't set NPM_CONFIG_PREFIX. - export NPM_CONFIG_PREFIX=/home/node/.npm-global - export PATH="$PATH:/home/node/.npm-global/bin" + export NPM_CONFIG_PREFIX=${HOME}/.npm-global + export PATH="$PATH:${NPM_CONFIG_PREFIX}/bin" cd $(dirname $0)/../.. fi diff --git a/handwritten/error-reporting/.kokoro/release/docs.cfg b/handwritten/error-reporting/.kokoro/release/docs.cfg index dd4d77a9918..840d0db4010 100644 --- a/handwritten/error-reporting/.kokoro/release/docs.cfg +++ b/handwritten/error-reporting/.kokoro/release/docs.cfg @@ -18,7 +18,7 @@ env_vars: { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" +build_file: "nodejs-error-reporting/.kokoro/trampoline_v2.sh" env_vars: { key: "TRAMPOLINE_BUILD_FILE" diff --git a/handwritten/error-reporting/.kokoro/release/docs.sh b/handwritten/error-reporting/.kokoro/release/docs.sh index 4d3a0868531..4c866c86000 100755 --- a/handwritten/error-reporting/.kokoro/release/docs.sh +++ b/handwritten/error-reporting/.kokoro/release/docs.sh @@ -20,8 +20,8 @@ set -eo pipefail if [[ -z "$CREDENTIALS" ]]; then # if CREDENTIALS are explicitly set, assume we're testing locally # and don't set NPM_CONFIG_PREFIX. - export NPM_CONFIG_PREFIX=/home/node/.npm-global - export PATH="$PATH:/home/node/.npm-global/bin" + export NPM_CONFIG_PREFIX=${HOME}/.npm-global + export PATH="$PATH:${NPM_CONFIG_PREFIX}/bin" cd $(dirname $0)/../.. fi npm install diff --git a/handwritten/error-reporting/.kokoro/release/publish.cfg b/handwritten/error-reporting/.kokoro/release/publish.cfg index 9f9ab311f4b..a16ce223c22 100644 --- a/handwritten/error-reporting/.kokoro/release/publish.cfg +++ b/handwritten/error-reporting/.kokoro/release/publish.cfg @@ -27,7 +27,7 @@ before_action { } } -# Fetch magictoken to use with Magic Github Proxy +# Fetch magictoken to use with Magic Github Proxy before_action { fetch_keystore { keystore_resource { @@ -37,7 +37,7 @@ before_action { } } -# Fetch api key to use with Magic Github Proxy +# Fetch api key to use with Magic Github Proxy before_action { fetch_keystore { keystore_resource { @@ -56,7 +56,7 @@ env_vars: { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" +build_file: "nodejs-error-reporting/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { diff --git a/handwritten/error-reporting/.kokoro/samples-test.sh b/handwritten/error-reporting/.kokoro/samples-test.sh index c0c40139cb7..bab7ba4e967 100755 --- a/handwritten/error-reporting/.kokoro/samples-test.sh +++ b/handwritten/error-reporting/.kokoro/samples-test.sh @@ -16,7 +16,7 @@ set -eo pipefail -export NPM_CONFIG_PREFIX=/home/node/.npm-global +export NPM_CONFIG_PREFIX=${HOME}/.npm-global # Setup service account credentials. export GOOGLE_APPLICATION_CREDENTIALS=${KOKORO_GFILE_DIR}/service-account.json diff --git a/handwritten/error-reporting/.kokoro/system-test.sh b/handwritten/error-reporting/.kokoro/system-test.sh index 283f1700fef..8a08400484a 100755 --- a/handwritten/error-reporting/.kokoro/system-test.sh +++ b/handwritten/error-reporting/.kokoro/system-test.sh @@ -16,7 +16,7 @@ set -eo pipefail -export NPM_CONFIG_PREFIX=/home/node/.npm-global +export NPM_CONFIG_PREFIX=${HOME}/.npm-global # Setup service account credentials. export GOOGLE_APPLICATION_CREDENTIALS=${KOKORO_GFILE_DIR}/service-account.json diff --git a/handwritten/error-reporting/.kokoro/test.sh b/handwritten/error-reporting/.kokoro/test.sh index 47be59b987c..5be385fef64 100755 --- a/handwritten/error-reporting/.kokoro/test.sh +++ b/handwritten/error-reporting/.kokoro/test.sh @@ -16,7 +16,7 @@ set -eo pipefail -export NPM_CONFIG_PREFIX=/home/node/.npm-global +export NPM_CONFIG_PREFIX=${HOME}/.npm-global cd $(dirname $0)/.. diff --git a/handwritten/error-reporting/.kokoro/trampoline.sh b/handwritten/error-reporting/.kokoro/trampoline.sh index a4241db23f4..f693a1ce7aa 100755 --- a/handwritten/error-reporting/.kokoro/trampoline.sh +++ b/handwritten/error-reporting/.kokoro/trampoline.sh @@ -13,6 +13,10 @@ # See the License for the specific language governing permissions and # limitations under the License. +# This file is not used any more, but we keep this file for making it +# easy to roll back. +# TODO: Remove this file from the template. + set -eo pipefail # Always run the cleanup script, regardless of the success of bouncing into diff --git a/handwritten/error-reporting/.kokoro/trampoline_v2.sh b/handwritten/error-reporting/.kokoro/trampoline_v2.sh new file mode 100755 index 00000000000..5ae75f977d7 --- /dev/null +++ b/handwritten/error-reporting/.kokoro/trampoline_v2.sh @@ -0,0 +1,488 @@ +#!/usr/bin/env bash +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# trampoline_v2.sh +# +# If you want to make a change to this file, consider doing so at: +# https://github.com/googlecloudplatform/docker-ci-helper +# +# This script is for running CI builds. For Kokoro builds, we +# set this script to `build_file` field in the Kokoro configuration. + +# This script does 3 things. +# +# 1. Prepare the Docker image for the test +# 2. Run the Docker with appropriate flags to run the test +# 3. Upload the newly built Docker image +# +# in a way that is somewhat compatible with trampoline_v1. +# +# These environment variables are required: +# TRAMPOLINE_IMAGE: The docker image to use. +# TRAMPOLINE_DOCKERFILE: The location of the Dockerfile. +# +# You can optionally change these environment variables: +# TRAMPOLINE_IMAGE_UPLOAD: +# (true|false): Whether to upload the Docker image after the +# successful builds. +# TRAMPOLINE_BUILD_FILE: The script to run in the docker container. +# TRAMPOLINE_WORKSPACE: The workspace path in the docker container. +# Defaults to /workspace. +# Potentially there are some repo specific envvars in .trampolinerc in +# the project root. +# +# Here is an example for running this script. +# TRAMPOLINE_IMAGE=gcr.io/cloud-devrel-kokoro-resources/node:10-user \ +# TRAMPOLINE_BUILD_FILE=.kokoro/system-test.sh \ +# .kokoro/trampoline_v2.sh + +set -euo pipefail + +TRAMPOLINE_VERSION="2.0.7" + +if command -v tput >/dev/null && [[ -n "${TERM:-}" ]]; then + readonly IO_COLOR_RED="$(tput setaf 1)" + readonly IO_COLOR_GREEN="$(tput setaf 2)" + readonly IO_COLOR_YELLOW="$(tput setaf 3)" + readonly IO_COLOR_RESET="$(tput sgr0)" +else + readonly IO_COLOR_RED="" + readonly IO_COLOR_GREEN="" + readonly IO_COLOR_YELLOW="" + readonly IO_COLOR_RESET="" +fi + +function function_exists { + [ $(LC_ALL=C type -t $1)"" == "function" ] +} + +# Logs a message using the given color. The first argument must be one +# of the IO_COLOR_* variables defined above, such as +# "${IO_COLOR_YELLOW}". The remaining arguments will be logged in the +# given color. The log message will also have an RFC-3339 timestamp +# prepended (in UTC). You can disable the color output by setting +# TERM=vt100. +function log_impl() { + local color="$1" + shift + local timestamp="$(date -u "+%Y-%m-%dT%H:%M:%SZ")" + echo "================================================================" + echo "${color}${timestamp}:" "$@" "${IO_COLOR_RESET}" + echo "================================================================" +} + +# Logs the given message with normal coloring and a timestamp. +function log() { + log_impl "${IO_COLOR_RESET}" "$@" +} + +# Logs the given message in green with a timestamp. +function log_green() { + log_impl "${IO_COLOR_GREEN}" "$@" +} + +# Logs the given message in yellow with a timestamp. +function log_yellow() { + log_impl "${IO_COLOR_YELLOW}" "$@" +} + +# Logs the given message in red with a timestamp. +function log_red() { + log_impl "${IO_COLOR_RED}" "$@" +} + +readonly tmpdir=$(mktemp -d -t ci-XXXXXXXX) +readonly tmphome="${tmpdir}/h" +mkdir -p "${tmphome}" + +function cleanup() { + rm -rf "${tmpdir}" +} +trap cleanup EXIT + +RUNNING_IN_CI="${RUNNING_IN_CI:-false}" + +# The workspace in the container, defaults to /workspace. +TRAMPOLINE_WORKSPACE="${TRAMPOLINE_WORKSPACE:-/workspace}" + +pass_down_envvars=( + # TRAMPOLINE_V2 variables. + # Tells scripts whether they are running as part of CI or not. + "RUNNING_IN_CI" + # Indicates which CI system we're in. + "TRAMPOLINE_CI" + # Indicates the version of the script. + "TRAMPOLINE_VERSION" +) + +log_yellow "Building with Trampoline ${TRAMPOLINE_VERSION}" + +# Detect which CI systems we're in. If we're in any of the CI systems +# we support, `RUNNING_IN_CI` will be true and `TRAMPOLINE_CI` will be +# the name of the CI system. Both envvars will be passing down to the +# container for telling which CI system we're in. +if [[ -n "${KOKORO_BUILD_ID:-}" ]]; then + # descriptive env var for indicating it's on CI. + RUNNING_IN_CI="true" + TRAMPOLINE_CI="kokoro" + if [[ "${TRAMPOLINE_USE_LEGACY_SERVICE_ACCOUNT:-}" == "true" ]]; then + if [[ ! -f "${KOKORO_GFILE_DIR}/kokoro-trampoline.service-account.json" ]]; then + log_red "${KOKORO_GFILE_DIR}/kokoro-trampoline.service-account.json does not exist. Did you forget to mount cloud-devrel-kokoro-resources/trampoline? Aborting." + exit 1 + fi + # This service account will be activated later. + TRAMPOLINE_SERVICE_ACCOUNT="${KOKORO_GFILE_DIR}/kokoro-trampoline.service-account.json" + else + if [[ "${TRAMPOLINE_VERBOSE:-}" == "true" ]]; then + gcloud auth list + fi + log_yellow "Configuring Container Registry access" + gcloud auth configure-docker --quiet + fi + pass_down_envvars+=( + # KOKORO dynamic variables. + "KOKORO_BUILD_NUMBER" + "KOKORO_BUILD_ID" + "KOKORO_JOB_NAME" + "KOKORO_GIT_COMMIT" + "KOKORO_GITHUB_COMMIT" + "KOKORO_GITHUB_PULL_REQUEST_NUMBER" + "KOKORO_GITHUB_PULL_REQUEST_COMMIT" + # For Build Cop Bot + "KOKORO_GITHUB_COMMIT_URL" + "KOKORO_GITHUB_PULL_REQUEST_URL" + ) +elif [[ "${TRAVIS:-}" == "true" ]]; then + RUNNING_IN_CI="true" + TRAMPOLINE_CI="travis" + pass_down_envvars+=( + "TRAVIS_BRANCH" + "TRAVIS_BUILD_ID" + "TRAVIS_BUILD_NUMBER" + "TRAVIS_BUILD_WEB_URL" + "TRAVIS_COMMIT" + "TRAVIS_COMMIT_MESSAGE" + "TRAVIS_COMMIT_RANGE" + "TRAVIS_JOB_NAME" + "TRAVIS_JOB_NUMBER" + "TRAVIS_JOB_WEB_URL" + "TRAVIS_PULL_REQUEST" + "TRAVIS_PULL_REQUEST_BRANCH" + "TRAVIS_PULL_REQUEST_SHA" + "TRAVIS_PULL_REQUEST_SLUG" + "TRAVIS_REPO_SLUG" + "TRAVIS_SECURE_ENV_VARS" + "TRAVIS_TAG" + ) +elif [[ -n "${GITHUB_RUN_ID:-}" ]]; then + RUNNING_IN_CI="true" + TRAMPOLINE_CI="github-workflow" + pass_down_envvars+=( + "GITHUB_WORKFLOW" + "GITHUB_RUN_ID" + "GITHUB_RUN_NUMBER" + "GITHUB_ACTION" + "GITHUB_ACTIONS" + "GITHUB_ACTOR" + "GITHUB_REPOSITORY" + "GITHUB_EVENT_NAME" + "GITHUB_EVENT_PATH" + "GITHUB_SHA" + "GITHUB_REF" + "GITHUB_HEAD_REF" + "GITHUB_BASE_REF" + ) +elif [[ "${CIRCLECI:-}" == "true" ]]; then + RUNNING_IN_CI="true" + TRAMPOLINE_CI="circleci" + pass_down_envvars+=( + "CIRCLE_BRANCH" + "CIRCLE_BUILD_NUM" + "CIRCLE_BUILD_URL" + "CIRCLE_COMPARE_URL" + "CIRCLE_JOB" + "CIRCLE_NODE_INDEX" + "CIRCLE_NODE_TOTAL" + "CIRCLE_PREVIOUS_BUILD_NUM" + "CIRCLE_PROJECT_REPONAME" + "CIRCLE_PROJECT_USERNAME" + "CIRCLE_REPOSITORY_URL" + "CIRCLE_SHA1" + "CIRCLE_STAGE" + "CIRCLE_USERNAME" + "CIRCLE_WORKFLOW_ID" + "CIRCLE_WORKFLOW_JOB_ID" + "CIRCLE_WORKFLOW_UPSTREAM_JOB_IDS" + "CIRCLE_WORKFLOW_WORKSPACE_ID" + ) +fi + +# Configure the service account for pulling the docker image. +function repo_root() { + local dir="$1" + while [[ ! -d "${dir}/.git" ]]; do + dir="$(dirname "$dir")" + done + echo "${dir}" +} + +# Detect the project root. In CI builds, we assume the script is in +# the git tree and traverse from there, otherwise, traverse from `pwd` +# to find `.git` directory. +if [[ "${RUNNING_IN_CI:-}" == "true" ]]; then + PROGRAM_PATH="$(realpath "$0")" + PROGRAM_DIR="$(dirname "${PROGRAM_PATH}")" + PROJECT_ROOT="$(repo_root "${PROGRAM_DIR}")" +else + PROJECT_ROOT="$(repo_root $(pwd))" +fi + +log_yellow "Changing to the project root: ${PROJECT_ROOT}." +cd "${PROJECT_ROOT}" + +# To support relative path for `TRAMPOLINE_SERVICE_ACCOUNT`, we need +# to use this environment variable in `PROJECT_ROOT`. +if [[ -n "${TRAMPOLINE_SERVICE_ACCOUNT:-}" ]]; then + + mkdir -p "${tmpdir}/gcloud" + gcloud_config_dir="${tmpdir}/gcloud" + + log_yellow "Using isolated gcloud config: ${gcloud_config_dir}." + export CLOUDSDK_CONFIG="${gcloud_config_dir}" + + log_yellow "Using ${TRAMPOLINE_SERVICE_ACCOUNT} for authentication." + gcloud auth activate-service-account \ + --key-file "${TRAMPOLINE_SERVICE_ACCOUNT}" + log_yellow "Configuring Container Registry access" + gcloud auth configure-docker --quiet +fi + +required_envvars=( + # The basic trampoline configurations. + "TRAMPOLINE_IMAGE" + "TRAMPOLINE_BUILD_FILE" +) + +if [[ -f "${PROJECT_ROOT}/.trampolinerc" ]]; then + source "${PROJECT_ROOT}/.trampolinerc" +fi + +log_yellow "Checking environment variables." +for e in "${required_envvars[@]}" +do + if [[ -z "${!e:-}" ]]; then + log "Missing ${e} env var. Aborting." + exit 1 + fi +done + +# We want to support legacy style TRAMPOLINE_BUILD_FILE used with V1 +# script: e.g. "github/repo-name/.kokoro/run_tests.sh" +TRAMPOLINE_BUILD_FILE="${TRAMPOLINE_BUILD_FILE#github/*/}" +log_yellow "Using TRAMPOLINE_BUILD_FILE: ${TRAMPOLINE_BUILD_FILE}" + +# ignore error on docker operations and test execution +set +e + +log_yellow "Preparing Docker image." +# We only download the docker image in CI builds. +if [[ "${RUNNING_IN_CI:-}" == "true" ]]; then + # Download the docker image specified by `TRAMPOLINE_IMAGE` + + # We may want to add --max-concurrent-downloads flag. + + log_yellow "Start pulling the Docker image: ${TRAMPOLINE_IMAGE}." + if docker pull "${TRAMPOLINE_IMAGE}"; then + log_green "Finished pulling the Docker image: ${TRAMPOLINE_IMAGE}." + has_image="true" + else + log_red "Failed pulling the Docker image: ${TRAMPOLINE_IMAGE}." + has_image="false" + fi +else + # For local run, check if we have the image. + if docker images "${TRAMPOLINE_IMAGE}" | grep "${TRAMPOLINE_IMAGE%:*}"; then + has_image="true" + else + has_image="false" + fi +fi + + +# The default user for a Docker container has uid 0 (root). To avoid +# creating root-owned files in the build directory we tell docker to +# use the current user ID. +user_uid="$(id -u)" +user_gid="$(id -g)" +user_name="$(id -un)" + +# To allow docker in docker, we add the user to the docker group in +# the host os. +docker_gid=$(cut -d: -f3 < <(getent group docker)) + +update_cache="false" +if [[ "${TRAMPOLINE_DOCKERFILE:-none}" != "none" ]]; then + # Build the Docker image from the source. + context_dir=$(dirname "${TRAMPOLINE_DOCKERFILE}") + docker_build_flags=( + "-f" "${TRAMPOLINE_DOCKERFILE}" + "-t" "${TRAMPOLINE_IMAGE}" + "--build-arg" "UID=${user_uid}" + "--build-arg" "USERNAME=${user_name}" + ) + if [[ "${has_image}" == "true" ]]; then + docker_build_flags+=("--cache-from" "${TRAMPOLINE_IMAGE}") + fi + + log_yellow "Start building the docker image." + if [[ "${TRAMPOLINE_VERBOSE:-false}" == "true" ]]; then + echo "docker build" "${docker_build_flags[@]}" "${context_dir}" + fi + + # ON CI systems, we want to suppress docker build logs, only + # output the logs when it fails. + if [[ "${RUNNING_IN_CI:-}" == "true" ]]; then + if docker build "${docker_build_flags[@]}" "${context_dir}" \ + > "${tmpdir}/docker_build.log" 2>&1; then + if [[ "${TRAMPOLINE_VERBOSE:-}" == "true" ]]; then + cat "${tmpdir}/docker_build.log" + fi + + log_green "Finished building the docker image." + update_cache="true" + else + log_red "Failed to build the Docker image, aborting." + log_yellow "Dumping the build logs:" + cat "${tmpdir}/docker_build.log" + exit 1 + fi + else + if docker build "${docker_build_flags[@]}" "${context_dir}"; then + log_green "Finished building the docker image." + update_cache="true" + else + log_red "Failed to build the Docker image, aborting." + exit 1 + fi + fi +else + if [[ "${has_image}" != "true" ]]; then + log_red "We do not have ${TRAMPOLINE_IMAGE} locally, aborting." + exit 1 + fi +fi + +# We use an array for the flags so they are easier to document. +docker_flags=( + # Remove the container after it exists. + "--rm" + + # Use the host network. + "--network=host" + + # Run in priviledged mode. We are not using docker for sandboxing or + # isolation, just for packaging our dev tools. + "--privileged" + + # Run the docker script with the user id. Because the docker image gets to + # write in ${PWD} you typically want this to be your user id. + # To allow docker in docker, we need to use docker gid on the host. + "--user" "${user_uid}:${docker_gid}" + + # Pass down the USER. + "--env" "USER=${user_name}" + + # Mount the project directory inside the Docker container. + "--volume" "${PROJECT_ROOT}:${TRAMPOLINE_WORKSPACE}" + "--workdir" "${TRAMPOLINE_WORKSPACE}" + "--env" "PROJECT_ROOT=${TRAMPOLINE_WORKSPACE}" + + # Mount the temporary home directory. + "--volume" "${tmphome}:/h" + "--env" "HOME=/h" + + # Allow docker in docker. + "--volume" "/var/run/docker.sock:/var/run/docker.sock" + + # Mount the /tmp so that docker in docker can mount the files + # there correctly. + "--volume" "/tmp:/tmp" + # Pass down the KOKORO_GFILE_DIR and KOKORO_KEYSTORE_DIR + # TODO(tmatsuo): This part is not portable. + "--env" "TRAMPOLINE_SECRET_DIR=/secrets" + "--volume" "${KOKORO_GFILE_DIR:-/dev/shm}:/secrets/gfile" + "--env" "KOKORO_GFILE_DIR=/secrets/gfile" + "--volume" "${KOKORO_KEYSTORE_DIR:-/dev/shm}:/secrets/keystore" + "--env" "KOKORO_KEYSTORE_DIR=/secrets/keystore" +) + +# Add an option for nicer output if the build gets a tty. +if [[ -t 0 ]]; then + docker_flags+=("-it") +fi + +# Passing down env vars +for e in "${pass_down_envvars[@]}" +do + if [[ -n "${!e:-}" ]]; then + docker_flags+=("--env" "${e}=${!e}") + fi +done + +# If arguments are given, all arguments will become the commands run +# in the container, otherwise run TRAMPOLINE_BUILD_FILE. +if [[ $# -ge 1 ]]; then + log_yellow "Running the given commands '" "${@:1}" "' in the container." + readonly commands=("${@:1}") + if [[ "${TRAMPOLINE_VERBOSE:-}" == "true" ]]; then + echo docker run "${docker_flags[@]}" "${TRAMPOLINE_IMAGE}" "${commands[@]}" + fi + docker run "${docker_flags[@]}" "${TRAMPOLINE_IMAGE}" "${commands[@]}" +else + log_yellow "Running the tests in a Docker container." + docker_flags+=("--entrypoint=${TRAMPOLINE_BUILD_FILE}") + if [[ "${TRAMPOLINE_VERBOSE:-}" == "true" ]]; then + echo docker run "${docker_flags[@]}" "${TRAMPOLINE_IMAGE}" + fi + docker run "${docker_flags[@]}" "${TRAMPOLINE_IMAGE}" +fi + + +test_retval=$? + +if [[ ${test_retval} -eq 0 ]]; then + log_green "Build finished with ${test_retval}" +else + log_red "Build finished with ${test_retval}" +fi + +# Only upload it when the test passes. +if [[ "${update_cache}" == "true" ]] && \ + [[ $test_retval == 0 ]] && \ + [[ "${TRAMPOLINE_IMAGE_UPLOAD:-false}" == "true" ]]; then + log_yellow "Uploading the Docker image." + if docker push "${TRAMPOLINE_IMAGE}"; then + log_green "Finished uploading the Docker image." + else + log_red "Failed uploading the Docker image." + fi + # Call trampoline_after_upload_hook if it's defined. + if function_exists trampoline_after_upload_hook; then + trampoline_after_upload_hook + fi + +fi + +exit "${test_retval}" diff --git a/handwritten/error-reporting/.trampolinerc b/handwritten/error-reporting/.trampolinerc new file mode 100644 index 00000000000..164613b9e6a --- /dev/null +++ b/handwritten/error-reporting/.trampolinerc @@ -0,0 +1,51 @@ +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Template for .trampolinerc + +# Add required env vars here. +required_envvars+=( +) + +# Add env vars which are passed down into the container here. +pass_down_envvars+=( + "AUTORELEASE_PR" +) + +# Prevent unintentional override on the default image. +if [[ "${TRAMPOLINE_IMAGE_UPLOAD:-false}" == "true" ]] && \ + [[ -z "${TRAMPOLINE_IMAGE:-}" ]]; then + echo "Please set TRAMPOLINE_IMAGE if you want to upload the Docker image." + exit 1 +fi + +# Define the default value if it makes sense. +if [[ -z "${TRAMPOLINE_IMAGE_UPLOAD:-}" ]]; then + TRAMPOLINE_IMAGE_UPLOAD="" +fi + +if [[ -z "${TRAMPOLINE_IMAGE:-}" ]]; then + TRAMPOLINE_IMAGE="" +fi + +if [[ -z "${TRAMPOLINE_DOCKERFILE:-}" ]]; then + TRAMPOLINE_DOCKERFILE="" +fi + +if [[ -z "${TRAMPOLINE_BUILD_FILE:-}" ]]; then + TRAMPOLINE_BUILD_FILE="" +fi + +# Secret Manager secrets. +source ${PROJECT_ROOT}/.kokoro/populate-secrets.sh diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 9120000784f..2b1dc783090 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "f926b506ea33b1794729ea156f5afed650aa0d1a" + "sha": "062e004d79066ae57bc27a1519a43fad70efa1f3" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "079dcce498117f9570cebe6e6cff254b38ba3860" + "sha": "0c868d49b8e05bc1f299bc773df9eb4ef9ed96e9" } } ], @@ -54,10 +54,12 @@ ".kokoro/test.bat", ".kokoro/test.sh", ".kokoro/trampoline.sh", + ".kokoro/trampoline_v2.sh", ".mocharc.js", ".nycrc", ".prettierignore", ".prettierrc.js", + ".trampolinerc", "CODE_OF_CONDUCT.md", "CONTRIBUTING.md", "LICENSE", From ca70688d5c6c1d7cbfb89590e80fcd1af7eb4d11 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 16 Oct 2020 10:08:11 -0700 Subject: [PATCH 375/527] build: only check --engine-strict for production deps (#520) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/02b30105-142c-418e-95f6-025914ce48a3/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/5451633881133e5573cc271a18e73b18caca8b1b --- handwritten/error-reporting/synth.metadata | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 2b1dc783090..d74f259dfcd 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "062e004d79066ae57bc27a1519a43fad70efa1f3" + "sha": "36b2e4aa4ed0135cdd19e740e6ed8ff4133ce99d" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "0c868d49b8e05bc1f299bc773df9eb4ef9ed96e9" + "sha": "5451633881133e5573cc271a18e73b18caca8b1b" } } ], From 93af822bdfa3744508cc6e629d158d8169be833e Mon Sep 17 00:00:00 2001 From: Nicole Zhu <69952136+nicoleczhu@users.noreply.github.com> Date: Tue, 3 Nov 2020 06:38:47 -0800 Subject: [PATCH 376/527] test: fix ci failing on new Mocha unhandledRejection listener (#528) --- .../system-test/error-reporting.ts | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index 26c75e9d0ba..9819f9d79aa 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -438,13 +438,11 @@ describe('error-reporting', () => { let oldLogger: (text: string) => void; let logOutput = ''; before(async () => { - // This test assumes that only the error-reporting library will be - // adding listeners to the 'unhandledRejection' event. Thus we need to - // make sure that no listeners for that event exist. If this check - // fails, then the reinitialize() method below will need to updated to - // more carefully reinitialize the error-reporting library without - // interfering with existing listeners of the 'unhandledRejection' event. - assert.strictEqual(process.listenerCount('unhandledRejection'), 0); + // This test assumes that the error reporting library will be adding listeners + // to the 'unhandledRejection' event. Thus we need to make sure other default + // listeners do not interfere. If this check fails, then update the reinitialize + // method below to more carefully reinitialize the error-reporting library. + assert.strictEqual(process.listenerCount('unhandledRejection'), 1); oldLogger = console.error; // eslint-disable-next-line @typescript-eslint/no-explicit-any console.error = function (this, ...args: any[]) { @@ -456,7 +454,13 @@ describe('error-reporting', () => { }); function reinitialize(extraConfig?: {}) { - process.removeAllListeners('unhandledRejection'); + for (const listener of process.listeners('unhandledRejection')) { + // Do not interfere with existing Mocha listener + if (!listener.toString().includes('isMochaError')) { + process.removeListener('unhandledRejection', listener); + } + } + const initConfiguration = Object.assign( { reportMode: 'always' as 'always', From 6db28182dde4899e255716c2b019eee7fdc3893f Mon Sep 17 00:00:00 2001 From: Simon Zeltser Date: Tue, 3 Nov 2020 08:30:43 -0800 Subject: [PATCH 377/527] chore: add api-logging to codeowners (#522) Co-authored-by: Nicole Zhu <69952136+nicoleczhu@users.noreply.github.com> --- .../error-reporting/.github/CODEOWNERS | 2 +- .../error-reporting/.readme-partials.yaml | 12 ++--- .../error-reporting/.repo-metadata.json | 5 +- handwritten/error-reporting/README.md | 47 ++++++++----------- 4 files changed, 29 insertions(+), 37 deletions(-) diff --git a/handwritten/error-reporting/.github/CODEOWNERS b/handwritten/error-reporting/.github/CODEOWNERS index d904d1e2bde..08e308f9239 100644 --- a/handwritten/error-reporting/.github/CODEOWNERS +++ b/handwritten/error-reporting/.github/CODEOWNERS @@ -6,4 +6,4 @@ # The yoshi-nodejs team is the default owner for nodejs repositories. -* @googleapis/yoshi-nodejs +* @googleapis/api-logging @googleapis/yoshi-nodejs diff --git a/handwritten/error-reporting/.readme-partials.yaml b/handwritten/error-reporting/.readme-partials.yaml index 94425a8fbf5..25ee457cc1f 100644 --- a/handwritten/error-reporting/.readme-partials.yaml +++ b/handwritten/error-reporting/.readme-partials.yaml @@ -1,11 +1,11 @@ introduction: |- > Node.js idiomatic client for [Error Reporting][product-docs]. - [Stackdriver Error Reporting](https://cloud.google.com/error-reporting/docs/) aggregates and displays errors produced in your running cloud services. + [Cloud Error Reporting](https://cloud.google.com/error-reporting/docs/) aggregates and displays errors produced in your running cloud services. body: |- - This module provides custom Stackdriver Error Reporting support for Node.js applications. - [Stackdriver Error Reporting](https://cloud.google.com/error-reporting/) is a feature of + This module provides custom Cloud Error Reporting support for Node.js applications. + [Cloud Error Reporting](https://cloud.google.com/error-reporting/) is a feature of Google Cloud Platform that allows in-depth monitoring and viewing of errors reported by applications running in almost any environment. @@ -13,11 +13,11 @@ body: |- Thus, if you are already using Winston or Bunyan in your application, and don't need custom error reporting capabilities, you do not need to use the `@google-cloud/error-reporting` library directly to report errors to the Error Reporting Console. - ![Stackdriver Error Reporting overview](https://raw.githubusercontent.com/googleapis/nodejs-error-reporting/master/doc/images/errors-overview.png) + ![Cloud Error Reporting overview](https://raw.githubusercontent.com/googleapis/nodejs-error-reporting/master/doc/images/errors-overview.png) Here's an introductory video that provides some more details: - [![Learn about Error Reporting in Stackdriver](https://img.youtube.com/vi/cVpWVD75Hs8/0.jpg)](https://www.youtube.com/watch?v=cVpWVD75Hs8) + [![Learn about Error Reporting in Cloud](https://img.youtube.com/vi/cVpWVD75Hs8/0.jpg)](https://www.youtube.com/watch?v=cVpWVD75Hs8) # When Errors Are Reported @@ -232,7 +232,7 @@ body: |- process.on('uncaughtException', (e) => { // Write the error to stderr. console.error(e); - // Report that same error the Stackdriver Error Service + // Report that same error the Cloud Error Service errors.report(e); }); ``` diff --git a/handwritten/error-reporting/.repo-metadata.json b/handwritten/error-reporting/.repo-metadata.json index 3a615c02afc..85090db25a8 100644 --- a/handwritten/error-reporting/.repo-metadata.json +++ b/handwritten/error-reporting/.repo-metadata.json @@ -1,6 +1,6 @@ { "name": "error-reporting", - "name_pretty": "Stackdriver Error Reporting", + "name_pretty": "Cloud Error Reporting", "product_documentation": "https://cloud.google.com/error-reporting", "client_documentation": "https://googleapis.dev/nodejs/error-reporting/latest/", "issue_tracker": "https://issuetracker.google.com/savedsearches/559780", @@ -8,5 +8,6 @@ "language": "nodejs", "repo": "googleapis/nodejs-error-reporting", "distribution_name": "@google-cloud/error-reporting", - "api_id": "clouderrorreporting.googleapis.com" + "api_id": "clouderrorreporting.googleapis.com", + "codeowner_team": "@googleapis/api-logging" } diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index f9762af72b3..6b13a429429 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -2,25 +2,21 @@ [//]: # "To regenerate it, use `python -m synthtool`." Google Cloud Platform logo -# [Stackdriver Error Reporting: Node.js Client](https://github.com/googleapis/nodejs-error-reporting) +# [Cloud Error Reporting: Node.js Client](https://github.com/googleapis/nodejs-error-reporting) [![release level](https://img.shields.io/badge/release%20level-beta-yellow.svg?style=flat)](https://cloud.google.com/terms/launch-stages) [![npm version](https://img.shields.io/npm/v/@google-cloud/error-reporting.svg)](https://www.npmjs.org/package/@google-cloud/error-reporting) [![codecov](https://img.shields.io/codecov/c/github/googleapis/nodejs-error-reporting/master.svg?style=flat)](https://codecov.io/gh/googleapis/nodejs-error-reporting) - - - > Node.js idiomatic client for [Error Reporting][product-docs]. -[Stackdriver Error Reporting](https://cloud.google.com/error-reporting/docs/) aggregates and displays errors produced in your running cloud services. - +[Cloud Error Reporting](https://cloud.google.com/error-reporting/docs/) aggregates and displays errors produced in your running cloud services. A comprehensive list of changes in each version may be found in [the CHANGELOG](https://github.com/googleapis/nodejs-error-reporting/blob/master/CHANGELOG.md). -* [Stackdriver Error Reporting Node.js Client API Reference][client-docs] -* [Stackdriver Error Reporting Documentation][product-docs] +* [Cloud Error Reporting Node.js Client API Reference][client-docs] +* [Cloud Error Reporting Documentation][product-docs] * [github.com/googleapis/nodejs-error-reporting](https://github.com/googleapis/nodejs-error-reporting) Read more about the client libraries for Cloud APIs, including the older @@ -30,7 +26,6 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. **Table of contents:** - * [Quickstart](#quickstart) * [Before you begin](#before-you-begin) * [Installing the client library](#installing-the-client-library) @@ -44,9 +39,9 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. ### Before you begin -1. [Select or create a Cloud Platform project][projects]. -1. [Enable the Stackdriver Error Reporting API][enable_api]. -1. [Set up authentication with a service account][auth] so you can access the +1. [Select or create a Cloud Platform project][projects]. +1. [Enable the Cloud Error Reporting API][enable_api]. +1. [Set up authentication with a service account][auth] so you can access the API from your local workstation. ### Installing the client library @@ -55,7 +50,6 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. npm install @google-cloud/error-reporting ``` - ### Using the client library ```javascript @@ -69,8 +63,8 @@ const errors = new ErrorReporting(); errors.report('Something broke!'); ``` -This module provides custom Stackdriver Error Reporting support for Node.js applications. -[Stackdriver Error Reporting](https://cloud.google.com/error-reporting/) is a feature of +This module provides custom Cloud Error Reporting support for Node.js applications. +[Cloud Error Reporting](https://cloud.google.com/error-reporting/) is a feature of Google Cloud Platform that allows in-depth monitoring and viewing of errors reported by applications running in almost any environment. @@ -78,15 +72,16 @@ However, note that [@google-cloud/logging-winston](https://github.com/googleapis Thus, if you are already using Winston or Bunyan in your application, and don't need custom error reporting capabilities, you do not need to use the `@google-cloud/error-reporting` library directly to report errors to the Error Reporting Console. -![Stackdriver Error Reporting overview](https://raw.githubusercontent.com/googleapis/nodejs-error-reporting/master/doc/images/errors-overview.png) +![Cloud Error Reporting overview](https://raw.githubusercontent.com/googleapis/nodejs-error-reporting/master/doc/images/errors-overview.png) Here's an introductory video that provides some more details: -[![Learn about Error Reporting in Stackdriver](https://img.youtube.com/vi/cVpWVD75Hs8/0.jpg)](https://www.youtube.com/watch?v=cVpWVD75Hs8) +[![Learn about Error Reporting in Cloud](https://img.youtube.com/vi/cVpWVD75Hs8/0.jpg)](https://www.youtube.com/watch?v=cVpWVD75Hs8) # When Errors Are Reported The `reportMode` configuration option is used to specify when errors are reported to the Error Reporting Console. It can have one of three values: + * `'production'` (default): Only report errors if the NODE_ENV environment variable is set to "production". * `'always'`: Always report errors regardless of the value of NODE_ENV. * `'never'`: Never report errors regardless of the value of NODE_ENV. @@ -94,12 +89,14 @@ The `reportMode` configuration option is used to specify when errors are reporte The `reportMode` configuration option replaces the deprecated `ignoreEnvironmentCheck` configuration option. If both the `reportMode` and `ignoreEnvironmentCheck` options are specified, the `reportMode` configuration option takes precedence. The `ignoreEnvironmentCheck` option should not be used. However, if it is used, and the `reportMode` option is not specified, it can have the values: + * `false` (default): Only report errors if the NODE_ENV environment variable is set to "production". * `true`: Always report errors regardless of the value of NODE_ENV. See the [Configuration](#configuration) section to learn how to specify configuration options. ## Configuration + The following code snippet lists available configuration options. All configuration options are optional. ```js @@ -156,6 +153,7 @@ errors.report('My error message'); ``` The stack trace associated with an error can be viewed in the error reporting console. + * If the `errors.report` method is given an `ErrorMessage` object built using the `errors.event` method, the stack trace at the point where the error event was constructed will be used. * If the `errors.report` method is given an `Error` object, the stack trace where the error was instantiated will be used. * If the `errors.report` method is given a string, the stack trace at the point where `errors.report` is invoked will be used. @@ -297,7 +295,7 @@ const errors = new ErrorReporting(); process.on('uncaughtException', (e) => { // Write the error to stderr. console.error(e); - // Report that same error the Stackdriver Error Service + // Report that same error the Cloud Error Service errors.report(e); }); ``` @@ -334,6 +332,7 @@ The [longjohn](https://www.npmjs.com/package/longjohn) module can be used with t Before reporting an `Error` object using the `report` method of the `@google-cloud/error-reporting` module, the stack trace needs to modified to remove this special line added by `longjohn`. Since the `longjohn` module can be configured to have a custom line indicating an async jump, the process of removing the custom line should be handled by the user of the `longjohn` module. The following code illustrates how to update an `Error`'s stack trace, to remove the default line of dashes added by `longjohn` to indicate an async jump, before reporting the error. + ```js const {ErrorReporting} = require('@google-cloud/error-reporting'); @@ -347,7 +346,6 @@ err.stack = (err.stack || '').split('\n') errors.report(err); ``` - ## Samples Samples are in the [`samples/`](https://github.com/googleapis/nodejs-error-reporting/tree/master/samples) directory. The samples' `README.md` @@ -361,9 +359,7 @@ has instructions for running the samples. | Manual reporting | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/master/samples/manual.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-error-reporting&page=editor&open_in_editor=samples/manual.js,samples/README.md) | | Quickstart | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/master/samples/quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-error-reporting&page=editor&open_in_editor=samples/quickstart.js,samples/README.md) | - - -The [Stackdriver Error Reporting Node.js Client API Reference][client-docs] documentation +The [Cloud Error Reporting Node.js Client API Reference][client-docs] documentation also contains samples. ## Supported Node.js Versions @@ -382,7 +378,7 @@ _Legacy Node.js versions are supported as a best effort:_ * Some security patches may not be able to be backported. * Dependencies will not be kept up-to-date, and features will not be backported. -#### Legacy tags available +### Legacy tags available * `legacy-8`: install client libraries from this dist-tag for versions compatible with Node.js 8. @@ -391,16 +387,11 @@ _Legacy Node.js versions are supported as a best effort:_ This library follows [Semantic Versioning](http://semver.org/). - - This library is considered to be in **beta**. This means it is expected to be mostly stable while we work toward a general availability release; however, complete stability is not guaranteed. We will address issues and requests against beta libraries with a high priority. - - - More Information: [Google Cloud Platform Launch Stages][launch_stages] [launch_stages]: https://cloud.google.com/terms/launch-stages From 4a1136a5ff57ef42e11ac1f9eb88638b443427f7 Mon Sep 17 00:00:00 2001 From: "Benjamin E. Coe" Date: Tue, 3 Nov 2020 11:52:13 -0500 Subject: [PATCH 378/527] build: generate up-to-date build config (#529) --- .../.kokoro/release/docs-devsite.sh | 4 + .../error-reporting/.kokoro/trampoline_v2.sh | 2 + .../error-reporting/CODE_OF_CONDUCT.md | 123 +++++++++++++----- handwritten/error-reporting/synth.metadata | 16 +-- .../test/unit/build-stack-trace.ts | 2 +- 5 files changed, 100 insertions(+), 47 deletions(-) diff --git a/handwritten/error-reporting/.kokoro/release/docs-devsite.sh b/handwritten/error-reporting/.kokoro/release/docs-devsite.sh index 0d11b7ae951..7657be3377a 100755 --- a/handwritten/error-reporting/.kokoro/release/docs-devsite.sh +++ b/handwritten/error-reporting/.kokoro/release/docs-devsite.sh @@ -37,9 +37,13 @@ NAME=$(cat .repo-metadata.json | json name) mkdir ./_devsite cp ./yaml/$NAME/* ./_devsite +# Clean up TOC # Delete SharePoint item, see https://github.com/microsoft/rushstack/issues/1229 sed -i -e '1,3d' ./yaml/toc.yml sed -i -e 's/^ //' ./yaml/toc.yml +# Delete interfaces from TOC (name and uid) +sed -i -e '/name: I[A-Z]/{N;d;}' ./yaml/toc.yml +sed -i -e '/^ *\@google-cloud.*:interface/d' ./yaml/toc.yml cp ./yaml/toc.yml ./_devsite/toc.yml diff --git a/handwritten/error-reporting/.kokoro/trampoline_v2.sh b/handwritten/error-reporting/.kokoro/trampoline_v2.sh index 5ae75f977d7..606d4321458 100755 --- a/handwritten/error-reporting/.kokoro/trampoline_v2.sh +++ b/handwritten/error-reporting/.kokoro/trampoline_v2.sh @@ -125,6 +125,8 @@ pass_down_envvars=( "TRAMPOLINE_CI" # Indicates the version of the script. "TRAMPOLINE_VERSION" + # Contains path to build artifacts being executed. + "KOKORO_BUILD_ARTIFACTS_SUBDIR" ) log_yellow "Building with Trampoline ${TRAMPOLINE_VERSION}" diff --git a/handwritten/error-reporting/CODE_OF_CONDUCT.md b/handwritten/error-reporting/CODE_OF_CONDUCT.md index 46b2a08ea6d..2add2547a81 100644 --- a/handwritten/error-reporting/CODE_OF_CONDUCT.md +++ b/handwritten/error-reporting/CODE_OF_CONDUCT.md @@ -1,43 +1,94 @@ -# Contributor Code of Conduct + +# Code of Conduct -As contributors and maintainers of this project, -and in the interest of fostering an open and welcoming community, -we pledge to respect all people who contribute through reporting issues, -posting feature requests, updating documentation, -submitting pull requests or patches, and other activities. +## Our Pledge -We are committed to making participation in this project -a harassment-free experience for everyone, -regardless of level of experience, gender, gender identity and expression, -sexual orientation, disability, personal appearance, -body size, race, ethnicity, age, religion, or nationality. +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of +experience, education, socio-economic status, nationality, personal appearance, +race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members Examples of unacceptable behavior by participants include: -* The use of sexualized language or imagery -* Personal attacks -* Trolling or insulting/derogatory comments -* Public or private harassment -* Publishing other's private information, -such as physical or electronic -addresses, without explicit permission -* Other unethical or unprofessional conduct. +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. Project maintainers have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions -that are not aligned to this Code of Conduct. -By adopting this Code of Conduct, -project maintainers commit themselves to fairly and consistently -applying these principles to every aspect of managing this project. -Project maintainers who do not follow or enforce the Code of Conduct -may be permanently removed from the project team. - -This code of conduct applies both within project spaces and in public spaces -when an individual is representing the project or its community. - -Instances of abusive, harassing, or otherwise unacceptable behavior -may be reported by opening an issue -or contacting one or more of the project maintainers. - -This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.2.0, -available at [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/) +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, or to ban temporarily or permanently any +contributor for other behaviors that they deem inappropriate, threatening, +offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +This Code of Conduct also applies outside the project spaces when the Project +Steward has a reasonable belief that an individual's behavior may have a +negative impact on the project or its community. + +## Conflict Resolution + +We do not believe that all conflict is bad; healthy debate and disagreement +often yield positive results. However, it is never okay to be disrespectful or +to engage in behavior that violates the project’s code of conduct. + +If you see someone violating the code of conduct, you are encouraged to address +the behavior directly with those involved. Many issues can be resolved quickly +and easily, and this gives people more control over the outcome of their +dispute. If you are unable to resolve the matter for any reason, or if the +behavior is threatening or harassing, report it. We are dedicated to providing +an environment where participants feel welcome and safe. + +Reports should be directed to *googleapis-stewards@google.com*, the +Project Steward(s) for *Google Cloud Client Libraries*. It is the Project Steward’s duty to +receive and address reported violations of the code of conduct. They will then +work with a committee consisting of representatives from the Open Source +Programs Office and the Google Open Source Strategy team. If for any reason you +are uncomfortable reaching out to the Project Steward, please email +opensource@google.com. + +We will investigate every complaint, but you may not receive a direct response. +We will use our discretion in determining when and how to follow up on reported +incidents, which may range from not taking action to permanent expulsion from +the project and project-sponsored spaces. We will notify the accused of the +report and provide them an opportunity to discuss it before any action is taken. +The identity of the reporter will be omitted from the details of the report +supplied to the accused. In potentially harmful situations, such as ongoing +harassment or threats to anyone's safety, we may take action without notice. + +## Attribution + +This Code of Conduct is adapted from the Contributor Covenant, version 1.4, +available at +https://www.contributor-covenant.org/version/1/4/code-of-conduct.html \ No newline at end of file diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index d74f259dfcd..c052669be6a 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -3,15 +3,8 @@ { "git": { "name": ".", - "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "36b2e4aa4ed0135cdd19e740e6ed8ff4133ce99d" - } - }, - { - "git": { - "name": "synthtool", - "remote": "https://github.com/googleapis/synthtool.git", - "sha": "5451633881133e5573cc271a18e73b18caca8b1b" + "remote": "git@github.com:googleapis/nodejs-error-reporting.git", + "sha": "1ad83651e52a6a87e4e6946f6e05526a5be101d6" } } ], @@ -65,7 +58,10 @@ "LICENSE", "README.md", "api-extractor.json", + "package-lock.json.1637601552", + "package-lock.json.1766790967", "renovate.json", - "samples/README.md" + "samples/README.md", + "samples/package-lock.json.2310227638" ] } \ No newline at end of file diff --git a/handwritten/error-reporting/test/unit/build-stack-trace.ts b/handwritten/error-reporting/test/unit/build-stack-trace.ts index da9aaeecd9b..2a7095d0cb3 100644 --- a/handwritten/error-reporting/test/unit/build-stack-trace.ts +++ b/handwritten/error-reporting/test/unit/build-stack-trace.ts @@ -21,7 +21,7 @@ const SRC_ROOT = path.join(__dirname, '..', '..', 'src'); describe('build-stack-trace', () => { it('Should not have a message attached if none is given', () => { - assert(buildStackTrace().startsWith(' at')); + assert(buildStackTrace().includes(' at')); assert(!buildStackTrace(undefined).startsWith('undefined')); assert(!buildStackTrace(null).startsWith('null')); }); From c2119ccdd4c95e974c33729e5910ce1fe36030ce Mon Sep 17 00:00:00 2001 From: Nicole Zhu <69952136+nicoleczhu@users.noreply.github.com> Date: Tue, 3 Nov 2020 10:57:56 -0800 Subject: [PATCH 379/527] chore: add generated files bot config (#530) --- handwritten/error-reporting/.github/generated-files-bot.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 handwritten/error-reporting/.github/generated-files-bot.yml diff --git a/handwritten/error-reporting/.github/generated-files-bot.yml b/handwritten/error-reporting/.github/generated-files-bot.yml new file mode 100644 index 00000000000..8bb592438b0 --- /dev/null +++ b/handwritten/error-reporting/.github/generated-files-bot.yml @@ -0,0 +1,5 @@ +# Source template: https://github.com/googleapis/synthtool/blob/master/synthtool/gcp/templates/node_library/CONTRIBUTING.md +externalManifests: +- type: json + file: 'synth.metadata' + jsonpath: '$.generatedFiles[*]' From 967f0fbdf7203155f859675142b89ca11090e98c Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 4 Nov 2020 07:01:34 -0800 Subject: [PATCH 380/527] docs: update README formatting and branding (#531) --- handwritten/error-reporting/README.md | 27 ++++++++++++++-------- handwritten/error-reporting/synth.metadata | 17 ++++++++++---- 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 6b13a429429..4dc1ea6bb4a 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -8,10 +8,14 @@ [![npm version](https://img.shields.io/npm/v/@google-cloud/error-reporting.svg)](https://www.npmjs.org/package/@google-cloud/error-reporting) [![codecov](https://img.shields.io/codecov/c/github/googleapis/nodejs-error-reporting/master.svg?style=flat)](https://codecov.io/gh/googleapis/nodejs-error-reporting) + + + > Node.js idiomatic client for [Error Reporting][product-docs]. [Cloud Error Reporting](https://cloud.google.com/error-reporting/docs/) aggregates and displays errors produced in your running cloud services. + A comprehensive list of changes in each version may be found in [the CHANGELOG](https://github.com/googleapis/nodejs-error-reporting/blob/master/CHANGELOG.md). @@ -26,6 +30,7 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. **Table of contents:** + * [Quickstart](#quickstart) * [Before you begin](#before-you-begin) * [Installing the client library](#installing-the-client-library) @@ -39,9 +44,9 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. ### Before you begin -1. [Select or create a Cloud Platform project][projects]. -1. [Enable the Cloud Error Reporting API][enable_api]. -1. [Set up authentication with a service account][auth] so you can access the +1. [Select or create a Cloud Platform project][projects]. +1. [Enable the Cloud Error Reporting API][enable_api]. +1. [Set up authentication with a service account][auth] so you can access the API from your local workstation. ### Installing the client library @@ -50,6 +55,7 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. npm install @google-cloud/error-reporting ``` + ### Using the client library ```javascript @@ -81,7 +87,6 @@ Here's an introductory video that provides some more details: # When Errors Are Reported The `reportMode` configuration option is used to specify when errors are reported to the Error Reporting Console. It can have one of three values: - * `'production'` (default): Only report errors if the NODE_ENV environment variable is set to "production". * `'always'`: Always report errors regardless of the value of NODE_ENV. * `'never'`: Never report errors regardless of the value of NODE_ENV. @@ -89,14 +94,12 @@ The `reportMode` configuration option is used to specify when errors are reporte The `reportMode` configuration option replaces the deprecated `ignoreEnvironmentCheck` configuration option. If both the `reportMode` and `ignoreEnvironmentCheck` options are specified, the `reportMode` configuration option takes precedence. The `ignoreEnvironmentCheck` option should not be used. However, if it is used, and the `reportMode` option is not specified, it can have the values: - * `false` (default): Only report errors if the NODE_ENV environment variable is set to "production". * `true`: Always report errors regardless of the value of NODE_ENV. See the [Configuration](#configuration) section to learn how to specify configuration options. ## Configuration - The following code snippet lists available configuration options. All configuration options are optional. ```js @@ -153,7 +156,6 @@ errors.report('My error message'); ``` The stack trace associated with an error can be viewed in the error reporting console. - * If the `errors.report` method is given an `ErrorMessage` object built using the `errors.event` method, the stack trace at the point where the error event was constructed will be used. * If the `errors.report` method is given an `Error` object, the stack trace where the error was instantiated will be used. * If the `errors.report` method is given a string, the stack trace at the point where `errors.report` is invoked will be used. @@ -332,7 +334,6 @@ The [longjohn](https://www.npmjs.com/package/longjohn) module can be used with t Before reporting an `Error` object using the `report` method of the `@google-cloud/error-reporting` module, the stack trace needs to modified to remove this special line added by `longjohn`. Since the `longjohn` module can be configured to have a custom line indicating an async jump, the process of removing the custom line should be handled by the user of the `longjohn` module. The following code illustrates how to update an `Error`'s stack trace, to remove the default line of dashes added by `longjohn` to indicate an async jump, before reporting the error. - ```js const {ErrorReporting} = require('@google-cloud/error-reporting'); @@ -346,6 +347,7 @@ err.stack = (err.stack || '').split('\n') errors.report(err); ``` + ## Samples Samples are in the [`samples/`](https://github.com/googleapis/nodejs-error-reporting/tree/master/samples) directory. The samples' `README.md` @@ -359,6 +361,8 @@ has instructions for running the samples. | Manual reporting | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/master/samples/manual.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-error-reporting&page=editor&open_in_editor=samples/manual.js,samples/README.md) | | Quickstart | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/master/samples/quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-error-reporting&page=editor&open_in_editor=samples/quickstart.js,samples/README.md) | + + The [Cloud Error Reporting Node.js Client API Reference][client-docs] documentation also contains samples. @@ -378,7 +382,7 @@ _Legacy Node.js versions are supported as a best effort:_ * Some security patches may not be able to be backported. * Dependencies will not be kept up-to-date, and features will not be backported. -### Legacy tags available +#### Legacy tags available * `legacy-8`: install client libraries from this dist-tag for versions compatible with Node.js 8. @@ -387,11 +391,16 @@ _Legacy Node.js versions are supported as a best effort:_ This library follows [Semantic Versioning](http://semver.org/). + + This library is considered to be in **beta**. This means it is expected to be mostly stable while we work toward a general availability release; however, complete stability is not guaranteed. We will address issues and requests against beta libraries with a high priority. + + + More Information: [Google Cloud Platform Launch Stages][launch_stages] [launch_stages]: https://cloud.google.com/terms/launch-stages diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index c052669be6a..ac1eb94dc75 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -3,8 +3,15 @@ { "git": { "name": ".", - "remote": "git@github.com:googleapis/nodejs-error-reporting.git", - "sha": "1ad83651e52a6a87e4e6946f6e05526a5be101d6" + "remote": "https://github.com/googleapis/nodejs-error-reporting.git", + "sha": "242276fff3e81cfac7a7b8294273cced203bccd6" + } + }, + { + "git": { + "name": "synthtool", + "remote": "https://github.com/googleapis/synthtool.git", + "sha": "ba9918cd22874245b55734f57470c719b577e591" } } ], @@ -58,10 +65,10 @@ "LICENSE", "README.md", "api-extractor.json", - "package-lock.json.1637601552", - "package-lock.json.1766790967", + "package-lock.json.3795722890", + "package-lock.json.3860750886", "renovate.json", "samples/README.md", - "samples/package-lock.json.2310227638" + "samples/package-lock.json.2996125530" ] } \ No newline at end of file From c753de93dec342e312600f7d024652df4d780813 Mon Sep 17 00:00:00 2001 From: Nicole Zhu <69952136+nicoleczhu@users.noreply.github.com> Date: Thu, 5 Nov 2020 19:59:44 -0800 Subject: [PATCH 381/527] chore: add blunderbuss (#532) --- handwritten/error-reporting/.github/blunderbuss.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 handwritten/error-reporting/.github/blunderbuss.yml diff --git a/handwritten/error-reporting/.github/blunderbuss.yml b/handwritten/error-reporting/.github/blunderbuss.yml new file mode 100644 index 00000000000..45e412794bd --- /dev/null +++ b/handwritten/error-reporting/.github/blunderbuss.yml @@ -0,0 +1,4 @@ +assign_issues: + - googleapis/api-logging +assign_prs: + - googleapis/api-logging From d1f4c731185e8693ed119ec53dc4f5f23aec1650 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 25 Nov 2020 08:34:44 -0800 Subject: [PATCH 382/527] docs: spelling correction for "targetting" (#533) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/5eabbdbe-8996-4c29-9e16-a28495ddf684/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/15013eff642a7e7e855aed5a29e6e83c39beba2a --- handwritten/error-reporting/README.md | 2 +- handwritten/error-reporting/synth.metadata | 60 +--------------------- 2 files changed, 3 insertions(+), 59 deletions(-) diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 4dc1ea6bb4a..aacd17acaac 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -372,7 +372,7 @@ Our client libraries follow the [Node.js release schedule](https://nodejs.org/en Libraries are compatible with all current _active_ and _maintenance_ versions of Node.js. -Client libraries targetting some end-of-life versions of Node.js are available, and +Client libraries targeting some end-of-life versions of Node.js are available, and can be installed via npm [dist-tags](https://docs.npmjs.com/cli/dist-tag). The dist-tags follow the naming convention `legacy-(version)`. diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index ac1eb94dc75..fabd7d46225 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -4,71 +4,15 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "242276fff3e81cfac7a7b8294273cced203bccd6" + "sha": "b108625292d604d1abaee74f2fabd4b66380a5dd" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "ba9918cd22874245b55734f57470c719b577e591" + "sha": "15013eff642a7e7e855aed5a29e6e83c39beba2a" } } - ], - "generatedFiles": [ - ".eslintignore", - ".eslintrc.json", - ".gitattributes", - ".github/ISSUE_TEMPLATE/bug_report.md", - ".github/ISSUE_TEMPLATE/feature_request.md", - ".github/ISSUE_TEMPLATE/support_request.md", - ".github/PULL_REQUEST_TEMPLATE.md", - ".github/release-please.yml", - ".github/workflows/ci.yaml", - ".kokoro/.gitattributes", - ".kokoro/common.cfg", - ".kokoro/continuous/node10/common.cfg", - ".kokoro/continuous/node10/docs.cfg", - ".kokoro/continuous/node10/test.cfg", - ".kokoro/continuous/node12/common.cfg", - ".kokoro/continuous/node12/lint.cfg", - ".kokoro/continuous/node12/samples-test.cfg", - ".kokoro/continuous/node12/system-test.cfg", - ".kokoro/continuous/node12/test.cfg", - ".kokoro/docs.sh", - ".kokoro/lint.sh", - ".kokoro/populate-secrets.sh", - ".kokoro/presubmit/node10/common.cfg", - ".kokoro/presubmit/node12/common.cfg", - ".kokoro/presubmit/node12/samples-test.cfg", - ".kokoro/presubmit/node12/system-test.cfg", - ".kokoro/presubmit/node12/test.cfg", - ".kokoro/publish.sh", - ".kokoro/release/docs-devsite.cfg", - ".kokoro/release/docs-devsite.sh", - ".kokoro/release/docs.cfg", - ".kokoro/release/docs.sh", - ".kokoro/release/publish.cfg", - ".kokoro/samples-test.sh", - ".kokoro/system-test.sh", - ".kokoro/test.bat", - ".kokoro/test.sh", - ".kokoro/trampoline.sh", - ".kokoro/trampoline_v2.sh", - ".mocharc.js", - ".nycrc", - ".prettierignore", - ".prettierrc.js", - ".trampolinerc", - "CODE_OF_CONDUCT.md", - "CONTRIBUTING.md", - "LICENSE", - "README.md", - "api-extractor.json", - "package-lock.json.3795722890", - "package-lock.json.3860750886", - "renovate.json", - "samples/README.md", - "samples/package-lock.json.2996125530" ] } \ No newline at end of file From d4ca4750c29af87728bcdef4d49e95d5888f157a Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 22 Dec 2020 11:42:16 -0800 Subject: [PATCH 383/527] docs: add instructions for authenticating for system tests (#534) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/9610e861-65a2-4035-85ab-1303620c4597/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/363fe305e9ce34a6cd53951c6ee5f997094b54ee --- handwritten/error-reporting/CONTRIBUTING.md | 14 ++++++++++++-- handwritten/error-reporting/README.md | 3 +-- handwritten/error-reporting/synth.metadata | 4 ++-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/handwritten/error-reporting/CONTRIBUTING.md b/handwritten/error-reporting/CONTRIBUTING.md index f6c4cf010e3..c094a3cb2b3 100644 --- a/handwritten/error-reporting/CONTRIBUTING.md +++ b/handwritten/error-reporting/CONTRIBUTING.md @@ -37,6 +37,14 @@ accept your pull requests. 1. Title your pull request following [Conventional Commits](https://www.conventionalcommits.org/) styling. 1. Submit a pull request. +### Before you begin + +1. [Select or create a Cloud Platform project][projects]. +1. [Enable the Cloud Error Reporting API][enable_api]. +1. [Set up authentication with a service account][auth] so you can access the + API from your local workstation. + + ## Running the tests 1. [Prepare your environment for Node.js setup][setup]. @@ -51,11 +59,9 @@ accept your pull requests. npm test # Run sample integration tests. - gcloud auth application-default login npm run samples-test # Run all system tests. - gcloud auth application-default login npm run system-test 1. Lint (and maybe fix) any changes: @@ -63,3 +69,7 @@ accept your pull requests. npm run fix [setup]: https://cloud.google.com/nodejs/docs/setup +[projects]: https://console.cloud.google.com/project +[billing]: https://support.google.com/cloud/answer/6293499#enable-billing +[enable_api]: https://console.cloud.google.com/flows/enableapi?apiid=clouderrorreporting.googleapis.com +[auth]: https://cloud.google.com/docs/authentication/getting-started \ No newline at end of file diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index aacd17acaac..c01fd5b08c3 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -350,8 +350,7 @@ errors.report(err); ## Samples -Samples are in the [`samples/`](https://github.com/googleapis/nodejs-error-reporting/tree/master/samples) directory. The samples' `README.md` -has instructions for running the samples. +Samples are in the [`samples/`](https://github.com/googleapis/nodejs-error-reporting/tree/master/samples) directory. Each sample's `README.md` has instructions for running its sample. | Sample | Source Code | Try it | | --------------------------- | --------------------------------- | ------ | diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index fabd7d46225..70c734c954b 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "b108625292d604d1abaee74f2fabd4b66380a5dd" + "sha": "a989e218e23aea21123fa6bbf771a18295c47255" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "15013eff642a7e7e855aed5a29e6e83c39beba2a" + "sha": "363fe305e9ce34a6cd53951c6ee5f997094b54ee" } } ] From 5069d5222ff0e1b29ea14ad83118db4e0e18938f Mon Sep 17 00:00:00 2001 From: Nicole Zhu <69952136+nicoleczhu@users.noreply.github.com> Date: Thu, 14 Jan 2021 10:27:44 -0800 Subject: [PATCH 384/527] fix: convert AdditionalMessage param into string type CustomMessage (#535) * fix: convert AdditionalMessage into string only customMessage * docs: clarify customMessage param is intended to override stack trace Co-authored-by: Benjamin E. Coe --- handwritten/error-reporting/src/index.ts | 2 +- .../error-reporting/src/interfaces/manual.ts | 36 ++++++++++--------- .../test/unit/interfaces/manual.ts | 2 +- 3 files changed, 21 insertions(+), 19 deletions(-) diff --git a/handwritten/error-reporting/src/index.ts b/handwritten/error-reporting/src/index.ts index 0ec447df367..74781b3fef6 100644 --- a/handwritten/error-reporting/src/index.ts +++ b/handwritten/error-reporting/src/index.ts @@ -109,7 +109,7 @@ export class ErrorReporting { // eslint-disable-next-line @typescript-eslint/no-explicit-any err: any, request?: manualRequestExtractor.Request, - additionalMessage?: string | {}, + customMessage?: string, callback?: manualInterface.Callback | {} | string ) => ErrorMessage; event!: () => ErrorMessage; diff --git a/handwritten/error-reporting/src/interfaces/manual.ts b/handwritten/error-reporting/src/interfaces/manual.ts index d9ac5f10ee5..c38bec60891 100644 --- a/handwritten/error-reporting/src/interfaces/manual.ts +++ b/handwritten/error-reporting/src/interfaces/manual.ts @@ -55,12 +55,14 @@ export function handlerSetup( * application code. * @param {Any|ErrorMessage} err - error information of any type or content. * This can be of any type but by giving an instance of ErrorMessage as the - * error arugment one can manually provide values to all fields of the + * error argument one can manually provide values to all fields of the * potential payload. * @param {Object} [request] - an object containing request information. This * is expected to be an object similar to the Node/Express request object. - * @param {String} [additionalMessage] - a string containing error message - * information to override the builtin message given by an Error/Exception + * @param {String} [customMessage] - an optional error message string that + * overrides the default message & stack trace. Message format must comply + * with message field requirements defined in the documentation: + * https://cloud.google.com/error-reporting/reference/rest/v1beta1/projects.events/report#reportederrorevent * @param {Function} [callback] - a callback to be invoked once the message * has been successfully submitted to the error reporting API or has failed * after four attempts with the success or error response. @@ -71,7 +73,7 @@ export function handlerSetup( function reportManualError(err: AnyError, request: Request): ErrorMessage; function reportManualError( err: AnyError, - additionalMessage: string + customMessage: string ): ErrorMessage; function reportManualError(err: AnyError, callback: Callback): ErrorMessage; function reportManualError( @@ -82,41 +84,41 @@ export function handlerSetup( function reportManualError( err: AnyError, request: Request, - additionalMessage: string + customMessage: string ): ErrorMessage; function reportManualError( err: AnyError, - additionalMessage: string, + customMessage: string, callback: Callback ): ErrorMessage; function reportManualError( err: AnyError, request: Request, - additionalMessage: string, + customMessage: string, callback: Callback ): ErrorMessage; function reportManualError( err: AnyError, request?: Request | Callback | string, - additionalMessage?: Callback | string | {}, + customMessage?: Callback | string, callback?: Callback | {} | string ): ErrorMessage { let em; if (is.string(request)) { // no request given - callback = additionalMessage; - additionalMessage = request; + callback = customMessage; + customMessage = request as string; request = undefined; } else if (is.function(request)) { - // neither request nor additionalMessage given + // neither request nor customMessage given callback = request; request = undefined; - additionalMessage = undefined; + customMessage = undefined; } - if (is.function(additionalMessage)) { - callback = additionalMessage; - additionalMessage = undefined; + if (is.function(customMessage)) { + callback = customMessage; + customMessage = undefined; } if (err instanceof ErrorMessage) { @@ -157,8 +159,8 @@ export function handlerSetup( ); } - if (is.string(additionalMessage)) { - em.setMessage(additionalMessage as string); + if (is.string(customMessage)) { + em.setMessage(customMessage as string); } // TODO: Address this type cast diff --git a/handwritten/error-reporting/test/unit/interfaces/manual.ts b/handwritten/error-reporting/test/unit/interfaces/manual.ts index 97189150e9f..5cf17549456 100644 --- a/handwritten/error-reporting/test/unit/interfaces/manual.ts +++ b/handwritten/error-reporting/test/unit/interfaces/manual.ts @@ -43,7 +43,7 @@ describe('Manual handler', () => { warn(message: string) { // The use of `report` in this class should issue the following // warning becasue the `report` class is used directly and, as such, - // cannot by itself have information where a ErrorMesasge was + // cannot by itself have information where a ErrorMessage was // constructed. It only knows that an error has been reported. Thus, // the ErrorMessage objects given to the `report` method in the tests // do not have construction site information to verify that if that From 3fe7f1577747b155e01fdfdfcfbcfedc26f5ee80 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 14 Jan 2021 19:02:08 +0000 Subject: [PATCH 385/527] chore: release 2.0.1 (#536) :robot: I have created a release \*beep\* \*boop\* --- ### [2.0.1](https://www.github.com/googleapis/nodejs-error-reporting/compare/v2.0.0...v2.0.1) (2021-01-14) ### Bug Fixes * convert AdditionalMessage param into string type CustomMessage ([#535](https://www.github.com/googleapis/nodejs-error-reporting/issues/535)) ([ba7d8b0](https://www.github.com/googleapis/nodejs-error-reporting/commit/ba7d8b01b6351354c88a675bfe55910e7a2c0eff)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- handwritten/error-reporting/CHANGELOG.md | 7 +++++++ handwritten/error-reporting/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/CHANGELOG.md b/handwritten/error-reporting/CHANGELOG.md index 3e6f382615a..4f0a8199ca9 100644 --- a/handwritten/error-reporting/CHANGELOG.md +++ b/handwritten/error-reporting/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/@google-cloud/error-reporting?activeTab=versions +### [2.0.1](https://www.github.com/googleapis/nodejs-error-reporting/compare/v2.0.0...v2.0.1) (2021-01-14) + + +### Bug Fixes + +* convert AdditionalMessage param into string type CustomMessage ([#535](https://www.github.com/googleapis/nodejs-error-reporting/issues/535)) ([ba7d8b0](https://www.github.com/googleapis/nodejs-error-reporting/commit/ba7d8b01b6351354c88a675bfe55910e7a2c0eff)) + ## [2.0.0](https://www.github.com/googleapis/nodejs-error-reporting/compare/v1.1.3...v2.0.0) (2020-05-27) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index dfee04280cd..ab05a079676 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/error-reporting", "description": "Stackdriver Error Reporting Client Library for Node.js", - "version": "2.0.0", + "version": "2.0.1", "license": "Apache-2.0", "author": "Google Inc.", "engines": { From 435a28d6b2261fa0cbe43249c3b6889914a218fb Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sat, 23 Jan 2021 15:56:53 +0100 Subject: [PATCH 386/527] chore(deps): update dependency js-green-licenses to v3 (#538) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index ab05a079676..55af0d14238 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -73,7 +73,7 @@ "express": "^4.17.1", "gts": "^2.0.0", "hapi": "^18.1.0", - "js-green-licenses": "^2.0.0", + "js-green-licenses": "^3.0.0", "json-stable-stringify": "^1.0.1", "koa": "^2.7.0", "linkinator": "^2.0.0", From 0016783f93662b91acf09a784b76b51225a46fb9 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 27 Jan 2021 08:40:32 -0800 Subject: [PATCH 387/527] refactor(nodejs): move build cop to flakybot (#539) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/9fbf1b59-3d8b-4e65-9627-15e1bd83c6bf/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/57c23fa5705499a4181095ced81f0ee0933b64f6 --- handwritten/error-reporting/.kokoro/samples-test.sh | 6 +++--- handwritten/error-reporting/.kokoro/system-test.sh | 6 +++--- handwritten/error-reporting/.kokoro/test.sh | 6 +++--- handwritten/error-reporting/.kokoro/trampoline_v2.sh | 2 +- handwritten/error-reporting/synth.metadata | 4 ++-- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/handwritten/error-reporting/.kokoro/samples-test.sh b/handwritten/error-reporting/.kokoro/samples-test.sh index bab7ba4e967..950f8483428 100755 --- a/handwritten/error-reporting/.kokoro/samples-test.sh +++ b/handwritten/error-reporting/.kokoro/samples-test.sh @@ -39,14 +39,14 @@ if [ -f samples/package.json ]; then npm link ../ npm install cd .. - # If tests are running against master, configure Build Cop + # If tests are running against master, configure flakybot # to open issues on failures: if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]] || [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"nightly"* ]]; then export MOCHA_REPORTER_OUTPUT=test_output_sponge_log.xml export MOCHA_REPORTER=xunit cleanup() { - chmod +x $KOKORO_GFILE_DIR/linux_amd64/buildcop - $KOKORO_GFILE_DIR/linux_amd64/buildcop + chmod +x $KOKORO_GFILE_DIR/linux_amd64/flakybot + $KOKORO_GFILE_DIR/linux_amd64/flakybot } trap cleanup EXIT HUP fi diff --git a/handwritten/error-reporting/.kokoro/system-test.sh b/handwritten/error-reporting/.kokoro/system-test.sh index 8a08400484a..319d1e0eda8 100755 --- a/handwritten/error-reporting/.kokoro/system-test.sh +++ b/handwritten/error-reporting/.kokoro/system-test.sh @@ -33,14 +33,14 @@ fi npm install -# If tests are running against master, configure Build Cop +# If tests are running against master, configure flakybot # to open issues on failures: if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]] || [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"nightly"* ]]; then export MOCHA_REPORTER_OUTPUT=test_output_sponge_log.xml export MOCHA_REPORTER=xunit cleanup() { - chmod +x $KOKORO_GFILE_DIR/linux_amd64/buildcop - $KOKORO_GFILE_DIR/linux_amd64/buildcop + chmod +x $KOKORO_GFILE_DIR/linux_amd64/flakybot + $KOKORO_GFILE_DIR/linux_amd64/flakybot } trap cleanup EXIT HUP fi diff --git a/handwritten/error-reporting/.kokoro/test.sh b/handwritten/error-reporting/.kokoro/test.sh index 5be385fef64..5d6383fcb78 100755 --- a/handwritten/error-reporting/.kokoro/test.sh +++ b/handwritten/error-reporting/.kokoro/test.sh @@ -21,14 +21,14 @@ export NPM_CONFIG_PREFIX=${HOME}/.npm-global cd $(dirname $0)/.. npm install -# If tests are running against master, configure Build Cop +# If tests are running against master, configure flakybot # to open issues on failures: if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]] || [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"nightly"* ]]; then export MOCHA_REPORTER_OUTPUT=test_output_sponge_log.xml export MOCHA_REPORTER=xunit cleanup() { - chmod +x $KOKORO_GFILE_DIR/linux_amd64/buildcop - $KOKORO_GFILE_DIR/linux_amd64/buildcop + chmod +x $KOKORO_GFILE_DIR/linux_amd64/flakybot + $KOKORO_GFILE_DIR/linux_amd64/flakybot } trap cleanup EXIT HUP fi diff --git a/handwritten/error-reporting/.kokoro/trampoline_v2.sh b/handwritten/error-reporting/.kokoro/trampoline_v2.sh index 606d4321458..4d03112128a 100755 --- a/handwritten/error-reporting/.kokoro/trampoline_v2.sh +++ b/handwritten/error-reporting/.kokoro/trampoline_v2.sh @@ -162,7 +162,7 @@ if [[ -n "${KOKORO_BUILD_ID:-}" ]]; then "KOKORO_GITHUB_COMMIT" "KOKORO_GITHUB_PULL_REQUEST_NUMBER" "KOKORO_GITHUB_PULL_REQUEST_COMMIT" - # For Build Cop Bot + # For flakybot "KOKORO_GITHUB_COMMIT_URL" "KOKORO_GITHUB_PULL_REQUEST_URL" ) diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 70c734c954b..18fcd2f8bc4 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "a989e218e23aea21123fa6bbf771a18295c47255" + "sha": "79ef3c65a088ca4f7b45e418a89e18a537f00d2c" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "363fe305e9ce34a6cd53951c6ee5f997094b54ee" + "sha": "57c23fa5705499a4181095ced81f0ee0933b64f6" } } ] From 5ca248ba376d2008296e00bb5a31449c28fd2926 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 2 Feb 2021 17:45:40 +0100 Subject: [PATCH 388/527] chore(deps): update dependency delay to v5 (#540) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 55af0d14238..06abae3bc32 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -69,7 +69,7 @@ "c8": "^7.0.0", "chai": "^4.2.0", "codecov": "^3.5.0", - "delay": "^4.3.0", + "delay": "^5.0.0", "express": "^4.17.1", "gts": "^2.0.0", "hapi": "^18.1.0", From 278dad18824adc93d597a151a21adbd2e0739f17 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 4 Feb 2021 08:46:02 -0800 Subject: [PATCH 389/527] chore: use repo metadata to populate nodejs CODEOWNERS (#541) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/c1ab1c4d-e170-4bc8-a09f-3d1e8b476d04/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/318e351e26ba65b2b3cfa3f61b3b64e3540c3525 --- handwritten/error-reporting/.github/CODEOWNERS | 2 +- handwritten/error-reporting/synth.metadata | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/.github/CODEOWNERS b/handwritten/error-reporting/.github/CODEOWNERS index 08e308f9239..89a1c2bf4ce 100644 --- a/handwritten/error-reporting/.github/CODEOWNERS +++ b/handwritten/error-reporting/.github/CODEOWNERS @@ -6,4 +6,4 @@ # The yoshi-nodejs team is the default owner for nodejs repositories. -* @googleapis/api-logging @googleapis/yoshi-nodejs +* @googleapis/yoshi-nodejs @googleapis/api-logging diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 18fcd2f8bc4..745ce179e2c 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "79ef3c65a088ca4f7b45e418a89e18a537f00d2c" + "sha": "e9639ea374772f4d2a3107a557af5745a62984c4" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "57c23fa5705499a4181095ced81f0ee0933b64f6" + "sha": "318e351e26ba65b2b3cfa3f61b3b64e3540c3525" } } ] From 6c87c5e456adf4447efd101e90766317d134131d Mon Sep 17 00:00:00 2001 From: Nicole Zhu <69952136+nicoleczhu@users.noreply.github.com> Date: Tue, 16 Feb 2021 14:52:12 -0800 Subject: [PATCH 390/527] ci: fix failing tests on @types/koa update (#545) * chore: fix failing tests on @types/koa update --- handwritten/error-reporting/src/request-extractors/koa.ts | 2 +- handwritten/error-reporting/test/unit/request-extractors/koa.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/src/request-extractors/koa.ts b/handwritten/error-reporting/src/request-extractors/koa.ts index 49ab06e9dff..081cacc8145 100644 --- a/handwritten/error-reporting/src/request-extractors/koa.ts +++ b/handwritten/error-reporting/src/request-extractors/koa.ts @@ -49,7 +49,7 @@ export function koaRequestInformationExtractor( .setMethod(req.method) .setUrl(req.url) .setUserAgent(req.headers['user-agent']) - .setReferrer(req.headers.referrer) + .setReferrer(req.headers.referrer as string) .setStatusCode(res.status) .setRemoteAddress(req.ip); diff --git a/handwritten/error-reporting/test/unit/request-extractors/koa.ts b/handwritten/error-reporting/test/unit/request-extractors/koa.ts index 9cd5125a8c1..c6c753b8834 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/koa.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/koa.ts @@ -65,7 +65,7 @@ describe('koaRequestInformationExtractor', () => { }; deepStrictEqual( koaRequestInformationExtractor( - FULL_REQ_DERIVATION_VALUE as Request, + (FULL_REQ_DERIVATION_VALUE as unknown) as Request, FULL_RES_DERIVATION_VALUE as Response ), FULL_REQ_EXPECTED_VALUE From eb61d27eb3a80e02b238674cab4a3978cac1fb24 Mon Sep 17 00:00:00 2001 From: Nicole Zhu <69952136+nicoleczhu@users.noreply.github.com> Date: Tue, 23 Feb 2021 13:33:00 -0800 Subject: [PATCH 391/527] chore: deprecate hapi in favor of @hapi/hapi (#546) --- handwritten/error-reporting/package.json | 4 ++-- handwritten/error-reporting/src/interfaces/hapi.ts | 4 ++-- handwritten/error-reporting/src/request-extractors/hapi.ts | 6 +++--- .../test/test-servers/hapi_scaffold_server.ts | 2 +- handwritten/error-reporting/test/unit/interfaces/hapi.ts | 2 +- .../error-reporting/test/unit/request-extractors/hapi.ts | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 06abae3bc32..27dcee98e0e 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -46,7 +46,7 @@ "@types/boom": "^7.2.1", "@types/console-log-level": "^1.4.0", "@types/express": "^4.17.0", - "@types/hapi": "^18.0.2", + "@types/hapi__hapi": "^20.0.5", "@types/is": "0.0.21", "@types/json-stable-stringify": "^1.0.32", "@types/koa": "^2.0.48", @@ -72,7 +72,7 @@ "delay": "^5.0.0", "express": "^4.17.1", "gts": "^2.0.0", - "hapi": "^18.1.0", + "@hapi/hapi": "^20.1.0", "js-green-licenses": "^3.0.0", "json-stable-stringify": "^1.0.1", "koa": "^2.7.0", diff --git a/handwritten/error-reporting/src/interfaces/hapi.ts b/handwritten/error-reporting/src/interfaces/hapi.ts index da7a8512113..68755af5472 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.ts +++ b/handwritten/error-reporting/src/interfaces/hapi.ts @@ -24,7 +24,7 @@ const packageJson = require('../../../package.json'); import {RequestHandler} from '../google-apis/auth-client'; import {Configuration} from '../configuration'; -import * as hapi from 'hapi'; +import * as hapi from '@hapi/hapi'; /** * The Hapi error handler function serves simply to create an error message @@ -112,7 +112,7 @@ export function makeHapiPlugin(client: RequestHandler, config: Configuration) { if ( is.object(request) && request.response && - (request.response as boom).isBoom + ((request.response as unknown) as boom).isBoom ) { // Cast to {} is necessary, as@types/hapi@16 incorrectly types // response as 'Response | null' instead of 'Response | Boom | diff --git a/handwritten/error-reporting/src/request-extractors/hapi.ts b/handwritten/error-reporting/src/request-extractors/hapi.ts index 3153aa112f9..47a5265281d 100644 --- a/handwritten/error-reporting/src/request-extractors/hapi.ts +++ b/handwritten/error-reporting/src/request-extractors/hapi.ts @@ -17,7 +17,7 @@ import * as is from 'is'; import has = require('lodash.has'); import {RequestInformationContainer} from '../classes/request-information-container'; -import * as hapi from 'hapi'; +import * as hapi from '@hapi/hapi'; /** * This function is used to check for a pending status code on the response @@ -34,8 +34,8 @@ function attemptToExtractStatusCode(req: hapi.Request) { if (has(req, 'response') && is.object(req.response)) { if (has(req.response, 'statusCode')) { return (req.response as hapi.ResponseObject).statusCode; - } else if (is.object((req.response as boom).output)) { - return (req.response as boom).output.statusCode; + } else if (is.object(((req.response as unknown) as boom).output)) { + return ((req.response as unknown) as boom).output.statusCode; } } return 0; diff --git a/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts index 8cd0f49acab..ca240b3cfc3 100644 --- a/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import * as Hapi from 'hapi'; +import * as Hapi from '@hapi/hapi'; import {ErrorReporting} from '../../src/index'; const errorHandler = new ErrorReporting(); diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.ts b/handwritten/error-reporting/test/unit/interfaces/hapi.ts index b72f12ebf76..7aba3a7b4d7 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.ts +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.ts @@ -24,7 +24,7 @@ import * as config from '../../../src/configuration'; import {RequestHandler} from '../../../src/google-apis/auth-client'; import {FakeConfiguration as Configuration} from '../../fixtures/configuration'; import * as http from 'http'; -import * as hapi from 'hapi'; +import * as hapi from '@hapi/hapi'; import * as boom from 'boom'; // eslint-disable-next-line @typescript-eslint/no-var-requires diff --git a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts index c36f295fe9a..05582b9a16d 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import * as hapi from 'hapi'; +import * as hapi from '@hapi/hapi'; import {URL} from 'url'; import {describe, it} from 'mocha'; From c7afd66f94e478423d3c6bfd170d9532acdbd161 Mon Sep 17 00:00:00 2001 From: Nicole Zhu <69952136+nicoleczhu@users.noreply.github.com> Date: Mon, 8 Mar 2021 14:28:07 -0800 Subject: [PATCH 392/527] test: fix Mocha patch with undefined timeout error (#547) --- .../error-reporting/test/unit/google-apis/auth-client.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts index 294d4756725..bebff61da52 100644 --- a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts +++ b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts @@ -93,7 +93,8 @@ describe('RequestHandler', () => { } }); - it('should not request OAuth2 token if key is provided', done => { + it('should not request OAuth2 token if key is provided', function (done) { + this.timeout(8000); const config: ConfigurationOptions = { reportMode: 'always', key: 'key', @@ -107,7 +108,7 @@ describe('RequestHandler', () => { }, done ); - }).timeout(8000); + }); it('should not issue a warning if disabled and can communicate with the API', done => { process.env.NODE_ENV = 'production'; From 9ac37c0f3203895c2377d6d5aeded4728912f05b Mon Sep 17 00:00:00 2001 From: Nicole Zhu <69952136+nicoleczhu@users.noreply.github.com> Date: Thu, 1 Apr 2021 14:42:52 -0700 Subject: [PATCH 393/527] test: patch broken @hapi/podium dependency (#552) --- handwritten/error-reporting/tsconfig.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/tsconfig.json b/handwritten/error-reporting/tsconfig.json index f672e8c73ca..a4dd53115a9 100644 --- a/handwritten/error-reporting/tsconfig.json +++ b/handwritten/error-reporting/tsconfig.json @@ -3,7 +3,13 @@ "compilerOptions": { "lib": ["es2018", "dom"], "rootDir": ".", - "outDir": "build" + "outDir": "build", + "baseUrl": ".", + "paths": { + "@hapi/podium": [ + "node_modules/@types/hapi__podium" + ] + } }, "include": [ "src/*.ts", From c50f281462dd16c6ae80c098f565920ac5884341 Mon Sep 17 00:00:00 2001 From: Nicole Zhu <69952136+nicoleczhu@users.noreply.github.com> Date: Tue, 6 Apr 2021 15:58:02 -0700 Subject: [PATCH 394/527] chore: update blunderbuss to auto assign nicole (#554) --- handwritten/error-reporting/.github/blunderbuss.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/.github/blunderbuss.yml b/handwritten/error-reporting/.github/blunderbuss.yml index 45e412794bd..bf5769c42a0 100644 --- a/handwritten/error-reporting/.github/blunderbuss.yml +++ b/handwritten/error-reporting/.github/blunderbuss.yml @@ -1,4 +1,4 @@ assign_issues: - - googleapis/api-logging + - nicoleczhu assign_prs: - - googleapis/api-logging + - nicoleczhu From 45efc889756655b0c57b8b8a6dec14463f4523bd Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 20 Apr 2021 10:50:09 -0700 Subject: [PATCH 395/527] chore: regenerate common templates (#556) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/31998b87-0ee7-4b16-8673-c13ace78a04f/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) Source-Link: https://github.com/googleapis/synthtool/commit/c6706ee5d693e9ae5967614170732646590d8374 Source-Link: https://github.com/googleapis/synthtool/commit/b33b0e2056a85fc2264b294f2cf47dcd45e95186 Source-Link: https://github.com/googleapis/synthtool/commit/898b38a6f4fab89a76dfb152480bb034a781331b --- .../.kokoro/release/publish.cfg | 40 ------------------- handwritten/error-reporting/synth.metadata | 4 +- 2 files changed, 2 insertions(+), 42 deletions(-) diff --git a/handwritten/error-reporting/.kokoro/release/publish.cfg b/handwritten/error-reporting/.kokoro/release/publish.cfg index a16ce223c22..9ccb443c9ed 100644 --- a/handwritten/error-reporting/.kokoro/release/publish.cfg +++ b/handwritten/error-reporting/.kokoro/release/publish.cfg @@ -1,23 +1,3 @@ -# Get npm token from Keystore -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "google_cloud_npm_token" - backend_type: FASTCONFIGPUSH - } - } -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "yoshi-automation-github-key" - } - } -} - before_action { fetch_keystore { keystore_resource { @@ -27,26 +7,6 @@ before_action { } } -# Fetch magictoken to use with Magic Github Proxy -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "releasetool-magictoken" - } - } -} - -# Fetch api key to use with Magic Github Proxy -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "magic-github-proxy-api-key" - } - } -} - env_vars: { key: "SECRET_MANAGER_KEYS" value: "npm_publish_token,releasetool-publish-reporter-app,releasetool-publish-reporter-googleapis-installation,releasetool-publish-reporter-pem" diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 745ce179e2c..0ce54d8e8c5 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "e9639ea374772f4d2a3107a557af5745a62984c4" + "sha": "83e676ccef079c29121c81b4abd9dd4fc8c14082" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "318e351e26ba65b2b3cfa3f61b3b64e3540c3525" + "sha": "c6706ee5d693e9ae5967614170732646590d8374" } } ] From f0406c0fd061222aea4b7de09eef5e150fbaf5c7 Mon Sep 17 00:00:00 2001 From: Jeffrey Rennie Date: Thu, 22 Apr 2021 11:46:30 -0700 Subject: [PATCH 396/527] chore: migrate to owl bot (#553) --- .../error-reporting/.github/.OwlBot.lock.yaml | 4 ++ .../error-reporting/.github/.OwlBot.yaml | 19 +++++++++ .../.kokoro/release/publish.cfg | 40 +++++++++++++++++++ .../error-reporting/{synth.py => owlbot.py} | 5 +-- handwritten/error-reporting/synth.metadata | 18 --------- .../system-test/error-reporting.ts | 3 +- 6 files changed, 66 insertions(+), 23 deletions(-) create mode 100644 handwritten/error-reporting/.github/.OwlBot.lock.yaml create mode 100644 handwritten/error-reporting/.github/.OwlBot.yaml rename handwritten/error-reporting/{synth.py => owlbot.py} (93%) delete mode 100644 handwritten/error-reporting/synth.metadata diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml new file mode 100644 index 00000000000..1b91687cef1 --- /dev/null +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -0,0 +1,4 @@ +docker: + digest: sha256:1feb84e8b76860344b70d70e26f9f6d509f489be5f1ca37451bf4397254429e5 + image: gcr.io/repo-automation-bots/owlbot-nodejs:latest + diff --git a/handwritten/error-reporting/.github/.OwlBot.yaml b/handwritten/error-reporting/.github/.OwlBot.yaml new file mode 100644 index 00000000000..bdfef66742a --- /dev/null +++ b/handwritten/error-reporting/.github/.OwlBot.yaml @@ -0,0 +1,19 @@ +# Copyright 2021 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +docker: + image: gcr.io/repo-automation-bots/owlbot-nodejs:latest + + +begin-after-commit-hash: 674a41e0de2869f44f45eb7b1a605852a5394bba + diff --git a/handwritten/error-reporting/.kokoro/release/publish.cfg b/handwritten/error-reporting/.kokoro/release/publish.cfg index 9ccb443c9ed..a16ce223c22 100644 --- a/handwritten/error-reporting/.kokoro/release/publish.cfg +++ b/handwritten/error-reporting/.kokoro/release/publish.cfg @@ -1,3 +1,23 @@ +# Get npm token from Keystore +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "google_cloud_npm_token" + backend_type: FASTCONFIGPUSH + } + } +} + +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "yoshi-automation-github-key" + } + } +} + before_action { fetch_keystore { keystore_resource { @@ -7,6 +27,26 @@ before_action { } } +# Fetch magictoken to use with Magic Github Proxy +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "releasetool-magictoken" + } + } +} + +# Fetch api key to use with Magic Github Proxy +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "magic-github-proxy-api-key" + } + } +} + env_vars: { key: "SECRET_MANAGER_KEYS" value: "npm_publish_token,releasetool-publish-reporter-app,releasetool-publish-reporter-googleapis-installation,releasetool-publish-reporter-pem" diff --git a/handwritten/error-reporting/synth.py b/handwritten/error-reporting/owlbot.py similarity index 93% rename from handwritten/error-reporting/synth.py rename to handwritten/error-reporting/owlbot.py index 7bb04578e57..1abea9ea786 100644 --- a/handwritten/error-reporting/synth.py +++ b/handwritten/error-reporting/owlbot.py @@ -19,10 +19,7 @@ logging.basicConfig(level=logging.DEBUG) -AUTOSYNTH_MULTIPLE_COMMITS = True - common_templates = gcp.CommonTemplates() templates = common_templates.node_library() s.copy(templates) -node.install() -node.fix() +node.fix_hermetic() diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata deleted file mode 100644 index 0ce54d8e8c5..00000000000 --- a/handwritten/error-reporting/synth.metadata +++ /dev/null @@ -1,18 +0,0 @@ -{ - "sources": [ - { - "git": { - "name": ".", - "remote": "https://github.com/googleapis/nodejs-error-reporting.git", - "sha": "83e676ccef079c29121c81b4abd9dd4fc8c14082" - } - }, - { - "git": { - "name": "synthtool", - "remote": "https://github.com/googleapis/synthtool.git", - "sha": "c6706ee5d693e9ae5967614170732646590d8374" - } - } - ] -} \ No newline at end of file diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index 9819f9d79aa..2aeacd3d676 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -23,6 +23,7 @@ import {ErrorMessage} from '../src/classes/error-message'; import {RequestHandler} from '../src/google-apis/auth-client'; import {createLogger} from '../src/logger'; import {FakeConfiguration as Configuration} from '../test/fixtures/configuration'; +import {ReportMode} from 'src/configuration'; import {deepStrictEqual} from '../test/util'; import { ErrorGroupStats, @@ -463,7 +464,7 @@ describe('error-reporting', () => { const initConfiguration = Object.assign( { - reportMode: 'always' as 'always', + reportMode: 'always' as ReportMode, serviceContext: { service: SERVICE, version: VERSION, From 2bfc1ddabb1ef7d7ab7397527f5ca60c054ba063 Mon Sep 17 00:00:00 2001 From: Nicole Zhu <69952136+nicoleczhu@users.noreply.github.com> Date: Tue, 4 May 2021 21:09:14 -0700 Subject: [PATCH 397/527] chore(deps): remove Is dependency (#560) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: remove is dependency * 🦉 Updates from OwlBot * chore: remove is from request-information-container * chore: remove is from auth-clients * 🦉 Updates from OwlBot * chore: remove is from configuration and express * 🦉 Updates from OwlBot * chore: remove Is from hapi * chore: removed Is from interfaces. Tests passing * chore: remove Is from express, hapi * chore: remove dependency on Is from production * 🦉 Updates from OwlBot * chore: remove Is from error reporting test * deps: remove Is dependency * 🦉 Updates from OwlBot Co-authored-by: Owl Bot --- handwritten/error-reporting/package.json | 1 - .../src/classes/error-message.ts | 40 +++++++++------- .../classes/request-information-container.ts | 14 +++--- .../error-reporting/src/configuration.ts | 45 +++++++++++------- .../src/google-apis/auth-client.ts | 7 +-- .../error-reporting/src/interfaces/express.ts | 10 ++-- .../error-reporting/src/interfaces/hapi.ts | 13 +++--- .../error-reporting/src/interfaces/manual.ts | 11 ++--- .../error-reporting/src/interfaces/restify.ts | 7 ++- handwritten/error-reporting/src/logger.ts | 10 ++-- .../src/populate-error-message.ts | 13 ++++-- .../src/request-extractors/express.ts | 10 ++-- .../src/request-extractors/hapi.ts | 20 ++++---- .../src/request-extractors/koa.ts | 15 +++--- .../src/request-extractors/manual.ts | 7 ++- .../system-test/error-reporting.ts | 46 ++++++++++++------- .../test/unit/configuration.ts | 3 +- .../test/unit/interfaces/hapi.ts | 7 ++- .../test/unit/service-configuration.ts | 5 +- handwritten/error-reporting/utils/fuzzer.ts | 37 +++++++++------ 20 files changed, 185 insertions(+), 136 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 27dcee98e0e..f5ff45177df 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -38,7 +38,6 @@ "dependencies": { "@google-cloud/common": "^3.0.0", "console-log-level": "^1.4.1", - "is": "^3.3.0", "lodash.has": "^4.5.2" }, "devDependencies": { diff --git a/handwritten/error-reporting/src/classes/error-message.ts b/handwritten/error-reporting/src/classes/error-message.ts index f613f54ea10..a3b19509f40 100644 --- a/handwritten/error-reporting/src/classes/error-message.ts +++ b/handwritten/error-reporting/src/classes/error-message.ts @@ -12,8 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import * as is from 'is'; - import {ServiceContext} from '../configuration'; import {RequestInformationContainer} from './request-information-container'; @@ -123,8 +121,11 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setServiceContext(service?: string, version?: string) { - this.serviceContext.service = (is.string(service) ? service : 'node')!; - this.serviceContext.version = is.string(version) ? version : undefined; + this.serviceContext.service = (typeof service === 'string' + ? service + : 'node')!; + this.serviceContext.version = + typeof version === 'string' ? version : undefined; return this; } @@ -136,7 +137,7 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setMessage(message?: string) { - this.message = (is.string(message) ? message : '')!; + this.message = (typeof message === 'string' ? message : '')!; return this; } @@ -149,7 +150,9 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setHttpMethod(method?: string) { - this.context.httpRequest.method = (is.string(method) ? method : '')!; + this.context.httpRequest.method = (typeof method === 'string' + ? method + : '')!; return this; } @@ -161,7 +164,7 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setUrl(url?: string) { - this.context.httpRequest.url = (is.string(url) ? url : '')!; + this.context.httpRequest.url = (typeof url === 'string' ? url : '')!; return this; } @@ -173,7 +176,7 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setUserAgent(userAgent?: string) { - this.context.httpRequest.userAgent = (is.string(userAgent) + this.context.httpRequest.userAgent = (typeof userAgent === 'string' ? userAgent : '')!; @@ -187,7 +190,9 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setReferrer(referrer?: string) { - this.context.httpRequest.referrer = (is.string(referrer) ? referrer : '')!; + this.context.httpRequest.referrer = (typeof referrer === 'string' + ? referrer + : '')!; return this; } @@ -199,7 +204,8 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setResponseStatusCode(responseStatusCode?: number) { - this.context.httpRequest.responseStatusCode = (is.number(responseStatusCode) + this.context.httpRequest.responseStatusCode = (typeof responseStatusCode === + 'number' ? responseStatusCode : 0)!; @@ -213,7 +219,9 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setRemoteIp(remoteIp?: string) { - this.context.httpRequest.remoteIp = (is.string(remoteIp) ? remoteIp : '')!; + this.context.httpRequest.remoteIp = (typeof remoteIp === 'string' + ? remoteIp + : '')!; return this; } @@ -225,7 +233,7 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setUser(user?: string) { - this.context.user = (is.string(user) ? user : '')!; + this.context.user = (typeof user === 'string' ? user : '')!; return this; } @@ -237,7 +245,7 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setFilePath(filePath?: string) { - this.context.reportLocation.filePath = (is.string(filePath) + this.context.reportLocation.filePath = (typeof filePath === 'string' ? filePath : '')!; @@ -251,7 +259,7 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setLineNumber(lineNumber?: number) { - this.context.reportLocation.lineNumber = (is.number(lineNumber) + this.context.reportLocation.lineNumber = (typeof lineNumber === 'number' ? lineNumber : 0)!; @@ -265,7 +273,7 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setFunctionName(functionName?: string) { - this.context.reportLocation.functionName = (is.string(functionName) + this.context.reportLocation.functionName = (typeof functionName === 'string' ? functionName : '')!; @@ -281,7 +289,7 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ consumeRequestInformation(requestInformation: RequestInformationContainer) { - if (!is.object(requestInformation)) { + if (requestInformation?.toString() !== '[object Object]') { return this; } diff --git a/handwritten/error-reporting/src/classes/request-information-container.ts b/handwritten/error-reporting/src/classes/request-information-container.ts index 1d04b1ebd68..4e82df21d44 100644 --- a/handwritten/error-reporting/src/classes/request-information-container.ts +++ b/handwritten/error-reporting/src/classes/request-information-container.ts @@ -12,8 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import * as is from 'is'; - export class RequestInformationContainer { url: string; method: string; @@ -58,7 +56,7 @@ export class RequestInformationContainer { * @returns {this} - returns the instance for chaining */ setUrl(url: string) { - this.url = is.string(url) ? url : ''; + this.url = typeof url === 'string' ? url : ''; return this; } @@ -70,7 +68,7 @@ export class RequestInformationContainer { * @returns {this} - returns the instance for chaining */ setMethod(method: string) { - this.method = is.string(method) ? method : ''; + this.method = typeof method === 'string' ? method : ''; return this; } @@ -82,7 +80,7 @@ export class RequestInformationContainer { * @returns {this} - returns the instance for chaining */ setReferrer(referrer?: string) { - this.referrer = (is.string(referrer) ? referrer : '')!; + this.referrer = (typeof referrer === 'string' ? referrer : '')!; return this; } @@ -94,7 +92,7 @@ export class RequestInformationContainer { * @returns {this} - returns the instance for chaining */ setUserAgent(userAgent?: string) { - this.userAgent = (is.string(userAgent) ? userAgent : '')!; + this.userAgent = (typeof userAgent === 'string' ? userAgent : '')!; return this; } @@ -106,7 +104,7 @@ export class RequestInformationContainer { * @returns {this} - returns the instance for chaining */ setRemoteAddress(remoteIp?: string) { - this.remoteAddress = (is.string(remoteIp) ? remoteIp : '')!; + this.remoteAddress = (typeof remoteIp === 'string' ? remoteIp : '')!; return this; } @@ -118,7 +116,7 @@ export class RequestInformationContainer { * @returns {this} - returns the instance for chaining */ setStatusCode(statusCode: number) { - this.statusCode = is.number(statusCode) ? statusCode : 0; + this.statusCode = typeof statusCode === 'number' ? statusCode : 0; return this; } diff --git a/handwritten/error-reporting/src/configuration.ts b/handwritten/error-reporting/src/configuration.ts index 6b31b342340..ba37804d0cb 100644 --- a/handwritten/error-reporting/src/configuration.ts +++ b/handwritten/error-reporting/src/configuration.ts @@ -12,7 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import * as is from 'is'; import has = require('lodash.has'); const env = process.env; @@ -181,7 +180,8 @@ export class Configuration { * @type {Object|Null} * @defaultvalue null */ - this._givenConfiguration = is.object(givenConfig) ? givenConfig! : {}; + this._givenConfiguration = + givenConfig?.toString() === '[object Object]' ? givenConfig! : {}; this._checkLocalServiceContext(); this._gatherLocalConfiguration(); } @@ -243,17 +243,26 @@ export class Configuration { version = env.GAE_MODULE_VERSION; } - this._serviceContext.service = (is.string(service) ? service : 'node')!; - this._serviceContext.version = is.string(version) ? version : undefined; + this._serviceContext.service = (typeof service === 'string' + ? service + : 'node')!; + this._serviceContext.version = + typeof version === 'string' ? version : undefined; - if (is.object(this._givenConfiguration.serviceContext)) { - if (is.string(this._givenConfiguration.serviceContext!.service)) { + if ( + this._givenConfiguration.serviceContext?.toString() === '[object Object]' + ) { + if ( + typeof this._givenConfiguration.serviceContext!.service === 'string' + ) { this._serviceContext.service = this._givenConfiguration.serviceContext!.service!; } else if (has(this._givenConfiguration.serviceContext, 'service')) { throw new Error('config.serviceContext.service must be a string'); } - if (is.string(this._givenConfiguration.serviceContext!.version)) { + if ( + typeof this._givenConfiguration.serviceContext!.version === 'string' + ) { this._serviceContext.version = this._givenConfiguration.serviceContext!.version; } else if (has(this._givenConfiguration.serviceContext, 'version')) { throw new Error('config.serviceContext.version must be a string'); @@ -283,7 +292,7 @@ export class Configuration { if (has(this._givenConfiguration, 'reportMode')) { const reportMode = this._givenConfiguration.reportMode; isReportModeValid = - is.string(reportMode) && + typeof reportMode === 'string' && (reportMode === 'production' || reportMode === 'always' || reportMode === 'never'); @@ -317,7 +326,7 @@ export class Configuration { this._reportMode = 'always'; } else if ( has(this._givenConfiguration, 'ignoreEnvironmentCheck') && - !is.boolean(this._givenConfiguration.ignoreEnvironmentCheck) + typeof this._givenConfiguration.ignoreEnvironmentCheck !== 'boolean' ) { throw new Error('config.ignoreEnvironmentCheck must be a boolean'); } else { @@ -338,22 +347,26 @@ export class Configuration { ); } - if (is.string(this._givenConfiguration.key)) { + if (typeof this._givenConfiguration.key === 'string') { this._key = this._givenConfiguration.key!; } else if (has(this._givenConfiguration, 'key')) { throw new Error('config.key must be a string'); } - if (is.string(this._givenConfiguration.keyFilename)) { + if (typeof this._givenConfiguration.keyFilename === 'string') { this.keyFilename = this._givenConfiguration.keyFilename!; } else if (has(this._givenConfiguration, 'keyFilename')) { throw new Error('config.keyFilename must be a string'); } - if (is.object(this._givenConfiguration.credentials)) { + if ( + this._givenConfiguration.credentials?.toString() === '[object Object]' + ) { this.credentials = this._givenConfiguration.credentials!; } else if (has(this._givenConfiguration, 'credentials')) { throw new Error('config.credentials must be a valid credentials object'); } - if (is.boolean(this._givenConfiguration.reportUnhandledRejections)) { + if ( + typeof this._givenConfiguration.reportUnhandledRejections === 'boolean' + ) { this._reportUnhandledRejections = this._givenConfiguration.reportUnhandledRejections!; } else if (has(this._givenConfiguration, 'reportUnhandledRejections')) { throw new Error('config.reportUnhandledRejections must be a boolean'); @@ -382,14 +395,14 @@ export class Configuration { * @returns {Undefined} - does not return anything */ _checkLocalProjectId() { - if (is.string(this._projectId)) { + if (typeof this._projectId === 'string') { // already has been set by the metadata service return this._projectId; } if (has(this._givenConfiguration, 'projectId')) { - if (is.string(this._givenConfiguration.projectId)) { + if (typeof this._givenConfiguration.projectId === 'string') { this._projectId = this._givenConfiguration.projectId!; - } else if (is.number(this._givenConfiguration.projectId)) { + } else if (typeof this._givenConfiguration.projectId === 'number') { this._projectId = this._givenConfiguration.projectId!.toString(); } } diff --git a/handwritten/error-reporting/src/google-apis/auth-client.ts b/handwritten/error-reporting/src/google-apis/auth-client.ts index 342978cbdb0..1fe26bda609 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.ts +++ b/handwritten/error-reporting/src/google-apis/auth-client.ts @@ -14,7 +14,6 @@ // eslint-disable-next-line @typescript-eslint/no-var-requires const pkg = require('../../../package.json'); -import * as is from 'is'; import {Configuration, Logger} from '../configuration'; import {ErrorMessage} from '../classes/error-message'; import * as http from 'http'; @@ -68,7 +67,7 @@ export class RequestHandler extends Service { * @static */ static manufactureQueryString(key: string | null) { - if (is.string(key)) { + if (typeof key === 'string') { return {key}; } return null; @@ -172,7 +171,9 @@ export class RequestHandler extends Service { body: {} ) => void ) { - const cb: Function = (is.function(userCb) ? userCb : RequestHandler.noOp)!; + const cb: Function = (typeof userCb === 'function' + ? userCb + : RequestHandler.noOp)!; if (!this._config.isReportingEnabled()) { cb(null, null, {}); return; diff --git a/handwritten/error-reporting/src/interfaces/express.ts b/handwritten/error-reporting/src/interfaces/express.ts index a0a083b9f58..c5b003d2f6e 100644 --- a/handwritten/error-reporting/src/interfaces/express.ts +++ b/handwritten/error-reporting/src/interfaces/express.ts @@ -13,7 +13,6 @@ // limitations under the License. import * as express from 'express'; -import * as is from 'is'; import {ErrorMessage} from '../classes/error-message'; import {Configuration} from '../configuration'; @@ -49,7 +48,7 @@ export function makeExpressHandler( let ctxService = ''; let ctxVersion: string | undefined = ''; - if (is.object(config)) { + if (config?.toString() === '[object Object]') { ctxService = config.getServiceContext().service; ctxVersion = config.getServiceContext().version; } @@ -65,11 +64,14 @@ export function makeExpressHandler( populateErrorMessage(err, em); - if (is.object(client) && is.function(client.sendError)) { + if ( + client?.toString() === '[object Object]' && + typeof client.sendError === 'function' + ) { client.sendError(em); } - if (is.function(next)) { + if (typeof next === 'function') { next(err); } diff --git a/handwritten/error-reporting/src/interfaces/hapi.ts b/handwritten/error-reporting/src/interfaces/hapi.ts index 68755af5472..41e097125d9 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.ts +++ b/handwritten/error-reporting/src/interfaces/hapi.ts @@ -13,7 +13,6 @@ // limitations under the License. import * as boom from 'boom'; -import * as is from 'is'; import {ErrorMessage} from '../classes/error-message'; import {populateErrorMessage} from '../populate-error-message'; @@ -40,7 +39,7 @@ function hapiErrorHandler(err: {}, req?: hapi.Request, config?: Configuration) { let service = ''; let version: string | undefined = ''; - if (is.object(config)) { + if (config?.toString() === '[object Object]') { service = config!.getServiceContext().service; version = config!.getServiceContext().version; } @@ -100,17 +99,17 @@ export function makeHapiPlugin(client: RequestHandler, config: Configuration) { } ); } else { - if (is.function(server.on)) { + if (typeof server.on === 'function') { server.on('request-error', (req: hapi.Request, err: {}) => { client.sendError(hapiErrorHandler(err, req, config)); }); } - if (is.function(server.ext)) { + if (typeof server.ext === 'function') { // eslint-disable-next-line @typescript-eslint/no-explicit-any server.ext('onPreResponse', (request: hapi.Request, reply: any) => { if ( - is.object(request) && + request?.toString() === '[object Object]' && request.response && ((request.response as unknown) as boom).isBoom ) { @@ -126,7 +125,7 @@ export function makeHapiPlugin(client: RequestHandler, config: Configuration) { client.sendError(em); } - if (reply && is.function(reply.continue)) { + if (reply && typeof reply.continue === 'function') { reply.continue(); } }); @@ -134,7 +133,7 @@ export function makeHapiPlugin(client: RequestHandler, config: Configuration) { } } - if (is.function(next)) { + if (typeof next === 'function') { return next!(); } } diff --git a/handwritten/error-reporting/src/interfaces/manual.ts b/handwritten/error-reporting/src/interfaces/manual.ts index c38bec60891..b5d3dec99f6 100644 --- a/handwritten/error-reporting/src/interfaces/manual.ts +++ b/handwritten/error-reporting/src/interfaces/manual.ts @@ -13,7 +13,6 @@ // limitations under the License. import * as http from 'http'; -import * as is from 'is'; import {ErrorMessage} from '../classes/error-message'; import {Configuration, Logger} from '../configuration'; @@ -104,19 +103,19 @@ export function handlerSetup( callback?: Callback | {} | string ): ErrorMessage { let em; - if (is.string(request)) { + if (typeof request === 'string') { // no request given callback = customMessage; customMessage = request as string; request = undefined; - } else if (is.function(request)) { + } else if (typeof request === 'function') { // neither request nor customMessage given callback = request; request = undefined; customMessage = undefined; } - if (is.function(customMessage)) { + if (typeof customMessage === 'function') { callback = customMessage; customMessage = undefined; } @@ -152,14 +151,14 @@ export function handlerSetup( populateErrorMessage(err, em); } - if (is.object(request)) { + if (request?.toString() === '[object Object]') { // TODO: Address this explicit cast em.consumeRequestInformation( manualRequestInformationExtractor(request as Request) ); } - if (is.string(customMessage)) { + if (typeof customMessage === 'string') { em.setMessage(customMessage as string); } diff --git a/handwritten/error-reporting/src/interfaces/restify.ts b/handwritten/error-reporting/src/interfaces/restify.ts index 9ea7325b513..a48f53392a1 100644 --- a/handwritten/error-reporting/src/interfaces/restify.ts +++ b/handwritten/error-reporting/src/interfaces/restify.ts @@ -13,7 +13,6 @@ // limitations under the License. import * as express from 'express'; -import * as is from 'is'; import * as restify from 'restify'; import {ErrorMessage} from '../classes/error-message'; @@ -120,9 +119,9 @@ function restifyRequestHandler( let listener = {}; if ( - is.object(res) && - is.function(res.on) && - is.function(res.removeListener) + res?.toString() === '[object Object]' && + typeof res.on === 'function' && + typeof res.removeListener === 'function' ) { listener = () => { restifyRequestFinishHandler(client, config, req, res); diff --git a/handwritten/error-reporting/src/logger.ts b/handwritten/error-reporting/src/logger.ts index c1343d51c2d..91a8bd3236b 100644 --- a/handwritten/error-reporting/src/logger.ts +++ b/handwritten/error-reporting/src/logger.ts @@ -12,7 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import * as is from 'is'; import has = require('lodash.has'); import consoleLogLevel = require('console-log-level'); @@ -66,11 +65,14 @@ export function createLogger(config?: ConfigurationOptions): Logger { if (has(process.env, 'GCLOUD_ERRORS_LOGLEVEL')) { // Cast env string as integer level = ~~process.env.GCLOUD_ERRORS_LOGLEVEL! || DEFAULT_LEVEL; - } else if (is.object(config) && has(config, 'logLevel')) { - if (is.string(config!.logLevel)) { + } else if ( + config?.toString() === '[object Object]' && + has(config, 'logLevel') + ) { + if (typeof config!.logLevel === 'string') { // Cast string as integer level = ~~config!.logLevel! || DEFAULT_LEVEL; - } else if (is.number(config!.logLevel)) { + } else if (typeof config!.logLevel === 'number') { level = Number(config!.logLevel!) || DEFAULT_LEVEL; } else { throw new Error( diff --git a/handwritten/error-reporting/src/populate-error-message.ts b/handwritten/error-reporting/src/populate-error-message.ts index d71507efda8..a9d0750a93e 100644 --- a/handwritten/error-reporting/src/populate-error-message.ts +++ b/handwritten/error-reporting/src/populate-error-message.ts @@ -12,7 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import * as is from 'is'; import has = require('lodash.has'); import * as util from 'util'; @@ -45,7 +44,7 @@ export function populateErrorMessage(ob: any, em: ErrorMessage) { em.setMessage(buildStackTrace('' + ob)); } else if ((ob as {stack: {}}).stack) { populateFromError(ob as Error, em); - } else if (typeof ob === 'object' && is.object(ob)) { + } else if (typeof ob === 'object' && ob?.toString() === '[object Object]') { populateFromObject(ob, em); } else { em.setMessage(buildStackTrace(ob.toString())); @@ -76,7 +75,10 @@ function populateFromError( errorMessage.setUser(err.user!); } - if (has(err, 'serviceContext') && is.object(err.serviceContext)) { + if ( + has(err, 'serviceContext') && + err.serviceContext?.toString() === '[object Object]' + ) { errorMessage.setServiceContext( err.serviceContext!.service!, err.serviceContext!.version @@ -131,7 +133,10 @@ function populateFromObject(ob: PopulatedObject, errorMessage: ErrorMessage) { errorMessage.setFunctionName(ob.functionName!); } - if (has(ob, 'serviceContext') && is.object(ob.serviceContext)) { + if ( + has(ob, 'serviceContext') && + ob.serviceContext?.toString() === '[object Object]' + ) { errorMessage.setServiceContext( ob.serviceContext!.service!, ob.serviceContext!.version diff --git a/handwritten/error-reporting/src/request-extractors/express.ts b/handwritten/error-reporting/src/request-extractors/express.ts index 757d4fa74b2..79a1481afb6 100644 --- a/handwritten/error-reporting/src/request-extractors/express.ts +++ b/handwritten/error-reporting/src/request-extractors/express.ts @@ -13,8 +13,6 @@ // limitations under the License. import * as express from 'express'; -import * as is from 'is'; - import {RequestInformationContainer} from '../classes/request-information-container'; /** @@ -30,7 +28,7 @@ import {RequestInformationContainer} from '../classes/request-information-contai function extractRemoteAddressFromRequest(req: express.Request) { if (typeof req.header('x-forwarded-for') !== 'undefined') { return req.header('x-forwarded-for'); - } else if (is.object(req.connection)) { + } else if (req.connection?.toString() === '[object Object]') { return req.connection.remoteAddress; } @@ -54,7 +52,11 @@ export function expressRequestInformationExtractor( ) { const returnObject = new RequestInformationContainer(); - if (!is.object(req) || !is.function(req.header) || !is.object(res)) { + if ( + req?.toString() !== '[object Object]' || + typeof req.header !== 'function' || + res?.toString() !== '[object Object]' + ) { return returnObject; } diff --git a/handwritten/error-reporting/src/request-extractors/hapi.ts b/handwritten/error-reporting/src/request-extractors/hapi.ts index 47a5265281d..8933c7a0adf 100644 --- a/handwritten/error-reporting/src/request-extractors/hapi.ts +++ b/handwritten/error-reporting/src/request-extractors/hapi.ts @@ -13,7 +13,6 @@ // limitations under the License. import * as boom from 'boom'; -import * as is from 'is'; import has = require('lodash.has'); import {RequestInformationContainer} from '../classes/request-information-container'; @@ -31,10 +30,13 @@ import * as hapi from '@hapi/hapi'; function attemptToExtractStatusCode(req: hapi.Request) { // TODO: Handle the cases where `req.response` and `req.response.output` are // `null` in this function - if (has(req, 'response') && is.object(req.response)) { + if (has(req, 'response') && req.response?.toString() === '[object Object]') { if (has(req.response, 'statusCode')) { return (req.response as hapi.ResponseObject).statusCode; - } else if (is.object(((req.response as unknown) as boom).output)) { + } else if ( + ((req.response as unknown) as boom).output?.toString() === + '[object Object]' + ) { return ((req.response as unknown) as boom).output.statusCode; } } @@ -55,7 +57,7 @@ function attemptToExtractStatusCode(req: hapi.Request) { function extractRemoteAddressFromRequest(req: hapi.Request) { if (has(req.headers, 'x-forwarded-for')) { return req.headers['x-forwarded-for']; - } else if (is.object(req.info)) { + } else if (req.info?.toString() === '[object Object]') { return req.info.remoteAddress; } @@ -75,16 +77,16 @@ export function hapiRequestInformationExtractor(req?: hapi.Request) { const returnObject = new RequestInformationContainer(); if ( - !is.object(req) || - !is.object(req!.headers) || - is.function(req) || - is.array(req) + req?.toString() !== '[object Object]' || + req!.headers?.toString() !== '[object Object]' || + typeof req === 'function' || + Array.isArray(req) ) { return returnObject; } let urlString: string; - if (is.string(req!.url)) { + if (typeof req!.url === 'string') { urlString = (req!.url as {}) as string; } else { urlString = req!.url.pathname; diff --git a/handwritten/error-reporting/src/request-extractors/koa.ts b/handwritten/error-reporting/src/request-extractors/koa.ts index 081cacc8145..01da880b1f2 100644 --- a/handwritten/error-reporting/src/request-extractors/koa.ts +++ b/handwritten/error-reporting/src/request-extractors/koa.ts @@ -12,7 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import * as is from 'is'; import * as koa from 'koa'; import {RequestInformationContainer} from '../classes/request-information-container'; @@ -34,13 +33,13 @@ export function koaRequestInformationExtractor( const returnObject = new RequestInformationContainer(); if ( - !is.object(req) || - !is.object(res) || - is.function(req) || - is.function(res) || - is.array(req) || - is.array(res) || - !is.object(req.headers) + req?.toString() !== '[object Object]' || + res?.toString() !== '[object Object]' || + typeof req === 'function' || + typeof res === 'function' || + Array.isArray(req) || + Array.isArray(res) || + req.headers?.toString() !== '[object Object]' ) { return returnObject; } diff --git a/handwritten/error-reporting/src/request-extractors/manual.ts b/handwritten/error-reporting/src/request-extractors/manual.ts index b6d943c369c..7829a488b30 100644 --- a/handwritten/error-reporting/src/request-extractors/manual.ts +++ b/handwritten/error-reporting/src/request-extractors/manual.ts @@ -12,7 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import * as is from 'is'; import has = require('lodash.has'); import {RequestInformationContainer} from '../classes/request-information-container'; @@ -46,7 +45,11 @@ export interface Request { export function manualRequestInformationExtractor(req: Request) { const returnObject = new RequestInformationContainer(); - if (!is.object(req) || is.array(req) || is.function(req)) { + if ( + req?.toString() !== '[object Object]' || + Array.isArray(req) || + typeof req === 'function' + ) { return returnObject; } diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index 2aeacd3d676..a85c6ad4bc6 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -15,7 +15,6 @@ import * as assert from 'assert'; import {describe, it, before, beforeEach, after, afterEach} from 'mocha'; import delay from 'delay'; -import * as is from 'is'; import * as nock from 'nock'; import {ErrorReporting} from '../src'; @@ -58,7 +57,10 @@ class InstancedEnv { } _captureProcessProperties() { - return omitBy(pick(process.env, envKeys), value => !is.string(value)); + return omitBy( + pick(process.env, envKeys), + value => typeof value !== 'string' + ); } sterilizeProcess() { @@ -114,22 +116,22 @@ const env = new InstancedEnv({ function shouldRun() { let shouldRun = true; - if (!is.string(env.injected().projectId)) { + if (typeof env.injected().projectId !== 'string') { console.log('The project id (projectId) was not set in the env'); shouldRun = false; } - if (!is.string(env.injected().apiKey)) { + if (typeof env.injected().apiKey !== 'string') { console.log('The api key (apiKey) was not set as an env variable'); shouldRun = false; } - if (!is.string(env.injected().projectNumber)) { + if (typeof env.injected().projectNumber !== 'string') { console.log('The project number (projectNumber) was not set in the env'); shouldRun = false; } - if (!is.string(env.injected().keyFilename)) { + if (typeof env.injected().keyFilename !== 'string') { console.log('The key filename (keyFilename) was not set in the env'); shouldRun = false; } @@ -185,7 +187,7 @@ describe('Request/Response lifecycle mocking', () => { err!.message.toLowerCase(), 'message cannot be empty.' ); - assert(is.object(response)); + assert(response?.toString() === '[object Object]'); assert.strictEqual(response!.statusCode, 400); done(); }); @@ -268,7 +270,10 @@ describe('Client creation', () => { (err, response, body) => { assert.strictEqual(err, null); assert.strictEqual(response!.statusCode, 200); - assert(is.object(body) && is.empty(body)); + assert( + body?.toString() === '[object Object]' && + Object.keys(body).length === 0 + ); done(); } ); @@ -290,7 +295,10 @@ describe('Client creation', () => { (err, response, body) => { assert.strictEqual(err, null); assert.strictEqual(response!.statusCode, 200); - assert(is.object(body) && is.empty(body)); + assert( + body?.toString() === '[object Object]' && + Object.keys(body).length === 0 + ); done(); } ); @@ -318,7 +326,10 @@ describe('Client creation', () => { (err, response, body) => { assert.strictEqual(err, null); assert.strictEqual(response!.statusCode, 200); - assert(is.object(body) && is.empty(body)); + assert( + body?.toString() === '[object Object]' && + Object.keys(body).length === 0 + ); done(); } ); @@ -340,7 +351,10 @@ describe('Client creation', () => { (err, response, body) => { assert.strictEqual(err, null); assert.strictEqual(response!.statusCode, 200); - assert(is.object(body) && is.empty(body)); + assert( + body?.toString() === '[object Object]' && + Object.keys(body).length === 0 + ); done(); } ); @@ -394,8 +408,8 @@ describe('Expected Behavior', () => { client.sendError(em, (err, response, body) => { assert.strictEqual(err, null); - assert(is.object(body)); - assert(is.empty(body)); + assert(body?.toString() === '[object Object]'); + assert(Object.keys(body).length === 0); assert.strictEqual(response!.statusCode, 200); done(); }); @@ -414,8 +428,8 @@ describe('Expected Behavior', () => { const client = new RequestHandler(cfg, logger); client.sendError(em, (err, response, body) => { assert.strictEqual(err, null); - assert(is.object(body)); - assert(is.empty(body)); + assert(body?.toString() === '[object Object]'); + assert(Object.keys(body).length === 0); assert.strictEqual(response!.statusCode, 200); done(); }); @@ -593,7 +607,7 @@ describe('error-reporting', () => { async (err, response, body) => { try { assert.ifError(err); - assert(is.object(response)); + assert(response?.toString() === '[object Object]'); deepStrictEqual(body, {}); await verifyServerResponse(messageTest, maxCount, timeout); resolve(); diff --git a/handwritten/error-reporting/test/unit/configuration.ts b/handwritten/error-reporting/test/unit/configuration.ts index 5030051bbb6..c26d88355e8 100644 --- a/handwritten/error-reporting/test/unit/configuration.ts +++ b/handwritten/error-reporting/test/unit/configuration.ts @@ -14,7 +14,6 @@ import * as assert from 'assert'; import {describe, it, before, after, afterEach, beforeEach} from 'mocha'; -import * as is from 'is'; import merge = require('lodash.merge'); import {FakeConfiguration as Configuration} from '../fixtures/configuration'; import {ConfigurationOptions, Logger} from '../../src/configuration'; @@ -23,7 +22,7 @@ import {deepStrictEqual} from '../util'; const level = process.env.GCLOUD_ERRORS_LOGLEVEL; import {createLogger} from '../../src/logger'; const logger = createLogger({ - logLevel: is.number(level) ? level : 4, + logLevel: typeof level === 'number' ? level : 4, }); import * as nock from 'nock'; diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.ts b/handwritten/error-reporting/test/unit/interfaces/hapi.ts index 7aba3a7b4d7..5681bbdc1ec 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.ts +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.ts @@ -12,7 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import * as is from 'is'; import has = require('lodash.has'); import * as assert from 'assert'; import {describe, it, beforeEach, before, afterEach} from 'mocha'; @@ -60,15 +59,15 @@ describe('Hapi interface', () => { ); }); it('should have plain object as plugin', () => { - assert(is.object(plugin)); + assert(plugin?.toString() === '[object Object]'); }); it('plugin should have a register function property', () => { - assert(has(plugin, 'register') && is.function(plugin.register)); + assert(has(plugin, 'register') && typeof plugin.register === 'function'); }); it("the plugin's register property should have an attributes property", () => { assert( has(plugin.register, 'attributes') && - is.object(plugin.register.attributes) + plugin.register.attributes?.toString() === '[object Object]' ); }); it("the plugin's attribute property should have a name property", () => { diff --git a/handwritten/error-reporting/test/unit/service-configuration.ts b/handwritten/error-reporting/test/unit/service-configuration.ts index 59213cbc3ae..d13868c0adb 100644 --- a/handwritten/error-reporting/test/unit/service-configuration.ts +++ b/handwritten/error-reporting/test/unit/service-configuration.ts @@ -14,7 +14,6 @@ import * as assert from 'assert'; import {describe, beforeEach, after, it} from 'mocha'; -import * as is from 'is'; import omitBy = require('lodash.omitby'); import {FakeConfiguration as Configuration} from '../fixtures/configuration'; import {deepStrictEqual} from '../util'; @@ -22,7 +21,7 @@ const level = process.env.GCLOUD_ERRORS_LOGLEVEL; import {createLogger} from '../../src/logger'; const logger = createLogger({ - logLevel: is.number(level) ? level : 4, + logLevel: typeof level === 'number' ? level : 4, }); const serviceConfigEnv = { GAE_SERVICE: process.env.GAE_SERVICE, @@ -58,7 +57,7 @@ function setEnv(envData: { K_REVISION: envData.kRevision, }, val => { - return !is.string(val); + return typeof val !== 'string'; } ) ); diff --git a/handwritten/error-reporting/utils/fuzzer.ts b/handwritten/error-reporting/utils/fuzzer.ts index f99dc7b1a3b..1aac9aca4d1 100644 --- a/handwritten/error-reporting/utils/fuzzer.ts +++ b/handwritten/error-reporting/utils/fuzzer.ts @@ -15,7 +15,6 @@ import without = require('lodash.without'); import maxBy = require('lodash.maxby'); import random = require('lodash.random'); -import * as is from 'is'; export class Fuzzer { generate = { @@ -33,7 +32,7 @@ export class Fuzzer { }, string(len?: number) { - const lenChecked = (is.number(len) ? len : 10)!; + const lenChecked = (typeof len === 'number' ? len : 10)!; const chars: string[] = []; for (let i = 0; i < lenChecked; i++) { @@ -48,7 +47,7 @@ export class Fuzzer { }, alphaNumericString(len?: number) { - const lenChecked = (is.number(len) ? len : 10)!; + const lenChecked = (typeof len === 'number' ? len : 10)!; const chars: string[] = []; let thisRange: number[] = []; const ranges = [ @@ -76,8 +75,8 @@ export class Fuzzer { }, number(lower?: number, upper?: number) { - const lowerChecked = (is.number(lower) ? lower : 0)!; - const upperChecked = (is.number(upper) ? upper : 100)!; + const lowerChecked = (typeof lower === 'number' ? lower : 0)!; + const upperChecked = (typeof upper === 'number' ? upper : 100)!; return random(lowerChecked, upperChecked); }, @@ -96,13 +95,17 @@ export class Fuzzer { currentDepth?: number, allowedDepth?: number ) { - const lenChecked = (is.number(len) ? len : random(1, 10))!; - let availableTypes = (is.string(ofOneType) && + const lenChecked = (typeof len === 'number' ? len : random(1, 10))!; + let availableTypes = (typeof ofOneType === 'string' && this.types().indexOf(ofOneType!) > -1 ? [ofOneType] : this.types())!; - let currentDepthChecked = (is.number(currentDepth) ? currentDepth : 0)!; - const allowedDepthChecked = (is.number(allowedDepth) ? allowedDepth : 3)!; + let currentDepthChecked = (typeof currentDepth === 'number' + ? currentDepth + : 0)!; + const allowedDepthChecked = (typeof allowedDepth === 'number' + ? allowedDepth + : 3)!; const arr: Array<{}> = []; let currentTypeBeingGenerated: string | undefined = ''; currentDepthChecked += 1; @@ -148,11 +151,15 @@ export class Fuzzer { currentDepth?: number, allowedDepth?: number ) { - const numPropertiesChecked = (is.number(numProperties) + const numPropertiesChecked = (typeof numProperties === 'number' ? numProperties : random(1, 10))!; - let currentDepthChecked = (is.number(currentDepth) ? currentDepth : 0)!; - const allowedDepthChecked = (is.number(allowedDepth) ? allowedDepth : 3)!; + let currentDepthChecked = (typeof currentDepth === 'number' + ? currentDepth + : 0)!; + const allowedDepthChecked = (typeof allowedDepth === 'number' + ? allowedDepth + : 3)!; const obj: {[key: string]: {}} = {}; currentDepthChecked += 1; @@ -236,7 +243,7 @@ export class Fuzzer { let tmpArray = this.generate.types(); for (let i = 0; i < expectsArgTypes.length; i++) { - if (!is.array(expectsArgTypes[i])) { + if (!Array.isArray(expectsArgTypes[i])) { argsTypesArray.push(without(this.generate.types(), expectsArgTypes[i])); } else { for (let j = 0; j < expectsArgTypes[i].length; j++) { @@ -272,7 +279,7 @@ export class Fuzzer { cb?: Function, withContext?: {} ) { - const expectsArgTypesChecked = (is.array(expectsArgTypes) + const expectsArgTypesChecked = (Array.isArray(expectsArgTypes) ? expectsArgTypes : [])!; const typesToFuzzOnEach = this._generateTypesToFuzzWith( @@ -287,7 +294,7 @@ export class Fuzzer { this._generateValuesForFuzzTyping(typesToFuzzOnEach, i) ); - if (is.function(cb)) { + if (typeof cb === 'function') { cb!(returnValue); } } From a6772771f17255f9f3217600bc29b80de57d9095 Mon Sep 17 00:00:00 2001 From: Nicole Zhu <69952136+nicoleczhu@users.noreply.github.com> Date: Wed, 5 May 2021 10:31:25 -0700 Subject: [PATCH 398/527] chore: drop dependency on lodash.merge (#564) --- handwritten/error-reporting/package.json | 2 -- handwritten/error-reporting/test/unit/configuration.ts | 3 +-- handwritten/error-reporting/test/unit/interfaces/express.ts | 3 +-- 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index f5ff45177df..9e00045b391 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -51,7 +51,6 @@ "@types/koa": "^2.0.48", "@types/lodash.has": "^4.5.6", "@types/lodash.maxby": "^4.6.6", - "@types/lodash.merge": "^4.6.6", "@types/lodash.omit": "^4.5.6", "@types/lodash.omitby": "^4.6.6", "@types/lodash.pick": "^4.4.6", @@ -77,7 +76,6 @@ "koa": "^2.7.0", "linkinator": "^2.0.0", "lodash.maxby": "^4.6.0", - "lodash.merge": "^4.6.2", "lodash.omit": "^4.5.0", "lodash.omitby": "^4.6.0", "lodash.pick": "^4.4.0", diff --git a/handwritten/error-reporting/test/unit/configuration.ts b/handwritten/error-reporting/test/unit/configuration.ts index c26d88355e8..2ca5037d575 100644 --- a/handwritten/error-reporting/test/unit/configuration.ts +++ b/handwritten/error-reporting/test/unit/configuration.ts @@ -14,7 +14,6 @@ import * as assert from 'assert'; import {describe, it, before, after, afterEach, beforeEach} from 'mocha'; -import merge = require('lodash.merge'); import {FakeConfiguration as Configuration} from '../fixtures/configuration'; import {ConfigurationOptions, Logger} from '../../src/configuration'; import {Fuzzer} from '../../utils/fuzzer'; @@ -231,7 +230,7 @@ describe('Configuration class', () => { }); }); describe('with ignoreEnvironmentCheck', () => { - const conf = merge( + const conf = Object.assign( {}, {projectId: 'some-id'}, {ignoreEnvironmentCheck: true} diff --git a/handwritten/error-reporting/test/unit/interfaces/express.ts b/handwritten/error-reporting/test/unit/interfaces/express.ts index e472cf0649c..4c2a5911475 100644 --- a/handwritten/error-reporting/test/unit/interfaces/express.ts +++ b/handwritten/error-reporting/test/unit/interfaces/express.ts @@ -14,7 +14,6 @@ import * as assert from 'assert'; import {describe, it} from 'mocha'; -import merge = require('lodash.merge'); import {ErrorMessage} from '../../../src/classes/error-message'; import {RequestHandler} from '../../../src/google-apis/auth-client'; @@ -65,7 +64,7 @@ describe('expressInterface', () => { const res = validBoundHandler(testError, null!, null!, null!); deepStrictEqual( res, - merge( + Object.assign( new ErrorMessage() .setMessage(testError.stack!) .setServiceContext( From dc42d3c14dcbcc016165fc3315bb8df370af236a Mon Sep 17 00:00:00 2001 From: Nicole Zhu <69952136+nicoleczhu@users.noreply.github.com> Date: Wed, 5 May 2021 11:22:02 -0700 Subject: [PATCH 399/527] chore: remove chai dev dependency (#562) It was never used. Not sure why it was imported. Original PR: https://github.com/googleapis/nodejs-error-reporting/commit/454f76b33abc5775af64289e41b83e460f6bc519 --- handwritten/error-reporting/package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 9e00045b391..21366e246f4 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -65,7 +65,6 @@ "body-parser": "^1.19.0", "boom": "^7.3.0", "c8": "^7.0.0", - "chai": "^4.2.0", "codecov": "^3.5.0", "delay": "^5.0.0", "express": "^4.17.1", From 8ae82eb0ccec74a7f24b5052cd85c16d42e18ea7 Mon Sep 17 00:00:00 2001 From: Nicole Zhu <69952136+nicoleczhu@users.noreply.github.com> Date: Wed, 5 May 2021 14:08:02 -0700 Subject: [PATCH 400/527] deps: remove lodash.has (#561) Removing _.has from production --- handwritten/error-reporting/package.json | 5 +-- .../error-reporting/src/configuration.ts | 31 +++++++++++-------- handwritten/error-reporting/src/logger.ts | 5 ++- .../src/populate-error-message.ts | 17 +++++----- .../src/request-extractors/hapi.ts | 7 ++--- .../src/request-extractors/manual.ts | 13 ++++---- .../test-servers/express_scaffold_server.ts | 3 +- .../test/unit/interfaces/hapi.ts | 11 ++----- 8 files changed, 42 insertions(+), 50 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 21366e246f4..f48f91c5cec 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -37,8 +37,7 @@ }, "dependencies": { "@google-cloud/common": "^3.0.0", - "console-log-level": "^1.4.1", - "lodash.has": "^4.5.2" + "console-log-level": "^1.4.1" }, "devDependencies": { "@compodoc/compodoc": "^1.1.10", @@ -46,10 +45,8 @@ "@types/console-log-level": "^1.4.0", "@types/express": "^4.17.0", "@types/hapi__hapi": "^20.0.5", - "@types/is": "0.0.21", "@types/json-stable-stringify": "^1.0.32", "@types/koa": "^2.0.48", - "@types/lodash.has": "^4.5.6", "@types/lodash.maxby": "^4.6.6", "@types/lodash.omit": "^4.5.6", "@types/lodash.omitby": "^4.6.6", diff --git a/handwritten/error-reporting/src/configuration.ts b/handwritten/error-reporting/src/configuration.ts index ba37804d0cb..ce61f24acfa 100644 --- a/handwritten/error-reporting/src/configuration.ts +++ b/handwritten/error-reporting/src/configuration.ts @@ -12,8 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import has = require('lodash.has'); - const env = process.env; // The Logger interface defined below matches the interface @@ -256,7 +254,9 @@ export class Configuration { typeof this._givenConfiguration.serviceContext!.service === 'string' ) { this._serviceContext.service = this._givenConfiguration.serviceContext!.service!; - } else if (has(this._givenConfiguration.serviceContext, 'service')) { + } else if ( + this._givenConfiguration.serviceContext?.service !== undefined + ) { throw new Error('config.serviceContext.service must be a string'); } @@ -264,7 +264,9 @@ export class Configuration { typeof this._givenConfiguration.serviceContext!.version === 'string' ) { this._serviceContext.version = this._givenConfiguration.serviceContext!.version; - } else if (has(this._givenConfiguration.serviceContext, 'version')) { + } else if ( + this._givenConfiguration.serviceContext?.version !== undefined + ) { throw new Error('config.serviceContext.version must be a string'); } } @@ -289,7 +291,7 @@ export class Configuration { */ _gatherLocalConfiguration() { let isReportModeValid = true; - if (has(this._givenConfiguration, 'reportMode')) { + if (this._givenConfiguration?.reportMode !== undefined) { const reportMode = this._givenConfiguration.reportMode; isReportModeValid = typeof reportMode === 'string' && @@ -305,8 +307,9 @@ export class Configuration { ); } - const hasEnvCheck = has(this._givenConfiguration, 'ignoreEnvironmentCheck'); - const hasReportMode = has(this._givenConfiguration, 'reportMode'); + const hasEnvCheck = + this._givenConfiguration?.ignoreEnvironmentCheck !== undefined; + const hasReportMode = this._givenConfiguration?.reportMode !== undefined; if (hasEnvCheck) { this._logger.warn( 'The "ignoreEnvironmentCheck" config option is deprecated. ' + @@ -325,7 +328,7 @@ export class Configuration { if (this._givenConfiguration.ignoreEnvironmentCheck === true) { this._reportMode = 'always'; } else if ( - has(this._givenConfiguration, 'ignoreEnvironmentCheck') && + this._givenConfiguration?.ignoreEnvironmentCheck !== undefined && typeof this._givenConfiguration.ignoreEnvironmentCheck !== 'boolean' ) { throw new Error('config.ignoreEnvironmentCheck must be a boolean'); @@ -349,26 +352,28 @@ export class Configuration { if (typeof this._givenConfiguration.key === 'string') { this._key = this._givenConfiguration.key!; - } else if (has(this._givenConfiguration, 'key')) { + } else if (this._givenConfiguration?.key !== undefined) { throw new Error('config.key must be a string'); } if (typeof this._givenConfiguration.keyFilename === 'string') { this.keyFilename = this._givenConfiguration.keyFilename!; - } else if (has(this._givenConfiguration, 'keyFilename')) { + } else if (this._givenConfiguration?.keyFilename !== undefined) { throw new Error('config.keyFilename must be a string'); } if ( this._givenConfiguration.credentials?.toString() === '[object Object]' ) { this.credentials = this._givenConfiguration.credentials!; - } else if (has(this._givenConfiguration, 'credentials')) { + } else if (this._givenConfiguration?.credentials !== undefined) { throw new Error('config.credentials must be a valid credentials object'); } if ( typeof this._givenConfiguration.reportUnhandledRejections === 'boolean' ) { this._reportUnhandledRejections = this._givenConfiguration.reportUnhandledRejections!; - } else if (has(this._givenConfiguration, 'reportUnhandledRejections')) { + } else if ( + this._givenConfiguration?.reportUnhandledRejections !== undefined + ) { throw new Error('config.reportUnhandledRejections must be a boolean'); } } @@ -399,7 +404,7 @@ export class Configuration { // already has been set by the metadata service return this._projectId; } - if (has(this._givenConfiguration, 'projectId')) { + if (this._givenConfiguration?.projectId !== undefined) { if (typeof this._givenConfiguration.projectId === 'string') { this._projectId = this._givenConfiguration.projectId!; } else if (typeof this._givenConfiguration.projectId === 'number') { diff --git a/handwritten/error-reporting/src/logger.ts b/handwritten/error-reporting/src/logger.ts index 91a8bd3236b..82e36981dde 100644 --- a/handwritten/error-reporting/src/logger.ts +++ b/handwritten/error-reporting/src/logger.ts @@ -12,7 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import has = require('lodash.has'); import consoleLogLevel = require('console-log-level'); // eslint-disable-next-line @typescript-eslint/no-var-requires @@ -62,12 +61,12 @@ function logLevelToName(level: number): consoleLogLevel.LogLevelNames { export function createLogger(config?: ConfigurationOptions): Logger { // Default to log level: warn (2) let level = DEFAULT_LEVEL; - if (has(process.env, 'GCLOUD_ERRORS_LOGLEVEL')) { + if (process.env.GCLOUD_ERRORS_LOGLEVEL) { // Cast env string as integer level = ~~process.env.GCLOUD_ERRORS_LOGLEVEL! || DEFAULT_LEVEL; } else if ( config?.toString() === '[object Object]' && - has(config, 'logLevel') + config?.logLevel !== undefined ) { if (typeof config!.logLevel === 'string') { // Cast string as integer diff --git a/handwritten/error-reporting/src/populate-error-message.ts b/handwritten/error-reporting/src/populate-error-message.ts index a9d0750a93e..2be4d0f6bb4 100644 --- a/handwritten/error-reporting/src/populate-error-message.ts +++ b/handwritten/error-reporting/src/populate-error-message.ts @@ -12,7 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import has = require('lodash.has'); import * as util from 'util'; import {buildStackTrace} from './build-stack-trace'; @@ -71,12 +70,12 @@ function populateFromError( ) { errorMessage.setMessage(err.stack!); - if (has(err, 'user')) { + if (err?.user !== undefined) { errorMessage.setUser(err.user!); } if ( - has(err, 'serviceContext') && + err?.serviceContext !== undefined && err.serviceContext?.toString() === '[object Object]' ) { errorMessage.setServiceContext( @@ -111,30 +110,30 @@ function populateFromError( * @returns {Undefined} - does not return anything */ function populateFromObject(ob: PopulatedObject, errorMessage: ErrorMessage) { - if (has(ob, 'message')) { + if (ob?.message !== undefined) { errorMessage.setMessage(ob.message!); } else { errorMessage.setMessage(buildStackTrace(util.inspect(ob))); } - if (has(ob, 'user')) { + if (ob?.user !== undefined) { errorMessage.setUser(ob.user!); } - if (has(ob, 'filePath')) { + if (ob?.filePath !== undefined) { errorMessage.setFilePath(ob.filePath!); } - if (has(ob, 'lineNumber')) { + if (ob?.lineNumber !== undefined) { errorMessage.setLineNumber(ob.lineNumber!); } - if (has(ob, 'functionName')) { + if (ob?.functionName !== undefined) { errorMessage.setFunctionName(ob.functionName!); } if ( - has(ob, 'serviceContext') && + ob?.serviceContext !== undefined && ob.serviceContext?.toString() === '[object Object]' ) { errorMessage.setServiceContext( diff --git a/handwritten/error-reporting/src/request-extractors/hapi.ts b/handwritten/error-reporting/src/request-extractors/hapi.ts index 8933c7a0adf..ca5e7018073 100644 --- a/handwritten/error-reporting/src/request-extractors/hapi.ts +++ b/handwritten/error-reporting/src/request-extractors/hapi.ts @@ -13,7 +13,6 @@ // limitations under the License. import * as boom from 'boom'; -import has = require('lodash.has'); import {RequestInformationContainer} from '../classes/request-information-container'; import * as hapi from '@hapi/hapi'; @@ -30,8 +29,8 @@ import * as hapi from '@hapi/hapi'; function attemptToExtractStatusCode(req: hapi.Request) { // TODO: Handle the cases where `req.response` and `req.response.output` are // `null` in this function - if (has(req, 'response') && req.response?.toString() === '[object Object]') { - if (has(req.response, 'statusCode')) { + if (typeof req.response === 'object') { + if ('statusCode' in req.response) { return (req.response as hapi.ResponseObject).statusCode; } else if ( ((req.response as unknown) as boom).output?.toString() === @@ -55,7 +54,7 @@ function attemptToExtractStatusCode(req: hapi.Request) { * a string that represents the remote IP address */ function extractRemoteAddressFromRequest(req: hapi.Request) { - if (has(req.headers, 'x-forwarded-for')) { + if ('x-forwarded-for' in req.headers) { return req.headers['x-forwarded-for']; } else if (req.info?.toString() === '[object Object]') { return req.info.remoteAddress; diff --git a/handwritten/error-reporting/src/request-extractors/manual.ts b/handwritten/error-reporting/src/request-extractors/manual.ts index 7829a488b30..2352ef82a16 100644 --- a/handwritten/error-reporting/src/request-extractors/manual.ts +++ b/handwritten/error-reporting/src/request-extractors/manual.ts @@ -12,7 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import has = require('lodash.has'); import {RequestInformationContainer} from '../classes/request-information-container'; export interface Request { @@ -53,27 +52,27 @@ export function manualRequestInformationExtractor(req: Request) { return returnObject; } - if (has(req, 'method')) { + if (req?.method !== undefined) { returnObject.setMethod(req.method!); } - if (has(req, 'url')) { + if (req?.url !== undefined) { returnObject.setUrl(req.url!); } - if (has(req, 'userAgent')) { + if (req?.userAgent !== undefined) { returnObject.setUserAgent(req.userAgent); } - if (has(req, 'referrer')) { + if (req?.referrer !== undefined) { returnObject.setReferrer(req.referrer); } - if (has(req, 'statusCode')) { + if (req?.statusCode !== undefined) { returnObject.setStatusCode(req.statusCode!); } - if (has(req, 'remoteAddress')) { + if (req?.remoteAddress !== undefined) { returnObject.setRemoteAddress(req.remoteAddress); } diff --git a/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts index aecef67628c..75c6ab7528b 100644 --- a/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts @@ -14,7 +14,6 @@ const WARNING_HEADER = '\n!! -WARNING-'; const EXCLAMATION_LN = '\n!!'; -import has = require('lodash.has'); import * as express from 'express'; const app = express(); // eslint-disable-next-line @typescript-eslint/no-var-requires @@ -31,7 +30,7 @@ const log = console.log; app.use(bodyParser.json()); app.post('/testErrorHandling', (req, res, next) => { - if (has(req.body, 'test') && req.body.test !== true) { + if (req.body?.test !== true) { return next!(new Error('Error on Express Regular Error POST Route')); } else { res.send('Success'); diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.ts b/handwritten/error-reporting/test/unit/interfaces/hapi.ts index 5681bbdc1ec..073ac147416 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.ts +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.ts @@ -12,7 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import has = require('lodash.has'); import * as assert from 'assert'; import {describe, it, beforeEach, before, afterEach} from 'mocha'; import {makeHapiPlugin as hapiInterface} from '../../../src/interfaces/hapi'; @@ -62,23 +61,19 @@ describe('Hapi interface', () => { assert(plugin?.toString() === '[object Object]'); }); it('plugin should have a register function property', () => { - assert(has(plugin, 'register') && typeof plugin.register === 'function'); + assert(typeof plugin?.register === 'function'); }); it("the plugin's register property should have an attributes property", () => { - assert( - has(plugin.register, 'attributes') && - plugin.register.attributes?.toString() === '[object Object]' - ); + assert(typeof plugin.register!.attributes === 'object'); }); it("the plugin's attribute property should have a name property", () => { - assert(has(plugin.register.attributes, 'name')); assert.strictEqual( plugin.register!.attributes!.name, '@google-cloud/error-reporting' ); }); it("the plugin's attribute property should have a version property", () => { - assert(has(plugin.register.attributes, 'version')); + assert(plugin.register!.attributes!.version !== undefined); }); }); describe('hapiRegisterFunction behaviour', () => { From ea31efd71d06b627bc03421e1c3349e4428eb056 Mon Sep 17 00:00:00 2001 From: Nicole Zhu <69952136+nicoleczhu@users.noreply.github.com> Date: Wed, 5 May 2021 22:49:56 -0700 Subject: [PATCH 401/527] chore: remove devdep lodash.maxby (#563) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: remove devdep lodash.maxby * 🦉 Updates from OwlBot Co-authored-by: Owl Bot --- handwritten/error-reporting/package.json | 2 -- handwritten/error-reporting/utils/fuzzer.ts | 10 ++++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index f48f91c5cec..fbadf3715b6 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -47,7 +47,6 @@ "@types/hapi__hapi": "^20.0.5", "@types/json-stable-stringify": "^1.0.32", "@types/koa": "^2.0.48", - "@types/lodash.maxby": "^4.6.6", "@types/lodash.omit": "^4.5.6", "@types/lodash.omitby": "^4.6.6", "@types/lodash.pick": "^4.4.6", @@ -71,7 +70,6 @@ "json-stable-stringify": "^1.0.1", "koa": "^2.7.0", "linkinator": "^2.0.0", - "lodash.maxby": "^4.6.0", "lodash.omit": "^4.5.0", "lodash.omitby": "^4.6.0", "lodash.pick": "^4.4.0", diff --git a/handwritten/error-reporting/utils/fuzzer.ts b/handwritten/error-reporting/utils/fuzzer.ts index 1aac9aca4d1..c3e646213ad 100644 --- a/handwritten/error-reporting/utils/fuzzer.ts +++ b/handwritten/error-reporting/utils/fuzzer.ts @@ -13,7 +13,6 @@ // limitations under the License. import without = require('lodash.without'); -import maxBy = require('lodash.maxby'); import random = require('lodash.random'); export class Fuzzer { @@ -202,10 +201,13 @@ export class Fuzzer { }, }; + _maxBy(arr: Array>) { + const max = Math.max(...arr.map(o => o.length)); + return arr.find(item => item.length === max); + } + _backFillUnevenTypesArrays(argsTypesArray: Array>) { - const largestLength = maxBy(argsTypesArray, o => { - return o.length; - })!.length; + const largestLength = this._maxBy(argsTypesArray)!.length; for (let i = 0; i < argsTypesArray.length; i++) { if (argsTypesArray[i].length !== largestLength) { From c43c604820b943ba04c2ce9e7098ea40a2f2fb60 Mon Sep 17 00:00:00 2001 From: Nicole Zhu <69952136+nicoleczhu@users.noreply.github.com> Date: Wed, 5 May 2021 23:30:05 -0700 Subject: [PATCH 402/527] deps: remove lodash omit, omitby, and pick (#565) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: remove omit, omitby, pick * 🦉 Updates from OwlBot Co-authored-by: Owl Bot --- handwritten/error-reporting/package.json | 6 ----- .../system-test/error-reporting.ts | 12 +++++----- .../test/unit/request-extractors/manual.ts | 21 ++++++++++-------- .../test/unit/service-configuration.ts | 22 ++++++------------- 4 files changed, 26 insertions(+), 35 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index fbadf3715b6..fee548f2718 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -47,9 +47,6 @@ "@types/hapi__hapi": "^20.0.5", "@types/json-stable-stringify": "^1.0.32", "@types/koa": "^2.0.48", - "@types/lodash.omit": "^4.5.6", - "@types/lodash.omitby": "^4.6.6", - "@types/lodash.pick": "^4.4.6", "@types/lodash.random": "^3.2.6", "@types/lodash.without": "^4.4.6", "@types/mocha": "^8.0.0", @@ -70,9 +67,6 @@ "json-stable-stringify": "^1.0.1", "koa": "^2.7.0", "linkinator": "^2.0.0", - "lodash.omit": "^4.5.0", - "lodash.omitby": "^4.6.0", - "lodash.pick": "^4.4.0", "lodash.random": "^3.2.0", "lodash.without": "^4.4.0", "mocha": "^8.0.0", diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index a85c6ad4bc6..cf6744fd38c 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -29,8 +29,6 @@ import { ErrorsApiTransport, } from '../utils/errors-api-transport'; -import pick = require('lodash.pick'); -import omitBy = require('lodash.omitby'); import * as uuid from 'uuid'; import * as util from 'util'; import * as path from 'path'; @@ -57,10 +55,14 @@ class InstancedEnv { } _captureProcessProperties() { - return omitBy( - pick(process.env, envKeys), - value => typeof value !== 'string' + const envVars = {...process.env}; + Object.entries(envVars).forEach( + ([key, value]) => + envKeys.includes(key) && + typeof value !== 'string' && + delete envVars[key] ); + return envVars; } sterilizeProcess() { diff --git a/handwritten/error-reporting/test/unit/request-extractors/manual.ts b/handwritten/error-reporting/test/unit/request-extractors/manual.ts index 0f5592e4dc4..b468dc34a66 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/manual.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/manual.ts @@ -12,7 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import omit = require('lodash.omit'); import {manualRequestInformationExtractor} from '../../../src/request-extractors/manual'; import {Fuzzer} from '../../../utils/fuzzer'; import {deepStrictEqual} from '../../util'; @@ -58,50 +57,54 @@ describe('manualRequestInformationExtractor', () => { 'the output of the request extraction', ].join(' ') ); + const {method, ...sansMethod} = FULL_VALID_INPUT; deepStrictEqual( - manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'method')), + manualRequestInformationExtractor(sansMethod), Object.assign({}, FULL_VALID_INPUT, {method: ''}), [ 'Given a full valid input object sans the method property values', 'should be reflected by the output of the request extraction', ].join(' ') ); + const {url, ...sansUrl} = FULL_VALID_INPUT; deepStrictEqual( - manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'url')), + manualRequestInformationExtractor(sansUrl), Object.assign({}, FULL_VALID_INPUT, {url: ''}), [ 'Given a valid input sans the url property these values should be', 'reflected by the output of the request extraction', ].join('') ); + const {userAgent, ...sansUserAgent} = FULL_VALID_INPUT; deepStrictEqual( - manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'userAgent')), + manualRequestInformationExtractor(sansUserAgent), Object.assign({}, FULL_VALID_INPUT, {userAgent: ''}), [ 'Given a full valid input sans the userAgent property these values', 'should be reflected by the output of the request extraction', ].join('') ); + const {referrer, ...sansReferrer} = FULL_VALID_INPUT; deepStrictEqual( - manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'referrer')), + manualRequestInformationExtractor(sansReferrer), Object.assign({}, FULL_VALID_INPUT, {referrer: ''}), [ 'Given a full valid input sans the referrer property these values', 'should be reflected by the output of the request extraction', ].join('') ); + const {statusCode, ...sansStatusCode} = FULL_VALID_INPUT; deepStrictEqual( - manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'statusCode')), + manualRequestInformationExtractor(sansStatusCode), Object.assign({}, FULL_VALID_INPUT, {statusCode: 0}), [ 'Given a full valid input sans the statusCode property these values', 'should be reflected by the output of the request extraction', ].join('') ); + const {remoteAddress, ...sansRemoteAddress} = FULL_VALID_INPUT; deepStrictEqual( - manualRequestInformationExtractor( - omit(FULL_VALID_INPUT, 'remoteAddress') - ), + manualRequestInformationExtractor(sansRemoteAddress), Object.assign({}, FULL_VALID_INPUT, {remoteAddress: ''}), [ 'Given a valid input sans the remoteAddress property these values', diff --git a/handwritten/error-reporting/test/unit/service-configuration.ts b/handwritten/error-reporting/test/unit/service-configuration.ts index d13868c0adb..5b8ab2838ab 100644 --- a/handwritten/error-reporting/test/unit/service-configuration.ts +++ b/handwritten/error-reporting/test/unit/service-configuration.ts @@ -14,7 +14,6 @@ import * as assert from 'assert'; import {describe, beforeEach, after, it} from 'mocha'; -import omitBy = require('lodash.omitby'); import {FakeConfiguration as Configuration} from '../fixtures/configuration'; import {deepStrictEqual} from '../util'; const level = process.env.GCLOUD_ERRORS_LOGLEVEL; @@ -46,20 +45,13 @@ function setEnv(envData: { }) { Object.assign( process.env, - omitBy( - { - GAE_SERVICE: envData.gaeServiceName, - GAE_VERSION: envData.gaeServiceVersion, - GAE_MODULE_NAME: envData.gaeModuleName, - GAE_MODULE_VERSION: envData.gaeModuleVersion, - FUNCTION_NAME: envData.functionName, - K_SERVICE: envData.kService, - K_REVISION: envData.kRevision, - }, - val => { - return typeof val !== 'string'; - } - ) + envData.gaeServiceName && {GAE_SERVICE: envData.gaeServiceName}, + envData.gaeServiceVersion && {GAE_VERSION: envData.gaeServiceVersion}, + envData.gaeModuleName && {GAE_MODULE_NAME: envData.gaeModuleName}, + envData.gaeModuleVersion && {GAE_MODULE_VERSION: envData.gaeModuleVersion}, + envData.functionName && {FUNCTION_NAME: envData.functionName}, + envData.kService && {K_SERVICE: envData.kService}, + envData.kRevision && {K_REVISION: envData.kRevision} ); } function restoreServiceConfigEnv() { From a5b8a1d0302ba2346f6a7808f67b9891342bda7a Mon Sep 17 00:00:00 2001 From: Nicole Zhu <69952136+nicoleczhu@users.noreply.github.com> Date: Thu, 6 May 2021 20:29:18 -0700 Subject: [PATCH 403/527] deps: remove lodash.random and lodash.without (#567) * deps: remove lodash.random and without * refactor * style: lint --- handwritten/error-reporting/package.json | 4 -- .../test/unit/request-extractors/manual.ts | 6 +++ handwritten/error-reporting/utils/fuzzer.ts | 47 +++++++++++-------- 3 files changed, 34 insertions(+), 23 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index fee548f2718..2e543ab8a4f 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -47,8 +47,6 @@ "@types/hapi__hapi": "^20.0.5", "@types/json-stable-stringify": "^1.0.32", "@types/koa": "^2.0.48", - "@types/lodash.random": "^3.2.6", - "@types/lodash.without": "^4.4.6", "@types/mocha": "^8.0.0", "@types/node": "^12.0.8", "@types/once": "^1.4.0", @@ -67,8 +65,6 @@ "json-stable-stringify": "^1.0.1", "koa": "^2.7.0", "linkinator": "^2.0.0", - "lodash.random": "^3.2.0", - "lodash.without": "^4.4.0", "mocha": "^8.0.0", "nock": "^13.0.0", "post-install-check": "0.0.1", diff --git a/handwritten/error-reporting/test/unit/request-extractors/manual.ts b/handwritten/error-reporting/test/unit/request-extractors/manual.ts index b468dc34a66..b8758c92d04 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/manual.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/manual.ts @@ -57,6 +57,7 @@ describe('manualRequestInformationExtractor', () => { 'the output of the request extraction', ].join(' ') ); + // eslint-disable-next-line @typescript-eslint/no-unused-vars const {method, ...sansMethod} = FULL_VALID_INPUT; deepStrictEqual( manualRequestInformationExtractor(sansMethod), @@ -66,6 +67,7 @@ describe('manualRequestInformationExtractor', () => { 'should be reflected by the output of the request extraction', ].join(' ') ); + // eslint-disable-next-line @typescript-eslint/no-unused-vars const {url, ...sansUrl} = FULL_VALID_INPUT; deepStrictEqual( manualRequestInformationExtractor(sansUrl), @@ -75,6 +77,7 @@ describe('manualRequestInformationExtractor', () => { 'reflected by the output of the request extraction', ].join('') ); + // eslint-disable-next-line @typescript-eslint/no-unused-vars const {userAgent, ...sansUserAgent} = FULL_VALID_INPUT; deepStrictEqual( manualRequestInformationExtractor(sansUserAgent), @@ -84,6 +87,7 @@ describe('manualRequestInformationExtractor', () => { 'should be reflected by the output of the request extraction', ].join('') ); + // eslint-disable-next-line @typescript-eslint/no-unused-vars const {referrer, ...sansReferrer} = FULL_VALID_INPUT; deepStrictEqual( manualRequestInformationExtractor(sansReferrer), @@ -93,6 +97,7 @@ describe('manualRequestInformationExtractor', () => { 'should be reflected by the output of the request extraction', ].join('') ); + // eslint-disable-next-line @typescript-eslint/no-unused-vars const {statusCode, ...sansStatusCode} = FULL_VALID_INPUT; deepStrictEqual( manualRequestInformationExtractor(sansStatusCode), @@ -102,6 +107,7 @@ describe('manualRequestInformationExtractor', () => { 'should be reflected by the output of the request extraction', ].join('') ); + // eslint-disable-next-line @typescript-eslint/no-unused-vars const {remoteAddress, ...sansRemoteAddress} = FULL_VALID_INPUT; deepStrictEqual( manualRequestInformationExtractor(sansRemoteAddress), diff --git a/handwritten/error-reporting/utils/fuzzer.ts b/handwritten/error-reporting/utils/fuzzer.ts index c3e646213ad..4dcf5c4cf4c 100644 --- a/handwritten/error-reporting/utils/fuzzer.ts +++ b/handwritten/error-reporting/utils/fuzzer.ts @@ -12,8 +12,11 @@ // See the License for the specific language governing permissions and // limitations under the License. -import without = require('lodash.without'); -import random = require('lodash.random'); +function _random(a: number, b: number) { + const lower = Math.ceil(Math.min(a, b)); + const upper = Math.floor(Math.max(a, b)); + return Math.floor(lower + Math.random() * (upper - lower + 1)); +} export class Fuzzer { generate = { @@ -35,14 +38,14 @@ export class Fuzzer { const chars: string[] = []; for (let i = 0; i < lenChecked; i++) { - chars.push(String.fromCharCode(random(32, 126))); + chars.push(String.fromCharCode(_random(32, 126))); } return chars.join(''); }, boolean() { - return !!random(0, 1); + return !!_random(0, 1); }, alphaNumericString(len?: number) { @@ -56,16 +59,16 @@ export class Fuzzer { ]; for (let i = 0; i < lenChecked; i++) { - thisRange = ranges[random(0, 2)]; - chars.push(String.fromCharCode(random(thisRange[0], thisRange[1]))); + thisRange = ranges[_random(0, 2)]; + chars.push(String.fromCharCode(_random(thisRange[0], thisRange[1]))); } return chars.join(''); }, function(this: {[key: string]: () => void; types: () => string[]}) { - const availableTypes = without(this.types(), 'function'); - const typeToGen = this.types()[random(0, availableTypes.length - 1)]; + const availableTypes = this.types().filter(i => i !== 'function'); + const typeToGen = this.types()[_random(0, availableTypes.length - 1)]; const fnToCall = this[typeToGen]; return () => { @@ -77,7 +80,7 @@ export class Fuzzer { const lowerChecked = (typeof lower === 'number' ? lower : 0)!; const upperChecked = (typeof upper === 'number' ? upper : 100)!; - return random(lowerChecked, upperChecked); + return _random(lowerChecked, upperChecked); }, null() { @@ -94,7 +97,7 @@ export class Fuzzer { currentDepth?: number, allowedDepth?: number ) { - const lenChecked = (typeof len === 'number' ? len : random(1, 10))!; + const lenChecked = (typeof len === 'number' ? len : _random(1, 10))!; let availableTypes = (typeof ofOneType === 'string' && this.types().indexOf(ofOneType!) > -1 ? [ofOneType] @@ -111,12 +114,14 @@ export class Fuzzer { // Deny the ability to nest more objects if (currentDepthChecked >= allowedDepthChecked) { - availableTypes = without(this.types(), 'object', 'array'); + availableTypes = this.types().filter( + i => i !== 'object' && i !== 'array' + ); } for (let i = 0; i < lenChecked; i++) { currentTypeBeingGenerated = - availableTypes[random(0, availableTypes.length - 1)]; + availableTypes[_random(0, availableTypes.length - 1)]; if (currentTypeBeingGenerated === 'object') { arr.push( @@ -152,7 +157,7 @@ export class Fuzzer { ) { const numPropertiesChecked = (typeof numProperties === 'number' ? numProperties - : random(1, 10))!; + : _random(1, 10))!; let currentDepthChecked = (typeof currentDepth === 'number' ? currentDepth : 0)!; @@ -166,7 +171,9 @@ export class Fuzzer { // Deny the ability to nest more objects if (currentDepth! >= allowedDepth!) { - availableTypes = without(availableTypes, 'object', 'array'); + availableTypes = availableTypes.filter( + i => i !== 'object' && i !== 'array' + ); } let currentTypeBeingGenerated: string | number = 0; @@ -174,8 +181,8 @@ export class Fuzzer { for (let i = 0; i < numPropertiesChecked; i++) { currentTypeBeingGenerated = - availableTypes[random(0, availableTypes.length - 1)]; - currentKey = this.alphaNumericString(random(1, 10)); + availableTypes[_random(0, availableTypes.length - 1)]; + currentKey = this.alphaNumericString(_random(1, 10)); if (currentTypeBeingGenerated === 'object') { obj[currentKey] = this[currentTypeBeingGenerated]( @@ -213,7 +220,7 @@ export class Fuzzer { if (argsTypesArray[i].length !== largestLength) { while (argsTypesArray[i].length < largestLength) { argsTypesArray[i].push( - argsTypesArray[i][random(0, argsTypesArray[i].length - 1)] + argsTypesArray[i][_random(0, argsTypesArray[i].length - 1)] ); } } @@ -246,10 +253,12 @@ export class Fuzzer { for (let i = 0; i < expectsArgTypes.length; i++) { if (!Array.isArray(expectsArgTypes[i])) { - argsTypesArray.push(without(this.generate.types(), expectsArgTypes[i])); + argsTypesArray.push( + this.generate.types().filter(item => item !== expectsArgTypes[i]) + ); } else { for (let j = 0; j < expectsArgTypes[i].length; j++) { - tmpArray = without(tmpArray, expectsArgTypes[i][j]); + tmpArray = tmpArray.filter(arg => arg !== expectsArgTypes[i][j]); } argsTypesArray.push(([] as Array<{}>).concat(tmpArray)); From f198f18900ea9c34ad21b024bc90e37c04154e2c Mon Sep 17 00:00:00 2001 From: Nicole Zhu <69952136+nicoleczhu@users.noreply.github.com> Date: Thu, 6 May 2021 21:01:22 -0700 Subject: [PATCH 404/527] chore: remove body-parser dep (#568) --- handwritten/error-reporting/package.json | 1 - .../test/test-servers/express_scaffold_server.ts | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 2e543ab8a4f..f865bce0ecf 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -53,7 +53,6 @@ "@types/proxyquire": "^1.3.28", "@types/restify": "^8.0.0", "@types/uuid": "^8.0.0", - "body-parser": "^1.19.0", "boom": "^7.3.0", "c8": "^7.0.0", "codecov": "^3.5.0", diff --git a/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts index 75c6ab7528b..cbaa89e96ce 100644 --- a/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts @@ -22,12 +22,11 @@ const errorHandler = require('../../src/index.js')({ key: process.env.STUBBED_API_KEY, projectId: process.env.STUBBED_PROJECT_NUM, }); -import bodyParser = require('body-parser'); // eslint-disable-next-line no-console const log = console.log; -app.use(bodyParser.json()); +app.use(express.json()); app.post('/testErrorHandling', (req, res, next) => { if (req.body?.test !== true) { From 2f92fbaca09842614561d77b62c60dc126ade831 Mon Sep 17 00:00:00 2001 From: Nicole Zhu <69952136+nicoleczhu@users.noreply.github.com> Date: Thu, 6 May 2021 22:16:30 -0700 Subject: [PATCH 405/527] deps: remove delay dev dependency (#569) --- handwritten/error-reporting/package.json | 1 - handwritten/error-reporting/system-test/error-reporting.ts | 5 ++++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index f865bce0ecf..14db6d35bb4 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -56,7 +56,6 @@ "boom": "^7.3.0", "c8": "^7.0.0", "codecov": "^3.5.0", - "delay": "^5.0.0", "express": "^4.17.1", "gts": "^2.0.0", "@hapi/hapi": "^20.1.0", diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index cf6744fd38c..435ba6e78f0 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -14,7 +14,6 @@ import * as assert from 'assert'; import {describe, it, before, beforeEach, after, afterEach} from 'mocha'; -import delay from 'delay'; import * as nock from 'nock'; import {ErrorReporting} from '../src'; @@ -141,6 +140,10 @@ function shouldRun() { return shouldRun; } +function delay(ms: number) { + return new Promise(resolve => setTimeout(resolve, ms)); +} + if (!shouldRun()) { console.log('Skipping error-reporting system tests'); // eslint-disable-next-line no-process-exit From 1b8084f9920c67cef08d313474d39b06f0e56328 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 10 May 2021 17:06:04 +0000 Subject: [PATCH 406/527] chore: new owl bot post processor docker image (#571) gcr.io/repo-automation-bots/owlbot-nodejs:latest@sha256:f93bb861d6f12574437bb9aee426b71eafd63b419669ff0ed029f4b7e7162e3f --- .../error-reporting/.github/.OwlBot.lock.yaml | 5 +- .../.github/generated-files-bot.yml | 18 ++++-- .../.kokoro/release/publish.cfg | 40 -------------- .../src/classes/error-message.ts | 55 +++++++++---------- .../error-reporting/src/configuration.ts | 18 +++--- .../src/google-apis/auth-client.ts | 6 +- .../error-reporting/src/interfaces/hapi.ts | 6 +- .../src/interfaces/message-builder.ts | 8 ++- .../error-reporting/src/interfaces/restify.ts | 12 ++-- .../src/request-extractors/hapi.ts | 7 +-- .../test/unit/classes/error-message.ts | 9 +-- .../test/unit/configuration.ts | 23 ++++---- .../test/unit/google-apis/auth-client.ts | 4 +- .../test/unit/interfaces/express.ts | 12 ++-- .../test/unit/interfaces/hapi.ts | 27 ++++----- .../test/unit/interfaces/manual.ts | 30 +++++----- .../test/unit/interfaces/restify.ts | 10 ++-- .../error-reporting/test/unit/logger.ts | 12 ++-- .../test/unit/request-extractors/hapi.ts | 8 +-- .../test/unit/request-extractors/koa.ts | 2 +- handwritten/error-reporting/utils/fuzzer.ts | 45 +++++++-------- 21 files changed, 161 insertions(+), 196 deletions(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index 1b91687cef1..a3a3420de72 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -1,4 +1,3 @@ docker: - digest: sha256:1feb84e8b76860344b70d70e26f9f6d509f489be5f1ca37451bf4397254429e5 - image: gcr.io/repo-automation-bots/owlbot-nodejs:latest - + image: gcr.io/repo-automation-bots/owlbot-nodejs:latest + digest: sha256:f93bb861d6f12574437bb9aee426b71eafd63b419669ff0ed029f4b7e7162e3f diff --git a/handwritten/error-reporting/.github/generated-files-bot.yml b/handwritten/error-reporting/.github/generated-files-bot.yml index 8bb592438b0..1b3ef1c7837 100644 --- a/handwritten/error-reporting/.github/generated-files-bot.yml +++ b/handwritten/error-reporting/.github/generated-files-bot.yml @@ -1,5 +1,13 @@ -# Source template: https://github.com/googleapis/synthtool/blob/master/synthtool/gcp/templates/node_library/CONTRIBUTING.md -externalManifests: -- type: json - file: 'synth.metadata' - jsonpath: '$.generatedFiles[*]' +generatedFiles: +- path: '.kokoro/**' + message: '`.kokoro` files are templated and should be updated in [`synthtool`](https://github.com/googleapis/synthtool)' +- path: '.github/CODEOWNERS' + message: 'CODEOWNERS should instead be modified via the `codeowner_team` property in .repo-metadata.json' +- path: '.github/workflows/**' + message: '`.github/workflows` (GitHub Actions) should be updated in [`synthtool`](https://github.com/googleapis/synthtool)' +- path: '.github/generated-files-bot.+(yml|yaml)' + message: '`.github/generated-files-bot.(yml|yaml)` should be updated in [`synthtool`](https://github.com/googleapis/synthtool)' +- path: 'README.md' + message: '`README.md` is managed by [`synthtool`](https://github.com/googleapis/synthtool). However, a partials file can be used to update the README, e.g.: https://github.com/googleapis/nodejs-storage/blob/master/.readme-partials.yaml' +- path: 'samples/README.md' + message: '`samples/README.md` is managed by [`synthtool`](https://github.com/googleapis/synthtool). However, a partials file can be used to update the README, e.g.: https://github.com/googleapis/nodejs-storage/blob/master/.readme-partials.yaml' diff --git a/handwritten/error-reporting/.kokoro/release/publish.cfg b/handwritten/error-reporting/.kokoro/release/publish.cfg index a16ce223c22..9ccb443c9ed 100644 --- a/handwritten/error-reporting/.kokoro/release/publish.cfg +++ b/handwritten/error-reporting/.kokoro/release/publish.cfg @@ -1,23 +1,3 @@ -# Get npm token from Keystore -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "google_cloud_npm_token" - backend_type: FASTCONFIGPUSH - } - } -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "yoshi-automation-github-key" - } - } -} - before_action { fetch_keystore { keystore_resource { @@ -27,26 +7,6 @@ before_action { } } -# Fetch magictoken to use with Magic Github Proxy -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "releasetool-magictoken" - } - } -} - -# Fetch api key to use with Magic Github Proxy -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "magic-github-proxy-api-key" - } - } -} - env_vars: { key: "SECRET_MANAGER_KEYS" value: "npm_publish_token,releasetool-publish-reporter-app,releasetool-publish-reporter-googleapis-installation,releasetool-publish-reporter-pem" diff --git a/handwritten/error-reporting/src/classes/error-message.ts b/handwritten/error-reporting/src/classes/error-message.ts index a3b19509f40..3f10bdf2342 100644 --- a/handwritten/error-reporting/src/classes/error-message.ts +++ b/handwritten/error-reporting/src/classes/error-message.ts @@ -121,9 +121,9 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setServiceContext(service?: string, version?: string) { - this.serviceContext.service = (typeof service === 'string' - ? service - : 'node')!; + this.serviceContext.service = ( + typeof service === 'string' ? service : 'node' + )!; this.serviceContext.version = typeof version === 'string' ? version : undefined; @@ -150,9 +150,9 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setHttpMethod(method?: string) { - this.context.httpRequest.method = (typeof method === 'string' - ? method - : '')!; + this.context.httpRequest.method = ( + typeof method === 'string' ? method : '' + )!; return this; } @@ -176,9 +176,9 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setUserAgent(userAgent?: string) { - this.context.httpRequest.userAgent = (typeof userAgent === 'string' - ? userAgent - : '')!; + this.context.httpRequest.userAgent = ( + typeof userAgent === 'string' ? userAgent : '' + )!; return this; } @@ -190,9 +190,9 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setReferrer(referrer?: string) { - this.context.httpRequest.referrer = (typeof referrer === 'string' - ? referrer - : '')!; + this.context.httpRequest.referrer = ( + typeof referrer === 'string' ? referrer : '' + )!; return this; } @@ -204,10 +204,9 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setResponseStatusCode(responseStatusCode?: number) { - this.context.httpRequest.responseStatusCode = (typeof responseStatusCode === - 'number' - ? responseStatusCode - : 0)!; + this.context.httpRequest.responseStatusCode = ( + typeof responseStatusCode === 'number' ? responseStatusCode : 0 + )!; return this; } @@ -219,9 +218,9 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setRemoteIp(remoteIp?: string) { - this.context.httpRequest.remoteIp = (typeof remoteIp === 'string' - ? remoteIp - : '')!; + this.context.httpRequest.remoteIp = ( + typeof remoteIp === 'string' ? remoteIp : '' + )!; return this; } @@ -245,9 +244,9 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setFilePath(filePath?: string) { - this.context.reportLocation.filePath = (typeof filePath === 'string' - ? filePath - : '')!; + this.context.reportLocation.filePath = ( + typeof filePath === 'string' ? filePath : '' + )!; return this; } @@ -259,9 +258,9 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setLineNumber(lineNumber?: number) { - this.context.reportLocation.lineNumber = (typeof lineNumber === 'number' - ? lineNumber - : 0)!; + this.context.reportLocation.lineNumber = ( + typeof lineNumber === 'number' ? lineNumber : 0 + )!; return this; } @@ -273,9 +272,9 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setFunctionName(functionName?: string) { - this.context.reportLocation.functionName = (typeof functionName === 'string' - ? functionName - : '')!; + this.context.reportLocation.functionName = ( + typeof functionName === 'string' ? functionName : '' + )!; return this; } diff --git a/handwritten/error-reporting/src/configuration.ts b/handwritten/error-reporting/src/configuration.ts index ce61f24acfa..e322d0b0eee 100644 --- a/handwritten/error-reporting/src/configuration.ts +++ b/handwritten/error-reporting/src/configuration.ts @@ -241,9 +241,9 @@ export class Configuration { version = env.GAE_MODULE_VERSION; } - this._serviceContext.service = (typeof service === 'string' - ? service - : 'node')!; + this._serviceContext.service = ( + typeof service === 'string' ? service : 'node' + )!; this._serviceContext.version = typeof version === 'string' ? version : undefined; @@ -253,7 +253,8 @@ export class Configuration { if ( typeof this._givenConfiguration.serviceContext!.service === 'string' ) { - this._serviceContext.service = this._givenConfiguration.serviceContext!.service!; + this._serviceContext.service = + this._givenConfiguration.serviceContext!.service!; } else if ( this._givenConfiguration.serviceContext?.service !== undefined ) { @@ -263,7 +264,8 @@ export class Configuration { if ( typeof this._givenConfiguration.serviceContext!.version === 'string' ) { - this._serviceContext.version = this._givenConfiguration.serviceContext!.version; + this._serviceContext.version = + this._givenConfiguration.serviceContext!.version; } else if ( this._givenConfiguration.serviceContext?.version !== undefined ) { @@ -273,7 +275,8 @@ export class Configuration { } _determineReportMode() { if (this._givenConfiguration.reportMode) { - this._reportMode = this._givenConfiguration.reportMode.toLowerCase() as ReportMode; + this._reportMode = + this._givenConfiguration.reportMode.toLowerCase() as ReportMode; } } /** @@ -370,7 +373,8 @@ export class Configuration { if ( typeof this._givenConfiguration.reportUnhandledRejections === 'boolean' ) { - this._reportUnhandledRejections = this._givenConfiguration.reportUnhandledRejections!; + this._reportUnhandledRejections = + this._givenConfiguration.reportUnhandledRejections!; } else if ( this._givenConfiguration?.reportUnhandledRejections !== undefined ) { diff --git a/handwritten/error-reporting/src/google-apis/auth-client.ts b/handwritten/error-reporting/src/google-apis/auth-client.ts index 1fe26bda609..8c7315c9dad 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.ts +++ b/handwritten/error-reporting/src/google-apis/auth-client.ts @@ -171,9 +171,9 @@ export class RequestHandler extends Service { body: {} ) => void ) { - const cb: Function = (typeof userCb === 'function' - ? userCb - : RequestHandler.noOp)!; + const cb: Function = ( + typeof userCb === 'function' ? userCb : RequestHandler.noOp + )!; if (!this._config.isReportingEnabled()) { cb(null, null, {}); return; diff --git a/handwritten/error-reporting/src/interfaces/hapi.ts b/handwritten/error-reporting/src/interfaces/hapi.ts index 41e097125d9..9c63d918b0b 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.ts +++ b/handwritten/error-reporting/src/interfaces/hapi.ts @@ -111,12 +111,12 @@ export function makeHapiPlugin(client: RequestHandler, config: Configuration) { if ( request?.toString() === '[object Object]' && request.response && - ((request.response as unknown) as boom).isBoom + (request.response as unknown as boom).isBoom ) { // Cast to {} is necessary, as@types/hapi@16 incorrectly types // response as 'Response | null' instead of 'Response | Boom | // null'. - const boom = (request.response as {}) as Error; + const boom = request.response as {} as Error; const em = hapiErrorHandler( new Error(boom.message), request, @@ -144,7 +144,7 @@ export function makeHapiPlugin(client: RequestHandler, config: Configuration) { version: packageJson.version, }; - ((hapiPlugin.register as {}) as {attributes: {}}).attributes = { + (hapiPlugin.register as {} as {attributes: {}}).attributes = { name: packageJson.name, version: packageJson.version, }; diff --git a/handwritten/error-reporting/src/interfaces/message-builder.ts b/handwritten/error-reporting/src/interfaces/message-builder.ts index 0f8eb1407b5..b871d15364a 100644 --- a/handwritten/error-reporting/src/interfaces/message-builder.ts +++ b/handwritten/error-reporting/src/interfaces/message-builder.ts @@ -49,9 +49,11 @@ export function handlerSetup(config: Configuration) { config.getServiceContext().service, config.getServiceContext().version ); - ((em as {}) as { - _autoGeneratedStackTrace: string; - })._autoGeneratedStackTrace = cleanedStack; + ( + em as {} as { + _autoGeneratedStackTrace: string; + } + )._autoGeneratedStackTrace = cleanedStack; return em; } diff --git a/handwritten/error-reporting/src/interfaces/restify.ts b/handwritten/error-reporting/src/interfaces/restify.ts index a48f53392a1..b3059ddc867 100644 --- a/handwritten/error-reporting/src/interfaces/restify.ts +++ b/handwritten/error-reporting/src/interfaces/restify.ts @@ -74,19 +74,19 @@ function restifyRequestFinishHandler( // TODO: Address the fact that `_body` does not exist in `res` if ( - ((res as {}) as {_body: {}})._body instanceof Error || + (res as {} as {_body: {}})._body instanceof Error || (res.statusCode > 309 && res.statusCode < 512) ) { em = new ErrorMessage().consumeRequestInformation( // TODO: Address the type conflict with `req` and `res` and the types // expected for `expressRequestInformationExtractor` expressRequestInformationExtractor.expressRequestInformationExtractor( - (req as {}) as express.Request, - (res as {}) as express.Response + req as {} as express.Request, + res as {} as express.Response ) ); - restifyErrorHandler(client, config, ((res as {}) as {_body: {}})._body, em); + restifyErrorHandler(client, config, (res as {} as {_body: {}})._body, em); } } @@ -127,11 +127,11 @@ function restifyRequestHandler( restifyRequestFinishHandler(client, config, req, res); res.removeListener( 'finish', - (listener as {}) as (...args: Array<{}>) => void + listener as {} as (...args: Array<{}>) => void ); }; - res.on('finish', (listener as {}) as (...args: Array<{}>) => void); + res.on('finish', listener as {} as (...args: Array<{}>) => void); } return next(); diff --git a/handwritten/error-reporting/src/request-extractors/hapi.ts b/handwritten/error-reporting/src/request-extractors/hapi.ts index ca5e7018073..a190cd2ee08 100644 --- a/handwritten/error-reporting/src/request-extractors/hapi.ts +++ b/handwritten/error-reporting/src/request-extractors/hapi.ts @@ -33,10 +33,9 @@ function attemptToExtractStatusCode(req: hapi.Request) { if ('statusCode' in req.response) { return (req.response as hapi.ResponseObject).statusCode; } else if ( - ((req.response as unknown) as boom).output?.toString() === - '[object Object]' + (req.response as unknown as boom).output?.toString() === '[object Object]' ) { - return ((req.response as unknown) as boom).output.statusCode; + return (req.response as unknown as boom).output.statusCode; } } return 0; @@ -86,7 +85,7 @@ export function hapiRequestInformationExtractor(req?: hapi.Request) { let urlString: string; if (typeof req!.url === 'string') { - urlString = (req!.url as {}) as string; + urlString = req!.url as {} as string; } else { urlString = req!.url.pathname; } diff --git a/handwritten/error-reporting/test/unit/classes/error-message.ts b/handwritten/error-reporting/test/unit/classes/error-message.ts index 0c1a1b06752..38e6241cab9 100644 --- a/handwritten/error-reporting/test/unit/classes/error-message.ts +++ b/handwritten/error-reporting/test/unit/classes/error-message.ts @@ -143,7 +143,7 @@ describe('Fuzzing against setServiceContext', () => { ); }); it('Should set default values on both', () => { - em.setServiceContext((2 as {}) as string, (1.3 as {}) as string); + em.setServiceContext(2 as {} as string, 1.3 as {} as string); deepStrictEqual( em.serviceContext, { @@ -157,10 +157,7 @@ describe('Fuzzing against setServiceContext', () => { ); }); it('Should set as default', () => { - em.setServiceContext( - ({test: 'true'} as {}) as string, - ([] as {}) as string - ); + em.setServiceContext({test: 'true'} as {} as string, [] as {} as string); deepStrictEqual( em.serviceContext, { @@ -623,7 +620,7 @@ describe('Fuzzing against consumeRequestInformation', () => { }); it('Should default when consuming mistyped response object properties', () => { em.consumeRequestInformation( - (NEGATIVE_TEST_VALUE as {}) as RequestInformationContainer + NEGATIVE_TEST_VALUE as {} as RequestInformationContainer ); assert( em.context.httpRequest.method === NEGATIVE_STRING_CASE, diff --git a/handwritten/error-reporting/test/unit/configuration.ts b/handwritten/error-reporting/test/unit/configuration.ts index 2ca5037d575..52c9a9862dc 100644 --- a/handwritten/error-reporting/test/unit/configuration.ts +++ b/handwritten/error-reporting/test/unit/configuration.ts @@ -261,7 +261,7 @@ describe('Configuration class', () => { assert.throws(() => { // tslint:disable-next-line:no-unused-expression new Configuration( - ({reportMode: new Date()} as {}) as ConfigurationOptions, + {reportMode: new Date()} as {} as ConfigurationOptions, logger ); }); @@ -270,7 +270,7 @@ describe('Configuration class', () => { assert.throws(() => { // tslint:disable-next-line:no-unused-expression new Configuration( - ({reportMode: 'invalid-mode'} as {}) as ConfigurationOptions, + {reportMode: 'invalid-mode'} as {} as ConfigurationOptions, logger ); }); @@ -280,10 +280,7 @@ describe('Configuration class', () => { // we are intentionally providing an invalid configuration // thus an explicit cast is needed // tslint:disable-next-line:no-unused-expression - new Configuration( - ({key: null} as {}) as ConfigurationOptions, - logger - ); + new Configuration({key: null} as {} as ConfigurationOptions, logger); }); }); it('Should throw if invalid for ignoreEnvironmentCheck', () => { @@ -292,7 +289,7 @@ describe('Configuration class', () => { // thus an explicit cast is needed // tslint:disable-next-line:no-unused-expression new Configuration( - ({ignoreEnvironmentCheck: null} as {}) as ConfigurationOptions, + {ignoreEnvironmentCheck: null} as {} as ConfigurationOptions, logger ); }); @@ -303,7 +300,7 @@ describe('Configuration class', () => { // thus an explicit cast is needed // tslint:disable-next-line:no-unused-expression new Configuration( - ({serviceContext: {service: false}} as {}) as ConfigurationOptions, + {serviceContext: {service: false}} as {} as ConfigurationOptions, logger ); }); @@ -314,7 +311,7 @@ describe('Configuration class', () => { // thus an explicit cast is needed // tslint:disable-next-line:no-unused-expression new Configuration( - ({serviceContext: {version: true}} as {}) as ConfigurationOptions, + {serviceContext: {version: true}} as {} as ConfigurationOptions, logger ); }); @@ -325,9 +322,9 @@ describe('Configuration class', () => { // thus an explicit cast is needed // tslint:disable-next-line:no-unused-expression new Configuration( - ({ + { reportUnhandledRejections: 'INVALID', - } as {}) as ConfigurationOptions, + } as {} as ConfigurationOptions, logger ); }); @@ -362,7 +359,7 @@ describe('Configuration class', () => { before(() => { sterilizeConfigEnv(); c = new Configuration( - ({projectId: pn} as {}) as ConfigurationOptions, + {projectId: pn} as {} as ConfigurationOptions, logger ); }); @@ -399,7 +396,7 @@ describe('Configuration class', () => { // we are intentionally providing an invalid configuration // thus an explicit cast is needed c = new Configuration( - ({projectId: null} as {}) as ConfigurationOptions, + {projectId: null} as {} as ConfigurationOptions, logger ); }); diff --git a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts index bebff61da52..183db7eba26 100644 --- a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts +++ b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts @@ -51,7 +51,7 @@ function verifyReportedMessage( }).RequestHandler; const logs: {error?: string; info?: string; warn?: string} = {}; - const logger = ({ + const logger = { error(text: string) { if (!logs.error) { logs.error = ''; @@ -70,7 +70,7 @@ function verifyReportedMessage( } logs.warn += text; }, - } as {}) as Logger; + } as {} as Logger; const config2 = new Configuration(config1, logger); // tslint:disable-next-line:no-unused-expression new RequestHandler(config2, logger); diff --git a/handwritten/error-reporting/test/unit/interfaces/express.ts b/handwritten/error-reporting/test/unit/interfaces/express.ts index 4c2a5911475..47f34d4d812 100644 --- a/handwritten/error-reporting/test/unit/interfaces/express.ts +++ b/handwritten/error-reporting/test/unit/interfaces/express.ts @@ -45,9 +45,11 @@ describe('expressInterface', () => { }, createLogger({logLevel: 4}) ); - ((stubbedConfig as {}) as { - lacksCredentials: Function; - }).lacksCredentials = () => { + ( + stubbedConfig as {} as { + lacksCredentials: Function; + } + ).lacksCredentials = () => { return false; }; const client = { @@ -57,7 +59,7 @@ describe('expressInterface', () => { }; const testError = new Error('This is a test'); const validBoundHandler = expressInterface( - (client as {}) as RequestHandler, + client as {} as RequestHandler, stubbedConfig ); it('Should return the error message', () => { @@ -90,7 +92,7 @@ describe('expressInterface', () => { sendError, }; const handler = expressInterface( - (client as {}) as RequestHandler, + client as {} as RequestHandler, stubbedConfig ); handler(testError, null!, null!, () => { diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.ts b/handwritten/error-reporting/test/unit/interfaces/hapi.ts index 073ac147416..eb61702e79b 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.ts +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.ts @@ -52,10 +52,7 @@ describe('Hapi interface', () => { }; let plugin: HapiPlugin; beforeEach(() => { - plugin = hapiInterface( - null!, - (givenConfig as {}) as config.Configuration - ); + plugin = hapiInterface(null!, givenConfig as {} as config.Configuration); }); it('should have plain object as plugin', () => { assert(plugin?.toString() === '[object Object]'); @@ -82,15 +79,15 @@ describe('Hapi interface', () => { fakeServer = new EventEmitter(); }); it('Should call fn when the request-error event is emitted', () => { - const fakeClient = ({ + const fakeClient = { sendError(errMsg: ErrorMessage) { assert( errMsg instanceof ErrorMessage, 'should be an instance of Error message' ); }, - } as {}) as RequestHandler; - const plugin = hapiInterface(fakeClient, ({ + } as {} as RequestHandler; + const plugin = hapiInterface(fakeClient, { lacksCredentials() { return false; }, @@ -100,14 +97,14 @@ describe('Hapi interface', () => { getServiceContext() { return {service: 'node'}; }, - } as {}) as config.Configuration); + } as {} as config.Configuration); plugin.register(fakeServer, null!, null!); fakeServer.emit('request-error'); }); }); describe('Behaviour around the request/response lifecycle', () => { const EVENT = 'onPreResponse'; - const fakeClient = ({sendError() {}} as {}) as RequestHandler; + const fakeClient = {sendError() {}} as {} as RequestHandler; let fakeServer: EventEmitter & {ext?: Function}, config: Configuration & {lacksCredentials?: () => boolean}, plugin: HapiPlugin; @@ -163,12 +160,12 @@ describe('Hapi interface', () => { ); }); it('Should call sendError when a boom is received', done => { - const fakeClient = ({ + const fakeClient = { sendError(err: ErrorMessage) { assert(err instanceof ErrorMessage); done(); }, - } as {}) as RequestHandler; + } as {} as RequestHandler; const plugin = hapiInterface(fakeClient, config); plugin.register(fakeServer, null!, () => {}); fakeServer.emit('onPreResponse', { @@ -190,7 +187,7 @@ describe('Hapi interface', () => { describe('Hapi17', () => { const errorsSent: ErrorMessage[] = []; // the only method in the client that should be used is `sendError` - const fakeClient = ({ + const fakeClient = { sendError: ( errorMessage: ErrorMessage, // eslint-disable-next-line @typescript-eslint/no-unused-vars @@ -202,7 +199,7 @@ describe('Hapi interface', () => { ) => { errorsSent.push(errorMessage); }, - } as {}) as RequestHandler; + } as {} as RequestHandler; // the configuration should be not be needed to send errors correctly const plugin = hapiInterface(fakeClient, {} as Configuration); @@ -249,7 +246,7 @@ describe('Hapi interface', () => { // properties are the properties that are being tested. In // addition other properties of hapi.Request should be needed // to properly send the error. - const fakeRequest = ({ + const fakeRequest = { method: 'custom-method', url: 'custom-url', headers: { @@ -258,7 +255,7 @@ describe('Hapi interface', () => { 'x-forwarded-for': 'some-remote-address', }, response: {statusCode: 42}, - } as {}) as hapi.Request; + } as {} as hapi.Request; const testError = new Error('Error emitted through a request event'); diff --git a/handwritten/error-reporting/test/unit/interfaces/manual.ts b/handwritten/error-reporting/test/unit/interfaces/manual.ts index 5cf17549456..967167b4b58 100644 --- a/handwritten/error-reporting/test/unit/interfaces/manual.ts +++ b/handwritten/error-reporting/test/unit/interfaces/manual.ts @@ -20,7 +20,7 @@ import * as manual from '../../../src/interfaces/manual'; import {FakeConfiguration as Configuration} from '../../fixtures/configuration'; const config = new Configuration({}); -((config as {}) as {lacksCredentials: Function}).lacksCredentials = () => { +(config as {} as {lacksCredentials: Function}).lacksCredentials = () => { return false; }; import {ErrorMessage} from '../../../src/classes/error-message'; @@ -31,15 +31,15 @@ import {Request} from '../../../src/request-extractors/manual'; describe('Manual handler', () => { // nock.disableNetConnect(); // Mocked client - const client: RequestHandler = ({ + const client: RequestHandler = { sendError(e: ErrorMessage, cb: () => void) { // immediately callback if (cb) { setImmediate(cb); } }, - } as {}) as RequestHandler; - const report = manual.handlerSetup(client, config, ({ + } as {} as RequestHandler; + const report = manual.handlerSetup(client, config, { warn(message: string) { // The use of `report` in this class should issue the following // warning becasue the `report` class is used directly and, as such, @@ -56,7 +56,7 @@ describe('Manual handler', () => { 'console.' ); }, - } as {}) as Logger); + } as {} as Logger); describe('Report invocation behaviour', () => { it('Should allow argument-less invocation', () => { const r = report(null!); @@ -122,10 +122,10 @@ describe('Manual handler', () => { it('Should ignore arguments', done => { const r = report( 'hockey', - ((() => { + (() => { done(); - }) as unknown) as string, - ('field' as unknown) as manual.Callback + }) as unknown as string, + 'field' as unknown as manual.Callback ); assert( r.message.match('hockey') && !r.message.match('field'), @@ -135,10 +135,10 @@ describe('Manual handler', () => { it('Should ignore arguments', done => { const r = report( 'passkey', - ((() => { + (() => { done(); - }) as unknown) as string, - ({method: 'HONK'} as unknown) as manual.Callback + }) as unknown as string, + {method: 'HONK'} as unknown as manual.Callback ); assert.notStrictEqual(r.context.httpRequest.method, 'HONK'); }); @@ -151,8 +151,8 @@ describe('Manual handler', () => { it('Should allow explicit undefined', done => { const r = report( 'Turkey', - (undefined as unknown) as Request, - (undefined as unknown) as string, + undefined as unknown as Request, + undefined as unknown as string, () => { done(); } @@ -162,7 +162,7 @@ describe('Manual handler', () => { it('Should allow request to be supplied as undefined', done => { const r = report( 'turnkey', - (undefined as unknown) as Request, + undefined as unknown as Request, 'solution', () => { done(); @@ -174,7 +174,7 @@ describe('Manual handler', () => { const r = report( 'Mickey', {method: 'SNIFF'}, - (undefined as unknown) as string, + undefined as unknown as string, () => { done(); } diff --git a/handwritten/error-reporting/test/unit/interfaces/restify.ts b/handwritten/error-reporting/test/unit/interfaces/restify.ts index e5d5949b3de..e4dc11bc9fa 100644 --- a/handwritten/error-reporting/test/unit/interfaces/restify.ts +++ b/handwritten/error-reporting/test/unit/interfaces/restify.ts @@ -69,7 +69,7 @@ describe('restifyInterface', () => { ee.removeAllListeners(); const req = new EventEmitter(); const res = new EventEmitter(); - ((res as {}) as {statusCode: number}).statusCode = 200; + (res as {} as {statusCode: number}).statusCode = 200; it('Should have 0 listeners on the finish event', () => { assert.strictEqual(res.listenerCount(FINISH), 0); }); @@ -98,7 +98,7 @@ describe('restifyInterface', () => { assert(true, 'sendError should be called'); }, }; - const config = ({ + const config = { getServiceContext() { assert(true, 'getServiceContext should be called'); return { @@ -112,15 +112,15 @@ describe('restifyInterface', () => { getVersion() { return '1'; }, - } as {}) as Configuration; + } as {} as Configuration; const errorHandlerInstance = restifyInterface( - (client as {}) as RequestHandler, + client as {} as RequestHandler, config ); const requestHandlerInstance = errorHandlerInstance(ee as restify.Server); const req = new EventEmitter(); const res = new EventEmitter(); - ((res as {}) as {statusCode: number}).statusCode = 500; + (res as {} as {statusCode: number}).statusCode = 500; it('Should have 0 Listeners on the finish event', () => { assert.strictEqual(res.listenerCount(FINISH), 0); }); diff --git a/handwritten/error-reporting/test/unit/logger.ts b/handwritten/error-reporting/test/unit/logger.ts index 8415414ac79..40daac06680 100644 --- a/handwritten/error-reporting/test/unit/logger.ts +++ b/handwritten/error-reporting/test/unit/logger.ts @@ -30,34 +30,34 @@ describe('logger', () => { it('Should not throw given undefined', () => { assert.doesNotThrow( createLogger, - (createLogger() as {}) as (err: Error) => boolean + createLogger() as {} as (err: Error) => boolean ); }); it('Should not throw given an empty object', () => { assert.doesNotThrow( createLogger.bind(null, {}), - (createLogger() as {}) as (err: Error) => boolean + createLogger() as {} as (err: Error) => boolean ); }); it('Should not throw given logLevel as a number', () => { assert.doesNotThrow( createLogger.bind(null, {logLevel: 3}), - (createLogger({logLevel: 3}) as {}) as (err: Error) => boolean + createLogger({logLevel: 3}) as {} as (err: Error) => boolean ); }); it('Should not throw given logLevel as a string', () => { assert.doesNotThrow( createLogger.bind(null, {logLevel: '3'}), - (createLogger({logLevel: 3}) as {}) as (err: Error) => boolean + createLogger({logLevel: 3}) as {} as (err: Error) => boolean ); }); it('Should not throw given an env variable to use', () => { process.env.GCLOUD_ERRORS_LOGLEVEL = '4'; assert.doesNotThrow( createLogger, - (createLogger({ + createLogger({ logLevel: 4, - }) as {}) as (err: Error) => boolean + }) as {} as (err: Error) => boolean ); delete process.env.GCLOUD_ERRORS_LOGLEVEL; }); diff --git a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts index 05582b9a16d..16d694d33e9 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts @@ -105,7 +105,7 @@ describe('hapiRequestInformationExtractor behaviour', () => { it('Should produce the full request input', () => { deepStrictEqual( hapiRequestInformationExtractor( - (FULL_REQ_DERIVATION_VALUE as {}) as hapi.Request + FULL_REQ_DERIVATION_VALUE as {} as hapi.Request ), FULL_REQ_EXPECTED_VALUE ); @@ -113,7 +113,7 @@ describe('hapiRequestInformationExtractor behaviour', () => { it('Should produce the partial request input', () => { deepStrictEqual( hapiRequestInformationExtractor( - (PARTIAL_REQ_DERIVATION_VALUE as {}) as hapi.Request + PARTIAL_REQ_DERIVATION_VALUE as {} as hapi.Request ), PARTIAL_REQ_EXPECTED_VALUE ); @@ -121,7 +121,7 @@ describe('hapiRequestInformationExtractor behaviour', () => { it('Should produce the second partial request input', () => { deepStrictEqual( hapiRequestInformationExtractor( - (ANOTHER_PARTIAL_REQ_DERIVATION_VALUE as {}) as hapi.Request + ANOTHER_PARTIAL_REQ_DERIVATION_VALUE as {} as hapi.Request ), ANOTHER_PARTIAL_REQ_EXPECTED_VALUE ); @@ -134,7 +134,7 @@ describe('hapiRequestInformationExtractor behaviour', () => { }; const EXPECTED = {...FULL_REQ_EXPECTED_VALUE, url: PATH}; deepStrictEqual( - hapiRequestInformationExtractor((REQUEST as {}) as hapi.Request), + hapiRequestInformationExtractor(REQUEST as {} as hapi.Request), EXPECTED ); }); diff --git a/handwritten/error-reporting/test/unit/request-extractors/koa.ts b/handwritten/error-reporting/test/unit/request-extractors/koa.ts index c6c753b8834..61cdeb76643 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/koa.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/koa.ts @@ -65,7 +65,7 @@ describe('koaRequestInformationExtractor', () => { }; deepStrictEqual( koaRequestInformationExtractor( - (FULL_REQ_DERIVATION_VALUE as unknown) as Request, + FULL_REQ_DERIVATION_VALUE as unknown as Request, FULL_RES_DERIVATION_VALUE as Response ), FULL_REQ_EXPECTED_VALUE diff --git a/handwritten/error-reporting/utils/fuzzer.ts b/handwritten/error-reporting/utils/fuzzer.ts index 4dcf5c4cf4c..82df9e9bd4c 100644 --- a/handwritten/error-reporting/utils/fuzzer.ts +++ b/handwritten/error-reporting/utils/fuzzer.ts @@ -98,16 +98,17 @@ export class Fuzzer { allowedDepth?: number ) { const lenChecked = (typeof len === 'number' ? len : _random(1, 10))!; - let availableTypes = (typeof ofOneType === 'string' && - this.types().indexOf(ofOneType!) > -1 - ? [ofOneType] - : this.types())!; - let currentDepthChecked = (typeof currentDepth === 'number' - ? currentDepth - : 0)!; - const allowedDepthChecked = (typeof allowedDepth === 'number' - ? allowedDepth - : 3)!; + let availableTypes = ( + typeof ofOneType === 'string' && this.types().indexOf(ofOneType!) > -1 + ? [ofOneType] + : this.types() + )!; + let currentDepthChecked = ( + typeof currentDepth === 'number' ? currentDepth : 0 + )!; + const allowedDepthChecked = ( + typeof allowedDepth === 'number' ? allowedDepth : 3 + )!; const arr: Array<{}> = []; let currentTypeBeingGenerated: string | undefined = ''; currentDepthChecked += 1; @@ -155,15 +156,15 @@ export class Fuzzer { currentDepth?: number, allowedDepth?: number ) { - const numPropertiesChecked = (typeof numProperties === 'number' - ? numProperties - : _random(1, 10))!; - let currentDepthChecked = (typeof currentDepth === 'number' - ? currentDepth - : 0)!; - const allowedDepthChecked = (typeof allowedDepth === 'number' - ? allowedDepth - : 3)!; + const numPropertiesChecked = ( + typeof numProperties === 'number' ? numProperties : _random(1, 10) + )!; + let currentDepthChecked = ( + typeof currentDepth === 'number' ? currentDepth : 0 + )!; + const allowedDepthChecked = ( + typeof allowedDepth === 'number' ? allowedDepth : 3 + )!; const obj: {[key: string]: {}} = {}; currentDepthChecked += 1; @@ -290,9 +291,9 @@ export class Fuzzer { cb?: Function, withContext?: {} ) { - const expectsArgTypesChecked = (Array.isArray(expectsArgTypes) - ? expectsArgTypes - : [])!; + const expectsArgTypesChecked = ( + Array.isArray(expectsArgTypes) ? expectsArgTypes : [] + )!; const typesToFuzzOnEach = this._generateTypesToFuzzWith( expectsArgTypesChecked ) as string[][]; From b12379bf9e8d189d4b5d8cc36b05c8403b144dcd Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 12 May 2021 01:42:32 +0000 Subject: [PATCH 407/527] chore: new owl bot post processor docker image (#572) gcr.io/repo-automation-bots/owlbot-nodejs:latest@sha256:b94b09fb24bf804090b8cc60ee726ca161d5e5915151e417f8ef5d8bcfe73cbc --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index a3a3420de72..e26fd96dec1 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/repo-automation-bots/owlbot-nodejs:latest - digest: sha256:f93bb861d6f12574437bb9aee426b71eafd63b419669ff0ed029f4b7e7162e3f + digest: sha256:b94b09fb24bf804090b8cc60ee726ca161d5e5915151e417f8ef5d8bcfe73cbc From 1c73fd39dafb74320dda3b90c96f061ccd82e6c4 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 12 May 2021 06:32:24 +0000 Subject: [PATCH 408/527] chore: release 2.0.2 (#573) :robot: I have created a release \*beep\* \*boop\* --- ### [2.0.2](https://www.github.com/googleapis/nodejs-error-reporting/compare/v2.0.1...v2.0.2) (2021-05-12) ### Miscellaneous Chores * release 2.0.2 ([#570](https://www.github.com/googleapis/nodejs-error-reporting/issues/570)) ([7733375](https://www.github.com/googleapis/nodejs-error-reporting/commit/7733375a7686e51b4b6bf96aa0f8999a4d012b36)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- handwritten/error-reporting/CHANGELOG.md | 7 +++++++ handwritten/error-reporting/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/CHANGELOG.md b/handwritten/error-reporting/CHANGELOG.md index 4f0a8199ca9..5785e62d1ef 100644 --- a/handwritten/error-reporting/CHANGELOG.md +++ b/handwritten/error-reporting/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/@google-cloud/error-reporting?activeTab=versions +### [2.0.2](https://www.github.com/googleapis/nodejs-error-reporting/compare/v2.0.1...v2.0.2) (2021-05-12) + + +### Miscellaneous Chores + +* release 2.0.2 ([#570](https://www.github.com/googleapis/nodejs-error-reporting/issues/570)) ([7733375](https://www.github.com/googleapis/nodejs-error-reporting/commit/7733375a7686e51b4b6bf96aa0f8999a4d012b36)) + ### [2.0.1](https://www.github.com/googleapis/nodejs-error-reporting/compare/v2.0.0...v2.0.1) (2021-01-14) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 14db6d35bb4..a0f688079da 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/error-reporting", "description": "Stackdriver Error Reporting Client Library for Node.js", - "version": "2.0.1", + "version": "2.0.2", "license": "Apache-2.0", "author": "Google Inc.", "engines": { From e564bb42ef93f0d9543941689f93a5dcf12b6df6 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 19 May 2021 20:30:24 +0000 Subject: [PATCH 409/527] chore: new owl bot post processor docker image (#574) gcr.io/repo-automation-bots/owlbot-nodejs:latest@sha256:f4734af778c3d0eb58a6db0078907a87f2e53f3c7a6422363fc37ee52e02b25a --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 2 +- handwritten/error-reporting/.github/generated-files-bot.yml | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index e26fd96dec1..043a606639e 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/repo-automation-bots/owlbot-nodejs:latest - digest: sha256:b94b09fb24bf804090b8cc60ee726ca161d5e5915151e417f8ef5d8bcfe73cbc + digest: sha256:f4734af778c3d0eb58a6db0078907a87f2e53f3c7a6422363fc37ee52e02b25a diff --git a/handwritten/error-reporting/.github/generated-files-bot.yml b/handwritten/error-reporting/.github/generated-files-bot.yml index 1b3ef1c7837..6b04910c0fb 100644 --- a/handwritten/error-reporting/.github/generated-files-bot.yml +++ b/handwritten/error-reporting/.github/generated-files-bot.yml @@ -11,3 +11,6 @@ generatedFiles: message: '`README.md` is managed by [`synthtool`](https://github.com/googleapis/synthtool). However, a partials file can be used to update the README, e.g.: https://github.com/googleapis/nodejs-storage/blob/master/.readme-partials.yaml' - path: 'samples/README.md' message: '`samples/README.md` is managed by [`synthtool`](https://github.com/googleapis/synthtool). However, a partials file can be used to update the README, e.g.: https://github.com/googleapis/nodejs-storage/blob/master/.readme-partials.yaml' +ignoreAuthors: +- 'gcf-owl-bot[bot]' +- 'yoshi-automation' From 76281fb065c6bd52eb7ac4ce849a5343eb7ee455 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 21 May 2021 19:06:06 +0200 Subject: [PATCH 410/527] chore(deps): update dependency @types/node to v14 (#575) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped) | [`^12.0.8` -> `^14.0.0`](https://renovatebot.com/diffs/npm/@types%2fnode/12.20.13/14.17.0) | [![age](https://badges.renovateapi.com/packages/npm/@types%2fnode/14.17.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@types%2fnode/14.17.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@types%2fnode/14.17.0/compatibility-slim/12.20.13)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@types%2fnode/14.17.0/confidence-slim/12.20.13)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: "after 9am and before 3pm" (UTC). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻️ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-error-reporting). --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index a0f688079da..48e957157b7 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -48,7 +48,7 @@ "@types/json-stable-stringify": "^1.0.32", "@types/koa": "^2.0.48", "@types/mocha": "^8.0.0", - "@types/node": "^12.0.8", + "@types/node": "^14.0.0", "@types/once": "^1.4.0", "@types/proxyquire": "^1.3.28", "@types/restify": "^8.0.0", From a7f44e6932efa416c2dafeb86cca648dbb391154 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 7 Jun 2021 19:10:12 +0000 Subject: [PATCH 411/527] chore: Report warning on `.github/workflows/ci.yaml` (#577) * fix: Report warning on `.github/workflows/ci.yaml` Not all files in `.github/workflows` are managed, only `ci.yaml`. Related false-positive: https://github.com/googleapis/repo-automation-bots/pull/1952#issuecomment-856142886 * fix: Report warning on `.github/workflows/ci.yaml` Not all files in `.github/workflows` are managed, only `ci.yaml`. Source-Link: https://github.com/googleapis/synthtool/commit/2430f8d90ed8a508e8422a3a7191e656d5a6bf53 Post-Processor: gcr.io/repo-automation-bots/owlbot-nodejs:latest@sha256:14aaee566d6fc07716bb92da416195156e47a4777e7d1cd2bb3e28c46fe30fe2 --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 2 +- handwritten/error-reporting/.github/generated-files-bot.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index 043a606639e..3a93af921f1 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/repo-automation-bots/owlbot-nodejs:latest - digest: sha256:f4734af778c3d0eb58a6db0078907a87f2e53f3c7a6422363fc37ee52e02b25a + digest: sha256:14aaee566d6fc07716bb92da416195156e47a4777e7d1cd2bb3e28c46fe30fe2 diff --git a/handwritten/error-reporting/.github/generated-files-bot.yml b/handwritten/error-reporting/.github/generated-files-bot.yml index 6b04910c0fb..7bb7ce54c58 100644 --- a/handwritten/error-reporting/.github/generated-files-bot.yml +++ b/handwritten/error-reporting/.github/generated-files-bot.yml @@ -3,8 +3,8 @@ generatedFiles: message: '`.kokoro` files are templated and should be updated in [`synthtool`](https://github.com/googleapis/synthtool)' - path: '.github/CODEOWNERS' message: 'CODEOWNERS should instead be modified via the `codeowner_team` property in .repo-metadata.json' -- path: '.github/workflows/**' - message: '`.github/workflows` (GitHub Actions) should be updated in [`synthtool`](https://github.com/googleapis/synthtool)' +- path: '.github/workflows/ci.yaml' + message: '`.github/workflows/ci.yaml` (GitHub Actions) should be updated in [`synthtool`](https://github.com/googleapis/synthtool)' - path: '.github/generated-files-bot.+(yml|yaml)' message: '`.github/generated-files-bot.(yml|yaml)` should be updated in [`synthtool`](https://github.com/googleapis/synthtool)' - path: 'README.md' From 4e779a7de83763fba9c251e76482ececb018831f Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 9 Jun 2021 19:24:54 +0000 Subject: [PATCH 412/527] chore(nodejs): use cloud-rad publication process (#1112) (#579) VERSION is used in @google-cloud/cloud-rad to publish ref docs for a particular version. Pass VERSION in via Stubby or Fusion. Source-Link: https://github.com/googleapis/synthtool/commit/740366bbb9a7e0f4b77fc75dc26be1d3a376c3e0 Post-Processor: gcr.io/repo-automation-bots/owlbot-nodejs:latest@sha256:bbdd52de226c00df3356cdf25460397b429ab49552becca645adbc412f6a4ed5 --- .../error-reporting/.github/.OwlBot.lock.yaml | 2 +- .../.kokoro/release/docs-devsite.cfg | 2 +- .../.kokoro/release/docs-devsite.sh | 48 ++----------------- handwritten/error-reporting/.trampolinerc | 3 +- 4 files changed, 7 insertions(+), 48 deletions(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index 3a93af921f1..f6467c3a493 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/repo-automation-bots/owlbot-nodejs:latest - digest: sha256:14aaee566d6fc07716bb92da416195156e47a4777e7d1cd2bb3e28c46fe30fe2 + digest: sha256:bbdd52de226c00df3356cdf25460397b429ab49552becca645adbc412f6a4ed5 diff --git a/handwritten/error-reporting/.kokoro/release/docs-devsite.cfg b/handwritten/error-reporting/.kokoro/release/docs-devsite.cfg index 7e58bf5e026..098e9a8e3b9 100644 --- a/handwritten/error-reporting/.kokoro/release/docs-devsite.cfg +++ b/handwritten/error-reporting/.kokoro/release/docs-devsite.cfg @@ -11,7 +11,7 @@ before_action { # doc publications use a Python image. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:14-user" } # Download trampoline resources. diff --git a/handwritten/error-reporting/.kokoro/release/docs-devsite.sh b/handwritten/error-reporting/.kokoro/release/docs-devsite.sh index 7657be3377a..2198e67fe92 100755 --- a/handwritten/error-reporting/.kokoro/release/docs-devsite.sh +++ b/handwritten/error-reporting/.kokoro/release/docs-devsite.sh @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright 2019 Google LLC +# Copyright 2021 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,7 +16,6 @@ set -eo pipefail -# build jsdocs (Python is installed on the Node 10 docker image). if [[ -z "$CREDENTIALS" ]]; then # if CREDENTIALS are explicitly set, assume we're testing locally # and don't set NPM_CONFIG_PREFIX. @@ -25,47 +24,6 @@ if [[ -z "$CREDENTIALS" ]]; then cd $(dirname $0)/../.. fi -mkdir ./etc - npm install -npm run api-extractor -npm run api-documenter - -npm i json@9.0.6 -g -NAME=$(cat .repo-metadata.json | json name) - -mkdir ./_devsite -cp ./yaml/$NAME/* ./_devsite - -# Clean up TOC -# Delete SharePoint item, see https://github.com/microsoft/rushstack/issues/1229 -sed -i -e '1,3d' ./yaml/toc.yml -sed -i -e 's/^ //' ./yaml/toc.yml -# Delete interfaces from TOC (name and uid) -sed -i -e '/name: I[A-Z]/{N;d;}' ./yaml/toc.yml -sed -i -e '/^ *\@google-cloud.*:interface/d' ./yaml/toc.yml - -cp ./yaml/toc.yml ./_devsite/toc.yml - -# create docs.metadata, based on package.json and .repo-metadata.json. -pip install -U pip -python3 -m pip install --user gcp-docuploader -python3 -m docuploader create-metadata \ - --name=$NAME \ - --version=$(cat package.json | json version) \ - --language=$(cat .repo-metadata.json | json language) \ - --distribution-name=$(cat .repo-metadata.json | json distribution_name) \ - --product-page=$(cat .repo-metadata.json | json product_documentation) \ - --github-repository=$(cat .repo-metadata.json | json repo) \ - --issue-tracker=$(cat .repo-metadata.json | json issue_tracker) -cp docs.metadata ./_devsite/docs.metadata - -# deploy the docs. -if [[ -z "$CREDENTIALS" ]]; then - CREDENTIALS=${KOKORO_KEYSTORE_DIR}/73713_docuploader_service_account -fi -if [[ -z "$BUCKET" ]]; then - BUCKET=docs-staging-v2 -fi - -python3 -m docuploader upload ./_devsite --destination-prefix docfx --credentials $CREDENTIALS --staging-bucket $BUCKET +npm install --no-save @google-cloud/cloud-rad@^0.2.5 +npx @google-cloud/cloud-rad \ No newline at end of file diff --git a/handwritten/error-reporting/.trampolinerc b/handwritten/error-reporting/.trampolinerc index 164613b9e6a..d4fcb894483 100644 --- a/handwritten/error-reporting/.trampolinerc +++ b/handwritten/error-reporting/.trampolinerc @@ -20,7 +20,8 @@ required_envvars+=( # Add env vars which are passed down into the container here. pass_down_envvars+=( - "AUTORELEASE_PR" + "AUTORELEASE_PR", + "VERSION" ) # Prevent unintentional override on the default image. From 1b6843ec606a7c6f67f53e56baeaacf9b3ff76f1 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 9 Jun 2021 21:11:56 -0700 Subject: [PATCH 413/527] build: add auto-approve to Node libraries (#1100) (#580) * build: add auto-approve to Node libraries Co-authored-by: Benjamin E. Coe Source-Link: https://github.com/googleapis/synthtool/commit/5cae043787729a908ed0cab28ca27baf9acee3c4 Post-Processor: gcr.io/repo-automation-bots/owlbot-nodejs:latest@sha256:65aa68f2242c172345d7c1e780bced839bfdc344955d6aa460aa63b4481d93e5 Co-authored-by: Owl Bot Co-authored-by: Benjamin E. Coe --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 2 +- handwritten/error-reporting/.github/CODEOWNERS | 3 +++ handwritten/error-reporting/.github/auto-approve.yml | 7 +++++++ 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 handwritten/error-reporting/.github/auto-approve.yml diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index f6467c3a493..1b520297430 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/repo-automation-bots/owlbot-nodejs:latest - digest: sha256:bbdd52de226c00df3356cdf25460397b429ab49552becca645adbc412f6a4ed5 + digest: sha256:65aa68f2242c172345d7c1e780bced839bfdc344955d6aa460aa63b4481d93e5 diff --git a/handwritten/error-reporting/.github/CODEOWNERS b/handwritten/error-reporting/.github/CODEOWNERS index 89a1c2bf4ce..cba4ffcf939 100644 --- a/handwritten/error-reporting/.github/CODEOWNERS +++ b/handwritten/error-reporting/.github/CODEOWNERS @@ -7,3 +7,6 @@ # The yoshi-nodejs team is the default owner for nodejs repositories. * @googleapis/yoshi-nodejs @googleapis/api-logging + +# The github automation team is the default owner for the auto-approve file. +.github/auto-approve.yml @googleapis/github-automation diff --git a/handwritten/error-reporting/.github/auto-approve.yml b/handwritten/error-reporting/.github/auto-approve.yml new file mode 100644 index 00000000000..903697974b0 --- /dev/null +++ b/handwritten/error-reporting/.github/auto-approve.yml @@ -0,0 +1,7 @@ +rules: +- author: "release-please[bot]" + title: "^chore: release" + changedFiles: + - "package\\.json$" + - "CHANGELOG\\.md$" + maxFiles: 3 \ No newline at end of file From 6994750890cc749280bcd624e029b2ceb9894737 Mon Sep 17 00:00:00 2001 From: "F. Hinkelmann" Date: Thu, 10 Jun 2021 23:02:43 +0200 Subject: [PATCH 414/527] chore(nodejs): remove api-extractor dependencies (#581) --- handwritten/error-reporting/package.json | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 48e957157b7..478f3ea4dc2 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -31,9 +31,7 @@ "docs-test": "linkinator docs", "predocs-test": "npm run docs", "prelint": "cd samples; npm link ../; npm install", - "precompile": "gts clean", - "api-extractor": "api-extractor run --local", - "api-documenter": "api-documenter yaml --input-folder=temp" + "precompile": "gts clean" }, "dependencies": { "@google-cloud/common": "^3.0.0", @@ -69,8 +67,6 @@ "proxyquire": "^2.1.0", "restify": "^8.3.3", "typescript": "^3.8.3", - "uuid": "^8.0.0", - "@microsoft/api-documenter": "^7.8.10", - "@microsoft/api-extractor": "^7.8.10" + "uuid": "^8.0.0" } } From 48e647f0e4f52f569a3ec195dfd3077dce80e0de Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Fri, 11 Jun 2021 19:26:08 +0000 Subject: [PATCH 415/527] build: remove errant comma (#1113) (#582) Source-Link: https://github.com/googleapis/synthtool/commit/41ccd8cd13ec31f4fb839cf8182aea3c7156e19d Post-Processor: gcr.io/repo-automation-bots/owlbot-nodejs:latest@sha256:c9c7828c165b1985579098978877935ee52dda2b1b538087514fd24fa2443e7a --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 2 +- handwritten/error-reporting/.trampolinerc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index 1b520297430..e7c45fd36bc 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/repo-automation-bots/owlbot-nodejs:latest - digest: sha256:65aa68f2242c172345d7c1e780bced839bfdc344955d6aa460aa63b4481d93e5 + digest: sha256:c9c7828c165b1985579098978877935ee52dda2b1b538087514fd24fa2443e7a diff --git a/handwritten/error-reporting/.trampolinerc b/handwritten/error-reporting/.trampolinerc index d4fcb894483..5fc2253137d 100644 --- a/handwritten/error-reporting/.trampolinerc +++ b/handwritten/error-reporting/.trampolinerc @@ -20,7 +20,7 @@ required_envvars+=( # Add env vars which are passed down into the container here. pass_down_envvars+=( - "AUTORELEASE_PR", + "AUTORELEASE_PR" "VERSION" ) From e7c2c1fe2e596cec7c1edbb7cc0209bef21db943 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Fri, 25 Jun 2021 17:50:23 +0000 Subject: [PATCH 416/527] build(node): do not throw on deprecation (#1140) (#587) Refs https://github.com/googleapis/nodejs-service-usage/issues/22 Source-Link: https://github.com/googleapis/synthtool/commit/6d26b13debbfe3c6a6a9f9f1914c5bccf1e6fadc Post-Processor: gcr.io/repo-automation-bots/owlbot-nodejs:latest@sha256:e59b73e911585903ee6b8a1c5246e93d9e9463420f597b6eb2e4b616ee8a0fee --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 2 +- handwritten/error-reporting/.kokoro/test.sh | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index e7c45fd36bc..26e91bb2900 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/repo-automation-bots/owlbot-nodejs:latest - digest: sha256:c9c7828c165b1985579098978877935ee52dda2b1b538087514fd24fa2443e7a + digest: sha256:e59b73e911585903ee6b8a1c5246e93d9e9463420f597b6eb2e4b616ee8a0fee diff --git a/handwritten/error-reporting/.kokoro/test.sh b/handwritten/error-reporting/.kokoro/test.sh index 5d6383fcb78..b5646aeb628 100755 --- a/handwritten/error-reporting/.kokoro/test.sh +++ b/handwritten/error-reporting/.kokoro/test.sh @@ -32,6 +32,9 @@ if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]] || [[ $KOKORO_BUILD_ART } trap cleanup EXIT HUP fi +# Unit tests exercise the entire API surface, which may include +# deprecation warnings: +export MOCHA_THROW_DEPRECATION=false npm test # codecov combines coverage across integration and unit tests. Include From 73fe25eb2d3e88327a28437f25303a07997c1fc1 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 30 Jun 2021 15:40:37 +0000 Subject: [PATCH 417/527] build: auto-approve renovate-bot PRs for minor updates (#1145) (#588) Source-Link: https://github.com/googleapis/synthtool/commit/39652e3948f455fd0b77535a0145eeec561a3706 Post-Processor: gcr.io/repo-automation-bots/owlbot-nodejs:latest@sha256:41d5457ff79c3945782ab7e23bf4d617fd7bf3f2b03b6d84808010f7d2e10ca2 --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 2 +- handwritten/error-reporting/.github/auto-approve.yml | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index 26e91bb2900..9d507eeeb02 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/repo-automation-bots/owlbot-nodejs:latest - digest: sha256:e59b73e911585903ee6b8a1c5246e93d9e9463420f597b6eb2e4b616ee8a0fee + digest: sha256:41d5457ff79c3945782ab7e23bf4d617fd7bf3f2b03b6d84808010f7d2e10ca2 diff --git a/handwritten/error-reporting/.github/auto-approve.yml b/handwritten/error-reporting/.github/auto-approve.yml index 903697974b0..a79ba66c2c0 100644 --- a/handwritten/error-reporting/.github/auto-approve.yml +++ b/handwritten/error-reporting/.github/auto-approve.yml @@ -4,4 +4,9 @@ rules: changedFiles: - "package\\.json$" - "CHANGELOG\\.md$" - maxFiles: 3 \ No newline at end of file + maxFiles: 3 +- author: "renovate-bot" + title: "^(fix\\(deps\\)|chore\\(deps\\)):" + changedFiles: + - "/package\\.json$" + maxFiles: 2 From 326b6601bebc643c1c88aab4bbb947dcae55ff0f Mon Sep 17 00:00:00 2001 From: Nicole Zhu <69952136+nicoleczhu@users.noreply.github.com> Date: Fri, 2 Jul 2021 23:46:08 -0700 Subject: [PATCH 418/527] chore: update blunderbuss.yml (#586) Co-authored-by: Simon Zeltser --- handwritten/error-reporting/.github/blunderbuss.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/.github/blunderbuss.yml b/handwritten/error-reporting/.github/blunderbuss.yml index bf5769c42a0..45e412794bd 100644 --- a/handwritten/error-reporting/.github/blunderbuss.yml +++ b/handwritten/error-reporting/.github/blunderbuss.yml @@ -1,4 +1,4 @@ assign_issues: - - nicoleczhu + - googleapis/api-logging assign_prs: - - nicoleczhu + - googleapis/api-logging From 4593ea1f31957d22c9f5dacc4bc9ce9d9740ce04 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 21 Jul 2021 00:30:10 +0000 Subject: [PATCH 419/527] build: switch to release-please release tagging (#1129) (#589) Requires https://github.com/googleapis/releasetool/pull/338 Source-Link: https://github.com/googleapis/synthtool/commit/1563597d28eca099d6411bbc29ecd09314a80746 Post-Processor: gcr.io/repo-automation-bots/owlbot-nodejs:latest@sha256:06c970a44680229c1e8cefa701dbc93b80468ec4a34e6968475084e4ec1e2d7d --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 2 +- handwritten/error-reporting/.github/release-please.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index 9d507eeeb02..b1434427024 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/repo-automation-bots/owlbot-nodejs:latest - digest: sha256:41d5457ff79c3945782ab7e23bf4d617fd7bf3f2b03b6d84808010f7d2e10ca2 + digest: sha256:06c970a44680229c1e8cefa701dbc93b80468ec4a34e6968475084e4ec1e2d7d diff --git a/handwritten/error-reporting/.github/release-please.yml b/handwritten/error-reporting/.github/release-please.yml index 85344b92c7f..a1b41da3cb3 100644 --- a/handwritten/error-reporting/.github/release-please.yml +++ b/handwritten/error-reporting/.github/release-please.yml @@ -1 +1,2 @@ +handleGHRelease: true releaseType: node From 69034e7f65eaba3df9fc177df6ad84e71387dc30 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Fri, 30 Jul 2021 17:12:22 +0000 Subject: [PATCH 420/527] build: update auto-approve config for new validation (#1169) (#590) Co-authored-by: Anthonios Partheniou Source-Link: https://github.com/googleapis/synthtool/commit/df7fc1e3a6df4316920ab221431945cdf9aa7217 Post-Processor: gcr.io/repo-automation-bots/owlbot-nodejs:latest@sha256:6245a5be4c0406d9b2f04f380d8b88ffe4655df3cdbb57626f8913e8d620f4dd --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 2 +- handwritten/error-reporting/.github/auto-approve.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index b1434427024..9b2b9550d5e 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/repo-automation-bots/owlbot-nodejs:latest - digest: sha256:06c970a44680229c1e8cefa701dbc93b80468ec4a34e6968475084e4ec1e2d7d + digest: sha256:6245a5be4c0406d9b2f04f380d8b88ffe4655df3cdbb57626f8913e8d620f4dd diff --git a/handwritten/error-reporting/.github/auto-approve.yml b/handwritten/error-reporting/.github/auto-approve.yml index a79ba66c2c0..49cf942280a 100644 --- a/handwritten/error-reporting/.github/auto-approve.yml +++ b/handwritten/error-reporting/.github/auto-approve.yml @@ -6,7 +6,7 @@ rules: - "CHANGELOG\\.md$" maxFiles: 3 - author: "renovate-bot" - title: "^(fix\\(deps\\)|chore\\(deps\\)):" + title: "^(fix|chore)\\(deps\\):" changedFiles: - - "/package\\.json$" + - "package\\.json$" maxFiles: 2 From 69fedf250dfe6287749e1c73c2c2232a807c254c Mon Sep 17 00:00:00 2001 From: "F. Hinkelmann" Date: Wed, 4 Aug 2021 16:04:22 -0400 Subject: [PATCH 421/527] chore(nodejs): update client ref docs link in metadata (#591) --- handwritten/error-reporting/.repo-metadata.json | 2 +- handwritten/error-reporting/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/.repo-metadata.json b/handwritten/error-reporting/.repo-metadata.json index 85090db25a8..ad85fa6a0c2 100644 --- a/handwritten/error-reporting/.repo-metadata.json +++ b/handwritten/error-reporting/.repo-metadata.json @@ -2,7 +2,7 @@ "name": "error-reporting", "name_pretty": "Cloud Error Reporting", "product_documentation": "https://cloud.google.com/error-reporting", - "client_documentation": "https://googleapis.dev/nodejs/error-reporting/latest/", + "client_documentation": "https://cloud.google.com/nodejs/docs/reference/error-reporting/latest", "issue_tracker": "https://issuetracker.google.com/savedsearches/559780", "release_level": "beta", "language": "nodejs", diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index c01fd5b08c3..9d6b14b9592 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -420,7 +420,7 @@ Apache Version 2.0 See [LICENSE](https://github.com/googleapis/nodejs-error-reporting/blob/master/LICENSE) -[client-docs]: https://googleapis.dev/nodejs/error-reporting/latest/ +[client-docs]: https://cloud.google.com/nodejs/docs/reference/error-reporting/latest [product-docs]: https://cloud.google.com/error-reporting [shell_img]: https://gstatic.com/cloudssh/images/open-btn.png [projects]: https://console.cloud.google.com/project From b6429ac9404978bd560f40e7efa5c5ea34d3443a Mon Sep 17 00:00:00 2001 From: sofisl <55454395+sofisl@users.noreply.github.com> Date: Fri, 13 Aug 2021 09:14:15 -0700 Subject: [PATCH 422/527] fix(build): migrate to using main branch (#593) --- .../error-reporting/.github/.OwlBot.lock.yaml | 2 +- .../.github/generated-files-bot.yml | 4 ++-- .../.kokoro/continuous/node10/common.cfg | 2 +- .../.kokoro/continuous/node10/test.cfg | 2 +- .../.kokoro/presubmit/node10/common.cfg | 2 +- .../error-reporting/.kokoro/samples-test.sh | 2 +- .../error-reporting/.kokoro/system-test.sh | 2 +- handwritten/error-reporting/.kokoro/test.sh | 2 +- handwritten/error-reporting/README.md | 24 +++++++++---------- 9 files changed, 21 insertions(+), 21 deletions(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index 9b2b9550d5e..144aa60c7d4 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/repo-automation-bots/owlbot-nodejs:latest - digest: sha256:6245a5be4c0406d9b2f04f380d8b88ffe4655df3cdbb57626f8913e8d620f4dd + digest: sha256:72ff93409133b0cf277b8870f859e1ddde62d2e329f655311d4bfc16735d182e diff --git a/handwritten/error-reporting/.github/generated-files-bot.yml b/handwritten/error-reporting/.github/generated-files-bot.yml index 7bb7ce54c58..992ccef4a13 100644 --- a/handwritten/error-reporting/.github/generated-files-bot.yml +++ b/handwritten/error-reporting/.github/generated-files-bot.yml @@ -8,9 +8,9 @@ generatedFiles: - path: '.github/generated-files-bot.+(yml|yaml)' message: '`.github/generated-files-bot.(yml|yaml)` should be updated in [`synthtool`](https://github.com/googleapis/synthtool)' - path: 'README.md' - message: '`README.md` is managed by [`synthtool`](https://github.com/googleapis/synthtool). However, a partials file can be used to update the README, e.g.: https://github.com/googleapis/nodejs-storage/blob/master/.readme-partials.yaml' + message: '`README.md` is managed by [`synthtool`](https://github.com/googleapis/synthtool). However, a partials file can be used to update the README, e.g.: https://github.com/googleapis/nodejs-storage/blob/main/.readme-partials.yaml' - path: 'samples/README.md' - message: '`samples/README.md` is managed by [`synthtool`](https://github.com/googleapis/synthtool). However, a partials file can be used to update the README, e.g.: https://github.com/googleapis/nodejs-storage/blob/master/.readme-partials.yaml' + message: '`samples/README.md` is managed by [`synthtool`](https://github.com/googleapis/synthtool). However, a partials file can be used to update the README, e.g.: https://github.com/googleapis/nodejs-storage/blob/main/.readme-partials.yaml' ignoreAuthors: - 'gcf-owl-bot[bot]' - 'yoshi-automation' diff --git a/handwritten/error-reporting/.kokoro/continuous/node10/common.cfg b/handwritten/error-reporting/.kokoro/continuous/node10/common.cfg index 95a5d793382..2a2086b0fe8 100644 --- a/handwritten/error-reporting/.kokoro/continuous/node10/common.cfg +++ b/handwritten/error-reporting/.kokoro/continuous/node10/common.cfg @@ -7,7 +7,7 @@ action { } } -# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token +# Bring in codecov.io token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token before_action { fetch_keystore { keystore_resource { diff --git a/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg b/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg index 468b8c7197a..609c0cf0a27 100644 --- a/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg +++ b/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg @@ -1,4 +1,4 @@ -# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token +# Bring in codecov.io token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token before_action { fetch_keystore { keystore_resource { diff --git a/handwritten/error-reporting/.kokoro/presubmit/node10/common.cfg b/handwritten/error-reporting/.kokoro/presubmit/node10/common.cfg index 95a5d793382..2a2086b0fe8 100644 --- a/handwritten/error-reporting/.kokoro/presubmit/node10/common.cfg +++ b/handwritten/error-reporting/.kokoro/presubmit/node10/common.cfg @@ -7,7 +7,7 @@ action { } } -# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token +# Bring in codecov.io token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token before_action { fetch_keystore { keystore_resource { diff --git a/handwritten/error-reporting/.kokoro/samples-test.sh b/handwritten/error-reporting/.kokoro/samples-test.sh index 950f8483428..f249d3e4a2e 100755 --- a/handwritten/error-reporting/.kokoro/samples-test.sh +++ b/handwritten/error-reporting/.kokoro/samples-test.sh @@ -39,7 +39,7 @@ if [ -f samples/package.json ]; then npm link ../ npm install cd .. - # If tests are running against master, configure flakybot + # If tests are running against main branch, configure flakybot # to open issues on failures: if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]] || [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"nightly"* ]]; then export MOCHA_REPORTER_OUTPUT=test_output_sponge_log.xml diff --git a/handwritten/error-reporting/.kokoro/system-test.sh b/handwritten/error-reporting/.kokoro/system-test.sh index 319d1e0eda8..0a840452084 100755 --- a/handwritten/error-reporting/.kokoro/system-test.sh +++ b/handwritten/error-reporting/.kokoro/system-test.sh @@ -33,7 +33,7 @@ fi npm install -# If tests are running against master, configure flakybot +# If tests are running against main branch, configure flakybot # to open issues on failures: if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]] || [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"nightly"* ]]; then export MOCHA_REPORTER_OUTPUT=test_output_sponge_log.xml diff --git a/handwritten/error-reporting/.kokoro/test.sh b/handwritten/error-reporting/.kokoro/test.sh index b5646aeb628..af1ce7e33ca 100755 --- a/handwritten/error-reporting/.kokoro/test.sh +++ b/handwritten/error-reporting/.kokoro/test.sh @@ -21,7 +21,7 @@ export NPM_CONFIG_PREFIX=${HOME}/.npm-global cd $(dirname $0)/.. npm install -# If tests are running against master, configure flakybot +# If tests are running against main branch, configure flakybot # to open issues on failures: if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]] || [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"nightly"* ]]; then export MOCHA_REPORTER_OUTPUT=test_output_sponge_log.xml diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 9d6b14b9592..b2bb130abee 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -6,7 +6,7 @@ [![release level](https://img.shields.io/badge/release%20level-beta-yellow.svg?style=flat)](https://cloud.google.com/terms/launch-stages) [![npm version](https://img.shields.io/npm/v/@google-cloud/error-reporting.svg)](https://www.npmjs.org/package/@google-cloud/error-reporting) -[![codecov](https://img.shields.io/codecov/c/github/googleapis/nodejs-error-reporting/master.svg?style=flat)](https://codecov.io/gh/googleapis/nodejs-error-reporting) +[![codecov](https://img.shields.io/codecov/c/github/googleapis/nodejs-error-reporting/main.svg?style=flat)](https://codecov.io/gh/googleapis/nodejs-error-reporting) @@ -17,7 +17,7 @@ A comprehensive list of changes in each version may be found in -[the CHANGELOG](https://github.com/googleapis/nodejs-error-reporting/blob/master/CHANGELOG.md). +[the CHANGELOG](https://github.com/googleapis/nodejs-error-reporting/blob/main/CHANGELOG.md). * [Cloud Error Reporting Node.js Client API Reference][client-docs] * [Cloud Error Reporting Documentation][product-docs] @@ -350,15 +350,15 @@ errors.report(err); ## Samples -Samples are in the [`samples/`](https://github.com/googleapis/nodejs-error-reporting/tree/master/samples) directory. Each sample's `README.md` has instructions for running its sample. +Samples are in the [`samples/`](https://github.com/googleapis/nodejs-error-reporting/tree/main/samples) directory. Each sample's `README.md` has instructions for running its sample. | Sample | Source Code | Try it | | --------------------------- | --------------------------------- | ------ | -| Explicit setup | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/master/samples/explicitSetup.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-error-reporting&page=editor&open_in_editor=samples/explicitSetup.js,samples/README.md) | -| Express integration | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/master/samples/express.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-error-reporting&page=editor&open_in_editor=samples/express.js,samples/README.md) | -| Implicit setup | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/master/samples/implicitSetup.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-error-reporting&page=editor&open_in_editor=samples/implicitSetup.js,samples/README.md) | -| Manual reporting | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/master/samples/manual.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-error-reporting&page=editor&open_in_editor=samples/manual.js,samples/README.md) | -| Quickstart | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/master/samples/quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-error-reporting&page=editor&open_in_editor=samples/quickstart.js,samples/README.md) | +| Explicit setup | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/main/samples/explicitSetup.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-error-reporting&page=editor&open_in_editor=samples/explicitSetup.js,samples/README.md) | +| Express integration | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/main/samples/express.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-error-reporting&page=editor&open_in_editor=samples/express.js,samples/README.md) | +| Implicit setup | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/main/samples/implicitSetup.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-error-reporting&page=editor&open_in_editor=samples/implicitSetup.js,samples/README.md) | +| Manual reporting | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/main/samples/manual.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-error-reporting&page=editor&open_in_editor=samples/manual.js,samples/README.md) | +| Quickstart | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/main/samples/quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-error-reporting&page=editor&open_in_editor=samples/quickstart.js,samples/README.md) | @@ -406,19 +406,19 @@ More Information: [Google Cloud Platform Launch Stages][launch_stages] ## Contributing -Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/nodejs-error-reporting/blob/master/CONTRIBUTING.md). +Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/nodejs-error-reporting/blob/main/CONTRIBUTING.md). Please note that this `README.md`, the `samples/README.md`, and a variety of configuration files in this repository (including `.nycrc` and `tsconfig.json`) are generated from a central template. To edit one of these files, make an edit -to its template in this -[directory](https://github.com/googleapis/synthtool/tree/master/synthtool/gcp/templates/node_library). +to its templates in +[directory](https://github.com/googleapis/synthtool). ## License Apache Version 2.0 -See [LICENSE](https://github.com/googleapis/nodejs-error-reporting/blob/master/LICENSE) +See [LICENSE](https://github.com/googleapis/nodejs-error-reporting/blob/main/LICENSE) [client-docs]: https://cloud.google.com/nodejs/docs/reference/error-reporting/latest [product-docs]: https://cloud.google.com/error-reporting From 2d84bbf42015c6469a3bb3daca03e65620dc30ef Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 26 Aug 2021 00:00:51 +0000 Subject: [PATCH 423/527] chore: disable renovate dependency dashboard (#1194) (#596) --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index 144aa60c7d4..c45b239314f 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/repo-automation-bots/owlbot-nodejs:latest - digest: sha256:72ff93409133b0cf277b8870f859e1ddde62d2e329f655311d4bfc16735d182e + digest: sha256:667a9e46a9aa5b80240ad164d55ac33bc9d6780b5ef42f125a41f0ad95bc1950 From 48b7363aa787bbf18e630f1746f5a0ec1d811f29 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 26 Aug 2021 01:00:54 +0000 Subject: [PATCH 424/527] chore: release 2.0.3 (#594) :robot: I have created a release \*beep\* \*boop\* --- ### [2.0.3](https://www.github.com/googleapis/nodejs-error-reporting/compare/v2.0.2...v2.0.3) (2021-08-26) ### Bug Fixes * **build:** migrate to using main branch ([#593](https://www.github.com/googleapis/nodejs-error-reporting/issues/593)) ([5e37253](https://www.github.com/googleapis/nodejs-error-reporting/commit/5e37253b82f148719afd534aa48d7643810d33b5)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- handwritten/error-reporting/CHANGELOG.md | 7 +++++++ handwritten/error-reporting/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/CHANGELOG.md b/handwritten/error-reporting/CHANGELOG.md index 5785e62d1ef..7363eb5a9ae 100644 --- a/handwritten/error-reporting/CHANGELOG.md +++ b/handwritten/error-reporting/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/@google-cloud/error-reporting?activeTab=versions +### [2.0.3](https://www.github.com/googleapis/nodejs-error-reporting/compare/v2.0.2...v2.0.3) (2021-08-26) + + +### Bug Fixes + +* **build:** migrate to using main branch ([#593](https://www.github.com/googleapis/nodejs-error-reporting/issues/593)) ([5e37253](https://www.github.com/googleapis/nodejs-error-reporting/commit/5e37253b82f148719afd534aa48d7643810d33b5)) + ### [2.0.2](https://www.github.com/googleapis/nodejs-error-reporting/compare/v2.0.1...v2.0.2) (2021-05-12) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 478f3ea4dc2..5c40f818bfe 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/error-reporting", "description": "Stackdriver Error Reporting Client Library for Node.js", - "version": "2.0.2", + "version": "2.0.3", "license": "Apache-2.0", "author": "Google Inc.", "engines": { From 8594e68fb52f4f456b87a82c11aa8c032b781193 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 13 Sep 2021 22:18:59 +0000 Subject: [PATCH 425/527] build: enable release-trigger bot (#1212) (#598) --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 2 +- handwritten/error-reporting/.github/release-trigger.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 handwritten/error-reporting/.github/release-trigger.yml diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index c45b239314f..73bbf7d3210 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/repo-automation-bots/owlbot-nodejs:latest - digest: sha256:667a9e46a9aa5b80240ad164d55ac33bc9d6780b5ef42f125a41f0ad95bc1950 + digest: sha256:111973c0da7608bf1e60d070e5449d48826c385a6b92a56cb9203f1725d33c3d diff --git a/handwritten/error-reporting/.github/release-trigger.yml b/handwritten/error-reporting/.github/release-trigger.yml new file mode 100644 index 00000000000..d4ca94189e1 --- /dev/null +++ b/handwritten/error-reporting/.github/release-trigger.yml @@ -0,0 +1 @@ +enabled: true From 90f5e80499454b70b566c899c35660763c9910c4 Mon Sep 17 00:00:00 2001 From: Jeffrey Rennie Date: Tue, 21 Sep 2021 15:04:21 -0700 Subject: [PATCH 426/527] chore: relocate owl bot post processor (#600) chore: relocate owl bot post processor --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 2 +- handwritten/error-reporting/.github/.OwlBot.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index 73bbf7d3210..7d4006e71e0 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: - image: gcr.io/repo-automation-bots/owlbot-nodejs:latest + image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest digest: sha256:111973c0da7608bf1e60d070e5449d48826c385a6b92a56cb9203f1725d33c3d diff --git a/handwritten/error-reporting/.github/.OwlBot.yaml b/handwritten/error-reporting/.github/.OwlBot.yaml index bdfef66742a..164fb2e5ad7 100644 --- a/handwritten/error-reporting/.github/.OwlBot.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.yaml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. docker: - image: gcr.io/repo-automation-bots/owlbot-nodejs:latest + image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest begin-after-commit-hash: 674a41e0de2869f44f45eb7b1a605852a5394bba From f21c0db7dc9b1fcdf6c96b30406b8f51657f77ae Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 30 Sep 2021 19:52:32 +0000 Subject: [PATCH 427/527] build(node): run linkinator against index.html (#1227) (#603) --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index 7d4006e71e0..86e7063f886 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:111973c0da7608bf1e60d070e5449d48826c385a6b92a56cb9203f1725d33c3d + digest: sha256:c0ad7c54b9210f1d10678955bc37b377e538e15cb07ecc3bac93cc7219ec2bc5 From 4c5ac0aa0870cff33f14fed81877b070b5f69f61 Mon Sep 17 00:00:00 2001 From: minherz Date: Mon, 4 Oct 2021 10:07:40 +0300 Subject: [PATCH 428/527] fix: export ErrorMessage as part of the package (#604) Fixes #584 --- handwritten/error-reporting/src/index.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/handwritten/error-reporting/src/index.ts b/handwritten/error-reporting/src/index.ts index 74781b3fef6..343d50301d7 100644 --- a/handwritten/error-reporting/src/index.ts +++ b/handwritten/error-reporting/src/index.ts @@ -35,6 +35,8 @@ import * as manualRequestExtractor from './request-extractors/manual'; // eslint-disable-next-line @typescript-eslint/no-explicit-any export type RestifyRequestHandler = (req: any, res: any, next: Function) => any; +export {ErrorMessage}; + /** * @typedef ConfigurationOptions * @type {Object} From 954653aa6c40f85f9c2dc731f934e1a4ba0837a8 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 4 Oct 2021 07:38:30 +0000 Subject: [PATCH 429/527] chore: release 2.0.4 (#605) :robot: I have created a release \*beep\* \*boop\* --- ### [2.0.4](https://www.github.com/googleapis/nodejs-error-reporting/compare/v2.0.3...v2.0.4) (2021-10-04) ### Bug Fixes * export ErrorMessage as part of the package ([#604](https://www.github.com/googleapis/nodejs-error-reporting/issues/604)) ([eeb0218](https://www.github.com/googleapis/nodejs-error-reporting/commit/eeb02180691260960438b1fbb42425843aa2d677)), closes [#584](https://www.github.com/googleapis/nodejs-error-reporting/issues/584) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- handwritten/error-reporting/CHANGELOG.md | 7 +++++++ handwritten/error-reporting/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/CHANGELOG.md b/handwritten/error-reporting/CHANGELOG.md index 7363eb5a9ae..99a07f470c2 100644 --- a/handwritten/error-reporting/CHANGELOG.md +++ b/handwritten/error-reporting/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/@google-cloud/error-reporting?activeTab=versions +### [2.0.4](https://www.github.com/googleapis/nodejs-error-reporting/compare/v2.0.3...v2.0.4) (2021-10-04) + + +### Bug Fixes + +* export ErrorMessage as part of the package ([#604](https://www.github.com/googleapis/nodejs-error-reporting/issues/604)) ([eeb0218](https://www.github.com/googleapis/nodejs-error-reporting/commit/eeb02180691260960438b1fbb42425843aa2d677)), closes [#584](https://www.github.com/googleapis/nodejs-error-reporting/issues/584) + ### [2.0.3](https://www.github.com/googleapis/nodejs-error-reporting/compare/v2.0.2...v2.0.3) (2021-08-26) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 5c40f818bfe..b12aa72dafd 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/error-reporting", "description": "Stackdriver Error Reporting Client Library for Node.js", - "version": "2.0.3", + "version": "2.0.4", "license": "Apache-2.0", "author": "Google Inc.", "engines": { From 4b755884625598e7fc520e724f78ffc9b2c1ed74 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 26 Oct 2021 23:18:44 +0200 Subject: [PATCH 430/527] chore(deps): update dependency @types/node to v16 (#606) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped) | [`^14.0.0` -> `^16.0.0`](https://renovatebot.com/diffs/npm/@types%2fnode/14.17.32/16.11.6) | [![age](https://badges.renovateapi.com/packages/npm/@types%2fnode/16.11.6/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@types%2fnode/16.11.6/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@types%2fnode/16.11.6/compatibility-slim/14.17.32)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@types%2fnode/16.11.6/confidence-slim/14.17.32)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: "after 9am and before 3pm" (UTC). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-error-reporting). --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index b12aa72dafd..cc0e0747c2d 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -46,7 +46,7 @@ "@types/json-stable-stringify": "^1.0.32", "@types/koa": "^2.0.48", "@types/mocha": "^8.0.0", - "@types/node": "^14.0.0", + "@types/node": "^16.0.0", "@types/once": "^1.4.0", "@types/proxyquire": "^1.3.28", "@types/restify": "^8.0.0", From c6d6e5701ac80a69867de1f2ab8de75217a5b42d Mon Sep 17 00:00:00 2001 From: "F. Hinkelmann" Date: Wed, 3 Nov 2021 14:22:15 -0400 Subject: [PATCH 431/527] chore(cloud-rad): delete api-extractor config (#607) --- .../error-reporting/api-extractor.json | 369 ------------------ 1 file changed, 369 deletions(-) delete mode 100644 handwritten/error-reporting/api-extractor.json diff --git a/handwritten/error-reporting/api-extractor.json b/handwritten/error-reporting/api-extractor.json deleted file mode 100644 index de228294b23..00000000000 --- a/handwritten/error-reporting/api-extractor.json +++ /dev/null @@ -1,369 +0,0 @@ -/** - * Config file for API Extractor. For more info, please visit: https://api-extractor.com - */ -{ - "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - /** - * Optionally specifies another JSON config file that this file extends from. This provides a way for - * standard settings to be shared across multiple projects. - * - * If the path starts with "./" or "../", the path is resolved relative to the folder of the file that contains - * the "extends" field. Otherwise, the first path segment is interpreted as an NPM package name, and will be - * resolved using NodeJS require(). - * - * SUPPORTED TOKENS: none - * DEFAULT VALUE: "" - */ - // "extends": "./shared/api-extractor-base.json" - // "extends": "my-package/include/api-extractor-base.json" - - /** - * Determines the "" token that can be used with other config file settings. The project folder - * typically contains the tsconfig.json and package.json config files, but the path is user-defined. - * - * The path is resolved relative to the folder of the config file that contains the setting. - * - * The default value for "projectFolder" is the token "", which means the folder is determined by traversing - * parent folders, starting from the folder containing api-extractor.json, and stopping at the first folder - * that contains a tsconfig.json file. If a tsconfig.json file cannot be found in this way, then an error - * will be reported. - * - * SUPPORTED TOKENS: - * DEFAULT VALUE: "" - */ - // "projectFolder": "..", - - /** - * (REQUIRED) Specifies the .d.ts file to be used as the starting point for analysis. API Extractor - * analyzes the symbols exported by this module. - * - * The file extension must be ".d.ts" and not ".ts". - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - */ - "mainEntryPointFilePath": "/protos/protos.d.ts", - - /** - * A list of NPM package names whose exports should be treated as part of this package. - * - * For example, suppose that Webpack is used to generate a distributed bundle for the project "library1", - * and another NPM package "library2" is embedded in this bundle. Some types from library2 may become part - * of the exported API for library1, but by default API Extractor would generate a .d.ts rollup that explicitly - * imports library2. To avoid this, we can specify: - * - * "bundledPackages": [ "library2" ], - * - * This would direct API Extractor to embed those types directly in the .d.ts rollup, as if they had been - * local files for library1. - */ - "bundledPackages": [ ], - - /** - * Determines how the TypeScript compiler engine will be invoked by API Extractor. - */ - "compiler": { - /** - * Specifies the path to the tsconfig.json file to be used by API Extractor when analyzing the project. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * Note: This setting will be ignored if "overrideTsconfig" is used. - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/tsconfig.json" - */ - // "tsconfigFilePath": "/tsconfig.json", - - /** - * Provides a compiler configuration that will be used instead of reading the tsconfig.json file from disk. - * The object must conform to the TypeScript tsconfig schema: - * - * http://json.schemastore.org/tsconfig - * - * If omitted, then the tsconfig.json file will be read from the "projectFolder". - * - * DEFAULT VALUE: no overrideTsconfig section - */ - // "overrideTsconfig": { - // . . . - // } - - /** - * This option causes the compiler to be invoked with the --skipLibCheck option. This option is not recommended - * and may cause API Extractor to produce incomplete or incorrect declarations, but it may be required when - * dependencies contain declarations that are incompatible with the TypeScript engine that API Extractor uses - * for its analysis. Where possible, the underlying issue should be fixed rather than relying on skipLibCheck. - * - * DEFAULT VALUE: false - */ - // "skipLibCheck": true, - }, - - /** - * Configures how the API report file (*.api.md) will be generated. - */ - "apiReport": { - /** - * (REQUIRED) Whether to generate an API report. - */ - "enabled": true, - - /** - * The filename for the API report files. It will be combined with "reportFolder" or "reportTempFolder" to produce - * a full file path. - * - * The file extension should be ".api.md", and the string should not contain a path separator such as "\" or "/". - * - * SUPPORTED TOKENS: , - * DEFAULT VALUE: ".api.md" - */ - // "reportFileName": ".api.md", - - /** - * Specifies the folder where the API report file is written. The file name portion is determined by - * the "reportFileName" setting. - * - * The API report file is normally tracked by Git. Changes to it can be used to trigger a branch policy, - * e.g. for an API review. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/etc/" - */ - // "reportFolder": "/etc/", - - /** - * Specifies the folder where the temporary report file is written. The file name portion is determined by - * the "reportFileName" setting. - * - * After the temporary file is written to disk, it is compared with the file in the "reportFolder". - * If they are different, a production build will fail. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/temp/" - */ - // "reportTempFolder": "/temp/" - }, - - /** - * Configures how the doc model file (*.api.json) will be generated. - */ - "docModel": { - /** - * (REQUIRED) Whether to generate a doc model file. - */ - "enabled": true, - - /** - * The output path for the doc model file. The file extension should be ".api.json". - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/temp/.api.json" - */ - // "apiJsonFilePath": "/temp/.api.json" - }, - - /** - * Configures how the .d.ts rollup file will be generated. - */ - "dtsRollup": { - /** - * (REQUIRED) Whether to generate the .d.ts rollup file. - */ - "enabled": true, - - /** - * Specifies the output path for a .d.ts rollup file to be generated without any trimming. - * This file will include all declarations that are exported by the main entry point. - * - * If the path is an empty string, then this file will not be written. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/dist/.d.ts" - */ - // "untrimmedFilePath": "/dist/.d.ts", - - /** - * Specifies the output path for a .d.ts rollup file to be generated with trimming for a "beta" release. - * This file will include only declarations that are marked as "@public" or "@beta". - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "" - */ - // "betaTrimmedFilePath": "/dist/-beta.d.ts", - - - /** - * Specifies the output path for a .d.ts rollup file to be generated with trimming for a "public" release. - * This file will include only declarations that are marked as "@public". - * - * If the path is an empty string, then this file will not be written. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "" - */ - // "publicTrimmedFilePath": "/dist/-public.d.ts", - - /** - * When a declaration is trimmed, by default it will be replaced by a code comment such as - * "Excluded from this release type: exampleMember". Set "omitTrimmingComments" to true to remove the - * declaration completely. - * - * DEFAULT VALUE: false - */ - // "omitTrimmingComments": true - }, - - /** - * Configures how the tsdoc-metadata.json file will be generated. - */ - "tsdocMetadata": { - /** - * Whether to generate the tsdoc-metadata.json file. - * - * DEFAULT VALUE: true - */ - // "enabled": true, - - /** - * Specifies where the TSDoc metadata file should be written. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * The default value is "", which causes the path to be automatically inferred from the "tsdocMetadata", - * "typings" or "main" fields of the project's package.json. If none of these fields are set, the lookup - * falls back to "tsdoc-metadata.json" in the package folder. - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "" - */ - // "tsdocMetadataFilePath": "/dist/tsdoc-metadata.json" - }, - - /** - * Specifies what type of newlines API Extractor should use when writing output files. By default, the output files - * will be written with Windows-style newlines. To use POSIX-style newlines, specify "lf" instead. - * To use the OS's default newline kind, specify "os". - * - * DEFAULT VALUE: "crlf" - */ - // "newlineKind": "crlf", - - /** - * Configures how API Extractor reports error and warning messages produced during analysis. - * - * There are three sources of messages: compiler messages, API Extractor messages, and TSDoc messages. - */ - "messages": { - /** - * Configures handling of diagnostic messages reported by the TypeScript compiler engine while analyzing - * the input .d.ts files. - * - * TypeScript message identifiers start with "TS" followed by an integer. For example: "TS2551" - * - * DEFAULT VALUE: A single "default" entry with logLevel=warning. - */ - "compilerMessageReporting": { - /** - * Configures the default routing for messages that don't match an explicit rule in this table. - */ - "default": { - /** - * Specifies whether the message should be written to the the tool's output log. Note that - * the "addToApiReportFile" property may supersede this option. - * - * Possible values: "error", "warning", "none" - * - * Errors cause the build to fail and return a nonzero exit code. Warnings cause a production build fail - * and return a nonzero exit code. For a non-production build (e.g. when "api-extractor run" includes - * the "--local" option), the warning is displayed but the build will not fail. - * - * DEFAULT VALUE: "warning" - */ - "logLevel": "warning", - - /** - * When addToApiReportFile is true: If API Extractor is configured to write an API report file (.api.md), - * then the message will be written inside that file; otherwise, the message is instead logged according to - * the "logLevel" option. - * - * DEFAULT VALUE: false - */ - // "addToApiReportFile": false - }, - - // "TS2551": { - // "logLevel": "warning", - // "addToApiReportFile": true - // }, - // - // . . . - }, - - /** - * Configures handling of messages reported by API Extractor during its analysis. - * - * API Extractor message identifiers start with "ae-". For example: "ae-extra-release-tag" - * - * DEFAULT VALUE: See api-extractor-defaults.json for the complete table of extractorMessageReporting mappings - */ - "extractorMessageReporting": { - "default": { - "logLevel": "warning", - // "addToApiReportFile": false - }, - - // "ae-extra-release-tag": { - // "logLevel": "warning", - // "addToApiReportFile": true - // }, - // - // . . . - }, - - /** - * Configures handling of messages reported by the TSDoc parser when analyzing code comments. - * - * TSDoc message identifiers start with "tsdoc-". For example: "tsdoc-link-tag-unescaped-text" - * - * DEFAULT VALUE: A single "default" entry with logLevel=warning. - */ - "tsdocMessageReporting": { - "default": { - "logLevel": "warning", - // "addToApiReportFile": false - } - - // "tsdoc-link-tag-unescaped-text": { - // "logLevel": "warning", - // "addToApiReportFile": true - // }, - // - // . . . - } - } - -} From d52b8249ce83f0147e118881e651b8c8324a5307 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Fri, 10 Dec 2021 21:16:17 +0000 Subject: [PATCH 432/527] build: add generated samples to .eslintignore (#609) --- handwritten/error-reporting/.eslintignore | 1 + handwritten/error-reporting/.github/.OwlBot.lock.yaml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/.eslintignore b/handwritten/error-reporting/.eslintignore index 9340ad9b86d..ea5b04aebe6 100644 --- a/handwritten/error-reporting/.eslintignore +++ b/handwritten/error-reporting/.eslintignore @@ -4,3 +4,4 @@ test/fixtures build/ docs/ protos/ +samples/generated/ diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index 86e7063f886..8a63b10a9dd 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:c0ad7c54b9210f1d10678955bc37b377e538e15cb07ecc3bac93cc7219ec2bc5 + digest: sha256:ba3f2990fefe465f89834e4c46f847ddb141afa54daa6a1d462928fa679ed143 From e7512e081d589bb23c07c51e72c38995cdeb9dcb Mon Sep 17 00:00:00 2001 From: losalex <90795544+losalex@users.noreply.github.com> Date: Wed, 29 Dec 2021 10:55:09 -0800 Subject: [PATCH 433/527] Enable staleness and pull request size bots on repository (#612) Enable staleness and pull request size auto-label bots on this repository --- handwritten/error-reporting/.github/auto-label.yaml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 handwritten/error-reporting/.github/auto-label.yaml diff --git a/handwritten/error-reporting/.github/auto-label.yaml b/handwritten/error-reporting/.github/auto-label.yaml new file mode 100644 index 00000000000..1e4706499b3 --- /dev/null +++ b/handwritten/error-reporting/.github/auto-label.yaml @@ -0,0 +1,7 @@ +product: true +requestsize: + enabled: true +staleness: + pullrequest: true + old: 30 + extraold: 60 From df2c73599afc9710940bed37d8c8d8b8bf9a3081 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 29 Dec 2021 20:30:15 +0000 Subject: [PATCH 434/527] docs(node): support "stable"/"preview" release level (#1312) (#613) --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 2 +- handwritten/error-reporting/README.md | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index 8a63b10a9dd..1b6a76cc483 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:ba3f2990fefe465f89834e4c46f847ddb141afa54daa6a1d462928fa679ed143 + digest: sha256:5ed10ba99cd1ea8c3a0f29b4c53e8a2723a101952705baed6b61783111c64c1c diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index b2bb130abee..e86810c3579 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -392,6 +392,7 @@ This library follows [Semantic Versioning](http://semver.org/). + This library is considered to be in **beta**. This means it is expected to be mostly stable while we work toward a general availability release; however, complete stability is not guaranteed. We will address issues and requests @@ -400,6 +401,7 @@ against beta libraries with a high priority. + More Information: [Google Cloud Platform Launch Stages][launch_stages] [launch_stages]: https://cloud.google.com/terms/launch-stages From fdba7ffb7b2a4b1a8b3c376a8beb514b0fbc050a Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 30 Dec 2021 23:20:15 +0000 Subject: [PATCH 435/527] docs(badges): tweak badge to use new preview/stable language (#1314) (#614) --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 2 +- handwritten/error-reporting/README.md | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index 1b6a76cc483..497345b83de 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:5ed10ba99cd1ea8c3a0f29b4c53e8a2723a101952705baed6b61783111c64c1c + digest: sha256:f092066de33d4a2a13ab13c8fa9dcb4f6b96fa1fb7d391bf19cd0c4921d997c0 diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index e86810c3579..a47cb5e4d9d 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -6,7 +6,6 @@ [![release level](https://img.shields.io/badge/release%20level-beta-yellow.svg?style=flat)](https://cloud.google.com/terms/launch-stages) [![npm version](https://img.shields.io/npm/v/@google-cloud/error-reporting.svg)](https://www.npmjs.org/package/@google-cloud/error-reporting) -[![codecov](https://img.shields.io/codecov/c/github/googleapis/nodejs-error-reporting/main.svg?style=flat)](https://codecov.io/gh/googleapis/nodejs-error-reporting) From 6f557eea847db77f0a1342f1b2c1d515b958835a Mon Sep 17 00:00:00 2001 From: Anthonios Partheniou Date: Thu, 30 Dec 2021 19:56:16 -0500 Subject: [PATCH 436/527] chore: add api_shortname and library_type to repo metadata (#611) Update .repo-metadata.json as required by go/library-data-integrity --- handwritten/error-reporting/.repo-metadata.json | 6 ++++-- handwritten/error-reporting/README.md | 9 ++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/handwritten/error-reporting/.repo-metadata.json b/handwritten/error-reporting/.repo-metadata.json index ad85fa6a0c2..1d758cb3f5e 100644 --- a/handwritten/error-reporting/.repo-metadata.json +++ b/handwritten/error-reporting/.repo-metadata.json @@ -4,10 +4,12 @@ "product_documentation": "https://cloud.google.com/error-reporting", "client_documentation": "https://cloud.google.com/nodejs/docs/reference/error-reporting/latest", "issue_tracker": "https://issuetracker.google.com/savedsearches/559780", - "release_level": "beta", + "release_level": "preview", "language": "nodejs", "repo": "googleapis/nodejs-error-reporting", "distribution_name": "@google-cloud/error-reporting", "api_id": "clouderrorreporting.googleapis.com", - "codeowner_team": "@googleapis/api-logging" + "codeowner_team": "@googleapis/api-logging", + "api_shortname": "error-reporting", + "library_type": "REST" } diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index a47cb5e4d9d..8ca95e3fbed 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -4,7 +4,7 @@ # [Cloud Error Reporting: Node.js Client](https://github.com/googleapis/nodejs-error-reporting) -[![release level](https://img.shields.io/badge/release%20level-beta-yellow.svg?style=flat)](https://cloud.google.com/terms/launch-stages) +[![release level](https://img.shields.io/badge/release%20level-preview-yellow.svg?style=flat)](https://cloud.google.com/terms/launch-stages) [![npm version](https://img.shields.io/npm/v/@google-cloud/error-reporting.svg)](https://www.npmjs.org/package/@google-cloud/error-reporting) @@ -392,13 +392,12 @@ This library follows [Semantic Versioning](http://semver.org/). -This library is considered to be in **beta**. This means it is expected to be -mostly stable while we work toward a general availability release; however, -complete stability is not guaranteed. We will address issues and requests -against beta libraries with a high priority. +This library is considered to be in **preview**. This means it is still a +work-in-progress and under active development. Any release is subject to +backwards-incompatible changes at any time. More Information: [Google Cloud Platform Launch Stages][launch_stages] From 614695535d8d1a074fb3b15e1a31daf9e5f70993 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 11 Jan 2022 17:04:15 +0000 Subject: [PATCH 437/527] test(nodejs): remove 15 add 16 (#1322) (#615) --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index 497345b83de..6831fd8e18c 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:f092066de33d4a2a13ab13c8fa9dcb4f6b96fa1fb7d391bf19cd0c4921d997c0 + digest: sha256:3563b6b264989c4f5aa31a3682e4df36c95756cfef275d3201508947cbfc511e From 01004702a30fbf1685bf41a022d74b9b2a6c9991 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 19 Jan 2022 17:54:16 +0000 Subject: [PATCH 438/527] build(node): switch back to keystore for publication (#1328) (#618) --- .../error-reporting/.github/.OwlBot.lock.yaml | 2 +- .../.github/ISSUE_TEMPLATE/bug_report.md | 2 +- .../.github/ISSUE_TEMPLATE/config.yml | 4 ++++ .../.github/ISSUE_TEMPLATE/feature_request.md | 2 +- .../.github/ISSUE_TEMPLATE/question.md | 12 ++++++++++++ handwritten/error-reporting/.kokoro/publish.sh | 2 +- .../error-reporting/.kokoro/release/publish.cfg | 11 ++++++++++- 7 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 handwritten/error-reporting/.github/ISSUE_TEMPLATE/config.yml create mode 100644 handwritten/error-reporting/.github/ISSUE_TEMPLATE/question.md diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index 6831fd8e18c..2c37ca7a7b2 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:3563b6b264989c4f5aa31a3682e4df36c95756cfef275d3201508947cbfc511e + digest: sha256:89c5b2f3decec8ad64febbebea671076c119d1ab43700da380846a315600de8a diff --git a/handwritten/error-reporting/.github/ISSUE_TEMPLATE/bug_report.md b/handwritten/error-reporting/.github/ISSUE_TEMPLATE/bug_report.md index 82af7c9c0fa..29bbc85a561 100644 --- a/handwritten/error-reporting/.github/ISSUE_TEMPLATE/bug_report.md +++ b/handwritten/error-reporting/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,7 +1,7 @@ --- name: Bug report about: Create a report to help us improve - +labels: 'type: bug, priority: p2' --- Thanks for stopping by to let us know something could be better! diff --git a/handwritten/error-reporting/.github/ISSUE_TEMPLATE/config.yml b/handwritten/error-reporting/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000000..603b90133b6 --- /dev/null +++ b/handwritten/error-reporting/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,4 @@ +contact_links: + - name: Google Cloud Support + url: https://cloud.google.com/support/ + about: If you have a support contract with Google, please use the Google Cloud Support portal. diff --git a/handwritten/error-reporting/.github/ISSUE_TEMPLATE/feature_request.md b/handwritten/error-reporting/.github/ISSUE_TEMPLATE/feature_request.md index 6365857f33c..b0327dfa02e 100644 --- a/handwritten/error-reporting/.github/ISSUE_TEMPLATE/feature_request.md +++ b/handwritten/error-reporting/.github/ISSUE_TEMPLATE/feature_request.md @@ -1,7 +1,7 @@ --- name: Feature request about: Suggest an idea for this library - +labels: 'type: feature request, priority: p3' --- Thanks for stopping by to let us know something could be better! diff --git a/handwritten/error-reporting/.github/ISSUE_TEMPLATE/question.md b/handwritten/error-reporting/.github/ISSUE_TEMPLATE/question.md new file mode 100644 index 00000000000..97323113911 --- /dev/null +++ b/handwritten/error-reporting/.github/ISSUE_TEMPLATE/question.md @@ -0,0 +1,12 @@ +--- +name: Question +about: Ask a question +labels: 'type: question, priority: p3' +--- + +Thanks for stopping by to ask us a question! Please make sure to include: +- What you're trying to do +- What code you've already tried +- Any error messages you're getting + +**PLEASE READ**: If you have a support contract with Google, please create an issue in the [support console](https://cloud.google.com/support/) instead of filing on GitHub. This will ensure a timely response. diff --git a/handwritten/error-reporting/.kokoro/publish.sh b/handwritten/error-reporting/.kokoro/publish.sh index 4db6bf1c7f5..77a5defb2b5 100755 --- a/handwritten/error-reporting/.kokoro/publish.sh +++ b/handwritten/error-reporting/.kokoro/publish.sh @@ -24,7 +24,7 @@ python3 -m releasetool publish-reporter-script > /tmp/publisher-script; source / cd $(dirname $0)/.. -NPM_TOKEN=$(cat $KOKORO_GFILE_DIR/secret_manager/npm_publish_token) +NPM_TOKEN=$(cat $KOKORO_KEYSTORE_DIR/73713_google-cloud-npm-token-1) echo "//wombat-dressing-room.appspot.com/:_authToken=${NPM_TOKEN}" > ~/.npmrc npm install diff --git a/handwritten/error-reporting/.kokoro/release/publish.cfg b/handwritten/error-reporting/.kokoro/release/publish.cfg index 9ccb443c9ed..c075226baa1 100644 --- a/handwritten/error-reporting/.kokoro/release/publish.cfg +++ b/handwritten/error-reporting/.kokoro/release/publish.cfg @@ -7,9 +7,18 @@ before_action { } } +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "google-cloud-npm-token-1" + } + } +} + env_vars: { key: "SECRET_MANAGER_KEYS" - value: "npm_publish_token,releasetool-publish-reporter-app,releasetool-publish-reporter-googleapis-installation,releasetool-publish-reporter-pem" + value: "releasetool-publish-reporter-app,releasetool-publish-reporter-googleapis-installation,releasetool-publish-reporter-pem" } # Download trampoline resources. From 6f8f770e4abf52ed8e8a1d3a21697a8d7869a59e Mon Sep 17 00:00:00 2001 From: losalex <90795544+losalex@users.noreply.github.com> Date: Mon, 24 Jan 2022 15:29:54 -0800 Subject: [PATCH 439/527] chore: Update blunderbuss to new issues/pr reviewer (#619) * Update blunderbuss to new issues/pr reviewer Update blunderbuss to new issues/pr reviewer * Change group to googleapis/api-logging-reviewers --- handwritten/error-reporting/.github/blunderbuss.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/.github/blunderbuss.yml b/handwritten/error-reporting/.github/blunderbuss.yml index 45e412794bd..a9d3f44e396 100644 --- a/handwritten/error-reporting/.github/blunderbuss.yml +++ b/handwritten/error-reporting/.github/blunderbuss.yml @@ -1,4 +1,4 @@ assign_issues: - - googleapis/api-logging + - googleapis/api-logging-reviewers assign_prs: - - googleapis/api-logging + - googleapis/api-logging-reviewers From 54ebfe20965158038e53be04d3de3154a7db6913 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Fri, 4 Feb 2022 16:11:13 +0000 Subject: [PATCH 440/527] docs(nodejs): version support policy edits (#1346) (#622) --- .../error-reporting/.github/.OwlBot.lock.yaml | 15 +++++++++++- handwritten/error-reporting/README.md | 24 +++++++++---------- 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index 2c37ca7a7b2..84059c19485 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -1,3 +1,16 @@ +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:89c5b2f3decec8ad64febbebea671076c119d1ab43700da380846a315600de8a + digest: sha256:a9d166a74752226923d159cb723df53429e226c9c076dad3ca52ffd073ff3bb4 diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 8ca95e3fbed..2ca87e5e46e 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -369,21 +369,21 @@ also contains samples. Our client libraries follow the [Node.js release schedule](https://nodejs.org/en/about/releases/). Libraries are compatible with all current _active_ and _maintenance_ versions of Node.js. +If you are using an end-of-life version of Node.js, we recommend that you update +as soon as possible to an actively supported LTS version. -Client libraries targeting some end-of-life versions of Node.js are available, and -can be installed via npm [dist-tags](https://docs.npmjs.com/cli/dist-tag). -The dist-tags follow the naming convention `legacy-(version)`. - -_Legacy Node.js versions are supported as a best effort:_ +Google's client libraries support legacy versions of Node.js runtimes on a +best-efforts basis with the following warnings: -* Legacy versions will not be tested in continuous integration. -* Some security patches may not be able to be backported. -* Dependencies will not be kept up-to-date, and features will not be backported. +* Legacy versions are not tested in continuous integration. +* Some security patches and features cannot be backported. +* Dependencies cannot be kept up-to-date. -#### Legacy tags available - -* `legacy-8`: install client libraries from this dist-tag for versions - compatible with Node.js 8. +Client libraries targeting some end-of-life versions of Node.js are available, and +can be installed through npm [dist-tags](https://docs.npmjs.com/cli/dist-tag). +The dist-tags follow the naming convention `legacy-(version)`. +For example, `npm install @google-cloud/error-reporting@legacy-8` installs client libraries +for versions compatible with Node.js 8. ## Versioning From 8486b3e1e6ec557e7843ee46987b6565f3508d9d Mon Sep 17 00:00:00 2001 From: losalex <90795544+losalex@users.noreply.github.com> Date: Thu, 17 Mar 2022 14:43:14 -0700 Subject: [PATCH 441/527] Remove or change product related branding (#626) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Remove or change product related branding Removing or changing branding related information in repository * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * Remove or change product related branding Remove or change product related branding * Remove stackdriver * Remove Cloud * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * Remove Stackdriver * Remove stackdriver * Remove stackdriver * Remove stackdriver * Remove stackdriver * Remove Stackdriver * Remove Stackdriver * Remove Stackdriver * Update Google Cloud * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- .../error-reporting/.readme-partials.yaml | 10 ++++----- handwritten/error-reporting/README.md | 10 ++++----- handwritten/error-reporting/package.json | 2 +- .../src/classes/error-message.ts | 2 +- .../error-reporting/src/configuration.ts | 8 +++---- .../src/google-apis/auth-client.ts | 6 ++--- handwritten/error-reporting/src/index.ts | 22 +++++++++---------- .../error-reporting/src/interfaces/koa.ts | 2 +- .../error-reporting/src/interfaces/koa2.ts | 2 +- .../error-reporting/src/interfaces/restify.ts | 6 ++--- .../system-test/error-reporting.ts | 2 +- .../test/unit/google-apis/auth-client.ts | 6 ++--- 12 files changed, 38 insertions(+), 40 deletions(-) diff --git a/handwritten/error-reporting/.readme-partials.yaml b/handwritten/error-reporting/.readme-partials.yaml index 25ee457cc1f..f9da2d40b45 100644 --- a/handwritten/error-reporting/.readme-partials.yaml +++ b/handwritten/error-reporting/.readme-partials.yaml @@ -1,11 +1,11 @@ introduction: |- > Node.js idiomatic client for [Error Reporting][product-docs]. - [Cloud Error Reporting](https://cloud.google.com/error-reporting/docs/) aggregates and displays errors produced in your running cloud services. + [Error Reporting](https://cloud.google.com/error-reporting/docs/) aggregates and displays errors produced in your running cloud services. body: |- - This module provides custom Cloud Error Reporting support for Node.js applications. - [Cloud Error Reporting](https://cloud.google.com/error-reporting/) is a feature of + This module provides custom Error Reporting support for Node.js applications. + [Error Reporting](https://cloud.google.com/error-reporting/) is a feature of Google Cloud Platform that allows in-depth monitoring and viewing of errors reported by applications running in almost any environment. @@ -13,11 +13,11 @@ body: |- Thus, if you are already using Winston or Bunyan in your application, and don't need custom error reporting capabilities, you do not need to use the `@google-cloud/error-reporting` library directly to report errors to the Error Reporting Console. - ![Cloud Error Reporting overview](https://raw.githubusercontent.com/googleapis/nodejs-error-reporting/master/doc/images/errors-overview.png) + ![Error Reporting overview](https://raw.githubusercontent.com/googleapis/nodejs-error-reporting/master/doc/images/errors-overview.png) Here's an introductory video that provides some more details: - [![Learn about Error Reporting in Cloud](https://img.youtube.com/vi/cVpWVD75Hs8/0.jpg)](https://www.youtube.com/watch?v=cVpWVD75Hs8) + [![Learn about Error Reporting in Google Cloud](https://img.youtube.com/vi/cVpWVD75Hs8/0.jpg)](https://www.youtube.com/watch?v=cVpWVD75Hs8) # When Errors Are Reported diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 2ca87e5e46e..b260cb47c4e 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -12,7 +12,7 @@ > Node.js idiomatic client for [Error Reporting][product-docs]. -[Cloud Error Reporting](https://cloud.google.com/error-reporting/docs/) aggregates and displays errors produced in your running cloud services. +[Error Reporting](https://cloud.google.com/error-reporting/docs/) aggregates and displays errors produced in your running cloud services. A comprehensive list of changes in each version may be found in @@ -68,8 +68,8 @@ const errors = new ErrorReporting(); errors.report('Something broke!'); ``` -This module provides custom Cloud Error Reporting support for Node.js applications. -[Cloud Error Reporting](https://cloud.google.com/error-reporting/) is a feature of +This module provides custom Error Reporting support for Node.js applications. +[Error Reporting](https://cloud.google.com/error-reporting/) is a feature of Google Cloud Platform that allows in-depth monitoring and viewing of errors reported by applications running in almost any environment. @@ -77,11 +77,11 @@ However, note that [@google-cloud/logging-winston](https://github.com/googleapis Thus, if you are already using Winston or Bunyan in your application, and don't need custom error reporting capabilities, you do not need to use the `@google-cloud/error-reporting` library directly to report errors to the Error Reporting Console. -![Cloud Error Reporting overview](https://raw.githubusercontent.com/googleapis/nodejs-error-reporting/master/doc/images/errors-overview.png) +![Error Reporting overview](https://raw.githubusercontent.com/googleapis/nodejs-error-reporting/master/doc/images/errors-overview.png) Here's an introductory video that provides some more details: -[![Learn about Error Reporting in Cloud](https://img.youtube.com/vi/cVpWVD75Hs8/0.jpg)](https://www.youtube.com/watch?v=cVpWVD75Hs8) +[![Learn about Error Reporting in Google Cloud](https://img.youtube.com/vi/cVpWVD75Hs8/0.jpg)](https://www.youtube.com/watch?v=cVpWVD75Hs8) # When Errors Are Reported diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index cc0e0747c2d..3303c76f4c4 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/error-reporting", - "description": "Stackdriver Error Reporting Client Library for Node.js", + "description": "Error Reporting Client Library for Node.js", "version": "2.0.4", "license": "Apache-2.0", "author": "Google Inc.", diff --git a/handwritten/error-reporting/src/classes/error-message.ts b/handwritten/error-reporting/src/classes/error-message.ts index 3f10bdf2342..8cc5e8be84c 100644 --- a/handwritten/error-reporting/src/classes/error-message.ts +++ b/handwritten/error-reporting/src/classes/error-message.ts @@ -44,7 +44,7 @@ export class ErrorMessage { * @type {Object} * @class ErrorMessage * @classdesc ErrorMessage is a class which is meant to store and control-for - * Stackdriver Error API submittable values. Meant to be JSON string-ifiable + * Google Cloud Error API submittable values. Meant to be JSON string-ifiable * representation of the final values which will be submitted to the Error * API this class enforces type-checking on every setter function and will * write default type-friendly values to instance properties if given values diff --git a/handwritten/error-reporting/src/configuration.ts b/handwritten/error-reporting/src/configuration.ts index e322d0b0eee..4c5bb656e65 100644 --- a/handwritten/error-reporting/src/configuration.ts +++ b/handwritten/error-reporting/src/configuration.ts @@ -64,7 +64,7 @@ export interface ServiceContext { * service. * @class Configuration * @classdesc The Configuration class represents the runtime configuration of - * the Stackdriver error handling library. This Configuration class accepts the + * the error handling library. This Configuration class accepts the * configuration options potentially given through the application interface * but it also preferences values received from the metadata service over * values given through the application interface. Becuase the Configuration @@ -115,9 +115,9 @@ export class Configuration { */ this._projectId = null; /** - * The _key property is meant to contain the optional Stackdriver API key + * The _key property is meant to contain the optional Google Cloud API key * that may be used in place of default application credentials to - * authenticate with the Stackdriver Error API. This property will remain + * authenticate with the Error API. This property will remain * null if a key is not given in the runtime configuration or an invalid * type is given as the runtime configuration. * {@link https://support.google.com/cloud/answer/6158862?hl=en} @@ -345,7 +345,7 @@ export class Configuration { if (this.isReportingEnabled() && !this.getShouldReportErrorsToAPI()) { this._logger.warn( [ - 'The stackdriver error reporting client is configured to report errors', + 'The error reporting client is configured to report errors', 'if and only if the NODE_ENV environment variable is set to "production".', 'Errors will not be reported. To have errors always reported, regardless of the', 'value of NODE_ENV, set the reportMode configuration option to "always".', diff --git a/handwritten/error-reporting/src/google-apis/auth-client.ts b/handwritten/error-reporting/src/google-apis/auth-client.ts index 8c7315c9dad..50e010c3e8c 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.ts +++ b/handwritten/error-reporting/src/google-apis/auth-client.ts @@ -117,7 +117,7 @@ export class RequestHandler extends Service { this._logger.error( [ 'Unable to find credential information on instance. This library', - 'will be unable to communicate with the Stackdriver API to save', + 'will be unable to communicate with the Google Cloud API to save', 'errors. Message: ' + err.message, ].join(' ') ); @@ -191,7 +191,7 @@ export class RequestHandler extends Service { this._logger.error( [ 'Encountered an error while attempting to transmit an error to', - 'the Stackdriver Error Reporting API.', + 'the Error Reporting API.', ].join(' '), err ); @@ -203,7 +203,7 @@ export class RequestHandler extends Service { cb( new Error( [ - 'The stackdriver error reporting client is configured to report errors', + 'The error reporting client is configured to report errors', 'if and only if the NODE_ENV environment variable is set to "production".', 'Errors will not be reported. To have errors always reported, regardless of the', 'value of NODE_ENV, set the reportMode configuration option to "always".', diff --git a/handwritten/error-reporting/src/index.ts b/handwritten/error-reporting/src/index.ts index 343d50301d7..e3dd66ae8fe 100644 --- a/handwritten/error-reporting/src/index.ts +++ b/handwritten/error-reporting/src/index.ts @@ -55,10 +55,10 @@ export {ErrorMessage}; * @property {String} [serviceContext.version] - the version the hosting * application is currently labelled as * @property {Boolean} [ignoreEnvironmentCheck] - flag indicating whether or not - * to communicate errors to the Stackdriver service even if NODE_ENV is not set + * to communicate errors to the Google Cloud service even if NODE_ENV is not set * to production * @property {String} [reportMode] - flag indicating whether or not - * to communicate errors to the Stackdriver service. Possible values are: + * to communicate errors to the Google Cloud service. Possible values are: * -> 'production' (default) * -> Only report errors if NODE_ENV is set to "production". * -> 'always' @@ -71,21 +71,19 @@ export {ErrorMessage}; * @typedef Errors * @type {Object} * @property {Function} report - The manual interface to report Errors to the - * Stackdriver Error Reporting Service + * Error Reporting Service * @property {ErrorMessage} event - Returns a new ErrorMessage class instance * to use to create custom messages - * @property {Function} express - The express plugin for Stackdriver Error - * Reporting - * @property {Object} hapi - The hapi plugin for Stackdriver Error Reporting - * @property {Function} koa - The koa plugin for Stackdriver Error Reporting - * @property {Function} restify - The restify plugin for Stackdriver Error - * Reporting + * @property {Function} express - The express plugin for Error Reporting + * @property {Object} hapi - The hapi plugin for Error Reporting + * @property {Function} koa - The koa plugin for Error Reporting + * @property {Function} restify - The restify plugin for Error Reporting */ /** - * This module provides Stackdriver Error Reporting support for Node.js + * This module provides Error Reporting support for Node.js * applications. - * [Stackdriver Error Reporting](https://cloud.google.com/error-reporting/) is + * [Error Reporting](https://cloud.google.com/error-reporting/) is * a feature of Google Cloud Platform that allows in-depth monitoring and * viewing of errors reported by applications running in almost any environment. * @@ -96,7 +94,7 @@ export {ErrorMessage}; * @alias module:error-reporting * @constructor * - * @resource [What is Stackdriver Error Reporting]{@link + * @resource [What is Error Reporting]{@link * https://cloud.google.com/error-reporting/} * * @param {ConfigurationOptions} initConfiguration - The desired project/error diff --git a/handwritten/error-reporting/src/interfaces/koa.ts b/handwritten/error-reporting/src/interfaces/koa.ts index ce4293c65ee..ab7cbf3028c 100644 --- a/handwritten/error-reporting/src/interfaces/koa.ts +++ b/handwritten/error-reporting/src/interfaces/koa.ts @@ -27,7 +27,7 @@ import {koaRequestInformationExtractor} from '../request-extractors/koa'; * the request chain handling and this function corresponds to the format given * in: https://github.com/koajs/koa/wiki/Error-Handling. * @function koaErrorHandler - * @param {AuthClient} - The API client instance to report errors to Stackdriver + * @param {AuthClient} - The API client instance to report errors to Google Cloud * @param {NormalizedConfigurationVariables} - The application configuration * @returns {Function} - The function used to catch errors yielded by downstream * request handlers. diff --git a/handwritten/error-reporting/src/interfaces/koa2.ts b/handwritten/error-reporting/src/interfaces/koa2.ts index 68b388dbc30..3d4e6228f25 100644 --- a/handwritten/error-reporting/src/interfaces/koa2.ts +++ b/handwritten/error-reporting/src/interfaces/koa2.ts @@ -33,7 +33,7 @@ type KoaNext = Function; * request chain handling and this function corresponds to the format given in: * https://github.com/koajs/koa/wiki/Error-Handling. * @function koaErrorHandler - * @param {AuthClient} - The API client instance to report errors to Stackdriver + * @param {AuthClient} - The API client instance to report errors to Google Cloud * @param {NormalizedConfigurationVariables} - The application configuration * @returns {Function} - The function used to catch errors yielded by downstream * request handlers. diff --git a/handwritten/error-reporting/src/interfaces/restify.ts b/handwritten/error-reporting/src/interfaces/restify.ts index b3059ddc867..15735a1e05c 100644 --- a/handwritten/error-reporting/src/interfaces/restify.ts +++ b/handwritten/error-reporting/src/interfaces/restify.ts @@ -26,7 +26,7 @@ import * as expressRequestInformationExtractor from '../request-extractors/expre * the serviceContext property on the corresponding ErrorMessage instance, * routing the captured error to the right handler so that it can be correctly * marshaled into the ErrorMessage instance and then attempting to send it to - * the Stackdriver API via the given API client instance. + * the Google Cloud API via the given API client instance. * @function restifyErrorHandler * @param {AuthClient} client - the API client * @param {NormalizedConfigurationVariables} config - the application @@ -55,7 +55,7 @@ function restifyErrorHandler( * attempt to determine whether or not the body of response is an instance of * the Error class or its status codes indicate that the response ended in an * error state. If either of the preceding are true then the restifyErrorHandler - * will be called with the error to be routed to the Stackdriver service. + * will be called with the error to be routed to the Google Cloud service. * @function restifyRequestFinishHandler * @param {AuthClient} client - the API client * @param {NormalizedConfigurationVariables} config - the application @@ -146,7 +146,7 @@ function restifyRequestHandler( * event is emitted when an uncaught error is thrown inside a restify request * handler. This init function will return the actual request handler function * which will attach to outgoing responses, determine if they are instances of - * errors and then attempt to send this information to the Stackdriver API. + * errors and then attempt to send this information to the Google Cloud API. * @function serverErrorHandler * @param {AuthClient} client - the API client * @param {NormalizedConfigurationVariables} config - the application diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index 435ba6e78f0..6c934c7b904 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -370,7 +370,7 @@ describe('Client creation', () => { describe('Expected Behavior', () => { const ERROR_STRING = [ - 'The stackdriver error reporting client is configured to report errors', + 'The error reporting client is configured to report errors', 'if and only if the NODE_ENV environment variable is set to "production".', 'Errors will not be reported. To have errors always reported, regardless of the', 'value of NODE_ENV, set the reportMode configuration option to "always".', diff --git a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts index 183db7eba26..2064059a5e4 100644 --- a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts +++ b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts @@ -167,7 +167,7 @@ describe('RequestHandler', () => { null, // no access token error { warn: - 'The stackdriver error reporting client is configured to report ' + + 'The error reporting client is configured to report ' + 'errors if and only if the NODE_ENV environment variable is set to ' + '"production". Errors will not be reported. To have errors always ' + 'reported, regardless of the value of NODE_ENV, set the reportMode ' + @@ -184,7 +184,7 @@ describe('RequestHandler', () => { null, // no access token error { warn: - 'The stackdriver error reporting client is configured to report ' + + 'The error reporting client is configured to report ' + 'errors if and only if the NODE_ENV environment variable is set to ' + '"production". Errors will not be reported. To have errors always ' + 'reported, regardless of the value of NODE_ENV, set the reportMode ' + @@ -203,7 +203,7 @@ describe('RequestHandler', () => { { error: 'Unable to find credential information on instance. This ' + - 'library will be unable to communicate with the Stackdriver API to ' + + 'library will be unable to communicate with the Google Cloud API to ' + 'save errors. Message: ' + message, warn: From 53f844425c32d903fd3245a3a29c47cb8f7ce39e Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 4 Apr 2022 18:16:29 +0000 Subject: [PATCH 442/527] chore: Enable Size-Label bot in all googleapis NodeJs repositories (#1382) (#628) * chore: Enable Size-Label bot in all googleapis NodeJs repositories Auto-label T-shirt size indicator should be assigned on every new pull request in all googleapis NodeJs repositories * Remove product Remove product since it is by default true Source-Link: https://github.com/googleapis/synthtool/commit/f1562fa1c219d7176f79e3eea611b268c361e93d Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:bb4d47d0e770abad62699a4664ce6b9ff1629d50c276a6c75860a6a1853dd19b --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 3 ++- handwritten/error-reporting/.github/auto-label.yaml | 5 ----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index 84059c19485..c6ddf44fb1c 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -13,4 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:a9d166a74752226923d159cb723df53429e226c9c076dad3ca52ffd073ff3bb4 + digest: sha256:bb4d47d0e770abad62699a4664ce6b9ff1629d50c276a6c75860a6a1853dd19b +# created: 2022-04-01T19:19:56.587347289Z diff --git a/handwritten/error-reporting/.github/auto-label.yaml b/handwritten/error-reporting/.github/auto-label.yaml index 1e4706499b3..09c8d735b45 100644 --- a/handwritten/error-reporting/.github/auto-label.yaml +++ b/handwritten/error-reporting/.github/auto-label.yaml @@ -1,7 +1,2 @@ -product: true requestsize: enabled: true -staleness: - pullrequest: true - old: 30 - extraold: 60 From 67efba2e0d689766e274d75a4b6ca97903e01e68 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 6 Apr 2022 15:48:20 +0000 Subject: [PATCH 443/527] chore(deps): update actions/setup-node action to v3 (#1393) (#629) Co-authored-by: Jeffrey Rennie Source-Link: https://github.com/googleapis/synthtool/commit/6593fb2234deff0444032cb2a91100bde4985caf Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:1d25dfefd805b689a2a2356d35a25b13f2f67bcce55400246432c43a42e96214 --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index c6ddf44fb1c..ba38c131eba 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:bb4d47d0e770abad62699a4664ce6b9ff1629d50c276a6c75860a6a1853dd19b -# created: 2022-04-01T19:19:56.587347289Z + digest: sha256:1d25dfefd805b689a2a2356d35a25b13f2f67bcce55400246432c43a42e96214 +# created: 2022-04-05T22:42:50.409517925Z From b3157d73e113a627843ffb27edd539ee50683a5c Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 6 Apr 2022 20:18:10 +0000 Subject: [PATCH 444/527] chore(deps): update actions/checkout action to v3 (#1392) (#630) Co-authored-by: Jeffrey Rennie Source-Link: https://github.com/googleapis/synthtool/commit/9368bc795a376954920c374406e92efb0e3d0ac4 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:f74e740638e66be7ced1540626217dbb72980eb73885b2339a70592f38c9ff2c --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index ba38c131eba..b4c08f9a4a2 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:1d25dfefd805b689a2a2356d35a25b13f2f67bcce55400246432c43a42e96214 -# created: 2022-04-05T22:42:50.409517925Z + digest: sha256:f74e740638e66be7ced1540626217dbb72980eb73885b2339a70592f38c9ff2c +# created: 2022-04-06T18:36:33.987617127Z From a18c8b991c929964193d68782891698a41778382 Mon Sep 17 00:00:00 2001 From: minherz Date: Fri, 15 Apr 2022 21:58:21 +0300 Subject: [PATCH 445/527] fix service name presentation in README (#635) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix service name presentation in README * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- handwritten/error-reporting/.repo-metadata.json | 2 +- handwritten/error-reporting/CONTRIBUTING.md | 2 +- handwritten/error-reporting/README.md | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/handwritten/error-reporting/.repo-metadata.json b/handwritten/error-reporting/.repo-metadata.json index 1d758cb3f5e..dad4d9c1fdf 100644 --- a/handwritten/error-reporting/.repo-metadata.json +++ b/handwritten/error-reporting/.repo-metadata.json @@ -1,6 +1,6 @@ { "name": "error-reporting", - "name_pretty": "Cloud Error Reporting", + "name_pretty": "Error Reporting", "product_documentation": "https://cloud.google.com/error-reporting", "client_documentation": "https://cloud.google.com/nodejs/docs/reference/error-reporting/latest", "issue_tracker": "https://issuetracker.google.com/savedsearches/559780", diff --git a/handwritten/error-reporting/CONTRIBUTING.md b/handwritten/error-reporting/CONTRIBUTING.md index c094a3cb2b3..2227810444e 100644 --- a/handwritten/error-reporting/CONTRIBUTING.md +++ b/handwritten/error-reporting/CONTRIBUTING.md @@ -40,7 +40,7 @@ accept your pull requests. ### Before you begin 1. [Select or create a Cloud Platform project][projects]. -1. [Enable the Cloud Error Reporting API][enable_api]. +1. [Enable the Error Reporting API][enable_api]. 1. [Set up authentication with a service account][auth] so you can access the API from your local workstation. diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index b260cb47c4e..dcb760fa702 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -2,7 +2,7 @@ [//]: # "To regenerate it, use `python -m synthtool`." Google Cloud Platform logo -# [Cloud Error Reporting: Node.js Client](https://github.com/googleapis/nodejs-error-reporting) +# [Error Reporting: Node.js Client](https://github.com/googleapis/nodejs-error-reporting) [![release level](https://img.shields.io/badge/release%20level-preview-yellow.svg?style=flat)](https://cloud.google.com/terms/launch-stages) [![npm version](https://img.shields.io/npm/v/@google-cloud/error-reporting.svg)](https://www.npmjs.org/package/@google-cloud/error-reporting) @@ -18,8 +18,8 @@ A comprehensive list of changes in each version may be found in [the CHANGELOG](https://github.com/googleapis/nodejs-error-reporting/blob/main/CHANGELOG.md). -* [Cloud Error Reporting Node.js Client API Reference][client-docs] -* [Cloud Error Reporting Documentation][product-docs] +* [Error Reporting Node.js Client API Reference][client-docs] +* [Error Reporting Documentation][product-docs] * [github.com/googleapis/nodejs-error-reporting](https://github.com/googleapis/nodejs-error-reporting) Read more about the client libraries for Cloud APIs, including the older @@ -44,7 +44,7 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. ### Before you begin 1. [Select or create a Cloud Platform project][projects]. -1. [Enable the Cloud Error Reporting API][enable_api]. +1. [Enable the Error Reporting API][enable_api]. 1. [Set up authentication with a service account][auth] so you can access the API from your local workstation. @@ -361,7 +361,7 @@ Samples are in the [`samples/`](https://github.com/googleapis/nodejs-error-repor -The [Cloud Error Reporting Node.js Client API Reference][client-docs] documentation +The [Error Reporting Node.js Client API Reference][client-docs] documentation also contains samples. ## Supported Node.js Versions From 8ae6aed4dc53891382bfca12991f2cfbe52b61f2 Mon Sep 17 00:00:00 2001 From: losalex <90795544+losalex@users.noreply.github.com> Date: Sat, 16 Apr 2022 01:36:23 -0500 Subject: [PATCH 446/527] fix: Reenable staleness bot (#632) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Reenable staleness bot Reenable staleness bot on the repo * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * Update owlbot.py * Update auto-label.yaml * Update owlbot.py Co-authored-by: Owl Bot --- .../error-reporting/.github/auto-label.yaml | 17 +++++++++++++++++ handwritten/error-reporting/owlbot.py | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/.github/auto-label.yaml b/handwritten/error-reporting/.github/auto-label.yaml index 09c8d735b45..ccad49b4ebf 100644 --- a/handwritten/error-reporting/.github/auto-label.yaml +++ b/handwritten/error-reporting/.github/auto-label.yaml @@ -1,2 +1,19 @@ +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. requestsize: enabled: true +staleness: + pullrequest: true + old: 30 + extraold: 60 diff --git a/handwritten/error-reporting/owlbot.py b/handwritten/error-reporting/owlbot.py index 1abea9ea786..da18e17fc4e 100644 --- a/handwritten/error-reporting/owlbot.py +++ b/handwritten/error-reporting/owlbot.py @@ -21,5 +21,5 @@ common_templates = gcp.CommonTemplates() templates = common_templates.node_library() -s.copy(templates) +s.copy(templates, excludes=[".github/auto-label.yaml"]) node.fix_hermetic() From 6b5be1978360175bfa462539f76c1825d60a8204 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 21 Apr 2022 02:36:24 +0000 Subject: [PATCH 447/527] build(node): update client library version in samples metadata (#1356) (#637) * build(node): add feat in node post-processor to add client library version number in snippet metadata Co-authored-by: Benjamin E. Coe Source-Link: https://github.com/googleapis/synthtool/commit/d337b88dd1494365183718a2de0b7b4056b6fdfe Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:d106724ad2a96daa1b8d88de101ba50bdb30b8df62ffa0aa2b451d93b4556641 --- .../error-reporting/.github/.OwlBot.lock.yaml | 4 ++-- .../.github/sync-repo-settings.yaml | 17 +++++++++++++++++ handwritten/error-reporting/.kokoro/common.cfg | 2 +- .../error-reporting/.kokoro/release/docs.cfg | 2 +- .../error-reporting/.kokoro/samples-test.sh | 2 +- .../error-reporting/.kokoro/system-test.sh | 2 +- handwritten/error-reporting/.kokoro/test.sh | 2 +- 7 files changed, 24 insertions(+), 7 deletions(-) create mode 100644 handwritten/error-reporting/.github/sync-repo-settings.yaml diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index b4c08f9a4a2..9017db80d17 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:f74e740638e66be7ced1540626217dbb72980eb73885b2339a70592f38c9ff2c -# created: 2022-04-06T18:36:33.987617127Z + digest: sha256:d106724ad2a96daa1b8d88de101ba50bdb30b8df62ffa0aa2b451d93b4556641 +# created: 2022-04-20T16:59:29.058398639Z diff --git a/handwritten/error-reporting/.github/sync-repo-settings.yaml b/handwritten/error-reporting/.github/sync-repo-settings.yaml new file mode 100644 index 00000000000..1b36268333a --- /dev/null +++ b/handwritten/error-reporting/.github/sync-repo-settings.yaml @@ -0,0 +1,17 @@ +branchProtectionRules: + - pattern: main + isAdminEnforced: true + requiredApprovingReviewCount: 1 + requiresCodeOwnerReviews: true + requiresStrictStatusChecks: false + requiredStatusCheckContexts: + - "ci/kokoro: Samples test" + - "ci/kokoro: System test" + - docs + - lint + - test (10) + - test (12) + - test (14) + - cla/google + - windows + - OwlBot Post Processor diff --git a/handwritten/error-reporting/.kokoro/common.cfg b/handwritten/error-reporting/.kokoro/common.cfg index ea2265473b2..eb54e947e9f 100644 --- a/handwritten/error-reporting/.kokoro/common.cfg +++ b/handwritten/error-reporting/.kokoro/common.cfg @@ -16,7 +16,7 @@ build_file: "nodejs-error-reporting/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:12-user" } env_vars: { key: "TRAMPOLINE_BUILD_FILE" diff --git a/handwritten/error-reporting/.kokoro/release/docs.cfg b/handwritten/error-reporting/.kokoro/release/docs.cfg index 840d0db4010..55fcee6eced 100644 --- a/handwritten/error-reporting/.kokoro/release/docs.cfg +++ b/handwritten/error-reporting/.kokoro/release/docs.cfg @@ -11,7 +11,7 @@ before_action { # doc publications use a Python image. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:12-user" } # Download trampoline resources. diff --git a/handwritten/error-reporting/.kokoro/samples-test.sh b/handwritten/error-reporting/.kokoro/samples-test.sh index f249d3e4a2e..fbc058a4ec4 100755 --- a/handwritten/error-reporting/.kokoro/samples-test.sh +++ b/handwritten/error-reporting/.kokoro/samples-test.sh @@ -56,7 +56,7 @@ fi # codecov combines coverage across integration and unit tests. Include # the logic below for any environment you wish to collect coverage for: -COVERAGE_NODE=10 +COVERAGE_NODE=12 if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then NYC_BIN=./node_modules/nyc/bin/nyc.js if [ -f "$NYC_BIN" ]; then diff --git a/handwritten/error-reporting/.kokoro/system-test.sh b/handwritten/error-reporting/.kokoro/system-test.sh index 0a840452084..87fa0653d76 100755 --- a/handwritten/error-reporting/.kokoro/system-test.sh +++ b/handwritten/error-reporting/.kokoro/system-test.sh @@ -49,7 +49,7 @@ npm run system-test # codecov combines coverage across integration and unit tests. Include # the logic below for any environment you wish to collect coverage for: -COVERAGE_NODE=10 +COVERAGE_NODE=12 if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then NYC_BIN=./node_modules/nyc/bin/nyc.js if [ -f "$NYC_BIN" ]; then diff --git a/handwritten/error-reporting/.kokoro/test.sh b/handwritten/error-reporting/.kokoro/test.sh index af1ce7e33ca..a5c7ac04cd3 100755 --- a/handwritten/error-reporting/.kokoro/test.sh +++ b/handwritten/error-reporting/.kokoro/test.sh @@ -39,7 +39,7 @@ npm test # codecov combines coverage across integration and unit tests. Include # the logic below for any environment you wish to collect coverage for: -COVERAGE_NODE=10 +COVERAGE_NODE=12 if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then NYC_BIN=./node_modules/nyc/bin/nyc.js if [ -f "$NYC_BIN" ]; then From e8f87b5e4a57fac8df03f9c846edbb68589abdfc Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 21 Apr 2022 12:06:37 -0700 Subject: [PATCH 448/527] chore(main): release 2.0.5 (#636) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- handwritten/error-reporting/CHANGELOG.md | 7 +++++++ handwritten/error-reporting/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/CHANGELOG.md b/handwritten/error-reporting/CHANGELOG.md index 99a07f470c2..09683c45566 100644 --- a/handwritten/error-reporting/CHANGELOG.md +++ b/handwritten/error-reporting/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/@google-cloud/error-reporting?activeTab=versions +### [2.0.5](https://github.com/googleapis/nodejs-error-reporting/compare/v2.0.4...v2.0.5) (2022-04-21) + + +### Bug Fixes + +* Reenable staleness bot ([#632](https://github.com/googleapis/nodejs-error-reporting/issues/632)) ([b56836e](https://github.com/googleapis/nodejs-error-reporting/commit/b56836e8b16b79ae7969096e2166efce3125fc89)) + ### [2.0.4](https://www.github.com/googleapis/nodejs-error-reporting/compare/v2.0.3...v2.0.4) (2021-10-04) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 3303c76f4c4..31ecf5d14a2 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/error-reporting", "description": "Error Reporting Client Library for Node.js", - "version": "2.0.4", + "version": "2.0.5", "license": "Apache-2.0", "author": "Google Inc.", "engines": { From eba45e94bbba69c1b42cf22b5c16755e9badb94f Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 21 Apr 2022 15:05:36 -0700 Subject: [PATCH 449/527] build: make ci testing conditional on engines field in package.json, move configs to Node 12 (#1418) (#633) * build: make ci testing conditional on engines field in package.json, move configs to Node 12 Co-authored-by: Benjamin E. Coe Source-Link: https://github.com/googleapis/synthtool/commit/2800f5a85af0e0399c71a63169a53ade3e0d42f6 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:dc7bfb4c4bf50496abbdd24bd9e4aaa833dc75248c0a9e3a7f807feda5258873 Co-authored-by: Owl Bot Co-authored-by: Benjamin E. Coe Co-authored-by: losalex <90795544+losalex@users.noreply.github.com> --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index 9017db80d17..716a7268d3a 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -15,3 +15,4 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest digest: sha256:d106724ad2a96daa1b8d88de101ba50bdb30b8df62ffa0aa2b451d93b4556641 # created: 2022-04-20T16:59:29.058398639Z + From 8b1c7f71951491a9a216a7a0e3a3437e9bcbd14b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 2 May 2022 18:30:23 +0200 Subject: [PATCH 450/527] chore(deps): update dependency @types/mocha to v9 (#639) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 31ecf5d14a2..718640f0279 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -45,7 +45,7 @@ "@types/hapi__hapi": "^20.0.5", "@types/json-stable-stringify": "^1.0.32", "@types/koa": "^2.0.48", - "@types/mocha": "^8.0.0", + "@types/mocha": "^9.0.0", "@types/node": "^16.0.0", "@types/once": "^1.4.0", "@types/proxyquire": "^1.3.28", From c9da6598c4aa9dedb15c68c8ac6b4c57db8f4f1c Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Fri, 6 May 2022 09:06:19 -0700 Subject: [PATCH 451/527] build: update auto approve to v2, remove release autoapproving (#1432) (#641) * build: update auto-approve file to v2 Source-Link: https://github.com/googleapis/synthtool/commit/19eb6fc07dc178a682da6d186dc874017a166438 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:b9e4584a1fe3c749e3c37c92497b13dce653b2e694f0261f0610eb0e15941357 Co-authored-by: Owl Bot --- .../error-reporting/.github/.OwlBot.lock.yaml | 5 ++--- .../error-reporting/.github/auto-approve.yml | 15 +++------------ 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index 716a7268d3a..9acbabb1b4c 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -13,6 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:d106724ad2a96daa1b8d88de101ba50bdb30b8df62ffa0aa2b451d93b4556641 -# created: 2022-04-20T16:59:29.058398639Z - + digest: sha256:b9e4584a1fe3c749e3c37c92497b13dce653b2e694f0261f0610eb0e15941357 +# created: 2022-05-05T21:08:42.530332893Z diff --git a/handwritten/error-reporting/.github/auto-approve.yml b/handwritten/error-reporting/.github/auto-approve.yml index 49cf942280a..4cd91cc16ae 100644 --- a/handwritten/error-reporting/.github/auto-approve.yml +++ b/handwritten/error-reporting/.github/auto-approve.yml @@ -1,12 +1,3 @@ -rules: -- author: "release-please[bot]" - title: "^chore: release" - changedFiles: - - "package\\.json$" - - "CHANGELOG\\.md$" - maxFiles: 3 -- author: "renovate-bot" - title: "^(fix|chore)\\(deps\\):" - changedFiles: - - "package\\.json$" - maxFiles: 2 +processes: + - "NodeDependency" + - "OwlBotTemplateChanges" From 27c034b26e7c2aca5f4191d39c8d6bb778739a7a Mon Sep 17 00:00:00 2001 From: sofisl <55454395+sofisl@users.noreply.github.com> Date: Thu, 19 May 2022 17:45:03 -0700 Subject: [PATCH 452/527] build!: update library to use Node 12 (#644) * build!: Update library to use Node 12 Co-authored-by: Summer Ji Co-authored-by: Owl Bot --- .../.github/sync-repo-settings.yaml | 2 +- .../.kokoro/continuous/node10/common.cfg | 34 ------------------- .../.kokoro/continuous/node10/docs.cfg | 4 --- .../.kokoro/continuous/node10/test.cfg | 9 ----- .../.kokoro/continuous/node8/common.cfg | 24 ------------- .../.kokoro/continuous/node8/test.cfg | 0 .../.kokoro/presubmit/node10/common.cfg | 34 ------------------- .../.kokoro/presubmit/node10/docs.cfg | 4 --- .../.kokoro/presubmit/node10/lint.cfg | 4 --- .../.kokoro/presubmit/node10/test.cfg | 0 .../.kokoro/presubmit/node8/common.cfg | 24 ------------- .../.kokoro/presubmit/node8/test.cfg | 0 handwritten/error-reporting/package.json | 10 +++--- .../error-reporting/src/configuration.ts | 2 +- .../error-reporting/src/interfaces/manual.ts | 4 ++- .../system-test/error-reporting.ts | 2 +- 16 files changed, 11 insertions(+), 146 deletions(-) delete mode 100644 handwritten/error-reporting/.kokoro/continuous/node10/common.cfg delete mode 100644 handwritten/error-reporting/.kokoro/continuous/node10/docs.cfg delete mode 100644 handwritten/error-reporting/.kokoro/continuous/node10/test.cfg delete mode 100644 handwritten/error-reporting/.kokoro/continuous/node8/common.cfg delete mode 100644 handwritten/error-reporting/.kokoro/continuous/node8/test.cfg delete mode 100644 handwritten/error-reporting/.kokoro/presubmit/node10/common.cfg delete mode 100644 handwritten/error-reporting/.kokoro/presubmit/node10/docs.cfg delete mode 100644 handwritten/error-reporting/.kokoro/presubmit/node10/lint.cfg delete mode 100644 handwritten/error-reporting/.kokoro/presubmit/node10/test.cfg delete mode 100644 handwritten/error-reporting/.kokoro/presubmit/node8/common.cfg delete mode 100644 handwritten/error-reporting/.kokoro/presubmit/node8/test.cfg diff --git a/handwritten/error-reporting/.github/sync-repo-settings.yaml b/handwritten/error-reporting/.github/sync-repo-settings.yaml index 1b36268333a..d1e8b5e6e1a 100644 --- a/handwritten/error-reporting/.github/sync-repo-settings.yaml +++ b/handwritten/error-reporting/.github/sync-repo-settings.yaml @@ -9,9 +9,9 @@ branchProtectionRules: - "ci/kokoro: System test" - docs - lint - - test (10) - test (12) - test (14) + - test (16) - cla/google - windows - OwlBot Post Processor diff --git a/handwritten/error-reporting/.kokoro/continuous/node10/common.cfg b/handwritten/error-reporting/.kokoro/continuous/node10/common.cfg deleted file mode 100644 index 2a2086b0fe8..00000000000 --- a/handwritten/error-reporting/.kokoro/continuous/node10/common.cfg +++ /dev/null @@ -1,34 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - } -} - -# Bring in codecov.io token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "dpebot_codecov_token" - } - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "nodejs-error-reporting/.kokoro/trampoline_v2.sh" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" -} -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-error-reporting/.kokoro/test.sh" -} diff --git a/handwritten/error-reporting/.kokoro/continuous/node10/docs.cfg b/handwritten/error-reporting/.kokoro/continuous/node10/docs.cfg deleted file mode 100644 index 6205bfd6827..00000000000 --- a/handwritten/error-reporting/.kokoro/continuous/node10/docs.cfg +++ /dev/null @@ -1,4 +0,0 @@ -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-error-reporting/.kokoro/docs.sh" -} diff --git a/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg b/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg deleted file mode 100644 index 609c0cf0a27..00000000000 --- a/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg +++ /dev/null @@ -1,9 +0,0 @@ -# Bring in codecov.io token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "dpebot_codecov_token" - } - } -} diff --git a/handwritten/error-reporting/.kokoro/continuous/node8/common.cfg b/handwritten/error-reporting/.kokoro/continuous/node8/common.cfg deleted file mode 100644 index a605e42f84e..00000000000 --- a/handwritten/error-reporting/.kokoro/continuous/node8/common.cfg +++ /dev/null @@ -1,24 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:8-user" -} -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-error-reporting/.kokoro/test.sh" -} diff --git a/handwritten/error-reporting/.kokoro/continuous/node8/test.cfg b/handwritten/error-reporting/.kokoro/continuous/node8/test.cfg deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/handwritten/error-reporting/.kokoro/presubmit/node10/common.cfg b/handwritten/error-reporting/.kokoro/presubmit/node10/common.cfg deleted file mode 100644 index 2a2086b0fe8..00000000000 --- a/handwritten/error-reporting/.kokoro/presubmit/node10/common.cfg +++ /dev/null @@ -1,34 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - } -} - -# Bring in codecov.io token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "dpebot_codecov_token" - } - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "nodejs-error-reporting/.kokoro/trampoline_v2.sh" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" -} -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-error-reporting/.kokoro/test.sh" -} diff --git a/handwritten/error-reporting/.kokoro/presubmit/node10/docs.cfg b/handwritten/error-reporting/.kokoro/presubmit/node10/docs.cfg deleted file mode 100644 index 6205bfd6827..00000000000 --- a/handwritten/error-reporting/.kokoro/presubmit/node10/docs.cfg +++ /dev/null @@ -1,4 +0,0 @@ -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-error-reporting/.kokoro/docs.sh" -} diff --git a/handwritten/error-reporting/.kokoro/presubmit/node10/lint.cfg b/handwritten/error-reporting/.kokoro/presubmit/node10/lint.cfg deleted file mode 100644 index 1a6295c7bd4..00000000000 --- a/handwritten/error-reporting/.kokoro/presubmit/node10/lint.cfg +++ /dev/null @@ -1,4 +0,0 @@ -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-error-reporting/.kokoro/lint.sh" -} diff --git a/handwritten/error-reporting/.kokoro/presubmit/node10/test.cfg b/handwritten/error-reporting/.kokoro/presubmit/node10/test.cfg deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/handwritten/error-reporting/.kokoro/presubmit/node8/common.cfg b/handwritten/error-reporting/.kokoro/presubmit/node8/common.cfg deleted file mode 100644 index a605e42f84e..00000000000 --- a/handwritten/error-reporting/.kokoro/presubmit/node8/common.cfg +++ /dev/null @@ -1,24 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:8-user" -} -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-error-reporting/.kokoro/test.sh" -} diff --git a/handwritten/error-reporting/.kokoro/presubmit/node8/test.cfg b/handwritten/error-reporting/.kokoro/presubmit/node8/test.cfg deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 718640f0279..54f44cfedcd 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -5,7 +5,7 @@ "license": "Apache-2.0", "author": "Google Inc.", "engines": { - "node": ">=10" + "node": ">=12.0.0" }, "repository": "googleapis/nodejs-error-reporting", "main": "./build/src/index.js", @@ -39,6 +39,7 @@ }, "devDependencies": { "@compodoc/compodoc": "^1.1.10", + "@hapi/hapi": "^20.1.0", "@types/boom": "^7.2.1", "@types/console-log-level": "^1.4.0", "@types/express": "^4.17.0", @@ -55,18 +56,17 @@ "c8": "^7.0.0", "codecov": "^3.5.0", "express": "^4.17.1", - "gts": "^2.0.0", - "@hapi/hapi": "^20.1.0", + "gts": "^3.1.0", "js-green-licenses": "^3.0.0", "json-stable-stringify": "^1.0.1", "koa": "^2.7.0", "linkinator": "^2.0.0", - "mocha": "^8.0.0", + "mocha": "^9.2.2", "nock": "^13.0.0", "post-install-check": "0.0.1", "proxyquire": "^2.1.0", "restify": "^8.3.3", - "typescript": "^3.8.3", + "typescript": "^4.6.4", "uuid": "^8.0.0" } } diff --git a/handwritten/error-reporting/src/configuration.ts b/handwritten/error-reporting/src/configuration.ts index 4c5bb656e65..3dbbba7edce 100644 --- a/handwritten/error-reporting/src/configuration.ts +++ b/handwritten/error-reporting/src/configuration.ts @@ -412,7 +412,7 @@ export class Configuration { if (typeof this._givenConfiguration.projectId === 'string') { this._projectId = this._givenConfiguration.projectId!; } else if (typeof this._givenConfiguration.projectId === 'number') { - this._projectId = this._givenConfiguration.projectId!.toString(); + this._projectId = String(this._givenConfiguration!.projectId); } } return this._projectId; diff --git a/handwritten/error-reporting/src/interfaces/manual.ts b/handwritten/error-reporting/src/interfaces/manual.ts index b5d3dec99f6..779fb8a0b8d 100644 --- a/handwritten/error-reporting/src/interfaces/manual.ts +++ b/handwritten/error-reporting/src/interfaces/manual.ts @@ -124,7 +124,9 @@ export function handlerSetup( // The API expects the error to contain a stack trace. Thus we // append the stack trace of the point where the error was // constructed. See the `message-builder.js` file for more details. - const stackErr = err as ErrorMessage & {_autoGeneratedStackTrace: string}; + const stackErr = err as ErrorMessage & { + _autoGeneratedStackTrace?: string; + }; if (stackErr._autoGeneratedStackTrace) { err.setMessage(err.message + '\n' + stackErr._autoGeneratedStackTrace); // Delete the property so that if the ErrorMessage is reported a diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index 6c934c7b904..332684671e3 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -604,7 +604,7 @@ describe('error-reporting', () => { timeout: number ) { function expectedTopOfStack() { - return new Promise((resolve, reject) => { + return new Promise((resolve, reject) => { errors.report( errOb, undefined, From d72a2ca25baea30af297d8b2e23afb1b1c602586 Mon Sep 17 00:00:00 2001 From: sofisl <55454395+sofisl@users.noreply.github.com> Date: Fri, 20 May 2022 12:35:02 -0700 Subject: [PATCH 453/527] feat!: promote to stable (#646) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat!: promote to stable * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- handwritten/error-reporting/.repo-metadata.json | 2 +- handwritten/error-reporting/README.md | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/handwritten/error-reporting/.repo-metadata.json b/handwritten/error-reporting/.repo-metadata.json index dad4d9c1fdf..32bd9181c6b 100644 --- a/handwritten/error-reporting/.repo-metadata.json +++ b/handwritten/error-reporting/.repo-metadata.json @@ -4,7 +4,7 @@ "product_documentation": "https://cloud.google.com/error-reporting", "client_documentation": "https://cloud.google.com/nodejs/docs/reference/error-reporting/latest", "issue_tracker": "https://issuetracker.google.com/savedsearches/559780", - "release_level": "preview", + "release_level": "stable", "language": "nodejs", "repo": "googleapis/nodejs-error-reporting", "distribution_name": "@google-cloud/error-reporting", diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index dcb760fa702..1eb84bbc195 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -4,7 +4,7 @@ # [Error Reporting: Node.js Client](https://github.com/googleapis/nodejs-error-reporting) -[![release level](https://img.shields.io/badge/release%20level-preview-yellow.svg?style=flat)](https://cloud.google.com/terms/launch-stages) +[![release level](https://img.shields.io/badge/release%20level-stable-brightgreen.svg?style=flat)](https://cloud.google.com/terms/launch-stages) [![npm version](https://img.shields.io/npm/v/@google-cloud/error-reporting.svg)](https://www.npmjs.org/package/@google-cloud/error-reporting) @@ -391,13 +391,14 @@ This library follows [Semantic Versioning](http://semver.org/). +This library is considered to be **stable**. The code surface will not change in backwards-incompatible ways +unless absolutely necessary (e.g. because of critical security issues) or with +an extensive deprecation period. Issues and requests against **stable** libraries +are addressed with the highest priority. -This library is considered to be in **preview**. This means it is still a -work-in-progress and under active development. Any release is subject to -backwards-incompatible changes at any time. More Information: [Google Cloud Platform Launch Stages][launch_stages] From 56d7f601300a3faf7fba135c43f3a07735e3ef48 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 25 May 2022 09:56:31 -0700 Subject: [PATCH 454/527] chore(main): release 3.0.0 (#645) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- handwritten/error-reporting/CHANGELOG.md | 17 +++++++++++++++++ handwritten/error-reporting/package.json | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/CHANGELOG.md b/handwritten/error-reporting/CHANGELOG.md index 09683c45566..cd01e32807b 100644 --- a/handwritten/error-reporting/CHANGELOG.md +++ b/handwritten/error-reporting/CHANGELOG.md @@ -4,6 +4,23 @@ [1]: https://www.npmjs.com/package/@google-cloud/error-reporting?activeTab=versions +## [3.0.0](https://github.com/googleapis/nodejs-error-reporting/compare/v2.0.5...v3.0.0) (2022-05-20) + + +### ⚠ BREAKING CHANGES + +* promote to stable (#646) +* update library to use Node 12 (#644) + +### Features + +* promote to stable ([#646](https://github.com/googleapis/nodejs-error-reporting/issues/646)) ([da4c8cd](https://github.com/googleapis/nodejs-error-reporting/commit/da4c8cd411c568fc7c37dce71ed1090ea2279562)) + + +### Build System + +* update library to use Node 12 ([#644](https://github.com/googleapis/nodejs-error-reporting/issues/644)) ([a583341](https://github.com/googleapis/nodejs-error-reporting/commit/a583341c5b92848eb9db193aeca8af64c6d6c3ff)) + ### [2.0.5](https://github.com/googleapis/nodejs-error-reporting/compare/v2.0.4...v2.0.5) (2022-04-21) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 54f44cfedcd..c8d37403b48 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/error-reporting", "description": "Error Reporting Client Library for Node.js", - "version": "2.0.5", + "version": "3.0.0", "license": "Apache-2.0", "author": "Google Inc.", "engines": { From f54d233aad5200f7d1641a6c460181e9f7c01b03 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 7 Jun 2022 22:06:29 +0000 Subject: [PATCH 455/527] build(node): add new jsteam + enforce branches up-to-date (#1451) (#647) Source-Link: https://github.com/googleapis/synthtool/commit/cd785291d51d97003d1263056cd2b9de1849a0ab Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:ddb19a6df6c1fa081bc99fb29658f306dd64668bc26f75d1353b28296f3a78e6 --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 4 ++-- .../error-reporting/.github/sync-repo-settings.yaml | 9 ++++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index 9acbabb1b4c..f3ca5561cb5 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:b9e4584a1fe3c749e3c37c92497b13dce653b2e694f0261f0610eb0e15941357 -# created: 2022-05-05T21:08:42.530332893Z + digest: sha256:ddb19a6df6c1fa081bc99fb29658f306dd64668bc26f75d1353b28296f3a78e6 +# created: 2022-06-07T21:18:30.024751809Z diff --git a/handwritten/error-reporting/.github/sync-repo-settings.yaml b/handwritten/error-reporting/.github/sync-repo-settings.yaml index d1e8b5e6e1a..4a30a08e54c 100644 --- a/handwritten/error-reporting/.github/sync-repo-settings.yaml +++ b/handwritten/error-reporting/.github/sync-repo-settings.yaml @@ -3,7 +3,7 @@ branchProtectionRules: isAdminEnforced: true requiredApprovingReviewCount: 1 requiresCodeOwnerReviews: true - requiresStrictStatusChecks: false + requiresStrictStatusChecks: true requiredStatusCheckContexts: - "ci/kokoro: Samples test" - "ci/kokoro: System test" @@ -15,3 +15,10 @@ branchProtectionRules: - cla/google - windows - OwlBot Post Processor +permissionRules: + - team: yoshi-admins + permission: admin + - team: jsteam-admins + permission: admin + - team: jsteam + permission: push From 5f60f39f2f422c634cb20fa8cd112dee22868e3b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 9 Jun 2022 23:54:24 +0200 Subject: [PATCH 456/527] fix(deps): update dependency @google-cloud/common to v4 (#648) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index c8d37403b48..b3b66ef0e96 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -34,7 +34,7 @@ "precompile": "gts clean" }, "dependencies": { - "@google-cloud/common": "^3.0.0", + "@google-cloud/common": "^4.0.0", "console-log-level": "^1.4.1" }, "devDependencies": { From 52c49891f56353d0df200d7fbe8cec227caa6297 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 10 Jun 2022 17:00:09 -0700 Subject: [PATCH 457/527] chore(main): release 3.0.1 (#649) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- handwritten/error-reporting/CHANGELOG.md | 7 +++++++ handwritten/error-reporting/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/CHANGELOG.md b/handwritten/error-reporting/CHANGELOG.md index cd01e32807b..372da2b800d 100644 --- a/handwritten/error-reporting/CHANGELOG.md +++ b/handwritten/error-reporting/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/@google-cloud/error-reporting?activeTab=versions +## [3.0.1](https://github.com/googleapis/nodejs-error-reporting/compare/v3.0.0...v3.0.1) (2022-06-09) + + +### Bug Fixes + +* **deps:** update dependency @google-cloud/common to v4 ([#648](https://github.com/googleapis/nodejs-error-reporting/issues/648)) ([8572ecb](https://github.com/googleapis/nodejs-error-reporting/commit/8572ecb884009002475d745af746c8ee7b805bcb)) + ## [3.0.0](https://github.com/googleapis/nodejs-error-reporting/compare/v2.0.5...v3.0.0) (2022-05-20) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index b3b66ef0e96..2b43f3e8b0d 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/error-reporting", "description": "Error Reporting Client Library for Node.js", - "version": "3.0.0", + "version": "3.0.1", "license": "Apache-2.0", "author": "Google Inc.", "engines": { From 66ebefc3b483c1933b841e20f1ba97efa1e101d9 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 8 Jul 2022 22:58:42 +0200 Subject: [PATCH 458/527] chore(deps): update dependency linkinator to v4 (#650) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [linkinator](https://togithub.com/JustinBeckwith/linkinator) | [`^2.0.0` -> `^4.0.0`](https://renovatebot.com/diffs/npm/linkinator/2.16.2/4.0.0) | [![age](https://badges.renovateapi.com/packages/npm/linkinator/4.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/linkinator/4.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/linkinator/4.0.0/compatibility-slim/2.16.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/linkinator/4.0.0/confidence-slim/2.16.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
JustinBeckwith/linkinator ### [`v4.0.0`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v4.0.0) [Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.1.0...v4.0.0) ##### Features - create new release with notes ([#​508](https://togithub.com/JustinBeckwith/linkinator/issues/508)) ([2cab633](https://togithub.com/JustinBeckwith/linkinator/commit/2cab633c9659eb10794a4bac06f8b0acdc3e2c0c)) ##### BREAKING CHANGES - The commits in [#​507](https://togithub.com/JustinBeckwith/linkinator/issues/507) and [#​506](https://togithub.com/JustinBeckwith/linkinator/issues/506) both had breaking changes. They included dropping support for Node.js 12.x and updating the CSV export to be streaming, and to use a new way of writing the CSV file. This is an empty to commit using the `BREAKING CHANGE` format in the commit message to ensure a release is triggered. ### [`v3.1.0`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.1.0) [Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.0.6...v3.1.0) ##### Features - allow --skip to be defined multiple times ([#​399](https://togithub.com/JustinBeckwith/linkinator/issues/399)) ([5ca5a46](https://togithub.com/JustinBeckwith/linkinator/commit/5ca5a461508e688de12e5ae6b4cfb6565f832ebf)) ### [`v3.0.6`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.0.6) [Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.0.5...v3.0.6) ##### Bug Fixes - **deps:** upgrade node-glob to v8 ([#​397](https://togithub.com/JustinBeckwith/linkinator/issues/397)) ([d334dc6](https://togithub.com/JustinBeckwith/linkinator/commit/d334dc6734cd7c2b73d7ed3dea0550a6c3072ad5)) ### [`v3.0.5`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.0.5) [Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.0.4...v3.0.5) ##### Bug Fixes - **deps:** upgrade to htmlparser2 v8.0.1 ([#​396](https://togithub.com/JustinBeckwith/linkinator/issues/396)) ([ba3b9a8](https://togithub.com/JustinBeckwith/linkinator/commit/ba3b9a8a9b19d39af6ed91790135e833b80c1eb6)) ### [`v3.0.4`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.0.4) [Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.0.3...v3.0.4) ##### Bug Fixes - **deps:** update dependency gaxios to v5 ([#​391](https://togithub.com/JustinBeckwith/linkinator/issues/391)) ([48af50e](https://togithub.com/JustinBeckwith/linkinator/commit/48af50e787731204aeb7eff41325c62291311e45)) ### [`v3.0.3`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.0.3) [Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.0.2...v3.0.3) ##### Bug Fixes - export getConfig from index ([#​371](https://togithub.com/JustinBeckwith/linkinator/issues/371)) ([0bc0355](https://togithub.com/JustinBeckwith/linkinator/commit/0bc0355c7e2ea457f247e6b52d1577b8c4ecb3a1)) ### [`v3.0.2`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.0.2) [Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.0.1...v3.0.2) ##### Bug Fixes - allow server root with trailing slash ([#​370](https://togithub.com/JustinBeckwith/linkinator/issues/370)) ([8adf6b0](https://togithub.com/JustinBeckwith/linkinator/commit/8adf6b025fda250e38461f1cdad40fe08c3b3b7c)) ### [`v3.0.1`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.0.1) [Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.0.0...v3.0.1) ##### Bug Fixes - decode path parts in local web server ([#​369](https://togithub.com/JustinBeckwith/linkinator/issues/369)) ([4696a0c](https://togithub.com/JustinBeckwith/linkinator/commit/4696a0c38c341b178ed815f47371fca955979feb)) ### [`v3.0.0`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.0.0) [Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v2.16.2...v3.0.0) ##### Bug Fixes - **deps:** update dependency chalk to v5 ([#​362](https://togithub.com/JustinBeckwith/linkinator/issues/362)) ([4b17a8d](https://togithub.com/JustinBeckwith/linkinator/commit/4b17a8d87b649eaf813428f8ee6955e1d21dae4f)) - feat!: convert to es modules, drop node 10 ([#​359](https://togithub.com/JustinBeckwith/linkinator/issues/359)) ([efee299](https://togithub.com/JustinBeckwith/linkinator/commit/efee299ab8a805accef751eecf8538915a4e7783)), closes [#​359](https://togithub.com/JustinBeckwith/linkinator/issues/359) ##### BREAKING CHANGES - this module now requires node.js 12 and above, and has moved to es modules by default.
--- ### Configuration 📅 **Schedule**: Branch creation - "after 9am and before 3pm" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-error-reporting). --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 2b43f3e8b0d..2c7ee8511d4 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -60,7 +60,7 @@ "js-green-licenses": "^3.0.0", "json-stable-stringify": "^1.0.1", "koa": "^2.7.0", - "linkinator": "^2.0.0", + "linkinator": "^4.0.0", "mocha": "^9.2.2", "nock": "^13.0.0", "post-install-check": "0.0.1", From 63c9d626922b812f7c164f91a6c025cd334256f3 Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Tue, 23 Aug 2022 14:52:14 -0500 Subject: [PATCH 459/527] chore: added extra variables owlbot kokoro configs (#652) --- .../error-reporting/.kokoro/common.cfg | 20 +++++++++++++++++ .../.kokoro/common_env_vars.cfg | 19 ++++++++++++++++ .../.kokoro/continuous/node12/common.cfg | 20 +++++++++++++++++ .../.kokoro/release/common.cfg | 13 +++++++++++ handwritten/error-reporting/owlbot.py | 22 +++++++++++++++++++ 5 files changed, 94 insertions(+) create mode 100644 handwritten/error-reporting/.kokoro/common_env_vars.cfg diff --git a/handwritten/error-reporting/.kokoro/common.cfg b/handwritten/error-reporting/.kokoro/common.cfg index eb54e947e9f..5a957de6534 100644 --- a/handwritten/error-reporting/.kokoro/common.cfg +++ b/handwritten/error-reporting/.kokoro/common.cfg @@ -22,3 +22,23 @@ env_vars: { key: "TRAMPOLINE_BUILD_FILE" value: "github/nodejs-error-reporting/.kokoro/test.sh" } + + +############################################# +# this section merged from .kokoro/common_env_vars.cfg using owlbot.py + +env_vars: { + key: "PRODUCT_AREA_LABEL" + value: "observability" +} +env_vars: { + key: "PRODUCT_LABEL" + value: "error-reporting" +} +env_vars: { + key: "LANGUAGE_LABEL" + value: "nodejs" +} + +################################################### + diff --git a/handwritten/error-reporting/.kokoro/common_env_vars.cfg b/handwritten/error-reporting/.kokoro/common_env_vars.cfg new file mode 100644 index 00000000000..3d90d53585b --- /dev/null +++ b/handwritten/error-reporting/.kokoro/common_env_vars.cfg @@ -0,0 +1,19 @@ + +############################################# +# this section merged from .kokoro/common_env_vars.cfg using owlbot.py + +env_vars: { + key: "PRODUCT_AREA_LABEL" + value: "observability" +} +env_vars: { + key: "PRODUCT_LABEL" + value: "error-reporting" +} +env_vars: { + key: "LANGUAGE_LABEL" + value: "nodejs" +} + +################################################### + diff --git a/handwritten/error-reporting/.kokoro/continuous/node12/common.cfg b/handwritten/error-reporting/.kokoro/continuous/node12/common.cfg index eb54e947e9f..5a957de6534 100644 --- a/handwritten/error-reporting/.kokoro/continuous/node12/common.cfg +++ b/handwritten/error-reporting/.kokoro/continuous/node12/common.cfg @@ -22,3 +22,23 @@ env_vars: { key: "TRAMPOLINE_BUILD_FILE" value: "github/nodejs-error-reporting/.kokoro/test.sh" } + + +############################################# +# this section merged from .kokoro/common_env_vars.cfg using owlbot.py + +env_vars: { + key: "PRODUCT_AREA_LABEL" + value: "observability" +} +env_vars: { + key: "PRODUCT_LABEL" + value: "error-reporting" +} +env_vars: { + key: "LANGUAGE_LABEL" + value: "nodejs" +} + +################################################### + diff --git a/handwritten/error-reporting/.kokoro/release/common.cfg b/handwritten/error-reporting/.kokoro/release/common.cfg index 3ba2eb095fe..a19d28aff57 100644 --- a/handwritten/error-reporting/.kokoro/release/common.cfg +++ b/handwritten/error-reporting/.kokoro/release/common.cfg @@ -6,3 +6,16 @@ before_action { } } } + +env_vars: { + key: "PRODUCT_AREA_LABEL" + value: "observability" +} +env_vars: { + key: "PRODUCT_LABEL" + value: "error-reporting" +} +env_vars: { + key: "LANGUAGE_LABEL" + value: "nodejs" +} diff --git a/handwritten/error-reporting/owlbot.py b/handwritten/error-reporting/owlbot.py index da18e17fc4e..f471e11dc72 100644 --- a/handwritten/error-reporting/owlbot.py +++ b/handwritten/error-reporting/owlbot.py @@ -16,6 +16,7 @@ import synthtool.gcp as gcp import synthtool.languages.node as node import logging +import os logging.basicConfig(level=logging.DEBUG) @@ -23,3 +24,24 @@ templates = common_templates.node_library() s.copy(templates, excludes=[".github/auto-label.yaml"]) node.fix_hermetic() + + +# -------------------------------------------------------------------------- +# Modify test configs +# -------------------------------------------------------------------------- + +# add shared environment variables to test configs +s.move( + ".kokoro/common_env_vars.cfg", + ".kokoro/common.cfg", + merge=lambda src, dst, _, : f"{dst}\n{src}", +) +for path, subdirs, files in os.walk(f".kokoro/continuous"): + for name in files: + if name == "common.cfg": + file_path = os.path.join(path, name) + s.move( + ".kokoro/common_env_vars.cfg", + file_path, + merge=lambda src, dst, _, : f"{dst}\n{src}", + ) From f9d30c4314fb374555738f4d6ce7c53bc4096cb2 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 24 Aug 2022 15:02:22 -0700 Subject: [PATCH 460/527] fix: add hashes to requirements.txt (#1544) (#654) * fix: add hashes to requirements.txt and update Docker images so they require hashes. * fix: add hashes to docker/owlbot/java/src * Squashed commit of the following: commit ab7384ea1c30df8ec2e175566ef2508e6c3a2acb Author: Jeffrey Rennie Date: Tue Aug 23 11:38:48 2022 -0700 fix: remove pip install statements (#1546) because the tools are already installed in the docker image as of https://github.com/googleapis/testing-infra-docker/pull/227 commit 302667c9ab7210da42cc337e8f39fe1ea99049ef Author: WhiteSource Renovate Date: Tue Aug 23 19:50:28 2022 +0200 chore(deps): update dependency setuptools to v65.2.0 (#1541) Co-authored-by: Anthonios Partheniou commit 6e9054fd91d1b500cae58ff72ee9aeb626077756 Author: WhiteSource Renovate Date: Tue Aug 23 19:42:51 2022 +0200 chore(deps): update dependency nbconvert to v7 (#1543) Co-authored-by: Anthonios Partheniou commit d229a1258999f599a90a9b674a1c5541e00db588 Author: Alexander Fenster Date: Mon Aug 22 15:04:53 2022 -0700 fix: update google-gax and remove obsolete deps (#1545) commit 13ce62621e70059b2f5e3a7bade735f91c53339c Author: Jeffrey Rennie Date: Mon Aug 22 11:08:21 2022 -0700 chore: remove release config and script (#1540) We don't release to pypi anymore. * chore: rollback java changes to move forward with other languages until Java's docker image is fixed Source-Link: https://github.com/googleapis/synthtool/commit/48263378ad6010ec2fc4d480af7b5d08170338c8 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:7fefeb9e517db2dd8c8202d9239ff6788d6852bc92dd3aac57a46059679ac9de Co-authored-by: Owl Bot --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 4 ++-- handwritten/error-reporting/.kokoro/publish.sh | 1 - handwritten/error-reporting/.kokoro/release/docs.sh | 1 - 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index f3ca5561cb5..cb86baf88fb 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:ddb19a6df6c1fa081bc99fb29658f306dd64668bc26f75d1353b28296f3a78e6 -# created: 2022-06-07T21:18:30.024751809Z + digest: sha256:7fefeb9e517db2dd8c8202d9239ff6788d6852bc92dd3aac57a46059679ac9de +# created: 2022-08-24T19:44:03.464675104Z diff --git a/handwritten/error-reporting/.kokoro/publish.sh b/handwritten/error-reporting/.kokoro/publish.sh index 77a5defb2b5..949e3e1d0c2 100755 --- a/handwritten/error-reporting/.kokoro/publish.sh +++ b/handwritten/error-reporting/.kokoro/publish.sh @@ -19,7 +19,6 @@ set -eo pipefail export NPM_CONFIG_PREFIX=${HOME}/.npm-global # Start the releasetool reporter -python3 -m pip install gcp-releasetool python3 -m releasetool publish-reporter-script > /tmp/publisher-script; source /tmp/publisher-script cd $(dirname $0)/.. diff --git a/handwritten/error-reporting/.kokoro/release/docs.sh b/handwritten/error-reporting/.kokoro/release/docs.sh index 4c866c86000..1d8f3f490a5 100755 --- a/handwritten/error-reporting/.kokoro/release/docs.sh +++ b/handwritten/error-reporting/.kokoro/release/docs.sh @@ -29,7 +29,6 @@ npm run docs # create docs.metadata, based on package.json and .repo-metadata.json. npm i json@9.0.6 -g -python3 -m pip install --user gcp-docuploader python3 -m docuploader create-metadata \ --name=$(cat .repo-metadata.json | json name) \ --version=$(cat package.json | json version) \ From 28e974642e947f8544f438dd45d924cdedd06213 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 25 Aug 2022 11:34:07 -0700 Subject: [PATCH 461/527] chore(main): release 3.0.2 (#655) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- handwritten/error-reporting/CHANGELOG.md | 7 +++++++ handwritten/error-reporting/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/CHANGELOG.md b/handwritten/error-reporting/CHANGELOG.md index 372da2b800d..7aaff2fb900 100644 --- a/handwritten/error-reporting/CHANGELOG.md +++ b/handwritten/error-reporting/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/@google-cloud/error-reporting?activeTab=versions +## [3.0.2](https://github.com/googleapis/nodejs-error-reporting/compare/v3.0.1...v3.0.2) (2022-08-24) + + +### Bug Fixes + +* add hashes to requirements.txt ([#1544](https://github.com/googleapis/nodejs-error-reporting/issues/1544)) ([#654](https://github.com/googleapis/nodejs-error-reporting/issues/654)) ([c0af3a2](https://github.com/googleapis/nodejs-error-reporting/commit/c0af3a2f0e009b3889901da518a78c520d8bee45)) + ## [3.0.1](https://github.com/googleapis/nodejs-error-reporting/compare/v3.0.0...v3.0.1) (2022-06-09) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 2c7ee8511d4..47e143b5940 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/error-reporting", "description": "Error Reporting Client Library for Node.js", - "version": "3.0.1", + "version": "3.0.2", "license": "Apache-2.0", "author": "Google Inc.", "engines": { From 31b92c869a4eafe0ada0692c752bc8a9ca690f3a Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Sun, 28 Aug 2022 12:23:27 -0700 Subject: [PATCH 462/527] fix: remove pip install statements (#1546) (#653) because the tools are already installed in the docker image as of https://github.com/googleapis/testing-infra-docker/pull/227 Source-Link: https://github.com/googleapis/synthtool/commit/ab7384ea1c30df8ec2e175566ef2508e6c3a2acb Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:bb493bf01d28519e82ab61c490c20122c85a7119c03a978ad0c34b4239fbad15 Co-authored-by: Owl Bot Co-authored-by: gcf-merge-on-green[bot] <60162190+gcf-merge-on-green[bot]@users.noreply.github.com> Co-authored-by: losalex <90795544+losalex@users.noreply.github.com> --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index cb86baf88fb..db304b7ac98 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -15,3 +15,4 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest digest: sha256:7fefeb9e517db2dd8c8202d9239ff6788d6852bc92dd3aac57a46059679ac9de # created: 2022-08-24T19:44:03.464675104Z + From dee8eb0c58a0623bddf11df04faa472ec9b8fe1c Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 8 Sep 2022 16:51:23 -0400 Subject: [PATCH 463/527] chore(main): release 3.0.3 (#657) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- handwritten/error-reporting/CHANGELOG.md | 7 +++++++ handwritten/error-reporting/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/CHANGELOG.md b/handwritten/error-reporting/CHANGELOG.md index 7aaff2fb900..6c17b724460 100644 --- a/handwritten/error-reporting/CHANGELOG.md +++ b/handwritten/error-reporting/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/@google-cloud/error-reporting?activeTab=versions +## [3.0.3](https://github.com/googleapis/nodejs-error-reporting/compare/v3.0.2...v3.0.3) (2022-08-28) + + +### Bug Fixes + +* remove pip install statements ([#1546](https://github.com/googleapis/nodejs-error-reporting/issues/1546)) ([#653](https://github.com/googleapis/nodejs-error-reporting/issues/653)) ([2793504](https://github.com/googleapis/nodejs-error-reporting/commit/2793504f9ef2d8f209bd4db64dd1c3170c660291)) + ## [3.0.2](https://github.com/googleapis/nodejs-error-reporting/compare/v3.0.1...v3.0.2) (2022-08-24) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 47e143b5940..d1e161b7028 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/error-reporting", "description": "Error Reporting Client Library for Node.js", - "version": "3.0.2", + "version": "3.0.3", "license": "Apache-2.0", "author": "Google Inc.", "engines": { From 04cc739019f9d9898ededddb775a6f2ef2d418b9 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 8 Sep 2022 23:39:54 +0200 Subject: [PATCH 464/527] chore(deps): update dependency uuid to v9 (#658) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index d1e161b7028..7a8932f6f4d 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -67,6 +67,6 @@ "proxyquire": "^2.1.0", "restify": "^8.3.3", "typescript": "^4.6.4", - "uuid": "^8.0.0" + "uuid": "^9.0.0" } } From 0fbd3d43ef6a5bf298ab8d293e13d6cf43bc7fb6 Mon Sep 17 00:00:00 2001 From: Charlie Croom Date: Thu, 13 Oct 2022 12:51:02 -0400 Subject: [PATCH 465/527] fix: do not try and authenticate when error reporting is disabled (#676) * fix: do not try and authenticate when error reporting is disabled * remove extra commit * lint * Update test to check auth call * fix lint * unnock --- .../src/google-apis/auth-client.ts | 6 +++++- .../system-test/error-reporting.ts | 8 ++++++- .../test/unit/google-apis/auth-client.ts | 21 +++++++++++++++++-- 3 files changed, 31 insertions(+), 4 deletions(-) diff --git a/handwritten/error-reporting/src/google-apis/auth-client.ts b/handwritten/error-reporting/src/google-apis/auth-client.ts index 50e010c3e8c..3313d447dda 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.ts +++ b/handwritten/error-reporting/src/google-apis/auth-client.ts @@ -110,7 +110,11 @@ export class RequestHandler extends Service { this._config = config; this._logger = logger; - if (tryAuthenticate) { + if (!this._config.getShouldReportErrorsToAPI()) { + this._logger.info( + 'Not configured to send errors to the API; skipping Google Cloud API Authentication.' + ); + } else if (tryAuthenticate) { this.authClient.getAccessToken().then( () => {}, err => { diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index 332684671e3..1db873e5a79 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -383,15 +383,21 @@ describe('Expected Behavior', () => { env.sterilizeProcess(); }); - it('Should callback with an error with a configuration that cannot report errors', done => { + it('Should not call auth and should callback with an error in a configuration that cannot report errors', done => { env.sterilizeProcess().setKeyFilename().setProjectId(); + const scope = nock('https://www.googleapis.com:443') + .post('/oauth2/v4/token') + .reply(400); process.env.NODE_ENV = 'null'; const logger = createLogger({logLevel: 5, reportMode: 'production'}); const client = new RequestHandler( new Configuration(undefined, logger), logger ); + client.sendError({} as ErrorMessage, (err, response) => { + assert.strictEqual(scope.isDone(), false); + nock.cleanAll(); assert(err instanceof Error); assert.strictEqual(err!.message, ERROR_STRING); assert.strictEqual(response, null); diff --git a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts index 2064059a5e4..eb1599ac401 100644 --- a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts +++ b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts @@ -110,12 +110,25 @@ describe('RequestHandler', () => { ); }); + it('should not request OAuth2 token if error reporting is disabled', done => { + verifyReportedMessage( + {reportMode: 'never'}, + null, // no access token error + { + info: 'Not configured to send errors to the API; skipping Google Cloud API Authentication.', + }, + done + ); + }); + it('should not issue a warning if disabled and can communicate with the API', done => { process.env.NODE_ENV = 'production'; verifyReportedMessage( {reportMode: 'never'}, null, // no access token error - {}, // no expected logs + { + info: 'Not configured to send errors to the API; skipping Google Cloud API Authentication.', + }, done ); }); @@ -125,7 +138,9 @@ describe('RequestHandler', () => { verifyReportedMessage( {reportMode: 'never'}, null, // no access token error - {}, // no expected logs + { + info: 'Not configured to send errors to the API; skipping Google Cloud API Authentication.', + }, done ); }); @@ -166,6 +181,7 @@ describe('RequestHandler', () => { {reportMode: 'production'}, null, // no access token error { + info: 'Not configured to send errors to the API; skipping Google Cloud API Authentication.', warn: 'The error reporting client is configured to report ' + 'errors if and only if the NODE_ENV environment variable is set to ' + @@ -183,6 +199,7 @@ describe('RequestHandler', () => { {}, null, // no access token error { + info: 'Not configured to send errors to the API; skipping Google Cloud API Authentication.', warn: 'The error reporting client is configured to report ' + 'errors if and only if the NODE_ENV environment variable is set to ' + From cffc0f1887408bdba3eb185367746ebd11b74542 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 11:45:40 -0700 Subject: [PATCH 466/527] chore(main): release 3.0.4 (#677) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- handwritten/error-reporting/CHANGELOG.md | 7 +++++++ handwritten/error-reporting/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/CHANGELOG.md b/handwritten/error-reporting/CHANGELOG.md index 6c17b724460..a164b8112b0 100644 --- a/handwritten/error-reporting/CHANGELOG.md +++ b/handwritten/error-reporting/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/@google-cloud/error-reporting?activeTab=versions +## [3.0.4](https://github.com/googleapis/nodejs-error-reporting/compare/v3.0.3...v3.0.4) (2022-10-13) + + +### Bug Fixes + +* Do not try and authenticate when error reporting is disabled ([#676](https://github.com/googleapis/nodejs-error-reporting/issues/676)) ([c9cef5a](https://github.com/googleapis/nodejs-error-reporting/commit/c9cef5afa32f18175a41a7994a5813b451214ce8)) + ## [3.0.3](https://github.com/googleapis/nodejs-error-reporting/compare/v3.0.2...v3.0.3) (2022-08-28) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 7a8932f6f4d..c5aec234ed8 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/error-reporting", "description": "Error Reporting Client Library for Node.js", - "version": "3.0.3", + "version": "3.0.4", "license": "Apache-2.0", "author": "Google Inc.", "engines": { From b6d9c765324552de30d854fc04d0bc2b8c8adb07 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 27 Oct 2022 20:08:46 +0200 Subject: [PATCH 467/527] chore(deps): update dependency @types/node to v18 (#678) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index c5aec234ed8..366ec7a3ff6 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -47,7 +47,7 @@ "@types/json-stable-stringify": "^1.0.32", "@types/koa": "^2.0.48", "@types/mocha": "^9.0.0", - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "@types/once": "^1.4.0", "@types/proxyquire": "^1.3.28", "@types/restify": "^8.0.0", From 7bb8bacb3639e44261825052502fa0e9ed0bb07a Mon Sep 17 00:00:00 2001 From: Karl Weinmeister <11586922+kweinmeister@users.noreply.github.com> Date: Fri, 11 Nov 2022 09:58:14 -0600 Subject: [PATCH 468/527] docs: remove samples (#681) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docs: remove samples * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- handwritten/error-reporting/README.md | 31 ++---------------------- handwritten/error-reporting/package.json | 3 --- 2 files changed, 2 insertions(+), 32 deletions(-) diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 1eb84bbc195..26fd9dda636 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -33,8 +33,8 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. * [Quickstart](#quickstart) * [Before you begin](#before-you-begin) * [Installing the client library](#installing-the-client-library) - * [Using the client library](#using-the-client-library) -* [Samples](#samples) + + * [Versioning](#versioning) * [Contributing](#contributing) * [License](#license) @@ -54,20 +54,6 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. npm install @google-cloud/error-reporting ``` - -### Using the client library - -```javascript -// Imports the Google Cloud client library -const {ErrorReporting} = require('@google-cloud/error-reporting'); - -// Instantiates a client -const errors = new ErrorReporting(); - -// Reports a simple error -errors.report('Something broke!'); - -``` This module provides custom Error Reporting support for Node.js applications. [Error Reporting](https://cloud.google.com/error-reporting/) is a feature of Google Cloud Platform that allows in-depth monitoring and viewing of errors reported by @@ -347,19 +333,6 @@ errors.report(err); ``` -## Samples - -Samples are in the [`samples/`](https://github.com/googleapis/nodejs-error-reporting/tree/main/samples) directory. Each sample's `README.md` has instructions for running its sample. - -| Sample | Source Code | Try it | -| --------------------------- | --------------------------------- | ------ | -| Explicit setup | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/main/samples/explicitSetup.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-error-reporting&page=editor&open_in_editor=samples/explicitSetup.js,samples/README.md) | -| Express integration | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/main/samples/express.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-error-reporting&page=editor&open_in_editor=samples/express.js,samples/README.md) | -| Implicit setup | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/main/samples/implicitSetup.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-error-reporting&page=editor&open_in_editor=samples/implicitSetup.js,samples/README.md) | -| Manual reporting | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/main/samples/manual.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-error-reporting&page=editor&open_in_editor=samples/manual.js,samples/README.md) | -| Quickstart | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/main/samples/quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-error-reporting&page=editor&open_in_editor=samples/quickstart.js,samples/README.md) | - - The [Error Reporting Node.js Client API Reference][client-docs] documentation also contains samples. diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 366ec7a3ff6..b71b53dd048 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -19,8 +19,6 @@ "lint": "gts check", "presystem-test": "npm run compile", "system-test": "MOCHA_THROW_DEPRECATION=false c8 mocha build/system-test", - "presamples-test": "npm run compile", - "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", "test": "c8 mocha --recursive build/test/unit", "clean": "gts clean", "compile": "tsc -p .", @@ -30,7 +28,6 @@ "license-check": "jsgl --local .", "docs-test": "linkinator docs", "predocs-test": "npm run docs", - "prelint": "cd samples; npm link ../; npm install", "precompile": "gts clean" }, "dependencies": { From 493682624bda5b0863160c2a23d4be0be30f303e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 14 Nov 2022 22:23:34 +0100 Subject: [PATCH 469/527] chore(deps): update dependency @hapi/hapi to v21 (#679) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index b71b53dd048..0e328fe73aa 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -36,7 +36,7 @@ }, "devDependencies": { "@compodoc/compodoc": "^1.1.10", - "@hapi/hapi": "^20.1.0", + "@hapi/hapi": "^21.0.0", "@types/boom": "^7.2.1", "@types/console-log-level": "^1.4.0", "@types/express": "^4.17.0", From 414eada46fccae800541c82113f547b750a6a6a8 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 17 Nov 2022 21:55:57 +0100 Subject: [PATCH 470/527] chore(deps): update dependency restify to v9 (#682) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 0e328fe73aa..31a399d1f2f 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -62,7 +62,7 @@ "nock": "^13.0.0", "post-install-check": "0.0.1", "proxyquire": "^2.1.0", - "restify": "^8.3.3", + "restify": "^9.0.0", "typescript": "^4.6.4", "uuid": "^9.0.0" } From 65e2e24433abffbd88822621f543736e7b29862e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 30 Nov 2022 01:43:36 +0100 Subject: [PATCH 471/527] chore(deps): update dependency restify to v10 (#684) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 31a399d1f2f..f1c6cc47ae1 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -62,7 +62,7 @@ "nock": "^13.0.0", "post-install-check": "0.0.1", "proxyquire": "^2.1.0", - "restify": "^9.0.0", + "restify": "^10.0.0", "typescript": "^4.6.4", "uuid": "^9.0.0" } From a798afcf701820db1ac6ce5e4eb63cb2ddf70df3 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 30 Nov 2022 18:17:35 +0100 Subject: [PATCH 472/527] chore(deps): update dependency @types/uuid to v9 (#685) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index f1c6cc47ae1..979c245dee7 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -48,7 +48,7 @@ "@types/once": "^1.4.0", "@types/proxyquire": "^1.3.28", "@types/restify": "^8.0.0", - "@types/uuid": "^8.0.0", + "@types/uuid": "^9.0.0", "boom": "^7.3.0", "c8": "^7.0.0", "codecov": "^3.5.0", From 86a9eab54f7ab6df5351c1327eee580547b9b271 Mon Sep 17 00:00:00 2001 From: losalex <90795544+losalex@users.noreply.github.com> Date: Thu, 1 Dec 2022 21:49:23 -0800 Subject: [PATCH 473/527] fix: Add a partner team as approvers for PRs (#686) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: Add a partner team as approvers for PRs Adding @googleapis/api-logging-partners to contain more people who can approve PRs * Update sync-repo-settings.yaml * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * Update sync-repo-settings.yaml * Update CODEOWNERS * Update owlbot.py Co-authored-by: Owl Bot --- handwritten/error-reporting/.github/CODEOWNERS | 2 +- handwritten/error-reporting/.github/sync-repo-settings.yaml | 2 ++ handwritten/error-reporting/owlbot.py | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/.github/CODEOWNERS b/handwritten/error-reporting/.github/CODEOWNERS index cba4ffcf939..9cfb9aaf97c 100644 --- a/handwritten/error-reporting/.github/CODEOWNERS +++ b/handwritten/error-reporting/.github/CODEOWNERS @@ -6,7 +6,7 @@ # The yoshi-nodejs team is the default owner for nodejs repositories. -* @googleapis/yoshi-nodejs @googleapis/api-logging +* @googleapis/yoshi-nodejs @googleapis/api-logging @googleapis/api-logging-partners # The github automation team is the default owner for the auto-approve file. .github/auto-approve.yml @googleapis/github-automation diff --git a/handwritten/error-reporting/.github/sync-repo-settings.yaml b/handwritten/error-reporting/.github/sync-repo-settings.yaml index 4a30a08e54c..d5aa4e3e025 100644 --- a/handwritten/error-reporting/.github/sync-repo-settings.yaml +++ b/handwritten/error-reporting/.github/sync-repo-settings.yaml @@ -22,3 +22,5 @@ permissionRules: permission: admin - team: jsteam permission: push + - team: api-logging-partners + permission: push diff --git a/handwritten/error-reporting/owlbot.py b/handwritten/error-reporting/owlbot.py index f471e11dc72..0b59c5fac3b 100644 --- a/handwritten/error-reporting/owlbot.py +++ b/handwritten/error-reporting/owlbot.py @@ -22,7 +22,7 @@ common_templates = gcp.CommonTemplates() templates = common_templates.node_library() -s.copy(templates, excludes=[".github/auto-label.yaml"]) +s.copy(templates, excludes=[".github/auto-label.yaml", ".github/CODEOWNERS", ".github/sync-repo-settings.yaml"]) node.fix_hermetic() From 1d888bab12e958f36e741d1d3895a65b4ab54692 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 5 Dec 2022 17:12:41 -0800 Subject: [PATCH 474/527] chore(main): release 3.0.5 (#687) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- handwritten/error-reporting/CHANGELOG.md | 7 +++++++ handwritten/error-reporting/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/CHANGELOG.md b/handwritten/error-reporting/CHANGELOG.md index a164b8112b0..950a97e6157 100644 --- a/handwritten/error-reporting/CHANGELOG.md +++ b/handwritten/error-reporting/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/@google-cloud/error-reporting?activeTab=versions +## [3.0.5](https://github.com/googleapis/nodejs-error-reporting/compare/v3.0.4...v3.0.5) (2022-12-02) + + +### Bug Fixes + +* Add a partner team as approvers for PRs ([#686](https://github.com/googleapis/nodejs-error-reporting/issues/686)) ([18d2fed](https://github.com/googleapis/nodejs-error-reporting/commit/18d2fed84b4adc06274603a3fbae130313f9aa46)) + ## [3.0.4](https://github.com/googleapis/nodejs-error-reporting/compare/v3.0.3...v3.0.4) (2022-10-13) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 979c245dee7..aff1645bc78 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/error-reporting", "description": "Error Reporting Client Library for Node.js", - "version": "3.0.4", + "version": "3.0.5", "license": "Apache-2.0", "author": "Google Inc.", "engines": { From 7d7623b5de102fd385014bfc4f183999893c4402 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 6 Dec 2022 23:48:14 +0000 Subject: [PATCH 475/527] build: have Kokoro grab service account credentials from secret that will be rotated (#689) * build: have Kokoro grab service account credentials from secret that will be rotated Source-Link: https://togithub.com/googleapis/synthtool/commit/4a0230eb8dc497f36fd3839e6144982131f30a9d Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:f59941869d508c6825deeffce180579545fd528f359f549a80a18ec0458d7094 --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 4 +--- .../.kokoro/continuous/node12/samples-test.cfg | 5 +++++ .../.kokoro/presubmit/node12/samples-test.cfg | 5 +++++ handwritten/error-reporting/.kokoro/samples-test.sh | 2 +- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index db304b7ac98..6c41b3088f5 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -13,6 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:7fefeb9e517db2dd8c8202d9239ff6788d6852bc92dd3aac57a46059679ac9de -# created: 2022-08-24T19:44:03.464675104Z - + digest: sha256:f59941869d508c6825deeffce180579545fd528f359f549a80a18ec0458d7094 diff --git a/handwritten/error-reporting/.kokoro/continuous/node12/samples-test.cfg b/handwritten/error-reporting/.kokoro/continuous/node12/samples-test.cfg index 6a1de8dfd17..79695cae229 100644 --- a/handwritten/error-reporting/.kokoro/continuous/node12/samples-test.cfg +++ b/handwritten/error-reporting/.kokoro/continuous/node12/samples-test.cfg @@ -5,3 +5,8 @@ env_vars: { key: "TRAMPOLINE_BUILD_FILE" value: "github/nodejs-error-reporting/.kokoro/samples-test.sh" } + +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "long-door-651-kokoro-system-test-service-account" +} \ No newline at end of file diff --git a/handwritten/error-reporting/.kokoro/presubmit/node12/samples-test.cfg b/handwritten/error-reporting/.kokoro/presubmit/node12/samples-test.cfg index 6a1de8dfd17..79695cae229 100644 --- a/handwritten/error-reporting/.kokoro/presubmit/node12/samples-test.cfg +++ b/handwritten/error-reporting/.kokoro/presubmit/node12/samples-test.cfg @@ -5,3 +5,8 @@ env_vars: { key: "TRAMPOLINE_BUILD_FILE" value: "github/nodejs-error-reporting/.kokoro/samples-test.sh" } + +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "long-door-651-kokoro-system-test-service-account" +} \ No newline at end of file diff --git a/handwritten/error-reporting/.kokoro/samples-test.sh b/handwritten/error-reporting/.kokoro/samples-test.sh index fbc058a4ec4..806c0082236 100755 --- a/handwritten/error-reporting/.kokoro/samples-test.sh +++ b/handwritten/error-reporting/.kokoro/samples-test.sh @@ -19,7 +19,7 @@ set -eo pipefail export NPM_CONFIG_PREFIX=${HOME}/.npm-global # Setup service account credentials. -export GOOGLE_APPLICATION_CREDENTIALS=${KOKORO_GFILE_DIR}/service-account.json +export GOOGLE_APPLICATION_CREDENTIALS=${KOKORO_GFILE_DIR}/secret_manager/long-door-651-kokoro-system-test-service-account export GCLOUD_PROJECT=long-door-651 cd $(dirname $0)/.. From 2fc7e05e9b6e3aad1d336c0b397c9be58434a538 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 19 Dec 2022 22:48:33 +0000 Subject: [PATCH 476/527] build: have Kokoro grab service account credentials from secret that will be rotated for system tests (#692) Source-Link: https://togithub.com/googleapis/synthtool/commit/abbc97db69a57dcb991ba97ef503305b701ffb3a Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:fe04ae044dadf5ad88d979dbcc85e0e99372fb5d6316790341e6aca5e4e3fbc8 --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 2 +- .../.kokoro/continuous/node12/system-test.cfg | 5 +++++ .../error-reporting/.kokoro/presubmit/node12/system-test.cfg | 5 +++++ handwritten/error-reporting/.kokoro/system-test.sh | 2 +- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index 6c41b3088f5..788f7a9fdff 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:f59941869d508c6825deeffce180579545fd528f359f549a80a18ec0458d7094 + digest: sha256:fe04ae044dadf5ad88d979dbcc85e0e99372fb5d6316790341e6aca5e4e3fbc8 diff --git a/handwritten/error-reporting/.kokoro/continuous/node12/system-test.cfg b/handwritten/error-reporting/.kokoro/continuous/node12/system-test.cfg index 9551f136d7a..01977307091 100644 --- a/handwritten/error-reporting/.kokoro/continuous/node12/system-test.cfg +++ b/handwritten/error-reporting/.kokoro/continuous/node12/system-test.cfg @@ -5,3 +5,8 @@ env_vars: { key: "TRAMPOLINE_BUILD_FILE" value: "github/nodejs-error-reporting/.kokoro/system-test.sh" } + +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "long-door-651-kokoro-system-test-service-account" +} \ No newline at end of file diff --git a/handwritten/error-reporting/.kokoro/presubmit/node12/system-test.cfg b/handwritten/error-reporting/.kokoro/presubmit/node12/system-test.cfg index 9551f136d7a..01977307091 100644 --- a/handwritten/error-reporting/.kokoro/presubmit/node12/system-test.cfg +++ b/handwritten/error-reporting/.kokoro/presubmit/node12/system-test.cfg @@ -5,3 +5,8 @@ env_vars: { key: "TRAMPOLINE_BUILD_FILE" value: "github/nodejs-error-reporting/.kokoro/system-test.sh" } + +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "long-door-651-kokoro-system-test-service-account" +} \ No newline at end of file diff --git a/handwritten/error-reporting/.kokoro/system-test.sh b/handwritten/error-reporting/.kokoro/system-test.sh index 87fa0653d76..0201e9dfd71 100755 --- a/handwritten/error-reporting/.kokoro/system-test.sh +++ b/handwritten/error-reporting/.kokoro/system-test.sh @@ -19,7 +19,7 @@ set -eo pipefail export NPM_CONFIG_PREFIX=${HOME}/.npm-global # Setup service account credentials. -export GOOGLE_APPLICATION_CREDENTIALS=${KOKORO_GFILE_DIR}/service-account.json +export GOOGLE_APPLICATION_CREDENTIALS=${KOKORO_GFILE_DIR}/secret_manager/long-door-651-kokoro-system-test-service-account export GCLOUD_PROJECT=long-door-651 cd $(dirname $0)/.. From fda4d027e805011ee07603b2aceb897b5876189b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 1 Feb 2023 20:14:38 +0000 Subject: [PATCH 477/527] chore(deps): update dependency js-green-licenses to v4 (#693) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index aff1645bc78..928520d2276 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -54,7 +54,7 @@ "codecov": "^3.5.0", "express": "^4.17.1", "gts": "^3.1.0", - "js-green-licenses": "^3.0.0", + "js-green-licenses": "^4.0.0", "json-stable-stringify": "^1.0.1", "koa": "^2.7.0", "linkinator": "^4.0.0", From 38e8eb584039770cf85d275c7171b43039c9c709 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 3 Feb 2023 17:48:51 +0000 Subject: [PATCH 478/527] chore(deps): update dependency restify to v11 (#694) Co-authored-by: losalex <90795544+losalex@users.noreply.github.com> --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 928520d2276..87d0d422a12 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -62,7 +62,7 @@ "nock": "^13.0.0", "post-install-check": "0.0.1", "proxyquire": "^2.1.0", - "restify": "^10.0.0", + "restify": "^11.0.0", "typescript": "^4.6.4", "uuid": "^9.0.0" } From 6085967ee6c377d1d4c0f380bf0182b6b532a478 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 16 Mar 2023 12:03:36 -0700 Subject: [PATCH 479/527] chore: store nodejs build artifacts in placer (#702) Source-Link: https://github.com/googleapis/synthtool/commit/3602660ae703daadcb7bc2f87bf601241665f3f8 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:e6d785d6de3cab027f6213d95ccedab4cab3811b0d3172b78db2216faa182e32 Co-authored-by: Owl Bot --- .../error-reporting/.github/.OwlBot.lock.yaml | 4 ++-- handwritten/error-reporting/.kokoro/publish.sh | 14 +++++++++++++- .../error-reporting/.kokoro/release/publish.cfg | 12 ++++++++++++ 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index 788f7a9fdff..0b836e11907 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:fe04ae044dadf5ad88d979dbcc85e0e99372fb5d6316790341e6aca5e4e3fbc8 + digest: sha256:e6d785d6de3cab027f6213d95ccedab4cab3811b0d3172b78db2216faa182e32 diff --git a/handwritten/error-reporting/.kokoro/publish.sh b/handwritten/error-reporting/.kokoro/publish.sh index 949e3e1d0c2..ca1d47af347 100755 --- a/handwritten/error-reporting/.kokoro/publish.sh +++ b/handwritten/error-reporting/.kokoro/publish.sh @@ -27,4 +27,16 @@ NPM_TOKEN=$(cat $KOKORO_KEYSTORE_DIR/73713_google-cloud-npm-token-1) echo "//wombat-dressing-room.appspot.com/:_authToken=${NPM_TOKEN}" > ~/.npmrc npm install -npm publish --access=public --registry=https://wombat-dressing-room.appspot.com +npm pack . +# npm provides no way to specify, observe, or predict the name of the tarball +# file it generates. We have to look in the current directory for the freshest +# .tgz file. +TARBALL=$(ls -1 -t *.tgz | head -1) + +npm publish --access=public --registry=https://wombat-dressing-room.appspot.com "$TARBALL" + +# Kokoro collects *.tgz and package-lock.json files and stores them in Placer +# so we can generate SBOMs and attestations. +# However, we *don't* want Kokoro to collect package-lock.json and *.tgz files +# that happened to be installed with dependencies. +find node_modules -name package-lock.json -o -name "*.tgz" | xargs rm -f \ No newline at end of file diff --git a/handwritten/error-reporting/.kokoro/release/publish.cfg b/handwritten/error-reporting/.kokoro/release/publish.cfg index c075226baa1..07835d565d8 100644 --- a/handwritten/error-reporting/.kokoro/release/publish.cfg +++ b/handwritten/error-reporting/.kokoro/release/publish.cfg @@ -37,3 +37,15 @@ env_vars: { key: "TRAMPOLINE_BUILD_FILE" value: "github/nodejs-error-reporting/.kokoro/publish.sh" } + +# Store the packages we uploaded to npmjs.org and their corresponding +# package-lock.jsons in Placer. That way, we have a record of exactly +# what we published, and which version of which tools we used to publish +# it, which we can use to generate SBOMs and attestations. +action { + define_artifacts { + regex: "github/**/*.tgz" + regex: "github/**/package-lock.json" + strip_prefix: "github" + } +} From 68296352ac26b35cbe50edd9fd70c8e9f2e76647 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 25 May 2023 09:56:06 -0400 Subject: [PATCH 480/527] docs: update docs-devsite.sh to use latest node-js-rad version (#705) Co-authored-by: sofisl <55454395+sofisl@users.noreply.github.com> Source-Link: https://github.com/googleapis/synthtool/commit/b1ced7db5adee08cfa91d6b138679fceff32c004 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:0527a86c10b67742c409dc726ba9a31ec4e69b0006e3d7a49b0e6686c59cdaa9 Co-authored-by: Owl Bot --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 3 ++- handwritten/error-reporting/.kokoro/release/docs-devsite.sh | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index 0b836e11907..21ad18bd722 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -13,4 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:e6d785d6de3cab027f6213d95ccedab4cab3811b0d3172b78db2216faa182e32 + digest: sha256:0527a86c10b67742c409dc726ba9a31ec4e69b0006e3d7a49b0e6686c59cdaa9 +# created: 2023-05-24T20:32:43.844586914Z diff --git a/handwritten/error-reporting/.kokoro/release/docs-devsite.sh b/handwritten/error-reporting/.kokoro/release/docs-devsite.sh index 2198e67fe92..3596c1e4cb1 100755 --- a/handwritten/error-reporting/.kokoro/release/docs-devsite.sh +++ b/handwritten/error-reporting/.kokoro/release/docs-devsite.sh @@ -25,5 +25,6 @@ if [[ -z "$CREDENTIALS" ]]; then fi npm install -npm install --no-save @google-cloud/cloud-rad@^0.2.5 -npx @google-cloud/cloud-rad \ No newline at end of file +npm install --no-save @google-cloud/cloud-rad@^0.3.7 +# publish docs to devsite +npx @google-cloud/cloud-rad . cloud-rad From b0d687d7ab22a35b69204c47ae2491d120072e13 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 15 Aug 2023 15:43:11 -0700 Subject: [PATCH 481/527] chore!: upgrade to Node 14 (#715) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docs: fix node release schedule link Co-authored-by: Jeffrey Rennie Source-Link: https://github.com/googleapis/synthtool/commit/1a2431537d603e95b4b32317fb494542f75a2165 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:e08f9a3757808cdaf7a377e962308c65c4d7eff12db206d4fae702dd50d43430 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore!: upgrade to Node 14 * chore: skip system tests that are failing --------- Co-authored-by: Owl Bot Co-authored-by: Sofia Leon --- .../error-reporting/.github/.OwlBot.lock.yaml | 4 ++-- .../error-reporting/.github/sync-repo-settings.yaml | 3 ++- handwritten/error-reporting/.kokoro/common.cfg | 2 +- .../.kokoro/continuous/{node12 => node14}/common.cfg | 2 +- .../.kokoro/continuous/{node12 => node14}/lint.cfg | 0 .../continuous/{node12 => node14}/samples-test.cfg | 0 .../continuous/{node12 => node14}/system-test.cfg | 0 .../.kokoro/continuous/{node12 => node14}/test.cfg | 0 .../.kokoro/presubmit/{node12 => node14}/common.cfg | 2 +- .../presubmit/{node12 => node14}/samples-test.cfg | 0 .../presubmit/{node12 => node14}/system-test.cfg | 0 .../.kokoro/presubmit/{node12 => node14}/test.cfg | 0 handwritten/error-reporting/.kokoro/release/docs.cfg | 2 +- .../error-reporting/.kokoro/release/publish.cfg | 2 +- handwritten/error-reporting/.kokoro/samples-test.sh | 2 +- handwritten/error-reporting/.kokoro/system-test.sh | 2 +- handwritten/error-reporting/.kokoro/test.bat | 2 +- handwritten/error-reporting/.kokoro/test.sh | 2 +- handwritten/error-reporting/README.md | 2 +- handwritten/error-reporting/package.json | 12 ++++++------ .../error-reporting/system-test/error-reporting.ts | 8 ++++---- 21 files changed, 24 insertions(+), 23 deletions(-) rename handwritten/error-reporting/.kokoro/continuous/{node12 => node14}/common.cfg (93%) rename handwritten/error-reporting/.kokoro/continuous/{node12 => node14}/lint.cfg (100%) rename handwritten/error-reporting/.kokoro/continuous/{node12 => node14}/samples-test.cfg (100%) rename handwritten/error-reporting/.kokoro/continuous/{node12 => node14}/system-test.cfg (100%) rename handwritten/error-reporting/.kokoro/continuous/{node12 => node14}/test.cfg (100%) rename handwritten/error-reporting/.kokoro/presubmit/{node12 => node14}/common.cfg (89%) rename handwritten/error-reporting/.kokoro/presubmit/{node12 => node14}/samples-test.cfg (100%) rename handwritten/error-reporting/.kokoro/presubmit/{node12 => node14}/system-test.cfg (100%) rename handwritten/error-reporting/.kokoro/presubmit/{node12 => node14}/test.cfg (100%) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index 21ad18bd722..a3d003c65a1 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:0527a86c10b67742c409dc726ba9a31ec4e69b0006e3d7a49b0e6686c59cdaa9 -# created: 2023-05-24T20:32:43.844586914Z + digest: sha256:e08f9a3757808cdaf7a377e962308c65c4d7eff12db206d4fae702dd50d43430 +# created: 2023-08-03T18:46:14.719706948Z diff --git a/handwritten/error-reporting/.github/sync-repo-settings.yaml b/handwritten/error-reporting/.github/sync-repo-settings.yaml index d5aa4e3e025..022d792f6a3 100644 --- a/handwritten/error-reporting/.github/sync-repo-settings.yaml +++ b/handwritten/error-reporting/.github/sync-repo-settings.yaml @@ -9,9 +9,10 @@ branchProtectionRules: - "ci/kokoro: System test" - docs - lint - - test (12) - test (14) - test (16) + - test (18) + - test (20) - cla/google - windows - OwlBot Post Processor diff --git a/handwritten/error-reporting/.kokoro/common.cfg b/handwritten/error-reporting/.kokoro/common.cfg index 5a957de6534..1090e3c7f9a 100644 --- a/handwritten/error-reporting/.kokoro/common.cfg +++ b/handwritten/error-reporting/.kokoro/common.cfg @@ -16,7 +16,7 @@ build_file: "nodejs-error-reporting/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:12-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:14-user" } env_vars: { key: "TRAMPOLINE_BUILD_FILE" diff --git a/handwritten/error-reporting/.kokoro/continuous/node12/common.cfg b/handwritten/error-reporting/.kokoro/continuous/node14/common.cfg similarity index 93% rename from handwritten/error-reporting/.kokoro/continuous/node12/common.cfg rename to handwritten/error-reporting/.kokoro/continuous/node14/common.cfg index 5a957de6534..1090e3c7f9a 100644 --- a/handwritten/error-reporting/.kokoro/continuous/node12/common.cfg +++ b/handwritten/error-reporting/.kokoro/continuous/node14/common.cfg @@ -16,7 +16,7 @@ build_file: "nodejs-error-reporting/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:12-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:14-user" } env_vars: { key: "TRAMPOLINE_BUILD_FILE" diff --git a/handwritten/error-reporting/.kokoro/continuous/node12/lint.cfg b/handwritten/error-reporting/.kokoro/continuous/node14/lint.cfg similarity index 100% rename from handwritten/error-reporting/.kokoro/continuous/node12/lint.cfg rename to handwritten/error-reporting/.kokoro/continuous/node14/lint.cfg diff --git a/handwritten/error-reporting/.kokoro/continuous/node12/samples-test.cfg b/handwritten/error-reporting/.kokoro/continuous/node14/samples-test.cfg similarity index 100% rename from handwritten/error-reporting/.kokoro/continuous/node12/samples-test.cfg rename to handwritten/error-reporting/.kokoro/continuous/node14/samples-test.cfg diff --git a/handwritten/error-reporting/.kokoro/continuous/node12/system-test.cfg b/handwritten/error-reporting/.kokoro/continuous/node14/system-test.cfg similarity index 100% rename from handwritten/error-reporting/.kokoro/continuous/node12/system-test.cfg rename to handwritten/error-reporting/.kokoro/continuous/node14/system-test.cfg diff --git a/handwritten/error-reporting/.kokoro/continuous/node12/test.cfg b/handwritten/error-reporting/.kokoro/continuous/node14/test.cfg similarity index 100% rename from handwritten/error-reporting/.kokoro/continuous/node12/test.cfg rename to handwritten/error-reporting/.kokoro/continuous/node14/test.cfg diff --git a/handwritten/error-reporting/.kokoro/presubmit/node12/common.cfg b/handwritten/error-reporting/.kokoro/presubmit/node14/common.cfg similarity index 89% rename from handwritten/error-reporting/.kokoro/presubmit/node12/common.cfg rename to handwritten/error-reporting/.kokoro/presubmit/node14/common.cfg index eb54e947e9f..5de3055ec6b 100644 --- a/handwritten/error-reporting/.kokoro/presubmit/node12/common.cfg +++ b/handwritten/error-reporting/.kokoro/presubmit/node14/common.cfg @@ -16,7 +16,7 @@ build_file: "nodejs-error-reporting/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:12-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:14-user" } env_vars: { key: "TRAMPOLINE_BUILD_FILE" diff --git a/handwritten/error-reporting/.kokoro/presubmit/node12/samples-test.cfg b/handwritten/error-reporting/.kokoro/presubmit/node14/samples-test.cfg similarity index 100% rename from handwritten/error-reporting/.kokoro/presubmit/node12/samples-test.cfg rename to handwritten/error-reporting/.kokoro/presubmit/node14/samples-test.cfg diff --git a/handwritten/error-reporting/.kokoro/presubmit/node12/system-test.cfg b/handwritten/error-reporting/.kokoro/presubmit/node14/system-test.cfg similarity index 100% rename from handwritten/error-reporting/.kokoro/presubmit/node12/system-test.cfg rename to handwritten/error-reporting/.kokoro/presubmit/node14/system-test.cfg diff --git a/handwritten/error-reporting/.kokoro/presubmit/node12/test.cfg b/handwritten/error-reporting/.kokoro/presubmit/node14/test.cfg similarity index 100% rename from handwritten/error-reporting/.kokoro/presubmit/node12/test.cfg rename to handwritten/error-reporting/.kokoro/presubmit/node14/test.cfg diff --git a/handwritten/error-reporting/.kokoro/release/docs.cfg b/handwritten/error-reporting/.kokoro/release/docs.cfg index 55fcee6eced..4b250678558 100644 --- a/handwritten/error-reporting/.kokoro/release/docs.cfg +++ b/handwritten/error-reporting/.kokoro/release/docs.cfg @@ -11,7 +11,7 @@ before_action { # doc publications use a Python image. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:12-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:14-user" } # Download trampoline resources. diff --git a/handwritten/error-reporting/.kokoro/release/publish.cfg b/handwritten/error-reporting/.kokoro/release/publish.cfg index 07835d565d8..ba4cdc4bd0a 100644 --- a/handwritten/error-reporting/.kokoro/release/publish.cfg +++ b/handwritten/error-reporting/.kokoro/release/publish.cfg @@ -30,7 +30,7 @@ build_file: "nodejs-error-reporting/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:12-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:14-user" } env_vars: { diff --git a/handwritten/error-reporting/.kokoro/samples-test.sh b/handwritten/error-reporting/.kokoro/samples-test.sh index 806c0082236..8c5d108cb58 100755 --- a/handwritten/error-reporting/.kokoro/samples-test.sh +++ b/handwritten/error-reporting/.kokoro/samples-test.sh @@ -56,7 +56,7 @@ fi # codecov combines coverage across integration and unit tests. Include # the logic below for any environment you wish to collect coverage for: -COVERAGE_NODE=12 +COVERAGE_NODE=14 if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then NYC_BIN=./node_modules/nyc/bin/nyc.js if [ -f "$NYC_BIN" ]; then diff --git a/handwritten/error-reporting/.kokoro/system-test.sh b/handwritten/error-reporting/.kokoro/system-test.sh index 0201e9dfd71..0b3043d268c 100755 --- a/handwritten/error-reporting/.kokoro/system-test.sh +++ b/handwritten/error-reporting/.kokoro/system-test.sh @@ -49,7 +49,7 @@ npm run system-test # codecov combines coverage across integration and unit tests. Include # the logic below for any environment you wish to collect coverage for: -COVERAGE_NODE=12 +COVERAGE_NODE=14 if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then NYC_BIN=./node_modules/nyc/bin/nyc.js if [ -f "$NYC_BIN" ]; then diff --git a/handwritten/error-reporting/.kokoro/test.bat b/handwritten/error-reporting/.kokoro/test.bat index ae59e59be3e..0bb12405231 100644 --- a/handwritten/error-reporting/.kokoro/test.bat +++ b/handwritten/error-reporting/.kokoro/test.bat @@ -21,7 +21,7 @@ cd .. @rem we upgrade Node.js in the image: SET PATH=%PATH%;/cygdrive/c/Program Files/nodejs/npm -call nvm use v12.14.1 +call nvm use v14.17.3 call which node call npm install || goto :error diff --git a/handwritten/error-reporting/.kokoro/test.sh b/handwritten/error-reporting/.kokoro/test.sh index a5c7ac04cd3..862d478d324 100755 --- a/handwritten/error-reporting/.kokoro/test.sh +++ b/handwritten/error-reporting/.kokoro/test.sh @@ -39,7 +39,7 @@ npm test # codecov combines coverage across integration and unit tests. Include # the logic below for any environment you wish to collect coverage for: -COVERAGE_NODE=12 +COVERAGE_NODE=14 if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then NYC_BIN=./node_modules/nyc/bin/nyc.js if [ -f "$NYC_BIN" ]; then diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 26fd9dda636..6727579550c 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -339,7 +339,7 @@ also contains samples. ## Supported Node.js Versions -Our client libraries follow the [Node.js release schedule](https://nodejs.org/en/about/releases/). +Our client libraries follow the [Node.js release schedule](https://github.com/nodejs/release#release-schedule). Libraries are compatible with all current _active_ and _maintenance_ versions of Node.js. If you are using an end-of-life version of Node.js, we recommend that you update diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 87d0d422a12..fdeed8db552 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -5,7 +5,7 @@ "license": "Apache-2.0", "author": "Google Inc.", "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" }, "repository": "googleapis/nodejs-error-reporting", "main": "./build/src/index.js", @@ -31,7 +31,7 @@ "precompile": "gts clean" }, "dependencies": { - "@google-cloud/common": "^4.0.0", + "@google-cloud/common": "^5.0.0", "console-log-level": "^1.4.1" }, "devDependencies": { @@ -44,16 +44,16 @@ "@types/json-stable-stringify": "^1.0.32", "@types/koa": "^2.0.48", "@types/mocha": "^9.0.0", - "@types/node": "^18.0.0", + "@types/node": "^20.4.9", "@types/once": "^1.4.0", "@types/proxyquire": "^1.3.28", "@types/restify": "^8.0.0", "@types/uuid": "^9.0.0", "boom": "^7.3.0", - "c8": "^7.0.0", + "c8": "^8.0.1", "codecov": "^3.5.0", "express": "^4.17.1", - "gts": "^3.1.0", + "gts": "^5.0.0", "js-green-licenses": "^4.0.0", "json-stable-stringify": "^1.0.1", "koa": "^2.7.0", @@ -63,7 +63,7 @@ "post-install-check": "0.0.1", "proxyquire": "^2.1.0", "restify": "^11.0.0", - "typescript": "^4.6.4", + "typescript": "^5.1.6", "uuid": "^9.0.0" } } diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index 1db873e5a79..3659fdc2da9 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -638,7 +638,7 @@ describe('error-reporting', () => { // As such, each test is set to fail due to a timeout only if sufficiently // more than TIMEOUT ms has elapsed to avoid test fragility. - it('Should correctly publish an error that is an Error object', async function verifyErrors() { + it.skip('Should correctly publish an error that is an Error object', async function verifyErrors() { this.timeout(TIMEOUT); const errorId = buildName('with-error-constructor'); function expectedTopOfStack() { @@ -668,7 +668,7 @@ describe('error-reporting', () => { ); }); - it('Should correctly publish an error that is undefined', async function (this) { + it.skip('Should correctly publish an error that is undefined', async function (this) { this.timeout(TIMEOUT); await verifyReporting( undefined, @@ -680,7 +680,7 @@ describe('error-reporting', () => { ); }); - it('Should correctly publish an error that is null', async function (this) { + it.skip('Should correctly publish an error that is null', async function (this: any) { this.timeout(TIMEOUT); await verifyReporting( null, @@ -717,7 +717,7 @@ describe('error-reporting', () => { ); }); - it('Should correctly publish an error that is of an unknown type', async function (this) { + it.skip('Should correctly publish an error that is of an unknown type', async function (this) { this.timeout(TIMEOUT); const bool = true; await verifyReporting( From 56082d8d8e66068b561ba881a077382cc38f11d2 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 25 Sep 2023 23:31:31 -0700 Subject: [PATCH 482/527] chore: call non-hermetic functions since we're installing node_modules directly from the library (#724) * chore: call non-hermetic functions since we're installing node_modules directly from the library * chore: call non-hermetic functions since we're installing node_modules directly from the library Source-Link: https://github.com/googleapis/synthtool/commit/4c4063f8395130957a0d49fcec810a7d0a76cf7b Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:8b6a07a38d1583d96b6e251ba208bd4ef0bc2a0cc37471ffc518841651d15bd6 * Update owlbot.py --------- Co-authored-by: Owl Bot Co-authored-by: sofisl <55454395+sofisl@users.noreply.github.com> --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 4 ++-- handwritten/error-reporting/owlbot.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index a3d003c65a1..807a8916118 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:e08f9a3757808cdaf7a377e962308c65c4d7eff12db206d4fae702dd50d43430 -# created: 2023-08-03T18:46:14.719706948Z + digest: sha256:8b6a07a38d1583d96b6e251ba208bd4ef0bc2a0cc37471ffc518841651d15bd6 +# created: 2023-09-25T22:18:27.595486267Z diff --git a/handwritten/error-reporting/owlbot.py b/handwritten/error-reporting/owlbot.py index 0b59c5fac3b..faee2265cb2 100644 --- a/handwritten/error-reporting/owlbot.py +++ b/handwritten/error-reporting/owlbot.py @@ -23,7 +23,7 @@ common_templates = gcp.CommonTemplates() templates = common_templates.node_library() s.copy(templates, excludes=[".github/auto-label.yaml", ".github/CODEOWNERS", ".github/sync-repo-settings.yaml"]) -node.fix_hermetic() +node.fix() # -------------------------------------------------------------------------- From 938fb76652c88b3135015f8c044bb4a1832783cf Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 18 Oct 2023 23:05:19 -0700 Subject: [PATCH 483/527] chore(nodejs): Add `system-test/fixtures` to `.eslintignore` (#725) * fix: Add `system-test/fixtures` to `.eslintignore` * refactor: Use `**` Source-Link: https://github.com/googleapis/synthtool/commit/b7858ba70e8acabc89d13558a71dd9318a57034a Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:abc68a9bbf4fa808b25fa16d3b11141059dc757dbc34f024744bba36c200b40f Co-authored-by: Owl Bot --- handwritten/error-reporting/.eslintignore | 1 + handwritten/error-reporting/.github/.OwlBot.lock.yaml | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/.eslintignore b/handwritten/error-reporting/.eslintignore index ea5b04aebe6..c4a0963e9bd 100644 --- a/handwritten/error-reporting/.eslintignore +++ b/handwritten/error-reporting/.eslintignore @@ -5,3 +5,4 @@ build/ docs/ protos/ samples/generated/ +system-test/**/fixtures diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index 807a8916118..40b49d2bf81 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:8b6a07a38d1583d96b6e251ba208bd4ef0bc2a0cc37471ffc518841651d15bd6 -# created: 2023-09-25T22:18:27.595486267Z + digest: sha256:abc68a9bbf4fa808b25fa16d3b11141059dc757dbc34f024744bba36c200b40f +# created: 2023-10-04T20:56:40.710775365Z From 91dd223dec027e6a13a2befc9c1c8a8682f41b03 Mon Sep 17 00:00:00 2001 From: meredithslota Date: Thu, 19 Oct 2023 11:44:47 -0700 Subject: [PATCH 484/527] chore(docs): Update .readme-partials.yaml (#726) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(docs): Update .readme-partials.yaml Removed out-dated code samples and pointed the README towards the https://cloud.google.com/error-reporting/docs/setup/nodejs documentation instead. * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .../error-reporting/.readme-partials.yaml | 256 +----------------- handwritten/error-reporting/README.md | 254 +---------------- 2 files changed, 7 insertions(+), 503 deletions(-) diff --git a/handwritten/error-reporting/.readme-partials.yaml b/handwritten/error-reporting/.readme-partials.yaml index f9da2d40b45..b158b6364e9 100644 --- a/handwritten/error-reporting/.readme-partials.yaml +++ b/handwritten/error-reporting/.readme-partials.yaml @@ -15,10 +15,6 @@ body: |- ![Error Reporting overview](https://raw.githubusercontent.com/googleapis/nodejs-error-reporting/master/doc/images/errors-overview.png) - Here's an introductory video that provides some more details: - - [![Learn about Error Reporting in Google Cloud](https://img.youtube.com/vi/cVpWVD75Hs8/0.jpg)](https://www.youtube.com/watch?v=cVpWVD75Hs8) - # When Errors Are Reported The `reportMode` configuration option is used to specify when errors are reported to the Error Reporting Console. It can have one of three values: @@ -32,252 +28,8 @@ body: |- * `false` (default): Only report errors if the NODE_ENV environment variable is set to "production". * `true`: Always report errors regardless of the value of NODE_ENV. - See the [Configuration](#configuration) section to learn how to specify configuration options. - - ## Configuration - The following code snippet lists available configuration options. All configuration options are optional. - - ```js - const {ErrorReporting} = require('@google-cloud/error-reporting'); - - // Using ES6 style imports via TypeScript or Babel - // import {ErrorReporting} from '@google-cloud/error-reporting'; - - // Instantiates a client - const errors = new ErrorReporting({ - projectId: 'my-project-id', - keyFilename: '/path/to/keyfile.json', - credentials: require('./path/to/keyfile.json'), - // Specifies when errors are reported to the Error Reporting Console. - // See the "When Errors Are Reported" section for more information. - // Defaults to 'production' - reportMode: 'production', - // Determines the logging level internal to the library; levels range 0-5 - // where 0 indicates no logs should be reported and 5 indicates all logs - // should be reported. - // Defaults to 2 (warnings) - logLevel: 2, - serviceContext: { - service: 'my-service', - version: 'my-service-version' - } - }); - ``` - - ## Examples - - ### Reporting Manually - - ```js - const {ErrorReporting} = require('@google-cloud/error-reporting'); - - // Using ES6 style imports via TypeScript or Babel - // import {ErrorReporting} from '@google-cloud/error-reporting'; - - // Instantiates a client - const errors = new ErrorReporting(); - - // Use the error message builder to customize all fields ... - const errorEvt = errors.event() - .setMessage('My error message') - .setUser('root@nexus'); - errors.report(errorEvt, () => console.log('done!')); - - // or just use a regular error ... - errors.report(new Error('My error message'), () => console.log('done!')); - - // or one can even just use a string. - errors.report('My error message'); - ``` - - The stack trace associated with an error can be viewed in the error reporting console. - * If the `errors.report` method is given an `ErrorMessage` object built using the `errors.event` method, the stack trace at the point where the error event was constructed will be used. - * If the `errors.report` method is given an `Error` object, the stack trace where the error was instantiated will be used. - * If the `errors.report` method is given a string, the stack trace at the point where `errors.report` is invoked will be used. - - ### Using Express - - ```js - const express = require('express'); - - const {ErrorReporting} = require('@google-cloud/error-reporting'); - - // Using ES6 style imports via TypeScript or Babel - // import {ErrorReporting} from '@google-cloud/error-reporting'; - - // Instantiates a client - const errors = new ErrorReporting(); - - const app = express(); - - app.get('/error', (req, res, next) => { - res.send('Something broke!'); - next(new Error('Custom error message')); - }); - - app.get('/exception', () => { - JSON.parse('{\"malformedJson\": true'); - }); - - // Note that express error handling middleware should be attached after all - // the other routes and use() calls. See [express docs][express-error-docs]. - app.use(errors.express); - - app.listen(3000); - ``` - - ### Using Hapi - - ```js - const hapi = require('hapi'); - const {ErrorReporting} = require('@google-cloud/error-reporting'); - - // Using ES6 style imports via TypeScript or Babel - // import {ErrorReporting} from '@google-cloud/error-reporting'; - - // Instantiates a client - const errors = new ErrorReporting(); - - const server = new hapi.Server(); - server.connection({ port: 3000 }); - server.start(); - - server.route({ - method: 'GET', - path: '/error', - handler: (request, reply) => { - reply('Something broke!'); - throw new Error('Custom error message'); - } - }); - - server.register(errors.hapi); - ``` - - ### Using Koa - - ```js - const Koa = require('koa'); - const {ErrorReporting} = require('@google-cloud/error-reporting'); - - // Using ES6 style imports via TypeScript or Babel - // import {ErrorReporting} from '@google-cloud/error-reporting'; - - // Instantiates a client - const errors = new ErrorReporting(); - - const app = new Koa(); - - app.use(errors.koa); - - app.use(function *(next) { - //This will set status and message - this.throw('Error Message', 500); - }); - - // response - app.use(function *(){ - this.body = 'Hello World'; - }); - - app.listen(3000); - ``` - - ### Using Restify - - ```js - const restify = require('restify'); - const {ErrorReporting} = require('@google-cloud/error-reporting'); - - // Using ES6 style imports via TypeScript or Babel - // import {ErrorReporting} from '@google-cloud/error-reporting'; - - // Instantiates a client - const errors = new ErrorReporting(); - - function respond(req, res, next) { - next(new Error('this is a restify error')); - } - - const server = restify.createServer(); - - server.use(errors.restify(server)); - server.get('/hello/:name', respond); - server.head('/hello/:name', respond); - - server.listen(3000); - ``` - - ## Unhandled Rejections - - Unhandled Rejections are not reported by default. The reporting of unhandled rejections can be enabled using the `reportUnhandledRejections` configuration option. See the [Configuration](#configuration) section for more details. - - If unhandled rejections are set to be reported, then, when an unhandled rejection occurs, a message is printed to standard out indicated that an unhandled rejection had occurred and is being reported, and the value causing the rejection is reported to the error-reporting console. - - ## Catching and Reporting Application-wide Uncaught Errors - - Uncaught exceptions are not reported by default. *It is recommended to process `uncaughtException`s for production-deployed applications.* - - Note that uncaught exceptions are not reported by default because to do so would require adding a listener to the `uncaughtException` event. Adding such a listener without knowledge of other `uncaughtException` listeners can cause interference between the event handlers or prevent the process from terminating cleanly. As such, it is necessary for `uncaughtException`s to be reported manually. - - ```js - const {ErrorReporting} = require('@google-cloud/error-reporting'); - - // Using ES6 style imports via TypeScript or Babel - // import {ErrorReporting} from '@google-cloud/error-reporting'; - - // Instantiates a client - const errors = new ErrorReporting(); - - process.on('uncaughtException', (e) => { - // Write the error to stderr. - console.error(e); - // Report that same error the Cloud Error Service - errors.report(e); - }); - ``` - - More information about uncaught exception handling in Node.js and what it means for your application can be found [here](https://nodejs.org/api/process.html#process_event_uncaughtexception). - - ### Using an API Key - - You may use an API key in lieu of locally-stored credentials. Please see [this document](https://support.google.com/cloud/answer/6158862) on how to set up an API key if you do not already have one. - - Once you have obtained an API key, you may provide it as part of the Error Reporting instance configuration: - - ```js - const {ErrorReporting} = require('@google-cloud/error-reporting'); - - // Using ES6 style imports via TypeScript or Babel - // import {ErrorReporting} from '@google-cloud/error-reporting'; - - // Instantiates a client - const errors = new ErrorReporting({ - projectId: '{your project ID}', - key: '{your api key}' - }); - ``` - - If a key is provided, the module will not attempt to authenticate using the methods associated with locally-stored credentials. We recommend using a file, environment variable, or another mechanism to store the API key rather than hard-coding it into your application's source. - - **Note:** The Error Reporting instance will check if the provided API key is invalid shortly after it is instantiated. If the key is invalid, an error-level message will be logged to stdout. - - ### Long Stack Traces - - The [longjohn](https://www.npmjs.com/package/longjohn) module can be used with this library to enable [long-stack-traces](https://github.com/tlrobinson/long-stack-traces) and updates an `Error` object's stack trace, by adding special line, to indicate an async jump. In `longjohn` version `0.2.12`, for example, a single line of dashes is included in a stack trace, by default, to indicate an async jump. - - Before reporting an `Error` object using the `report` method of the `@google-cloud/error-reporting` module, the stack trace needs to modified to remove this special line added by `longjohn`. Since the `longjohn` module can be configured to have a custom line indicating an async jump, the process of removing the custom line should be handled by the user of the `longjohn` module. - - The following code illustrates how to update an `Error`'s stack trace, to remove the default line of dashes added by `longjohn` to indicate an async jump, before reporting the error. - ```js - const {ErrorReporting} = require('@google-cloud/error-reporting'); - - // Instantiates a client - const errors = new ErrorReporting(); + ## Setup, Configuration, and Examples - const err = new Error('Some Error'); - err.stack = (err.stack || '').split('\n') - .filter(line => !!line.replace(/-/g, '').trim()) - .join('\n'); - errors.report(err); - ``` + See the documentation for setup instructions, configuration options, and examples: https://cloud.google.com/error-reporting/docs/setup/nodejs + + Additional code samples can also be found here: https://github.com/GoogleCloudPlatform/nodejs-docs-samples/tree/main/error-reporting diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 6727579550c..161cc6a2b6a 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -65,10 +65,6 @@ Thus, if you are already using Winston or Bunyan in your application, and don't ![Error Reporting overview](https://raw.githubusercontent.com/googleapis/nodejs-error-reporting/master/doc/images/errors-overview.png) -Here's an introductory video that provides some more details: - -[![Learn about Error Reporting in Google Cloud](https://img.youtube.com/vi/cVpWVD75Hs8/0.jpg)](https://www.youtube.com/watch?v=cVpWVD75Hs8) - # When Errors Are Reported The `reportMode` configuration option is used to specify when errors are reported to the Error Reporting Console. It can have one of three values: @@ -82,255 +78,11 @@ The `ignoreEnvironmentCheck` option should not be used. However, if it is used, * `false` (default): Only report errors if the NODE_ENV environment variable is set to "production". * `true`: Always report errors regardless of the value of NODE_ENV. -See the [Configuration](#configuration) section to learn how to specify configuration options. - -## Configuration -The following code snippet lists available configuration options. All configuration options are optional. - -```js -const {ErrorReporting} = require('@google-cloud/error-reporting'); - -// Using ES6 style imports via TypeScript or Babel -// import {ErrorReporting} from '@google-cloud/error-reporting'; - -// Instantiates a client -const errors = new ErrorReporting({ - projectId: 'my-project-id', - keyFilename: '/path/to/keyfile.json', - credentials: require('./path/to/keyfile.json'), - // Specifies when errors are reported to the Error Reporting Console. - // See the "When Errors Are Reported" section for more information. - // Defaults to 'production' - reportMode: 'production', - // Determines the logging level internal to the library; levels range 0-5 - // where 0 indicates no logs should be reported and 5 indicates all logs - // should be reported. - // Defaults to 2 (warnings) - logLevel: 2, - serviceContext: { - service: 'my-service', - version: 'my-service-version' - } -}); -``` - -## Examples - -### Reporting Manually - -```js -const {ErrorReporting} = require('@google-cloud/error-reporting'); - -// Using ES6 style imports via TypeScript or Babel -// import {ErrorReporting} from '@google-cloud/error-reporting'; - -// Instantiates a client -const errors = new ErrorReporting(); - -// Use the error message builder to customize all fields ... -const errorEvt = errors.event() - .setMessage('My error message') - .setUser('root@nexus'); -errors.report(errorEvt, () => console.log('done!')); - -// or just use a regular error ... -errors.report(new Error('My error message'), () => console.log('done!')); - -// or one can even just use a string. -errors.report('My error message'); -``` - -The stack trace associated with an error can be viewed in the error reporting console. -* If the `errors.report` method is given an `ErrorMessage` object built using the `errors.event` method, the stack trace at the point where the error event was constructed will be used. -* If the `errors.report` method is given an `Error` object, the stack trace where the error was instantiated will be used. -* If the `errors.report` method is given a string, the stack trace at the point where `errors.report` is invoked will be used. - -### Using Express - -```js -const express = require('express'); - -const {ErrorReporting} = require('@google-cloud/error-reporting'); - -// Using ES6 style imports via TypeScript or Babel -// import {ErrorReporting} from '@google-cloud/error-reporting'; - -// Instantiates a client -const errors = new ErrorReporting(); - -const app = express(); - -app.get('/error', (req, res, next) => { - res.send('Something broke!'); - next(new Error('Custom error message')); -}); - -app.get('/exception', () => { - JSON.parse('{\"malformedJson\": true'); -}); - -// Note that express error handling middleware should be attached after all -// the other routes and use() calls. See [express docs][express-error-docs]. -app.use(errors.express); - -app.listen(3000); -``` - -### Using Hapi - -```js -const hapi = require('hapi'); -const {ErrorReporting} = require('@google-cloud/error-reporting'); - -// Using ES6 style imports via TypeScript or Babel -// import {ErrorReporting} from '@google-cloud/error-reporting'; - -// Instantiates a client -const errors = new ErrorReporting(); - -const server = new hapi.Server(); -server.connection({ port: 3000 }); -server.start(); - -server.route({ - method: 'GET', - path: '/error', - handler: (request, reply) => { - reply('Something broke!'); - throw new Error('Custom error message'); - } -}); - -server.register(errors.hapi); -``` - -### Using Koa - -```js -const Koa = require('koa'); -const {ErrorReporting} = require('@google-cloud/error-reporting'); - -// Using ES6 style imports via TypeScript or Babel -// import {ErrorReporting} from '@google-cloud/error-reporting'; - -// Instantiates a client -const errors = new ErrorReporting(); - -const app = new Koa(); - -app.use(errors.koa); - -app.use(function *(next) { - //This will set status and message - this.throw('Error Message', 500); -}); +## Setup, Configuration, and Examples -// response -app.use(function *(){ - this.body = 'Hello World'; -}); +See the documentation for setup instructions, configuration options, and examples: https://cloud.google.com/error-reporting/docs/setup/nodejs -app.listen(3000); -``` - -### Using Restify - -```js -const restify = require('restify'); -const {ErrorReporting} = require('@google-cloud/error-reporting'); - -// Using ES6 style imports via TypeScript or Babel -// import {ErrorReporting} from '@google-cloud/error-reporting'; - -// Instantiates a client -const errors = new ErrorReporting(); - -function respond(req, res, next) { - next(new Error('this is a restify error')); -} - -const server = restify.createServer(); - -server.use(errors.restify(server)); -server.get('/hello/:name', respond); -server.head('/hello/:name', respond); - -server.listen(3000); -``` - -## Unhandled Rejections - -Unhandled Rejections are not reported by default. The reporting of unhandled rejections can be enabled using the `reportUnhandledRejections` configuration option. See the [Configuration](#configuration) section for more details. - -If unhandled rejections are set to be reported, then, when an unhandled rejection occurs, a message is printed to standard out indicated that an unhandled rejection had occurred and is being reported, and the value causing the rejection is reported to the error-reporting console. - -## Catching and Reporting Application-wide Uncaught Errors - -Uncaught exceptions are not reported by default. *It is recommended to process `uncaughtException`s for production-deployed applications.* - -Note that uncaught exceptions are not reported by default because to do so would require adding a listener to the `uncaughtException` event. Adding such a listener without knowledge of other `uncaughtException` listeners can cause interference between the event handlers or prevent the process from terminating cleanly. As such, it is necessary for `uncaughtException`s to be reported manually. - -```js -const {ErrorReporting} = require('@google-cloud/error-reporting'); - -// Using ES6 style imports via TypeScript or Babel -// import {ErrorReporting} from '@google-cloud/error-reporting'; - -// Instantiates a client -const errors = new ErrorReporting(); - -process.on('uncaughtException', (e) => { - // Write the error to stderr. - console.error(e); - // Report that same error the Cloud Error Service - errors.report(e); -}); -``` - -More information about uncaught exception handling in Node.js and what it means for your application can be found [here](https://nodejs.org/api/process.html#process_event_uncaughtexception). - -### Using an API Key - -You may use an API key in lieu of locally-stored credentials. Please see [this document](https://support.google.com/cloud/answer/6158862) on how to set up an API key if you do not already have one. - -Once you have obtained an API key, you may provide it as part of the Error Reporting instance configuration: - -```js -const {ErrorReporting} = require('@google-cloud/error-reporting'); - -// Using ES6 style imports via TypeScript or Babel -// import {ErrorReporting} from '@google-cloud/error-reporting'; - -// Instantiates a client -const errors = new ErrorReporting({ - projectId: '{your project ID}', - key: '{your api key}' -}); -``` - -If a key is provided, the module will not attempt to authenticate using the methods associated with locally-stored credentials. We recommend using a file, environment variable, or another mechanism to store the API key rather than hard-coding it into your application's source. - -**Note:** The Error Reporting instance will check if the provided API key is invalid shortly after it is instantiated. If the key is invalid, an error-level message will be logged to stdout. - -### Long Stack Traces - -The [longjohn](https://www.npmjs.com/package/longjohn) module can be used with this library to enable [long-stack-traces](https://github.com/tlrobinson/long-stack-traces) and updates an `Error` object's stack trace, by adding special line, to indicate an async jump. In `longjohn` version `0.2.12`, for example, a single line of dashes is included in a stack trace, by default, to indicate an async jump. - -Before reporting an `Error` object using the `report` method of the `@google-cloud/error-reporting` module, the stack trace needs to modified to remove this special line added by `longjohn`. Since the `longjohn` module can be configured to have a custom line indicating an async jump, the process of removing the custom line should be handled by the user of the `longjohn` module. - -The following code illustrates how to update an `Error`'s stack trace, to remove the default line of dashes added by `longjohn` to indicate an async jump, before reporting the error. -```js -const {ErrorReporting} = require('@google-cloud/error-reporting'); - -// Instantiates a client -const errors = new ErrorReporting(); - -const err = new Error('Some Error'); -err.stack = (err.stack || '').split('\n') - .filter(line => !!line.replace(/-/g, '').trim()) - .join('\n'); -errors.report(err); -``` +Additional code samples can also be found here: https://github.com/GoogleCloudPlatform/nodejs-docs-samples/tree/main/error-reporting From d1555600392514e2b1def86cd45fa6b90e136e93 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 27 Nov 2023 10:08:53 -0800 Subject: [PATCH 485/527] chore: update cloud-rad version to ^0.4.0 (#731) Source-Link: https://github.com/googleapis/synthtool/commit/1063ef32bfe41b112bade7a2dfad4e84d0058ebd Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:e92044720ab3cb6984a70b0c6001081204375959ba3599ef6c42dd99a7783a67 Co-authored-by: Owl Bot --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 4 ++-- handwritten/error-reporting/.kokoro/release/docs-devsite.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index 40b49d2bf81..638efabfb52 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:abc68a9bbf4fa808b25fa16d3b11141059dc757dbc34f024744bba36c200b40f -# created: 2023-10-04T20:56:40.710775365Z + digest: sha256:e92044720ab3cb6984a70b0c6001081204375959ba3599ef6c42dd99a7783a67 +# created: 2023-11-10T00:24:05.581078808Z diff --git a/handwritten/error-reporting/.kokoro/release/docs-devsite.sh b/handwritten/error-reporting/.kokoro/release/docs-devsite.sh index 3596c1e4cb1..81a89f6c172 100755 --- a/handwritten/error-reporting/.kokoro/release/docs-devsite.sh +++ b/handwritten/error-reporting/.kokoro/release/docs-devsite.sh @@ -25,6 +25,6 @@ if [[ -z "$CREDENTIALS" ]]; then fi npm install -npm install --no-save @google-cloud/cloud-rad@^0.3.7 +npm install --no-save @google-cloud/cloud-rad@^0.4.0 # publish docs to devsite npx @google-cloud/cloud-rad . cloud-rad From ecbb94d2be48b83fb06818db48ad46d0acf1f27b Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Fri, 1 Dec 2023 12:22:02 -0800 Subject: [PATCH 486/527] chore: remove compile protos from post processor (#732) * chore: remove compile protos from post processor Source-Link: https://github.com/googleapis/synthtool/commit/73248044166b6ba2dd102862f8cd2c4829e868db Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:bfe4592953269bfa8d135200ca1b17809f106a337a885d7ecc12cd2a9998e98a Co-authored-by: Owl Bot Co-authored-by: meredithslota --- handwritten/error-reporting/.github/.OwlBot.lock.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml index 638efabfb52..83f86214790 100644 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ b/handwritten/error-reporting/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:e92044720ab3cb6984a70b0c6001081204375959ba3599ef6c42dd99a7783a67 -# created: 2023-11-10T00:24:05.581078808Z + digest: sha256:bfe4592953269bfa8d135200ca1b17809f106a337a885d7ecc12cd2a9998e98a +# created: 2023-11-15T20:00:24.246072277Z \ No newline at end of file From 9e01945a8a933d3ee89776f22699bed2a540cc20 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 16 Jan 2024 16:04:31 +0100 Subject: [PATCH 487/527] chore(deps): update dependency c8 to v9 (#736) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index fdeed8db552..7dc28cabb50 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -50,7 +50,7 @@ "@types/restify": "^8.0.0", "@types/uuid": "^9.0.0", "boom": "^7.3.0", - "c8": "^8.0.1", + "c8": "^9.0.0", "codecov": "^3.5.0", "express": "^4.17.1", "gts": "^5.0.0", From 7b9833e014b9d08f615af296afeb81370eaf195f Mon Sep 17 00:00:00 2001 From: danieljbruce Date: Wed, 15 May 2024 15:28:05 -0400 Subject: [PATCH 488/527] test: Coerce type to fix broken tests due to dependency change (#742) * test: Coerce type to fix broken tests due to depend * Try downgrading the dependency * adjust dev dependency * Upgrade dependency again * upgrade compodoc one last time * Add comment * another comment * Remove comment --- handwritten/error-reporting/package.json | 2 +- handwritten/error-reporting/test/unit/interfaces/restify.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 7dc28cabb50..7fe8be846fb 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -35,7 +35,7 @@ "console-log-level": "^1.4.1" }, "devDependencies": { - "@compodoc/compodoc": "^1.1.10", + "@compodoc/compodoc": "1.1.23", "@hapi/hapi": "^21.0.0", "@types/boom": "^7.2.1", "@types/console-log-level": "^1.4.0", diff --git a/handwritten/error-reporting/test/unit/interfaces/restify.ts b/handwritten/error-reporting/test/unit/interfaces/restify.ts index e4dc11bc9fa..74748520355 100644 --- a/handwritten/error-reporting/test/unit/interfaces/restify.ts +++ b/handwritten/error-reporting/test/unit/interfaces/restify.ts @@ -25,7 +25,7 @@ import {handlerSetup as restifyInterface} from '../../../src/interfaces/restify' if (!EventEmitter.prototype.listenerCount) { EventEmitter.prototype.listenerCount = function (this, eventName) { // eslint-disable-next-line node/no-deprecated-api - return EventEmitter.listenerCount(this, eventName); + return EventEmitter.listenerCount(this, eventName as string); }; } From 53fad36fd81fca70a42429bc1e4f7c74468e6a47 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 19 Jun 2024 16:29:15 +0200 Subject: [PATCH 489/527] chore(deps): update dependency uuid to v10 (#745) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 7fe8be846fb..6eb69436ec3 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -64,6 +64,6 @@ "proxyquire": "^2.1.0", "restify": "^11.0.0", "typescript": "^5.1.6", - "uuid": "^9.0.0" + "uuid": "^10.0.0" } } From 33ce1fd0c9bb547f2d9665533614619ad400977f Mon Sep 17 00:00:00 2001 From: miguel Date: Tue, 25 Nov 2025 10:09:33 -0800 Subject: [PATCH 490/527] chore!: support node 18 (#776) * chore: use pack-n-play instead of post-install --- .../.github/sync-repo-settings.yaml | 5 +- .../error-reporting/.kokoro/common.cfg | 2 +- .../.kokoro/continuous/node14/common.cfg | 2 +- .../.kokoro/presubmit/node14/common.cfg | 2 +- .../.kokoro/release/docs-devsite.cfg | 2 +- .../error-reporting/.kokoro/release/docs.cfg | 2 +- .../.kokoro/release/publish.cfg | 2 +- .../error-reporting/.kokoro/samples-test.sh | 2 +- .../error-reporting/.kokoro/system-test.sh | 2 +- handwritten/error-reporting/.kokoro/test.bat | 2 +- handwritten/error-reporting/.kokoro/test.sh | 2 +- handwritten/error-reporting/package.json | 57 ++-- .../error-reporting/src/configuration.ts | 8 +- .../src/google-apis/auth-client.ts | 24 +- handwritten/error-reporting/src/index.ts | 8 +- .../error-reporting/src/interfaces/express.ts | 6 +- .../error-reporting/src/interfaces/hapi.ts | 6 +- .../error-reporting/src/interfaces/koa.ts | 4 +- .../error-reporting/src/interfaces/koa2.ts | 4 +- .../error-reporting/src/interfaces/manual.ts | 22 +- .../src/interfaces/message-builder.ts | 2 +- .../error-reporting/src/interfaces/restify.ts | 18 +- handwritten/error-reporting/src/logger.ts | 2 +- .../src/populate-error-message.ts | 6 +- .../src/request-extractors/express.ts | 2 +- .../src/request-extractors/koa.ts | 2 +- .../system-test/error-reporting.ts | 97 +++--- .../system-test/test-install.ts | 320 +++++++----------- .../test-servers/express_scaffold_server.ts | 4 +- .../test/test-servers/hapi_scaffold_server.ts | 11 +- .../test-servers/manual_scaffold_server.ts | 2 +- .../test/unit/classes/error-message.ts | 106 +++--- .../test/unit/configuration.ts | 32 +- .../test/unit/google-apis/auth-client.ts | 20 +- .../test/unit/interfaces/express.ts | 12 +- .../test/unit/interfaces/hapi.ts | 24 +- .../test/unit/interfaces/manual.ts | 30 +- .../test/unit/interfaces/restify.ts | 13 +- .../error-reporting/test/unit/logger.ts | 14 +- .../test/unit/populate-error-message.ts | 34 +- .../test/unit/request-extractors/express.ts | 14 +- .../test/unit/request-extractors/hapi.ts | 14 +- .../test/unit/request-extractors/koa.ts | 6 +- .../test/unit/request-extractors/manual.ts | 16 +- .../test/unit/service-configuration.ts | 40 +-- handwritten/error-reporting/test/util.ts | 2 +- .../utils/errors-api-transport.ts | 2 +- handwritten/error-reporting/utils/fuzzer.ts | 32 +- 48 files changed, 483 insertions(+), 558 deletions(-) diff --git a/handwritten/error-reporting/.github/sync-repo-settings.yaml b/handwritten/error-reporting/.github/sync-repo-settings.yaml index 022d792f6a3..b32c4a73b80 100644 --- a/handwritten/error-reporting/.github/sync-repo-settings.yaml +++ b/handwritten/error-reporting/.github/sync-repo-settings.yaml @@ -7,12 +7,11 @@ branchProtectionRules: requiredStatusCheckContexts: - "ci/kokoro: Samples test" - "ci/kokoro: System test" - - docs - lint - - test (14) - - test (16) - test (18) - test (20) + - test (22) + - test (24) - cla/google - windows - OwlBot Post Processor diff --git a/handwritten/error-reporting/.kokoro/common.cfg b/handwritten/error-reporting/.kokoro/common.cfg index 1090e3c7f9a..be5da7811e9 100644 --- a/handwritten/error-reporting/.kokoro/common.cfg +++ b/handwritten/error-reporting/.kokoro/common.cfg @@ -16,7 +16,7 @@ build_file: "nodejs-error-reporting/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:14-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:18-user" } env_vars: { key: "TRAMPOLINE_BUILD_FILE" diff --git a/handwritten/error-reporting/.kokoro/continuous/node14/common.cfg b/handwritten/error-reporting/.kokoro/continuous/node14/common.cfg index 1090e3c7f9a..be5da7811e9 100644 --- a/handwritten/error-reporting/.kokoro/continuous/node14/common.cfg +++ b/handwritten/error-reporting/.kokoro/continuous/node14/common.cfg @@ -16,7 +16,7 @@ build_file: "nodejs-error-reporting/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:14-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:18-user" } env_vars: { key: "TRAMPOLINE_BUILD_FILE" diff --git a/handwritten/error-reporting/.kokoro/presubmit/node14/common.cfg b/handwritten/error-reporting/.kokoro/presubmit/node14/common.cfg index 5de3055ec6b..4e02c8c9821 100644 --- a/handwritten/error-reporting/.kokoro/presubmit/node14/common.cfg +++ b/handwritten/error-reporting/.kokoro/presubmit/node14/common.cfg @@ -16,7 +16,7 @@ build_file: "nodejs-error-reporting/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:14-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:18-user" } env_vars: { key: "TRAMPOLINE_BUILD_FILE" diff --git a/handwritten/error-reporting/.kokoro/release/docs-devsite.cfg b/handwritten/error-reporting/.kokoro/release/docs-devsite.cfg index 098e9a8e3b9..644d3f58a34 100644 --- a/handwritten/error-reporting/.kokoro/release/docs-devsite.cfg +++ b/handwritten/error-reporting/.kokoro/release/docs-devsite.cfg @@ -11,7 +11,7 @@ before_action { # doc publications use a Python image. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:14-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:18-user" } # Download trampoline resources. diff --git a/handwritten/error-reporting/.kokoro/release/docs.cfg b/handwritten/error-reporting/.kokoro/release/docs.cfg index 4b250678558..827bfdb999d 100644 --- a/handwritten/error-reporting/.kokoro/release/docs.cfg +++ b/handwritten/error-reporting/.kokoro/release/docs.cfg @@ -11,7 +11,7 @@ before_action { # doc publications use a Python image. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:14-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:18-user" } # Download trampoline resources. diff --git a/handwritten/error-reporting/.kokoro/release/publish.cfg b/handwritten/error-reporting/.kokoro/release/publish.cfg index ba4cdc4bd0a..cabed4c0cdf 100644 --- a/handwritten/error-reporting/.kokoro/release/publish.cfg +++ b/handwritten/error-reporting/.kokoro/release/publish.cfg @@ -30,7 +30,7 @@ build_file: "nodejs-error-reporting/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:14-user" + value: "gcr.io/cloud-devrel-kokoro-resources/node:18-user" } env_vars: { diff --git a/handwritten/error-reporting/.kokoro/samples-test.sh b/handwritten/error-reporting/.kokoro/samples-test.sh index 8c5d108cb58..c1cb0fc7701 100755 --- a/handwritten/error-reporting/.kokoro/samples-test.sh +++ b/handwritten/error-reporting/.kokoro/samples-test.sh @@ -56,7 +56,7 @@ fi # codecov combines coverage across integration and unit tests. Include # the logic below for any environment you wish to collect coverage for: -COVERAGE_NODE=14 +COVERAGE_NODE=18 if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then NYC_BIN=./node_modules/nyc/bin/nyc.js if [ -f "$NYC_BIN" ]; then diff --git a/handwritten/error-reporting/.kokoro/system-test.sh b/handwritten/error-reporting/.kokoro/system-test.sh index 0b3043d268c..a90d5cfec89 100755 --- a/handwritten/error-reporting/.kokoro/system-test.sh +++ b/handwritten/error-reporting/.kokoro/system-test.sh @@ -49,7 +49,7 @@ npm run system-test # codecov combines coverage across integration and unit tests. Include # the logic below for any environment you wish to collect coverage for: -COVERAGE_NODE=14 +COVERAGE_NODE=18 if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then NYC_BIN=./node_modules/nyc/bin/nyc.js if [ -f "$NYC_BIN" ]; then diff --git a/handwritten/error-reporting/.kokoro/test.bat b/handwritten/error-reporting/.kokoro/test.bat index 0bb12405231..db22dba191e 100644 --- a/handwritten/error-reporting/.kokoro/test.bat +++ b/handwritten/error-reporting/.kokoro/test.bat @@ -21,7 +21,7 @@ cd .. @rem we upgrade Node.js in the image: SET PATH=%PATH%;/cygdrive/c/Program Files/nodejs/npm -call nvm use v14.17.3 +call nvm use v18.19.1 call which node call npm install || goto :error diff --git a/handwritten/error-reporting/.kokoro/test.sh b/handwritten/error-reporting/.kokoro/test.sh index 862d478d324..0d9f6392a75 100755 --- a/handwritten/error-reporting/.kokoro/test.sh +++ b/handwritten/error-reporting/.kokoro/test.sh @@ -39,7 +39,7 @@ npm test # codecov combines coverage across integration and unit tests. Include # the logic below for any environment you wish to collect coverage for: -COVERAGE_NODE=14 +COVERAGE_NODE=18 if npx check-node-version@3.3.0 --silent --node $COVERAGE_NODE; then NYC_BIN=./node_modules/nyc/bin/nyc.js if [ -f "$NYC_BIN" ]; then diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 6eb69436ec3..87d0cb9e15a 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -5,7 +5,7 @@ "license": "Apache-2.0", "author": "Google Inc.", "engines": { - "node": ">=14.0.0" + "node": ">=18" }, "repository": "googleapis/nodejs-error-reporting", "main": "./build/src/index.js", @@ -31,39 +31,42 @@ "precompile": "gts clean" }, "dependencies": { - "@google-cloud/common": "^5.0.0", + "@google-cloud/common": "^6.0.0", "console-log-level": "^1.4.1" }, "devDependencies": { - "@compodoc/compodoc": "1.1.23", - "@hapi/hapi": "^21.0.0", - "@types/boom": "^7.2.1", + "@compodoc/compodoc": "1.1.25", + "@hapi/hapi": "^21.4.4", + "@types/boom": "^7.3.5", "@types/console-log-level": "^1.4.0", - "@types/express": "^4.17.0", - "@types/hapi__hapi": "^20.0.5", - "@types/json-stable-stringify": "^1.0.32", - "@types/koa": "^2.0.48", - "@types/mocha": "^9.0.0", - "@types/node": "^20.4.9", - "@types/once": "^1.4.0", - "@types/proxyquire": "^1.3.28", + "@types/express": "^4.17.21", + "@types/json-stable-stringify": "^1.2.0", + "@types/koa": "^3.0.1", + "@types/mocha": "^10.0.10", + "@types/node": "^24.10.1", + "@types/once": "^1.4.5", + "@types/proxyquire": "^1.3.31", "@types/restify": "^8.0.0", - "@types/uuid": "^9.0.0", - "boom": "^7.3.0", - "c8": "^9.0.0", - "codecov": "^3.5.0", + "@types/uuid": "^8.3.0", + "boom": "^7.2.0", + "c8": "^10.1.3", + "codecov": "^3.6.2", "express": "^4.17.1", - "gts": "^5.0.0", + "gts": "^6.0.2", + "joi": "^17.0.0", "js-green-licenses": "^4.0.0", - "json-stable-stringify": "^1.0.1", - "koa": "^2.7.0", - "linkinator": "^4.0.0", - "mocha": "^9.2.2", - "nock": "^13.0.0", - "post-install-check": "0.0.1", - "proxyquire": "^2.1.0", + "json-stable-stringify": "^1.3.0", + "koa": "^3.1.1", + "linkinator": "^6.1.2", + "mocha": "^11.7.5", + "nock": "^14.0.10", + "pack-n-play": "^2.0.0", + "proxyquire": "^2.1.3", "restify": "^11.0.0", - "typescript": "^5.1.6", - "uuid": "^10.0.0" + "typescript": "^5.9.3", + "uuid": "^8.3.2" + }, + "overrides": { + "undici": "5.28.4" } } diff --git a/handwritten/error-reporting/src/configuration.ts b/handwritten/error-reporting/src/configuration.ts index 3dbbba7edce..279a28c9bff 100644 --- a/handwritten/error-reporting/src/configuration.ts +++ b/handwritten/error-reporting/src/configuration.ts @@ -306,7 +306,7 @@ export class Configuration { if (!isReportModeValid) { throw new Error( 'config.reportMode must a string that is one ' + - 'of "production", "always", or "never".' + 'of "production", "always", or "never".', ); } @@ -316,7 +316,7 @@ export class Configuration { if (hasEnvCheck) { this._logger.warn( 'The "ignoreEnvironmentCheck" config option is deprecated. ' + - 'Use the "reportMode" config option instead.' + 'Use the "reportMode" config option instead.', ); } if (hasEnvCheck && hasReportMode) { @@ -324,7 +324,7 @@ export class Configuration { [ 'Both the "ignoreEnvironmentCheck" and "reportMode" configuration options', 'have been specified. The "reportMode" option will take precedence.', - ].join(' ') + ].join(' '), ); this._determineReportMode(); } else if (hasEnvCheck) { @@ -349,7 +349,7 @@ export class Configuration { 'if and only if the NODE_ENV environment variable is set to "production".', 'Errors will not be reported. To have errors always reported, regardless of the', 'value of NODE_ENV, set the reportMode configuration option to "always".', - ].join(' ') + ].join(' '), ); } diff --git a/handwritten/error-reporting/src/google-apis/auth-client.ts b/handwritten/error-reporting/src/google-apis/auth-client.ts index 3313d447dda..abd66ed8912 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.ts +++ b/handwritten/error-reporting/src/google-apis/auth-client.ts @@ -105,14 +105,14 @@ export class RequestHandler extends Service { scopes: SCOPES, projectIdRequired: true, }, - serviceOptions + serviceOptions, ); this._config = config; this._logger = logger; if (!this._config.getShouldReportErrorsToAPI()) { this._logger.info( - 'Not configured to send errors to the API; skipping Google Cloud API Authentication.' + 'Not configured to send errors to the API; skipping Google Cloud API Authentication.', ); } else if (tryAuthenticate) { this.authClient.getAccessToken().then( @@ -123,9 +123,9 @@ export class RequestHandler extends Service { 'Unable to find credential information on instance. This library', 'will be unable to communicate with the Google Cloud API to save', 'errors. Message: ' + err.message, - ].join(' ') + ].join(' '), ); - } + }, ); } else { this.request( @@ -147,10 +147,10 @@ export class RequestHandler extends Service { 'Encountered an error while attempting to validate the provided', 'API key', ].join(' '), - err + err, ); } - } + }, ); this._logger.info('API key provided; skipping OAuth2 token request.'); } @@ -172,8 +172,8 @@ export class RequestHandler extends Service { userCb?: ( err: Error | null, response: http.ServerResponse | null, - body: {} - ) => void + body: {}, + ) => void, ) { const cb: Function = ( typeof userCb === 'function' ? userCb : RequestHandler.noOp @@ -197,11 +197,11 @@ export class RequestHandler extends Service { 'Encountered an error while attempting to transmit an error to', 'the Error Reporting API.', ].join(' '), - err + err, ); } cb(err, response, body); - } + }, ); } else { cb( @@ -211,10 +211,10 @@ export class RequestHandler extends Service { 'if and only if the NODE_ENV environment variable is set to "production".', 'Errors will not be reported. To have errors always reported, regardless of the', 'value of NODE_ENV, set the reportMode configuration option to "always".', - ].join(' ') + ].join(' '), ), null, - null + null, ); } } diff --git a/handwritten/error-reporting/src/index.ts b/handwritten/error-reporting/src/index.ts index e3dd66ae8fe..495b6af2715 100644 --- a/handwritten/error-reporting/src/index.ts +++ b/handwritten/error-reporting/src/index.ts @@ -110,7 +110,7 @@ export class ErrorReporting { err: any, request?: manualRequestExtractor.Request, customMessage?: string, - callback?: manualInterface.Callback | {} | string + callback?: manualInterface.Callback | {} | string, ) => ErrorMessage; event!: () => ErrorMessage; hapi!: { @@ -142,7 +142,7 @@ export class ErrorReporting { 'Unhandled promise rejection: ' + reason + '. This rejection has been reported to the ' + - 'Google Cloud Platform error-reporting console.' + 'Google Cloud Platform error-reporting console.', ); this.report(reason); }); @@ -159,7 +159,7 @@ export class ErrorReporting { this.report = manualInterface.handlerSetup( this._client, this._config, - this._logger + this._logger, ); /** @@ -196,7 +196,7 @@ export class ErrorReporting { */ this.express = expressInterface.makeExpressHandler( this._client, - this._config + this._config, ); /** diff --git a/handwritten/error-reporting/src/interfaces/express.ts b/handwritten/error-reporting/src/interfaces/express.ts index c5b003d2f6e..4145c7eae5c 100644 --- a/handwritten/error-reporting/src/interfaces/express.ts +++ b/handwritten/error-reporting/src/interfaces/express.ts @@ -31,7 +31,7 @@ import {expressRequestInformationExtractor} from '../request-extractors/express' */ export function makeExpressHandler( client: RequestHandler, - config: Configuration + config: Configuration, ) { /** * The Express Error Handler function is an interface for the error handler @@ -57,8 +57,8 @@ export function makeExpressHandler( .consumeRequestInformation( expressRequestInformationExtractor( req as express.Request, - res as express.Response - ) + res as express.Response, + ), ) .setServiceContext(ctxService, ctxVersion); diff --git a/handwritten/error-reporting/src/interfaces/hapi.ts b/handwritten/error-reporting/src/interfaces/hapi.ts index 9c63d918b0b..c6184bb9ac9 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.ts +++ b/handwritten/error-reporting/src/interfaces/hapi.ts @@ -79,7 +79,7 @@ export function makeHapiPlugin(client: RequestHandler, config: Configuration) { // eslint-disable-next-line @typescript-eslint/no-explicit-any server: any, options: {}, - next?: Function + next?: Function, ) { if (server) { if (server.events && server.events.on) { @@ -96,7 +96,7 @@ export function makeHapiPlugin(client: RequestHandler, config: Configuration) { if (event.error && event.channel === 'error') { client.sendError(hapiErrorHandler(event.error, request)); } - } + }, ); } else { if (typeof server.on === 'function') { @@ -120,7 +120,7 @@ export function makeHapiPlugin(client: RequestHandler, config: Configuration) { const em = hapiErrorHandler( new Error(boom.message), request, - config + config, ); client.sendError(em); } diff --git a/handwritten/error-reporting/src/interfaces/koa.ts b/handwritten/error-reporting/src/interfaces/koa.ts index ab7cbf3028c..e7d26ad6a52 100644 --- a/handwritten/error-reporting/src/interfaces/koa.ts +++ b/handwritten/error-reporting/src/interfaces/koa.ts @@ -42,7 +42,7 @@ export function koaErrorHandler(client: RequestHandler, config: Configuration) { */ return function* ( this: {request: Request; response: Response}, - next: Function + next: Function, ) { const svc = config.getServiceContext(); @@ -51,7 +51,7 @@ export function koaErrorHandler(client: RequestHandler, config: Configuration) { } catch (err) { const em = new ErrorMessage() .consumeRequestInformation( - koaRequestInformationExtractor(this.request, this.response) + koaRequestInformationExtractor(this.request, this.response), ) .setServiceContext(svc.service, svc.version); diff --git a/handwritten/error-reporting/src/interfaces/koa2.ts b/handwritten/error-reporting/src/interfaces/koa2.ts index 3d4e6228f25..fae0e35988e 100644 --- a/handwritten/error-reporting/src/interfaces/koa2.ts +++ b/handwritten/error-reporting/src/interfaces/koa2.ts @@ -40,7 +40,7 @@ type KoaNext = Function; */ export function koa2ErrorHandler( client: RequestHandler, - config: Configuration + config: Configuration, ) { /** * The actual error handler for the Koa plugin attempts to await the results @@ -59,7 +59,7 @@ export function koa2ErrorHandler( } catch (err) { const em = new ErrorMessage() .consumeRequestInformation( - koaRequestInformationExtractor(ctx.request, ctx.response) + koaRequestInformationExtractor(ctx.request, ctx.response), ) .setServiceContext(svc.service, svc.version); diff --git a/handwritten/error-reporting/src/interfaces/manual.ts b/handwritten/error-reporting/src/interfaces/manual.ts index 779fb8a0b8d..fdf4cb1c183 100644 --- a/handwritten/error-reporting/src/interfaces/manual.ts +++ b/handwritten/error-reporting/src/interfaces/manual.ts @@ -24,7 +24,7 @@ import {Request} from '../request-extractors/manual'; export type Callback = ( err: Error | null, response: http.ServerResponse | null, - body: {} + body: {}, ) => void; // eslint-disable-next-line @typescript-eslint/no-explicit-any @@ -47,7 +47,7 @@ type AnyError = any; export function handlerSetup( client: RequestHandler, config: Configuration, - logger: Logger + logger: Logger, ) { /** * The interface for manually reporting errors to the Google Error API in @@ -72,35 +72,35 @@ export function handlerSetup( function reportManualError(err: AnyError, request: Request): ErrorMessage; function reportManualError( err: AnyError, - customMessage: string + customMessage: string, ): ErrorMessage; function reportManualError(err: AnyError, callback: Callback): ErrorMessage; function reportManualError( err: AnyError, request: Request, - callback: Callback + callback: Callback, ): ErrorMessage; function reportManualError( err: AnyError, request: Request, - customMessage: string + customMessage: string, ): ErrorMessage; function reportManualError( err: AnyError, customMessage: string, - callback: Callback + callback: Callback, ): ErrorMessage; function reportManualError( err: AnyError, request: Request, customMessage: string, - callback: Callback + callback: Callback, ): ErrorMessage; function reportManualError( err: AnyError, request?: Request | Callback | string, customMessage?: Callback | string, - callback?: Callback | {} | string + callback?: Callback | {} | string, ): ErrorMessage { let em; if (typeof request === 'string') { @@ -140,7 +140,7 @@ export function handlerSetup( err.message + '" but without a construction site ' + 'stack trace. This error might not be visible in the ' + - 'error reporting console.' + 'error reporting console.', ); } em = err; @@ -148,7 +148,7 @@ export function handlerSetup( em = new ErrorMessage(); em.setServiceContext( config.getServiceContext().service, - config.getServiceContext().version + config.getServiceContext().version, ); populateErrorMessage(err, em); } @@ -156,7 +156,7 @@ export function handlerSetup( if (request?.toString() === '[object Object]') { // TODO: Address this explicit cast em.consumeRequestInformation( - manualRequestInformationExtractor(request as Request) + manualRequestInformationExtractor(request as Request), ); } diff --git a/handwritten/error-reporting/src/interfaces/message-builder.ts b/handwritten/error-reporting/src/interfaces/message-builder.ts index b871d15364a..65ebc02293f 100644 --- a/handwritten/error-reporting/src/interfaces/message-builder.ts +++ b/handwritten/error-reporting/src/interfaces/message-builder.ts @@ -47,7 +47,7 @@ export function handlerSetup(config: Configuration) { const em = new ErrorMessage().setServiceContext( config.getServiceContext().service, - config.getServiceContext().version + config.getServiceContext().version, ); ( em as {} as { diff --git a/handwritten/error-reporting/src/interfaces/restify.ts b/handwritten/error-reporting/src/interfaces/restify.ts index 15735a1e05c..23392deff11 100644 --- a/handwritten/error-reporting/src/interfaces/restify.ts +++ b/handwritten/error-reporting/src/interfaces/restify.ts @@ -39,7 +39,7 @@ function restifyErrorHandler( client: RequestHandler, config: Configuration, err: {}, - em: ErrorMessage + em: ErrorMessage, ) { const svc = config.getServiceContext(); em.setServiceContext(svc.service, svc.version); @@ -68,7 +68,7 @@ function restifyRequestFinishHandler( client: RequestHandler, config: Configuration, req: restify.Request, - res: restify.Response + res: restify.Response, ) { let em; @@ -82,8 +82,8 @@ function restifyRequestFinishHandler( // expected for `expressRequestInformationExtractor` expressRequestInformationExtractor.expressRequestInformationExtractor( req as {} as express.Request, - res as {} as express.Response - ) + res as {} as express.Response, + ), ); restifyErrorHandler(client, config, (res as {} as {_body: {}})._body, em); @@ -113,7 +113,7 @@ function restifyRequestHandler( config: Configuration, req: restify.Request, res: restify.Response, - next: Function + next: Function, ) { // TODO: Address the fact that a cast is needed to use `listener` let listener = {}; @@ -127,7 +127,7 @@ function restifyRequestHandler( restifyRequestFinishHandler(client, config, req, res); res.removeListener( 'finish', - listener as {} as (...args: Array<{}>) => void + listener as {} as (...args: Array<{}>) => void, ); }; @@ -157,14 +157,14 @@ function restifyRequestHandler( function serverErrorHandler( client: RequestHandler, config: Configuration, - server: restify.Server + server: restify.Server, ) { server.on('uncaughtException', (req, res, reqConfig, err) => { const em = new ErrorMessage().consumeRequestInformation( expressRequestInformationExtractor.expressRequestInformationExtractor( req, - res - ) + res, + ), ); restifyErrorHandler(client, config, err, em); diff --git a/handwritten/error-reporting/src/logger.ts b/handwritten/error-reporting/src/logger.ts index 82e36981dde..27fffca28d9 100644 --- a/handwritten/error-reporting/src/logger.ts +++ b/handwritten/error-reporting/src/logger.ts @@ -76,7 +76,7 @@ export function createLogger(config?: ConfigurationOptions): Logger { } else { throw new Error( 'config.logLevel must be a number or decimal ' + - 'representation of a number in string form' + 'representation of a number in string form', ); } } diff --git a/handwritten/error-reporting/src/populate-error-message.ts b/handwritten/error-reporting/src/populate-error-message.ts index 2be4d0f6bb4..30a0ecba6a3 100644 --- a/handwritten/error-reporting/src/populate-error-message.ts +++ b/handwritten/error-reporting/src/populate-error-message.ts @@ -66,7 +66,7 @@ export function populateErrorMessage(ob: any, em: ErrorMessage) { */ function populateFromError( err: Error & PopulatedObject, - errorMessage: ErrorMessage + errorMessage: ErrorMessage, ) { errorMessage.setMessage(err.stack!); @@ -80,7 +80,7 @@ function populateFromError( ) { errorMessage.setServiceContext( err.serviceContext!.service!, - err.serviceContext!.version + err.serviceContext!.version, ); } } @@ -138,7 +138,7 @@ function populateFromObject(ob: PopulatedObject, errorMessage: ErrorMessage) { ) { errorMessage.setServiceContext( ob.serviceContext!.service!, - ob.serviceContext!.version + ob.serviceContext!.version, ); } } diff --git a/handwritten/error-reporting/src/request-extractors/express.ts b/handwritten/error-reporting/src/request-extractors/express.ts index 79a1481afb6..0ce39e089f1 100644 --- a/handwritten/error-reporting/src/request-extractors/express.ts +++ b/handwritten/error-reporting/src/request-extractors/express.ts @@ -48,7 +48,7 @@ function extractRemoteAddressFromRequest(req: express.Request) { */ export function expressRequestInformationExtractor( req: express.Request, - res: express.Response + res: express.Response, ) { const returnObject = new RequestInformationContainer(); diff --git a/handwritten/error-reporting/src/request-extractors/koa.ts b/handwritten/error-reporting/src/request-extractors/koa.ts index 01da880b1f2..c46a125d690 100644 --- a/handwritten/error-reporting/src/request-extractors/koa.ts +++ b/handwritten/error-reporting/src/request-extractors/koa.ts @@ -28,7 +28,7 @@ import {RequestInformationContainer} from '../classes/request-information-contai */ export function koaRequestInformationExtractor( req: koa.Request, - res: koa.Response + res: koa.Response, ) { const returnObject = new RequestInformationContainer(); diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index 3659fdc2da9..9d47bbc1c26 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -59,7 +59,7 @@ class InstancedEnv { ([key, value]) => envKeys.includes(key) && typeof value !== 'string' && - delete envVars[key] + delete envVars[key], ); return envVars; } @@ -107,7 +107,6 @@ class InstancedEnv { } } -// eslint-disable-next-line node/no-missing-require const env = new InstancedEnv({ projectId: process.env.GCLOUD_TESTS_PROJECT_ID, keyFilename: process.env.GCLOUD_TESTS_KEY, @@ -145,9 +144,7 @@ function delay(ms: number) { } if (!shouldRun()) { - console.log('Skipping error-reporting system tests'); - // eslint-disable-next-line no-process-exit - process.exit(1); + throw new Error('Skipping error-reporting system tests'); } describe('Request/Response lifecycle mocking', () => { @@ -164,14 +161,14 @@ describe('Request/Response lifecycle mocking', () => { env.setProjectId().setKeyFilename().setProduction(); fakeService = nock( 'https://clouderrorreporting.googleapis.com/v1beta1/projects/' + - process.env.GCLOUD_PROJECT + process.env.GCLOUD_PROJECT, ) .persist() .post('/events:report?'); logger = createLogger({logLevel: 5}); client = new RequestHandler( new Configuration({reportMode: 'always'}, logger), - logger + logger, ); }); @@ -190,7 +187,7 @@ describe('Request/Response lifecycle mocking', () => { assert(err instanceof Error); assert.strictEqual( err!.message.toLowerCase(), - 'message cannot be empty.' + 'message cannot be empty.', ); assert(response?.toString() === '[object Object]'); assert.strictEqual(response!.statusCode, 400); @@ -222,11 +219,11 @@ describe('Request/Response lifecycle mocking', () => { const logger = createLogger({logLevel: 5}); const client = new RequestHandler( new Configuration({key, reportMode: 'always'}, logger), - logger + logger, ); const fakeService = nock( 'https://clouderrorreporting.googleapis.com/v1beta1/projects/' + - process.env.GCLOUD_PROJECT + process.env.GCLOUD_PROJECT, ) .persist() .post('/events:report'); @@ -237,7 +234,7 @@ describe('Request/Response lifecycle mocking', () => { client.sendError(errorMessage, () => { done(); }); - } + }, ); it('Should still execute the request with a callback-less invocation', done => { @@ -266,7 +263,7 @@ describe('Client creation', () => { projectId: env.injected().projectId, reportMode: 'always', }, - logger + logger, ); this.timeout(10000); assert.doesNotThrow(() => { @@ -277,13 +274,13 @@ describe('Client creation', () => { assert.strictEqual(response!.statusCode, 200); assert( body?.toString() === '[object Object]' && - Object.keys(body).length === 0 + Object.keys(body).length === 0, ); done(); - } + }, ); }); - } + }, ); it( @@ -302,13 +299,13 @@ describe('Client creation', () => { assert.strictEqual(response!.statusCode, 200); assert( body?.toString() === '[object Object]' && - Object.keys(body).length === 0 + Object.keys(body).length === 0, ); done(); - } + }, ); }); - } + }, ); it( @@ -322,7 +319,7 @@ describe('Client creation', () => { projectId: '' + Number(env.injected().projectNumber), reportMode: 'always', }, - logger + logger, ); this.timeout(10000); assert.doesNotThrow(() => { @@ -333,13 +330,13 @@ describe('Client creation', () => { assert.strictEqual(response!.statusCode, 200); assert( body?.toString() === '[object Object]' && - Object.keys(body).length === 0 + Object.keys(body).length === 0, ); done(); - } + }, ); }); - } + }, ); it( @@ -358,13 +355,13 @@ describe('Client creation', () => { assert.strictEqual(response!.statusCode, 200); assert( body?.toString() === '[object Object]' && - Object.keys(body).length === 0 + Object.keys(body).length === 0, ); done(); - } + }, ); }); - } + }, ); }); @@ -392,7 +389,7 @@ describe('Expected Behavior', () => { const logger = createLogger({logLevel: 5, reportMode: 'production'}); const client = new RequestHandler( new Configuration(undefined, logger), - logger + logger, ); client.sendError({} as ErrorMessage, (err, response) => { @@ -413,7 +410,7 @@ describe('Expected Behavior', () => { projectId: env.injected().projectId, reportMode: 'always', }, - logger + logger, ); const client = new RequestHandler(cfg, logger); @@ -434,7 +431,7 @@ describe('Expected Behavior', () => { projectId: '' + Number(env.injected().projectNumber), reportMode: 'always', }, - logger + logger, ); const client = new RequestHandler(cfg, logger); client.sendError(em, (err, response, body) => { @@ -497,7 +494,7 @@ describe('error-reporting', () => { projectId: env.projectId, keyFilename: process.env.GCLOUD_TESTS_KEY, }, - extraConfig || {} + extraConfig || {}, ); errors = new ErrorReporting(initConfiguration); const logger = createLogger(initConfiguration); @@ -512,7 +509,7 @@ describe('error-reporting', () => { async function verifyAllGroups( messageTest: (message: string) => void, maxCount: number, - timeout: number + timeout: number, ) { const start = Date.now(); let groups: ErrorGroupStats[] = []; @@ -526,13 +523,13 @@ describe('error-reporting', () => { SERVICE, VERSION, PAGE_SIZE, - prevPageToken + prevPageToken, ); prevPageToken = response.nextPageToken; allGroups = response.errorGroupStats || []; assert.ok( allGroups, - 'Failed to get groups from the Error Reporting API' + 'Failed to get groups from the Error Reporting API', ); const filteredGroups = allGroups!.filter(errItem => { @@ -556,7 +553,7 @@ describe('error-reporting', () => { async function verifyServerResponse( messageTest: (message: string) => void, maxCount: number, - timeout: number + timeout: number, ) { const matchedErrors = await verifyAllGroups(messageTest, maxCount, timeout); assert.strictEqual( @@ -564,12 +561,12 @@ describe('error-reporting', () => { maxCount, `Expected to find ${maxCount} error items but found ${ matchedErrors.length - }: ${JSON.stringify(matchedErrors, null, 2)}` + }: ${JSON.stringify(matchedErrors, null, 2)}`, ); const errItem = matchedErrors[0]; assert.ok( errItem, - 'Retrieved an error item from the Error Reporting API but it is falsy.' + 'Retrieved an error item from the Error Reporting API but it is falsy.', ); const rep = errItem.representative; assert.ok(rep, 'Expected the error item to have representative'); @@ -578,7 +575,7 @@ describe('error-reporting', () => { assert.strictEqual( rep.message.indexOf(SRC_ROOT), -1, - `Expected the error item's representative's message to start with ${SRC_ROOT} but found '${rep.message}'` + `Expected the error item's representative's message to start with ${SRC_ROOT} but found '${rep.message}'`, ); // Ensure the stack trace in the mssage contains the frame corresponding // to the 'expectedTopOfStack' function because that is the name of @@ -590,12 +587,12 @@ describe('error-reporting', () => { assert.notStrictEqual( rep.message.indexOf(expectedTopOfStack), -1, - `Expected the error item's representative's message to not contain ${expectedTopOfStack} but found '${rep.message}'` + `Expected the error item's representative's message to not contain ${expectedTopOfStack} but found '${rep.message}'`, ); const context = rep.serviceContext; assert.ok( context, - "Expected the error item's representative to have a context" + "Expected the error item's representative to have a context", ); assert.strictEqual(context.service, SERVICE); assert.strictEqual(context.version, VERSION); @@ -607,7 +604,7 @@ describe('error-reporting', () => { errOb: any, messageTest: (message: string) => void, maxCount: number, - timeout: number + timeout: number, ) { function expectedTopOfStack() { return new Promise((resolve, reject) => { @@ -625,7 +622,7 @@ describe('error-reporting', () => { } catch (e) { reject(e); } - } + }, ); }); } @@ -651,7 +648,7 @@ describe('error-reporting', () => { return message.startsWith('Error: ' + errorId + '\n'); }, 1, - TIMEOUT + TIMEOUT, ); }); @@ -664,7 +661,7 @@ describe('error-reporting', () => { return message.startsWith(errorId + '\n'); }, 1, - TIMEOUT + TIMEOUT, ); }); @@ -676,7 +673,7 @@ describe('error-reporting', () => { return message.startsWith('undefined\n'); }, 1, - TIMEOUT + TIMEOUT, ); }); @@ -688,7 +685,7 @@ describe('error-reporting', () => { return message.startsWith('null\n'); }, 1, - TIMEOUT + TIMEOUT, ); }); @@ -700,7 +697,7 @@ describe('error-reporting', () => { return message.startsWith("{ someKey: 'someValue' }\n"); }, 1, - TIMEOUT + TIMEOUT, ); }); @@ -713,7 +710,7 @@ describe('error-reporting', () => { return message.startsWith('' + num + '\n'); }, 1, - TIMEOUT + TIMEOUT, ); }); @@ -726,7 +723,7 @@ describe('error-reporting', () => { return message.startsWith('true\n'); }, 1, - TIMEOUT + TIMEOUT, ); }); @@ -760,7 +757,7 @@ describe('error-reporting', () => { ); }, 1, - TIMEOUT + TIMEOUT, ); } await callingSiteFunction(); @@ -775,7 +772,7 @@ describe('error-reporting', () => { // contains the stack trace at the point the rejection occured and is // rejected within a function named `expectedTopOfStack` so that the // test can verify that the collected stack is correct. - Promise.reject(new Error(rejectValue)); + void Promise.reject(new Error(rejectValue)); } expectedTopOfStack(); const rejectText = 'Error: ' + rejectValue; @@ -798,7 +795,7 @@ describe('error-reporting', () => { // contains the stack trace at the point the rejection occured and is // rejected within a function named `expectedTopOfStack` so that the // test can verify that the collected stack is correct. - Promise.reject(new Error(rejectValue)); + void Promise.reject(new Error(rejectValue)); } expectedTopOfStack(); const rejectText = 'Error: ' + rejectValue; diff --git a/handwritten/error-reporting/system-test/test-install.ts b/handwritten/error-reporting/system-test/test-install.ts index ed71dc16444..86e02704ae7 100644 --- a/handwritten/error-reporting/system-test/test-install.ts +++ b/handwritten/error-reporting/system-test/test-install.ts @@ -12,50 +12,33 @@ // See the License for the specific language governing permissions and // limitations under the License. -import * as check from 'post-install-check'; - -// Used to easily debug specific tests if necessary. -// Otherwise, no tests should be skipped. -const SKIP = { - base: false, - express: false, - hapi: {sixteen: false, seventeen: false}, - koa: {one: false, two: false}, - restify: {seven: false, eight: false}, -}; - -const TS_CODE_ARRAY: check.CodeSample[] = [ - { - code: `import * as errorReporting from '@google-cloud/error-reporting'; +import {packNTest} from 'pack-n-play'; +import {describe, it} from 'mocha'; + +describe('pack-n-play', () => { + const TS_CODE_SAMPLES = [ + { + ts: `import * as errorReporting from '@google-cloud/error-reporting'; new errorReporting.ErrorReporting();`, - description: 'imports the module using * syntax', - dependencies: [], - devDependencies: [], - skip: SKIP.base, - }, - { - code: `import {ErrorReporting} from '@google-cloud/error-reporting'; + description: 'imports the module using * syntax', + }, + { + ts: `import {ErrorReporting} from '@google-cloud/error-reporting'; new ErrorReporting();`, - description: 'imports the module with {} syntax', - dependencies: [], - devDependencies: [], - skip: SKIP.base, - }, - { - code: `import {ErrorReporting} from '@google-cloud/error-reporting'; + description: 'imports the module with {} syntax', + }, + { + ts: `import {ErrorReporting} from '@google-cloud/error-reporting'; new ErrorReporting({ serviceContext: { service: 'some service' } });`, - description: - 'imports the module and starts with a partial `serviceContext`', - dependencies: [], - devDependencies: [], - skip: SKIP.base, - }, - { - code: `import {ErrorReporting} from '@google-cloud/error-reporting'; + description: + 'imports the module and starts with a partial `serviceContext`', + }, + { + ts: `import {ErrorReporting} from '@google-cloud/error-reporting'; new ErrorReporting({ projectId: 'some-project', serviceContext: { @@ -63,14 +46,11 @@ new ErrorReporting({ version: 'Some version' } });`, - description: - 'imports the module and starts with a complete `serviceContext`', - dependencies: [], - devDependencies: [], - skip: SKIP.base, - }, - { - code: `import * as express from 'express'; + description: + 'imports the module and starts with a complete `serviceContext`', + }, + { + ts: `import * as express from 'express'; import {ErrorReporting} from '@google-cloud/error-reporting'; const errors = new ErrorReporting(); @@ -88,13 +68,12 @@ app.get('/exception', () => { app.use(errors.express); `, - description: 'uses express', - dependencies: ['express'], - devDependencies: ['@types/express'], - skip: SKIP.express, - }, - { - code: `import * as hapi from 'hapi'; + description: 'uses express', + dependencies: ['express@4.x.x'], + devDependencies: ['@types/express@4.x.x'], + }, + { + ts: `import * as hapi from 'hapi'; import {ErrorReporting} from '@google-cloud/error-reporting'; const errors = new ErrorReporting(); @@ -113,13 +92,12 @@ server.route({ server.register(errors.hapi); `, - description: 'uses hapi16', - dependencies: ['hapi@16.x.x'], - devDependencies: ['@types/hapi@16.x.x'], - skip: SKIP.hapi.sixteen, - }, - { - code: `import * as hapi from 'hapi'; + description: 'uses hapi16', + dependencies: ['hapi@16.x.x'], + devDependencies: ['@types/hapi@16.x.x'], + }, + { + ts: `import * as hapi from 'hapi'; import {ErrorReporting} from '@google-cloud/error-reporting'; const errors = new ErrorReporting(); @@ -143,13 +121,12 @@ async function start() { start().catch(console.error); `, - description: 'uses hapi17', - dependencies: ['hapi@17.x.x'], - devDependencies: ['@types/hapi@17.x.x'], - skip: SKIP.hapi.seventeen, - }, - { - code: `import * as Koa from 'koa'; + description: 'uses hapi17', + dependencies: ['hapi@17.x.x'], + devDependencies: ['@types/hapi@17.x.x'], + }, + { + ts: `import * as Koa from 'koa'; import {ErrorReporting} from '@google-cloud/error-reporting'; const errors = new ErrorReporting(); @@ -168,13 +145,12 @@ app.use(function *(this: any): IterableIterator { this.body = 'Hello World'; }); `, - description: 'uses koa1', - dependencies: ['koa@1.x.x'], - devDependencies: ['@types/koa'], - skip: SKIP.koa.one, - }, - { - code: `import * as Koa from 'koa'; + description: 'uses koa1', + dependencies: ['koa@3.x.x'], + devDependencies: ['@types/koa@3.x.x'], + }, + { + ts: `import * as Koa from 'koa'; import {ErrorReporting} from '@google-cloud/error-reporting'; const errors = new ErrorReporting(); @@ -193,34 +169,12 @@ app.use(async (ctx: Koa.Context, next: {}): Promise => { ctx.body = 'Hello World'; }); `, - description: 'uses koa2', - dependencies: ['koa@2.x.x'], - devDependencies: ['@types/koa@2.x.x'], - skip: SKIP.koa.two, - }, - { - code: `import * as restify from 'restify'; - -import {ErrorReporting} from '@google-cloud/error-reporting'; -const errors = new ErrorReporting(); - -function respond(req: {}, res: {}, next: Function) { - next(new Error('this is a restify error')); -} - -const server = restify.createServer(); - -server.use(errors.restify(server)); -server.get('/hello/:name', respond); -server.head('/hello/:name', respond); -`, - description: 'uses restify', - dependencies: ['restify@7.x.x'], - devDependencies: ['@types/restify@7.x.x'], - skip: SKIP.restify.seven, - }, - { - code: `import * as restify from 'restify'; + description: 'uses koa2', + dependencies: ['koa@2.x.x'], + devDependencies: ['@types/koa@2.x.x'], + }, + { + ts: `import * as restify from 'restify'; import {ErrorReporting} from '@google-cloud/error-reporting'; const errors = new ErrorReporting(); @@ -235,37 +189,30 @@ server.use(errors.restify(server)); server.get('/hello/:name', respond); server.head('/hello/:name', respond); `, - description: 'uses restify', - dependencies: ['restify@8.x.x'], - devDependencies: ['@types/restify@7.x.x'], - skip: SKIP.restify.eight, - }, -]; - -const JS_CODE_ARRAY: check.CodeSample[] = [ - { - code: `const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; + description: 'uses restify', + dependencies: ['restify@11.x.x'], + devDependencies: ['@types/restify@^8.5.0'], + }, + ]; + + const JS_CODE_SAMPLES = [ + { + js: `const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; new ErrorReporting();`, - description: 'requires the module using Node 4+ syntax', - dependencies: [], - devDependencies: [], - skip: SKIP.base, - }, - { - code: `const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; + description: 'requires the module using Node 4+ syntax', + }, + { + js: `const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; new ErrorReporting({ serviceContext: { service: 'some service' } });`, - description: - 'requires the module and starts with a partial `serviceContext`', - dependencies: [], - devDependencies: [], - skip: SKIP.base, - }, - { - code: `const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; + description: + 'requires the module and starts with a partial `serviceContext`', + }, + { + js: `const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; new ErrorReporting({ projectId: 'some-project', serviceContext: { @@ -273,14 +220,11 @@ new ErrorReporting({ version: 'Some version' } });`, - description: - 'requires the module and starts with a complete `serviceContext`', - dependencies: [], - devDependencies: [], - skip: SKIP.base, - }, - { - code: `const express = require('express'); + description: + 'requires the module and starts with a complete `serviceContext`', + }, + { + js: `const express = require('express'); const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; const errors = new ErrorReporting(); @@ -300,13 +244,11 @@ app.get('/exception', () => { // the other routes and use() calls. See [express docs][express-error-docs]. app.use(errors.express); `, - description: 'uses express', - dependencies: ['express'], - devDependencies: [], - skip: SKIP.express, - }, - { - code: `const hapi = require('hapi'); + description: 'uses express with require', + dependencies: ['express@4.x.x'], + }, + { + js: `const hapi = require('hapi'); const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; const errors = new ErrorReporting(); @@ -325,13 +267,11 @@ server.route({ server.register(errors.hapi); `, - description: 'uses hapi16', - dependencies: ['hapi@16.x.x'], - devDependencies: [], - skip: SKIP.hapi.sixteen, - }, - { - code: `const hapi = require('hapi'); + description: 'uses hapi16 with require', + dependencies: ['hapi@16.x.x'], + }, + { + js: `const hapi = require('hapi'); const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; const errors = new ErrorReporting(); @@ -355,13 +295,11 @@ async function start() { start().catch(console.error); `, - description: 'uses hapi17', - dependencies: ['hapi@17.x.x'], - devDependencies: [], - skip: SKIP.hapi.seventeen, - }, - { - code: `const Koa = require('koa'); + description: 'uses hapi17 with require', + dependencies: ['hapi@17.x.x'], + }, + { + js: `const Koa = require('koa'); const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; const errors = new ErrorReporting(); @@ -380,13 +318,11 @@ app.use(function *(){ this.body = 'Hello World'; }); `, - description: 'uses koa1', - dependencies: ['koa@1.x.x'], - devDependencies: [], - skip: SKIP.koa.one, - }, - { - code: `const Koa = require('koa'); + description: 'uses koa1 with require', + dependencies: ['koa@1.x.x'], + }, + { + js: `const Koa = require('koa'); const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; const errors = new ErrorReporting(); @@ -405,13 +341,11 @@ app.use(async (ctx, next) => { ctx.body = 'Hello World'; }); `, - description: 'uses koa2', - dependencies: ['koa@2.x.x'], - devDependencies: [], - skip: SKIP.koa.two, - }, - { - code: `const restify = require('restify'); + description: 'uses koa2 with require', + dependencies: ['koa@2.x.x'], + }, + { + js: `const restify = require('restify'); const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; const errors = new ErrorReporting(); @@ -426,32 +360,24 @@ server.use(errors.restify(server)); server.get('/hello/:name', respond); server.head('/hello/:name', respond); `, - description: 'uses restify', - dependencies: ['restify@7.x.x'], - devDependencies: [], - skip: SKIP.restify.seven, - }, - { - code: `const restify = require('restify'); - -const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; -const errors = new ErrorReporting(); - -function respond(req, res, next) { - next(new Error('this is a restify error')); -} - -const server = restify.createServer(); + description: 'uses restify with require', + dependencies: ['restify@11.x.x'], + }, + ]; + + TS_CODE_SAMPLES.forEach(sample => { + it(sample.description, async () => { + await packNTest({ + sample, + }); + }).timeout(2 * 60 * 1000); + }); -server.use(errors.restify(server)); -server.get('/hello/:name', respond); -server.head('/hello/:name', respond); -`, - description: 'uses restify', - dependencies: ['restify@8.x.x'], - devDependencies: [], - skip: SKIP.restify.eight, - }, -]; - -check.testInstallation(TS_CODE_ARRAY, JS_CODE_ARRAY, {timeout: 2 * 60 * 1000}); + JS_CODE_SAMPLES.forEach(sample => { + it(sample.description, async () => { + await packNTest({ + sample, + }); + }).timeout(2 * 60 * 1000); + }); +}); diff --git a/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts index cbaa89e96ce..09778664fc4 100644 --- a/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts @@ -51,7 +51,7 @@ app.get('/customError', (req, res, next) => { log('Successfully sent custom get error to api'); log(EXCLAMATION_LN); } - } + }, ); res.send('Success'); @@ -92,7 +92,7 @@ function reportManualError() { if (process.env.THROW_ON_STARTUP) { throwUncaughtError(); } - } + }, ); } log('reporting a manual error first'); diff --git a/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts index ca240b3cfc3..4b73a3110ee 100644 --- a/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts @@ -40,10 +40,11 @@ server.route({ }, }); -server.register({plugin: errorHandler.hapi}).then(() => { +const startServer = async () => { + await server.register({plugin: errorHandler.hapi}); log('Plugin registered.'); -}); - -server.start().then(() => { + await server.start(); log('Server running at', server.info!.uri); -}); +}; + +void startServer(); diff --git a/handwritten/error-reporting/test/test-servers/manual_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/manual_scaffold_server.ts index e7b3dc8ca80..1ba17e0e240 100644 --- a/handwritten/error-reporting/test/test-servers/manual_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/manual_scaffold_server.ts @@ -21,6 +21,6 @@ const errors = new ErrorReporting(); '\tError: ', err, '\n', - '\tResponse Body:' + '\tResponse Body:', ); }); diff --git a/handwritten/error-reporting/test/unit/classes/error-message.ts b/handwritten/error-reporting/test/unit/classes/error-message.ts index 38e6241cab9..68c1fddd428 100644 --- a/handwritten/error-reporting/test/unit/classes/error-message.ts +++ b/handwritten/error-reporting/test/unit/classes/error-message.ts @@ -81,7 +81,7 @@ describe('Fuzzing against setServiceContext', () => { [ 'In the affirmative case the value should be settable to a valid string', 'and by setting this value this should mutate the instance', - ].join(' ') + ].join(' '), ); }); it('Should set the default values', () => { @@ -95,7 +95,7 @@ describe('Fuzzing against setServiceContext', () => { [ 'In resetting to default valid values the instance should reflect the', 'value update', - ].join(' ') + ].join(' '), ); }); it('Should still set version with affirmative value', () => { @@ -110,7 +110,7 @@ describe('Fuzzing against setServiceContext', () => { 'Providing only a valid value to the second argument of', 'setServiceContext should set the service property as an empty string', 'but set the version property to the affirmative value.', - ].join(' ') + ].join(' '), ); }); it('Should still set service with affirmative value', () => { @@ -125,7 +125,7 @@ describe('Fuzzing against setServiceContext', () => { 'Providing only a valid value to the first argument of', 'setServiceContext should set the version property as an empty string', 'but set the service property to the affirmative value.', - ].join(' ') + ].join(' '), ); }); it('Should set default values on both', () => { @@ -139,7 +139,7 @@ describe('Fuzzing against setServiceContext', () => { [ 'Providing null as the value to both arguments should set both', 'properties as empty strings.', - ].join(' ') + ].join(' '), ); }); it('Should set default values on both', () => { @@ -153,7 +153,7 @@ describe('Fuzzing against setServiceContext', () => { [ 'Providing numbers as the value to both arguments should set both', 'properties as empty strings.', - ].join(' ') + ].join(' '), ); }); it('Should set as default', () => { @@ -167,7 +167,7 @@ describe('Fuzzing against setServiceContext', () => { [ 'Providing arrays or objects as the value to both arguments', 'should set both properties as empty strings.', - ].join(' ') + ].join(' '), ); }); it('Should set as default', () => { @@ -178,7 +178,7 @@ describe('Fuzzing against setServiceContext', () => { service: DEFAULT_SERVICE_VALUE, version: DEFAULT_VERSION_VALUE, }, - 'Providing no arguments should set both properties as empty strings' + 'Providing no arguments should set both properties as empty strings', ); }); }); @@ -198,7 +198,7 @@ describe('Fuzzing against setMessage', () => { [ 'In the affirmative case the value should be settable to a valid string', 'and by setting this value this should mutate the instance', - ].join(' ') + ].join(' '), ); }); it('Should default', () => { @@ -208,7 +208,7 @@ describe('Fuzzing against setMessage', () => { [ 'By providing no argument (undefined) to setMessage the property', 'message should be set to an empty string on the instance', - ].join(' ') + ].join(' '), ); }); }); @@ -227,7 +227,7 @@ describe('Fuzzing against setHttpMethod', () => { [ 'In the affirmative case the value should be settable to a valid string', 'and by setting this value this should mutate the instance', - ].join(' ') + ].join(' '), ); }); it('Should default', () => { @@ -237,7 +237,7 @@ describe('Fuzzing against setHttpMethod', () => { [ 'By providing no argument (undefined) to setHttpMethod the property', 'message should be set to an empty string on the instance', - ].join(' ') + ].join(' '), ); }); }); @@ -256,7 +256,7 @@ describe('Fuzzing against setUrl', () => { [ 'In the affirmative case the value should be settable to a valid string', 'and by setting this value this should mutate the instance', - ].join(' ') + ].join(' '), ); }); it('Should default', () => { @@ -266,7 +266,7 @@ describe('Fuzzing against setUrl', () => { [ 'By providing no argument (undefined) to setUrl the property', 'message should be set to an empty string on the instance', - ].join(' ') + ].join(' '), ); }); }); @@ -285,7 +285,7 @@ describe('Fuzzing against setUserAgent', () => { [ 'In the affirmative case the value should be settable to a valid string', 'and by setting this value this should mutate the instance', - ].join(' ') + ].join(' '), ); }); it('Should default', () => { @@ -295,7 +295,7 @@ describe('Fuzzing against setUserAgent', () => { [ 'By providing no argument (undefined) to setUserAgent the property', 'message should be set to an empty string on the instance', - ].join(' ') + ].join(' '), ); }); }); @@ -314,7 +314,7 @@ describe('Fuzzing against setReferrer', () => { [ 'In the affirmative case the value should be settable to a valid string', 'and by setting this value this should mutate the instance', - ].join(' ') + ].join(' '), ); }); it('Should default', () => { @@ -324,7 +324,7 @@ describe('Fuzzing against setReferrer', () => { [ 'By providing no argument (undefined) to setReferrer the property', 'message should be set to an empty string on the instance', - ].join(' ') + ].join(' '), ); }); }); @@ -343,7 +343,7 @@ describe('Fuzzing against setResponseStatusCode', () => { [ 'In the affirmative case the value should be settable to a valid string', 'and by setting this value this should mutate the instance', - ].join(' ') + ].join(' '), ); }); it('Should default', () => { @@ -353,7 +353,7 @@ describe('Fuzzing against setResponseStatusCode', () => { [ 'By providing no argument (undefined) to setResponseStatusCode the property', 'message should be set to an empty string on the instance', - ].join(' ') + ].join(' '), ); }); }); @@ -372,7 +372,7 @@ describe('Fuzzing against setRemoteIp', () => { [ 'In the affirmative case the value should be settable to a valid string', 'and by setting this value this should mutate the instance', - ].join(' ') + ].join(' '), ); }); it('Should default', () => { @@ -382,7 +382,7 @@ describe('Fuzzing against setRemoteIp', () => { [ 'By providing no argument (undefined) to setRemoteIp the property', 'message should be set to an empty string on the instance', - ].join(' ') + ].join(' '), ); }); }); @@ -401,7 +401,7 @@ describe('Fuzzing against setUser', () => { [ 'In the affirmative case the value should be settable to a valid string', 'and by setting this value this should mutate the instance', - ].join(' ') + ].join(' '), ); }); it('Should default', () => { @@ -411,7 +411,7 @@ describe('Fuzzing against setUser', () => { [ 'By providing no argument (undefined) to setUser the property', 'user should be set to an empty string on the instance', - ].join(' ') + ].join(' '), ); }); }); @@ -430,7 +430,7 @@ describe('Fuzzing against setFilePath', () => { [ 'In the affirmative case the value should be settable to a valid string', 'and by setting this value this should mutate the instance', - ].join(' ') + ].join(' '), ); }); it('Should default', () => { @@ -440,7 +440,7 @@ describe('Fuzzing against setFilePath', () => { [ 'By providing no argument (undefined) to setFilePath the property', 'filePath should be set to an empty string on the instance', - ].join(' ') + ].join(' '), ); }); }); @@ -459,7 +459,7 @@ describe('Fuzzing against setLineNumber', () => { [ 'In the affirmative case the value should be settable to a valid string', 'and by setting this value this should mutate the instance', - ].join(' ') + ].join(' '), ); }); it('Should default', () => { @@ -469,7 +469,7 @@ describe('Fuzzing against setLineNumber', () => { [ 'By providing no argument (undefined) to setLineNumber the property', 'lineNumber should be set to an empty string on the instance', - ].join(' ') + ].join(' '), ); }); }); @@ -488,7 +488,7 @@ describe('Fuzzing against setFunctionName', () => { [ 'In the affirmative case the value should be settable to a valid string', 'and by setting this value this should mutate the instance', - ].join(' ') + ].join(' '), ); }); it('Should default', () => { @@ -498,7 +498,7 @@ describe('Fuzzing against setFunctionName', () => { [ 'By providing no argument (undefined) to setFunctionName the property', 'functionName should be set to an empty string on the instance', - ].join(' ') + ].join(' '), ); }); }); @@ -528,49 +528,49 @@ describe('Fuzzing against consumeRequestInformation', () => { }; it('Should consume the stubbed request object', () => { em.consumeRequestInformation( - AFFIRMATIVE_TEST_VALUE as RequestInformationContainer + AFFIRMATIVE_TEST_VALUE as RequestInformationContainer, ); assert( em.context.httpRequest.method === A_VALID_STRING, [ 'The error messages method, given a valid string, should be', 'set to that value', - ].join(' ') + ].join(' '), ); assert( em.context.httpRequest.url === A_VALID_STRING, [ 'The error messages url, given a valid string, should be', 'set to that value', - ].join(' ') + ].join(' '), ); assert( em.context.httpRequest.userAgent === A_VALID_STRING, [ 'The error messages userAgent, given a valid string, should be', 'set to that value', - ].join(' ') + ].join(' '), ); assert( em.context.httpRequest.referrer === A_VALID_STRING, [ 'The error messages referrer, given a valid string, should be', 'set to that value', - ].join(' ') + ].join(' '), ); assert( em.context.httpRequest.responseStatusCode === A_VALID_NUMBER, [ 'The error messages responseStatusCode, given a valid number, should be', 'set to that value', - ].join(' ') + ].join(' '), ); assert( em.context.httpRequest.remoteIp === A_VALID_STRING, [ 'The error messages remoteAddress, given a valid string, should be', 'set to that value', - ].join(' ') + ].join(' '), ); }); it('Should default when consuming a malformed request object', () => { @@ -580,107 +580,107 @@ describe('Fuzzing against consumeRequestInformation', () => { [ 'The error messages method, given an invalid type a the top-level', 'should remain untouched', - ].join(' ') + ].join(' '), ); assert( em.context.httpRequest.url === A_VALID_STRING, [ 'The error messages url, given an invalid type a the top-level', 'should remain untouched', - ].join(' ') + ].join(' '), ); assert( em.context.httpRequest.userAgent === A_VALID_STRING, [ 'The error messages userAgent, given an invalid type a the top-level', 'should remain untouched', - ].join(' ') + ].join(' '), ); assert( em.context.httpRequest.referrer === A_VALID_STRING, [ 'The error messages referrer, given an invalid type a the top-level', 'should remain untouched', - ].join(' ') + ].join(' '), ); assert( em.context.httpRequest.responseStatusCode === A_VALID_NUMBER, [ 'The error messages responseStatusCode, given an invalid type a the top-level', 'should remain untouched', - ].join(' ') + ].join(' '), ); assert( em.context.httpRequest.remoteIp === A_VALID_STRING, [ 'The error messages remoteAddress, given an invalid type a the top-level', 'should remain untouched', - ].join(' ') + ].join(' '), ); }); it('Should default when consuming mistyped response object properties', () => { em.consumeRequestInformation( - NEGATIVE_TEST_VALUE as {} as RequestInformationContainer + NEGATIVE_TEST_VALUE as {} as RequestInformationContainer, ); assert( em.context.httpRequest.method === NEGATIVE_STRING_CASE, [ 'The error messages method, given an invalid input should default to', 'the negative value', - ].join(' ') + ].join(' '), ); assert( em.context.httpRequest.url === NEGATIVE_STRING_CASE, [ 'The error messages url, given an invalid input should default to', 'the negative value', - ].join(' ') + ].join(' '), ); assert( em.context.httpRequest.userAgent === NEGATIVE_STRING_CASE, [ 'The error messages userAgent, ggiven an invalid input should default to', 'the negative value', - ].join(' ') + ].join(' '), ); assert( em.context.httpRequest.referrer === NEGATIVE_STRING_CASE, [ 'The error messages referrer, given an invalid input should default to', 'the negative value', - ].join(' ') + ].join(' '), ); assert( em.context.httpRequest.responseStatusCode === NEGATIVE_NUMBER_CASE, [ 'The error messages responseStatusCode, given an invalid input should default to', 'the negative value', - ].join(' ') + ].join(' '), ); assert( em.context.httpRequest.remoteIp === NEGATIVE_STRING_CASE, [ 'The error messages remoteAddress, given an invalid input should default to', 'the negative value', - ].join(' ') + ].join(' '), ); }); it('Should return the instance on calling consumeRequestInformation', () => { assert( em.consumeRequestInformation( - AFFIRMATIVE_TEST_VALUE as RequestInformationContainer + AFFIRMATIVE_TEST_VALUE as RequestInformationContainer, ) instanceof ErrorMessage, [ 'Calling consumeRequestInformation with valid input should return', 'the ErrorMessage instance', - ].join(' ') + ].join(' '), ); assert( em.consumeRequestInformation(undefined!) instanceof ErrorMessage, [ 'Calling consumeRequestInformation with invalid input should return', 'the ErrorMessage instance', - ].join(' ') + ].join(' '), ); }); }); diff --git a/handwritten/error-reporting/test/unit/configuration.ts b/handwritten/error-reporting/test/unit/configuration.ts index 52c9a9862dc..7f0f6c72f67 100644 --- a/handwritten/error-reporting/test/unit/configuration.ts +++ b/handwritten/error-reporting/test/unit/configuration.ts @@ -67,7 +67,7 @@ describe('Configuration class', () => { c = new Configuration(givenConfigFuzz, logger); deepStrictEqual(c._givenConfiguration, {}); }, - ['object'] + ['object'], ); }); }); @@ -130,7 +130,7 @@ describe('Configuration class', () => { assert.strictEqual( warnText, 'The "ignoreEnvironmentCheck" config option is deprecated. ' + - 'Use the "reportMode" config option instead.\n' + 'Use the "reportMode" config option instead.\n', ); }); @@ -144,14 +144,14 @@ describe('Configuration class', () => { // tslint:disable-next-line:no-unused-expression new Configuration( {ignoreEnvironmentCheck: true, reportMode: 'never'}, - logger + logger, ); assert.strictEqual( warnText, 'The "ignoreEnvironmentCheck" config option is deprecated. ' + 'Use the "reportMode" config option instead.\nBoth the "ignoreEnvironmentCheck" ' + 'and "reportMode" configuration options have been specified. The "reportMode" ' + - 'option will take precedence.\n' + 'option will take precedence.\n', ); }); @@ -168,7 +168,7 @@ describe('Configuration class', () => { it('Should prefer "reportMode" config if "ignoreEnvironmentCheck" is also set', () => { const conf = new Configuration( {ignoreEnvironmentCheck: true, reportMode: 'never'}, - logger + logger, ); assert.strictEqual(conf._reportMode, 'never'); }); @@ -233,7 +233,7 @@ describe('Configuration class', () => { const conf = Object.assign( {}, {projectId: 'some-id'}, - {ignoreEnvironmentCheck: true} + {ignoreEnvironmentCheck: true}, ); const c = new Configuration(conf, logger); it('Should reportErrorsToAPI', () => { @@ -262,7 +262,7 @@ describe('Configuration class', () => { // tslint:disable-next-line:no-unused-expression new Configuration( {reportMode: new Date()} as {} as ConfigurationOptions, - logger + logger, ); }); }); @@ -271,7 +271,7 @@ describe('Configuration class', () => { // tslint:disable-next-line:no-unused-expression new Configuration( {reportMode: 'invalid-mode'} as {} as ConfigurationOptions, - logger + logger, ); }); }); @@ -290,7 +290,7 @@ describe('Configuration class', () => { // tslint:disable-next-line:no-unused-expression new Configuration( {ignoreEnvironmentCheck: null} as {} as ConfigurationOptions, - logger + logger, ); }); }); @@ -301,7 +301,7 @@ describe('Configuration class', () => { // tslint:disable-next-line:no-unused-expression new Configuration( {serviceContext: {service: false}} as {} as ConfigurationOptions, - logger + logger, ); }); }); @@ -312,7 +312,7 @@ describe('Configuration class', () => { // tslint:disable-next-line:no-unused-expression new Configuration( {serviceContext: {version: true}} as {} as ConfigurationOptions, - logger + logger, ); }); }); @@ -325,7 +325,7 @@ describe('Configuration class', () => { { reportUnhandledRejections: 'INVALID', } as {} as ConfigurationOptions, - logger + logger, ); }); }); @@ -360,7 +360,7 @@ describe('Configuration class', () => { sterilizeConfigEnv(); c = new Configuration( {projectId: pn} as {} as ConfigurationOptions, - logger + logger, ); }); after(() => { @@ -397,7 +397,7 @@ describe('Configuration class', () => { // thus an explicit cast is needed c = new Configuration( {projectId: null} as {} as ConfigurationOptions, - logger + logger, ); }); after(() => { @@ -487,7 +487,7 @@ describe('Configuration class', () => { key, projectId, }, - logger + logger, ); }); it('Should assign', () => { @@ -505,7 +505,7 @@ describe('Configuration class', () => { it('Should assign', () => { assert.strictEqual( c.getReportUnhandledRejections(), - reportRejections + reportRejections, ); }); }); diff --git a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts index eb1599ac401..712dc4fb95a 100644 --- a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts +++ b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts @@ -26,7 +26,7 @@ function verifyReportedMessage( config1: ConfigurationOptions, errToReturn: Error | null | undefined, expectedLogs: {error?: string; info?: string; warn?: string}, - done: () => void + done: () => void, ) { class ServiceStub { authClient: {}; @@ -106,7 +106,7 @@ describe('RequestHandler', () => { { info: 'API key provided; skipping OAuth2 token request.', }, - done + done, ); }); @@ -117,7 +117,7 @@ describe('RequestHandler', () => { { info: 'Not configured to send errors to the API; skipping Google Cloud API Authentication.', }, - done + done, ); }); @@ -129,7 +129,7 @@ describe('RequestHandler', () => { { info: 'Not configured to send errors to the API; skipping Google Cloud API Authentication.', }, - done + done, ); }); @@ -141,7 +141,7 @@ describe('RequestHandler', () => { { info: 'Not configured to send errors to the API; skipping Google Cloud API Authentication.', }, - done + done, ); }); @@ -151,7 +151,7 @@ describe('RequestHandler', () => { {reportMode: 'production'}, null, // no access token error {}, // no expected logs - done + done, ); }); @@ -161,7 +161,7 @@ describe('RequestHandler', () => { {}, null, // no access token error {}, // no expected logs - done + done, ); }); @@ -189,7 +189,7 @@ describe('RequestHandler', () => { 'reported, regardless of the value of NODE_ENV, set the reportMode ' + 'configuration option to "always".', }, - done + done, ); }); @@ -207,7 +207,7 @@ describe('RequestHandler', () => { 'reported, regardless of the value of NODE_ENV, set the reportMode ' + 'configuration option to "always".', }, - done + done, ); }); @@ -227,7 +227,7 @@ describe('RequestHandler', () => { 'The "ignoreEnvironmentCheck" config option is deprecated. ' + 'Use the "reportMode" config option instead.', }, - done + done, ); }); }); diff --git a/handwritten/error-reporting/test/unit/interfaces/express.ts b/handwritten/error-reporting/test/unit/interfaces/express.ts index 47f34d4d812..68a29400fce 100644 --- a/handwritten/error-reporting/test/unit/interfaces/express.ts +++ b/handwritten/error-reporting/test/unit/interfaces/express.ts @@ -43,7 +43,7 @@ describe('expressInterface', () => { version: 'a_version', }, }, - createLogger({logLevel: 4}) + createLogger({logLevel: 4}), ); ( stubbedConfig as {} as { @@ -60,7 +60,7 @@ describe('expressInterface', () => { const testError = new Error('This is a test'); const validBoundHandler = expressInterface( client as {} as RequestHandler, - stubbedConfig + stubbedConfig, ); it('Should return the error message', () => { const res = validBoundHandler(testError, null!, null!, null!); @@ -71,10 +71,10 @@ describe('expressInterface', () => { .setMessage(testError.stack!) .setServiceContext( stubbedConfig._serviceContext.service, - stubbedConfig._serviceContext.version + stubbedConfig._serviceContext.version, ), - {eventTime: res.eventTime} - ) + {eventTime: res.eventTime}, + ), ); }); describe('Calling back to express builtins', () => { @@ -93,7 +93,7 @@ describe('expressInterface', () => { }; const handler = expressInterface( client as {} as RequestHandler, - stubbedConfig + stubbedConfig, ); handler(testError, null!, null!, () => { return; diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.ts b/handwritten/error-reporting/test/unit/interfaces/hapi.ts index eb61702e79b..3be327017ef 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.ts +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.ts @@ -66,7 +66,7 @@ describe('Hapi interface', () => { it("the plugin's attribute property should have a name property", () => { assert.strictEqual( plugin.register!.attributes!.name, - '@google-cloud/error-reporting' + '@google-cloud/error-reporting', ); }); it("the plugin's attribute property should have a version property", () => { @@ -83,7 +83,7 @@ describe('Hapi interface', () => { sendError(errMsg: ErrorMessage) { assert( errMsg instanceof ErrorMessage, - 'should be an instance of Error message' + 'should be an instance of Error message', ); }, } as {} as RequestHandler; @@ -138,7 +138,7 @@ describe('Hapi interface', () => { // The continue function should be called done(); }, - } + }, ); }); it('Should call continue when a boom is emitted if reply is a function', done => { @@ -156,7 +156,7 @@ describe('Hapi interface', () => { fakeServer.emit( EVENT, {response: new boom('message', {statusCode: 427})}, - reply + reply, ); }); it('Should call sendError when a boom is received', done => { @@ -180,7 +180,7 @@ describe('Hapi interface', () => { fakeServer.emit( EVENT, {response: new boom('message', {statusCode: 427})}, - {continue() {}} + {continue() {}}, ); }); }); @@ -194,8 +194,8 @@ describe('Hapi interface', () => { userCb?: ( err: Error | null, response: http.ServerResponse | null, - body: {} - ) => void + body: {}, + ) => void, ) => { errorsSent.push(errorMessage); }, @@ -278,24 +278,24 @@ describe('Hapi interface', () => { assert.strictEqual(errorMessage.message, testError.stack); assert.strictEqual( errorMessage.context.httpRequest.method, - 'custom-method' + 'custom-method', ); assert.strictEqual(errorMessage.context.httpRequest.url, 'custom-url'); assert.strictEqual( errorMessage.context.httpRequest.userAgent, - 'custom-user-agent' + 'custom-user-agent', ); assert.strictEqual( errorMessage.context.httpRequest.referrer, - 'custom-referrer' + 'custom-referrer', ); assert.strictEqual( errorMessage.context.httpRequest.remoteIp, - 'some-remote-address' + 'some-remote-address', ); assert.strictEqual( errorMessage.context.httpRequest.responseStatusCode, - 42 + 42, ); }); }); diff --git a/handwritten/error-reporting/test/unit/interfaces/manual.ts b/handwritten/error-reporting/test/unit/interfaces/manual.ts index 967167b4b58..a7b380871d5 100644 --- a/handwritten/error-reporting/test/unit/interfaces/manual.ts +++ b/handwritten/error-reporting/test/unit/interfaces/manual.ts @@ -53,7 +53,7 @@ describe('Manual handler', () => { 'Encountered a manually constructed error ' + 'with message "builder test" but without a construction site stack ' + 'trace. This error might not be visible in the error reporting ' + - 'console.' + 'console.', ); }, } as {} as Logger); @@ -94,7 +94,7 @@ describe('Manual handler', () => { assert.strictEqual( r.message, 'wrench', - 'additional message should replace' + 'additional message should replace', ); }); it('Should allow a full array of optional arguments', done => { @@ -115,7 +115,7 @@ describe('Manual handler', () => { }); assert( r.message.match(/ticky/) && !r.message.match(/TACKEY/), - 'original message should be preserved' + 'original message should be preserved', ); assert.strictEqual(r.context.httpRequest.method, 'TACKEY'); }); @@ -125,11 +125,11 @@ describe('Manual handler', () => { (() => { done(); }) as unknown as string, - 'field' as unknown as manual.Callback + 'field' as unknown as manual.Callback, ); assert( r.message.match('hockey') && !r.message.match('field'), - 'string after callback should be ignored' + 'string after callback should be ignored', ); }); it('Should ignore arguments', done => { @@ -138,7 +138,7 @@ describe('Manual handler', () => { (() => { done(); }) as unknown as string, - {method: 'HONK'} as unknown as manual.Callback + {method: 'HONK'} as unknown as manual.Callback, ); assert.notStrictEqual(r.context.httpRequest.method, 'HONK'); }); @@ -155,7 +155,7 @@ describe('Manual handler', () => { undefined as unknown as string, () => { done(); - } + }, ); assert(r.message.match(/Turkey/), 'string error should propagate'); }); @@ -166,7 +166,7 @@ describe('Manual handler', () => { 'solution', () => { done(); - } + }, ); assert.strictEqual(r.message, 'solution', 'error should propagate'); }); @@ -177,11 +177,11 @@ describe('Manual handler', () => { undefined as unknown as string, () => { done(); - } + }, ); assert( r.message.match(/Mickey/) && !r.message.match(/SNIFF/), - 'string error should propagate' + 'string error should propagate', ); assert.strictEqual(r.context.httpRequest.method, 'SNIFF'); }); @@ -193,7 +193,7 @@ describe('Manual handler', () => { const r = report(new ErrorMessage().setMessage(msg)); assert( r.message.startsWith(msg), - 'string message should propagate from error message inst' + 'string message should propagate from error message inst', ); }); it('Should accept builder and request as arguments', () => { @@ -204,11 +204,11 @@ describe('Manual handler', () => { new ErrorMessage() .setMessage(msg) .consumeRequestInformation(oldReq as RequestInformationContainer), - newReq + newReq, ); assert( r.message.startsWith(msg), - 'string message should propagate from error message inst' + 'string message should propagate from error message inst', ); assert.strictEqual( r.context.httpRequest.method, @@ -216,7 +216,7 @@ describe('Manual handler', () => { [ 'request argument supplied at report invocation should propagte and', 'if supplied, should overwrite any prexisting data in the field.', - ].join('\n') + ].join('\n'), ); }); it('Should accept message and additional message params as', () => { @@ -229,7 +229,7 @@ describe('Manual handler', () => { [ 'message supplied at report invocation should propagte and, if', 'supplied, should overwrite any prexisting data in the message field.', - ].join('\n') + ].join('\n'), ); }); it('Should accept message and callback function', done => { diff --git a/handwritten/error-reporting/test/unit/interfaces/restify.ts b/handwritten/error-reporting/test/unit/interfaces/restify.ts index 74748520355..1daf5cfd026 100644 --- a/handwritten/error-reporting/test/unit/interfaces/restify.ts +++ b/handwritten/error-reporting/test/unit/interfaces/restify.ts @@ -24,8 +24,7 @@ import {handlerSetup as restifyInterface} from '../../../src/interfaces/restify' // node v0.12 compatibility if (!EventEmitter.prototype.listenerCount) { EventEmitter.prototype.listenerCount = function (this, eventName) { - // eslint-disable-next-line node/no-deprecated-api - return EventEmitter.listenerCount(this, eventName as string); + return this.listeners(eventName as string).length; }; } @@ -41,7 +40,7 @@ describe('restifyInterface', () => { assert.strictEqual( ee.listenerCount(UNCAUGHT_EVENT), 0, - 'Listeners on event should be zero' + 'Listeners on event should be zero', ); // return the bound function which the user will actually interface with const errorHandlerInstance = restifyInterface(null!, null!); @@ -50,7 +49,7 @@ describe('restifyInterface', () => { assert.strictEqual( ee.listenerCount(UNCAUGHT_EVENT), 1, - 'Listeners on event should now be one' + 'Listeners on event should now be one', ); }); }); @@ -78,7 +77,7 @@ describe('restifyInterface', () => { requestHandlerInstance( req as restify.Request, res as restify.Response, - noOp + noOp, ); }); }); @@ -115,7 +114,7 @@ describe('restifyInterface', () => { } as {} as Configuration; const errorHandlerInstance = restifyInterface( client as {} as RequestHandler, - config + config, ); const requestHandlerInstance = errorHandlerInstance(ee as restify.Server); const req = new EventEmitter(); @@ -129,7 +128,7 @@ describe('restifyInterface', () => { requestHandlerInstance( req as restify.Request, res as restify.Response, - noOp + noOp, ); }); }); diff --git a/handwritten/error-reporting/test/unit/logger.ts b/handwritten/error-reporting/test/unit/logger.ts index 40daac06680..17bfa01d8df 100644 --- a/handwritten/error-reporting/test/unit/logger.ts +++ b/handwritten/error-reporting/test/unit/logger.ts @@ -30,25 +30,25 @@ describe('logger', () => { it('Should not throw given undefined', () => { assert.doesNotThrow( createLogger, - createLogger() as {} as (err: Error) => boolean + createLogger() as {} as (err: Error) => boolean, ); }); it('Should not throw given an empty object', () => { assert.doesNotThrow( createLogger.bind(null, {}), - createLogger() as {} as (err: Error) => boolean + createLogger() as {} as (err: Error) => boolean, ); }); it('Should not throw given logLevel as a number', () => { assert.doesNotThrow( createLogger.bind(null, {logLevel: 3}), - createLogger({logLevel: 3}) as {} as (err: Error) => boolean + createLogger({logLevel: 3}) as {} as (err: Error) => boolean, ); }); it('Should not throw given logLevel as a string', () => { assert.doesNotThrow( createLogger.bind(null, {logLevel: '3'}), - createLogger({logLevel: 3}) as {} as (err: Error) => boolean + createLogger({logLevel: 3}) as {} as (err: Error) => boolean, ); }); it('Should not throw given an env variable to use', () => { @@ -57,7 +57,7 @@ describe('logger', () => { createLogger, createLogger({ logLevel: 4, - }) as {} as (err: Error) => boolean + }) as {} as (err: Error) => boolean, ); delete process.env.GCLOUD_ERRORS_LOGLEVEL; }); @@ -91,7 +91,7 @@ describe('logger', () => { logger.warn('test warning message'); assert.strictEqual( text, - 'WARN:@google-cloud/error-reporting: test warning message' + 'WARN:@google-cloud/error-reporting: test warning message', ); }); it('Should print ERROR logs by default', () => { @@ -99,7 +99,7 @@ describe('logger', () => { logger.error('test error message'); assert.strictEqual( text, - 'ERROR:@google-cloud/error-reporting: test error message' + 'ERROR:@google-cloud/error-reporting: test error message', ); }); }); diff --git a/handwritten/error-reporting/test/unit/populate-error-message.ts b/handwritten/error-reporting/test/unit/populate-error-message.ts index 41b2d54be52..985eefa8c92 100644 --- a/handwritten/error-reporting/test/unit/populate-error-message.ts +++ b/handwritten/error-reporting/test/unit/populate-error-message.ts @@ -86,10 +86,10 @@ describe('populate-error-message', () => { it('Should not throw given an object of invalid form', () => { assert.doesNotThrow( - populateErrorMessage.bind(null, adversarialObjectInput, em) + populateErrorMessage.bind(null, adversarialObjectInput, em), ); assert.doesNotThrow( - populateErrorMessage.bind(null, adversarialObjectInputTwo, em) + populateErrorMessage.bind(null, adversarialObjectInputTwo, em), ); }); @@ -100,7 +100,7 @@ describe('populate-error-message', () => { em.message, err.stack, 'Given a valid message the ' + - 'error message should absorb the error stack as the message' + 'error message should absorb the error stack as the message', ); }); @@ -119,7 +119,7 @@ describe('populate-error-message', () => { const err = {error: 'some error message'}; populateErrorMessage(err, em); assert(em.message.startsWith("{ error: 'some error message' }")); - } + }, ); it('User Field: Should set the field given valid input given an Error', () => { @@ -152,7 +152,7 @@ describe('populate-error-message', () => { const err = {}; populateErrorMessage(err, em); assert.strictEqual(em.context.user, ''); - } + }, ); it( @@ -164,7 +164,7 @@ describe('populate-error-message', () => { err.serviceContext = TEST_SERVICE_VALID; populateErrorMessage(err, em); deepStrictEqual(err.serviceContext, TEST_SERVICE_VALID); - } + }, ); it( @@ -176,7 +176,7 @@ describe('populate-error-message', () => { err.serviceContext = TEST_SERVICE_INVALID; populateErrorMessage(err, em); deepStrictEqual(em.serviceContext, TEST_SERVICE_DEFAULT); - } + }, ); it( @@ -186,7 +186,7 @@ describe('populate-error-message', () => { const err = new Error(); populateErrorMessage(err, em); deepStrictEqual(em.serviceContext, TEST_SERVICE_DEFAULT); - } + }, ); it( @@ -198,7 +198,7 @@ describe('populate-error-message', () => { err.serviceContext = TEST_SERVICE_VALID; populateErrorMessage(err, em); deepStrictEqual(em.serviceContext, TEST_SERVICE_VALID); - } + }, ); it( @@ -210,7 +210,7 @@ describe('populate-error-message', () => { err.serviceContext = TEST_SERVICE_INVALID; populateErrorMessage(err, em); deepStrictEqual(em.serviceContext, TEST_SERVICE_DEFAULT); - } + }, ); it( @@ -220,7 +220,7 @@ describe('populate-error-message', () => { const err = {}; populateErrorMessage(err, em); deepStrictEqual(em.serviceContext, TEST_SERVICE_DEFAULT); - } + }, ); it( @@ -236,7 +236,7 @@ describe('populate-error-message', () => { err.stack = TEST_STACK_INVALID_CONTENTS; populateErrorMessage(err, em); deepStrictEqual(em.context.reportLocation, TEST_STACK_DEFAULT); - } + }, ); it( @@ -248,7 +248,7 @@ describe('populate-error-message', () => { err.stack = TEST_STACK_INVALID_TYPE; populateErrorMessage(err, em); deepStrictEqual(em.context.reportLocation, TEST_STACK_DEFAULT); - } + }, ); it('FilePath Field: Should set the field given valid input given an object', () => { @@ -266,7 +266,7 @@ describe('populate-error-message', () => { const err = {}; populateErrorMessage(err, em); assert.strictEqual(em.context.reportLocation.filePath, ''); - } + }, ); it('LineNumber Field: Should set the field given valid input given an object', () => { @@ -284,7 +284,7 @@ describe('populate-error-message', () => { const err = {}; populateErrorMessage(err, em); assert.strictEqual(em.context.reportLocation.lineNumber, 0); - } + }, ); it( @@ -296,7 +296,7 @@ describe('populate-error-message', () => { err.functionName = FUNCTION_NAME; populateErrorMessage(err, em); assert.strictEqual(em.context.reportLocation.functionName, FUNCTION_NAME); - } + }, ); it( @@ -306,6 +306,6 @@ describe('populate-error-message', () => { const err = {}; populateErrorMessage(err, em); assert.strictEqual(em.context.reportLocation.functionName, ''); - } + }, ); }); diff --git a/handwritten/error-reporting/test/unit/request-extractors/express.ts b/handwritten/error-reporting/test/unit/request-extractors/express.ts index fe053963667..0c4b05eb785 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/express.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/express.ts @@ -38,7 +38,7 @@ describe('Behaviour under varying input', () => { f.fuzzFunctionForTypes( expressRequestInformationExtractor, ['object', 'object'], - cbFn + cbFn, ); }); it('Should return valid request object given valid input', () => { @@ -115,7 +115,7 @@ describe('Behaviour under varying input', () => { }; let tmpOutput = expressRequestInformationExtractor( headerFactory(FULL_REQ_DERIVATION_VALUE), - FULL_RES_DERIVATION_VALUE as Response + FULL_RES_DERIVATION_VALUE as Response, ); deepStrictEqual( tmpOutput, @@ -125,11 +125,11 @@ describe('Behaviour under varying input', () => { "'x-forwarded-for' parameter the request extractor should return", "the expected full req output and the 'x-forwarded-for' value", "as the value for the 'remoteAddress' property.", - ].join(' ') + ].join(' '), ); tmpOutput = expressRequestInformationExtractor( headerFactory(PARTIAL_REQ_DERIVATION_VALUE), - PARTIAL_RES_DERIVATION_VALUE as Response + PARTIAL_RES_DERIVATION_VALUE as Response, ); deepStrictEqual( tmpOutput, @@ -139,11 +139,11 @@ describe('Behaviour under varying input', () => { "'x-forwarded-for' parameter the request extractor should return", 'the expected parital req output and the remoteAddress value', "as the value for the 'remoteAddress' property.", - ].join(' ') + ].join(' '), ); tmpOutput = expressRequestInformationExtractor( headerFactory(ANOTHER_PARTIAL_REQ_DERIVATION_VALUE), - ANOTHER_PARTIAL_RES_DERIVATION_VALUE as Response + ANOTHER_PARTIAL_RES_DERIVATION_VALUE as Response, ); deepStrictEqual( tmpOutput, @@ -153,7 +153,7 @@ describe('Behaviour under varying input', () => { "'x-forwarded-for' parameter or a remoteAddress parameter", 'the request extractor should return an empty string', "as the value for the 'remoteAddress' property.", - ].join(' ') + ].join(' '), ); }); }); diff --git a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts index 16d694d33e9..0fe80f31081 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts @@ -105,25 +105,25 @@ describe('hapiRequestInformationExtractor behaviour', () => { it('Should produce the full request input', () => { deepStrictEqual( hapiRequestInformationExtractor( - FULL_REQ_DERIVATION_VALUE as {} as hapi.Request + FULL_REQ_DERIVATION_VALUE as {} as hapi.Request, ), - FULL_REQ_EXPECTED_VALUE + FULL_REQ_EXPECTED_VALUE, ); }); it('Should produce the partial request input', () => { deepStrictEqual( hapiRequestInformationExtractor( - PARTIAL_REQ_DERIVATION_VALUE as {} as hapi.Request + PARTIAL_REQ_DERIVATION_VALUE as {} as hapi.Request, ), - PARTIAL_REQ_EXPECTED_VALUE + PARTIAL_REQ_EXPECTED_VALUE, ); }); it('Should produce the second partial request input', () => { deepStrictEqual( hapiRequestInformationExtractor( - ANOTHER_PARTIAL_REQ_DERIVATION_VALUE as {} as hapi.Request + ANOTHER_PARTIAL_REQ_DERIVATION_VALUE as {} as hapi.Request, ), - ANOTHER_PARTIAL_REQ_EXPECTED_VALUE + ANOTHER_PARTIAL_REQ_EXPECTED_VALUE, ); }); it('Should deal with hapi v16+ URL objects', () => { @@ -135,7 +135,7 @@ describe('hapiRequestInformationExtractor behaviour', () => { const EXPECTED = {...FULL_REQ_EXPECTED_VALUE, url: PATH}; deepStrictEqual( hapiRequestInformationExtractor(REQUEST as {} as hapi.Request), - EXPECTED + EXPECTED, ); }); }); diff --git a/handwritten/error-reporting/test/unit/request-extractors/koa.ts b/handwritten/error-reporting/test/unit/request-extractors/koa.ts index 61cdeb76643..b1e411eeaaf 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/koa.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/koa.ts @@ -37,7 +37,7 @@ describe('koaRequestInformationExtractor', () => { f.fuzzFunctionForTypes( koaRequestInformationExtractor, ['object', 'object'], - cbFn + cbFn, ); }); }); @@ -66,9 +66,9 @@ describe('koaRequestInformationExtractor', () => { deepStrictEqual( koaRequestInformationExtractor( FULL_REQ_DERIVATION_VALUE as unknown as Request, - FULL_RES_DERIVATION_VALUE as Response + FULL_RES_DERIVATION_VALUE as Response, ), - FULL_REQ_EXPECTED_VALUE + FULL_REQ_EXPECTED_VALUE, ); }); }); diff --git a/handwritten/error-reporting/test/unit/request-extractors/manual.ts b/handwritten/error-reporting/test/unit/request-extractors/manual.ts index b8758c92d04..5f2e9561740 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/manual.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/manual.ts @@ -35,7 +35,7 @@ describe('manualRequestInformationExtractor', () => { f.fuzzFunctionForTypes( manualRequestInformationExtractor, ['object'], - cbFn + cbFn, ); }); }); @@ -55,7 +55,7 @@ describe('manualRequestInformationExtractor', () => { [ 'Given a full valid input object these values should be reflected by', 'the output of the request extraction', - ].join(' ') + ].join(' '), ); // eslint-disable-next-line @typescript-eslint/no-unused-vars const {method, ...sansMethod} = FULL_VALID_INPUT; @@ -65,7 +65,7 @@ describe('manualRequestInformationExtractor', () => { [ 'Given a full valid input object sans the method property values', 'should be reflected by the output of the request extraction', - ].join(' ') + ].join(' '), ); // eslint-disable-next-line @typescript-eslint/no-unused-vars const {url, ...sansUrl} = FULL_VALID_INPUT; @@ -75,7 +75,7 @@ describe('manualRequestInformationExtractor', () => { [ 'Given a valid input sans the url property these values should be', 'reflected by the output of the request extraction', - ].join('') + ].join(''), ); // eslint-disable-next-line @typescript-eslint/no-unused-vars const {userAgent, ...sansUserAgent} = FULL_VALID_INPUT; @@ -85,7 +85,7 @@ describe('manualRequestInformationExtractor', () => { [ 'Given a full valid input sans the userAgent property these values', 'should be reflected by the output of the request extraction', - ].join('') + ].join(''), ); // eslint-disable-next-line @typescript-eslint/no-unused-vars const {referrer, ...sansReferrer} = FULL_VALID_INPUT; @@ -95,7 +95,7 @@ describe('manualRequestInformationExtractor', () => { [ 'Given a full valid input sans the referrer property these values', 'should be reflected by the output of the request extraction', - ].join('') + ].join(''), ); // eslint-disable-next-line @typescript-eslint/no-unused-vars const {statusCode, ...sansStatusCode} = FULL_VALID_INPUT; @@ -105,7 +105,7 @@ describe('manualRequestInformationExtractor', () => { [ 'Given a full valid input sans the statusCode property these values', 'should be reflected by the output of the request extraction', - ].join('') + ].join(''), ); // eslint-disable-next-line @typescript-eslint/no-unused-vars const {remoteAddress, ...sansRemoteAddress} = FULL_VALID_INPUT; @@ -115,7 +115,7 @@ describe('manualRequestInformationExtractor', () => { [ 'Given a valid input sans the remoteAddress property these values', 'should be reflected by the output of the request extraction', - ].join('') + ].join(''), ); }); }); diff --git a/handwritten/error-reporting/test/unit/service-configuration.ts b/handwritten/error-reporting/test/unit/service-configuration.ts index 5b8ab2838ab..4a9ac2cae66 100644 --- a/handwritten/error-reporting/test/unit/service-configuration.ts +++ b/handwritten/error-reporting/test/unit/service-configuration.ts @@ -51,7 +51,7 @@ function setEnv(envData: { envData.gaeModuleVersion && {GAE_MODULE_VERSION: envData.gaeModuleVersion}, envData.functionName && {FUNCTION_NAME: envData.functionName}, envData.kService && {K_SERVICE: envData.kService}, - envData.kRevision && {K_REVISION: envData.kRevision} + envData.kRevision && {K_REVISION: envData.kRevision}, ); } function restoreServiceConfigEnv() { @@ -83,7 +83,7 @@ describe('Testing service configuration', () => { // FUNCTION_NAME is set and the user didn't specify a version, and so // the version should not be defined deepStrictEqual(c.getServiceContext().version, undefined); - } + }, ); it( 'A Configuration uses the function name as the service name on GCF ' + @@ -104,7 +104,7 @@ describe('Testing service configuration', () => { // The user didn't specify a version and FUNCTION_NAME is defined, and // so the version should not be defined deepStrictEqual(c.getServiceContext().version, undefined); - } + }, ); it( 'A Configuration uses the GAE_SERVICE env value as the service name ' + @@ -125,7 +125,7 @@ describe('Testing service configuration', () => { // The user didn't specify a version, and FUNCTION_NAME is not defined, // and so use the GAE_MODULE_VERSION deepStrictEqual(c.getServiceContext().version, '1.0'); - } + }, ); it( 'A Configuration uses the service name in the given config if it ' + @@ -147,13 +147,13 @@ describe('Testing service configuration', () => { service: 'customService', }, }, - logger + logger, ); deepStrictEqual(c.getServiceContext().service, 'customService'); // The user didn't specify a version, but FUNCTION_NAME is defined, and // so the version should not be defined deepStrictEqual(c.getServiceContext().version, undefined); - } + }, ); it( 'A Configuration uses the service name and version in the given config' + @@ -176,12 +176,12 @@ describe('Testing service configuration', () => { version: '2.0', }, }, - logger + logger, ); deepStrictEqual(c.getServiceContext().service, 'customService'); // The user specified version should be used deepStrictEqual(c.getServiceContext().version, '2.0'); - } + }, ); it( 'A Configuration uses the service name in the given config if it ' + @@ -202,13 +202,13 @@ describe('Testing service configuration', () => { service: 'customService', }, }, - logger + logger, ); deepStrictEqual(c.getServiceContext().service, 'customService'); // The user didn't specify a version and FUNCTION_NAME is not defined // and so the GAE_MODULE_VERSION should be used deepStrictEqual(c.getServiceContext().version, '1.0'); - } + }, ); it( 'A Configuration uses the service name and version in the given config ' + @@ -230,12 +230,12 @@ describe('Testing service configuration', () => { version: '2.0', }, }, - logger + logger, ); deepStrictEqual(c.getServiceContext().service, 'customService'); // The user specified version should be used deepStrictEqual(c.getServiceContext().version, '2.0'); - } + }, ); it( 'A Configuration uses the service name in the given config if it ' + @@ -256,13 +256,13 @@ describe('Testing service configuration', () => { service: 'customService', }, }, - logger + logger, ); deepStrictEqual(c.getServiceContext().service, 'customService'); // The user didn't specify a version and thus because FUNCTION_NAME is // defined the version should not be defined deepStrictEqual(c.getServiceContext().version, undefined); - } + }, ); it( 'A Configuration uses the service name and version in the given config ' + @@ -284,12 +284,12 @@ describe('Testing service configuration', () => { version: '2.0', }, }, - logger + logger, ); assert.strictEqual(c.getServiceContext().service, 'customService'); // The user specified version should be used assert.strictEqual(c.getServiceContext().version, '2.0'); - } + }, ); it( 'A Configuration uses the service name "node" and no version if ' + @@ -299,7 +299,7 @@ describe('Testing service configuration', () => { const c = new Configuration({}, logger); assert.strictEqual(c.getServiceContext().service, 'node'); assert.strictEqual(c.getServiceContext().version, undefined); - } + }, ); it( 'A Configuration uses the service name "node" and no version if ' + @@ -319,7 +319,7 @@ describe('Testing service configuration', () => { const c = new Configuration({}, logger); assert.strictEqual(c.getServiceContext().service, 'node'); assert.strictEqual(c.getServiceContext().version, undefined); - } + }, ); it( 'A Configuration uses the service name "node" and the user specified ' + @@ -332,11 +332,11 @@ describe('Testing service configuration', () => { version: '2.0', }, }, - logger + logger, ); deepStrictEqual(c.getServiceContext().service, 'node'); deepStrictEqual(c.getServiceContext().version, '2.0'); - } + }, ); it('A Configuration uses the K_SERVICE and K_REVISION env variables if set', () => { setEnv({ diff --git a/handwritten/error-reporting/test/util.ts b/handwritten/error-reporting/test/util.ts index 43887717053..9b01d05dd0f 100644 --- a/handwritten/error-reporting/test/util.ts +++ b/handwritten/error-reporting/test/util.ts @@ -20,7 +20,7 @@ export type Anything = {} | undefined | null; export function deepStrictEqual( actual: Anything, expected: Anything, - message?: string + message?: string, ) { assert.deepStrictEqual(stringify(actual), stringify(expected), message); } diff --git a/handwritten/error-reporting/utils/errors-api-transport.ts b/handwritten/error-reporting/utils/errors-api-transport.ts index 78d1f9e5478..81f3da349d5 100644 --- a/handwritten/error-reporting/utils/errors-api-transport.ts +++ b/handwritten/error-reporting/utils/errors-api-transport.ts @@ -54,7 +54,7 @@ export class ErrorsApiTransport extends AuthClient { service: string, version: string, pageSize: number, - pageToken?: string + pageToken?: string, ): Promise { const id = await this.getProjectId(); const options = { diff --git a/handwritten/error-reporting/utils/fuzzer.ts b/handwritten/error-reporting/utils/fuzzer.ts index 82df9e9bd4c..51f27d04b00 100644 --- a/handwritten/error-reporting/utils/fuzzer.ts +++ b/handwritten/error-reporting/utils/fuzzer.ts @@ -95,7 +95,7 @@ export class Fuzzer { len?: number, ofOneType?: string, currentDepth?: number, - allowedDepth?: number + allowedDepth?: number, ) { const lenChecked = (typeof len === 'number' ? len : _random(1, 10))!; let availableTypes = ( @@ -116,7 +116,7 @@ export class Fuzzer { // Deny the ability to nest more objects if (currentDepthChecked >= allowedDepthChecked) { availableTypes = this.types().filter( - i => i !== 'object' && i !== 'array' + i => i !== 'object' && i !== 'array', ); } @@ -129,8 +129,8 @@ export class Fuzzer { this[currentTypeBeingGenerated]( null!, currentDepthChecked, - allowedDepthChecked - ) + allowedDepthChecked, + ), ); } else if (currentTypeBeingGenerated === 'array') { arr.push( @@ -138,12 +138,12 @@ export class Fuzzer { null!, ofOneType, currentDepthChecked, - allowedDepthChecked - ) + allowedDepthChecked, + ), ); } else { arr.push( - (this as {[key: string]: Function})[currentTypeBeingGenerated!]() + (this as {[key: string]: Function})[currentTypeBeingGenerated!](), ); } } @@ -154,7 +154,7 @@ export class Fuzzer { object( numProperties?: number, currentDepth?: number, - allowedDepth?: number + allowedDepth?: number, ) { const numPropertiesChecked = ( typeof numProperties === 'number' ? numProperties : _random(1, 10) @@ -173,7 +173,7 @@ export class Fuzzer { // Deny the ability to nest more objects if (currentDepth! >= allowedDepth!) { availableTypes = availableTypes.filter( - i => i !== 'object' && i !== 'array' + i => i !== 'object' && i !== 'array', ); } @@ -189,14 +189,14 @@ export class Fuzzer { obj[currentKey] = this[currentTypeBeingGenerated]( null!, currentDepthChecked, - allowedDepthChecked + allowedDepthChecked, ); } else if (currentTypeBeingGenerated === 'array') { obj[currentKey] = this[currentTypeBeingGenerated]( null!, null!, currentDepthChecked, - allowedDepthChecked + allowedDepthChecked, ); } else { obj[currentKey] = (this as {[key: string]: Function})[ @@ -221,7 +221,7 @@ export class Fuzzer { if (argsTypesArray[i].length !== largestLength) { while (argsTypesArray[i].length < largestLength) { argsTypesArray[i].push( - argsTypesArray[i][_random(0, argsTypesArray[i].length - 1)] + argsTypesArray[i][_random(0, argsTypesArray[i].length - 1)], ); } } @@ -255,7 +255,7 @@ export class Fuzzer { for (let i = 0; i < expectsArgTypes.length; i++) { if (!Array.isArray(expectsArgTypes[i])) { argsTypesArray.push( - this.generate.types().filter(item => item !== expectsArgTypes[i]) + this.generate.types().filter(item => item !== expectsArgTypes[i]), ); } else { for (let j = 0; j < expectsArgTypes[i].length; j++) { @@ -289,13 +289,13 @@ export class Fuzzer { fnToFuzz: Function, expectsArgTypes?: string[], cb?: Function, - withContext?: {} + withContext?: {}, ) { const expectsArgTypesChecked = ( Array.isArray(expectsArgTypes) ? expectsArgTypes : [] )!; const typesToFuzzOnEach = this._generateTypesToFuzzWith( - expectsArgTypesChecked + expectsArgTypesChecked, ) as string[][]; let returnValue = undefined; @@ -303,7 +303,7 @@ export class Fuzzer { for (let i = 0; i < typesToFuzzOnEach[0].length; i++) { returnValue = fnToFuzz.apply( withContext, - this._generateValuesForFuzzTyping(typesToFuzzOnEach, i) + this._generateValuesForFuzzTyping(typesToFuzzOnEach, i), ); if (typeof cb === 'function') { From 3bd90dbfddabbf7b9b7e4fa33282f2510f2226a8 Mon Sep 17 00:00:00 2001 From: Tomo Suzuki Date: Tue, 20 Jan 2026 11:15:44 -0500 Subject: [PATCH 491/527] chore: remove api-logging team (#789) * chore: remove api-logging team from CODEOWNERS and blunderbuss * chore: remove api-logging-partners and use yoshi-nodejs as owner * chore: remove remaining api-logging teams from configuration files --- handwritten/error-reporting/.github/CODEOWNERS | 2 +- handwritten/error-reporting/.github/blunderbuss.yml | 4 ++-- handwritten/error-reporting/.github/sync-repo-settings.yaml | 2 -- handwritten/error-reporting/.repo-metadata.json | 2 +- 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/handwritten/error-reporting/.github/CODEOWNERS b/handwritten/error-reporting/.github/CODEOWNERS index 9cfb9aaf97c..80520bbaac3 100644 --- a/handwritten/error-reporting/.github/CODEOWNERS +++ b/handwritten/error-reporting/.github/CODEOWNERS @@ -6,7 +6,7 @@ # The yoshi-nodejs team is the default owner for nodejs repositories. -* @googleapis/yoshi-nodejs @googleapis/api-logging @googleapis/api-logging-partners +* @googleapis/yoshi-nodejs # The github automation team is the default owner for the auto-approve file. .github/auto-approve.yml @googleapis/github-automation diff --git a/handwritten/error-reporting/.github/blunderbuss.yml b/handwritten/error-reporting/.github/blunderbuss.yml index a9d3f44e396..768497b9931 100644 --- a/handwritten/error-reporting/.github/blunderbuss.yml +++ b/handwritten/error-reporting/.github/blunderbuss.yml @@ -1,4 +1,4 @@ assign_issues: - - googleapis/api-logging-reviewers + - googleapis/yoshi-nodejs assign_prs: - - googleapis/api-logging-reviewers + - googleapis/yoshi-nodejs diff --git a/handwritten/error-reporting/.github/sync-repo-settings.yaml b/handwritten/error-reporting/.github/sync-repo-settings.yaml index b32c4a73b80..bc85f1c66d4 100644 --- a/handwritten/error-reporting/.github/sync-repo-settings.yaml +++ b/handwritten/error-reporting/.github/sync-repo-settings.yaml @@ -22,5 +22,3 @@ permissionRules: permission: admin - team: jsteam permission: push - - team: api-logging-partners - permission: push diff --git a/handwritten/error-reporting/.repo-metadata.json b/handwritten/error-reporting/.repo-metadata.json index 32bd9181c6b..a1a6b836dc5 100644 --- a/handwritten/error-reporting/.repo-metadata.json +++ b/handwritten/error-reporting/.repo-metadata.json @@ -9,7 +9,7 @@ "repo": "googleapis/nodejs-error-reporting", "distribution_name": "@google-cloud/error-reporting", "api_id": "clouderrorreporting.googleapis.com", - "codeowner_team": "@googleapis/api-logging", + "codeowner_team": "@googleapis/yoshi-nodejs", "api_shortname": "error-reporting", "library_type": "REST" } From 0bd3e8788aa4f520cf1cb6cf4619c2ed98d5025a Mon Sep 17 00:00:00 2001 From: Gautam Sharda Date: Thu, 26 Feb 2026 00:03:28 +0000 Subject: [PATCH 492/527] build: add release-please config, fix owlbot-config --- .github/CODEOWNERS | 1 + .release-please-manifest.json | 5 ++- .../{.github => }/.OwlBot.yaml | 2 - .../error-reporting/.github/.OwlBot.lock.yaml | 17 --------- .../error-reporting/.github/CODEOWNERS | 12 ------ .../.github/ISSUE_TEMPLATE/bug_report.md | 38 ------------------- .../.github/ISSUE_TEMPLATE/config.yml | 4 -- .../.github/ISSUE_TEMPLATE/feature_request.md | 18 --------- .../.github/ISSUE_TEMPLATE/question.md | 12 ------ .../.github/ISSUE_TEMPLATE/support_request.md | 7 ---- .../.github/PULL_REQUEST_TEMPLATE.md | 7 ---- .../error-reporting/.github/auto-approve.yml | 3 -- .../error-reporting/.github/auto-label.yaml | 19 ---------- .../error-reporting/.github/blunderbuss.yml | 4 -- .../.github/generated-files-bot.yml | 16 -------- .../.github/release-please.yml | 2 - .../.github/release-trigger.yml | 1 - .../.github/sync-repo-settings.yaml | 24 ------------ .../error-reporting/.kokoro/common.cfg | 4 +- .../.kokoro/continuous/node14/common.cfg | 4 +- .../.kokoro/continuous/node14/lint.cfg | 2 +- .../continuous/node14/samples-test.cfg | 2 +- .../.kokoro/continuous/node14/system-test.cfg | 2 +- .../.kokoro/presubmit/node14/common.cfg | 4 +- .../.kokoro/presubmit/node14/samples-test.cfg | 2 +- .../.kokoro/presubmit/node14/system-test.cfg | 2 +- .../.kokoro/presubmit/windows/test.cfg | 2 +- .../.kokoro/release/docs-devsite.cfg | 4 +- .../error-reporting/.kokoro/release/docs.cfg | 4 +- .../.kokoro/release/publish.cfg | 4 +- .../error-reporting/.kokoro/trampoline_v2.sh | 24 +++++++++++- .../error-reporting/.repo-metadata.json | 2 +- handwritten/error-reporting/.trampolinerc | 2 +- handwritten/error-reporting/owlbot.py | 2 +- handwritten/error-reporting/package.json | 9 ++++- release-please-submodules.json | 15 ++++---- 36 files changed, 62 insertions(+), 220 deletions(-) rename handwritten/error-reporting/{.github => }/.OwlBot.yaml (89%) delete mode 100644 handwritten/error-reporting/.github/.OwlBot.lock.yaml delete mode 100644 handwritten/error-reporting/.github/CODEOWNERS delete mode 100644 handwritten/error-reporting/.github/ISSUE_TEMPLATE/bug_report.md delete mode 100644 handwritten/error-reporting/.github/ISSUE_TEMPLATE/config.yml delete mode 100644 handwritten/error-reporting/.github/ISSUE_TEMPLATE/feature_request.md delete mode 100644 handwritten/error-reporting/.github/ISSUE_TEMPLATE/question.md delete mode 100644 handwritten/error-reporting/.github/ISSUE_TEMPLATE/support_request.md delete mode 100644 handwritten/error-reporting/.github/PULL_REQUEST_TEMPLATE.md delete mode 100644 handwritten/error-reporting/.github/auto-approve.yml delete mode 100644 handwritten/error-reporting/.github/auto-label.yaml delete mode 100644 handwritten/error-reporting/.github/blunderbuss.yml delete mode 100644 handwritten/error-reporting/.github/generated-files-bot.yml delete mode 100644 handwritten/error-reporting/.github/release-please.yml delete mode 100644 handwritten/error-reporting/.github/release-trigger.yml delete mode 100644 handwritten/error-reporting/.github/sync-repo-settings.yaml diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index ae7db338588..4cbf6f00522 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -9,3 +9,4 @@ * @googleapis/cloud-sdk-nodejs-team /handwritten/bigquery @googleapis/bigquery-team /handwritten/cloud-profiler @googleapis/cloud-profiler-team +/handwritten/error-reporting @googleapis/yoshi-nodejs diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 9afa1ee8000..1a32f8a480f 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,9 +1,10 @@ { - "handwritten/datastore": "10.1.0", - "handwritten/logging-winston": "6.0.1", "handwritten/bigquery": "8.2.0", "handwritten/cloud-profiler": "6.0.4", + "handwritten/datastore": "10.1.0", + "handwritten/error-reporting": "3.0.5", "handwritten/logging-bunyan": "5.1.1", + "handwritten/logging-winston": "6.0.1", "packages/gapic-node-processing": "0.1.6", "packages/google-ads-admanager": "0.5.0", "packages/google-ads-datamanager": "0.1.0", diff --git a/handwritten/error-reporting/.github/.OwlBot.yaml b/handwritten/error-reporting/.OwlBot.yaml similarity index 89% rename from handwritten/error-reporting/.github/.OwlBot.yaml rename to handwritten/error-reporting/.OwlBot.yaml index 164fb2e5ad7..10389756341 100644 --- a/handwritten/error-reporting/.github/.OwlBot.yaml +++ b/handwritten/error-reporting/.OwlBot.yaml @@ -11,8 +11,6 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -docker: - image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest begin-after-commit-hash: 674a41e0de2869f44f45eb7b1a605852a5394bba diff --git a/handwritten/error-reporting/.github/.OwlBot.lock.yaml b/handwritten/error-reporting/.github/.OwlBot.lock.yaml deleted file mode 100644 index 83f86214790..00000000000 --- a/handwritten/error-reporting/.github/.OwlBot.lock.yaml +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright 2023 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -docker: - image: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest - digest: sha256:bfe4592953269bfa8d135200ca1b17809f106a337a885d7ecc12cd2a9998e98a -# created: 2023-11-15T20:00:24.246072277Z \ No newline at end of file diff --git a/handwritten/error-reporting/.github/CODEOWNERS b/handwritten/error-reporting/.github/CODEOWNERS deleted file mode 100644 index 80520bbaac3..00000000000 --- a/handwritten/error-reporting/.github/CODEOWNERS +++ /dev/null @@ -1,12 +0,0 @@ -# Code owners file. -# This file controls who is tagged for review for any given pull request. -# -# For syntax help see: -# https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners#codeowners-syntax - - -# The yoshi-nodejs team is the default owner for nodejs repositories. -* @googleapis/yoshi-nodejs - -# The github automation team is the default owner for the auto-approve file. -.github/auto-approve.yml @googleapis/github-automation diff --git a/handwritten/error-reporting/.github/ISSUE_TEMPLATE/bug_report.md b/handwritten/error-reporting/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 29bbc85a561..00000000000 --- a/handwritten/error-reporting/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -labels: 'type: bug, priority: p2' ---- - -Thanks for stopping by to let us know something could be better! - -**PLEASE READ**: If you have a support contract with Google, please create an issue in the [support console](https://cloud.google.com/support/) instead of filing on GitHub. This will ensure a timely response. - -1) Is this a client library issue or a product issue? -This is the client library for . We will only be able to assist with issues that pertain to the behaviors of this library. If the issue you're experiencing is due to the behavior of the product itself, please visit the [ Support page]() to reach the most relevant engineers. - -2) Did someone already solve this? - - Search the issues already opened: https://github.com/googleapis/nodejs-error-reporting/issues - - Search the issues on our "catch-all" repository: https://github.com/googleapis/google-cloud-node - - Search or ask on StackOverflow (engineers monitor these tags): http://stackoverflow.com/questions/tagged/google-cloud-platform+node.js - -3) Do you have a support contract? -Please create an issue in the [support console](https://cloud.google.com/support/) to ensure a timely response. - -If the support paths suggested above still do not result in a resolution, please provide the following details. - -#### Environment details - - - OS: - - Node.js version: - - npm version: - - `@google-cloud/error-reporting` version: - -#### Steps to reproduce - - 1. ? - 2. ? - -Making sure to follow these steps will guarantee the quickest resolution possible. - -Thanks! diff --git a/handwritten/error-reporting/.github/ISSUE_TEMPLATE/config.yml b/handwritten/error-reporting/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 603b90133b6..00000000000 --- a/handwritten/error-reporting/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,4 +0,0 @@ -contact_links: - - name: Google Cloud Support - url: https://cloud.google.com/support/ - about: If you have a support contract with Google, please use the Google Cloud Support portal. diff --git a/handwritten/error-reporting/.github/ISSUE_TEMPLATE/feature_request.md b/handwritten/error-reporting/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index b0327dfa02e..00000000000 --- a/handwritten/error-reporting/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this library -labels: 'type: feature request, priority: p3' ---- - -Thanks for stopping by to let us know something could be better! - -**PLEASE READ**: If you have a support contract with Google, please create an issue in the [support console](https://cloud.google.com/support/) instead of filing on GitHub. This will ensure a timely response. - - **Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - **Describe the solution you'd like** -A clear and concise description of what you want to happen. - **Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - **Additional context** -Add any other context or screenshots about the feature request here. diff --git a/handwritten/error-reporting/.github/ISSUE_TEMPLATE/question.md b/handwritten/error-reporting/.github/ISSUE_TEMPLATE/question.md deleted file mode 100644 index 97323113911..00000000000 --- a/handwritten/error-reporting/.github/ISSUE_TEMPLATE/question.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: Question -about: Ask a question -labels: 'type: question, priority: p3' ---- - -Thanks for stopping by to ask us a question! Please make sure to include: -- What you're trying to do -- What code you've already tried -- Any error messages you're getting - -**PLEASE READ**: If you have a support contract with Google, please create an issue in the [support console](https://cloud.google.com/support/) instead of filing on GitHub. This will ensure a timely response. diff --git a/handwritten/error-reporting/.github/ISSUE_TEMPLATE/support_request.md b/handwritten/error-reporting/.github/ISSUE_TEMPLATE/support_request.md deleted file mode 100644 index 99586903212..00000000000 --- a/handwritten/error-reporting/.github/ISSUE_TEMPLATE/support_request.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -name: Support request -about: If you have a support contract with Google, please create an issue in the Google Cloud Support console. - ---- - -**PLEASE READ**: If you have a support contract with Google, please create an issue in the [support console](https://cloud.google.com/support/) instead of filing on GitHub. This will ensure a timely response. diff --git a/handwritten/error-reporting/.github/PULL_REQUEST_TEMPLATE.md b/handwritten/error-reporting/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 3ba18ded383..00000000000 --- a/handwritten/error-reporting/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ -Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: -- [ ] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/nodejs-error-reporting/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea -- [ ] Ensure the tests and linter pass -- [ ] Code coverage does not decrease (if any source code was changed) -- [ ] Appropriate docs were updated (if necessary) - -Fixes # 🦕 diff --git a/handwritten/error-reporting/.github/auto-approve.yml b/handwritten/error-reporting/.github/auto-approve.yml deleted file mode 100644 index 4cd91cc16ae..00000000000 --- a/handwritten/error-reporting/.github/auto-approve.yml +++ /dev/null @@ -1,3 +0,0 @@ -processes: - - "NodeDependency" - - "OwlBotTemplateChanges" diff --git a/handwritten/error-reporting/.github/auto-label.yaml b/handwritten/error-reporting/.github/auto-label.yaml deleted file mode 100644 index ccad49b4ebf..00000000000 --- a/handwritten/error-reporting/.github/auto-label.yaml +++ /dev/null @@ -1,19 +0,0 @@ -# Copyright 2022 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -requestsize: - enabled: true -staleness: - pullrequest: true - old: 30 - extraold: 60 diff --git a/handwritten/error-reporting/.github/blunderbuss.yml b/handwritten/error-reporting/.github/blunderbuss.yml deleted file mode 100644 index 768497b9931..00000000000 --- a/handwritten/error-reporting/.github/blunderbuss.yml +++ /dev/null @@ -1,4 +0,0 @@ -assign_issues: - - googleapis/yoshi-nodejs -assign_prs: - - googleapis/yoshi-nodejs diff --git a/handwritten/error-reporting/.github/generated-files-bot.yml b/handwritten/error-reporting/.github/generated-files-bot.yml deleted file mode 100644 index 992ccef4a13..00000000000 --- a/handwritten/error-reporting/.github/generated-files-bot.yml +++ /dev/null @@ -1,16 +0,0 @@ -generatedFiles: -- path: '.kokoro/**' - message: '`.kokoro` files are templated and should be updated in [`synthtool`](https://github.com/googleapis/synthtool)' -- path: '.github/CODEOWNERS' - message: 'CODEOWNERS should instead be modified via the `codeowner_team` property in .repo-metadata.json' -- path: '.github/workflows/ci.yaml' - message: '`.github/workflows/ci.yaml` (GitHub Actions) should be updated in [`synthtool`](https://github.com/googleapis/synthtool)' -- path: '.github/generated-files-bot.+(yml|yaml)' - message: '`.github/generated-files-bot.(yml|yaml)` should be updated in [`synthtool`](https://github.com/googleapis/synthtool)' -- path: 'README.md' - message: '`README.md` is managed by [`synthtool`](https://github.com/googleapis/synthtool). However, a partials file can be used to update the README, e.g.: https://github.com/googleapis/nodejs-storage/blob/main/.readme-partials.yaml' -- path: 'samples/README.md' - message: '`samples/README.md` is managed by [`synthtool`](https://github.com/googleapis/synthtool). However, a partials file can be used to update the README, e.g.: https://github.com/googleapis/nodejs-storage/blob/main/.readme-partials.yaml' -ignoreAuthors: -- 'gcf-owl-bot[bot]' -- 'yoshi-automation' diff --git a/handwritten/error-reporting/.github/release-please.yml b/handwritten/error-reporting/.github/release-please.yml deleted file mode 100644 index a1b41da3cb3..00000000000 --- a/handwritten/error-reporting/.github/release-please.yml +++ /dev/null @@ -1,2 +0,0 @@ -handleGHRelease: true -releaseType: node diff --git a/handwritten/error-reporting/.github/release-trigger.yml b/handwritten/error-reporting/.github/release-trigger.yml deleted file mode 100644 index d4ca94189e1..00000000000 --- a/handwritten/error-reporting/.github/release-trigger.yml +++ /dev/null @@ -1 +0,0 @@ -enabled: true diff --git a/handwritten/error-reporting/.github/sync-repo-settings.yaml b/handwritten/error-reporting/.github/sync-repo-settings.yaml deleted file mode 100644 index bc85f1c66d4..00000000000 --- a/handwritten/error-reporting/.github/sync-repo-settings.yaml +++ /dev/null @@ -1,24 +0,0 @@ -branchProtectionRules: - - pattern: main - isAdminEnforced: true - requiredApprovingReviewCount: 1 - requiresCodeOwnerReviews: true - requiresStrictStatusChecks: true - requiredStatusCheckContexts: - - "ci/kokoro: Samples test" - - "ci/kokoro: System test" - - lint - - test (18) - - test (20) - - test (22) - - test (24) - - cla/google - - windows - - OwlBot Post Processor -permissionRules: - - team: yoshi-admins - permission: admin - - team: jsteam-admins - permission: admin - - team: jsteam - permission: push diff --git a/handwritten/error-reporting/.kokoro/common.cfg b/handwritten/error-reporting/.kokoro/common.cfg index be5da7811e9..e55448e95ac 100644 --- a/handwritten/error-reporting/.kokoro/common.cfg +++ b/handwritten/error-reporting/.kokoro/common.cfg @@ -11,7 +11,7 @@ action { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-error-reporting/.kokoro/trampoline_v2.sh" +build_file: "nodejs-error-reporting/handwritten/error-reporting/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { @@ -20,7 +20,7 @@ env_vars: { } env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-error-reporting/.kokoro/test.sh" + value: "github/nodejs-error-reporting/handwritten/error-reporting/.kokoro/test.sh" } diff --git a/handwritten/error-reporting/.kokoro/continuous/node14/common.cfg b/handwritten/error-reporting/.kokoro/continuous/node14/common.cfg index be5da7811e9..e55448e95ac 100644 --- a/handwritten/error-reporting/.kokoro/continuous/node14/common.cfg +++ b/handwritten/error-reporting/.kokoro/continuous/node14/common.cfg @@ -11,7 +11,7 @@ action { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-error-reporting/.kokoro/trampoline_v2.sh" +build_file: "nodejs-error-reporting/handwritten/error-reporting/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { @@ -20,7 +20,7 @@ env_vars: { } env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-error-reporting/.kokoro/test.sh" + value: "github/nodejs-error-reporting/handwritten/error-reporting/.kokoro/test.sh" } diff --git a/handwritten/error-reporting/.kokoro/continuous/node14/lint.cfg b/handwritten/error-reporting/.kokoro/continuous/node14/lint.cfg index 1a6295c7bd4..5f39bf34e23 100644 --- a/handwritten/error-reporting/.kokoro/continuous/node14/lint.cfg +++ b/handwritten/error-reporting/.kokoro/continuous/node14/lint.cfg @@ -1,4 +1,4 @@ env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-error-reporting/.kokoro/lint.sh" + value: "github/nodejs-error-reporting/handwritten/error-reporting/.kokoro/lint.sh" } diff --git a/handwritten/error-reporting/.kokoro/continuous/node14/samples-test.cfg b/handwritten/error-reporting/.kokoro/continuous/node14/samples-test.cfg index 79695cae229..411ff6f96b0 100644 --- a/handwritten/error-reporting/.kokoro/continuous/node14/samples-test.cfg +++ b/handwritten/error-reporting/.kokoro/continuous/node14/samples-test.cfg @@ -3,7 +3,7 @@ gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-error-reporting/.kokoro/samples-test.sh" + value: "github/nodejs-error-reporting/handwritten/error-reporting/.kokoro/samples-test.sh" } env_vars: { diff --git a/handwritten/error-reporting/.kokoro/continuous/node14/system-test.cfg b/handwritten/error-reporting/.kokoro/continuous/node14/system-test.cfg index 01977307091..08fc581095d 100644 --- a/handwritten/error-reporting/.kokoro/continuous/node14/system-test.cfg +++ b/handwritten/error-reporting/.kokoro/continuous/node14/system-test.cfg @@ -3,7 +3,7 @@ gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-error-reporting/.kokoro/system-test.sh" + value: "github/nodejs-error-reporting/handwritten/error-reporting/.kokoro/system-test.sh" } env_vars: { diff --git a/handwritten/error-reporting/.kokoro/presubmit/node14/common.cfg b/handwritten/error-reporting/.kokoro/presubmit/node14/common.cfg index 4e02c8c9821..79338b0b463 100644 --- a/handwritten/error-reporting/.kokoro/presubmit/node14/common.cfg +++ b/handwritten/error-reporting/.kokoro/presubmit/node14/common.cfg @@ -11,7 +11,7 @@ action { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-error-reporting/.kokoro/trampoline_v2.sh" +build_file: "nodejs-error-reporting/handwritten/error-reporting/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { @@ -20,5 +20,5 @@ env_vars: { } env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-error-reporting/.kokoro/test.sh" + value: "github/nodejs-error-reporting/handwritten/error-reporting/.kokoro/test.sh" } diff --git a/handwritten/error-reporting/.kokoro/presubmit/node14/samples-test.cfg b/handwritten/error-reporting/.kokoro/presubmit/node14/samples-test.cfg index 79695cae229..411ff6f96b0 100644 --- a/handwritten/error-reporting/.kokoro/presubmit/node14/samples-test.cfg +++ b/handwritten/error-reporting/.kokoro/presubmit/node14/samples-test.cfg @@ -3,7 +3,7 @@ gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-error-reporting/.kokoro/samples-test.sh" + value: "github/nodejs-error-reporting/handwritten/error-reporting/.kokoro/samples-test.sh" } env_vars: { diff --git a/handwritten/error-reporting/.kokoro/presubmit/node14/system-test.cfg b/handwritten/error-reporting/.kokoro/presubmit/node14/system-test.cfg index 01977307091..08fc581095d 100644 --- a/handwritten/error-reporting/.kokoro/presubmit/node14/system-test.cfg +++ b/handwritten/error-reporting/.kokoro/presubmit/node14/system-test.cfg @@ -3,7 +3,7 @@ gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-error-reporting/.kokoro/system-test.sh" + value: "github/nodejs-error-reporting/handwritten/error-reporting/.kokoro/system-test.sh" } env_vars: { diff --git a/handwritten/error-reporting/.kokoro/presubmit/windows/test.cfg b/handwritten/error-reporting/.kokoro/presubmit/windows/test.cfg index 5167acf51c1..7a369f15186 100644 --- a/handwritten/error-reporting/.kokoro/presubmit/windows/test.cfg +++ b/handwritten/error-reporting/.kokoro/presubmit/windows/test.cfg @@ -1,2 +1,2 @@ # Use the test file directly -build_file: "nodejs-error-reporting/.kokoro/test.bat" +build_file: "nodejs-error-reporting/handwritten/error-reporting/.kokoro/test.bat" diff --git a/handwritten/error-reporting/.kokoro/release/docs-devsite.cfg b/handwritten/error-reporting/.kokoro/release/docs-devsite.cfg index 644d3f58a34..7b3ad6a53b3 100644 --- a/handwritten/error-reporting/.kokoro/release/docs-devsite.cfg +++ b/handwritten/error-reporting/.kokoro/release/docs-devsite.cfg @@ -18,9 +18,9 @@ env_vars: { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-error-reporting/.kokoro/trampoline_v2.sh" +build_file: "nodejs-error-reporting/handwritten/error-reporting/.kokoro/trampoline_v2.sh" env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-error-reporting/.kokoro/release/docs-devsite.sh" + value: "github/nodejs-error-reporting/handwritten/error-reporting/.kokoro/release/docs-devsite.sh" } diff --git a/handwritten/error-reporting/.kokoro/release/docs.cfg b/handwritten/error-reporting/.kokoro/release/docs.cfg index 827bfdb999d..4ec216af181 100644 --- a/handwritten/error-reporting/.kokoro/release/docs.cfg +++ b/handwritten/error-reporting/.kokoro/release/docs.cfg @@ -18,9 +18,9 @@ env_vars: { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-error-reporting/.kokoro/trampoline_v2.sh" +build_file: "nodejs-error-reporting/handwritten/error-reporting/.kokoro/trampoline_v2.sh" env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-error-reporting/.kokoro/release/docs.sh" + value: "github/nodejs-error-reporting/handwritten/error-reporting/.kokoro/release/docs.sh" } diff --git a/handwritten/error-reporting/.kokoro/release/publish.cfg b/handwritten/error-reporting/.kokoro/release/publish.cfg index cabed4c0cdf..4344fa51144 100644 --- a/handwritten/error-reporting/.kokoro/release/publish.cfg +++ b/handwritten/error-reporting/.kokoro/release/publish.cfg @@ -25,7 +25,7 @@ env_vars: { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-error-reporting/.kokoro/trampoline_v2.sh" +build_file: "nodejs-error-reporting/handwritten/error-reporting/.kokoro/trampoline_v2.sh" # Configure the docker image for kokoro-trampoline. env_vars: { @@ -35,7 +35,7 @@ env_vars: { env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-error-reporting/.kokoro/publish.sh" + value: "github/nodejs-error-reporting/handwritten/error-reporting/.kokoro/publish.sh" } # Store the packages we uploaded to npmjs.org and their corresponding diff --git a/handwritten/error-reporting/.kokoro/trampoline_v2.sh b/handwritten/error-reporting/.kokoro/trampoline_v2.sh index 4d03112128a..9c03d000c1f 100755 --- a/handwritten/error-reporting/.kokoro/trampoline_v2.sh +++ b/handwritten/error-reporting/.kokoro/trampoline_v2.sh @@ -246,14 +246,34 @@ function repo_root() { if [[ "${RUNNING_IN_CI:-}" == "true" ]]; then PROGRAM_PATH="$(realpath "$0")" PROGRAM_DIR="$(dirname "${PROGRAM_PATH}")" - PROJECT_ROOT="$(repo_root "${PROGRAM_DIR}")" + PROJECT_ROOT="$(repo_root "${PROGRAM_DIR}")/handwritten/error-reporting" else - PROJECT_ROOT="$(repo_root $(pwd))" + PROJECT_ROOT="$(repo_root $(pwd))/handwritten/error-reporting" fi log_yellow "Changing to the project root: ${PROJECT_ROOT}." cd "${PROJECT_ROOT}" +# Auto-injected conditional check +# Check if the package directory has changes. If not, skip tests. +if [[ "${RUNNING_IN_CI:-}" == "true" ]]; then + # The package path is hardcoded during migration + RELATIVE_PKG_PATH="handwritten/error-reporting" + + echo "Checking for changes in ${RELATIVE_PKG_PATH}..." + + # Determine the diff range based on the CI system/event + # Safe default: HEAD~1..HEAD + DIFF_RANGE="HEAD~1..HEAD" + + if git diff --quiet "${DIFF_RANGE}" -- "${RELATIVE_PKG_PATH}"; then + echo "No changes detected in ${RELATIVE_PKG_PATH}. Skipping tests." + exit 0 + else + echo "Changes detected in ${RELATIVE_PKG_PATH}. Proceeding with tests." + fi +fi + # To support relative path for `TRAMPOLINE_SERVICE_ACCOUNT`, we need # to use this environment variable in `PROJECT_ROOT`. if [[ -n "${TRAMPOLINE_SERVICE_ACCOUNT:-}" ]]; then diff --git a/handwritten/error-reporting/.repo-metadata.json b/handwritten/error-reporting/.repo-metadata.json index a1a6b836dc5..cfb9605591f 100644 --- a/handwritten/error-reporting/.repo-metadata.json +++ b/handwritten/error-reporting/.repo-metadata.json @@ -6,7 +6,7 @@ "issue_tracker": "https://issuetracker.google.com/savedsearches/559780", "release_level": "stable", "language": "nodejs", - "repo": "googleapis/nodejs-error-reporting", + "repo": "googleapis/google-cloud-node", "distribution_name": "@google-cloud/error-reporting", "api_id": "clouderrorreporting.googleapis.com", "codeowner_team": "@googleapis/yoshi-nodejs", diff --git a/handwritten/error-reporting/.trampolinerc b/handwritten/error-reporting/.trampolinerc index 5fc2253137d..bec8dd85c29 100644 --- a/handwritten/error-reporting/.trampolinerc +++ b/handwritten/error-reporting/.trampolinerc @@ -49,4 +49,4 @@ if [[ -z "${TRAMPOLINE_BUILD_FILE:-}" ]]; then fi # Secret Manager secrets. -source ${PROJECT_ROOT}/.kokoro/populate-secrets.sh +source ${PROJECT_ROOT}/handwritten/error-reporting/.kokoro/populate-secrets.sh diff --git a/handwritten/error-reporting/owlbot.py b/handwritten/error-reporting/owlbot.py index faee2265cb2..4a8b19e9c39 100644 --- a/handwritten/error-reporting/owlbot.py +++ b/handwritten/error-reporting/owlbot.py @@ -14,7 +14,7 @@ import synthtool as s import synthtool.gcp as gcp -import synthtool.languages.node as node +import synthtool.languages.node_mono_repo as node import logging import os diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 87d0cb9e15a..b1b8b0286bc 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -7,7 +7,11 @@ "engines": { "node": ">=18" }, - "repository": "googleapis/nodejs-error-reporting", + "repository": { + "type": "git", + "directory": "handwritten/error-reporting", + "url": "https://github.com/googleapis/google-cloud-node.git" + }, "main": "./build/src/index.js", "types": "./build/src/index.d.ts", "files": [ @@ -68,5 +72,6 @@ }, "overrides": { "undici": "5.28.4" - } + }, + "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/handwritten/error-reporting" } diff --git a/release-please-submodules.json b/release-please-submodules.json index 31841c0d0fd..fb7f83d00bc 100644 --- a/release-please-submodules.json +++ b/release-please-submodules.json @@ -1,13 +1,7 @@ { - "release-type": "node", - "separate-pull-requests": true, "commit-batch-size": 1, "include-component-in-tag": true, - "tag-separator": "-", "packages": { - "handwritten/logging-winston": { - "component": "logging-winston" - }, "handwritten/bigquery": { "component": "bigquery" }, @@ -17,13 +11,20 @@ "handwritten/datastore": { "component": "datastore" }, + "handwritten/error-reporting": {}, "handwritten/logging-bunyan": { "component": "logging-bunyan" + }, + "handwritten/logging-winston": { + "component": "logging-winston" } }, "plugins": [ { "type": "sentence-case" } - ] + ], + "release-type": "node", + "separate-pull-requests": true, + "tag-separator": "-" } From 1add90b6b5fb4b4bb5e26309b8f526a53baf1f68 Mon Sep 17 00:00:00 2001 From: Gautam Sharda Date: Thu, 26 Feb 2026 07:34:56 +0000 Subject: [PATCH 493/527] chore: pin tablesort --- package.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 8a65d2a1077..802e702e4ee 100644 --- a/package.json +++ b/package.json @@ -44,5 +44,10 @@ }, "engines": { "node": ">=18" + }, + "pnpm": { + "overrides": { + "tablesort": "5.6.0" + } } -} +} \ No newline at end of file From dcfa96465027fb314a526842a96beffc680feb40 Mon Sep 17 00:00:00 2001 From: Gautam Sharda Date: Thu, 26 Feb 2026 07:48:23 +0000 Subject: [PATCH 494/527] chore: pin cheerio --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 802e702e4ee..521b432efcd 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,8 @@ }, "pnpm": { "overrides": { - "tablesort": "5.6.0" + "tablesort": "5.6.0", + "cheerio": "1.0.0" } } } \ No newline at end of file From d76d7815f73398fd5cc6842efc6d9dc0ad0bcb52 Mon Sep 17 00:00:00 2001 From: Gautam Sharda Date: Thu, 26 Feb 2026 08:10:30 +0000 Subject: [PATCH 495/527] chore: pnpm install --- pnpm-lock.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 86d481864dc..695f4efec48 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,10 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + tablesort: 5.6.0 + cheerio: 1.0.0 + importers: .: From b3f01e656274eea28d80afb6b70ef49246f2d808 Mon Sep 17 00:00:00 2001 From: Gautam Sharda Date: Thu, 26 Feb 2026 08:32:50 +0000 Subject: [PATCH 496/527] chore: pin inside error-reporting not root --- handwritten/error-reporting/package.json | 12 +- handwritten/error-reporting/pnpm-lock.yaml | 9907 ++++++++++++++++++++ package.json | 6 - pnpm-lock.yaml | 4 - 4 files changed, 9917 insertions(+), 12 deletions(-) create mode 100644 handwritten/error-reporting/pnpm-lock.yaml diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index b1b8b0286bc..c443eccba6f 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -70,8 +70,16 @@ "typescript": "^5.9.3", "uuid": "^8.3.2" }, - "overrides": { - "undici": "5.28.4" +"overrides": { + "undici": "5.28.4", + "tablesort": "5.6.0", + "cheerio": "1.0.0" + }, + "pnpm": { + "overrides": { + "tablesort": "5.6.0", + "cheerio": "1.0.0" + } }, "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/handwritten/error-reporting" } diff --git a/handwritten/error-reporting/pnpm-lock.yaml b/handwritten/error-reporting/pnpm-lock.yaml new file mode 100644 index 00000000000..0d2f01d2096 --- /dev/null +++ b/handwritten/error-reporting/pnpm-lock.yaml @@ -0,0 +1,9907 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +overrides: + tablesort: 5.6.0 + cheerio: 1.0.0 + +importers: + + .: + dependencies: + '@google-cloud/common': + specifier: ^6.0.0 + version: 6.0.0 + console-log-level: + specifier: ^1.4.1 + version: 1.4.1 + devDependencies: + '@compodoc/compodoc': + specifier: 1.1.25 + version: 1.1.25(typescript@5.9.3) + '@hapi/hapi': + specifier: ^21.4.4 + version: 21.4.6 + '@types/boom': + specifier: ^7.3.5 + version: 7.3.5 + '@types/console-log-level': + specifier: ^1.4.0 + version: 1.4.5 + '@types/express': + specifier: ^4.17.21 + version: 4.17.25 + '@types/json-stable-stringify': + specifier: ^1.2.0 + version: 1.2.0 + '@types/koa': + specifier: ^3.0.1 + version: 3.0.1 + '@types/mocha': + specifier: ^10.0.10 + version: 10.0.10 + '@types/node': + specifier: ^24.10.1 + version: 24.10.14 + '@types/once': + specifier: ^1.4.5 + version: 1.4.5 + '@types/proxyquire': + specifier: ^1.3.31 + version: 1.3.31 + '@types/restify': + specifier: ^8.0.0 + version: 8.5.12 + '@types/uuid': + specifier: ^8.3.0 + version: 8.3.4 + boom: + specifier: ^7.2.0 + version: 7.3.0 + c8: + specifier: ^10.1.3 + version: 10.1.3 + codecov: + specifier: ^3.6.2 + version: 3.8.3(encoding@0.1.13) + express: + specifier: ^4.17.1 + version: 4.22.1 + gts: + specifier: ^6.0.2 + version: 6.0.2(typescript@5.9.3) + joi: + specifier: ^17.0.0 + version: 17.13.3 + js-green-licenses: + specifier: ^4.0.0 + version: 4.0.0(encoding@0.1.13) + json-stable-stringify: + specifier: ^1.3.0 + version: 1.3.0 + koa: + specifier: ^3.1.1 + version: 3.1.2 + linkinator: + specifier: ^6.1.2 + version: 6.3.0(encoding@0.1.13) + mocha: + specifier: ^11.7.5 + version: 11.7.5 + nock: + specifier: ^14.0.10 + version: 14.0.11 + pack-n-play: + specifier: ^2.0.0 + version: 2.1.0 + proxyquire: + specifier: ^2.1.3 + version: 2.1.3 + restify: + specifier: ^11.0.0 + version: 11.1.0 + typescript: + specifier: ^5.9.3 + version: 5.9.3 + uuid: + specifier: ^8.3.2 + version: 8.3.2 + +packages: + + '@aduh95/viz.js@3.4.0': + resolution: {integrity: sha512-KI2nVf9JdwWCXqK6RVf+9/096G7VWN4Z84mnynlyZKao2xQENW8WNEjLmvdlxS5X8PNWXFC1zqwm7tveOXw/4A==} + + '@angular-devkit/core@18.0.1': + resolution: {integrity: sha512-91eKZoObs+wRgwssw81Y/94Nvixj0WqJkNusBAg+gAfZTCEeJoGGZJkRK8wrONbM79C3Bx8lN/TfSIPRbjnfOQ==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + chokidar: ^3.5.2 + peerDependenciesMeta: + chokidar: + optional: true + + '@angular-devkit/schematics@18.0.1': + resolution: {integrity: sha512-AKcEGa3fIgyXT6XTQZWEJZzgmcqlB89fcF7JFOuz4rgQfRmnE2xFw37lKE6ZclCOSiEoffAvgrL8acjdPI1ouw==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + + '@babel/code-frame@7.29.0': + resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.29.0': + resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.29.0': + resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.29.1': + resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.27.3': + resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.28.6': + resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-create-class-features-plugin@7.28.6': + resolution: {integrity: sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-create-regexp-features-plugin@7.28.5': + resolution: {integrity: sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-define-polyfill-provider@0.6.6': + resolution: {integrity: sha512-mOAsxeeKkUKayvZR3HeTYD/fICpCPLJrU5ZjelT/PA6WHtNDBOE436YiaEUvHN454bRM3CebhDsIpieCc4texA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-member-expression-to-functions@7.28.5': + resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.28.6': + resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.28.6': + resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-optimise-call-expression@7.27.1': + resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.28.6': + resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} + engines: {node: '>=6.9.0'} + + '@babel/helper-remap-async-to-generator@7.27.1': + resolution: {integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-replace-supers@7.28.6': + resolution: {integrity: sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-wrap-function@7.28.6': + resolution: {integrity: sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.28.6': + resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.29.0': + resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5': + resolution: {integrity: sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1': + resolution: {integrity: sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1': + resolution: {integrity: sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1': + resolution: {integrity: sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.6': + resolution: {integrity: sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-assertions@7.28.6': + resolution: {integrity: sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-attributes@7.28.6': + resolution: {integrity: sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-unicode-sets-regex@7.18.6': + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-arrow-functions@7.27.1': + resolution: {integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-async-generator-functions@7.29.0': + resolution: {integrity: sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-async-to-generator@7.28.6': + resolution: {integrity: sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-block-scoped-functions@7.27.1': + resolution: {integrity: sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-block-scoping@7.28.6': + resolution: {integrity: sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-class-properties@7.28.6': + resolution: {integrity: sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-class-static-block@7.28.6': + resolution: {integrity: sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + + '@babel/plugin-transform-classes@7.28.6': + resolution: {integrity: sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-computed-properties@7.28.6': + resolution: {integrity: sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-destructuring@7.28.5': + resolution: {integrity: sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-dotall-regex@7.28.6': + resolution: {integrity: sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-duplicate-keys@7.27.1': + resolution: {integrity: sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.0': + resolution: {integrity: sha512-zBPcW2lFGxdiD8PUnPwJjag2J9otbcLQzvbiOzDxpYXyCuYX9agOwMPGn1prVH0a4qzhCKu24rlH4c1f7yA8rw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-dynamic-import@7.27.1': + resolution: {integrity: sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-explicit-resource-management@7.28.6': + resolution: {integrity: sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-exponentiation-operator@7.28.6': + resolution: {integrity: sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-export-namespace-from@7.27.1': + resolution: {integrity: sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-for-of@7.27.1': + resolution: {integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-function-name@7.27.1': + resolution: {integrity: sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-json-strings@7.28.6': + resolution: {integrity: sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-literals@7.27.1': + resolution: {integrity: sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-logical-assignment-operators@7.28.6': + resolution: {integrity: sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-member-expression-literals@7.27.1': + resolution: {integrity: sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-amd@7.27.1': + resolution: {integrity: sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-commonjs@7.28.6': + resolution: {integrity: sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-systemjs@7.29.0': + resolution: {integrity: sha512-PrujnVFbOdUpw4UHiVwKvKRLMMic8+eC0CuNlxjsyZUiBjhFdPsewdXCkveh2KqBA9/waD0W1b4hXSOBQJezpQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-umd@7.27.1': + resolution: {integrity: sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-named-capturing-groups-regex@7.29.0': + resolution: {integrity: sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-new-target@7.27.1': + resolution: {integrity: sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-nullish-coalescing-operator@7.28.6': + resolution: {integrity: sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-numeric-separator@7.28.6': + resolution: {integrity: sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-object-rest-spread@7.28.6': + resolution: {integrity: sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-object-super@7.27.1': + resolution: {integrity: sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-catch-binding@7.28.6': + resolution: {integrity: sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-chaining@7.28.6': + resolution: {integrity: sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-parameters@7.27.7': + resolution: {integrity: sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-methods@7.28.6': + resolution: {integrity: sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-property-in-object@7.28.6': + resolution: {integrity: sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-property-literals@7.27.1': + resolution: {integrity: sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-regenerator@7.29.0': + resolution: {integrity: sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-regexp-modifiers@7.28.6': + resolution: {integrity: sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-reserved-words@7.27.1': + resolution: {integrity: sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-shorthand-properties@7.27.1': + resolution: {integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-spread@7.28.6': + resolution: {integrity: sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-sticky-regex@7.27.1': + resolution: {integrity: sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-template-literals@7.27.1': + resolution: {integrity: sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typeof-symbol@7.27.1': + resolution: {integrity: sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-escapes@7.27.1': + resolution: {integrity: sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-property-regex@7.28.6': + resolution: {integrity: sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-regex@7.27.1': + resolution: {integrity: sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-sets-regex@7.28.6': + resolution: {integrity: sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/preset-env@7.29.0': + resolution: {integrity: sha512-fNEdfc0yi16lt6IZo2Qxk3knHVdfMYX33czNb4v8yWhemoBhibCpQK/uYHtSKIiO+p/zd3+8fYVXhQdOVV608w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/preset-modules@0.1.6-no-external-plugins': + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + + '@babel/runtime@7.28.6': + resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==} + engines: {node: '>=6.9.0'} + + '@babel/template@7.28.6': + resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.29.0': + resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.29.0': + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} + engines: {node: '>=6.9.0'} + + '@bcoe/v8-coverage@1.0.2': + resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} + engines: {node: '>=18'} + + '@compodoc/compodoc@1.1.25': + resolution: {integrity: sha512-MsTEv6S0JGkdXc8pFp3yB/r8Lw49YenD0TCXyIVAmQhWNDtGWi4m2TGz02hdiKAlTJ1McQJFuyXWiItTQtje0A==} + engines: {node: '>= 16.0.0'} + hasBin: true + + '@compodoc/live-server@1.2.3': + resolution: {integrity: sha512-hDmntVCyjjaxuJzPzBx68orNZ7TW4BtHWMnXlIVn5dqhK7vuFF/11hspO1cMmc+2QTYgqde1TBcb3127S7Zrow==} + engines: {node: '>=0.10.0'} + hasBin: true + + '@compodoc/ngd-core@2.1.1': + resolution: {integrity: sha512-Z+wE6wWZYVnudRYg6qunDlyh3Orw39Ib66Gvrz5kX5u7So+iu3tr6sQJdqH6yGS3hAjig5avlfhWLlgsb6/x1Q==} + engines: {node: '>= 10.0.0'} + + '@compodoc/ngd-transformer@2.1.3': + resolution: {integrity: sha512-oWxJza7CpWR8/FeWYfE6j+jgncnGBsTWnZLt5rD2GUpsGSQTuGrsFPnmbbaVLgRS5QIVWBJYke7QFBr/7qVMWg==} + engines: {node: '>= 10.0.0'} + + '@eslint-community/eslint-utils@4.9.1': + resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/eslintrc@2.1.4': + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@eslint/js@8.57.1': + resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@foliojs-fork/fontkit@1.9.2': + resolution: {integrity: sha512-IfB5EiIb+GZk+77TRB86AHroVaqfq8JRFlUbz0WEwsInyCG0epX2tCPOy+UfaWPju30DeVoUAXfzWXmhn753KA==} + + '@foliojs-fork/linebreak@1.1.2': + resolution: {integrity: sha512-ZPohpxxbuKNE0l/5iBJnOAfUaMACwvUIKCvqtWGKIMv1lPYoNjYXRfhi9FeeV9McBkBLxsMFWTVVhHJA8cyzvg==} + + '@foliojs-fork/pdfkit@0.15.3': + resolution: {integrity: sha512-Obc0Wmy3bm7BINFVvPhcl2rnSSK61DQrlHU8aXnAqDk9LCjWdUOPwhgD8Ywz5VtuFjRxmVOM/kQ/XLIBjDvltw==} + + '@foliojs-fork/restructure@2.0.2': + resolution: {integrity: sha512-59SgoZ3EXbkfSX7b63tsou/SDGzwUEK6MuB5sKqgVK1/XE0fxmpsOb9DQI8LXW3KfGnAjImCGhhEb7uPPAUVNA==} + + '@gar/promisify@1.1.3': + resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} + + '@google-cloud/common@6.0.0': + resolution: {integrity: sha512-IXh04DlkLMxWgYLIUYuHHKXKOUwPDzDgke1ykkkJPe48cGIS9kkL2U/o0pm4ankHLlvzLF/ma1eO86n/bkumIA==} + engines: {node: '>=18'} + + '@google-cloud/projectify@4.0.0': + resolution: {integrity: sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA==} + engines: {node: '>=14.0.0'} + + '@google-cloud/promisify@4.1.0': + resolution: {integrity: sha512-G/FQx5cE/+DqBbOpA5jKsegGwdPniU6PuIEMt+qxWgFxvxuFOzVmp6zYchtYuwAWV5/8Dgs0yAmjvNZv3uXLQg==} + engines: {node: '>=18'} + + '@hapi/accept@6.0.3': + resolution: {integrity: sha512-p72f9k56EuF0n3MwlBNThyVE5PXX40g+aQh+C/xbKrfzahM2Oispv3AXmOIU51t3j77zay1qrX7IIziZXspMlw==} + + '@hapi/ammo@6.0.1': + resolution: {integrity: sha512-pmL+nPod4g58kXrMcsGLp05O2jF4P2Q3GiL8qYV7nKYEh3cGf+rV4P5Jyi2Uq0agGhVU63GtaSAfBEZOlrJn9w==} + + '@hapi/b64@6.0.1': + resolution: {integrity: sha512-ZvjX4JQReUmBheeCq+S9YavcnMMHWqx3S0jHNXWIM1kQDxB9cyfSycpVvjfrKcIS8Mh5N3hmu/YKo4Iag9g2Kw==} + + '@hapi/boom@10.0.1': + resolution: {integrity: sha512-ERcCZaEjdH3OgSJlyjVk8pHIFeus91CjKP3v+MpgBNp5IvGzP2l/bRiD78nqYcKPaZdbKkK5vDBVPd2ohHBlsA==} + + '@hapi/bounce@3.0.2': + resolution: {integrity: sha512-d0XmlTi3H9HFDHhQLjg4F4auL1EY3Wqj7j7/hGDhFFe6xAbnm3qiGrXeT93zZnPH8gH+SKAFYiRzu26xkXcH3g==} + + '@hapi/bourne@3.0.0': + resolution: {integrity: sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w==} + + '@hapi/call@9.0.1': + resolution: {integrity: sha512-uPojQRqEL1GRZR4xXPqcLMujQGaEpyVPRyBlD8Pp5rqgIwLhtveF9PkixiKru2THXvuN8mUrLeet5fqxKAAMGg==} + + '@hapi/catbox-memory@6.0.2': + resolution: {integrity: sha512-H1l4ugoFW/ZRkqeFrIo8p1rWN0PA4MDTfu4JmcoNDvnY975o29mqoZblqFTotxNHlEkMPpIiIBJTV+Mbi+aF0g==} + + '@hapi/catbox@12.1.1': + resolution: {integrity: sha512-hDqYB1J+R0HtZg4iPH3LEnldoaBsar6bYp0EonBmNQ9t5CO+1CqgCul2ZtFveW1ReA5SQuze9GPSU7/aecERhw==} + + '@hapi/content@6.0.0': + resolution: {integrity: sha512-CEhs7j+H0iQffKfe5Htdak5LBOz/Qc8TRh51cF+BFv0qnuph3Em4pjGVzJMkI2gfTDdlJKWJISGWS1rK34POGA==} + + '@hapi/cryptiles@6.0.3': + resolution: {integrity: sha512-r6VKalpbMHz4ci3gFjFysBmhwCg70RpYZy6OkjEpdXzAYnYFX5XsW7n4YMJvuIYpnMwLxGUjK/cBhA7X3JDvXw==} + engines: {node: '>=14.0.0'} + + '@hapi/file@3.0.0': + resolution: {integrity: sha512-w+lKW+yRrLhJu620jT3y+5g2mHqnKfepreykvdOcl9/6up8GrQQn+l3FRTsjHTKbkbfQFkuksHpdv2EcpKcJ4Q==} + + '@hapi/hapi@21.4.6': + resolution: {integrity: sha512-T+DKEZrgZZeFJP0wIcmsU2Tr6TZ7LJExLV+qfFiQsBuqzZRxHwNQ9z4SshkFWocvlf3hIu9iyyB2X5bAdiH6tA==} + engines: {node: '>=14.15.0'} + + '@hapi/heavy@8.0.1': + resolution: {integrity: sha512-gBD/NANosNCOp6RsYTsjo2vhr5eYA3BEuogk6cxY0QdhllkkTaJFYtTXv46xd6qhBVMbMMqcSdtqey+UQU3//w==} + + '@hapi/hoek@11.0.7': + resolution: {integrity: sha512-HV5undWkKzcB4RZUusqOpcgxOaq6VOAH7zhhIr2g3G8NF/MlFO75SjOr2NfuSx0Mh40+1FqCkagKLJRykUWoFQ==} + + '@hapi/hoek@9.3.0': + resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} + + '@hapi/iron@7.0.1': + resolution: {integrity: sha512-tEZnrOujKpS6jLKliyWBl3A9PaE+ppuL/+gkbyPPDb/l2KSKQyH4lhMkVb+sBhwN+qaxxlig01JRqB8dk/mPxQ==} + + '@hapi/mimos@7.0.1': + resolution: {integrity: sha512-b79V+BrG0gJ9zcRx1VGcCI6r6GEzzZUgiGEJVoq5gwzuB2Ig9Cax8dUuBauQCFKvl2YWSWyOc8mZ8HDaJOtkew==} + + '@hapi/nigel@5.0.1': + resolution: {integrity: sha512-uv3dtYuB4IsNaha+tigWmN8mQw/O9Qzl5U26Gm4ZcJVtDdB1AVJOwX3X5wOX+A07qzpEZnOMBAm8jjSqGsU6Nw==} + engines: {node: '>=14.0.0'} + + '@hapi/pez@6.1.0': + resolution: {integrity: sha512-+FE3sFPYuXCpuVeHQ/Qag1b45clR2o54QoonE/gKHv9gukxQ8oJJZPR7o3/ydDTK6racnCJXxOyT1T93FCJMIg==} + + '@hapi/podium@5.0.2': + resolution: {integrity: sha512-T7gf2JYHQQfEfewTQFbsaXoZxSvuXO/QBIGljucUQ/lmPnTTNAepoIKOakWNVWvo2fMEDjycu77r8k6dhreqHA==} + + '@hapi/shot@6.0.2': + resolution: {integrity: sha512-WKK1ShfJTrL1oXC0skoIZQYzvLsyMDEF8lfcWuQBjpjCN29qivr9U36ld1z0nt6edvzv28etNMOqUF4klnHryw==} + + '@hapi/somever@4.1.1': + resolution: {integrity: sha512-lt3QQiDDOVRatS0ionFDNrDIv4eXz58IibQaZQDOg4DqqdNme8oa0iPWcE0+hkq/KTeBCPtEOjDOBKBKwDumVg==} + + '@hapi/statehood@8.2.1': + resolution: {integrity: sha512-xf72TG/QINW26jUu+uL5H+crE1o8GplIgfPWwPZhnAGJzetIVAQEQYvzq+C0aEVHg5/lMMtQ+L9UryuSa5Yjkg==} + + '@hapi/subtext@8.1.1': + resolution: {integrity: sha512-ex1Y2s/KuJktS8Ww0k6XJ5ysSKrzNym4i5pDVuCwlSgHHviHUsT1JNzE6FYhNU9TTHSNdyfue/t2m89bpkX9Jw==} + + '@hapi/teamwork@6.0.1': + resolution: {integrity: sha512-52OXRslUfYwXAOG8k58f2h2ngXYQGP0x5RPOo+eWA/FtyLgHjGMrE3+e9LSXP/0q2YfHAK5wj9aA9DTy1K+kyQ==} + engines: {node: '>=14.0.0'} + + '@hapi/topo@5.1.0': + resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + + '@hapi/topo@6.0.2': + resolution: {integrity: sha512-KR3rD5inZbGMrHmgPxsJ9dbi6zEK+C3ZwUwTa+eMwWLz7oijWUTWD2pMSNNYJAU6Qq+65NkxXjqHr/7LM2Xkqg==} + + '@hapi/validate@2.0.1': + resolution: {integrity: sha512-NZmXRnrSLK8MQ9y/CMqE9WSspgB9xA41/LlYR0k967aSZebWr4yNrpxIbov12ICwKy4APSlWXZga9jN5p6puPA==} + + '@hapi/vise@5.0.1': + resolution: {integrity: sha512-XZYWzzRtINQLedPYlIkSkUr7m5Ddwlu99V9elh8CSygXstfv3UnWIXT0QD+wmR0VAG34d2Vx3olqcEhRRoTu9A==} + + '@hapi/wreck@18.1.0': + resolution: {integrity: sha512-0z6ZRCmFEfV/MQqkQomJ7sl/hyxvcZM7LtuVqN3vdAO4vM9eBbowl0kaqQj9EJJQab+3Uuh1GxbGIBFy4NfJ4w==} + + '@humanwhocodes/config-array@0.13.0': + resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/object-schema@2.0.3': + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@isaacs/string-locale-compare@1.1.0': + resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==} + + '@istanbuljs/schema@0.1.3': + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@mswjs/interceptors@0.41.3': + resolution: {integrity: sha512-cXu86tF4VQVfwz8W1SPbhoRyHJkti6mjH/XJIxp40jhO4j2k1m4KYrEykxqWPkFF3vrK4rgQppBh//AwyGSXPA==} + engines: {node: '>=18'} + + '@netflix/nerror@1.1.3': + resolution: {integrity: sha512-b+MGNyP9/LXkapreJzNUzcvuzZslj/RGgdVVJ16P2wSlYatfLycPObImqVJSmNAdyeShvNeM/pl3sVZsObFueg==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@npmcli/arborist@6.5.1': + resolution: {integrity: sha512-cdV8pGurLK0CifZRilMJbm2CZ3H4Snk8PAqOngj5qmgFLjEllMLvScSZ3XKfd+CK8fo/hrPHO9zazy9OYdvmUg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + + '@npmcli/fs@2.1.2': + resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + '@npmcli/fs@3.1.1': + resolution: {integrity: sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/git@4.1.0': + resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/installed-package-contents@2.1.0': + resolution: {integrity: sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + + '@npmcli/map-workspaces@3.0.6': + resolution: {integrity: sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/metavuln-calculator@5.0.1': + resolution: {integrity: sha512-qb8Q9wIIlEPj3WeA1Lba91R4ZboPL0uspzV0F9uwP+9AYMVB2zOoa7Pbk12g6D2NHAinSbHh6QYmGuRyHZ874Q==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/move-file@2.0.1': + resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This functionality has been moved to @npmcli/fs + + '@npmcli/name-from-folder@2.0.0': + resolution: {integrity: sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/node-gyp@3.0.0': + resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/package-json@4.0.1': + resolution: {integrity: sha512-lRCEGdHZomFsURroh522YvA/2cVb9oPIJrjHanCJZkiasz1BzcnLr3tBJhlV7S86MBJBuAQ33is2D60YitZL2Q==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/promise-spawn@6.0.2': + resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/query@3.1.0': + resolution: {integrity: sha512-C/iR0tk7KSKGldibYIB9x8GtO/0Bd0I2mhOaDb8ucQL/bQVTmGoeREaFj64Z5+iCBRf3dQfed0CjJL7I8iTkiQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/run-script@6.0.2': + resolution: {integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@open-draft/deferred-promise@2.2.0': + resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} + + '@open-draft/logger@0.3.0': + resolution: {integrity: sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==} + + '@open-draft/until@2.1.0': + resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@pkgr/core@0.1.2': + resolution: {integrity: sha512-fdDH1LSGfZdTH2sxdpVMw31BanV28K/Gry0cVFxaNP77neJSkd82mM8ErPNYs9e+0O7SdHBLTDzDgwUuy18RnQ==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + + '@sideway/address@4.1.5': + resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} + + '@sideway/formula@3.0.1': + resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} + + '@sideway/pinpoint@2.0.0': + resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + + '@sigstore/bundle@1.1.0': + resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@sigstore/protobuf-specs@0.2.1': + resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@sigstore/sign@1.0.0': + resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@sigstore/tuf@1.0.3': + resolution: {integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@sindresorhus/is@4.6.0': + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + + '@szmarczak/http-timer@4.0.6': + resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} + engines: {node: '>=10'} + + '@thednp/event-listener@2.0.12': + resolution: {integrity: sha512-PbW05+EwNfGVy2uwz0vL2xbEmcLhpuBZ2nm0pdLT088gjmY9dySfJOZUtWCmzSPJcVFn3BkgH1m1MiS11AubJA==} + engines: {node: '>=16', pnpm: '>=8.6.0'} + + '@thednp/position-observer@1.1.0': + resolution: {integrity: sha512-WgldP6Dltp2hJkSwp3+IVu05ClK/2IF33iftiQLb7UHcuO6eydjXiIUeOCClgCy3FDCGau2l/LRVg3oOO3Ytcg==} + engines: {node: '>=16', pnpm: '>=8.6.0'} + + '@thednp/shorty@2.0.11': + resolution: {integrity: sha512-D+rLHt1l7c608yCuzXYJ75aDNWeMVbor+m1HO/XibhiWRbCpD8r6TUv3ayJI+feVfCnBNfrH+p6LSDn9l99uBA==} + engines: {node: '>=16', pnpm: '>=8.6.0'} + + '@tootallnate/once@1.1.2': + resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} + engines: {node: '>= 6'} + + '@tootallnate/once@2.0.0': + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + + '@ts-morph/common@0.23.0': + resolution: {integrity: sha512-m7Lllj9n/S6sOkCkRftpM7L24uvmfXQFedlW/4hENcuJH1HHm9u5EgxZb9uVjQSCGrbBWBkOGgcTxNg36r6ywA==} + + '@tufjs/canonical-json@1.0.0': + resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@tufjs/models@1.0.4': + resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@types/accepts@1.3.7': + resolution: {integrity: sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==} + + '@types/body-parser@1.19.6': + resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} + + '@types/boom@7.3.5': + resolution: {integrity: sha512-jBS0kU2s9W2sx+ILEyO4kxqIYLllqcUXTaVrBctvGptZ+4X3TWkkgY9+AmxdMPKrgiDDdLcfsaQCTu7bniLvgw==} + + '@types/bunyan@1.8.11': + resolution: {integrity: sha512-758fRH7umIMk5qt5ELmRMff4mLDlN+xyYzC+dkPTdKwbSkJFvz6xwyScrytPU0QIBbRRwbiE8/BIg8bpajerNQ==} + + '@types/cacheable-request@6.0.3': + resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + + '@types/console-log-level@1.4.5': + resolution: {integrity: sha512-ANoa0gMtzWhKKMYbBt+NM11VqbuwJwpMEkvuZTJ1JcQ7C6Qw/yjV5R4yPkOPjFAULcvX8wenC9BnI5K9jExmiw==} + + '@types/content-disposition@0.5.9': + resolution: {integrity: sha512-8uYXI3Gw35MhiVYhG3s295oihrxRyytcRHjSjqnqZVDDy/xcGBRny7+Xj1Wgfhv5QzRtN2hB2dVRBUX9XW3UcQ==} + + '@types/cookies@0.9.2': + resolution: {integrity: sha512-1AvkDdZM2dbyFybL4fxpuNCaWyv//0AwsuUk2DWeXyM1/5ZKm6W3z6mQi24RZ4l2ucY+bkSHzbDVpySqPGuV8A==} + + '@types/express-serve-static-core@4.19.8': + resolution: {integrity: sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==} + + '@types/express@4.17.25': + resolution: {integrity: sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==} + + '@types/formidable@1.2.8': + resolution: {integrity: sha512-6psvrUy5VDYb+yaPJReF1WrRsz+FBwyJutK9Twz1Efa27tm07bARNIkK2B8ZPWq80dXqpKfrxTO96xrtPp+AuA==} + + '@types/http-assert@1.5.6': + resolution: {integrity: sha512-TTEwmtjgVbYAzZYWyeHPrrtWnfVkm8tQkP8P21uQifPgMRgjrow3XDEYqucuC8SKZJT7pUnhU/JymvjggxO9vw==} + + '@types/http-cache-semantics@4.2.0': + resolution: {integrity: sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q==} + + '@types/http-errors@2.0.5': + resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} + + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/json-stable-stringify@1.2.0': + resolution: {integrity: sha512-PEHY3ohqolHqAzDyB1+31tFaAMnoLN7x/JgdcGmNZ2uvtEJ6rlFCUYNQc0Xe754xxCYLNGZbLUGydSE6tS4S9A==} + deprecated: This is a stub types definition. json-stable-stringify provides its own type definitions, so you do not need this installed. + + '@types/keygrip@1.0.6': + resolution: {integrity: sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==} + + '@types/keyv@3.1.4': + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + + '@types/koa-compose@3.2.9': + resolution: {integrity: sha512-BroAZ9FTvPiCy0Pi8tjD1OfJ7bgU1gQf0eR6e1Vm+JJATy9eKOG3hQMFtMciMawiSOVnLMdmUOC46s7HBhSTsA==} + + '@types/koa@3.0.1': + resolution: {integrity: sha512-VkB6WJUQSe0zBpR+Q7/YIUESGp5wPHcaXr0xueU5W0EOUWtlSbblsl+Kl31lyRQ63nIILh0e/7gXjQ09JXJIHw==} + + '@types/mime@1.3.5': + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + + '@types/minimist@1.2.5': + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + + '@types/mocha@10.0.10': + resolution: {integrity: sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==} + + '@types/node@24.10.14': + resolution: {integrity: sha512-OowOUbD1lBCOFIPOZ8xnMIhgqA4sCutMiYOmPHL1PTLt5+y1XA+g2+yC9OOyz8p+deMZqPZLxfMjYIfrKsPeFg==} + + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + + '@types/once@1.4.5': + resolution: {integrity: sha512-6SmAH30ms6q1EhF9scvUzk74ibtev1TGJaKntLSKzOVGBPwlLd/nl/SYFTC5/pVv/rrv1x/JTr6sH5rmVbizAQ==} + + '@types/proxyquire@1.3.31': + resolution: {integrity: sha512-uALowNG2TSM1HNPMMOR0AJwv4aPYPhqB0xlEhkeRTMuto5hjoSPZkvgu1nbPUkz3gEPAHv4sy4DmKsurZiEfRQ==} + + '@types/qs@6.14.0': + resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==} + + '@types/range-parser@1.2.7': + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + + '@types/responselike@1.0.3': + resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} + + '@types/restify@8.5.12': + resolution: {integrity: sha512-tW9y4O/B0gNIhin/88PzLTPgolkzOOrFK0IfgdiiYjGgjXI+PDTwp7QThhQy0p0l5FuNy59NW2PXU3Qx3r5cOQ==} + + '@types/semver@7.7.1': + resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} + + '@types/send@0.17.6': + resolution: {integrity: sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==} + + '@types/send@1.2.1': + resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==} + + '@types/serve-static@1.15.10': + resolution: {integrity: sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==} + + '@types/spdy@3.4.9': + resolution: {integrity: sha512-ZYGzQrZX6j4GEy9x9+e4bjWOPOiZqFPm/3GnZ9xS0SMJqs+FbNiF6hBzr8EjSF2Z6TFY/PzUWOswUiRcZxW3FQ==} + + '@types/uuid@8.3.4': + resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} + + '@typescript-eslint/eslint-plugin@5.62.0': + resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@5.62.0': + resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@5.62.0': + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@typescript-eslint/type-utils@5.62.0': + resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@5.62.0': + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@typescript-eslint/typescript-estree@5.62.0': + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@5.62.0': + resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + + '@typescript-eslint/visitor-keys@5.62.0': + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + + abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + + abbrev@2.0.0: + resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.16.0: + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} + engines: {node: '>=0.4.0'} + hasBin: true + + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + + agent-base@7.1.4: + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} + engines: {node: '>= 14'} + + agentkeepalive@4.6.0: + resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} + engines: {node: '>= 8.0.0'} + + aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + + ajv-formats@3.0.1: + resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv@6.14.0: + resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} + + ajv@8.13.0: + resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} + + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.2.2: + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} + engines: {node: '>=12'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + apache-crypt@1.2.6: + resolution: {integrity: sha512-072WetlM4blL8PREJVeY+WHiUh1R5VNt2HfceGS8aKqttPHcmqE5pkKuXPz/ULmJOFkc8Hw3kfKl6vy7Qka6DA==} + engines: {node: '>=8'} + + apache-md5@1.1.8: + resolution: {integrity: sha512-FCAJojipPn0bXjuEpjOOOMN8FZDkxfWWp4JGN9mifU2IhxvKyXZYqpzPHdnTSUpmPDy+tsslB6Z1g+Vg6nVbYA==} + engines: {node: '>=8'} + + aproba@2.1.0: + resolution: {integrity: sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew==} + + are-we-there-yet@3.0.1: + resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This package is no longer supported. + + are-we-there-yet@4.0.2: + resolution: {integrity: sha512-ncSWAawFhKMJDTdoAeOV+jyW1VCMj5QIAwULIBV0SSR7B/RLPPEQiknKcg/RIIZlUQrxELpsxMiTUoAQ4sIUyg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + deprecated: This package is no longer supported. + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + argv@0.0.2: + resolution: {integrity: sha512-dEamhpPEwRUBpLNHeuCm/v+g0anFByHahxodVO/BbAarHVBBg2MccCwf9K+o1Pof+2btdnkJelYVUWjW/VrATw==} + engines: {node: '>=0.6.10'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + + array-buffer-byte-length@1.0.2: + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} + engines: {node: '>= 0.4'} + + array-find-index@1.0.2: + resolution: {integrity: sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==} + engines: {node: '>=0.10.0'} + + array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + arraybuffer.prototype.slice@1.0.4: + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} + engines: {node: '>= 0.4'} + + arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + + arrify@2.0.1: + resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} + engines: {node: '>=8'} + + asn1@0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + + assert-plus@1.0.0: + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} + engines: {node: '>=0.8'} + + async-function@1.0.0: + resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} + engines: {node: '>= 0.4'} + + atomic-sleep@1.0.0: + resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} + engines: {node: '>=8.0.0'} + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + babel-plugin-polyfill-corejs2@0.4.15: + resolution: {integrity: sha512-hR3GwrRwHUfYwGfrisXPIDP3JcYfBrW7wKE7+Au6wDYl7fm/ka1NEII6kORzxNU556JjfidZeBsO10kYvtV1aw==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-corejs3@0.14.0: + resolution: {integrity: sha512-AvDcMxJ34W4Wgy4KBIIePQTAOP1Ie2WFwkQp3dB7FQ/f0lI5+nM96zUnYEOE1P9sEg0es5VCP0HxiWu5fUHZAQ==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-regenerator@0.6.6: + resolution: {integrity: sha512-hYm+XLYRMvupxiQzrvXUj7YyvFFVfv5gI0R71AJzudg1g2AI2vyCPPIFEBjk162/wFzti3inBHo7isWFuEVS/A==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + + base64-js@1.3.1: + resolution: {integrity: sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + baseline-browser-mapping@2.10.0: + resolution: {integrity: sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==} + engines: {node: '>=6.0.0'} + hasBin: true + + basic-auth@2.0.1: + resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} + engines: {node: '>= 0.8'} + + batch@0.6.1: + resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + + bcrypt-pbkdf@1.0.2: + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + + bcryptjs@2.4.3: + resolution: {integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==} + + bignumber.js@9.3.1: + resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} + + bin-links@4.0.4: + resolution: {integrity: sha512-cMtq4W5ZsEwcutJrVId+a/tjt8GSbS+h0oNkdl6+6rBuEv8Ot33Bevj5KPm40t309zuhVic8NjpuL42QCiJWWA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + + body-parser@1.20.4: + resolution: {integrity: sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + boom@7.3.0: + resolution: {integrity: sha512-Swpoyi2t5+GhOEGw8rEsKvTxFLIDiiKoUc2gsoV6Lyr43LHBIzch3k2MvYUs8RTROrIkVJ3Al0TkaOGjnb+B6A==} + deprecated: This module has moved and is now available at @hapi/boom. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues. + + bootstrap.native@5.1.6: + resolution: {integrity: sha512-bLveDBWhNLoFLsPctVo6yxSRQ1ysmKHBa+1FFMTQuruzTb3y7/InGSoe5lZdOiqZ4L0UOzpdbXMsI+bA5DoRew==} + engines: {node: '>=16', pnpm: '>=8.6.0'} + + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + + brace-expansion@5.0.3: + resolution: {integrity: sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==} + engines: {node: 18 || 20 || >=22} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + brotli@1.3.3: + resolution: {integrity: sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==} + + browser-stdout@1.3.1: + resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} + + browserslist@4.28.1: + resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-equal-constant-time@1.0.1: + resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + + builtins@1.0.3: + resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} + + builtins@5.1.0: + resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} + + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + c8@10.1.3: + resolution: {integrity: sha512-LvcyrOAaOnrrlMpW22n690PUvxiq4Uf9WMhQwNJ9vgagkL/ph1+D4uvjvDA5XCbykrc0sx+ay6pVi9YZ1GnhyA==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + monocart-coverage-reports: ^2 + peerDependenciesMeta: + monocart-coverage-reports: + optional: true + + cacache@16.1.3: + resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + cacache@17.1.4: + resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + cacheable-lookup@5.0.4: + resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} + engines: {node: '>=10.6.0'} + + cacheable-request@7.0.4: + resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} + engines: {node: '>=8'} + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} + + callsite@1.0.0: + resolution: {integrity: sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + caniuse-lite@1.0.30001774: + resolution: {integrity: sha512-DDdwPGz99nmIEv216hKSgLD+D4ikHQHjBC/seF98N9CPqRX4M5mSxT9eTV6oyisnJcuzxtZy4n17yKKQYmYQOA==} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.6.2: + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + + cheerio-select@2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + + cheerio@1.0.0: + resolution: {integrity: sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==} + engines: {node: '>=18.17'} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + + clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + + cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + + cli-width@3.0.0: + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone-response@1.0.3: + resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} + + clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + + cmd-shim@6.0.3: + resolution: {integrity: sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + code-block-writer@13.0.3: + resolution: {integrity: sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==} + + codecov@3.8.3: + resolution: {integrity: sha512-Y8Hw+V3HgR7V71xWH2vQ9lyS358CbGCldWlJFR0JirqoGtOoas3R3/OclRTvgUYFK29mmJICDPauVKmpqbwhOA==} + engines: {node: '>=4.0'} + deprecated: https://about.codecov.io/blog/codecov-uploader-deprecation-plan/ + hasBin: true + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true + + colors@1.4.0: + resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} + engines: {node: '>=0.1.90'} + + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + + common-ancestor-path@1.0.1: + resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + connect@3.7.0: + resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} + engines: {node: '>= 0.10.0'} + + console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + + console-log-level@1.4.1: + resolution: {integrity: sha512-VZzbIORbP+PPcN/gg3DXClTLPLg5Slwd5fL2MIc+o1qZ4BXBvWyc6QxPk6T/Mkr6IVjRpoAGf32XxP3ZWMVRcQ==} + + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + + content-disposition@1.0.1: + resolution: {integrity: sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==} + engines: {node: '>=18'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cookie-signature@1.0.7: + resolution: {integrity: sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==} + + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + + cookies@0.9.1: + resolution: {integrity: sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==} + engines: {node: '>= 0.8'} + + core-js-compat@3.48.0: + resolution: {integrity: sha512-OM4cAF3D6VtH/WkLtWvyNC56EZVXsZdU3iqaMG2B4WvYrlqU831pc4UtG5yp0sE9z8Y02wVN7PjW5Zf9Gt0f1Q==} + + core-util-is@1.0.2: + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + cors@2.8.6: + resolution: {integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==} + engines: {node: '>= 0.10'} + + cosmiconfig@9.0.0: + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + crypto-js@4.2.0: + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + + css-select@5.2.2: + resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} + + css-what@6.2.2: + resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} + engines: {node: '>= 6'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + csv-generate@4.5.0: + resolution: {integrity: sha512-aQr/vmOKyBSBHNwYhAoXw1+kUsPnMSwmYgpNoo36rIXoG1ecWILnvPGZeQ6oUjzrWknZAD3+jfpqYOBAl4x15A==} + + csv-parse@6.1.0: + resolution: {integrity: sha512-CEE+jwpgLn+MmtCpVcPtiCZpVtB6Z2OKPTr34pycYYoL7sxdOkXDdQ4lRiw6ioC0q6BLqhc6cKweCVvral8yhw==} + + csv-stringify@6.6.0: + resolution: {integrity: sha512-YW32lKOmIBgbxtu3g5SaiqWNwa/9ISQt2EcgOq0+RAIFufFp9is6tqNnKahqE5kuKvrnYAzs28r+s6pXJR8Vcw==} + + csv@6.4.1: + resolution: {integrity: sha512-ajGosmTGnTwYyGl8STqZDu7R6LkDf3xL39XiOmliV/GufQeVUxHzTKIm4NOBCwmEuujK7B6isxs4Uqt9GcRCvA==} + engines: {node: '>= 0.1.90'} + + dashdash@1.14.1: + resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} + engines: {node: '>=0.10'} + + data-uri-to-buffer@4.0.1: + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} + engines: {node: '>= 12'} + + data-view-buffer@1.0.2: + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.2: + resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.1: + resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} + engines: {node: '>= 0.4'} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decache@4.6.2: + resolution: {integrity: sha512-2LPqkLeu8XWHU8qNCS3kcF6sCcb5zIzvWaAHYSvPfwhdd7mHuah29NssMzrTYyHN4F5oFy2ko9OBYxegtU0FEw==} + + decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + decamelize@4.0.0: + resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} + engines: {node: '>=10'} + + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + + deep-equal@1.0.1: + resolution: {integrity: sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==} + + deep-equal@1.1.2: + resolution: {integrity: sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==} + engines: {node: '>= 0.4'} + + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + + defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + + depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + + dfa@1.2.0: + resolution: {integrity: sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==} + + diff@7.0.0: + resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} + engines: {node: '>=0.3.1'} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@3.2.2: + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + + dot@2.0.0-beta.1: + resolution: {integrity: sha512-kxM7fSnNQTXOmaeGuBSXM8O3fEsBb7XSDBllkGbRwa0lJSJTxxDE/4eSNGLKZUmlFw0f1vJ5qSV2BljrgQtgIA==} + + dtrace-provider@0.8.8: + resolution: {integrity: sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==} + engines: {node: '>=0.10'} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + + duplexify@4.1.3: + resolution: {integrity: sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + ecc-jsbn@0.1.2: + resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} + + ecdsa-sig-formatter@1.0.11: + resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + electron-to-chromium@1.5.302: + resolution: {integrity: sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==} + + emitter-component@1.1.2: + resolution: {integrity: sha512-QdXO3nXOzZB4pAjM0n6ZE+R9/+kPpECA/XSELIcc54NeYVnBqIk+4DFiBgK+8QbV3mdvTG6nedl7dTYgO+5wDw==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + + encoding-sniffer@0.2.1: + resolution: {integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==} + + encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + + end-of-stream@1.4.5: + resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + entities@6.0.1: + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} + engines: {node: '>=0.12'} + + entities@7.0.1: + resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} + engines: {node: '>=0.12'} + + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + + error-ex@1.3.4: + resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} + + es-abstract@1.24.1: + resolution: {integrity: sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==} + engines: {node: '>= 0.4'} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + es-to-primitive@1.3.0: + resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} + engines: {node: '>= 0.4'} + + es6-shim@0.35.8: + resolution: {integrity: sha512-Twf7I2v4/1tLoIXMT8HlqaBSS5H2wQTs2wx3MNYCI8K1R1/clXyCazrcVCPm/FuO9cyV8+leEaZOWD5C253NDg==} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-regexp-component@1.0.2: + resolution: {integrity: sha512-B0yxafj1D1ZTNEHkFoQxz4iboZSfaZHhaNhIug7GcUCL4ZUrVSJZTmWUAkPOFaYDfi3RNT9XM082TuGE6jpmiQ==} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-config-prettier@9.1.0: + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-plugin-es@4.1.0: + resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=4.19.1' + + eslint-plugin-n@15.7.0: + resolution: {integrity: sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==} + engines: {node: '>=12.22.0'} + peerDependencies: + eslint: '>=7.0.0' + + eslint-plugin-prettier@5.2.1: + resolution: {integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-utils@2.1.0: + resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} + engines: {node: '>=6'} + + eslint-utils@3.0.0: + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + + eslint-visitor-keys@1.3.0: + resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} + engines: {node: '>=4'} + + eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint@8.57.1: + resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + hasBin: true + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esquery@1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + event-stream@4.0.1: + resolution: {integrity: sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + ewma@2.0.1: + resolution: {integrity: sha512-MYYK17A76cuuyvkR7MnqLW4iFYPEi5Isl2qb8rXiWpLiwFS9dxW/rncuNnjjgSENuVqZQkIuR4+DChVL4g1lnw==} + + execa@4.1.0: + resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} + engines: {node: '>=10'} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + exponential-backoff@3.1.3: + resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} + + express@4.22.1: + resolution: {integrity: sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==} + engines: {node: '>= 0.10.0'} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + + extsprintf@1.3.0: + resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} + engines: {'0': node >=0.6.0} + + extsprintf@1.4.1: + resolution: {integrity: sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==} + engines: {'0': node >=0.6.0} + + fancy-log@2.0.0: + resolution: {integrity: sha512-9CzxZbACXMUXW13tS0tI8XsGGmxWzO2DmYrGuBJOJ8k8q2K7hwfJA5qHjuPPe8wtsco33YR9wc+Rlr5wYFvhSA==} + engines: {node: '>=10.13.0'} + + fast-decode-uri-component@1.0.1: + resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-querystring@1.1.2: + resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} + + fast-redact@3.5.0: + resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} + engines: {node: '>=6'} + + fast-url-parser@1.1.3: + resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} + + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + + faye-websocket@0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} + + fetch-blob@3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} + engines: {node: ^12.20 || >= 14.13} + + figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + + fill-keys@1.0.2: + resolution: {integrity: sha512-tcgI872xXjwFF4xgQmLxi76GnwJG3g/3isB1l4/G5Z4zrbddGpBjqZCO9oEAcB5wX0Hj/5iQB3toxfO7in1hHA==} + engines: {node: '>=0.10.0'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + finalhandler@1.1.2: + resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} + engines: {node: '>= 0.8'} + + finalhandler@1.3.2: + resolution: {integrity: sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==} + engines: {node: '>= 0.8'} + + find-my-way@7.7.0: + resolution: {integrity: sha512-+SrHpvQ52Q6W9f3wJoJBbAQULJuNEEQwBvlvYwACDhBTLOTMiQ0HYWh4+vC3OivGP2ENcTI1oKlFA2OepJNjhQ==} + engines: {node: '>=14'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + + flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + engines: {node: '>= 0.4'} + + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + + formdata-polyfill@4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} + + formidable@1.2.6: + resolution: {integrity: sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==} + deprecated: 'Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau' + + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + fresh@2.0.0: + resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} + engines: {node: '>= 0.8'} + + from@0.1.7: + resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==} + + fs-extra@11.3.3: + resolution: {integrity: sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==} + engines: {node: '>=14.14'} + + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + + fs-minipass@3.0.3: + resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + function.prototype.name@1.1.8: + resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} + engines: {node: '>= 0.4'} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + gauge@4.0.4: + resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This package is no longer supported. + + gauge@5.0.2: + resolution: {integrity: sha512-pMaFftXPtiGIHCJHdcUUx9Rby/rFT/Kkt3fIIGCs+9PMDIljSyRiqraTlxNtBReJRDfUefpa263RQ3vnp5G/LQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + deprecated: This package is no longer supported. + + gaxios@5.1.3: + resolution: {integrity: sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA==} + engines: {node: '>=12'} + + gaxios@6.7.1: + resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==} + engines: {node: '>=14'} + + gaxios@7.1.3: + resolution: {integrity: sha512-YGGyuEdVIjqxkxVH1pUTMY/XtmmsApXrCVv5EU25iX6inEPbV+VakJfLealkBtJN69AQmh1eGOdCl9Sm1UP6XQ==} + engines: {node: '>=18'} + + gcp-metadata@8.1.2: + resolution: {integrity: sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==} + engines: {node: '>=18'} + + generator-function@2.0.1: + resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} + engines: {node: '>= 0.4'} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + get-symbol-description@1.1.0: + resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} + engines: {node: '>= 0.4'} + + getpass@0.1.7: + resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@10.5.0: + resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + hasBin: true + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + + glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + google-auth-library@10.6.1: + resolution: {integrity: sha512-5awwuLrzNol+pFDmKJd0dKtZ0fPLAtoA5p7YO4ODsDu6ONJUVqbYwvv8y2ZBO5MBNp9TJXigB19710kYpBPdtA==} + engines: {node: '>=18'} + + google-logging-utils@1.1.3: + resolution: {integrity: sha512-eAmLkjDjAFCVXg7A1unxHsLf961m6y17QFqXqAXGj/gVkKFrEICfStRfwUlGNfeCEjNRa32JEWOUTlYXPyyKvA==} + engines: {node: '>=14'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + got@11.8.6: + resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} + engines: {node: '>=10.19.0'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + gts@6.0.2: + resolution: {integrity: sha512-lp9+eDzzm6TYqiBpgGY00EInxBHFTJiU5brsVp11qXCJEw7Q6WNNngja0spZeqSFWSquaRuHQUuWxdZLaxnKmw==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + typescript: '>=5' + + hammerjs@2.0.8: + resolution: {integrity: sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ==} + engines: {node: '>=0.8.0'} + + handle-thing@2.0.1: + resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} + + handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true + + hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + + has-bigints@1.1.0: + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} + engines: {node: '>= 0.4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.2.0: + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} + engines: {node: '>= 0.4'} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + hoek@6.1.3: + resolution: {integrity: sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ==} + deprecated: This module has moved and is now available at @hapi/hoek. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues. + + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + + hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + + hosted-git-info@6.1.3: + resolution: {integrity: sha512-HVJyzUrLIL1c0QmviVh5E8VGyUS7xCFPS6yydaVd1UegW+ibV/CohqTH9MkOLDp5o+rb82DMo77PTuc9F/8GKw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + hpack.js@2.1.6: + resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + + html-entities@2.6.0: + resolution: {integrity: sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==} + + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + htmlparser2@10.1.0: + resolution: {integrity: sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==} + + htmlparser2@9.1.0: + resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==} + + http-assert@1.5.0: + resolution: {integrity: sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==} + engines: {node: '>= 0.8'} + + http-auth-connect@1.0.6: + resolution: {integrity: sha512-yaO0QSCPqGCjPrl3qEEHjJP+lwZ6gMpXLuCBE06eWwcXomkI5TARtu0kxf9teFuBj6iaV3Ybr15jaWUvbzNzHw==} + engines: {node: '>=8'} + + http-auth@4.1.9: + resolution: {integrity: sha512-kvPYxNGc9EKGTXvOMnTBQw2RZfuiSihK/mLw/a4pbtRueTE45S55Lw/3k5CktIf7Ak0veMKEIteDj4YkNmCzmQ==} + engines: {node: '>=8'} + + http-cache-semantics@4.2.0: + resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} + + http-deceiver@1.2.7: + resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} + + http-errors@1.8.1: + resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} + engines: {node: '>= 0.6'} + + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + http-errors@2.0.1: + resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} + engines: {node: '>= 0.8'} + + http-parser-js@0.5.10: + resolution: {integrity: sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==} + + http-proxy-agent@4.0.1: + resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} + engines: {node: '>= 6'} + + http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + + http-signature@1.4.0: + resolution: {integrity: sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg==} + engines: {node: '>=0.10'} + + http2-wrapper@1.0.3: + resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} + engines: {node: '>=10.19.0'} + + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} + + human-signals@1.1.1: + resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} + engines: {node: '>=8.12.0'} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + + i18next@23.16.8: + resolution: {integrity: sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg==} + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + iconv-lite@0.7.2: + resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} + engines: {node: '>=0.10.0'} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore-walk@3.0.4: + resolution: {integrity: sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==} + + ignore-walk@6.0.5: + resolution: {integrity: sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + infer-owner@1.0.4: + resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + inquirer@7.3.3: + resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} + engines: {node: '>=8.0.0'} + + internal-slot@1.1.0: + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} + engines: {node: '>= 0.4'} + + ip-address@10.1.0: + resolution: {integrity: sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==} + engines: {node: '>= 12'} + + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + is-arguments@1.2.0: + resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} + engines: {node: '>= 0.4'} + + is-array-buffer@3.0.5: + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} + engines: {node: '>= 0.4'} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-async-function@2.1.1: + resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} + engines: {node: '>= 0.4'} + + is-bigint@1.1.0: + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + engines: {node: '>= 0.4'} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-boolean-object@1.2.2: + resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} + engines: {node: '>= 0.4'} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + + is-data-view@1.0.2: + resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} + engines: {node: '>= 0.4'} + + is-date-object@1.1.0: + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} + engines: {node: '>= 0.4'} + + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-finalizationregistry@1.1.1: + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} + engines: {node: '>= 0.4'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-generator-function@1.1.2: + resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + + is-lambda@1.0.1: + resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + + is-node-process@1.2.0: + resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} + + is-number-object@1.1.1: + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} + engines: {node: '>= 0.4'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-object@1.0.2: + resolution: {integrity: sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + + is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + engines: {node: '>= 0.4'} + + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + + is-shared-array-buffer@1.0.4: + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} + engines: {node: '>= 0.4'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-string@1.1.1: + resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} + engines: {node: '>= 0.4'} + + is-symbol@1.1.1: + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} + engines: {node: '>= 0.4'} + + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + engines: {node: '>= 0.4'} + + is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + + is-weakref@1.1.1: + resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} + engines: {node: '>= 0.4'} + + is-weakset@2.0.4: + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} + engines: {node: '>= 0.4'} + + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-reports@3.2.0: + resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} + engines: {node: '>=8'} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + joi@17.13.3: + resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} + + jpeg-exif@1.1.4: + resolution: {integrity: sha512-a+bKEcCjtuW5WTdgeXFzswSrdqi0jk4XlEtZlx5A94wCoBpFjfFTbo/Tra5SpNCl/YFZPvcV1dJc+TAYeg6ROQ==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + + js-green-licenses@4.0.0: + resolution: {integrity: sha512-kcgTOaZmpDpINcRAOKKhjHtBN6zibMVTC8qfPUOpowQtI/6fUgdmwJLJ0ycCb0pUO3ZYKn++56sy8IlG60p5mg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + hasBin: true + + jsbn@0.1.1: + resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-bigint@1.0.0: + resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-parse-even-better-errors@3.0.2: + resolution: {integrity: sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json-stable-stringify@1.3.0: + resolution: {integrity: sha512-qtYiSSFlwot9XHtF9bD9c7rwKjr+RecWT//ZnPvSmEjpV5mmPOCN4j8UjY5hbjNkOwZ/jQv3J6R1/pL7RwgMsg==} + engines: {node: '>= 0.4'} + + json-stringify-nice@1.1.4: + resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} + + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonc-parser@3.2.1: + resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} + + jsonfile@6.2.0: + resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} + + jsonify@0.0.1: + resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==} + + jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + + jsprim@2.0.2: + resolution: {integrity: sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==} + engines: {'0': node >=0.6.0} + + just-diff-apply@5.5.0: + resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==} + + just-diff@6.0.2: + resolution: {integrity: sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==} + + jwa@2.0.1: + resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==} + + jws@4.0.1: + resolution: {integrity: sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==} + + keycharm@0.2.0: + resolution: {integrity: sha512-i/XBRTiLqRConPKioy2oq45vbv04e8x59b0mnsIRQM+7Ec/8BC7UcL5pnC4FMeGb8KwG7q4wOMw7CtNZf5tiIg==} + + keygrip@1.1.0: + resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} + engines: {node: '>= 0.6'} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + koa-compose@4.1.0: + resolution: {integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==} + + koa@3.1.2: + resolution: {integrity: sha512-2LOQnFKu3m0VxpE+5sb5+BRTSKrXmNxGgxVRiKwD9s5KQB1zID/FRXhtzeV7RT1L2GVpdEEAfVuclFOMGl1ikA==} + engines: {node: '>= 18'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + linkinator@6.3.0: + resolution: {integrity: sha512-MRKxkkIK5XlK+IKzIhJydJBF72TpygT7atR9CCUZrKl9hpEPVkm3Kcu66M38HJUvUBg4iskzCQENwas7HIiJeg==} + engines: {node: '>=18'} + hasBin: true + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash@4.17.23: + resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} + + log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + + loglevel-plugin-prefix@0.8.4: + resolution: {integrity: sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==} + + loglevel@1.9.2: + resolution: {integrity: sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==} + engines: {node: '>= 0.6.0'} + + lowercase-keys@2.0.0: + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + + lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + engines: {node: '>=12'} + + lunr@2.3.9: + resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} + + macos-release@2.5.1: + resolution: {integrity: sha512-DXqXhEM7gW59OjZO8NIjBCz9AQ1BEMrfiOAl4AYByHCtVHRF4KoGNO8mqQeM8lRCtQe/UnJ4imO/d2HdkKsd+A==} + engines: {node: '>=6'} + + magic-string@0.30.10: + resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + + make-fetch-happen@10.2.1: + resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + make-fetch-happen@11.1.1: + resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + + map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + + map-stream@0.0.7: + resolution: {integrity: sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==} + + marked@13.0.3: + resolution: {integrity: sha512-rqRix3/TWzE9rIoFGIn8JmsVfhiuC8VIQ8IdX5TfzmeBucdY05/0UlzKaw0eVtpcN/OdVFpBk7CjKGo9iHJ/zA==} + engines: {node: '>= 18'} + hasBin: true + + marked@7.0.3: + resolution: {integrity: sha512-ev2uM40p0zQ/GbvqotfKcSWEa59fJwluGZj5dcaUOwDRrB1F3dncdXy8NWUApk4fi8atU3kTBOwjyjZ0ud0dxw==} + engines: {node: '>= 16'} + hasBin: true + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + media-typer@1.1.0: + resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} + engines: {node: '>= 0.8'} + + meow@13.2.0: + resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} + engines: {node: '>=18'} + + meow@9.0.0: + resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==} + engines: {node: '>=10'} + + merge-descriptors@1.0.3: + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime-types@3.0.2: + resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} + engines: {node: '>=18'} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + mime@3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + + mime@4.1.0: + resolution: {integrity: sha512-X5ju04+cAzsojXKes0B/S4tcYtFAJ6tTMuSPBEn9CPGlrWr8Fiw7qYeLT0XyH80HSoAoqWCaz+MWKh22P7G1cw==} + engines: {node: '>=16'} + hasBin: true + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-response@1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + + minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + + minimatch@10.2.4: + resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} + engines: {node: 18 || 20 || >=22} + + minimatch@3.1.5: + resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} + + minimatch@5.1.9: + resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} + engines: {node: '>=10'} + + minimatch@9.0.8: + resolution: {integrity: sha512-reYkDYtj/b19TeqbNZCV4q9t+Yxylf/rYBsLb42SXJatTv4/ylq5lEiAmhA/IToxO7NI2UzNMghHoHuaqDkAjw==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass-collect@1.0.2: + resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} + engines: {node: '>= 8'} + + minipass-fetch@2.1.2: + resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + minipass-fetch@3.0.5: + resolution: {integrity: sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + minipass-flush@1.0.5: + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + engines: {node: '>= 8'} + + minipass-json-stream@1.0.2: + resolution: {integrity: sha512-myxeeTm57lYs8pH2nxPzmEEg8DGIgW+9mv6D4JZD2pa81I/OBjeU7PtICXV6c9eRGTA5JMDsuIPUZRCyBMYNhg==} + + minipass-pipeline@1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} + + minipass-sized@1.0.3: + resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} + engines: {node: '>=8'} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + + mocha@11.7.5: + resolution: {integrity: sha512-mTT6RgopEYABzXWFx+GcJ+ZQ32kp4fMf0xvpZIIfSq9Z8lC/++MtcCnQ9t5FP2veYEP95FIYSvW+U9fV4xrlig==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + + module-not-found-error@1.0.1: + resolution: {integrity: sha512-pEk4ECWQXV6z2zjhRZUongnLJNUeGQJ3w6OQ5ctGwD+i5o93qjRQUk2Rt6VdNeu3sEP0AB4LcfvdebpxBRVr4g==} + + moment@2.30.1: + resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} + + morgan@1.10.1: + resolution: {integrity: sha512-223dMRJtI/l25dJKWpgij2cMtywuG/WiUKXdvwfbhGKBhy1puASqXwFzmWZ7+K73vUPoR7SS2Qz2cI/g9MKw0A==} + engines: {node: '>= 0.8.0'} + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + mute-stream@0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + + nan@2.25.0: + resolution: {integrity: sha512-0M90Ag7Xn5KMLLZ7zliPWP3rT90P6PN+IzVFS0VqmnPktBk3700xUVv8Ikm9EUaUE5SDWdp/BIxdENzVznpm1g==} + + natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + ncp@2.0.0: + resolution: {integrity: sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==} + hasBin: true + + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + negotiator@0.6.4: + resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} + engines: {node: '>= 0.6'} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + nock@14.0.11: + resolution: {integrity: sha512-u5xUnYE+UOOBA6SpELJheMCtj2Laqx15Vl70QxKo43Wz/6nMHXS7PrEioXLjXAwhmawdEMNImwKCcPhBJWbKVw==} + engines: {node: '>=18.20.0 <20 || >=20.12.1'} + + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + deprecated: Use your platform's native DOMException instead + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-fetch@3.3.2: + resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + node-gyp@9.4.1: + resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==} + engines: {node: ^12.13 || ^14.13 || >=16} + hasBin: true + + node-releases@2.0.27: + resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} + + nopt@6.0.0: + resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + hasBin: true + + nopt@7.2.1: + resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + + normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + + normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + + normalize-package-data@5.0.0: + resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + + npm-bundled@3.0.1: + resolution: {integrity: sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-install-checks@6.3.0: + resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-normalize-package-bin@3.0.1: + resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-package-arg@10.1.0: + resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-package-arg@8.1.5: + resolution: {integrity: sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==} + engines: {node: '>=10'} + + npm-packlist@7.0.4: + resolution: {integrity: sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-packlist@8.0.2: + resolution: {integrity: sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-pick-manifest@8.0.2: + resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-registry-fetch@14.0.5: + resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + npmlog@6.0.2: + resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This package is no longer supported. + + npmlog@7.0.1: + resolution: {integrity: sha512-uJ0YFk/mCQpLBt+bxN88AKd+gyqZvZDbtiNxk6Waqcj2aPRyfVx8ITawkyQynxUagInjdYT1+qj4NfA5KJJUxg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + deprecated: This package is no longer supported. + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} + + object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.7: + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} + engines: {node: '>= 0.4'} + + obuf@1.1.2: + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + + on-exit-leak-free@2.1.2: + resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} + engines: {node: '>=14.0.0'} + + on-finished@2.3.0: + resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} + engines: {node: '>= 0.8'} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + on-headers@1.1.0: + resolution: {integrity: sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==} + engines: {node: '>= 0.8'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + open@8.4.0: + resolution: {integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==} + engines: {node: '>=12'} + + opencollective-postinstall@2.0.3: + resolution: {integrity: sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==} + hasBin: true + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + + os-name@4.0.1: + resolution: {integrity: sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw==} + engines: {node: '>=10'} + + os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + outvariant@1.4.3: + resolution: {integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==} + + own-keys@1.0.1: + resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} + engines: {node: '>= 0.4'} + + p-cancelable@2.1.1: + resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} + engines: {node: '>=8'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + pack-n-play@2.1.0: + resolution: {integrity: sha512-DwyyTqaEU3/W37DLDv3hlToDzByHxQ7HALCQs72+8D+uHuqOYe/nZDdsju2m2JappDOKxWlKjG7LpsE7eWwiRQ==} + engines: {node: '>=14'} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + package-json@7.0.0: + resolution: {integrity: sha512-CHJqc94AA8YfSLHGQT3DbvSIuE12NLFekpM4n7LRrAd3dOJtA911+4xe9q6nC3/jcKraq7nNS9VxgtT0KC+diA==} + engines: {node: '>=12'} + + pacote@15.2.0: + resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + + pako@0.2.9: + resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-conflict-json@3.0.1: + resolution: {integrity: sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse5-htmlparser2-tree-adapter@7.1.0: + resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==} + + parse5-parser-stream@7.1.2: + resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==} + + parse5@7.3.0: + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-to-regexp@0.1.12: + resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pause-stream@0.0.11: + resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} + + pdfmake@0.2.23: + resolution: {integrity: sha512-A/IksoKb/ikOZH1edSDJ/2zBbqJKDghD4+fXn3rT7quvCJDlsZMs3NmIB3eajLMMFU9Bd3bZPVvlUMXhvFI+bQ==} + engines: {node: '>=18'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + + pidusage@3.0.2: + resolution: {integrity: sha512-g0VU+y08pKw5M8EZ2rIGiEBaB8wrQMjYGFfW2QVIfyT8V+fq8YFLkvlz4bz5ljvFDJYNFCWT3PWqcRr2FKO81w==} + engines: {node: '>=10'} + + pino-abstract-transport@1.2.0: + resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==} + + pino-std-serializers@6.2.2: + resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} + + pino@8.21.0: + resolution: {integrity: sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==} + hasBin: true + + png-js@1.0.0: + resolution: {integrity: sha512-k+YsbhpA9e+EFfKjTCH3VW6aoKlyNYI6NYdTfDL4CIvFnvsuO84ttonmZE7rc+v23SLTH8XX+5w/Ak9v0xGY4g==} + + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} + engines: {node: '>= 0.4'} + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier-linter-helpers@1.0.1: + resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==} + engines: {node: '>=6.0.0'} + + prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} + engines: {node: '>=14'} + hasBin: true + + prismjs@1.30.0: + resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} + engines: {node: '>=6'} + + proc-log@3.0.0: + resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + process-warning@3.0.0: + resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} + + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + + promise-all-reject-late@1.0.1: + resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==} + + promise-call-limit@1.0.2: + resolution: {integrity: sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==} + + promise-inflight@1.0.1: + resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true + + promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} + + propagate@2.0.1: + resolution: {integrity: sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==} + engines: {node: '>= 8'} + + propagating-hammerjs@1.5.0: + resolution: {integrity: sha512-3PUXWmomwutoZfydC+lJwK1bKCh6sK6jZGB31RUX6+4EXzsbkDZrK4/sVR7gBrvJaEIwpTVyxQUAd29FKkmVdw==} + + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + + proxy-middleware@0.15.0: + resolution: {integrity: sha512-EGCG8SeoIRVMhsqHQUdDigB2i7qU7fCsWASwn54+nPutYO8n4q6EiwMzyfWlC+dzRFExP+kvcnDFdBDHoZBU7Q==} + engines: {node: '>=0.8.0'} + + proxyquire@2.1.3: + resolution: {integrity: sha512-BQWfCqYM+QINd+yawJz23tbBM40VIGXOdDw3X344KcclI/gtBbdWF6SlQ4nK/bYhF9d27KYug9WzljHC6B9Ysg==} + + pump@3.0.3: + resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==} + + punycode@1.4.1: + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + qs@6.14.2: + resolution: {integrity: sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==} + engines: {node: '>=0.6'} + + qs@6.15.0: + resolution: {integrity: sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==} + engines: {node: '>=0.6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + quick-format-unescaped@4.0.4: + resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} + + quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + + quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@2.5.3: + resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==} + engines: {node: '>= 0.8'} + + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + + read-cmd-shim@4.0.0: + resolution: {integrity: sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + read-package-json-fast@3.0.2: + resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + read-package-json@6.0.4: + resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + deprecated: This package is no longer supported. Please use @npmcli/package-json instead. + + read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + + read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readable-stream@4.7.0: + resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} + + real-require@0.2.0: + resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} + engines: {node: '>= 12.13.0'} + + redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + + reflect.getprototypeof@1.0.10: + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} + engines: {node: '>= 0.4'} + + regenerate-unicode-properties@10.2.2: + resolution: {integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==} + engines: {node: '>=4'} + + regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + + regexp.prototype.flags@1.5.4: + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} + engines: {node: '>= 0.4'} + + regexpp@3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + + regexpu-core@6.4.0: + resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==} + engines: {node: '>=4'} + + registry-auth-token@4.2.2: + resolution: {integrity: sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==} + engines: {node: '>=6.0.0'} + + registry-url@5.1.0: + resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==} + engines: {node: '>=8'} + + regjsgen@0.8.0: + resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} + + regjsparser@0.13.0: + resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==} + hasBin: true + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve@1.22.11: + resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} + engines: {node: '>= 0.4'} + hasBin: true + + responselike@2.0.1: + resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} + + restify-errors@8.1.0: + resolution: {integrity: sha512-9ZYZTL9qli2hYykL3newPLf8RLgpSz+4RpZ7KKVSAj4CgCA8PwlfATI4onV13IZ3ldzV3M/2bJom6GQEAwS9aQ==} + + restify@11.1.0: + resolution: {integrity: sha512-ng7uBlj4wpIpshhAjNNSd6JG5Eg32+zgync2gG8OlF4e2xzIflZo54GJ/qLs765OtQaVU+uJPcNOL5Atm2F/dg==} + engines: {node: '>=10.0.0'} + hasBin: true + + restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + + ret@0.2.2: + resolution: {integrity: sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==} + engines: {node: '>=4'} + + retry-request@8.0.2: + resolution: {integrity: sha512-JzFPAfklk1kjR1w76f0QOIhoDkNkSqW8wYKT08n9yysTmZfB+RQ2QoXoTAeOi1HD9ZipTyTAZg3c4pM/jeqgSw==} + engines: {node: '>=18'} + + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rimraf@5.0.10: + resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} + hasBin: true + + run-async@2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + rxjs@6.6.7: + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} + engines: {npm: '>=2.0.0'} + + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + + safe-array-concat@1.1.3: + resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} + engines: {node: '>=0.4'} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-json-stringify@1.2.0: + resolution: {integrity: sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==} + + safe-push-apply@1.0.0: + resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} + engines: {node: '>= 0.4'} + + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} + + safe-regex2@2.0.0: + resolution: {integrity: sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ==} + + safe-stable-stringify@2.5.0: + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} + engines: {node: '>=10'} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sax@1.4.4: + resolution: {integrity: sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==} + engines: {node: '>=11.0.0'} + + select-hose@2.0.0: + resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} + engines: {node: '>=10'} + hasBin: true + + send@0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} + + send@0.19.2: + resolution: {integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==} + engines: {node: '>= 0.8.0'} + + send@1.2.1: + resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==} + engines: {node: '>= 18'} + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + serve-index@1.9.2: + resolution: {integrity: sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==} + engines: {node: '>= 0.8.0'} + + serve-static@1.16.3: + resolution: {integrity: sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==} + engines: {node: '>= 0.8.0'} + + server-destroy@1.0.1: + resolution: {integrity: sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==} + + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + set-proto@1.0.0: + resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} + engines: {node: '>= 0.4'} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + sigstore@1.9.0: + resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + + socks-proxy-agent@7.0.0: + resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} + engines: {node: '>= 10'} + + socks@2.8.7: + resolution: {integrity: sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + + sonic-boom@3.8.1: + resolution: {integrity: sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + + spdx-compare@1.0.0: + resolution: {integrity: sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==} + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-license-ids@3.0.23: + resolution: {integrity: sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==} + + spdx-ranges@2.1.1: + resolution: {integrity: sha512-mcdpQFV7UDAgLpXEE/jOMqvK4LBoO0uTQg0uvXUewmEFhpiZx5yJSZITHB8w1ZahKdhfZqP5GPEOKLyEq5p8XA==} + + spdx-satisfies@5.0.1: + resolution: {integrity: sha512-Nwor6W6gzFp8XX4neaKQ7ChV4wmpSh2sSDemMFSzHxpTw460jxFYeOn+jq4ybnSSw/5sc3pjka9MQPouksQNpw==} + + spdy-transport@3.0.0: + resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} + + spdy@4.0.2: + resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} + engines: {node: '>=6.0.0'} + + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + + split@1.0.1: + resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + srcset@5.0.3: + resolution: {integrity: sha512-AZswtOXIsu0LeHdo6YY7d0r2pCH2Rl1D8ae1utvXUX4GxG3RggsVUAOFX1r8RI4YHFMYb4g89+UBPBv3mNUU2g==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + sshpk@1.18.0: + resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} + engines: {node: '>=0.10.0'} + hasBin: true + + ssri@10.0.6: + resolution: {integrity: sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + ssri@9.0.1: + resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + statuses@2.0.2: + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} + engines: {node: '>= 0.8'} + + stop-iteration-iterator@1.1.0: + resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} + engines: {node: '>= 0.4'} + + stream-combiner@0.2.2: + resolution: {integrity: sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==} + + stream-events@1.0.5: + resolution: {integrity: sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==} + + stream-shift@1.0.3: + resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} + + stream-transform@3.4.0: + resolution: {integrity: sha512-QO3OGhKyeIV8p6eRQdG+W6WounFw519zk690hHCNfhgfP9bylVS+NTXsuBc7n+RsGn31UgFPGrWYIgoAbArKEw==} + + strict-event-emitter@0.5.1: + resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string.prototype.trim@1.2.10: + resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.9: + resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} + engines: {node: '>= 0.4'} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.2: + resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} + engines: {node: '>=12'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + stubs@3.0.0: + resolution: {integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + svg-pan-zoom@3.6.2: + resolution: {integrity: sha512-JwnvRWfVKw/Xzfe6jriFyfey/lWJLq4bUh2jwoR5ChWQuQoOH8FEh1l/bEp46iHHKHEJWIyFJETbazraxNWECg==} + + synckit@0.9.3: + resolution: {integrity: sha512-JJoOEKTfL1urb1mDoEblhD9NhEbWmq9jHEMEnxoC4ujUaZ4itA8vKgwkFAyNClgxplLi9tsUKX+EduK0p/l7sg==} + engines: {node: ^14.18.0 || >=16.0.0} + + tablesort@5.6.0: + resolution: {integrity: sha512-cZZXK3G089PbpxH8N7vN7Z21SEKqXAaCiSVOmZdR/v7z8TFCsF/OFr0rzjhQuFlQQHy9uQtW9P2oQFJzJFGVrg==} + engines: {node: '>= 16', npm: '>= 8'} + + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + + teeny-request@10.1.0: + resolution: {integrity: sha512-3ZnLvgWF29jikg1sAQ1g0o+lr5JX6sVgYvfUJazn7ZjJroDBUTWp44/+cFVX0bULjv4vci+rBD+oGVAkWqhUbw==} + engines: {node: '>=18'} + + teeny-request@7.1.1: + resolution: {integrity: sha512-iwY6rkW5DDGq8hE2YgNQlKbptYpY5Nn2xecjQiNjOXWbKzPGUfmeUBCSQbbr306d7Z7U2N0TPl+/SwYRfua1Dg==} + engines: {node: '>=10'} + + test-exclude@7.0.2: + resolution: {integrity: sha512-u9E6A+ZDYdp7a4WnarkXPZOx8Ilz46+kby6p1yZ8zsGTz9gYa6FIS7lj2oezzNKmtdyyJNNmmXDppga5GB7kSw==} + engines: {node: '>=18'} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + thread-stream@2.7.0: + resolution: {integrity: sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==} + + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + tiny-inflate@1.0.3: + resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} + + tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + + tmp@0.2.3: + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + engines: {node: '>=14.14'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + traverse@0.6.11: + resolution: {integrity: sha512-vxXDZg8/+p3gblxB6BhhG5yWVn1kGRlaL8O78UDXc3wRnPizB5g83dcvWV1jpDMIPnjZjOFuxlMmE82XJ4407w==} + engines: {node: '>= 0.4'} + + treeverse@3.0.0: + resolution: {integrity: sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + + ts-morph@22.0.0: + resolution: {integrity: sha512-M9MqFGZREyeb5fTl6gNHKZLqBQA0TjA1lea+CR48R8EBTDuWrNqW6ccC5QvjNR4s6wDumD3LTCjOFSp9iwlzaw==} + + tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tsscmp@1.0.6: + resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} + engines: {node: '>=0.6.x'} + + tsutils@3.21.0: + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + + tuf-js@1.1.7: + resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + tweetnacl@0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-fest@0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} + engines: {node: '>=10'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + + type-is@2.0.1: + resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} + engines: {node: '>= 0.6'} + + typed-array-buffer@1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.3: + resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.4: + resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.7: + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} + engines: {node: '>= 0.4'} + + typedarray.prototype.slice@1.0.5: + resolution: {integrity: sha512-q7QNVDGTdl702bVFiI5eY4l/HkgCM6at9KhcFbgUAzezHFbOVy4+0O/lCjsABEQwbZPravVfBIiBVGo89yzHFg==} + engines: {node: '>= 0.4'} + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} + engines: {node: '>=0.8.0'} + hasBin: true + + unbox-primitive@1.1.0: + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} + engines: {node: '>= 0.4'} + + undici-types@7.16.0: + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} + + undici@6.23.0: + resolution: {integrity: sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==} + engines: {node: '>=18.17'} + + unicode-canonical-property-names-ecmascript@2.0.1: + resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} + engines: {node: '>=4'} + + unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + + unicode-match-property-value-ecmascript@2.2.1: + resolution: {integrity: sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==} + engines: {node: '>=4'} + + unicode-properties@1.4.1: + resolution: {integrity: sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==} + + unicode-property-aliases-ecmascript@2.2.0: + resolution: {integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==} + engines: {node: '>=4'} + + unicode-trie@2.0.0: + resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} + + unique-filename@2.0.1: + resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + unique-filename@3.0.0: + resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + unique-slug@3.0.0: + resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + unique-slug@4.0.0: + resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + unix-crypt-td-js@1.1.4: + resolution: {integrity: sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw==} + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + urlgrey@1.0.0: + resolution: {integrity: sha512-hJfIzMPJmI9IlLkby8QrsCykQ+SXDeO2W5Q9QTW3QpqZVTx4a/K7p8/5q+/isD8vsbVaFgql/gvAoQCRQ2Cb5w==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + v8-to-istanbul@9.3.0: + resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} + engines: {node: '>=10.12.0'} + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + validate-npm-package-name@3.0.0: + resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} + + validate-npm-package-name@5.0.1: + resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + vasync@2.2.1: + resolution: {integrity: sha512-Hq72JaTpcTFdWiNA4Y22Amej2GH3BFmBaKPPlDZ4/oC8HNn2ISHLkFrJU4Ds8R3jcUi7oo5Y9jcMHKjES+N9wQ==} + engines: {'0': node >=0.6.0} + + verror@1.10.0: + resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} + engines: {'0': node >=0.6.0} + + vis@4.21.0-EOL: + resolution: {integrity: sha512-JVS1mywKg5S88XbkDJPfCb3n+vlg5fMA8Ae2hzs3KHAwD4ryM5qwlbFZ6ReDfY8te7I4NLCpuCoywJQEehvJlQ==} + deprecated: Please consider using https://github.com/visjs + + walk-up-path@3.0.1: + resolution: {integrity: sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==} + + wbuf@1.7.3: + resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + + wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + + web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + engines: {node: '>= 8'} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + websocket-driver@0.7.4: + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + engines: {node: '>=0.8.0'} + + websocket-extensions@0.1.4: + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + engines: {node: '>=0.8.0'} + + whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} + deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation + + whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which-boxed-primitive@1.1.1: + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} + engines: {node: '>= 0.4'} + + which-builtin-type@1.2.1: + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} + engines: {node: '>= 0.4'} + + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + + which-typed-array@1.1.20: + resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} + engines: {node: '>= 0.4'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + which@3.0.1: + resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + + wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + + windows-release@4.0.0: + resolution: {integrity: sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==} + engines: {node: '>=10'} + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + + workerpool@9.3.4: + resolution: {integrity: sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg==} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + xmldoc@2.0.3: + resolution: {integrity: sha512-6gRk4NY/Jvg67xn7OzJuxLRsGgiXBaPUQplVJ/9l99uIugxh4FTOewYz5ic8WScj7Xx/2WvhENiQKwkK9RpE4w==} + engines: {node: '>=12.0.0'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs-unparser@2.0.0: + resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} + engines: {node: '>=10'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + zepto@1.2.0: + resolution: {integrity: sha512-C1x6lfvBICFTQIMgbt3JqMOno3VOtkWat/xEakLTOurskYIHPmzJrzd1e8BnmtdDVJlGuk5D+FxyCA8MPmkIyA==} + +snapshots: + + '@aduh95/viz.js@3.4.0': {} + + '@angular-devkit/core@18.0.1(chokidar@3.6.0)': + dependencies: + ajv: 8.13.0 + ajv-formats: 3.0.1(ajv@8.13.0) + jsonc-parser: 3.2.1 + picomatch: 4.0.2 + rxjs: 7.8.1 + source-map: 0.7.4 + optionalDependencies: + chokidar: 3.6.0 + + '@angular-devkit/schematics@18.0.1(chokidar@3.6.0)': + dependencies: + '@angular-devkit/core': 18.0.1(chokidar@3.6.0) + jsonc-parser: 3.2.1 + magic-string: 0.30.10 + ora: 5.4.1 + rxjs: 7.8.1 + transitivePeerDependencies: + - chokidar + + '@babel/code-frame@7.29.0': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.29.0': {} + + '@babel/core@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helpers': 7.28.6 + '@babel/parser': 7.29.0 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3(supports-color@8.1.1) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.29.1': + dependencies: + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + + '@babel/helper-annotate-as-pure@7.27.3': + dependencies: + '@babel/types': 7.29.0 + + '@babel/helper-compilation-targets@7.28.6': + dependencies: + '@babel/compat-data': 7.29.0 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.28.1 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.29.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + regexpu-core: 6.4.0 + semver: 6.3.1 + + '@babel/helper-define-polyfill-provider@0.6.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + debug: 4.4.3(supports-color@8.1.1) + lodash.debounce: 4.0.8 + resolve: 1.22.11 + transitivePeerDependencies: + - supports-color + + '@babel/helper-globals@7.28.0': {} + + '@babel/helper-member-expression-to-functions@7.28.5': + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.28.6': + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-optimise-call-expression@7.27.1': + dependencies: + '@babel/types': 7.29.0 + + '@babel/helper-plugin-utils@7.28.6': {} + + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-wrap-function': 7.28.6 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-replace-supers@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.28.5': {} + + '@babel/helper-validator-option@7.27.1': {} + + '@babel/helper-wrap-function@7.28.6': + dependencies: + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helpers@7.28.6': + dependencies: + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + + '@babel/parser@7.29.0': + dependencies: + '@babel/types': 7.29.0 + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + + '@babel/plugin-syntax-import-assertions@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-import-attributes@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-async-generator-functions@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-async-to-generator@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-block-scoping@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-class-properties@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-class-static-block@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-classes@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-globals': 7.28.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-computed-properties@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/template': 7.28.6 + + '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-dotall-regex@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-explicit-resource-management@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-exponentiation-operator@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-json-strings@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-logical-assignment-operators@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-commonjs@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-systemjs@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-named-capturing-groups-regex@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-nullish-coalescing-operator@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-numeric-separator@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-object-rest-spread@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-optional-catch-binding@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-optional-chaining@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-private-methods@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-private-property-in-object@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-regenerator@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-regexp-modifiers@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-spread@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-unicode-property-regex@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-unicode-sets-regex@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/preset-env@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/compat-data': 7.29.0 + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0) + '@babel/plugin-syntax-import-assertions': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-syntax-import-attributes': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.29.0) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-block-scoping': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-class-properties': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-class-static-block': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-classes': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-computed-properties': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-dotall-regex': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-explicit-resource-management': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-exponentiation-operator': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-json-strings': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-logical-assignment-operators': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-modules-systemjs': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-nullish-coalescing-operator': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-numeric-separator': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-object-rest-spread': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-optional-catch-binding': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) + '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-regenerator': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-regexp-modifiers': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-spread': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-unicode-property-regex': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-unicode-sets-regex': 7.28.6(@babel/core@7.29.0) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.29.0) + babel-plugin-polyfill-corejs2: 0.4.15(@babel/core@7.29.0) + babel-plugin-polyfill-corejs3: 0.14.0(@babel/core@7.29.0) + babel-plugin-polyfill-regenerator: 0.6.6(@babel/core@7.29.0) + core-js-compat: 3.48.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/types': 7.29.0 + esutils: 2.0.3 + + '@babel/runtime@7.28.6': {} + + '@babel/template@7.28.6': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + + '@babel/traverse@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.29.0 + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + debug: 4.4.3(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + + '@babel/types@7.29.0': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + + '@bcoe/v8-coverage@1.0.2': {} + + '@compodoc/compodoc@1.1.25(typescript@5.9.3)': + dependencies: + '@angular-devkit/schematics': 18.0.1(chokidar@3.6.0) + '@babel/core': 7.29.0 + '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.29.0) + '@babel/preset-env': 7.29.0(@babel/core@7.29.0) + '@compodoc/live-server': 1.2.3 + '@compodoc/ngd-transformer': 2.1.3 + bootstrap.native: 5.1.6 + chalk: 4.1.2 + cheerio: 1.0.0 + chokidar: 3.6.0 + colors: 1.4.0 + commander: 12.1.0 + cosmiconfig: 9.0.0(typescript@5.9.3) + decache: 4.6.2 + es6-shim: 0.35.8 + fancy-log: 2.0.0 + fast-glob: 3.3.3 + fs-extra: 11.3.3 + glob: 10.5.0 + handlebars: 4.7.8 + html-entities: 2.6.0 + i18next: 23.16.8 + json5: 2.2.3 + lodash: 4.17.23 + loglevel: 1.9.2 + loglevel-plugin-prefix: 0.8.4 + lunr: 2.3.9 + marked: 7.0.3 + minimist: 1.2.8 + opencollective-postinstall: 2.0.3 + os-name: 4.0.1 + pdfmake: 0.2.23 + prismjs: 1.30.0 + semver: 7.7.4 + svg-pan-zoom: 3.6.2 + tablesort: 5.6.0 + traverse: 0.6.11 + ts-morph: 22.0.0 + uuid: 9.0.1 + vis: 4.21.0-EOL + zepto: 1.2.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@compodoc/live-server@1.2.3': + dependencies: + chokidar: 3.6.0 + colors: 1.4.0 + connect: 3.7.0 + cors: 2.8.6 + event-stream: 4.0.1 + faye-websocket: 0.11.4 + http-auth: 4.1.9 + http-auth-connect: 1.0.6 + morgan: 1.10.1 + object-assign: 4.1.1 + open: 8.4.0 + proxy-middleware: 0.15.0 + send: 1.2.1 + serve-index: 1.9.2 + transitivePeerDependencies: + - supports-color + + '@compodoc/ngd-core@2.1.1': + dependencies: + ansi-colors: 4.1.3 + fancy-log: 2.0.0 + typescript: 5.9.3 + + '@compodoc/ngd-transformer@2.1.3': + dependencies: + '@aduh95/viz.js': 3.4.0 + '@compodoc/ngd-core': 2.1.1 + dot: 2.0.0-beta.1 + fs-extra: 11.3.3 + + '@eslint-community/eslint-utils@4.9.1(eslint@8.57.1)': + dependencies: + eslint: 8.57.1 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.2': {} + + '@eslint/eslintrc@2.1.4': + dependencies: + ajv: 6.14.0 + debug: 4.4.3(supports-color@8.1.1) + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.1 + minimatch: 3.1.5 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@8.57.1': {} + + '@foliojs-fork/fontkit@1.9.2': + dependencies: + '@foliojs-fork/restructure': 2.0.2 + brotli: 1.3.3 + clone: 1.0.4 + deep-equal: 1.1.2 + dfa: 1.2.0 + tiny-inflate: 1.0.3 + unicode-properties: 1.4.1 + unicode-trie: 2.0.0 + + '@foliojs-fork/linebreak@1.1.2': + dependencies: + base64-js: 1.3.1 + unicode-trie: 2.0.0 + + '@foliojs-fork/pdfkit@0.15.3': + dependencies: + '@foliojs-fork/fontkit': 1.9.2 + '@foliojs-fork/linebreak': 1.1.2 + crypto-js: 4.2.0 + jpeg-exif: 1.1.4 + png-js: 1.0.0 + + '@foliojs-fork/restructure@2.0.2': {} + + '@gar/promisify@1.1.3': {} + + '@google-cloud/common@6.0.0': + dependencies: + '@google-cloud/projectify': 4.0.0 + '@google-cloud/promisify': 4.1.0 + arrify: 2.0.1 + duplexify: 4.1.3 + extend: 3.0.2 + google-auth-library: 10.6.1 + html-entities: 2.6.0 + retry-request: 8.0.2 + teeny-request: 10.1.0 + transitivePeerDependencies: + - supports-color + + '@google-cloud/projectify@4.0.0': {} + + '@google-cloud/promisify@4.1.0': {} + + '@hapi/accept@6.0.3': + dependencies: + '@hapi/boom': 10.0.1 + '@hapi/hoek': 11.0.7 + + '@hapi/ammo@6.0.1': + dependencies: + '@hapi/hoek': 11.0.7 + + '@hapi/b64@6.0.1': + dependencies: + '@hapi/hoek': 11.0.7 + + '@hapi/boom@10.0.1': + dependencies: + '@hapi/hoek': 11.0.7 + + '@hapi/bounce@3.0.2': + dependencies: + '@hapi/boom': 10.0.1 + '@hapi/hoek': 11.0.7 + + '@hapi/bourne@3.0.0': {} + + '@hapi/call@9.0.1': + dependencies: + '@hapi/boom': 10.0.1 + '@hapi/hoek': 11.0.7 + + '@hapi/catbox-memory@6.0.2': + dependencies: + '@hapi/boom': 10.0.1 + '@hapi/hoek': 11.0.7 + + '@hapi/catbox@12.1.1': + dependencies: + '@hapi/boom': 10.0.1 + '@hapi/hoek': 11.0.7 + '@hapi/podium': 5.0.2 + '@hapi/validate': 2.0.1 + + '@hapi/content@6.0.0': + dependencies: + '@hapi/boom': 10.0.1 + + '@hapi/cryptiles@6.0.3': + dependencies: + '@hapi/boom': 10.0.1 + + '@hapi/file@3.0.0': {} + + '@hapi/hapi@21.4.6': + dependencies: + '@hapi/accept': 6.0.3 + '@hapi/ammo': 6.0.1 + '@hapi/boom': 10.0.1 + '@hapi/bounce': 3.0.2 + '@hapi/call': 9.0.1 + '@hapi/catbox': 12.1.1 + '@hapi/catbox-memory': 6.0.2 + '@hapi/heavy': 8.0.1 + '@hapi/hoek': 11.0.7 + '@hapi/mimos': 7.0.1 + '@hapi/podium': 5.0.2 + '@hapi/shot': 6.0.2 + '@hapi/somever': 4.1.1 + '@hapi/statehood': 8.2.1 + '@hapi/subtext': 8.1.1 + '@hapi/teamwork': 6.0.1 + '@hapi/topo': 6.0.2 + '@hapi/validate': 2.0.1 + + '@hapi/heavy@8.0.1': + dependencies: + '@hapi/boom': 10.0.1 + '@hapi/hoek': 11.0.7 + '@hapi/validate': 2.0.1 + + '@hapi/hoek@11.0.7': {} + + '@hapi/hoek@9.3.0': {} + + '@hapi/iron@7.0.1': + dependencies: + '@hapi/b64': 6.0.1 + '@hapi/boom': 10.0.1 + '@hapi/bourne': 3.0.0 + '@hapi/cryptiles': 6.0.3 + '@hapi/hoek': 11.0.7 + + '@hapi/mimos@7.0.1': + dependencies: + '@hapi/hoek': 11.0.7 + mime-db: 1.54.0 + + '@hapi/nigel@5.0.1': + dependencies: + '@hapi/hoek': 11.0.7 + '@hapi/vise': 5.0.1 + + '@hapi/pez@6.1.0': + dependencies: + '@hapi/b64': 6.0.1 + '@hapi/boom': 10.0.1 + '@hapi/content': 6.0.0 + '@hapi/hoek': 11.0.7 + '@hapi/nigel': 5.0.1 + + '@hapi/podium@5.0.2': + dependencies: + '@hapi/hoek': 11.0.7 + '@hapi/teamwork': 6.0.1 + '@hapi/validate': 2.0.1 + + '@hapi/shot@6.0.2': + dependencies: + '@hapi/hoek': 11.0.7 + '@hapi/validate': 2.0.1 + + '@hapi/somever@4.1.1': + dependencies: + '@hapi/bounce': 3.0.2 + '@hapi/hoek': 11.0.7 + + '@hapi/statehood@8.2.1': + dependencies: + '@hapi/boom': 10.0.1 + '@hapi/bounce': 3.0.2 + '@hapi/bourne': 3.0.0 + '@hapi/cryptiles': 6.0.3 + '@hapi/hoek': 11.0.7 + '@hapi/iron': 7.0.1 + '@hapi/validate': 2.0.1 + + '@hapi/subtext@8.1.1': + dependencies: + '@hapi/boom': 10.0.1 + '@hapi/bourne': 3.0.0 + '@hapi/content': 6.0.0 + '@hapi/file': 3.0.0 + '@hapi/hoek': 11.0.7 + '@hapi/pez': 6.1.0 + '@hapi/wreck': 18.1.0 + + '@hapi/teamwork@6.0.1': {} + + '@hapi/topo@5.1.0': + dependencies: + '@hapi/hoek': 9.3.0 + + '@hapi/topo@6.0.2': + dependencies: + '@hapi/hoek': 11.0.7 + + '@hapi/validate@2.0.1': + dependencies: + '@hapi/hoek': 11.0.7 + '@hapi/topo': 6.0.2 + + '@hapi/vise@5.0.1': + dependencies: + '@hapi/hoek': 11.0.7 + + '@hapi/wreck@18.1.0': + dependencies: + '@hapi/boom': 10.0.1 + '@hapi/bourne': 3.0.0 + '@hapi/hoek': 11.0.7 + + '@humanwhocodes/config-array@0.13.0': + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.4.3(supports-color@8.1.1) + minimatch: 3.1.5 + transitivePeerDependencies: + - supports-color + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/object-schema@2.0.3': {} + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.2 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@isaacs/string-locale-compare@1.1.0': {} + + '@istanbuljs/schema@0.1.3': {} + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@mswjs/interceptors@0.41.3': + dependencies: + '@open-draft/deferred-promise': 2.2.0 + '@open-draft/logger': 0.3.0 + '@open-draft/until': 2.1.0 + is-node-process: 1.2.0 + outvariant: 1.4.3 + strict-event-emitter: 0.5.1 + + '@netflix/nerror@1.1.3': + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.4.1 + lodash: 4.17.23 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.20.1 + + '@npmcli/arborist@6.5.1': + dependencies: + '@isaacs/string-locale-compare': 1.1.0 + '@npmcli/fs': 3.1.1 + '@npmcli/installed-package-contents': 2.1.0 + '@npmcli/map-workspaces': 3.0.6 + '@npmcli/metavuln-calculator': 5.0.1 + '@npmcli/name-from-folder': 2.0.0 + '@npmcli/node-gyp': 3.0.0 + '@npmcli/package-json': 4.0.1 + '@npmcli/query': 3.1.0 + '@npmcli/run-script': 6.0.2 + bin-links: 4.0.4 + cacache: 17.1.4 + common-ancestor-path: 1.0.1 + hosted-git-info: 6.1.3 + json-parse-even-better-errors: 3.0.2 + json-stringify-nice: 1.1.4 + minimatch: 9.0.8 + nopt: 7.2.1 + npm-install-checks: 6.3.0 + npm-package-arg: 10.1.0 + npm-pick-manifest: 8.0.2 + npm-registry-fetch: 14.0.5 + npmlog: 7.0.1 + pacote: 15.2.0 + parse-conflict-json: 3.0.1 + proc-log: 3.0.0 + promise-all-reject-late: 1.0.1 + promise-call-limit: 1.0.2 + read-package-json-fast: 3.0.2 + semver: 7.7.4 + ssri: 10.0.6 + treeverse: 3.0.0 + walk-up-path: 3.0.1 + transitivePeerDependencies: + - bluebird + - supports-color + + '@npmcli/fs@2.1.2': + dependencies: + '@gar/promisify': 1.1.3 + semver: 7.7.4 + + '@npmcli/fs@3.1.1': + dependencies: + semver: 7.7.4 + + '@npmcli/git@4.1.0': + dependencies: + '@npmcli/promise-spawn': 6.0.2 + lru-cache: 7.18.3 + npm-pick-manifest: 8.0.2 + proc-log: 3.0.0 + promise-inflight: 1.0.1 + promise-retry: 2.0.1 + semver: 7.7.4 + which: 3.0.1 + transitivePeerDependencies: + - bluebird + + '@npmcli/installed-package-contents@2.1.0': + dependencies: + npm-bundled: 3.0.1 + npm-normalize-package-bin: 3.0.1 + + '@npmcli/map-workspaces@3.0.6': + dependencies: + '@npmcli/name-from-folder': 2.0.0 + glob: 10.5.0 + minimatch: 9.0.8 + read-package-json-fast: 3.0.2 + + '@npmcli/metavuln-calculator@5.0.1': + dependencies: + cacache: 17.1.4 + json-parse-even-better-errors: 3.0.2 + pacote: 15.2.0 + semver: 7.7.4 + transitivePeerDependencies: + - bluebird + - supports-color + + '@npmcli/move-file@2.0.1': + dependencies: + mkdirp: 1.0.4 + rimraf: 3.0.2 + + '@npmcli/name-from-folder@2.0.0': {} + + '@npmcli/node-gyp@3.0.0': {} + + '@npmcli/package-json@4.0.1': + dependencies: + '@npmcli/git': 4.1.0 + glob: 10.5.0 + hosted-git-info: 6.1.3 + json-parse-even-better-errors: 3.0.2 + normalize-package-data: 5.0.0 + proc-log: 3.0.0 + semver: 7.7.4 + transitivePeerDependencies: + - bluebird + + '@npmcli/promise-spawn@6.0.2': + dependencies: + which: 3.0.1 + + '@npmcli/query@3.1.0': + dependencies: + postcss-selector-parser: 6.1.2 + + '@npmcli/run-script@6.0.2': + dependencies: + '@npmcli/node-gyp': 3.0.0 + '@npmcli/promise-spawn': 6.0.2 + node-gyp: 9.4.1 + read-package-json-fast: 3.0.2 + which: 3.0.1 + transitivePeerDependencies: + - bluebird + - supports-color + + '@open-draft/deferred-promise@2.2.0': {} + + '@open-draft/logger@0.3.0': + dependencies: + is-node-process: 1.2.0 + outvariant: 1.4.3 + + '@open-draft/until@2.1.0': {} + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@pkgr/core@0.1.2': {} + + '@sideway/address@4.1.5': + dependencies: + '@hapi/hoek': 9.3.0 + + '@sideway/formula@3.0.1': {} + + '@sideway/pinpoint@2.0.0': {} + + '@sigstore/bundle@1.1.0': + dependencies: + '@sigstore/protobuf-specs': 0.2.1 + + '@sigstore/protobuf-specs@0.2.1': {} + + '@sigstore/sign@1.0.0': + dependencies: + '@sigstore/bundle': 1.1.0 + '@sigstore/protobuf-specs': 0.2.1 + make-fetch-happen: 11.1.1 + transitivePeerDependencies: + - supports-color + + '@sigstore/tuf@1.0.3': + dependencies: + '@sigstore/protobuf-specs': 0.2.1 + tuf-js: 1.1.7 + transitivePeerDependencies: + - supports-color + + '@sindresorhus/is@4.6.0': {} + + '@szmarczak/http-timer@4.0.6': + dependencies: + defer-to-connect: 2.0.1 + + '@thednp/event-listener@2.0.12': {} + + '@thednp/position-observer@1.1.0': + dependencies: + '@thednp/shorty': 2.0.11 + + '@thednp/shorty@2.0.11': {} + + '@tootallnate/once@1.1.2': {} + + '@tootallnate/once@2.0.0': {} + + '@ts-morph/common@0.23.0': + dependencies: + fast-glob: 3.3.3 + minimatch: 9.0.8 + mkdirp: 3.0.1 + path-browserify: 1.0.1 + + '@tufjs/canonical-json@1.0.0': {} + + '@tufjs/models@1.0.4': + dependencies: + '@tufjs/canonical-json': 1.0.0 + minimatch: 9.0.8 + + '@types/accepts@1.3.7': + dependencies: + '@types/node': 24.10.14 + + '@types/body-parser@1.19.6': + dependencies: + '@types/connect': 3.4.38 + '@types/node': 24.10.14 + + '@types/boom@7.3.5': {} + + '@types/bunyan@1.8.11': + dependencies: + '@types/node': 24.10.14 + + '@types/cacheable-request@6.0.3': + dependencies: + '@types/http-cache-semantics': 4.2.0 + '@types/keyv': 3.1.4 + '@types/node': 24.10.14 + '@types/responselike': 1.0.3 + + '@types/connect@3.4.38': + dependencies: + '@types/node': 24.10.14 + + '@types/console-log-level@1.4.5': {} + + '@types/content-disposition@0.5.9': {} + + '@types/cookies@0.9.2': + dependencies: + '@types/connect': 3.4.38 + '@types/express': 4.17.25 + '@types/keygrip': 1.0.6 + '@types/node': 24.10.14 + + '@types/express-serve-static-core@4.19.8': + dependencies: + '@types/node': 24.10.14 + '@types/qs': 6.14.0 + '@types/range-parser': 1.2.7 + '@types/send': 1.2.1 + + '@types/express@4.17.25': + dependencies: + '@types/body-parser': 1.19.6 + '@types/express-serve-static-core': 4.19.8 + '@types/qs': 6.14.0 + '@types/serve-static': 1.15.10 + + '@types/formidable@1.2.8': + dependencies: + '@types/node': 24.10.14 + + '@types/http-assert@1.5.6': {} + + '@types/http-cache-semantics@4.2.0': {} + + '@types/http-errors@2.0.5': {} + + '@types/istanbul-lib-coverage@2.0.6': {} + + '@types/json-schema@7.0.15': {} + + '@types/json-stable-stringify@1.2.0': + dependencies: + json-stable-stringify: 1.3.0 + + '@types/keygrip@1.0.6': {} + + '@types/keyv@3.1.4': + dependencies: + '@types/node': 24.10.14 + + '@types/koa-compose@3.2.9': + dependencies: + '@types/koa': 3.0.1 + + '@types/koa@3.0.1': + dependencies: + '@types/accepts': 1.3.7 + '@types/content-disposition': 0.5.9 + '@types/cookies': 0.9.2 + '@types/http-assert': 1.5.6 + '@types/http-errors': 2.0.5 + '@types/keygrip': 1.0.6 + '@types/koa-compose': 3.2.9 + '@types/node': 24.10.14 + + '@types/mime@1.3.5': {} + + '@types/minimist@1.2.5': {} + + '@types/mocha@10.0.10': {} + + '@types/node@24.10.14': + dependencies: + undici-types: 7.16.0 + + '@types/normalize-package-data@2.4.4': {} + + '@types/once@1.4.5': {} + + '@types/proxyquire@1.3.31': {} + + '@types/qs@6.14.0': {} + + '@types/range-parser@1.2.7': {} + + '@types/responselike@1.0.3': + dependencies: + '@types/node': 24.10.14 + + '@types/restify@8.5.12': + dependencies: + '@types/bunyan': 1.8.11 + '@types/formidable': 1.2.8 + '@types/node': 24.10.14 + '@types/spdy': 3.4.9 + + '@types/semver@7.7.1': {} + + '@types/send@0.17.6': + dependencies: + '@types/mime': 1.3.5 + '@types/node': 24.10.14 + + '@types/send@1.2.1': + dependencies: + '@types/node': 24.10.14 + + '@types/serve-static@1.15.10': + dependencies: + '@types/http-errors': 2.0.5 + '@types/node': 24.10.14 + '@types/send': 0.17.6 + + '@types/spdy@3.4.9': + dependencies: + '@types/node': 24.10.14 + + '@types/uuid@8.3.4': {} + + '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)': + dependencies: + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.9.3) + debug: 4.4.3(supports-color@8.1.1) + eslint: 8.57.1 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare-lite: 1.4.0 + semver: 7.7.4 + tsutils: 3.21.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.9.3) + debug: 4.4.3(supports-color@8.1.1) + eslint: 8.57.1 + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@5.62.0': + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + + '@typescript-eslint/type-utils@5.62.0(eslint@8.57.1)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.9.3) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.9.3) + debug: 4.4.3(supports-color@8.1.1) + eslint: 8.57.1 + tsutils: 3.21.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@5.62.0': {} + + '@typescript-eslint/typescript-estree@5.62.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + debug: 4.4.3(supports-color@8.1.1) + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.7.4 + tsutils: 3.21.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@5.62.0(eslint@8.57.1)(typescript@5.9.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) + '@types/json-schema': 7.0.15 + '@types/semver': 7.7.1 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.9.3) + eslint: 8.57.1 + eslint-scope: 5.1.1 + semver: 7.7.4 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/visitor-keys@5.62.0': + dependencies: + '@typescript-eslint/types': 5.62.0 + eslint-visitor-keys: 3.4.3 + + '@ungap/structured-clone@1.3.0': {} + + abbrev@1.1.1: {} + + abbrev@2.0.0: {} + + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + + accepts@1.3.8: + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + + acorn-jsx@5.3.2(acorn@8.16.0): + dependencies: + acorn: 8.16.0 + + acorn@8.16.0: {} + + agent-base@6.0.2: + dependencies: + debug: 4.4.3(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + + agent-base@7.1.4: {} + + agentkeepalive@4.6.0: + dependencies: + humanize-ms: 1.2.1 + + aggregate-error@3.1.0: + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + + ajv-formats@3.0.1(ajv@8.13.0): + optionalDependencies: + ajv: 8.13.0 + + ajv@6.14.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ajv@8.13.0: + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + + ansi-colors@4.1.3: {} + + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + + ansi-regex@5.0.1: {} + + ansi-regex@6.2.2: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.3: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + apache-crypt@1.2.6: + dependencies: + unix-crypt-td-js: 1.1.4 + + apache-md5@1.1.8: {} + + aproba@2.1.0: {} + + are-we-there-yet@3.0.1: + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.2 + + are-we-there-yet@4.0.2: {} + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + argv@0.0.2: {} + + array-buffer-byte-length@1.0.2: + dependencies: + call-bound: 1.0.4 + is-array-buffer: 3.0.5 + + array-find-index@1.0.2: {} + + array-flatten@1.1.1: {} + + array-union@2.1.0: {} + + arraybuffer.prototype.slice@1.0.4: + dependencies: + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + is-array-buffer: 3.0.5 + + arrify@1.0.1: {} + + arrify@2.0.1: {} + + asn1@0.2.6: + dependencies: + safer-buffer: 2.1.2 + + assert-plus@1.0.0: {} + + async-function@1.0.0: {} + + atomic-sleep@1.0.0: {} + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.1.0 + + babel-plugin-polyfill-corejs2@0.4.15(@babel/core@7.29.0): + dependencies: + '@babel/compat-data': 7.29.0 + '@babel/core': 7.29.0 + '@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.29.0) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-corejs3@0.14.0(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.29.0) + core-js-compat: 3.48.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-regenerator@0.6.6(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + balanced-match@1.0.2: {} + + balanced-match@4.0.4: {} + + base64-js@1.3.1: {} + + base64-js@1.5.1: {} + + baseline-browser-mapping@2.10.0: {} + + basic-auth@2.0.1: + dependencies: + safe-buffer: 5.1.2 + + batch@0.6.1: {} + + bcrypt-pbkdf@1.0.2: + dependencies: + tweetnacl: 0.14.5 + + bcryptjs@2.4.3: {} + + bignumber.js@9.3.1: {} + + bin-links@4.0.4: + dependencies: + cmd-shim: 6.0.3 + npm-normalize-package-bin: 3.0.1 + read-cmd-shim: 4.0.0 + write-file-atomic: 5.0.1 + + binary-extensions@2.3.0: {} + + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + + body-parser@1.20.4: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.1 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.14.2 + raw-body: 2.5.3 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + boolbase@1.0.0: {} + + boom@7.3.0: + dependencies: + hoek: 6.1.3 + + bootstrap.native@5.1.6: + dependencies: + '@thednp/event-listener': 2.0.12 + '@thednp/position-observer': 1.1.0 + '@thednp/shorty': 2.0.11 + + brace-expansion@1.1.12: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.2: + dependencies: + balanced-match: 1.0.2 + + brace-expansion@5.0.3: + dependencies: + balanced-match: 4.0.4 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + brotli@1.3.3: + dependencies: + base64-js: 1.5.1 + + browser-stdout@1.3.1: {} + + browserslist@4.28.1: + dependencies: + baseline-browser-mapping: 2.10.0 + caniuse-lite: 1.0.30001774 + electron-to-chromium: 1.5.302 + node-releases: 2.0.27 + update-browserslist-db: 1.2.3(browserslist@4.28.1) + + buffer-equal-constant-time@1.0.1: {} + + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + builtins@1.0.3: {} + + builtins@5.1.0: + dependencies: + semver: 7.7.4 + + bytes@3.1.2: {} + + c8@10.1.3: + dependencies: + '@bcoe/v8-coverage': 1.0.2 + '@istanbuljs/schema': 0.1.3 + find-up: 5.0.0 + foreground-child: 3.3.1 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-reports: 3.2.0 + test-exclude: 7.0.2 + v8-to-istanbul: 9.3.0 + yargs: 17.7.2 + yargs-parser: 21.1.1 + + cacache@16.1.3: + dependencies: + '@npmcli/fs': 2.1.2 + '@npmcli/move-file': 2.0.1 + chownr: 2.0.0 + fs-minipass: 2.1.0 + glob: 8.1.0 + infer-owner: 1.0.4 + lru-cache: 7.18.3 + minipass: 3.3.6 + minipass-collect: 1.0.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + mkdirp: 1.0.4 + p-map: 4.0.0 + promise-inflight: 1.0.1 + rimraf: 3.0.2 + ssri: 9.0.1 + tar: 6.2.1 + unique-filename: 2.0.1 + transitivePeerDependencies: + - bluebird + + cacache@17.1.4: + dependencies: + '@npmcli/fs': 3.1.1 + fs-minipass: 3.0.3 + glob: 10.5.0 + lru-cache: 7.18.3 + minipass: 7.1.3 + minipass-collect: 1.0.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + p-map: 4.0.0 + ssri: 10.0.6 + tar: 6.2.1 + unique-filename: 3.0.0 + + cacheable-lookup@5.0.4: {} + + cacheable-request@7.0.4: + dependencies: + clone-response: 1.0.3 + get-stream: 5.2.0 + http-cache-semantics: 4.2.0 + keyv: 4.5.4 + lowercase-keys: 2.0.0 + normalize-url: 6.1.0 + responselike: 2.0.1 + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bind@1.0.8: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 + set-function-length: 1.2.2 + + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + + callsite@1.0.0: {} + + callsites@3.1.0: {} + + camelcase-keys@6.2.2: + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: 4.0.1 + + camelcase@5.3.1: {} + + camelcase@6.3.0: {} + + caniuse-lite@1.0.30001774: {} + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.6.2: {} + + chardet@0.7.0: {} + + cheerio-select@2.1.0: + dependencies: + boolbase: 1.0.0 + css-select: 5.2.2 + css-what: 6.2.2 + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + + cheerio@1.0.0: + dependencies: + cheerio-select: 2.1.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + domutils: 3.2.2 + encoding-sniffer: 0.2.1 + htmlparser2: 9.1.0 + parse5: 7.3.0 + parse5-htmlparser2-tree-adapter: 7.1.0 + parse5-parser-stream: 7.1.2 + undici: 6.23.0 + whatwg-mimetype: 4.0.0 + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 + + chownr@2.0.0: {} + + clean-stack@2.2.0: {} + + cli-cursor@3.1.0: + dependencies: + restore-cursor: 3.1.0 + + cli-spinners@2.9.2: {} + + cli-width@3.0.0: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clone-response@1.0.3: + dependencies: + mimic-response: 1.0.1 + + clone@1.0.4: {} + + cmd-shim@6.0.3: {} + + code-block-writer@13.0.3: {} + + codecov@3.8.3(encoding@0.1.13): + dependencies: + argv: 0.0.2 + ignore-walk: 3.0.4 + js-yaml: 3.14.1 + teeny-request: 7.1.1(encoding@0.1.13) + urlgrey: 1.0.0 + transitivePeerDependencies: + - encoding + - supports-color + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + color-support@1.1.3: {} + + colors@1.4.0: {} + + commander@12.1.0: {} + + common-ancestor-path@1.0.1: {} + + concat-map@0.0.1: {} + + connect@3.7.0: + dependencies: + debug: 2.6.9 + finalhandler: 1.1.2 + parseurl: 1.3.3 + utils-merge: 1.0.1 + transitivePeerDependencies: + - supports-color + + console-control-strings@1.1.0: {} + + console-log-level@1.4.1: {} + + content-disposition@0.5.4: + dependencies: + safe-buffer: 5.2.1 + + content-disposition@1.0.1: {} + + content-type@1.0.5: {} + + convert-source-map@2.0.0: {} + + cookie-signature@1.0.7: {} + + cookie@0.7.2: {} + + cookies@0.9.1: + dependencies: + depd: 2.0.0 + keygrip: 1.1.0 + + core-js-compat@3.48.0: + dependencies: + browserslist: 4.28.1 + + core-util-is@1.0.2: {} + + core-util-is@1.0.3: {} + + cors@2.8.6: + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + + cosmiconfig@9.0.0(typescript@5.9.3): + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.1 + js-yaml: 4.1.1 + parse-json: 5.2.0 + optionalDependencies: + typescript: 5.9.3 + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crypto-js@4.2.0: {} + + css-select@5.2.2: + dependencies: + boolbase: 1.0.0 + css-what: 6.2.2 + domhandler: 5.0.3 + domutils: 3.2.2 + nth-check: 2.1.1 + + css-what@6.2.2: {} + + cssesc@3.0.0: {} + + csv-generate@4.5.0: {} + + csv-parse@6.1.0: {} + + csv-stringify@6.6.0: {} + + csv@6.4.1: + dependencies: + csv-generate: 4.5.0 + csv-parse: 6.1.0 + csv-stringify: 6.6.0 + stream-transform: 3.4.0 + + dashdash@1.14.1: + dependencies: + assert-plus: 1.0.0 + + data-uri-to-buffer@4.0.1: {} + + data-view-buffer@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-length@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-offset@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + debug@2.6.9: + dependencies: + ms: 2.0.0 + + debug@4.4.3(supports-color@8.1.1): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 8.1.1 + + decache@4.6.2: + dependencies: + callsite: 1.0.0 + + decamelize-keys@1.1.1: + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + + decamelize@1.2.0: {} + + decamelize@4.0.0: {} + + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + + deep-equal@1.0.1: {} + + deep-equal@1.1.2: + dependencies: + is-arguments: 1.2.0 + is-date-object: 1.1.0 + is-regex: 1.2.1 + object-is: 1.1.6 + object-keys: 1.1.1 + regexp.prototype.flags: 1.5.4 + + deep-extend@0.6.0: {} + + deep-is@0.1.4: {} + + defaults@1.0.4: + dependencies: + clone: 1.0.4 + + defer-to-connect@2.0.1: {} + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + + define-lazy-prop@2.0.0: {} + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + delegates@1.0.0: {} + + depd@1.1.2: {} + + depd@2.0.0: {} + + destroy@1.2.0: {} + + detect-node@2.1.0: {} + + dfa@1.2.0: {} + + diff@7.0.0: {} + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + domelementtype@2.3.0: {} + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@3.2.2: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + + dot@2.0.0-beta.1: {} + + dtrace-provider@0.8.8: + dependencies: + nan: 2.25.0 + optional: true + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + duplexer@0.1.2: {} + + duplexify@4.1.3: + dependencies: + end-of-stream: 1.4.5 + inherits: 2.0.4 + readable-stream: 3.6.2 + stream-shift: 1.0.3 + + eastasianwidth@0.2.0: {} + + ecc-jsbn@0.1.2: + dependencies: + jsbn: 0.1.1 + safer-buffer: 2.1.2 + + ecdsa-sig-formatter@1.0.11: + dependencies: + safe-buffer: 5.2.1 + + ee-first@1.1.1: {} + + electron-to-chromium@1.5.302: {} + + emitter-component@1.1.2: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + encodeurl@1.0.2: {} + + encodeurl@2.0.0: {} + + encoding-sniffer@0.2.1: + dependencies: + iconv-lite: 0.6.3 + whatwg-encoding: 3.1.1 + + encoding@0.1.13: + dependencies: + iconv-lite: 0.6.3 + optional: true + + end-of-stream@1.4.5: + dependencies: + once: 1.4.0 + + entities@4.5.0: {} + + entities@6.0.1: {} + + entities@7.0.1: {} + + env-paths@2.2.1: {} + + err-code@2.0.3: {} + + error-ex@1.3.4: + dependencies: + is-arrayish: 0.2.1 + + es-abstract@1.24.1: + dependencies: + array-buffer-byte-length: 1.0.2 + arraybuffer.prototype.slice: 1.0.4 + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 + data-view-buffer: 1.0.2 + data-view-byte-length: 1.0.2 + data-view-byte-offset: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-set-tostringtag: 2.1.0 + es-to-primitive: 1.3.0 + function.prototype.name: 1.1.8 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + get-symbol-description: 1.1.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + internal-slot: 1.1.0 + is-array-buffer: 3.0.5 + is-callable: 1.2.7 + is-data-view: 1.0.2 + is-negative-zero: 2.0.3 + is-regex: 1.2.1 + is-set: 2.0.3 + is-shared-array-buffer: 1.0.4 + is-string: 1.1.1 + is-typed-array: 1.1.15 + is-weakref: 1.1.1 + math-intrinsics: 1.1.0 + object-inspect: 1.13.4 + object-keys: 1.1.1 + object.assign: 4.1.7 + own-keys: 1.0.1 + regexp.prototype.flags: 1.5.4 + safe-array-concat: 1.1.3 + safe-push-apply: 1.0.0 + safe-regex-test: 1.1.0 + set-proto: 1.0.0 + stop-iteration-iterator: 1.1.0 + string.prototype.trim: 1.2.10 + string.prototype.trimend: 1.0.9 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.3 + typed-array-byte-length: 1.0.3 + typed-array-byte-offset: 1.0.4 + typed-array-length: 1.0.7 + unbox-primitive: 1.1.0 + which-typed-array: 1.1.20 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + es-to-primitive@1.3.0: + dependencies: + is-callable: 1.2.7 + is-date-object: 1.1.0 + is-symbol: 1.1.1 + + es6-shim@0.35.8: {} + + escalade@3.2.0: {} + + escape-html@1.0.3: {} + + escape-regexp-component@1.0.2: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@4.0.0: {} + + eslint-config-prettier@9.1.0(eslint@8.57.1): + dependencies: + eslint: 8.57.1 + + eslint-plugin-es@4.1.0(eslint@8.57.1): + dependencies: + eslint: 8.57.1 + eslint-utils: 2.1.0 + regexpp: 3.2.0 + + eslint-plugin-n@15.7.0(eslint@8.57.1): + dependencies: + builtins: 5.1.0 + eslint: 8.57.1 + eslint-plugin-es: 4.1.0(eslint@8.57.1) + eslint-utils: 3.0.0(eslint@8.57.1) + ignore: 5.3.2 + is-core-module: 2.16.1 + minimatch: 3.1.5 + resolve: 1.22.11 + semver: 7.7.4 + + eslint-plugin-prettier@5.2.1(eslint-config-prettier@9.1.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.3.3): + dependencies: + eslint: 8.57.1 + prettier: 3.3.3 + prettier-linter-helpers: 1.0.1 + synckit: 0.9.3 + optionalDependencies: + eslint-config-prettier: 9.1.0(eslint@8.57.1) + + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-utils@2.1.0: + dependencies: + eslint-visitor-keys: 1.3.0 + + eslint-utils@3.0.0(eslint@8.57.1): + dependencies: + eslint: 8.57.1 + eslint-visitor-keys: 2.1.0 + + eslint-visitor-keys@1.3.0: {} + + eslint-visitor-keys@2.1.0: {} + + eslint-visitor-keys@3.4.3: {} + + eslint@8.57.1: + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) + '@eslint-community/regexpp': 4.12.2 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.1 + '@humanwhocodes/config-array': 0.13.0 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.3.0 + ajv: 6.14.0 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.3(supports-color@8.1.1) + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.7.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.1 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.5 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + espree@9.6.1: + dependencies: + acorn: 8.16.0 + acorn-jsx: 5.3.2(acorn@8.16.0) + eslint-visitor-keys: 3.4.3 + + esprima@4.0.1: {} + + esquery@1.7.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@4.3.0: {} + + estraverse@5.3.0: {} + + esutils@2.0.3: {} + + etag@1.8.1: {} + + event-stream@4.0.1: + dependencies: + duplexer: 0.1.2 + from: 0.1.7 + map-stream: 0.0.7 + pause-stream: 0.0.11 + split: 1.0.1 + stream-combiner: 0.2.2 + through: 2.3.8 + + event-target-shim@5.0.1: {} + + events@3.3.0: {} + + ewma@2.0.1: + dependencies: + assert-plus: 1.0.0 + + execa@4.1.0: + dependencies: + cross-spawn: 7.0.6 + get-stream: 5.2.0 + human-signals: 1.1.1 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + execa@5.1.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + exponential-backoff@3.1.3: {} + + express@4.22.1: + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.4 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.7.2 + cookie-signature: 1.0.7 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.3.2 + fresh: 0.5.2 + http-errors: 2.0.1 + merge-descriptors: 1.0.3 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.12 + proxy-addr: 2.0.7 + qs: 6.14.2 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.19.2 + serve-static: 1.16.3 + setprototypeof: 1.2.0 + statuses: 2.0.2 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + extend@3.0.2: {} + + external-editor@3.1.0: + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + + extsprintf@1.3.0: {} + + extsprintf@1.4.1: {} + + fancy-log@2.0.0: + dependencies: + color-support: 1.1.3 + + fast-decode-uri-component@1.0.1: {} + + fast-deep-equal@3.1.3: {} + + fast-diff@1.3.0: {} + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fast-querystring@1.1.2: + dependencies: + fast-decode-uri-component: 1.0.1 + + fast-redact@3.5.0: {} + + fast-url-parser@1.1.3: + dependencies: + punycode: 1.4.1 + + fastq@1.20.1: + dependencies: + reusify: 1.1.0 + + faye-websocket@0.11.4: + dependencies: + websocket-driver: 0.7.4 + + fetch-blob@3.2.0: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 3.3.3 + + figures@3.2.0: + dependencies: + escape-string-regexp: 1.0.5 + + file-entry-cache@6.0.1: + dependencies: + flat-cache: 3.2.0 + + fill-keys@1.0.2: + dependencies: + is-object: 1.0.2 + merge-descriptors: 1.0.3 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + finalhandler@1.1.2: + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.3.0 + parseurl: 1.3.3 + statuses: 1.5.0 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + finalhandler@1.3.2: + dependencies: + debug: 2.6.9 + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.2 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + find-my-way@7.7.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-querystring: 1.1.2 + safe-regex2: 2.0.0 + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@3.2.0: + dependencies: + flatted: 3.3.3 + keyv: 4.5.4 + rimraf: 3.0.2 + + flat@5.0.2: {} + + flatted@3.3.3: {} + + for-each@0.3.5: + dependencies: + is-callable: 1.2.7 + + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + formdata-polyfill@4.0.10: + dependencies: + fetch-blob: 3.2.0 + + formidable@1.2.6: {} + + forwarded@0.2.0: {} + + fresh@0.5.2: {} + + fresh@2.0.0: {} + + from@0.1.7: {} + + fs-extra@11.3.3: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.2.0 + universalify: 2.0.1 + + fs-minipass@2.1.0: + dependencies: + minipass: 3.3.6 + + fs-minipass@3.0.3: + dependencies: + minipass: 7.1.3 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + function.prototype.name@1.1.8: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + functions-have-names: 1.2.3 + hasown: 2.0.2 + is-callable: 1.2.7 + + functions-have-names@1.2.3: {} + + gauge@4.0.4: + dependencies: + aproba: 2.1.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + signal-exit: 3.0.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 + + gauge@5.0.2: + dependencies: + aproba: 2.1.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + signal-exit: 4.1.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 + + gaxios@5.1.3(encoding@0.1.13): + dependencies: + extend: 3.0.2 + https-proxy-agent: 5.0.1 + is-stream: 2.0.1 + node-fetch: 2.7.0(encoding@0.1.13) + transitivePeerDependencies: + - encoding + - supports-color + + gaxios@6.7.1(encoding@0.1.13): + dependencies: + extend: 3.0.2 + https-proxy-agent: 7.0.6 + is-stream: 2.0.1 + node-fetch: 2.7.0(encoding@0.1.13) + uuid: 9.0.1 + transitivePeerDependencies: + - encoding + - supports-color + + gaxios@7.1.3: + dependencies: + extend: 3.0.2 + https-proxy-agent: 7.0.6 + node-fetch: 3.3.2 + rimraf: 5.0.10 + transitivePeerDependencies: + - supports-color + + gcp-metadata@8.1.2: + dependencies: + gaxios: 7.1.3 + google-logging-utils: 1.1.3 + json-bigint: 1.0.0 + transitivePeerDependencies: + - supports-color + + generator-function@2.0.1: {} + + gensync@1.0.0-beta.2: {} + + get-caller-file@2.0.5: {} + + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + + get-stream@5.2.0: + dependencies: + pump: 3.0.3 + + get-stream@6.0.1: {} + + get-symbol-description@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + + getpass@0.1.7: + dependencies: + assert-plus: 1.0.0 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@10.5.0: + dependencies: + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.8 + minipass: 7.1.3 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.5 + once: 1.4.0 + path-is-absolute: 1.0.1 + + glob@8.1.0: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.9 + once: 1.4.0 + + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.2.0 + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.3 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + google-auth-library@10.6.1: + dependencies: + base64-js: 1.5.1 + ecdsa-sig-formatter: 1.0.11 + gaxios: 7.1.3 + gcp-metadata: 8.1.2 + google-logging-utils: 1.1.3 + jws: 4.0.1 + transitivePeerDependencies: + - supports-color + + google-logging-utils@1.1.3: {} + + gopd@1.2.0: {} + + got@11.8.6: + dependencies: + '@sindresorhus/is': 4.6.0 + '@szmarczak/http-timer': 4.0.6 + '@types/cacheable-request': 6.0.3 + '@types/responselike': 1.0.3 + cacheable-lookup: 5.0.4 + cacheable-request: 7.0.4 + decompress-response: 6.0.0 + http2-wrapper: 1.0.3 + lowercase-keys: 2.0.0 + p-cancelable: 2.1.1 + responselike: 2.0.1 + + graceful-fs@4.2.11: {} + + graphemer@1.4.0: {} + + gts@6.0.2(typescript@5.9.3): + dependencies: + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.9.3) + chalk: 4.1.2 + eslint: 8.57.1 + eslint-config-prettier: 9.1.0(eslint@8.57.1) + eslint-plugin-n: 15.7.0(eslint@8.57.1) + eslint-plugin-prettier: 5.2.1(eslint-config-prettier@9.1.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.3.3) + execa: 5.1.1 + inquirer: 7.3.3 + json5: 2.2.3 + meow: 9.0.0 + ncp: 2.0.0 + prettier: 3.3.3 + rimraf: 3.0.2 + typescript: 5.9.3 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - '@types/eslint' + - supports-color + + hammerjs@2.0.8: {} + + handle-thing@2.0.1: {} + + handlebars@4.7.8: + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.19.3 + + hard-rejection@2.1.0: {} + + has-bigints@1.1.0: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + + has-proto@1.2.0: + dependencies: + dunder-proto: 1.0.1 + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + has-unicode@2.0.1: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + he@1.2.0: {} + + hoek@6.1.3: {} + + hosted-git-info@2.8.9: {} + + hosted-git-info@4.1.0: + dependencies: + lru-cache: 6.0.0 + + hosted-git-info@6.1.3: + dependencies: + lru-cache: 7.18.3 + + hpack.js@2.1.6: + dependencies: + inherits: 2.0.4 + obuf: 1.1.2 + readable-stream: 2.3.8 + wbuf: 1.7.3 + + html-entities@2.6.0: {} + + html-escaper@2.0.2: {} + + htmlparser2@10.1.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + entities: 7.0.1 + + htmlparser2@9.1.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + entities: 4.5.0 + + http-assert@1.5.0: + dependencies: + deep-equal: 1.0.1 + http-errors: 1.8.1 + + http-auth-connect@1.0.6: {} + + http-auth@4.1.9: + dependencies: + apache-crypt: 1.2.6 + apache-md5: 1.1.8 + bcryptjs: 2.4.3 + uuid: 8.3.2 + + http-cache-semantics@4.2.0: {} + + http-deceiver@1.2.7: {} + + http-errors@1.8.1: + dependencies: + depd: 1.1.2 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 1.5.0 + toidentifier: 1.0.1 + + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + http-errors@2.0.1: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.2 + toidentifier: 1.0.1 + + http-parser-js@0.5.10: {} + + http-proxy-agent@4.0.1: + dependencies: + '@tootallnate/once': 1.1.2 + agent-base: 6.0.2 + debug: 4.4.3(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + + http-proxy-agent@5.0.0: + dependencies: + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 + debug: 4.4.3(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + + http-signature@1.4.0: + dependencies: + assert-plus: 1.0.0 + jsprim: 2.0.2 + sshpk: 1.18.0 + + http2-wrapper@1.0.3: + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.4.3(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + + https-proxy-agent@7.0.6: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + + human-signals@1.1.1: {} + + human-signals@2.1.0: {} + + humanize-ms@1.2.1: + dependencies: + ms: 2.1.3 + + i18next@23.16.8: + dependencies: + '@babel/runtime': 7.28.6 + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + iconv-lite@0.7.2: + dependencies: + safer-buffer: 2.1.2 + + ieee754@1.2.1: {} + + ignore-walk@3.0.4: + dependencies: + minimatch: 3.1.5 + + ignore-walk@6.0.5: + dependencies: + minimatch: 9.0.8 + + ignore@5.3.2: {} + + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + imurmurhash@0.1.4: {} + + indent-string@4.0.0: {} + + infer-owner@1.0.4: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + ini@1.3.8: {} + + inquirer@7.3.3: + dependencies: + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + external-editor: 3.1.0 + figures: 3.2.0 + lodash: 4.17.23 + mute-stream: 0.0.8 + run-async: 2.4.1 + rxjs: 6.6.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + through: 2.3.8 + + internal-slot@1.1.0: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.1.0 + + ip-address@10.1.0: {} + + ipaddr.js@1.9.1: {} + + is-arguments@1.2.0: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-array-buffer@3.0.5: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + + is-arrayish@0.2.1: {} + + is-async-function@2.1.1: + dependencies: + async-function: 1.0.0 + call-bound: 1.0.4 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-bigint@1.1.0: + dependencies: + has-bigints: 1.1.0 + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-boolean-object@1.2.2: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-callable@1.2.7: {} + + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + + is-data-view@1.0.2: + dependencies: + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + is-typed-array: 1.1.15 + + is-date-object@1.1.0: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-docker@2.2.1: {} + + is-extglob@2.1.1: {} + + is-finalizationregistry@1.1.1: + dependencies: + call-bound: 1.0.4 + + is-fullwidth-code-point@3.0.0: {} + + is-generator-function@1.1.2: + dependencies: + call-bound: 1.0.4 + generator-function: 2.0.1 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-interactive@1.0.0: {} + + is-lambda@1.0.1: {} + + is-map@2.0.3: {} + + is-negative-zero@2.0.3: {} + + is-node-process@1.2.0: {} + + is-number-object@1.1.1: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-number@7.0.0: {} + + is-object@1.0.2: {} + + is-path-inside@3.0.3: {} + + is-plain-obj@1.1.0: {} + + is-plain-obj@2.1.0: {} + + is-regex@1.2.1: + dependencies: + call-bound: 1.0.4 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + is-set@2.0.3: {} + + is-shared-array-buffer@1.0.4: + dependencies: + call-bound: 1.0.4 + + is-stream@2.0.1: {} + + is-string@1.1.1: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-symbol@1.1.1: + dependencies: + call-bound: 1.0.4 + has-symbols: 1.1.0 + safe-regex-test: 1.1.0 + + is-typed-array@1.1.15: + dependencies: + which-typed-array: 1.1.20 + + is-unicode-supported@0.1.0: {} + + is-weakmap@2.0.2: {} + + is-weakref@1.1.1: + dependencies: + call-bound: 1.0.4 + + is-weakset@2.0.4: + dependencies: + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 + + isarray@1.0.0: {} + + isarray@2.0.5: {} + + isexe@2.0.0: {} + + istanbul-lib-coverage@3.2.2: {} + + istanbul-lib-report@3.0.1: + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + + istanbul-reports@3.2.0: + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + joi@17.13.3: + dependencies: + '@hapi/hoek': 9.3.0 + '@hapi/topo': 5.1.0 + '@sideway/address': 4.1.5 + '@sideway/formula': 3.0.1 + '@sideway/pinpoint': 2.0.0 + + jpeg-exif@1.1.4: {} + + js-green-licenses@4.0.0(encoding@0.1.13): + dependencies: + gaxios: 5.1.3(encoding@0.1.13) + meow: 9.0.0 + npm-package-arg: 8.1.5 + package-json: 7.0.0 + semver: 7.7.4 + spdx-correct: 3.2.0 + spdx-satisfies: 5.0.1 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - encoding + - supports-color + + js-tokens@4.0.0: {} + + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + js-yaml@4.1.1: + dependencies: + argparse: 2.0.1 + + jsbn@0.1.1: {} + + jsesc@3.1.0: {} + + json-bigint@1.0.0: + dependencies: + bignumber.js: 9.3.1 + + json-buffer@3.0.1: {} + + json-parse-even-better-errors@2.3.1: {} + + json-parse-even-better-errors@3.0.2: {} + + json-schema-traverse@0.4.1: {} + + json-schema-traverse@1.0.0: {} + + json-schema@0.4.0: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json-stable-stringify@1.3.0: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + isarray: 2.0.5 + jsonify: 0.0.1 + object-keys: 1.1.1 + + json-stringify-nice@1.1.4: {} + + json-stringify-safe@5.0.1: {} + + json5@2.2.3: {} + + jsonc-parser@3.2.1: {} + + jsonfile@6.2.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + jsonify@0.0.1: {} + + jsonparse@1.3.1: {} + + jsprim@2.0.2: + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + + just-diff-apply@5.5.0: {} + + just-diff@6.0.2: {} + + jwa@2.0.1: + dependencies: + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: 5.2.1 + + jws@4.0.1: + dependencies: + jwa: 2.0.1 + safe-buffer: 5.2.1 + + keycharm@0.2.0: {} + + keygrip@1.1.0: + dependencies: + tsscmp: 1.0.6 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + kind-of@6.0.3: {} + + koa-compose@4.1.0: {} + + koa@3.1.2: + dependencies: + accepts: 1.3.8 + content-disposition: 1.0.1 + content-type: 1.0.5 + cookies: 0.9.1 + delegates: 1.0.0 + destroy: 1.2.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + fresh: 0.5.2 + http-assert: 1.5.0 + http-errors: 2.0.1 + koa-compose: 4.1.0 + mime-types: 3.0.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.2 + type-is: 2.0.1 + vary: 1.1.2 + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lines-and-columns@1.2.4: {} + + linkinator@6.3.0(encoding@0.1.13): + dependencies: + chalk: 5.6.2 + escape-html: 1.0.3 + gaxios: 6.7.1(encoding@0.1.13) + glob: 10.5.0 + htmlparser2: 10.1.0 + marked: 13.0.3 + meow: 13.2.0 + mime: 4.1.0 + server-destroy: 1.0.1 + srcset: 5.0.3 + transitivePeerDependencies: + - encoding + - supports-color + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.debounce@4.0.8: {} + + lodash.merge@4.6.2: {} + + lodash@4.17.23: {} + + log-symbols@4.1.0: + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + + loglevel-plugin-prefix@0.8.4: {} + + loglevel@1.9.2: {} + + lowercase-keys@2.0.0: {} + + lru-cache@10.4.3: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + + lru-cache@7.18.3: {} + + lunr@2.3.9: {} + + macos-release@2.5.1: {} + + magic-string@0.30.10: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + make-dir@4.0.0: + dependencies: + semver: 7.7.4 + + make-fetch-happen@10.2.1: + dependencies: + agentkeepalive: 4.6.0 + cacache: 16.1.3 + http-cache-semantics: 4.2.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-lambda: 1.0.1 + lru-cache: 7.18.3 + minipass: 3.3.6 + minipass-collect: 1.0.2 + minipass-fetch: 2.1.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + negotiator: 0.6.4 + promise-retry: 2.0.1 + socks-proxy-agent: 7.0.0 + ssri: 9.0.1 + transitivePeerDependencies: + - bluebird + - supports-color + + make-fetch-happen@11.1.1: + dependencies: + agentkeepalive: 4.6.0 + cacache: 17.1.4 + http-cache-semantics: 4.2.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-lambda: 1.0.1 + lru-cache: 7.18.3 + minipass: 5.0.0 + minipass-fetch: 3.0.5 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + negotiator: 0.6.4 + promise-retry: 2.0.1 + socks-proxy-agent: 7.0.0 + ssri: 10.0.6 + transitivePeerDependencies: + - supports-color + + map-obj@1.0.1: {} + + map-obj@4.3.0: {} + + map-stream@0.0.7: {} + + marked@13.0.3: {} + + marked@7.0.3: {} + + math-intrinsics@1.1.0: {} + + media-typer@0.3.0: {} + + media-typer@1.1.0: {} + + meow@13.2.0: {} + + meow@9.0.0: + dependencies: + '@types/minimist': 1.2.5 + camelcase-keys: 6.2.2 + decamelize: 1.2.0 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.18.1 + yargs-parser: 20.2.9 + + merge-descriptors@1.0.3: {} + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + methods@1.1.2: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-db@1.54.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mime-types@3.0.2: + dependencies: + mime-db: 1.54.0 + + mime@1.6.0: {} + + mime@3.0.0: {} + + mime@4.1.0: {} + + mimic-fn@2.1.0: {} + + mimic-response@1.0.1: {} + + mimic-response@3.1.0: {} + + min-indent@1.0.1: {} + + minimalistic-assert@1.0.1: {} + + minimatch@10.2.4: + dependencies: + brace-expansion: 5.0.3 + + minimatch@3.1.5: + dependencies: + brace-expansion: 1.1.12 + + minimatch@5.1.9: + dependencies: + brace-expansion: 2.0.2 + + minimatch@9.0.8: + dependencies: + brace-expansion: 5.0.3 + + minimist-options@4.1.0: + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + + minimist@1.2.8: {} + + minipass-collect@1.0.2: + dependencies: + minipass: 3.3.6 + + minipass-fetch@2.1.2: + dependencies: + minipass: 3.3.6 + minipass-sized: 1.0.3 + minizlib: 2.1.2 + optionalDependencies: + encoding: 0.1.13 + + minipass-fetch@3.0.5: + dependencies: + minipass: 7.1.3 + minipass-sized: 1.0.3 + minizlib: 2.1.2 + optionalDependencies: + encoding: 0.1.13 + + minipass-flush@1.0.5: + dependencies: + minipass: 3.3.6 + + minipass-json-stream@1.0.2: + dependencies: + jsonparse: 1.3.1 + minipass: 3.3.6 + + minipass-pipeline@1.2.4: + dependencies: + minipass: 3.3.6 + + minipass-sized@1.0.3: + dependencies: + minipass: 3.3.6 + + minipass@3.3.6: + dependencies: + yallist: 4.0.0 + + minipass@5.0.0: {} + + minipass@7.1.3: {} + + minizlib@2.1.2: + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + + mkdirp@1.0.4: {} + + mkdirp@3.0.1: {} + + mocha@11.7.5: + dependencies: + browser-stdout: 1.3.1 + chokidar: 4.0.3 + debug: 4.4.3(supports-color@8.1.1) + diff: 7.0.0 + escape-string-regexp: 4.0.0 + find-up: 5.0.0 + glob: 10.5.0 + he: 1.2.0 + is-path-inside: 3.0.3 + js-yaml: 4.1.1 + log-symbols: 4.1.0 + minimatch: 9.0.8 + ms: 2.1.3 + picocolors: 1.1.1 + serialize-javascript: 6.0.2 + strip-json-comments: 3.1.1 + supports-color: 8.1.1 + workerpool: 9.3.4 + yargs: 17.7.2 + yargs-parser: 21.1.1 + yargs-unparser: 2.0.0 + + module-not-found-error@1.0.1: {} + + moment@2.30.1: {} + + morgan@1.10.1: + dependencies: + basic-auth: 2.0.1 + debug: 2.6.9 + depd: 2.0.0 + on-finished: 2.3.0 + on-headers: 1.1.0 + transitivePeerDependencies: + - supports-color + + ms@2.0.0: {} + + ms@2.1.3: {} + + mute-stream@0.0.8: {} + + nan@2.25.0: + optional: true + + natural-compare-lite@1.4.0: {} + + natural-compare@1.4.0: {} + + ncp@2.0.0: {} + + negotiator@0.6.3: {} + + negotiator@0.6.4: {} + + neo-async@2.6.2: {} + + nock@14.0.11: + dependencies: + '@mswjs/interceptors': 0.41.3 + json-stringify-safe: 5.0.1 + propagate: 2.0.1 + + node-domexception@1.0.0: {} + + node-fetch@2.7.0(encoding@0.1.13): + dependencies: + whatwg-url: 5.0.0 + optionalDependencies: + encoding: 0.1.13 + + node-fetch@3.3.2: + dependencies: + data-uri-to-buffer: 4.0.1 + fetch-blob: 3.2.0 + formdata-polyfill: 4.0.10 + + node-gyp@9.4.1: + dependencies: + env-paths: 2.2.1 + exponential-backoff: 3.1.3 + glob: 7.2.3 + graceful-fs: 4.2.11 + make-fetch-happen: 10.2.1 + nopt: 6.0.0 + npmlog: 6.0.2 + rimraf: 3.0.2 + semver: 7.7.4 + tar: 6.2.1 + which: 2.0.2 + transitivePeerDependencies: + - bluebird + - supports-color + + node-releases@2.0.27: {} + + nopt@6.0.0: + dependencies: + abbrev: 1.1.1 + + nopt@7.2.1: + dependencies: + abbrev: 2.0.0 + + normalize-package-data@2.5.0: + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.11 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + + normalize-package-data@3.0.3: + dependencies: + hosted-git-info: 4.1.0 + is-core-module: 2.16.1 + semver: 7.7.4 + validate-npm-package-license: 3.0.4 + + normalize-package-data@5.0.0: + dependencies: + hosted-git-info: 6.1.3 + is-core-module: 2.16.1 + semver: 7.7.4 + validate-npm-package-license: 3.0.4 + + normalize-path@3.0.0: {} + + normalize-url@6.1.0: {} + + npm-bundled@3.0.1: + dependencies: + npm-normalize-package-bin: 3.0.1 + + npm-install-checks@6.3.0: + dependencies: + semver: 7.7.4 + + npm-normalize-package-bin@3.0.1: {} + + npm-package-arg@10.1.0: + dependencies: + hosted-git-info: 6.1.3 + proc-log: 3.0.0 + semver: 7.7.4 + validate-npm-package-name: 5.0.1 + + npm-package-arg@8.1.5: + dependencies: + hosted-git-info: 4.1.0 + semver: 7.7.4 + validate-npm-package-name: 3.0.0 + + npm-packlist@7.0.4: + dependencies: + ignore-walk: 6.0.5 + + npm-packlist@8.0.2: + dependencies: + ignore-walk: 6.0.5 + + npm-pick-manifest@8.0.2: + dependencies: + npm-install-checks: 6.3.0 + npm-normalize-package-bin: 3.0.1 + npm-package-arg: 10.1.0 + semver: 7.7.4 + + npm-registry-fetch@14.0.5: + dependencies: + make-fetch-happen: 11.1.1 + minipass: 5.0.0 + minipass-fetch: 3.0.5 + minipass-json-stream: 1.0.2 + minizlib: 2.1.2 + npm-package-arg: 10.1.0 + proc-log: 3.0.0 + transitivePeerDependencies: + - supports-color + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + npmlog@6.0.2: + dependencies: + are-we-there-yet: 3.0.1 + console-control-strings: 1.1.0 + gauge: 4.0.4 + set-blocking: 2.0.0 + + npmlog@7.0.1: + dependencies: + are-we-there-yet: 4.0.2 + console-control-strings: 1.1.0 + gauge: 5.0.2 + set-blocking: 2.0.0 + + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + object-assign@4.1.1: {} + + object-inspect@1.13.4: {} + + object-is@1.1.6: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + + object-keys@1.1.1: {} + + object.assign@4.1.7: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + has-symbols: 1.1.0 + object-keys: 1.1.1 + + obuf@1.1.2: {} + + on-exit-leak-free@2.1.2: {} + + on-finished@2.3.0: + dependencies: + ee-first: 1.1.1 + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + on-headers@1.1.0: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + open@8.4.0: + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + + opencollective-postinstall@2.0.3: {} + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + ora@5.4.1: + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.9.2 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + + os-name@4.0.1: + dependencies: + macos-release: 2.5.1 + windows-release: 4.0.0 + + os-tmpdir@1.0.2: {} + + outvariant@1.4.3: {} + + own-keys@1.0.1: + dependencies: + get-intrinsic: 1.3.0 + object-keys: 1.1.1 + safe-push-apply: 1.0.0 + + p-cancelable@2.1.1: {} + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-map@4.0.0: + dependencies: + aggregate-error: 3.1.0 + + p-try@2.2.0: {} + + pack-n-play@2.1.0: + dependencies: + '@npmcli/arborist': 6.5.1 + execa: 5.1.1 + npm-packlist: 8.0.2 + once: 1.4.0 + rimraf: 5.0.10 + tar: 6.2.1 + tmp: 0.2.3 + transitivePeerDependencies: + - bluebird + - supports-color + + package-json-from-dist@1.0.1: {} + + package-json@7.0.0: + dependencies: + got: 11.8.6 + registry-auth-token: 4.2.2 + registry-url: 5.1.0 + semver: 7.7.4 + + pacote@15.2.0: + dependencies: + '@npmcli/git': 4.1.0 + '@npmcli/installed-package-contents': 2.1.0 + '@npmcli/promise-spawn': 6.0.2 + '@npmcli/run-script': 6.0.2 + cacache: 17.1.4 + fs-minipass: 3.0.3 + minipass: 5.0.0 + npm-package-arg: 10.1.0 + npm-packlist: 7.0.4 + npm-pick-manifest: 8.0.2 + npm-registry-fetch: 14.0.5 + proc-log: 3.0.0 + promise-retry: 2.0.1 + read-package-json: 6.0.4 + read-package-json-fast: 3.0.2 + sigstore: 1.9.0 + ssri: 10.0.6 + tar: 6.2.1 + transitivePeerDependencies: + - bluebird + - supports-color + + pako@0.2.9: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-conflict-json@3.0.1: + dependencies: + json-parse-even-better-errors: 3.0.2 + just-diff: 6.0.2 + just-diff-apply: 5.5.0 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.29.0 + error-ex: 1.3.4 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + parse5-htmlparser2-tree-adapter@7.1.0: + dependencies: + domhandler: 5.0.3 + parse5: 7.3.0 + + parse5-parser-stream@7.1.2: + dependencies: + parse5: 7.3.0 + + parse5@7.3.0: + dependencies: + entities: 6.0.1 + + parseurl@1.3.3: {} + + path-browserify@1.0.1: {} + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.3 + + path-to-regexp@0.1.12: {} + + path-type@4.0.0: {} + + pause-stream@0.0.11: + dependencies: + through: 2.3.8 + + pdfmake@0.2.23: + dependencies: + '@foliojs-fork/linebreak': 1.1.2 + '@foliojs-fork/pdfkit': 0.15.3 + iconv-lite: 0.7.2 + xmldoc: 2.0.3 + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.2: {} + + pidusage@3.0.2: + dependencies: + safe-buffer: 5.2.1 + + pino-abstract-transport@1.2.0: + dependencies: + readable-stream: 4.7.0 + split2: 4.2.0 + + pino-std-serializers@6.2.2: {} + + pino@8.21.0: + dependencies: + atomic-sleep: 1.0.0 + fast-redact: 3.5.0 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 1.2.0 + pino-std-serializers: 6.2.2 + process-warning: 3.0.0 + quick-format-unescaped: 4.0.4 + real-require: 0.2.0 + safe-stable-stringify: 2.5.0 + sonic-boom: 3.8.1 + thread-stream: 2.7.0 + + png-js@1.0.0: {} + + possible-typed-array-names@1.1.0: {} + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + prelude-ls@1.2.1: {} + + prettier-linter-helpers@1.0.1: + dependencies: + fast-diff: 1.3.0 + + prettier@3.3.3: {} + + prismjs@1.30.0: {} + + proc-log@3.0.0: {} + + process-nextick-args@2.0.1: {} + + process-warning@3.0.0: {} + + process@0.11.10: {} + + promise-all-reject-late@1.0.1: {} + + promise-call-limit@1.0.2: {} + + promise-inflight@1.0.1: {} + + promise-retry@2.0.1: + dependencies: + err-code: 2.0.3 + retry: 0.12.0 + + propagate@2.0.1: {} + + propagating-hammerjs@1.5.0: + dependencies: + hammerjs: 2.0.8 + + proxy-addr@2.0.7: + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + + proxy-middleware@0.15.0: {} + + proxyquire@2.1.3: + dependencies: + fill-keys: 1.0.2 + module-not-found-error: 1.0.1 + resolve: 1.22.11 + + pump@3.0.3: + dependencies: + end-of-stream: 1.4.5 + once: 1.4.0 + + punycode@1.4.1: {} + + punycode@2.3.1: {} + + qs@6.14.2: + dependencies: + side-channel: 1.1.0 + + qs@6.15.0: + dependencies: + side-channel: 1.1.0 + + queue-microtask@1.2.3: {} + + quick-format-unescaped@4.0.4: {} + + quick-lru@4.0.1: {} + + quick-lru@5.1.1: {} + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + range-parser@1.2.1: {} + + raw-body@2.5.3: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.1 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + rc@1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + + read-cmd-shim@4.0.0: {} + + read-package-json-fast@3.0.2: + dependencies: + json-parse-even-better-errors: 3.0.2 + npm-normalize-package-bin: 3.0.1 + + read-package-json@6.0.4: + dependencies: + glob: 10.5.0 + json-parse-even-better-errors: 3.0.2 + normalize-package-data: 5.0.0 + npm-normalize-package-bin: 3.0.1 + + read-pkg-up@7.0.1: + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + + read-pkg@5.2.0: + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + 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 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readable-stream@4.7.0: + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + readdirp@4.1.2: {} + + real-require@0.2.0: {} + + redent@3.0.0: + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + + reflect.getprototypeof@1.0.10: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + which-builtin-type: 1.2.1 + + regenerate-unicode-properties@10.2.2: + dependencies: + regenerate: 1.4.2 + + regenerate@1.4.2: {} + + regexp.prototype.flags@1.5.4: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-errors: 1.3.0 + get-proto: 1.0.1 + gopd: 1.2.0 + set-function-name: 2.0.2 + + regexpp@3.2.0: {} + + regexpu-core@6.4.0: + dependencies: + regenerate: 1.4.2 + regenerate-unicode-properties: 10.2.2 + regjsgen: 0.8.0 + regjsparser: 0.13.0 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.2.1 + + registry-auth-token@4.2.2: + dependencies: + rc: 1.2.8 + + registry-url@5.1.0: + dependencies: + rc: 1.2.8 + + regjsgen@0.8.0: {} + + regjsparser@0.13.0: + dependencies: + jsesc: 3.1.0 + + require-directory@2.1.1: {} + + require-from-string@2.0.2: {} + + resolve-alpn@1.2.1: {} + + resolve-from@4.0.0: {} + + resolve@1.22.11: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + responselike@2.0.1: + dependencies: + lowercase-keys: 2.0.0 + + restify-errors@8.1.0: + dependencies: + '@netflix/nerror': 1.1.3 + assert-plus: 1.0.0 + lodash: 4.17.23 + optionalDependencies: + safe-json-stringify: 1.2.0 + + restify@11.1.0: + dependencies: + assert-plus: 1.0.0 + csv: 6.4.1 + escape-regexp-component: 1.0.2 + ewma: 2.0.1 + find-my-way: 7.7.0 + formidable: 1.2.6 + http-signature: 1.4.0 + lodash: 4.17.23 + lru-cache: 7.18.3 + mime: 3.0.0 + negotiator: 0.6.4 + once: 1.4.0 + pidusage: 3.0.2 + pino: 8.21.0 + qs: 6.15.0 + restify-errors: 8.1.0 + semver: 7.7.4 + send: 0.18.0 + spdy: 4.0.2 + uuid: 9.0.1 + vasync: 2.2.1 + optionalDependencies: + dtrace-provider: 0.8.8 + transitivePeerDependencies: + - supports-color + + restore-cursor@3.1.0: + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + + ret@0.2.2: {} + + retry-request@8.0.2: + dependencies: + extend: 3.0.2 + teeny-request: 10.1.0 + transitivePeerDependencies: + - supports-color + + retry@0.12.0: {} + + reusify@1.1.0: {} + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + rimraf@5.0.10: + dependencies: + glob: 10.5.0 + + run-async@2.4.1: {} + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + rxjs@6.6.7: + dependencies: + tslib: 1.14.1 + + rxjs@7.8.1: + dependencies: + tslib: 2.8.1 + + safe-array-concat@1.1.3: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + has-symbols: 1.1.0 + isarray: 2.0.5 + + safe-buffer@5.1.2: {} + + safe-buffer@5.2.1: {} + + safe-json-stringify@1.2.0: + optional: true + + safe-push-apply@1.0.0: + dependencies: + es-errors: 1.3.0 + isarray: 2.0.5 + + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-regex: 1.2.1 + + safe-regex2@2.0.0: + dependencies: + ret: 0.2.2 + + safe-stable-stringify@2.5.0: {} + + safer-buffer@2.1.2: {} + + sax@1.4.4: {} + + select-hose@2.0.0: {} + + semver@5.7.2: {} + + semver@6.3.1: {} + + semver@7.7.4: {} + + send@0.18.0: + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + + send@0.19.2: + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.1 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + + send@1.2.1: + dependencies: + debug: 4.4.3(supports-color@8.1.1) + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 2.0.0 + http-errors: 2.0.1 + mime-types: 3.0.2 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 + + serve-index@1.9.2: + dependencies: + accepts: 1.3.8 + batch: 0.6.1 + debug: 2.6.9 + escape-html: 1.0.3 + http-errors: 1.8.1 + mime-types: 2.1.35 + parseurl: 1.3.3 + transitivePeerDependencies: + - supports-color + + serve-static@1.16.3: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.19.2 + transitivePeerDependencies: + - supports-color + + server-destroy@1.0.1: {} + + set-blocking@2.0.0: {} + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + + set-proto@1.0.0: + dependencies: + dunder-proto: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + + setprototypeof@1.2.0: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + + sigstore@1.9.0: + dependencies: + '@sigstore/bundle': 1.1.0 + '@sigstore/protobuf-specs': 0.2.1 + '@sigstore/sign': 1.0.0 + '@sigstore/tuf': 1.0.3 + make-fetch-happen: 11.1.1 + transitivePeerDependencies: + - supports-color + + slash@3.0.0: {} + + smart-buffer@4.2.0: {} + + socks-proxy-agent@7.0.0: + dependencies: + agent-base: 6.0.2 + debug: 4.4.3(supports-color@8.1.1) + socks: 2.8.7 + transitivePeerDependencies: + - supports-color + + socks@2.8.7: + dependencies: + ip-address: 10.1.0 + smart-buffer: 4.2.0 + + sonic-boom@3.8.1: + dependencies: + atomic-sleep: 1.0.0 + + source-map@0.6.1: {} + + source-map@0.7.4: {} + + spdx-compare@1.0.0: + dependencies: + array-find-index: 1.0.2 + spdx-expression-parse: 3.0.1 + spdx-ranges: 2.1.1 + + spdx-correct@3.2.0: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.23 + + spdx-exceptions@2.5.0: {} + + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.23 + + spdx-license-ids@3.0.23: {} + + spdx-ranges@2.1.1: {} + + spdx-satisfies@5.0.1: + dependencies: + spdx-compare: 1.0.0 + spdx-expression-parse: 3.0.1 + spdx-ranges: 2.1.1 + + spdy-transport@3.0.0: + dependencies: + debug: 4.4.3(supports-color@8.1.1) + detect-node: 2.1.0 + hpack.js: 2.1.6 + obuf: 1.1.2 + readable-stream: 3.6.2 + wbuf: 1.7.3 + transitivePeerDependencies: + - supports-color + + spdy@4.0.2: + dependencies: + debug: 4.4.3(supports-color@8.1.1) + handle-thing: 2.0.1 + http-deceiver: 1.2.7 + select-hose: 2.0.0 + spdy-transport: 3.0.0 + transitivePeerDependencies: + - supports-color + + split2@4.2.0: {} + + split@1.0.1: + dependencies: + through: 2.3.8 + + sprintf-js@1.0.3: {} + + srcset@5.0.3: {} + + sshpk@1.18.0: + dependencies: + asn1: 0.2.6 + 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 + + ssri@10.0.6: + dependencies: + minipass: 7.1.3 + + ssri@9.0.1: + dependencies: + minipass: 3.3.6 + + statuses@1.5.0: {} + + statuses@2.0.1: {} + + statuses@2.0.2: {} + + stop-iteration-iterator@1.1.0: + dependencies: + es-errors: 1.3.0 + internal-slot: 1.1.0 + + stream-combiner@0.2.2: + dependencies: + duplexer: 0.1.2 + through: 2.3.8 + + stream-events@1.0.5: + dependencies: + stubs: 3.0.0 + + stream-shift@1.0.3: {} + + stream-transform@3.4.0: {} + + strict-event-emitter@0.5.1: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.2 + + string.prototype.trim@1.2.10: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-data-property: 1.1.4 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-object-atoms: 1.1.1 + has-property-descriptors: 1.0.2 + + string.prototype.trimend@1.0.9: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + string.prototype.trimstart@1.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.2: + dependencies: + ansi-regex: 6.2.2 + + strip-final-newline@2.0.0: {} + + strip-indent@3.0.0: + dependencies: + min-indent: 1.0.1 + + strip-json-comments@2.0.1: {} + + strip-json-comments@3.1.1: {} + + stubs@3.0.0: {} + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + svg-pan-zoom@3.6.2: {} + + synckit@0.9.3: + dependencies: + '@pkgr/core': 0.1.2 + tslib: 2.8.1 + + tablesort@5.6.0: {} + + tar@6.2.1: + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + + teeny-request@10.1.0: + dependencies: + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + node-fetch: 3.3.2 + stream-events: 1.0.5 + transitivePeerDependencies: + - supports-color + + teeny-request@7.1.1(encoding@0.1.13): + dependencies: + http-proxy-agent: 4.0.1 + https-proxy-agent: 5.0.1 + node-fetch: 2.7.0(encoding@0.1.13) + stream-events: 1.0.5 + uuid: 8.3.2 + transitivePeerDependencies: + - encoding + - supports-color + + test-exclude@7.0.2: + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 10.5.0 + minimatch: 10.2.4 + + text-table@0.2.0: {} + + thread-stream@2.7.0: + dependencies: + real-require: 0.2.0 + + through@2.3.8: {} + + tiny-inflate@1.0.3: {} + + tmp@0.0.33: + dependencies: + os-tmpdir: 1.0.2 + + tmp@0.2.3: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toidentifier@1.0.1: {} + + tr46@0.0.3: {} + + traverse@0.6.11: + dependencies: + gopd: 1.2.0 + typedarray.prototype.slice: 1.0.5 + which-typed-array: 1.1.20 + + treeverse@3.0.0: {} + + trim-newlines@3.0.1: {} + + ts-morph@22.0.0: + dependencies: + '@ts-morph/common': 0.23.0 + code-block-writer: 13.0.3 + + tslib@1.14.1: {} + + tslib@2.8.1: {} + + tsscmp@1.0.6: {} + + tsutils@3.21.0(typescript@5.9.3): + dependencies: + tslib: 1.14.1 + typescript: 5.9.3 + + tuf-js@1.1.7: + dependencies: + '@tufjs/models': 1.0.4 + debug: 4.4.3(supports-color@8.1.1) + make-fetch-happen: 11.1.1 + transitivePeerDependencies: + - supports-color + + tweetnacl@0.14.5: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-fest@0.18.1: {} + + type-fest@0.20.2: {} + + type-fest@0.21.3: {} + + type-fest@0.6.0: {} + + type-fest@0.8.1: {} + + type-is@1.6.18: + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + + type-is@2.0.1: + dependencies: + content-type: 1.0.5 + media-typer: 1.1.0 + mime-types: 3.0.2 + + typed-array-buffer@1.0.3: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-typed-array: 1.1.15 + + typed-array-byte-length@1.0.3: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + + typed-array-byte-offset@1.0.4: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + reflect.getprototypeof: 1.0.10 + + typed-array-length@1.0.7: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + is-typed-array: 1.1.15 + possible-typed-array-names: 1.1.0 + reflect.getprototypeof: 1.0.10 + + typedarray.prototype.slice@1.0.5: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-errors: 1.3.0 + get-proto: 1.0.1 + math-intrinsics: 1.1.0 + typed-array-buffer: 1.0.3 + typed-array-byte-offset: 1.0.4 + + typescript@5.9.3: {} + + uglify-js@3.19.3: + optional: true + + unbox-primitive@1.1.0: + dependencies: + call-bound: 1.0.4 + has-bigints: 1.1.0 + has-symbols: 1.1.0 + which-boxed-primitive: 1.1.1 + + undici-types@7.16.0: {} + + undici@6.23.0: {} + + unicode-canonical-property-names-ecmascript@2.0.1: {} + + unicode-match-property-ecmascript@2.0.0: + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.1 + unicode-property-aliases-ecmascript: 2.2.0 + + unicode-match-property-value-ecmascript@2.2.1: {} + + unicode-properties@1.4.1: + dependencies: + base64-js: 1.5.1 + unicode-trie: 2.0.0 + + unicode-property-aliases-ecmascript@2.2.0: {} + + unicode-trie@2.0.0: + dependencies: + pako: 0.2.9 + tiny-inflate: 1.0.3 + + unique-filename@2.0.1: + dependencies: + unique-slug: 3.0.0 + + unique-filename@3.0.0: + dependencies: + unique-slug: 4.0.0 + + unique-slug@3.0.0: + dependencies: + imurmurhash: 0.1.4 + + unique-slug@4.0.0: + dependencies: + imurmurhash: 0.1.4 + + universalify@2.0.1: {} + + unix-crypt-td-js@1.1.4: {} + + unpipe@1.0.0: {} + + update-browserslist-db@1.2.3(browserslist@4.28.1): + dependencies: + browserslist: 4.28.1 + escalade: 3.2.0 + picocolors: 1.1.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + urlgrey@1.0.0: + dependencies: + fast-url-parser: 1.1.3 + + util-deprecate@1.0.2: {} + + utils-merge@1.0.1: {} + + uuid@8.3.2: {} + + uuid@9.0.1: {} + + v8-to-istanbul@9.3.0: + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + '@types/istanbul-lib-coverage': 2.0.6 + convert-source-map: 2.0.0 + + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + + validate-npm-package-name@3.0.0: + dependencies: + builtins: 1.0.3 + + validate-npm-package-name@5.0.1: {} + + vary@1.1.2: {} + + vasync@2.2.1: + dependencies: + verror: 1.10.0 + + verror@1.10.0: + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.4.1 + + vis@4.21.0-EOL: + dependencies: + emitter-component: 1.1.2 + hammerjs: 2.0.8 + keycharm: 0.2.0 + moment: 2.30.1 + propagating-hammerjs: 1.5.0 + + walk-up-path@3.0.1: {} + + wbuf@1.7.3: + dependencies: + minimalistic-assert: 1.0.1 + + wcwidth@1.0.1: + dependencies: + defaults: 1.0.4 + + web-streams-polyfill@3.3.3: {} + + webidl-conversions@3.0.1: {} + + websocket-driver@0.7.4: + dependencies: + http-parser-js: 0.5.10 + safe-buffer: 5.2.1 + websocket-extensions: 0.1.4 + + websocket-extensions@0.1.4: {} + + whatwg-encoding@3.1.1: + dependencies: + iconv-lite: 0.6.3 + + whatwg-mimetype@4.0.0: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + which-boxed-primitive@1.1.1: + dependencies: + is-bigint: 1.1.0 + is-boolean-object: 1.2.2 + is-number-object: 1.1.1 + is-string: 1.1.1 + is-symbol: 1.1.1 + + which-builtin-type@1.2.1: + dependencies: + call-bound: 1.0.4 + function.prototype.name: 1.1.8 + has-tostringtag: 1.0.2 + is-async-function: 2.1.1 + is-date-object: 1.1.0 + is-finalizationregistry: 1.1.1 + is-generator-function: 1.1.2 + is-regex: 1.2.1 + is-weakref: 1.1.1 + isarray: 2.0.5 + which-boxed-primitive: 1.1.1 + which-collection: 1.0.2 + which-typed-array: 1.1.20 + + which-collection@1.0.2: + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.4 + + which-typed-array@1.1.20: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 + for-each: 0.3.5 + get-proto: 1.0.1 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + which@3.0.1: + dependencies: + isexe: 2.0.0 + + wide-align@1.1.5: + dependencies: + string-width: 4.2.3 + + windows-release@4.0.0: + dependencies: + execa: 4.1.0 + + word-wrap@1.2.5: {} + + wordwrap@1.0.0: {} + + workerpool@9.3.4: {} + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.3 + string-width: 5.1.2 + strip-ansi: 7.1.2 + + wrappy@1.0.2: {} + + write-file-atomic@4.0.2: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + + write-file-atomic@5.0.1: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 4.1.0 + + xmldoc@2.0.3: + dependencies: + sax: 1.4.4 + + y18n@5.0.8: {} + + yallist@3.1.1: {} + + yallist@4.0.0: {} + + yargs-parser@20.2.9: {} + + yargs-parser@21.1.1: {} + + yargs-unparser@2.0.0: + dependencies: + camelcase: 6.3.0 + decamelize: 4.0.0 + flat: 5.0.2 + is-plain-obj: 2.1.0 + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yocto-queue@0.1.0: {} + + zepto@1.2.0: {} diff --git a/package.json b/package.json index 521b432efcd..9fe35bf5b43 100644 --- a/package.json +++ b/package.json @@ -44,11 +44,5 @@ }, "engines": { "node": ">=18" - }, - "pnpm": { - "overrides": { - "tablesort": "5.6.0", - "cheerio": "1.0.0" - } } } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 695f4efec48..86d481864dc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,10 +4,6 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false -overrides: - tablesort: 5.6.0 - cheerio: 1.0.0 - importers: .: From b8db035eb6d4ea6396a7b319136f81582434bbe2 Mon Sep 17 00:00:00 2001 From: Gautam Sharda Date: Thu, 26 Feb 2026 08:52:56 +0000 Subject: [PATCH 497/527] chore: wrap the extracted HTTP headers in a normalization helper that safely extracts a single string from the potential string arrays returned by Hapi's updated type definitions to fix the TypeScript compilation error --- .../src/request-extractors/hapi.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/handwritten/error-reporting/src/request-extractors/hapi.ts b/handwritten/error-reporting/src/request-extractors/hapi.ts index a190cd2ee08..06ca36f767e 100644 --- a/handwritten/error-reporting/src/request-extractors/hapi.ts +++ b/handwritten/error-reporting/src/request-extractors/hapi.ts @@ -62,6 +62,13 @@ function extractRemoteAddressFromRequest(req: hapi.Request) { return ''; } +/** + * Helper to normalize headers that might be arrays into a single string. + */ +function getSingleHeader(val: string | string[] | undefined): string | undefined { + return Array.isArray(val) ? val[0] : val; +} + /** * This function is used to extract request information from a hapi request * object. This function will not check for the presence of properties on the @@ -93,10 +100,10 @@ export function hapiRequestInformationExtractor(req?: hapi.Request) { returnObject .setMethod(req!.method) .setUrl(urlString) - .setUserAgent(req!.headers['user-agent']) - .setReferrer(req!.headers.referrer) + .setUserAgent(getSingleHeader(req!.headers['user-agent'])) + .setReferrer(getSingleHeader(req!.headers.referrer)) .setStatusCode(attemptToExtractStatusCode(req!)) - .setRemoteAddress(extractRemoteAddressFromRequest(req!)); + .setRemoteAddress(getSingleHeader(extractRemoteAddressFromRequest(req!))); return returnObject; -} +} \ No newline at end of file From 4992041feb6982f6912c24809d1ea4d79d70a441 Mon Sep 17 00:00:00 2001 From: Gautam Sharda Date: Thu, 26 Feb 2026 18:06:18 +0000 Subject: [PATCH 498/527] chore: remove pnpm override --- handwritten/error-reporting/package.json | 6 - handwritten/error-reporting/pnpm-lock.yaml | 9907 -------------------- 2 files changed, 9913 deletions(-) delete mode 100644 handwritten/error-reporting/pnpm-lock.yaml diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index c443eccba6f..1d1746a28d7 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -75,11 +75,5 @@ "tablesort": "5.6.0", "cheerio": "1.0.0" }, - "pnpm": { - "overrides": { - "tablesort": "5.6.0", - "cheerio": "1.0.0" - } - }, "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/handwritten/error-reporting" } diff --git a/handwritten/error-reporting/pnpm-lock.yaml b/handwritten/error-reporting/pnpm-lock.yaml deleted file mode 100644 index 0d2f01d2096..00000000000 --- a/handwritten/error-reporting/pnpm-lock.yaml +++ /dev/null @@ -1,9907 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -overrides: - tablesort: 5.6.0 - cheerio: 1.0.0 - -importers: - - .: - dependencies: - '@google-cloud/common': - specifier: ^6.0.0 - version: 6.0.0 - console-log-level: - specifier: ^1.4.1 - version: 1.4.1 - devDependencies: - '@compodoc/compodoc': - specifier: 1.1.25 - version: 1.1.25(typescript@5.9.3) - '@hapi/hapi': - specifier: ^21.4.4 - version: 21.4.6 - '@types/boom': - specifier: ^7.3.5 - version: 7.3.5 - '@types/console-log-level': - specifier: ^1.4.0 - version: 1.4.5 - '@types/express': - specifier: ^4.17.21 - version: 4.17.25 - '@types/json-stable-stringify': - specifier: ^1.2.0 - version: 1.2.0 - '@types/koa': - specifier: ^3.0.1 - version: 3.0.1 - '@types/mocha': - specifier: ^10.0.10 - version: 10.0.10 - '@types/node': - specifier: ^24.10.1 - version: 24.10.14 - '@types/once': - specifier: ^1.4.5 - version: 1.4.5 - '@types/proxyquire': - specifier: ^1.3.31 - version: 1.3.31 - '@types/restify': - specifier: ^8.0.0 - version: 8.5.12 - '@types/uuid': - specifier: ^8.3.0 - version: 8.3.4 - boom: - specifier: ^7.2.0 - version: 7.3.0 - c8: - specifier: ^10.1.3 - version: 10.1.3 - codecov: - specifier: ^3.6.2 - version: 3.8.3(encoding@0.1.13) - express: - specifier: ^4.17.1 - version: 4.22.1 - gts: - specifier: ^6.0.2 - version: 6.0.2(typescript@5.9.3) - joi: - specifier: ^17.0.0 - version: 17.13.3 - js-green-licenses: - specifier: ^4.0.0 - version: 4.0.0(encoding@0.1.13) - json-stable-stringify: - specifier: ^1.3.0 - version: 1.3.0 - koa: - specifier: ^3.1.1 - version: 3.1.2 - linkinator: - specifier: ^6.1.2 - version: 6.3.0(encoding@0.1.13) - mocha: - specifier: ^11.7.5 - version: 11.7.5 - nock: - specifier: ^14.0.10 - version: 14.0.11 - pack-n-play: - specifier: ^2.0.0 - version: 2.1.0 - proxyquire: - specifier: ^2.1.3 - version: 2.1.3 - restify: - specifier: ^11.0.0 - version: 11.1.0 - typescript: - specifier: ^5.9.3 - version: 5.9.3 - uuid: - specifier: ^8.3.2 - version: 8.3.2 - -packages: - - '@aduh95/viz.js@3.4.0': - resolution: {integrity: sha512-KI2nVf9JdwWCXqK6RVf+9/096G7VWN4Z84mnynlyZKao2xQENW8WNEjLmvdlxS5X8PNWXFC1zqwm7tveOXw/4A==} - - '@angular-devkit/core@18.0.1': - resolution: {integrity: sha512-91eKZoObs+wRgwssw81Y/94Nvixj0WqJkNusBAg+gAfZTCEeJoGGZJkRK8wrONbM79C3Bx8lN/TfSIPRbjnfOQ==} - engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - peerDependencies: - chokidar: ^3.5.2 - peerDependenciesMeta: - chokidar: - optional: true - - '@angular-devkit/schematics@18.0.1': - resolution: {integrity: sha512-AKcEGa3fIgyXT6XTQZWEJZzgmcqlB89fcF7JFOuz4rgQfRmnE2xFw37lKE6ZclCOSiEoffAvgrL8acjdPI1ouw==} - engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - - '@babel/code-frame@7.29.0': - resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.29.0': - resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.29.0': - resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.29.1': - resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-annotate-as-pure@7.27.3': - resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.28.6': - resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-create-class-features-plugin@7.28.6': - resolution: {integrity: sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-create-regexp-features-plugin@7.28.5': - resolution: {integrity: sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-define-polyfill-provider@0.6.6': - resolution: {integrity: sha512-mOAsxeeKkUKayvZR3HeTYD/fICpCPLJrU5ZjelT/PA6WHtNDBOE436YiaEUvHN454bRM3CebhDsIpieCc4texA==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - '@babel/helper-globals@7.28.0': - resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-member-expression-to-functions@7.28.5': - resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.28.6': - resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.28.6': - resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-optimise-call-expression@7.27.1': - resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-plugin-utils@7.28.6': - resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} - engines: {node: '>=6.9.0'} - - '@babel/helper-remap-async-to-generator@7.27.1': - resolution: {integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-replace-supers@7.28.6': - resolution: {integrity: sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-skip-transparent-expression-wrappers@7.27.1': - resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.27.1': - resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.28.5': - resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.27.1': - resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-wrap-function@7.28.6': - resolution: {integrity: sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.28.6': - resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.29.0': - resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5': - resolution: {integrity: sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1': - resolution: {integrity: sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1': - resolution: {integrity: sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1': - resolution: {integrity: sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.13.0 - - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.6': - resolution: {integrity: sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': - resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-assertions@7.28.6': - resolution: {integrity: sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-attributes@7.28.6': - resolution: {integrity: sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-unicode-sets-regex@7.18.6': - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-arrow-functions@7.27.1': - resolution: {integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-async-generator-functions@7.29.0': - resolution: {integrity: sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-async-to-generator@7.28.6': - resolution: {integrity: sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-block-scoped-functions@7.27.1': - resolution: {integrity: sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-block-scoping@7.28.6': - resolution: {integrity: sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-class-properties@7.28.6': - resolution: {integrity: sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-class-static-block@7.28.6': - resolution: {integrity: sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 - - '@babel/plugin-transform-classes@7.28.6': - resolution: {integrity: sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-computed-properties@7.28.6': - resolution: {integrity: sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-destructuring@7.28.5': - resolution: {integrity: sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-dotall-regex@7.28.6': - resolution: {integrity: sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-duplicate-keys@7.27.1': - resolution: {integrity: sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.0': - resolution: {integrity: sha512-zBPcW2lFGxdiD8PUnPwJjag2J9otbcLQzvbiOzDxpYXyCuYX9agOwMPGn1prVH0a4qzhCKu24rlH4c1f7yA8rw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-dynamic-import@7.27.1': - resolution: {integrity: sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-explicit-resource-management@7.28.6': - resolution: {integrity: sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-exponentiation-operator@7.28.6': - resolution: {integrity: sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-export-namespace-from@7.27.1': - resolution: {integrity: sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-for-of@7.27.1': - resolution: {integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-function-name@7.27.1': - resolution: {integrity: sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-json-strings@7.28.6': - resolution: {integrity: sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-literals@7.27.1': - resolution: {integrity: sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-logical-assignment-operators@7.28.6': - resolution: {integrity: sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-member-expression-literals@7.27.1': - resolution: {integrity: sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-amd@7.27.1': - resolution: {integrity: sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-commonjs@7.28.6': - resolution: {integrity: sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-systemjs@7.29.0': - resolution: {integrity: sha512-PrujnVFbOdUpw4UHiVwKvKRLMMic8+eC0CuNlxjsyZUiBjhFdPsewdXCkveh2KqBA9/waD0W1b4hXSOBQJezpQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-umd@7.27.1': - resolution: {integrity: sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-named-capturing-groups-regex@7.29.0': - resolution: {integrity: sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-new-target@7.27.1': - resolution: {integrity: sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-nullish-coalescing-operator@7.28.6': - resolution: {integrity: sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-numeric-separator@7.28.6': - resolution: {integrity: sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-object-rest-spread@7.28.6': - resolution: {integrity: sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-object-super@7.27.1': - resolution: {integrity: sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-optional-catch-binding@7.28.6': - resolution: {integrity: sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-optional-chaining@7.28.6': - resolution: {integrity: sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-parameters@7.27.7': - resolution: {integrity: sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-private-methods@7.28.6': - resolution: {integrity: sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-private-property-in-object@7.28.6': - resolution: {integrity: sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-property-literals@7.27.1': - resolution: {integrity: sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-regenerator@7.29.0': - resolution: {integrity: sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-regexp-modifiers@7.28.6': - resolution: {integrity: sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-reserved-words@7.27.1': - resolution: {integrity: sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-shorthand-properties@7.27.1': - resolution: {integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-spread@7.28.6': - resolution: {integrity: sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-sticky-regex@7.27.1': - resolution: {integrity: sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-template-literals@7.27.1': - resolution: {integrity: sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-typeof-symbol@7.27.1': - resolution: {integrity: sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-escapes@7.27.1': - resolution: {integrity: sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-property-regex@7.28.6': - resolution: {integrity: sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-regex@7.27.1': - resolution: {integrity: sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-sets-regex@7.28.6': - resolution: {integrity: sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/preset-env@7.29.0': - resolution: {integrity: sha512-fNEdfc0yi16lt6IZo2Qxk3knHVdfMYX33czNb4v8yWhemoBhibCpQK/uYHtSKIiO+p/zd3+8fYVXhQdOVV608w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/preset-modules@0.1.6-no-external-plugins': - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - - '@babel/runtime@7.28.6': - resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==} - engines: {node: '>=6.9.0'} - - '@babel/template@7.28.6': - resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.29.0': - resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.29.0': - resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} - engines: {node: '>=6.9.0'} - - '@bcoe/v8-coverage@1.0.2': - resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} - engines: {node: '>=18'} - - '@compodoc/compodoc@1.1.25': - resolution: {integrity: sha512-MsTEv6S0JGkdXc8pFp3yB/r8Lw49YenD0TCXyIVAmQhWNDtGWi4m2TGz02hdiKAlTJ1McQJFuyXWiItTQtje0A==} - engines: {node: '>= 16.0.0'} - hasBin: true - - '@compodoc/live-server@1.2.3': - resolution: {integrity: sha512-hDmntVCyjjaxuJzPzBx68orNZ7TW4BtHWMnXlIVn5dqhK7vuFF/11hspO1cMmc+2QTYgqde1TBcb3127S7Zrow==} - engines: {node: '>=0.10.0'} - hasBin: true - - '@compodoc/ngd-core@2.1.1': - resolution: {integrity: sha512-Z+wE6wWZYVnudRYg6qunDlyh3Orw39Ib66Gvrz5kX5u7So+iu3tr6sQJdqH6yGS3hAjig5avlfhWLlgsb6/x1Q==} - engines: {node: '>= 10.0.0'} - - '@compodoc/ngd-transformer@2.1.3': - resolution: {integrity: sha512-oWxJza7CpWR8/FeWYfE6j+jgncnGBsTWnZLt5rD2GUpsGSQTuGrsFPnmbbaVLgRS5QIVWBJYke7QFBr/7qVMWg==} - engines: {node: '>= 10.0.0'} - - '@eslint-community/eslint-utils@4.9.1': - resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.12.2': - resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@eslint/js@8.57.1': - resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@foliojs-fork/fontkit@1.9.2': - resolution: {integrity: sha512-IfB5EiIb+GZk+77TRB86AHroVaqfq8JRFlUbz0WEwsInyCG0epX2tCPOy+UfaWPju30DeVoUAXfzWXmhn753KA==} - - '@foliojs-fork/linebreak@1.1.2': - resolution: {integrity: sha512-ZPohpxxbuKNE0l/5iBJnOAfUaMACwvUIKCvqtWGKIMv1lPYoNjYXRfhi9FeeV9McBkBLxsMFWTVVhHJA8cyzvg==} - - '@foliojs-fork/pdfkit@0.15.3': - resolution: {integrity: sha512-Obc0Wmy3bm7BINFVvPhcl2rnSSK61DQrlHU8aXnAqDk9LCjWdUOPwhgD8Ywz5VtuFjRxmVOM/kQ/XLIBjDvltw==} - - '@foliojs-fork/restructure@2.0.2': - resolution: {integrity: sha512-59SgoZ3EXbkfSX7b63tsou/SDGzwUEK6MuB5sKqgVK1/XE0fxmpsOb9DQI8LXW3KfGnAjImCGhhEb7uPPAUVNA==} - - '@gar/promisify@1.1.3': - resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} - - '@google-cloud/common@6.0.0': - resolution: {integrity: sha512-IXh04DlkLMxWgYLIUYuHHKXKOUwPDzDgke1ykkkJPe48cGIS9kkL2U/o0pm4ankHLlvzLF/ma1eO86n/bkumIA==} - engines: {node: '>=18'} - - '@google-cloud/projectify@4.0.0': - resolution: {integrity: sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA==} - engines: {node: '>=14.0.0'} - - '@google-cloud/promisify@4.1.0': - resolution: {integrity: sha512-G/FQx5cE/+DqBbOpA5jKsegGwdPniU6PuIEMt+qxWgFxvxuFOzVmp6zYchtYuwAWV5/8Dgs0yAmjvNZv3uXLQg==} - engines: {node: '>=18'} - - '@hapi/accept@6.0.3': - resolution: {integrity: sha512-p72f9k56EuF0n3MwlBNThyVE5PXX40g+aQh+C/xbKrfzahM2Oispv3AXmOIU51t3j77zay1qrX7IIziZXspMlw==} - - '@hapi/ammo@6.0.1': - resolution: {integrity: sha512-pmL+nPod4g58kXrMcsGLp05O2jF4P2Q3GiL8qYV7nKYEh3cGf+rV4P5Jyi2Uq0agGhVU63GtaSAfBEZOlrJn9w==} - - '@hapi/b64@6.0.1': - resolution: {integrity: sha512-ZvjX4JQReUmBheeCq+S9YavcnMMHWqx3S0jHNXWIM1kQDxB9cyfSycpVvjfrKcIS8Mh5N3hmu/YKo4Iag9g2Kw==} - - '@hapi/boom@10.0.1': - resolution: {integrity: sha512-ERcCZaEjdH3OgSJlyjVk8pHIFeus91CjKP3v+MpgBNp5IvGzP2l/bRiD78nqYcKPaZdbKkK5vDBVPd2ohHBlsA==} - - '@hapi/bounce@3.0.2': - resolution: {integrity: sha512-d0XmlTi3H9HFDHhQLjg4F4auL1EY3Wqj7j7/hGDhFFe6xAbnm3qiGrXeT93zZnPH8gH+SKAFYiRzu26xkXcH3g==} - - '@hapi/bourne@3.0.0': - resolution: {integrity: sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w==} - - '@hapi/call@9.0.1': - resolution: {integrity: sha512-uPojQRqEL1GRZR4xXPqcLMujQGaEpyVPRyBlD8Pp5rqgIwLhtveF9PkixiKru2THXvuN8mUrLeet5fqxKAAMGg==} - - '@hapi/catbox-memory@6.0.2': - resolution: {integrity: sha512-H1l4ugoFW/ZRkqeFrIo8p1rWN0PA4MDTfu4JmcoNDvnY975o29mqoZblqFTotxNHlEkMPpIiIBJTV+Mbi+aF0g==} - - '@hapi/catbox@12.1.1': - resolution: {integrity: sha512-hDqYB1J+R0HtZg4iPH3LEnldoaBsar6bYp0EonBmNQ9t5CO+1CqgCul2ZtFveW1ReA5SQuze9GPSU7/aecERhw==} - - '@hapi/content@6.0.0': - resolution: {integrity: sha512-CEhs7j+H0iQffKfe5Htdak5LBOz/Qc8TRh51cF+BFv0qnuph3Em4pjGVzJMkI2gfTDdlJKWJISGWS1rK34POGA==} - - '@hapi/cryptiles@6.0.3': - resolution: {integrity: sha512-r6VKalpbMHz4ci3gFjFysBmhwCg70RpYZy6OkjEpdXzAYnYFX5XsW7n4YMJvuIYpnMwLxGUjK/cBhA7X3JDvXw==} - engines: {node: '>=14.0.0'} - - '@hapi/file@3.0.0': - resolution: {integrity: sha512-w+lKW+yRrLhJu620jT3y+5g2mHqnKfepreykvdOcl9/6up8GrQQn+l3FRTsjHTKbkbfQFkuksHpdv2EcpKcJ4Q==} - - '@hapi/hapi@21.4.6': - resolution: {integrity: sha512-T+DKEZrgZZeFJP0wIcmsU2Tr6TZ7LJExLV+qfFiQsBuqzZRxHwNQ9z4SshkFWocvlf3hIu9iyyB2X5bAdiH6tA==} - engines: {node: '>=14.15.0'} - - '@hapi/heavy@8.0.1': - resolution: {integrity: sha512-gBD/NANosNCOp6RsYTsjo2vhr5eYA3BEuogk6cxY0QdhllkkTaJFYtTXv46xd6qhBVMbMMqcSdtqey+UQU3//w==} - - '@hapi/hoek@11.0.7': - resolution: {integrity: sha512-HV5undWkKzcB4RZUusqOpcgxOaq6VOAH7zhhIr2g3G8NF/MlFO75SjOr2NfuSx0Mh40+1FqCkagKLJRykUWoFQ==} - - '@hapi/hoek@9.3.0': - resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} - - '@hapi/iron@7.0.1': - resolution: {integrity: sha512-tEZnrOujKpS6jLKliyWBl3A9PaE+ppuL/+gkbyPPDb/l2KSKQyH4lhMkVb+sBhwN+qaxxlig01JRqB8dk/mPxQ==} - - '@hapi/mimos@7.0.1': - resolution: {integrity: sha512-b79V+BrG0gJ9zcRx1VGcCI6r6GEzzZUgiGEJVoq5gwzuB2Ig9Cax8dUuBauQCFKvl2YWSWyOc8mZ8HDaJOtkew==} - - '@hapi/nigel@5.0.1': - resolution: {integrity: sha512-uv3dtYuB4IsNaha+tigWmN8mQw/O9Qzl5U26Gm4ZcJVtDdB1AVJOwX3X5wOX+A07qzpEZnOMBAm8jjSqGsU6Nw==} - engines: {node: '>=14.0.0'} - - '@hapi/pez@6.1.0': - resolution: {integrity: sha512-+FE3sFPYuXCpuVeHQ/Qag1b45clR2o54QoonE/gKHv9gukxQ8oJJZPR7o3/ydDTK6racnCJXxOyT1T93FCJMIg==} - - '@hapi/podium@5.0.2': - resolution: {integrity: sha512-T7gf2JYHQQfEfewTQFbsaXoZxSvuXO/QBIGljucUQ/lmPnTTNAepoIKOakWNVWvo2fMEDjycu77r8k6dhreqHA==} - - '@hapi/shot@6.0.2': - resolution: {integrity: sha512-WKK1ShfJTrL1oXC0skoIZQYzvLsyMDEF8lfcWuQBjpjCN29qivr9U36ld1z0nt6edvzv28etNMOqUF4klnHryw==} - - '@hapi/somever@4.1.1': - resolution: {integrity: sha512-lt3QQiDDOVRatS0ionFDNrDIv4eXz58IibQaZQDOg4DqqdNme8oa0iPWcE0+hkq/KTeBCPtEOjDOBKBKwDumVg==} - - '@hapi/statehood@8.2.1': - resolution: {integrity: sha512-xf72TG/QINW26jUu+uL5H+crE1o8GplIgfPWwPZhnAGJzetIVAQEQYvzq+C0aEVHg5/lMMtQ+L9UryuSa5Yjkg==} - - '@hapi/subtext@8.1.1': - resolution: {integrity: sha512-ex1Y2s/KuJktS8Ww0k6XJ5ysSKrzNym4i5pDVuCwlSgHHviHUsT1JNzE6FYhNU9TTHSNdyfue/t2m89bpkX9Jw==} - - '@hapi/teamwork@6.0.1': - resolution: {integrity: sha512-52OXRslUfYwXAOG8k58f2h2ngXYQGP0x5RPOo+eWA/FtyLgHjGMrE3+e9LSXP/0q2YfHAK5wj9aA9DTy1K+kyQ==} - engines: {node: '>=14.0.0'} - - '@hapi/topo@5.1.0': - resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} - - '@hapi/topo@6.0.2': - resolution: {integrity: sha512-KR3rD5inZbGMrHmgPxsJ9dbi6zEK+C3ZwUwTa+eMwWLz7oijWUTWD2pMSNNYJAU6Qq+65NkxXjqHr/7LM2Xkqg==} - - '@hapi/validate@2.0.1': - resolution: {integrity: sha512-NZmXRnrSLK8MQ9y/CMqE9WSspgB9xA41/LlYR0k967aSZebWr4yNrpxIbov12ICwKy4APSlWXZga9jN5p6puPA==} - - '@hapi/vise@5.0.1': - resolution: {integrity: sha512-XZYWzzRtINQLedPYlIkSkUr7m5Ddwlu99V9elh8CSygXstfv3UnWIXT0QD+wmR0VAG34d2Vx3olqcEhRRoTu9A==} - - '@hapi/wreck@18.1.0': - resolution: {integrity: sha512-0z6ZRCmFEfV/MQqkQomJ7sl/hyxvcZM7LtuVqN3vdAO4vM9eBbowl0kaqQj9EJJQab+3Uuh1GxbGIBFy4NfJ4w==} - - '@humanwhocodes/config-array@0.13.0': - resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead - - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - - '@isaacs/string-locale-compare@1.1.0': - resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==} - - '@istanbuljs/schema@0.1.3': - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} - - '@jridgewell/gen-mapping@0.3.13': - resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} - - '@jridgewell/remapping@2.3.5': - resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.5.5': - resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - - '@jridgewell/trace-mapping@0.3.31': - resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} - - '@mswjs/interceptors@0.41.3': - resolution: {integrity: sha512-cXu86tF4VQVfwz8W1SPbhoRyHJkti6mjH/XJIxp40jhO4j2k1m4KYrEykxqWPkFF3vrK4rgQppBh//AwyGSXPA==} - engines: {node: '>=18'} - - '@netflix/nerror@1.1.3': - resolution: {integrity: sha512-b+MGNyP9/LXkapreJzNUzcvuzZslj/RGgdVVJ16P2wSlYatfLycPObImqVJSmNAdyeShvNeM/pl3sVZsObFueg==} - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@npmcli/arborist@6.5.1': - resolution: {integrity: sha512-cdV8pGurLK0CifZRilMJbm2CZ3H4Snk8PAqOngj5qmgFLjEllMLvScSZ3XKfd+CK8fo/hrPHO9zazy9OYdvmUg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true - - '@npmcli/fs@2.1.2': - resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - '@npmcli/fs@3.1.1': - resolution: {integrity: sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/git@4.1.0': - resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/installed-package-contents@2.1.0': - resolution: {integrity: sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true - - '@npmcli/map-workspaces@3.0.6': - resolution: {integrity: sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/metavuln-calculator@5.0.1': - resolution: {integrity: sha512-qb8Q9wIIlEPj3WeA1Lba91R4ZboPL0uspzV0F9uwP+9AYMVB2zOoa7Pbk12g6D2NHAinSbHh6QYmGuRyHZ874Q==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/move-file@2.0.1': - resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This functionality has been moved to @npmcli/fs - - '@npmcli/name-from-folder@2.0.0': - resolution: {integrity: sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/node-gyp@3.0.0': - resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/package-json@4.0.1': - resolution: {integrity: sha512-lRCEGdHZomFsURroh522YvA/2cVb9oPIJrjHanCJZkiasz1BzcnLr3tBJhlV7S86MBJBuAQ33is2D60YitZL2Q==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/promise-spawn@6.0.2': - resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/query@3.1.0': - resolution: {integrity: sha512-C/iR0tk7KSKGldibYIB9x8GtO/0Bd0I2mhOaDb8ucQL/bQVTmGoeREaFj64Z5+iCBRf3dQfed0CjJL7I8iTkiQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/run-script@6.0.2': - resolution: {integrity: sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@open-draft/deferred-promise@2.2.0': - resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} - - '@open-draft/logger@0.3.0': - resolution: {integrity: sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==} - - '@open-draft/until@2.1.0': - resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} - - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - - '@pkgr/core@0.1.2': - resolution: {integrity: sha512-fdDH1LSGfZdTH2sxdpVMw31BanV28K/Gry0cVFxaNP77neJSkd82mM8ErPNYs9e+0O7SdHBLTDzDgwUuy18RnQ==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - - '@sideway/address@4.1.5': - resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} - - '@sideway/formula@3.0.1': - resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} - - '@sideway/pinpoint@2.0.0': - resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} - - '@sigstore/bundle@1.1.0': - resolution: {integrity: sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@sigstore/protobuf-specs@0.2.1': - resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@sigstore/sign@1.0.0': - resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@sigstore/tuf@1.0.3': - resolution: {integrity: sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@sindresorhus/is@4.6.0': - resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} - engines: {node: '>=10'} - - '@szmarczak/http-timer@4.0.6': - resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} - engines: {node: '>=10'} - - '@thednp/event-listener@2.0.12': - resolution: {integrity: sha512-PbW05+EwNfGVy2uwz0vL2xbEmcLhpuBZ2nm0pdLT088gjmY9dySfJOZUtWCmzSPJcVFn3BkgH1m1MiS11AubJA==} - engines: {node: '>=16', pnpm: '>=8.6.0'} - - '@thednp/position-observer@1.1.0': - resolution: {integrity: sha512-WgldP6Dltp2hJkSwp3+IVu05ClK/2IF33iftiQLb7UHcuO6eydjXiIUeOCClgCy3FDCGau2l/LRVg3oOO3Ytcg==} - engines: {node: '>=16', pnpm: '>=8.6.0'} - - '@thednp/shorty@2.0.11': - resolution: {integrity: sha512-D+rLHt1l7c608yCuzXYJ75aDNWeMVbor+m1HO/XibhiWRbCpD8r6TUv3ayJI+feVfCnBNfrH+p6LSDn9l99uBA==} - engines: {node: '>=16', pnpm: '>=8.6.0'} - - '@tootallnate/once@1.1.2': - resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} - engines: {node: '>= 6'} - - '@tootallnate/once@2.0.0': - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} - - '@ts-morph/common@0.23.0': - resolution: {integrity: sha512-m7Lllj9n/S6sOkCkRftpM7L24uvmfXQFedlW/4hENcuJH1HHm9u5EgxZb9uVjQSCGrbBWBkOGgcTxNg36r6ywA==} - - '@tufjs/canonical-json@1.0.0': - resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@tufjs/models@1.0.4': - resolution: {integrity: sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@types/accepts@1.3.7': - resolution: {integrity: sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==} - - '@types/body-parser@1.19.6': - resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} - - '@types/boom@7.3.5': - resolution: {integrity: sha512-jBS0kU2s9W2sx+ILEyO4kxqIYLllqcUXTaVrBctvGptZ+4X3TWkkgY9+AmxdMPKrgiDDdLcfsaQCTu7bniLvgw==} - - '@types/bunyan@1.8.11': - resolution: {integrity: sha512-758fRH7umIMk5qt5ELmRMff4mLDlN+xyYzC+dkPTdKwbSkJFvz6xwyScrytPU0QIBbRRwbiE8/BIg8bpajerNQ==} - - '@types/cacheable-request@6.0.3': - resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} - - '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - - '@types/console-log-level@1.4.5': - resolution: {integrity: sha512-ANoa0gMtzWhKKMYbBt+NM11VqbuwJwpMEkvuZTJ1JcQ7C6Qw/yjV5R4yPkOPjFAULcvX8wenC9BnI5K9jExmiw==} - - '@types/content-disposition@0.5.9': - resolution: {integrity: sha512-8uYXI3Gw35MhiVYhG3s295oihrxRyytcRHjSjqnqZVDDy/xcGBRny7+Xj1Wgfhv5QzRtN2hB2dVRBUX9XW3UcQ==} - - '@types/cookies@0.9.2': - resolution: {integrity: sha512-1AvkDdZM2dbyFybL4fxpuNCaWyv//0AwsuUk2DWeXyM1/5ZKm6W3z6mQi24RZ4l2ucY+bkSHzbDVpySqPGuV8A==} - - '@types/express-serve-static-core@4.19.8': - resolution: {integrity: sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==} - - '@types/express@4.17.25': - resolution: {integrity: sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==} - - '@types/formidable@1.2.8': - resolution: {integrity: sha512-6psvrUy5VDYb+yaPJReF1WrRsz+FBwyJutK9Twz1Efa27tm07bARNIkK2B8ZPWq80dXqpKfrxTO96xrtPp+AuA==} - - '@types/http-assert@1.5.6': - resolution: {integrity: sha512-TTEwmtjgVbYAzZYWyeHPrrtWnfVkm8tQkP8P21uQifPgMRgjrow3XDEYqucuC8SKZJT7pUnhU/JymvjggxO9vw==} - - '@types/http-cache-semantics@4.2.0': - resolution: {integrity: sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q==} - - '@types/http-errors@2.0.5': - resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} - - '@types/istanbul-lib-coverage@2.0.6': - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - '@types/json-stable-stringify@1.2.0': - resolution: {integrity: sha512-PEHY3ohqolHqAzDyB1+31tFaAMnoLN7x/JgdcGmNZ2uvtEJ6rlFCUYNQc0Xe754xxCYLNGZbLUGydSE6tS4S9A==} - deprecated: This is a stub types definition. json-stable-stringify provides its own type definitions, so you do not need this installed. - - '@types/keygrip@1.0.6': - resolution: {integrity: sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==} - - '@types/keyv@3.1.4': - resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} - - '@types/koa-compose@3.2.9': - resolution: {integrity: sha512-BroAZ9FTvPiCy0Pi8tjD1OfJ7bgU1gQf0eR6e1Vm+JJATy9eKOG3hQMFtMciMawiSOVnLMdmUOC46s7HBhSTsA==} - - '@types/koa@3.0.1': - resolution: {integrity: sha512-VkB6WJUQSe0zBpR+Q7/YIUESGp5wPHcaXr0xueU5W0EOUWtlSbblsl+Kl31lyRQ63nIILh0e/7gXjQ09JXJIHw==} - - '@types/mime@1.3.5': - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - - '@types/minimist@1.2.5': - resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} - - '@types/mocha@10.0.10': - resolution: {integrity: sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==} - - '@types/node@24.10.14': - resolution: {integrity: sha512-OowOUbD1lBCOFIPOZ8xnMIhgqA4sCutMiYOmPHL1PTLt5+y1XA+g2+yC9OOyz8p+deMZqPZLxfMjYIfrKsPeFg==} - - '@types/normalize-package-data@2.4.4': - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - - '@types/once@1.4.5': - resolution: {integrity: sha512-6SmAH30ms6q1EhF9scvUzk74ibtev1TGJaKntLSKzOVGBPwlLd/nl/SYFTC5/pVv/rrv1x/JTr6sH5rmVbizAQ==} - - '@types/proxyquire@1.3.31': - resolution: {integrity: sha512-uALowNG2TSM1HNPMMOR0AJwv4aPYPhqB0xlEhkeRTMuto5hjoSPZkvgu1nbPUkz3gEPAHv4sy4DmKsurZiEfRQ==} - - '@types/qs@6.14.0': - resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==} - - '@types/range-parser@1.2.7': - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - - '@types/responselike@1.0.3': - resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} - - '@types/restify@8.5.12': - resolution: {integrity: sha512-tW9y4O/B0gNIhin/88PzLTPgolkzOOrFK0IfgdiiYjGgjXI+PDTwp7QThhQy0p0l5FuNy59NW2PXU3Qx3r5cOQ==} - - '@types/semver@7.7.1': - resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} - - '@types/send@0.17.6': - resolution: {integrity: sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==} - - '@types/send@1.2.1': - resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==} - - '@types/serve-static@1.15.10': - resolution: {integrity: sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==} - - '@types/spdy@3.4.9': - resolution: {integrity: sha512-ZYGzQrZX6j4GEy9x9+e4bjWOPOiZqFPm/3GnZ9xS0SMJqs+FbNiF6hBzr8EjSF2Z6TFY/PzUWOswUiRcZxW3FQ==} - - '@types/uuid@8.3.4': - resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} - - '@typescript-eslint/eslint-plugin@5.62.0': - resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@5.62.0': - resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/scope-manager@5.62.0': - resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@typescript-eslint/type-utils@5.62.0': - resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '*' - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/types@5.62.0': - resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@typescript-eslint/typescript-estree@5.62.0': - resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/utils@5.62.0': - resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - - '@typescript-eslint/visitor-keys@5.62.0': - resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@ungap/structured-clone@1.3.0': - resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - - abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - - abbrev@2.0.0: - resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn@8.16.0: - resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} - engines: {node: '>=0.4.0'} - hasBin: true - - agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - - agent-base@7.1.4: - resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} - engines: {node: '>= 14'} - - agentkeepalive@4.6.0: - resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} - engines: {node: '>= 8.0.0'} - - aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} - - ajv-formats@3.0.1: - resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - - ajv@6.14.0: - resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} - - ajv@8.13.0: - resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} - - ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} - - ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-regex@6.2.2: - resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} - engines: {node: '>=12'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - ansi-styles@6.2.3: - resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} - engines: {node: '>=12'} - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - - apache-crypt@1.2.6: - resolution: {integrity: sha512-072WetlM4blL8PREJVeY+WHiUh1R5VNt2HfceGS8aKqttPHcmqE5pkKuXPz/ULmJOFkc8Hw3kfKl6vy7Qka6DA==} - engines: {node: '>=8'} - - apache-md5@1.1.8: - resolution: {integrity: sha512-FCAJojipPn0bXjuEpjOOOMN8FZDkxfWWp4JGN9mifU2IhxvKyXZYqpzPHdnTSUpmPDy+tsslB6Z1g+Vg6nVbYA==} - engines: {node: '>=8'} - - aproba@2.1.0: - resolution: {integrity: sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew==} - - are-we-there-yet@3.0.1: - resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This package is no longer supported. - - are-we-there-yet@4.0.2: - resolution: {integrity: sha512-ncSWAawFhKMJDTdoAeOV+jyW1VCMj5QIAwULIBV0SSR7B/RLPPEQiknKcg/RIIZlUQrxELpsxMiTUoAQ4sIUyg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - deprecated: This package is no longer supported. - - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - argv@0.0.2: - resolution: {integrity: sha512-dEamhpPEwRUBpLNHeuCm/v+g0anFByHahxodVO/BbAarHVBBg2MccCwf9K+o1Pof+2btdnkJelYVUWjW/VrATw==} - engines: {node: '>=0.6.10'} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - - array-buffer-byte-length@1.0.2: - resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} - engines: {node: '>= 0.4'} - - array-find-index@1.0.2: - resolution: {integrity: sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==} - engines: {node: '>=0.10.0'} - - array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - - arraybuffer.prototype.slice@1.0.4: - resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} - engines: {node: '>= 0.4'} - - arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} - - arrify@2.0.1: - resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} - engines: {node: '>=8'} - - asn1@0.2.6: - resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} - - assert-plus@1.0.0: - resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} - engines: {node: '>=0.8'} - - async-function@1.0.0: - resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} - engines: {node: '>= 0.4'} - - atomic-sleep@1.0.0: - resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} - engines: {node: '>=8.0.0'} - - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} - - babel-plugin-polyfill-corejs2@0.4.15: - resolution: {integrity: sha512-hR3GwrRwHUfYwGfrisXPIDP3JcYfBrW7wKE7+Au6wDYl7fm/ka1NEII6kORzxNU556JjfidZeBsO10kYvtV1aw==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-corejs3@0.14.0: - resolution: {integrity: sha512-AvDcMxJ34W4Wgy4KBIIePQTAOP1Ie2WFwkQp3dB7FQ/f0lI5+nM96zUnYEOE1P9sEg0es5VCP0HxiWu5fUHZAQ==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-regenerator@0.6.6: - resolution: {integrity: sha512-hYm+XLYRMvupxiQzrvXUj7YyvFFVfv5gI0R71AJzudg1g2AI2vyCPPIFEBjk162/wFzti3inBHo7isWFuEVS/A==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - balanced-match@4.0.4: - resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} - engines: {node: 18 || 20 || >=22} - - base64-js@1.3.1: - resolution: {integrity: sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==} - - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - - baseline-browser-mapping@2.10.0: - resolution: {integrity: sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==} - engines: {node: '>=6.0.0'} - hasBin: true - - basic-auth@2.0.1: - resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} - engines: {node: '>= 0.8'} - - batch@0.6.1: - resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} - - bcrypt-pbkdf@1.0.2: - resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} - - bcryptjs@2.4.3: - resolution: {integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==} - - bignumber.js@9.3.1: - resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} - - bin-links@4.0.4: - resolution: {integrity: sha512-cMtq4W5ZsEwcutJrVId+a/tjt8GSbS+h0oNkdl6+6rBuEv8Ot33Bevj5KPm40t309zuhVic8NjpuL42QCiJWWA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - - bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - - body-parser@1.20.4: - resolution: {integrity: sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - - boom@7.3.0: - resolution: {integrity: sha512-Swpoyi2t5+GhOEGw8rEsKvTxFLIDiiKoUc2gsoV6Lyr43LHBIzch3k2MvYUs8RTROrIkVJ3Al0TkaOGjnb+B6A==} - deprecated: This module has moved and is now available at @hapi/boom. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues. - - bootstrap.native@5.1.6: - resolution: {integrity: sha512-bLveDBWhNLoFLsPctVo6yxSRQ1ysmKHBa+1FFMTQuruzTb3y7/InGSoe5lZdOiqZ4L0UOzpdbXMsI+bA5DoRew==} - engines: {node: '>=16', pnpm: '>=8.6.0'} - - brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - - brace-expansion@2.0.2: - resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} - - brace-expansion@5.0.3: - resolution: {integrity: sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==} - engines: {node: 18 || 20 || >=22} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - brotli@1.3.3: - resolution: {integrity: sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==} - - browser-stdout@1.3.1: - resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} - - browserslist@4.28.1: - resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - buffer-equal-constant-time@1.0.1: - resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} - - buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - - buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - - builtins@1.0.3: - resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} - - builtins@5.1.0: - resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} - - bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} - - c8@10.1.3: - resolution: {integrity: sha512-LvcyrOAaOnrrlMpW22n690PUvxiq4Uf9WMhQwNJ9vgagkL/ph1+D4uvjvDA5XCbykrc0sx+ay6pVi9YZ1GnhyA==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - monocart-coverage-reports: ^2 - peerDependenciesMeta: - monocart-coverage-reports: - optional: true - - cacache@16.1.3: - resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - cacache@17.1.4: - resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - cacheable-lookup@5.0.4: - resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} - engines: {node: '>=10.6.0'} - - cacheable-request@7.0.4: - resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} - engines: {node: '>=8'} - - call-bind-apply-helpers@1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} - engines: {node: '>= 0.4'} - - call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} - engines: {node: '>= 0.4'} - - call-bound@1.0.4: - resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} - engines: {node: '>= 0.4'} - - callsite@1.0.0: - resolution: {integrity: sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==} - - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - camelcase-keys@6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} - engines: {node: '>=8'} - - camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - - camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - - caniuse-lite@1.0.30001774: - resolution: {integrity: sha512-DDdwPGz99nmIEv216hKSgLD+D4ikHQHjBC/seF98N9CPqRX4M5mSxT9eTV6oyisnJcuzxtZy4n17yKKQYmYQOA==} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - - chalk@5.6.2: - resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - - chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - - cheerio-select@2.1.0: - resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} - - cheerio@1.0.0: - resolution: {integrity: sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==} - engines: {node: '>=18.17'} - - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - - chokidar@4.0.3: - resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} - engines: {node: '>= 14.16.0'} - - chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} - - clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} - - cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - - cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} - - cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} - - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - - clone-response@1.0.3: - resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} - - clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - - cmd-shim@6.0.3: - resolution: {integrity: sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - code-block-writer@13.0.3: - resolution: {integrity: sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==} - - codecov@3.8.3: - resolution: {integrity: sha512-Y8Hw+V3HgR7V71xWH2vQ9lyS358CbGCldWlJFR0JirqoGtOoas3R3/OclRTvgUYFK29mmJICDPauVKmpqbwhOA==} - engines: {node: '>=4.0'} - deprecated: https://about.codecov.io/blog/codecov-uploader-deprecation-plan/ - hasBin: true - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true - - colors@1.4.0: - resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} - engines: {node: '>=0.1.90'} - - commander@12.1.0: - resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} - engines: {node: '>=18'} - - common-ancestor-path@1.0.1: - resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - connect@3.7.0: - resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} - engines: {node: '>= 0.10.0'} - - console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - - console-log-level@1.4.1: - resolution: {integrity: sha512-VZzbIORbP+PPcN/gg3DXClTLPLg5Slwd5fL2MIc+o1qZ4BXBvWyc6QxPk6T/Mkr6IVjRpoAGf32XxP3ZWMVRcQ==} - - content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} - - content-disposition@1.0.1: - resolution: {integrity: sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==} - engines: {node: '>=18'} - - content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} - - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - cookie-signature@1.0.7: - resolution: {integrity: sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==} - - cookie@0.7.2: - resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} - engines: {node: '>= 0.6'} - - cookies@0.9.1: - resolution: {integrity: sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==} - engines: {node: '>= 0.8'} - - core-js-compat@3.48.0: - resolution: {integrity: sha512-OM4cAF3D6VtH/WkLtWvyNC56EZVXsZdU3iqaMG2B4WvYrlqU831pc4UtG5yp0sE9z8Y02wVN7PjW5Zf9Gt0f1Q==} - - core-util-is@1.0.2: - resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} - - core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - - cors@2.8.6: - resolution: {integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==} - engines: {node: '>= 0.10'} - - cosmiconfig@9.0.0: - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - - cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} - engines: {node: '>= 8'} - - crypto-js@4.2.0: - resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} - - css-select@5.2.2: - resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} - - css-what@6.2.2: - resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} - engines: {node: '>= 6'} - - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - - csv-generate@4.5.0: - resolution: {integrity: sha512-aQr/vmOKyBSBHNwYhAoXw1+kUsPnMSwmYgpNoo36rIXoG1ecWILnvPGZeQ6oUjzrWknZAD3+jfpqYOBAl4x15A==} - - csv-parse@6.1.0: - resolution: {integrity: sha512-CEE+jwpgLn+MmtCpVcPtiCZpVtB6Z2OKPTr34pycYYoL7sxdOkXDdQ4lRiw6ioC0q6BLqhc6cKweCVvral8yhw==} - - csv-stringify@6.6.0: - resolution: {integrity: sha512-YW32lKOmIBgbxtu3g5SaiqWNwa/9ISQt2EcgOq0+RAIFufFp9is6tqNnKahqE5kuKvrnYAzs28r+s6pXJR8Vcw==} - - csv@6.4.1: - resolution: {integrity: sha512-ajGosmTGnTwYyGl8STqZDu7R6LkDf3xL39XiOmliV/GufQeVUxHzTKIm4NOBCwmEuujK7B6isxs4Uqt9GcRCvA==} - engines: {node: '>= 0.1.90'} - - dashdash@1.14.1: - resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} - engines: {node: '>=0.10'} - - data-uri-to-buffer@4.0.1: - resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} - engines: {node: '>= 12'} - - data-view-buffer@1.0.2: - resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} - engines: {node: '>= 0.4'} - - data-view-byte-length@1.0.2: - resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} - engines: {node: '>= 0.4'} - - data-view-byte-offset@1.0.1: - resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} - engines: {node: '>= 0.4'} - - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.4.3: - resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - decache@4.6.2: - resolution: {integrity: sha512-2LPqkLeu8XWHU8qNCS3kcF6sCcb5zIzvWaAHYSvPfwhdd7mHuah29NssMzrTYyHN4F5oFy2ko9OBYxegtU0FEw==} - - decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} - engines: {node: '>=0.10.0'} - - decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - - decamelize@4.0.0: - resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} - engines: {node: '>=10'} - - decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} - - deep-equal@1.0.1: - resolution: {integrity: sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==} - - deep-equal@1.1.2: - resolution: {integrity: sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==} - engines: {node: '>= 0.4'} - - deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} - - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - - defer-to-connect@2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} - engines: {node: '>=10'} - - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - - define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - - define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - - delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - - depd@1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} - engines: {node: '>= 0.6'} - - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - - destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - detect-node@2.1.0: - resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} - - dfa@1.2.0: - resolution: {integrity: sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==} - - diff@7.0.0: - resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} - engines: {node: '>=0.3.1'} - - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - - dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} - - domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - - domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} - - domutils@3.2.2: - resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} - - dot@2.0.0-beta.1: - resolution: {integrity: sha512-kxM7fSnNQTXOmaeGuBSXM8O3fEsBb7XSDBllkGbRwa0lJSJTxxDE/4eSNGLKZUmlFw0f1vJ5qSV2BljrgQtgIA==} - - dtrace-provider@0.8.8: - resolution: {integrity: sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==} - engines: {node: '>=0.10'} - - dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} - - duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - - duplexify@4.1.3: - resolution: {integrity: sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==} - - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - - ecc-jsbn@0.1.2: - resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} - - ecdsa-sig-formatter@1.0.11: - resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} - - ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - - electron-to-chromium@1.5.302: - resolution: {integrity: sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==} - - emitter-component@1.1.2: - resolution: {integrity: sha512-QdXO3nXOzZB4pAjM0n6ZE+R9/+kPpECA/XSELIcc54NeYVnBqIk+4DFiBgK+8QbV3mdvTG6nedl7dTYgO+5wDw==} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - - encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - - encodeurl@2.0.0: - resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} - engines: {node: '>= 0.8'} - - encoding-sniffer@0.2.1: - resolution: {integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==} - - encoding@0.1.13: - resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} - - end-of-stream@1.4.5: - resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} - - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - - entities@6.0.1: - resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} - engines: {node: '>=0.12'} - - entities@7.0.1: - resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} - engines: {node: '>=0.12'} - - env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} - - err-code@2.0.3: - resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} - - error-ex@1.3.4: - resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} - - es-abstract@1.24.1: - resolution: {integrity: sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==} - engines: {node: '>= 0.4'} - - es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - - es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} - engines: {node: '>= 0.4'} - - es-set-tostringtag@2.1.0: - resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} - engines: {node: '>= 0.4'} - - es-to-primitive@1.3.0: - resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} - engines: {node: '>= 0.4'} - - es6-shim@0.35.8: - resolution: {integrity: sha512-Twf7I2v4/1tLoIXMT8HlqaBSS5H2wQTs2wx3MNYCI8K1R1/clXyCazrcVCPm/FuO9cyV8+leEaZOWD5C253NDg==} - - escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} - - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - - escape-regexp-component@1.0.2: - resolution: {integrity: sha512-B0yxafj1D1ZTNEHkFoQxz4iboZSfaZHhaNhIug7GcUCL4ZUrVSJZTmWUAkPOFaYDfi3RNT9XM082TuGE6jpmiQ==} - - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - eslint-config-prettier@9.1.0: - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - - eslint-plugin-es@4.1.0: - resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} - engines: {node: '>=8.10.0'} - peerDependencies: - eslint: '>=4.19.1' - - eslint-plugin-n@15.7.0: - resolution: {integrity: sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==} - engines: {node: '>=12.22.0'} - peerDependencies: - eslint: '>=7.0.0' - - eslint-plugin-prettier@5.2.1: - resolution: {integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - '@types/eslint': '>=8.0.0' - eslint: '>=8.0.0' - eslint-config-prettier: '*' - prettier: '>=3.0.0' - peerDependenciesMeta: - '@types/eslint': - optional: true - eslint-config-prettier: - optional: true - - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-utils@2.1.0: - resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} - engines: {node: '>=6'} - - eslint-utils@3.0.0: - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - - eslint-visitor-keys@1.3.0: - resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} - engines: {node: '>=4'} - - eslint-visitor-keys@2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint@8.57.1: - resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. - hasBin: true - - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - - esquery@1.7.0: - resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - - event-stream@4.0.1: - resolution: {integrity: sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==} - - event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} - - events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - - ewma@2.0.1: - resolution: {integrity: sha512-MYYK17A76cuuyvkR7MnqLW4iFYPEi5Isl2qb8rXiWpLiwFS9dxW/rncuNnjjgSENuVqZQkIuR4+DChVL4g1lnw==} - - execa@4.1.0: - resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} - engines: {node: '>=10'} - - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - - exponential-backoff@3.1.3: - resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} - - express@4.22.1: - resolution: {integrity: sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==} - engines: {node: '>= 0.10.0'} - - extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - - external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - - extsprintf@1.3.0: - resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} - engines: {'0': node >=0.6.0} - - extsprintf@1.4.1: - resolution: {integrity: sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==} - engines: {'0': node >=0.6.0} - - fancy-log@2.0.0: - resolution: {integrity: sha512-9CzxZbACXMUXW13tS0tI8XsGGmxWzO2DmYrGuBJOJ8k8q2K7hwfJA5qHjuPPe8wtsco33YR9wc+Rlr5wYFvhSA==} - engines: {node: '>=10.13.0'} - - fast-decode-uri-component@1.0.1: - resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - fast-diff@1.3.0: - resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - - fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} - engines: {node: '>=8.6.0'} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - - fast-querystring@1.1.2: - resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} - - fast-redact@3.5.0: - resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} - engines: {node: '>=6'} - - fast-url-parser@1.1.3: - resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} - - fastq@1.20.1: - resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} - - faye-websocket@0.11.4: - resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} - engines: {node: '>=0.8.0'} - - fetch-blob@3.2.0: - resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} - engines: {node: ^12.20 || >= 14.13} - - figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} - - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - - fill-keys@1.0.2: - resolution: {integrity: sha512-tcgI872xXjwFF4xgQmLxi76GnwJG3g/3isB1l4/G5Z4zrbddGpBjqZCO9oEAcB5wX0Hj/5iQB3toxfO7in1hHA==} - engines: {node: '>=0.10.0'} - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - finalhandler@1.1.2: - resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} - engines: {node: '>= 0.8'} - - finalhandler@1.3.2: - resolution: {integrity: sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==} - engines: {node: '>= 0.8'} - - find-my-way@7.7.0: - resolution: {integrity: sha512-+SrHpvQ52Q6W9f3wJoJBbAQULJuNEEQwBvlvYwACDhBTLOTMiQ0HYWh4+vC3OivGP2ENcTI1oKlFA2OepJNjhQ==} - engines: {node: '>=14'} - - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - - flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true - - flatted@3.3.3: - resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} - - for-each@0.3.5: - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} - engines: {node: '>= 0.4'} - - foreground-child@3.3.1: - resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} - engines: {node: '>=14'} - - formdata-polyfill@4.0.10: - resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} - engines: {node: '>=12.20.0'} - - formidable@1.2.6: - resolution: {integrity: sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==} - deprecated: 'Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau' - - forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} - - fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} - - fresh@2.0.0: - resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} - engines: {node: '>= 0.8'} - - from@0.1.7: - resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==} - - fs-extra@11.3.3: - resolution: {integrity: sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==} - engines: {node: '>=14.14'} - - fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} - - fs-minipass@3.0.3: - resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - function.prototype.name@1.1.8: - resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} - engines: {node: '>= 0.4'} - - functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - - gauge@4.0.4: - resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This package is no longer supported. - - gauge@5.0.2: - resolution: {integrity: sha512-pMaFftXPtiGIHCJHdcUUx9Rby/rFT/Kkt3fIIGCs+9PMDIljSyRiqraTlxNtBReJRDfUefpa263RQ3vnp5G/LQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - deprecated: This package is no longer supported. - - gaxios@5.1.3: - resolution: {integrity: sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA==} - engines: {node: '>=12'} - - gaxios@6.7.1: - resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==} - engines: {node: '>=14'} - - gaxios@7.1.3: - resolution: {integrity: sha512-YGGyuEdVIjqxkxVH1pUTMY/XtmmsApXrCVv5EU25iX6inEPbV+VakJfLealkBtJN69AQmh1eGOdCl9Sm1UP6XQ==} - engines: {node: '>=18'} - - gcp-metadata@8.1.2: - resolution: {integrity: sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==} - engines: {node: '>=18'} - - generator-function@2.0.1: - resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} - engines: {node: '>= 0.4'} - - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - - get-intrinsic@1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} - engines: {node: '>= 0.4'} - - get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} - - get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} - - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - - get-symbol-description@1.1.0: - resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} - engines: {node: '>= 0.4'} - - getpass@0.1.7: - resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - - glob@10.5.0: - resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} - deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - hasBin: true - - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - - glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - - globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} - engines: {node: '>= 0.4'} - - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - - google-auth-library@10.6.1: - resolution: {integrity: sha512-5awwuLrzNol+pFDmKJd0dKtZ0fPLAtoA5p7YO4ODsDu6ONJUVqbYwvv8y2ZBO5MBNp9TJXigB19710kYpBPdtA==} - engines: {node: '>=18'} - - google-logging-utils@1.1.3: - resolution: {integrity: sha512-eAmLkjDjAFCVXg7A1unxHsLf961m6y17QFqXqAXGj/gVkKFrEICfStRfwUlGNfeCEjNRa32JEWOUTlYXPyyKvA==} - engines: {node: '>=14'} - - gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} - - got@11.8.6: - resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} - engines: {node: '>=10.19.0'} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - - gts@6.0.2: - resolution: {integrity: sha512-lp9+eDzzm6TYqiBpgGY00EInxBHFTJiU5brsVp11qXCJEw7Q6WNNngja0spZeqSFWSquaRuHQUuWxdZLaxnKmw==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - typescript: '>=5' - - hammerjs@2.0.8: - resolution: {integrity: sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ==} - engines: {node: '>=0.8.0'} - - handle-thing@2.0.1: - resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} - - handlebars@4.7.8: - resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} - engines: {node: '>=0.4.7'} - hasBin: true - - hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - - has-bigints@1.1.0: - resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} - engines: {node: '>= 0.4'} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - - has-proto@1.2.0: - resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} - engines: {node: '>= 0.4'} - - has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} - - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} - - has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - - he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - - hoek@6.1.3: - resolution: {integrity: sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ==} - deprecated: This module has moved and is now available at @hapi/hoek. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues. - - hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - - hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} - - hosted-git-info@6.1.3: - resolution: {integrity: sha512-HVJyzUrLIL1c0QmviVh5E8VGyUS7xCFPS6yydaVd1UegW+ibV/CohqTH9MkOLDp5o+rb82DMo77PTuc9F/8GKw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - hpack.js@2.1.6: - resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} - - html-entities@2.6.0: - resolution: {integrity: sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==} - - html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - - htmlparser2@10.1.0: - resolution: {integrity: sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==} - - htmlparser2@9.1.0: - resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==} - - http-assert@1.5.0: - resolution: {integrity: sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==} - engines: {node: '>= 0.8'} - - http-auth-connect@1.0.6: - resolution: {integrity: sha512-yaO0QSCPqGCjPrl3qEEHjJP+lwZ6gMpXLuCBE06eWwcXomkI5TARtu0kxf9teFuBj6iaV3Ybr15jaWUvbzNzHw==} - engines: {node: '>=8'} - - http-auth@4.1.9: - resolution: {integrity: sha512-kvPYxNGc9EKGTXvOMnTBQw2RZfuiSihK/mLw/a4pbtRueTE45S55Lw/3k5CktIf7Ak0veMKEIteDj4YkNmCzmQ==} - engines: {node: '>=8'} - - http-cache-semantics@4.2.0: - resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} - - http-deceiver@1.2.7: - resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} - - http-errors@1.8.1: - resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} - engines: {node: '>= 0.6'} - - http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} - - http-errors@2.0.1: - resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} - engines: {node: '>= 0.8'} - - http-parser-js@0.5.10: - resolution: {integrity: sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==} - - http-proxy-agent@4.0.1: - resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} - engines: {node: '>= 6'} - - http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} - - http-signature@1.4.0: - resolution: {integrity: sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg==} - engines: {node: '>=0.10'} - - http2-wrapper@1.0.3: - resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} - engines: {node: '>=10.19.0'} - - https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - - https-proxy-agent@7.0.6: - resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} - engines: {node: '>= 14'} - - human-signals@1.1.1: - resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} - engines: {node: '>=8.12.0'} - - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - - humanize-ms@1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} - - i18next@23.16.8: - resolution: {integrity: sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg==} - - iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - - iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - - iconv-lite@0.7.2: - resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} - engines: {node: '>=0.10.0'} - - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - - ignore-walk@3.0.4: - resolution: {integrity: sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==} - - ignore-walk@6.0.5: - resolution: {integrity: sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} - - import-fresh@3.3.1: - resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} - engines: {node: '>=6'} - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - - infer-owner@1.0.4: - resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} - - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - - inquirer@7.3.3: - resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} - engines: {node: '>=8.0.0'} - - internal-slot@1.1.0: - resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} - engines: {node: '>= 0.4'} - - ip-address@10.1.0: - resolution: {integrity: sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==} - engines: {node: '>= 12'} - - ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} - - is-arguments@1.2.0: - resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} - engines: {node: '>= 0.4'} - - is-array-buffer@3.0.5: - resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} - engines: {node: '>= 0.4'} - - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - - is-async-function@2.1.1: - resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} - engines: {node: '>= 0.4'} - - is-bigint@1.1.0: - resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} - engines: {node: '>= 0.4'} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - - is-boolean-object@1.2.2: - resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} - engines: {node: '>= 0.4'} - - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - - is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} - engines: {node: '>= 0.4'} - - is-data-view@1.0.2: - resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} - engines: {node: '>= 0.4'} - - is-date-object@1.1.0: - resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} - engines: {node: '>= 0.4'} - - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-finalizationregistry@1.1.1: - resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} - engines: {node: '>= 0.4'} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - is-generator-function@1.1.2: - resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} - engines: {node: '>= 0.4'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - - is-lambda@1.0.1: - resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} - - is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - - is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} - - is-node-process@1.2.0: - resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} - - is-number-object@1.1.1: - resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} - engines: {node: '>= 0.4'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-object@1.0.2: - resolution: {integrity: sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==} - - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - - is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} - - is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} - - is-regex@1.2.1: - resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} - engines: {node: '>= 0.4'} - - is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - - is-shared-array-buffer@1.0.4: - resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} - engines: {node: '>= 0.4'} - - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - is-string@1.1.1: - resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} - engines: {node: '>= 0.4'} - - is-symbol@1.1.1: - resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} - engines: {node: '>= 0.4'} - - is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} - engines: {node: '>= 0.4'} - - is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - - is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} - - is-weakref@1.1.1: - resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} - engines: {node: '>= 0.4'} - - is-weakset@2.0.4: - resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} - engines: {node: '>= 0.4'} - - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - - isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} - - istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} - - istanbul-reports@3.2.0: - resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} - engines: {node: '>=8'} - - jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - - joi@17.13.3: - resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} - - jpeg-exif@1.1.4: - resolution: {integrity: sha512-a+bKEcCjtuW5WTdgeXFzswSrdqi0jk4XlEtZlx5A94wCoBpFjfFTbo/Tra5SpNCl/YFZPvcV1dJc+TAYeg6ROQ==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - - js-green-licenses@4.0.0: - resolution: {integrity: sha512-kcgTOaZmpDpINcRAOKKhjHtBN6zibMVTC8qfPUOpowQtI/6fUgdmwJLJ0ycCb0pUO3ZYKn++56sy8IlG60p5mg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - - js-yaml@4.1.1: - resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} - hasBin: true - - jsbn@0.1.1: - resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} - - jsesc@3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} - engines: {node: '>=6'} - hasBin: true - - json-bigint@1.0.0: - resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} - - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - - json-parse-even-better-errors@3.0.2: - resolution: {integrity: sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - - json-schema@0.4.0: - resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} - - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - - json-stable-stringify@1.3.0: - resolution: {integrity: sha512-qtYiSSFlwot9XHtF9bD9c7rwKjr+RecWT//ZnPvSmEjpV5mmPOCN4j8UjY5hbjNkOwZ/jQv3J6R1/pL7RwgMsg==} - engines: {node: '>= 0.4'} - - json-stringify-nice@1.1.4: - resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} - - json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - jsonc-parser@3.2.1: - resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} - - jsonfile@6.2.0: - resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} - - jsonify@0.0.1: - resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==} - - jsonparse@1.3.1: - resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} - engines: {'0': node >= 0.2.0} - - jsprim@2.0.2: - resolution: {integrity: sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==} - engines: {'0': node >=0.6.0} - - just-diff-apply@5.5.0: - resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==} - - just-diff@6.0.2: - resolution: {integrity: sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==} - - jwa@2.0.1: - resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==} - - jws@4.0.1: - resolution: {integrity: sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==} - - keycharm@0.2.0: - resolution: {integrity: sha512-i/XBRTiLqRConPKioy2oq45vbv04e8x59b0mnsIRQM+7Ec/8BC7UcL5pnC4FMeGb8KwG7q4wOMw7CtNZf5tiIg==} - - keygrip@1.1.0: - resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} - engines: {node: '>= 0.6'} - - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - - kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - - koa-compose@4.1.0: - resolution: {integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==} - - koa@3.1.2: - resolution: {integrity: sha512-2LOQnFKu3m0VxpE+5sb5+BRTSKrXmNxGgxVRiKwD9s5KQB1zID/FRXhtzeV7RT1L2GVpdEEAfVuclFOMGl1ikA==} - engines: {node: '>= 18'} - - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - - linkinator@6.3.0: - resolution: {integrity: sha512-MRKxkkIK5XlK+IKzIhJydJBF72TpygT7atR9CCUZrKl9hpEPVkm3Kcu66M38HJUvUBg4iskzCQENwas7HIiJeg==} - engines: {node: '>=18'} - hasBin: true - - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - - lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - - lodash@4.17.23: - resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} - - log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - - loglevel-plugin-prefix@0.8.4: - resolution: {integrity: sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==} - - loglevel@1.9.2: - resolution: {integrity: sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==} - engines: {node: '>= 0.6.0'} - - lowercase-keys@2.0.0: - resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} - engines: {node: '>=8'} - - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - - lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} - engines: {node: '>=12'} - - lunr@2.3.9: - resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} - - macos-release@2.5.1: - resolution: {integrity: sha512-DXqXhEM7gW59OjZO8NIjBCz9AQ1BEMrfiOAl4AYByHCtVHRF4KoGNO8mqQeM8lRCtQe/UnJ4imO/d2HdkKsd+A==} - engines: {node: '>=6'} - - magic-string@0.30.10: - resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} - - make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} - - make-fetch-happen@10.2.1: - resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - make-fetch-happen@11.1.1: - resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - - map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - - map-stream@0.0.7: - resolution: {integrity: sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==} - - marked@13.0.3: - resolution: {integrity: sha512-rqRix3/TWzE9rIoFGIn8JmsVfhiuC8VIQ8IdX5TfzmeBucdY05/0UlzKaw0eVtpcN/OdVFpBk7CjKGo9iHJ/zA==} - engines: {node: '>= 18'} - hasBin: true - - marked@7.0.3: - resolution: {integrity: sha512-ev2uM40p0zQ/GbvqotfKcSWEa59fJwluGZj5dcaUOwDRrB1F3dncdXy8NWUApk4fi8atU3kTBOwjyjZ0ud0dxw==} - engines: {node: '>= 16'} - hasBin: true - - math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} - - media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} - - media-typer@1.1.0: - resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} - engines: {node: '>= 0.8'} - - meow@13.2.0: - resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} - engines: {node: '>=18'} - - meow@9.0.0: - resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==} - engines: {node: '>=10'} - - merge-descriptors@1.0.3: - resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} - - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} - - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-db@1.54.0: - resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - - mime-types@3.0.2: - resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} - engines: {node: '>=18'} - - mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - - mime@3.0.0: - resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} - engines: {node: '>=10.0.0'} - hasBin: true - - mime@4.1.0: - resolution: {integrity: sha512-X5ju04+cAzsojXKes0B/S4tcYtFAJ6tTMuSPBEn9CPGlrWr8Fiw7qYeLT0XyH80HSoAoqWCaz+MWKh22P7G1cw==} - engines: {node: '>=16'} - hasBin: true - - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - mimic-response@1.0.1: - resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} - engines: {node: '>=4'} - - mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - - min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - - minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} - - minimatch@10.2.4: - resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} - engines: {node: 18 || 20 || >=22} - - minimatch@3.1.5: - resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} - - minimatch@5.1.9: - resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} - engines: {node: '>=10'} - - minimatch@9.0.8: - resolution: {integrity: sha512-reYkDYtj/b19TeqbNZCV4q9t+Yxylf/rYBsLb42SXJatTv4/ylq5lEiAmhA/IToxO7NI2UzNMghHoHuaqDkAjw==} - engines: {node: '>=16 || 14 >=14.17'} - - minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} - - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - - minipass-collect@1.0.2: - resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} - engines: {node: '>= 8'} - - minipass-fetch@2.1.2: - resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - minipass-fetch@3.0.5: - resolution: {integrity: sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - minipass-flush@1.0.5: - resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} - engines: {node: '>= 8'} - - minipass-json-stream@1.0.2: - resolution: {integrity: sha512-myxeeTm57lYs8pH2nxPzmEEg8DGIgW+9mv6D4JZD2pa81I/OBjeU7PtICXV6c9eRGTA5JMDsuIPUZRCyBMYNhg==} - - minipass-pipeline@1.2.4: - resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} - engines: {node: '>=8'} - - minipass-sized@1.0.3: - resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} - engines: {node: '>=8'} - - minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} - - minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - - minipass@7.1.3: - resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} - engines: {node: '>=16 || 14 >=14.17'} - - minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} - - mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - - mkdirp@3.0.1: - resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} - engines: {node: '>=10'} - hasBin: true - - mocha@11.7.5: - resolution: {integrity: sha512-mTT6RgopEYABzXWFx+GcJ+ZQ32kp4fMf0xvpZIIfSq9Z8lC/++MtcCnQ9t5FP2veYEP95FIYSvW+U9fV4xrlig==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - hasBin: true - - module-not-found-error@1.0.1: - resolution: {integrity: sha512-pEk4ECWQXV6z2zjhRZUongnLJNUeGQJ3w6OQ5ctGwD+i5o93qjRQUk2Rt6VdNeu3sEP0AB4LcfvdebpxBRVr4g==} - - moment@2.30.1: - resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} - - morgan@1.10.1: - resolution: {integrity: sha512-223dMRJtI/l25dJKWpgij2cMtywuG/WiUKXdvwfbhGKBhy1puASqXwFzmWZ7+K73vUPoR7SS2Qz2cI/g9MKw0A==} - engines: {node: '>= 0.8.0'} - - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - - nan@2.25.0: - resolution: {integrity: sha512-0M90Ag7Xn5KMLLZ7zliPWP3rT90P6PN+IzVFS0VqmnPktBk3700xUVv8Ikm9EUaUE5SDWdp/BIxdENzVznpm1g==} - - natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - ncp@2.0.0: - resolution: {integrity: sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==} - hasBin: true - - negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - - negotiator@0.6.4: - resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} - engines: {node: '>= 0.6'} - - neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - - nock@14.0.11: - resolution: {integrity: sha512-u5xUnYE+UOOBA6SpELJheMCtj2Laqx15Vl70QxKo43Wz/6nMHXS7PrEioXLjXAwhmawdEMNImwKCcPhBJWbKVw==} - engines: {node: '>=18.20.0 <20 || >=20.12.1'} - - node-domexception@1.0.0: - resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} - engines: {node: '>=10.5.0'} - deprecated: Use your platform's native DOMException instead - - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - - node-fetch@3.3.2: - resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - node-gyp@9.4.1: - resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==} - engines: {node: ^12.13 || ^14.13 || >=16} - hasBin: true - - node-releases@2.0.27: - resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} - - nopt@6.0.0: - resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - hasBin: true - - nopt@7.2.1: - resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true - - normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - - normalize-package-data@3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} - - normalize-package-data@5.0.0: - resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - normalize-url@6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} - - npm-bundled@3.0.1: - resolution: {integrity: sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-install-checks@6.3.0: - resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-normalize-package-bin@3.0.1: - resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-package-arg@10.1.0: - resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-package-arg@8.1.5: - resolution: {integrity: sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==} - engines: {node: '>=10'} - - npm-packlist@7.0.4: - resolution: {integrity: sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-packlist@8.0.2: - resolution: {integrity: sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-pick-manifest@8.0.2: - resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-registry-fetch@14.0.5: - resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - - npmlog@6.0.2: - resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This package is no longer supported. - - npmlog@7.0.1: - resolution: {integrity: sha512-uJ0YFk/mCQpLBt+bxN88AKd+gyqZvZDbtiNxk6Waqcj2aPRyfVx8ITawkyQynxUagInjdYT1+qj4NfA5KJJUxg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - deprecated: This package is no longer supported. - - nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - object-inspect@1.13.4: - resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} - engines: {node: '>= 0.4'} - - object-is@1.1.6: - resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} - engines: {node: '>= 0.4'} - - object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - - object.assign@4.1.7: - resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} - engines: {node: '>= 0.4'} - - obuf@1.1.2: - resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} - - on-exit-leak-free@2.1.2: - resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} - engines: {node: '>=14.0.0'} - - on-finished@2.3.0: - resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} - engines: {node: '>= 0.8'} - - on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - - on-headers@1.1.0: - resolution: {integrity: sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==} - engines: {node: '>= 0.8'} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - - open@8.4.0: - resolution: {integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==} - engines: {node: '>=12'} - - opencollective-postinstall@2.0.3: - resolution: {integrity: sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==} - hasBin: true - - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - - ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - - os-name@4.0.1: - resolution: {integrity: sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw==} - engines: {node: '>=10'} - - os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - - outvariant@1.4.3: - resolution: {integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==} - - own-keys@1.0.1: - resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} - engines: {node: '>= 0.4'} - - p-cancelable@2.1.1: - resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} - engines: {node: '>=8'} - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - - p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} - - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - pack-n-play@2.1.0: - resolution: {integrity: sha512-DwyyTqaEU3/W37DLDv3hlToDzByHxQ7HALCQs72+8D+uHuqOYe/nZDdsju2m2JappDOKxWlKjG7LpsE7eWwiRQ==} - engines: {node: '>=14'} - - package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - - package-json@7.0.0: - resolution: {integrity: sha512-CHJqc94AA8YfSLHGQT3DbvSIuE12NLFekpM4n7LRrAd3dOJtA911+4xe9q6nC3/jcKraq7nNS9VxgtT0KC+diA==} - engines: {node: '>=12'} - - pacote@15.2.0: - resolution: {integrity: sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true - - pako@0.2.9: - resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - - parse-conflict-json@3.0.1: - resolution: {integrity: sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - - parse5-htmlparser2-tree-adapter@7.1.0: - resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==} - - parse5-parser-stream@7.1.2: - resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==} - - parse5@7.3.0: - resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} - - parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - - path-browserify@1.0.1: - resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} - - path-to-regexp@0.1.12: - resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} - - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - pause-stream@0.0.11: - resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} - - pdfmake@0.2.23: - resolution: {integrity: sha512-A/IksoKb/ikOZH1edSDJ/2zBbqJKDghD4+fXn3rT7quvCJDlsZMs3NmIB3eajLMMFU9Bd3bZPVvlUMXhvFI+bQ==} - engines: {node: '>=18'} - - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} - engines: {node: '>=12'} - - pidusage@3.0.2: - resolution: {integrity: sha512-g0VU+y08pKw5M8EZ2rIGiEBaB8wrQMjYGFfW2QVIfyT8V+fq8YFLkvlz4bz5ljvFDJYNFCWT3PWqcRr2FKO81w==} - engines: {node: '>=10'} - - pino-abstract-transport@1.2.0: - resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==} - - pino-std-serializers@6.2.2: - resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} - - pino@8.21.0: - resolution: {integrity: sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==} - hasBin: true - - png-js@1.0.0: - resolution: {integrity: sha512-k+YsbhpA9e+EFfKjTCH3VW6aoKlyNYI6NYdTfDL4CIvFnvsuO84ttonmZE7rc+v23SLTH8XX+5w/Ak9v0xGY4g==} - - possible-typed-array-names@1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} - engines: {node: '>= 0.4'} - - postcss-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} - engines: {node: '>=4'} - - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - prettier-linter-helpers@1.0.1: - resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==} - engines: {node: '>=6.0.0'} - - prettier@3.3.3: - resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} - engines: {node: '>=14'} - hasBin: true - - prismjs@1.30.0: - resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} - engines: {node: '>=6'} - - proc-log@3.0.0: - resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - - process-warning@3.0.0: - resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} - - process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} - - promise-all-reject-late@1.0.1: - resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==} - - promise-call-limit@1.0.2: - resolution: {integrity: sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==} - - promise-inflight@1.0.1: - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} - peerDependencies: - bluebird: '*' - peerDependenciesMeta: - bluebird: - optional: true - - promise-retry@2.0.1: - resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} - engines: {node: '>=10'} - - propagate@2.0.1: - resolution: {integrity: sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==} - engines: {node: '>= 8'} - - propagating-hammerjs@1.5.0: - resolution: {integrity: sha512-3PUXWmomwutoZfydC+lJwK1bKCh6sK6jZGB31RUX6+4EXzsbkDZrK4/sVR7gBrvJaEIwpTVyxQUAd29FKkmVdw==} - - proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} - - proxy-middleware@0.15.0: - resolution: {integrity: sha512-EGCG8SeoIRVMhsqHQUdDigB2i7qU7fCsWASwn54+nPutYO8n4q6EiwMzyfWlC+dzRFExP+kvcnDFdBDHoZBU7Q==} - engines: {node: '>=0.8.0'} - - proxyquire@2.1.3: - resolution: {integrity: sha512-BQWfCqYM+QINd+yawJz23tbBM40VIGXOdDw3X344KcclI/gtBbdWF6SlQ4nK/bYhF9d27KYug9WzljHC6B9Ysg==} - - pump@3.0.3: - resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==} - - punycode@1.4.1: - resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - qs@6.14.2: - resolution: {integrity: sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==} - engines: {node: '>=0.6'} - - qs@6.15.0: - resolution: {integrity: sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==} - engines: {node: '>=0.6'} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - quick-format-unescaped@4.0.4: - resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} - - quick-lru@4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} - engines: {node: '>=8'} - - quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - - randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - - range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} - - raw-body@2.5.3: - resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==} - engines: {node: '>= 0.8'} - - rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true - - read-cmd-shim@4.0.0: - resolution: {integrity: sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - read-package-json-fast@3.0.2: - resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - read-package-json@6.0.4: - resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - deprecated: This package is no longer supported. Please use @npmcli/package-json instead. - - read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} - - read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} - - readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - - readable-stream@4.7.0: - resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - - readdirp@4.1.2: - resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} - engines: {node: '>= 14.18.0'} - - real-require@0.2.0: - resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} - engines: {node: '>= 12.13.0'} - - redent@3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} - engines: {node: '>=8'} - - reflect.getprototypeof@1.0.10: - resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} - engines: {node: '>= 0.4'} - - regenerate-unicode-properties@10.2.2: - resolution: {integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==} - engines: {node: '>=4'} - - regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - - regexp.prototype.flags@1.5.4: - resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} - engines: {node: '>= 0.4'} - - regexpp@3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} - - regexpu-core@6.4.0: - resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==} - engines: {node: '>=4'} - - registry-auth-token@4.2.2: - resolution: {integrity: sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==} - engines: {node: '>=6.0.0'} - - registry-url@5.1.0: - resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==} - engines: {node: '>=8'} - - regjsgen@0.8.0: - resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} - - regjsparser@0.13.0: - resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==} - hasBin: true - - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - - require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - - resolve-alpn@1.2.1: - resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - resolve@1.22.11: - resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} - engines: {node: '>= 0.4'} - hasBin: true - - responselike@2.0.1: - resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} - - restify-errors@8.1.0: - resolution: {integrity: sha512-9ZYZTL9qli2hYykL3newPLf8RLgpSz+4RpZ7KKVSAj4CgCA8PwlfATI4onV13IZ3ldzV3M/2bJom6GQEAwS9aQ==} - - restify@11.1.0: - resolution: {integrity: sha512-ng7uBlj4wpIpshhAjNNSd6JG5Eg32+zgync2gG8OlF4e2xzIflZo54GJ/qLs765OtQaVU+uJPcNOL5Atm2F/dg==} - engines: {node: '>=10.0.0'} - hasBin: true - - restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - - ret@0.2.2: - resolution: {integrity: sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==} - engines: {node: '>=4'} - - retry-request@8.0.2: - resolution: {integrity: sha512-JzFPAfklk1kjR1w76f0QOIhoDkNkSqW8wYKT08n9yysTmZfB+RQ2QoXoTAeOi1HD9ZipTyTAZg3c4pM/jeqgSw==} - engines: {node: '>=18'} - - retry@0.12.0: - resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} - engines: {node: '>= 4'} - - reusify@1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - - rimraf@5.0.10: - resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} - hasBin: true - - run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - rxjs@6.6.7: - resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} - engines: {npm: '>=2.0.0'} - - rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - - safe-array-concat@1.1.3: - resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} - engines: {node: '>=0.4'} - - safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - safe-json-stringify@1.2.0: - resolution: {integrity: sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==} - - safe-push-apply@1.0.0: - resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} - engines: {node: '>= 0.4'} - - safe-regex-test@1.1.0: - resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} - engines: {node: '>= 0.4'} - - safe-regex2@2.0.0: - resolution: {integrity: sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ==} - - safe-stable-stringify@2.5.0: - resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} - engines: {node: '>=10'} - - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - sax@1.4.4: - resolution: {integrity: sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==} - engines: {node: '>=11.0.0'} - - select-hose@2.0.0: - resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} - - semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - semver@7.7.4: - resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} - engines: {node: '>=10'} - hasBin: true - - send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} - engines: {node: '>= 0.8.0'} - - send@0.19.2: - resolution: {integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==} - engines: {node: '>= 0.8.0'} - - send@1.2.1: - resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==} - engines: {node: '>= 18'} - - serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - - serve-index@1.9.2: - resolution: {integrity: sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==} - engines: {node: '>= 0.8.0'} - - serve-static@1.16.3: - resolution: {integrity: sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==} - engines: {node: '>= 0.8.0'} - - server-destroy@1.0.1: - resolution: {integrity: sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==} - - set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - - set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} - - set-proto@1.0.0: - resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} - engines: {node: '>= 0.4'} - - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} - engines: {node: '>= 0.4'} - - side-channel-map@1.0.1: - resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} - engines: {node: '>= 0.4'} - - side-channel-weakmap@1.0.2: - resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} - engines: {node: '>= 0.4'} - - side-channel@1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} - engines: {node: '>= 0.4'} - - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - - sigstore@1.9.0: - resolution: {integrity: sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true - - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - smart-buffer@4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} - engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - - socks-proxy-agent@7.0.0: - resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} - engines: {node: '>= 10'} - - socks@2.8.7: - resolution: {integrity: sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==} - engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} - - sonic-boom@3.8.1: - resolution: {integrity: sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==} - - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} - - spdx-compare@1.0.0: - resolution: {integrity: sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==} - - spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - - spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - - spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - - spdx-license-ids@3.0.23: - resolution: {integrity: sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==} - - spdx-ranges@2.1.1: - resolution: {integrity: sha512-mcdpQFV7UDAgLpXEE/jOMqvK4LBoO0uTQg0uvXUewmEFhpiZx5yJSZITHB8w1ZahKdhfZqP5GPEOKLyEq5p8XA==} - - spdx-satisfies@5.0.1: - resolution: {integrity: sha512-Nwor6W6gzFp8XX4neaKQ7ChV4wmpSh2sSDemMFSzHxpTw460jxFYeOn+jq4ybnSSw/5sc3pjka9MQPouksQNpw==} - - spdy-transport@3.0.0: - resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} - - spdy@4.0.2: - resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} - engines: {node: '>=6.0.0'} - - split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} - - split@1.0.1: - resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} - - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - - srcset@5.0.3: - resolution: {integrity: sha512-AZswtOXIsu0LeHdo6YY7d0r2pCH2Rl1D8ae1utvXUX4GxG3RggsVUAOFX1r8RI4YHFMYb4g89+UBPBv3mNUU2g==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - sshpk@1.18.0: - resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} - engines: {node: '>=0.10.0'} - hasBin: true - - ssri@10.0.6: - resolution: {integrity: sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - ssri@9.0.1: - resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} - engines: {node: '>= 0.6'} - - statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - - statuses@2.0.2: - resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} - engines: {node: '>= 0.8'} - - stop-iteration-iterator@1.1.0: - resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} - engines: {node: '>= 0.4'} - - stream-combiner@0.2.2: - resolution: {integrity: sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==} - - stream-events@1.0.5: - resolution: {integrity: sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==} - - stream-shift@1.0.3: - resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} - - stream-transform@3.4.0: - resolution: {integrity: sha512-QO3OGhKyeIV8p6eRQdG+W6WounFw519zk690hHCNfhgfP9bylVS+NTXsuBc7n+RsGn31UgFPGrWYIgoAbArKEw==} - - strict-event-emitter@0.5.1: - resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - - string.prototype.trim@1.2.10: - resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} - engines: {node: '>= 0.4'} - - string.prototype.trimend@1.0.9: - resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} - engines: {node: '>= 0.4'} - - string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} - - string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-ansi@7.1.2: - resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} - engines: {node: '>=12'} - - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - - strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} - - strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - stubs@3.0.0: - resolution: {integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - svg-pan-zoom@3.6.2: - resolution: {integrity: sha512-JwnvRWfVKw/Xzfe6jriFyfey/lWJLq4bUh2jwoR5ChWQuQoOH8FEh1l/bEp46iHHKHEJWIyFJETbazraxNWECg==} - - synckit@0.9.3: - resolution: {integrity: sha512-JJoOEKTfL1urb1mDoEblhD9NhEbWmq9jHEMEnxoC4ujUaZ4itA8vKgwkFAyNClgxplLi9tsUKX+EduK0p/l7sg==} - engines: {node: ^14.18.0 || >=16.0.0} - - tablesort@5.6.0: - resolution: {integrity: sha512-cZZXK3G089PbpxH8N7vN7Z21SEKqXAaCiSVOmZdR/v7z8TFCsF/OFr0rzjhQuFlQQHy9uQtW9P2oQFJzJFGVrg==} - engines: {node: '>= 16', npm: '>= 8'} - - tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} - engines: {node: '>=10'} - deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - - teeny-request@10.1.0: - resolution: {integrity: sha512-3ZnLvgWF29jikg1sAQ1g0o+lr5JX6sVgYvfUJazn7ZjJroDBUTWp44/+cFVX0bULjv4vci+rBD+oGVAkWqhUbw==} - engines: {node: '>=18'} - - teeny-request@7.1.1: - resolution: {integrity: sha512-iwY6rkW5DDGq8hE2YgNQlKbptYpY5Nn2xecjQiNjOXWbKzPGUfmeUBCSQbbr306d7Z7U2N0TPl+/SwYRfua1Dg==} - engines: {node: '>=10'} - - test-exclude@7.0.2: - resolution: {integrity: sha512-u9E6A+ZDYdp7a4WnarkXPZOx8Ilz46+kby6p1yZ8zsGTz9gYa6FIS7lj2oezzNKmtdyyJNNmmXDppga5GB7kSw==} - engines: {node: '>=18'} - - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - - thread-stream@2.7.0: - resolution: {integrity: sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==} - - through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - - tiny-inflate@1.0.3: - resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} - - tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} - - tmp@0.2.3: - resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} - engines: {node: '>=14.14'} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - - traverse@0.6.11: - resolution: {integrity: sha512-vxXDZg8/+p3gblxB6BhhG5yWVn1kGRlaL8O78UDXc3wRnPizB5g83dcvWV1jpDMIPnjZjOFuxlMmE82XJ4407w==} - engines: {node: '>= 0.4'} - - treeverse@3.0.0: - resolution: {integrity: sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - trim-newlines@3.0.1: - resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} - engines: {node: '>=8'} - - ts-morph@22.0.0: - resolution: {integrity: sha512-M9MqFGZREyeb5fTl6gNHKZLqBQA0TjA1lea+CR48R8EBTDuWrNqW6ccC5QvjNR4s6wDumD3LTCjOFSp9iwlzaw==} - - tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - - tsscmp@1.0.6: - resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} - engines: {node: '>=0.6.x'} - - tsutils@3.21.0: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - - tuf-js@1.1.7: - resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - tweetnacl@0.14.5: - resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} - - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - - type-fest@0.18.1: - resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} - engines: {node: '>=10'} - - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - - type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - - type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - - type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} - - type-is@2.0.1: - resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} - engines: {node: '>= 0.6'} - - typed-array-buffer@1.0.3: - resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} - engines: {node: '>= 0.4'} - - typed-array-byte-length@1.0.3: - resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} - engines: {node: '>= 0.4'} - - typed-array-byte-offset@1.0.4: - resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} - engines: {node: '>= 0.4'} - - typed-array-length@1.0.7: - resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} - engines: {node: '>= 0.4'} - - typedarray.prototype.slice@1.0.5: - resolution: {integrity: sha512-q7QNVDGTdl702bVFiI5eY4l/HkgCM6at9KhcFbgUAzezHFbOVy4+0O/lCjsABEQwbZPravVfBIiBVGo89yzHFg==} - engines: {node: '>= 0.4'} - - typescript@5.9.3: - resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} - engines: {node: '>=14.17'} - hasBin: true - - uglify-js@3.19.3: - resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} - engines: {node: '>=0.8.0'} - hasBin: true - - unbox-primitive@1.1.0: - resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} - engines: {node: '>= 0.4'} - - undici-types@7.16.0: - resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} - - undici@6.23.0: - resolution: {integrity: sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==} - engines: {node: '>=18.17'} - - unicode-canonical-property-names-ecmascript@2.0.1: - resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} - engines: {node: '>=4'} - - unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} - - unicode-match-property-value-ecmascript@2.2.1: - resolution: {integrity: sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==} - engines: {node: '>=4'} - - unicode-properties@1.4.1: - resolution: {integrity: sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==} - - unicode-property-aliases-ecmascript@2.2.0: - resolution: {integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==} - engines: {node: '>=4'} - - unicode-trie@2.0.0: - resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} - - unique-filename@2.0.1: - resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - unique-filename@3.0.0: - resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - unique-slug@3.0.0: - resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - unique-slug@4.0.0: - resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - - unix-crypt-td-js@1.1.4: - resolution: {integrity: sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw==} - - unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - - update-browserslist-db@1.2.3: - resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - urlgrey@1.0.0: - resolution: {integrity: sha512-hJfIzMPJmI9IlLkby8QrsCykQ+SXDeO2W5Q9QTW3QpqZVTx4a/K7p8/5q+/isD8vsbVaFgql/gvAoQCRQ2Cb5w==} - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - - uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - - uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true - - v8-to-istanbul@9.3.0: - resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} - engines: {node: '>=10.12.0'} - - validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - - validate-npm-package-name@3.0.0: - resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} - - validate-npm-package-name@5.0.1: - resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} - - vasync@2.2.1: - resolution: {integrity: sha512-Hq72JaTpcTFdWiNA4Y22Amej2GH3BFmBaKPPlDZ4/oC8HNn2ISHLkFrJU4Ds8R3jcUi7oo5Y9jcMHKjES+N9wQ==} - engines: {'0': node >=0.6.0} - - verror@1.10.0: - resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} - engines: {'0': node >=0.6.0} - - vis@4.21.0-EOL: - resolution: {integrity: sha512-JVS1mywKg5S88XbkDJPfCb3n+vlg5fMA8Ae2hzs3KHAwD4ryM5qwlbFZ6ReDfY8te7I4NLCpuCoywJQEehvJlQ==} - deprecated: Please consider using https://github.com/visjs - - walk-up-path@3.0.1: - resolution: {integrity: sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==} - - wbuf@1.7.3: - resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} - - wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - - web-streams-polyfill@3.3.3: - resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} - engines: {node: '>= 8'} - - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - - websocket-driver@0.7.4: - resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} - engines: {node: '>=0.8.0'} - - websocket-extensions@0.1.4: - resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} - engines: {node: '>=0.8.0'} - - whatwg-encoding@3.1.1: - resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} - engines: {node: '>=18'} - deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation - - whatwg-mimetype@4.0.0: - resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} - engines: {node: '>=18'} - - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - - which-boxed-primitive@1.1.1: - resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} - engines: {node: '>= 0.4'} - - which-builtin-type@1.2.1: - resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} - engines: {node: '>= 0.4'} - - which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} - - which-typed-array@1.1.20: - resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} - engines: {node: '>= 0.4'} - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - which@3.0.1: - resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true - - wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} - - windows-release@4.0.0: - resolution: {integrity: sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==} - engines: {node: '>=10'} - - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - - wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - - workerpool@9.3.4: - resolution: {integrity: sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg==} - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - write-file-atomic@5.0.1: - resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - xmldoc@2.0.3: - resolution: {integrity: sha512-6gRk4NY/Jvg67xn7OzJuxLRsGgiXBaPUQplVJ/9l99uIugxh4FTOewYz5ic8WScj7Xx/2WvhENiQKwkK9RpE4w==} - engines: {node: '>=12.0.0'} - - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - - yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - - yargs-unparser@2.0.0: - resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} - engines: {node: '>=10'} - - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - - zepto@1.2.0: - resolution: {integrity: sha512-C1x6lfvBICFTQIMgbt3JqMOno3VOtkWat/xEakLTOurskYIHPmzJrzd1e8BnmtdDVJlGuk5D+FxyCA8MPmkIyA==} - -snapshots: - - '@aduh95/viz.js@3.4.0': {} - - '@angular-devkit/core@18.0.1(chokidar@3.6.0)': - dependencies: - ajv: 8.13.0 - ajv-formats: 3.0.1(ajv@8.13.0) - jsonc-parser: 3.2.1 - picomatch: 4.0.2 - rxjs: 7.8.1 - source-map: 0.7.4 - optionalDependencies: - chokidar: 3.6.0 - - '@angular-devkit/schematics@18.0.1(chokidar@3.6.0)': - dependencies: - '@angular-devkit/core': 18.0.1(chokidar@3.6.0) - jsonc-parser: 3.2.1 - magic-string: 0.30.10 - ora: 5.4.1 - rxjs: 7.8.1 - transitivePeerDependencies: - - chokidar - - '@babel/code-frame@7.29.0': - dependencies: - '@babel/helper-validator-identifier': 7.28.5 - js-tokens: 4.0.0 - picocolors: 1.1.1 - - '@babel/compat-data@7.29.0': {} - - '@babel/core@7.29.0': - dependencies: - '@babel/code-frame': 7.29.0 - '@babel/generator': 7.29.1 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helpers': 7.28.6 - '@babel/parser': 7.29.0 - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - '@jridgewell/remapping': 2.3.5 - convert-source-map: 2.0.0 - debug: 4.4.3(supports-color@8.1.1) - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.29.1': - dependencies: - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - jsesc: 3.1.0 - - '@babel/helper-annotate-as-pure@7.27.3': - dependencies: - '@babel/types': 7.29.0 - - '@babel/helper-compilation-targets@7.28.6': - dependencies: - '@babel/compat-data': 7.29.0 - '@babel/helper-validator-option': 7.27.1 - browserslist: 4.28.1 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-create-class-features-plugin@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-member-expression-to-functions': 7.28.5 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.29.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - regexpu-core: 6.4.0 - semver: 6.3.1 - - '@babel/helper-define-polyfill-provider@0.6.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - debug: 4.4.3(supports-color@8.1.1) - lodash.debounce: 4.0.8 - resolve: 1.22.11 - transitivePeerDependencies: - - supports-color - - '@babel/helper-globals@7.28.0': {} - - '@babel/helper-member-expression-to-functions@7.28.5': - dependencies: - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-imports@7.28.6': - dependencies: - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-optimise-call-expression@7.27.1': - dependencies: - '@babel/types': 7.29.0 - - '@babel/helper-plugin-utils@7.28.6': {} - - '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-wrap-function': 7.28.6 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-replace-supers@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-member-expression-to-functions': 7.28.5 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-skip-transparent-expression-wrappers@7.27.1': - dependencies: - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-string-parser@7.27.1': {} - - '@babel/helper-validator-identifier@7.28.5': {} - - '@babel/helper-validator-option@7.27.1': {} - - '@babel/helper-wrap-function@7.28.6': - dependencies: - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/helpers@7.28.6': - dependencies: - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 - - '@babel/parser@7.29.0': - dependencies: - '@babel/types': 7.29.0 - - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - - '@babel/plugin-syntax-import-assertions@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-import-attributes@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-async-generator-functions@7.29.0(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-async-to-generator@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-block-scoping@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-class-properties@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-class-static-block@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-classes@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-globals': 7.28.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-computed-properties@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/template': 7.28.6 - - '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-dotall-regex@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.0(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-explicit-resource-management@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-exponentiation-operator@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-json-strings@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-literals@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-logical-assignment-operators@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-commonjs@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-systemjs@7.29.0(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-named-capturing-groups-regex@7.29.0(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-nullish-coalescing-operator@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-numeric-separator@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-object-rest-spread@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-optional-catch-binding@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-optional-chaining@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-private-methods@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-private-property-in-object@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-regenerator@7.29.0(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-regexp-modifiers@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-spread@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-unicode-property-regex@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-unicode-sets-regex@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/preset-env@7.29.0(@babel/core@7.29.0)': - dependencies: - '@babel/compat-data': 7.29.0 - '@babel/core': 7.29.0 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.29.0) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0) - '@babel/plugin-syntax-import-assertions': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-syntax-import-attributes': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.29.0) - '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-block-scoping': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-class-properties': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-class-static-block': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-classes': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-computed-properties': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) - '@babel/plugin-transform-dotall-regex': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-explicit-resource-management': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-exponentiation-operator': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-json-strings': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-logical-assignment-operators': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-modules-systemjs': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-nullish-coalescing-operator': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-numeric-separator': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-object-rest-spread': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-optional-catch-binding': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) - '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-regenerator': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-regexp-modifiers': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-spread': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-unicode-property-regex': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-unicode-sets-regex': 7.28.6(@babel/core@7.29.0) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.29.0) - babel-plugin-polyfill-corejs2: 0.4.15(@babel/core@7.29.0) - babel-plugin-polyfill-corejs3: 0.14.0(@babel/core@7.29.0) - babel-plugin-polyfill-regenerator: 0.6.6(@babel/core@7.29.0) - core-js-compat: 3.48.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/types': 7.29.0 - esutils: 2.0.3 - - '@babel/runtime@7.28.6': {} - - '@babel/template@7.28.6': - dependencies: - '@babel/code-frame': 7.29.0 - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 - - '@babel/traverse@7.29.0': - dependencies: - '@babel/code-frame': 7.29.0 - '@babel/generator': 7.29.1 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.29.0 - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 - debug: 4.4.3(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - '@babel/types@7.29.0': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 - - '@bcoe/v8-coverage@1.0.2': {} - - '@compodoc/compodoc@1.1.25(typescript@5.9.3)': - dependencies: - '@angular-devkit/schematics': 18.0.1(chokidar@3.6.0) - '@babel/core': 7.29.0 - '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.29.0) - '@babel/preset-env': 7.29.0(@babel/core@7.29.0) - '@compodoc/live-server': 1.2.3 - '@compodoc/ngd-transformer': 2.1.3 - bootstrap.native: 5.1.6 - chalk: 4.1.2 - cheerio: 1.0.0 - chokidar: 3.6.0 - colors: 1.4.0 - commander: 12.1.0 - cosmiconfig: 9.0.0(typescript@5.9.3) - decache: 4.6.2 - es6-shim: 0.35.8 - fancy-log: 2.0.0 - fast-glob: 3.3.3 - fs-extra: 11.3.3 - glob: 10.5.0 - handlebars: 4.7.8 - html-entities: 2.6.0 - i18next: 23.16.8 - json5: 2.2.3 - lodash: 4.17.23 - loglevel: 1.9.2 - loglevel-plugin-prefix: 0.8.4 - lunr: 2.3.9 - marked: 7.0.3 - minimist: 1.2.8 - opencollective-postinstall: 2.0.3 - os-name: 4.0.1 - pdfmake: 0.2.23 - prismjs: 1.30.0 - semver: 7.7.4 - svg-pan-zoom: 3.6.2 - tablesort: 5.6.0 - traverse: 0.6.11 - ts-morph: 22.0.0 - uuid: 9.0.1 - vis: 4.21.0-EOL - zepto: 1.2.0 - transitivePeerDependencies: - - supports-color - - typescript - - '@compodoc/live-server@1.2.3': - dependencies: - chokidar: 3.6.0 - colors: 1.4.0 - connect: 3.7.0 - cors: 2.8.6 - event-stream: 4.0.1 - faye-websocket: 0.11.4 - http-auth: 4.1.9 - http-auth-connect: 1.0.6 - morgan: 1.10.1 - object-assign: 4.1.1 - open: 8.4.0 - proxy-middleware: 0.15.0 - send: 1.2.1 - serve-index: 1.9.2 - transitivePeerDependencies: - - supports-color - - '@compodoc/ngd-core@2.1.1': - dependencies: - ansi-colors: 4.1.3 - fancy-log: 2.0.0 - typescript: 5.9.3 - - '@compodoc/ngd-transformer@2.1.3': - dependencies: - '@aduh95/viz.js': 3.4.0 - '@compodoc/ngd-core': 2.1.1 - dot: 2.0.0-beta.1 - fs-extra: 11.3.3 - - '@eslint-community/eslint-utils@4.9.1(eslint@8.57.1)': - dependencies: - eslint: 8.57.1 - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.12.2': {} - - '@eslint/eslintrc@2.1.4': - dependencies: - ajv: 6.14.0 - debug: 4.4.3(supports-color@8.1.1) - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.2 - import-fresh: 3.3.1 - js-yaml: 4.1.1 - minimatch: 3.1.5 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/js@8.57.1': {} - - '@foliojs-fork/fontkit@1.9.2': - dependencies: - '@foliojs-fork/restructure': 2.0.2 - brotli: 1.3.3 - clone: 1.0.4 - deep-equal: 1.1.2 - dfa: 1.2.0 - tiny-inflate: 1.0.3 - unicode-properties: 1.4.1 - unicode-trie: 2.0.0 - - '@foliojs-fork/linebreak@1.1.2': - dependencies: - base64-js: 1.3.1 - unicode-trie: 2.0.0 - - '@foliojs-fork/pdfkit@0.15.3': - dependencies: - '@foliojs-fork/fontkit': 1.9.2 - '@foliojs-fork/linebreak': 1.1.2 - crypto-js: 4.2.0 - jpeg-exif: 1.1.4 - png-js: 1.0.0 - - '@foliojs-fork/restructure@2.0.2': {} - - '@gar/promisify@1.1.3': {} - - '@google-cloud/common@6.0.0': - dependencies: - '@google-cloud/projectify': 4.0.0 - '@google-cloud/promisify': 4.1.0 - arrify: 2.0.1 - duplexify: 4.1.3 - extend: 3.0.2 - google-auth-library: 10.6.1 - html-entities: 2.6.0 - retry-request: 8.0.2 - teeny-request: 10.1.0 - transitivePeerDependencies: - - supports-color - - '@google-cloud/projectify@4.0.0': {} - - '@google-cloud/promisify@4.1.0': {} - - '@hapi/accept@6.0.3': - dependencies: - '@hapi/boom': 10.0.1 - '@hapi/hoek': 11.0.7 - - '@hapi/ammo@6.0.1': - dependencies: - '@hapi/hoek': 11.0.7 - - '@hapi/b64@6.0.1': - dependencies: - '@hapi/hoek': 11.0.7 - - '@hapi/boom@10.0.1': - dependencies: - '@hapi/hoek': 11.0.7 - - '@hapi/bounce@3.0.2': - dependencies: - '@hapi/boom': 10.0.1 - '@hapi/hoek': 11.0.7 - - '@hapi/bourne@3.0.0': {} - - '@hapi/call@9.0.1': - dependencies: - '@hapi/boom': 10.0.1 - '@hapi/hoek': 11.0.7 - - '@hapi/catbox-memory@6.0.2': - dependencies: - '@hapi/boom': 10.0.1 - '@hapi/hoek': 11.0.7 - - '@hapi/catbox@12.1.1': - dependencies: - '@hapi/boom': 10.0.1 - '@hapi/hoek': 11.0.7 - '@hapi/podium': 5.0.2 - '@hapi/validate': 2.0.1 - - '@hapi/content@6.0.0': - dependencies: - '@hapi/boom': 10.0.1 - - '@hapi/cryptiles@6.0.3': - dependencies: - '@hapi/boom': 10.0.1 - - '@hapi/file@3.0.0': {} - - '@hapi/hapi@21.4.6': - dependencies: - '@hapi/accept': 6.0.3 - '@hapi/ammo': 6.0.1 - '@hapi/boom': 10.0.1 - '@hapi/bounce': 3.0.2 - '@hapi/call': 9.0.1 - '@hapi/catbox': 12.1.1 - '@hapi/catbox-memory': 6.0.2 - '@hapi/heavy': 8.0.1 - '@hapi/hoek': 11.0.7 - '@hapi/mimos': 7.0.1 - '@hapi/podium': 5.0.2 - '@hapi/shot': 6.0.2 - '@hapi/somever': 4.1.1 - '@hapi/statehood': 8.2.1 - '@hapi/subtext': 8.1.1 - '@hapi/teamwork': 6.0.1 - '@hapi/topo': 6.0.2 - '@hapi/validate': 2.0.1 - - '@hapi/heavy@8.0.1': - dependencies: - '@hapi/boom': 10.0.1 - '@hapi/hoek': 11.0.7 - '@hapi/validate': 2.0.1 - - '@hapi/hoek@11.0.7': {} - - '@hapi/hoek@9.3.0': {} - - '@hapi/iron@7.0.1': - dependencies: - '@hapi/b64': 6.0.1 - '@hapi/boom': 10.0.1 - '@hapi/bourne': 3.0.0 - '@hapi/cryptiles': 6.0.3 - '@hapi/hoek': 11.0.7 - - '@hapi/mimos@7.0.1': - dependencies: - '@hapi/hoek': 11.0.7 - mime-db: 1.54.0 - - '@hapi/nigel@5.0.1': - dependencies: - '@hapi/hoek': 11.0.7 - '@hapi/vise': 5.0.1 - - '@hapi/pez@6.1.0': - dependencies: - '@hapi/b64': 6.0.1 - '@hapi/boom': 10.0.1 - '@hapi/content': 6.0.0 - '@hapi/hoek': 11.0.7 - '@hapi/nigel': 5.0.1 - - '@hapi/podium@5.0.2': - dependencies: - '@hapi/hoek': 11.0.7 - '@hapi/teamwork': 6.0.1 - '@hapi/validate': 2.0.1 - - '@hapi/shot@6.0.2': - dependencies: - '@hapi/hoek': 11.0.7 - '@hapi/validate': 2.0.1 - - '@hapi/somever@4.1.1': - dependencies: - '@hapi/bounce': 3.0.2 - '@hapi/hoek': 11.0.7 - - '@hapi/statehood@8.2.1': - dependencies: - '@hapi/boom': 10.0.1 - '@hapi/bounce': 3.0.2 - '@hapi/bourne': 3.0.0 - '@hapi/cryptiles': 6.0.3 - '@hapi/hoek': 11.0.7 - '@hapi/iron': 7.0.1 - '@hapi/validate': 2.0.1 - - '@hapi/subtext@8.1.1': - dependencies: - '@hapi/boom': 10.0.1 - '@hapi/bourne': 3.0.0 - '@hapi/content': 6.0.0 - '@hapi/file': 3.0.0 - '@hapi/hoek': 11.0.7 - '@hapi/pez': 6.1.0 - '@hapi/wreck': 18.1.0 - - '@hapi/teamwork@6.0.1': {} - - '@hapi/topo@5.1.0': - dependencies: - '@hapi/hoek': 9.3.0 - - '@hapi/topo@6.0.2': - dependencies: - '@hapi/hoek': 11.0.7 - - '@hapi/validate@2.0.1': - dependencies: - '@hapi/hoek': 11.0.7 - '@hapi/topo': 6.0.2 - - '@hapi/vise@5.0.1': - dependencies: - '@hapi/hoek': 11.0.7 - - '@hapi/wreck@18.1.0': - dependencies: - '@hapi/boom': 10.0.1 - '@hapi/bourne': 3.0.0 - '@hapi/hoek': 11.0.7 - - '@humanwhocodes/config-array@0.13.0': - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.4.3(supports-color@8.1.1) - minimatch: 3.1.5 - transitivePeerDependencies: - - supports-color - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/object-schema@2.0.3': {} - - '@isaacs/cliui@8.0.2': - dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.2 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 - - '@isaacs/string-locale-compare@1.1.0': {} - - '@istanbuljs/schema@0.1.3': {} - - '@jridgewell/gen-mapping@0.3.13': - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/remapping@2.3.5': - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/sourcemap-codec@1.5.5': {} - - '@jridgewell/trace-mapping@0.3.31': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 - - '@mswjs/interceptors@0.41.3': - dependencies: - '@open-draft/deferred-promise': 2.2.0 - '@open-draft/logger': 0.3.0 - '@open-draft/until': 2.1.0 - is-node-process: 1.2.0 - outvariant: 1.4.3 - strict-event-emitter: 0.5.1 - - '@netflix/nerror@1.1.3': - dependencies: - assert-plus: 1.0.0 - extsprintf: 1.4.1 - lodash: 4.17.23 - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.20.1 - - '@npmcli/arborist@6.5.1': - dependencies: - '@isaacs/string-locale-compare': 1.1.0 - '@npmcli/fs': 3.1.1 - '@npmcli/installed-package-contents': 2.1.0 - '@npmcli/map-workspaces': 3.0.6 - '@npmcli/metavuln-calculator': 5.0.1 - '@npmcli/name-from-folder': 2.0.0 - '@npmcli/node-gyp': 3.0.0 - '@npmcli/package-json': 4.0.1 - '@npmcli/query': 3.1.0 - '@npmcli/run-script': 6.0.2 - bin-links: 4.0.4 - cacache: 17.1.4 - common-ancestor-path: 1.0.1 - hosted-git-info: 6.1.3 - json-parse-even-better-errors: 3.0.2 - json-stringify-nice: 1.1.4 - minimatch: 9.0.8 - nopt: 7.2.1 - npm-install-checks: 6.3.0 - npm-package-arg: 10.1.0 - npm-pick-manifest: 8.0.2 - npm-registry-fetch: 14.0.5 - npmlog: 7.0.1 - pacote: 15.2.0 - parse-conflict-json: 3.0.1 - proc-log: 3.0.0 - promise-all-reject-late: 1.0.1 - promise-call-limit: 1.0.2 - read-package-json-fast: 3.0.2 - semver: 7.7.4 - ssri: 10.0.6 - treeverse: 3.0.0 - walk-up-path: 3.0.1 - transitivePeerDependencies: - - bluebird - - supports-color - - '@npmcli/fs@2.1.2': - dependencies: - '@gar/promisify': 1.1.3 - semver: 7.7.4 - - '@npmcli/fs@3.1.1': - dependencies: - semver: 7.7.4 - - '@npmcli/git@4.1.0': - dependencies: - '@npmcli/promise-spawn': 6.0.2 - lru-cache: 7.18.3 - npm-pick-manifest: 8.0.2 - proc-log: 3.0.0 - promise-inflight: 1.0.1 - promise-retry: 2.0.1 - semver: 7.7.4 - which: 3.0.1 - transitivePeerDependencies: - - bluebird - - '@npmcli/installed-package-contents@2.1.0': - dependencies: - npm-bundled: 3.0.1 - npm-normalize-package-bin: 3.0.1 - - '@npmcli/map-workspaces@3.0.6': - dependencies: - '@npmcli/name-from-folder': 2.0.0 - glob: 10.5.0 - minimatch: 9.0.8 - read-package-json-fast: 3.0.2 - - '@npmcli/metavuln-calculator@5.0.1': - dependencies: - cacache: 17.1.4 - json-parse-even-better-errors: 3.0.2 - pacote: 15.2.0 - semver: 7.7.4 - transitivePeerDependencies: - - bluebird - - supports-color - - '@npmcli/move-file@2.0.1': - dependencies: - mkdirp: 1.0.4 - rimraf: 3.0.2 - - '@npmcli/name-from-folder@2.0.0': {} - - '@npmcli/node-gyp@3.0.0': {} - - '@npmcli/package-json@4.0.1': - dependencies: - '@npmcli/git': 4.1.0 - glob: 10.5.0 - hosted-git-info: 6.1.3 - json-parse-even-better-errors: 3.0.2 - normalize-package-data: 5.0.0 - proc-log: 3.0.0 - semver: 7.7.4 - transitivePeerDependencies: - - bluebird - - '@npmcli/promise-spawn@6.0.2': - dependencies: - which: 3.0.1 - - '@npmcli/query@3.1.0': - dependencies: - postcss-selector-parser: 6.1.2 - - '@npmcli/run-script@6.0.2': - dependencies: - '@npmcli/node-gyp': 3.0.0 - '@npmcli/promise-spawn': 6.0.2 - node-gyp: 9.4.1 - read-package-json-fast: 3.0.2 - which: 3.0.1 - transitivePeerDependencies: - - bluebird - - supports-color - - '@open-draft/deferred-promise@2.2.0': {} - - '@open-draft/logger@0.3.0': - dependencies: - is-node-process: 1.2.0 - outvariant: 1.4.3 - - '@open-draft/until@2.1.0': {} - - '@pkgjs/parseargs@0.11.0': - optional: true - - '@pkgr/core@0.1.2': {} - - '@sideway/address@4.1.5': - dependencies: - '@hapi/hoek': 9.3.0 - - '@sideway/formula@3.0.1': {} - - '@sideway/pinpoint@2.0.0': {} - - '@sigstore/bundle@1.1.0': - dependencies: - '@sigstore/protobuf-specs': 0.2.1 - - '@sigstore/protobuf-specs@0.2.1': {} - - '@sigstore/sign@1.0.0': - dependencies: - '@sigstore/bundle': 1.1.0 - '@sigstore/protobuf-specs': 0.2.1 - make-fetch-happen: 11.1.1 - transitivePeerDependencies: - - supports-color - - '@sigstore/tuf@1.0.3': - dependencies: - '@sigstore/protobuf-specs': 0.2.1 - tuf-js: 1.1.7 - transitivePeerDependencies: - - supports-color - - '@sindresorhus/is@4.6.0': {} - - '@szmarczak/http-timer@4.0.6': - dependencies: - defer-to-connect: 2.0.1 - - '@thednp/event-listener@2.0.12': {} - - '@thednp/position-observer@1.1.0': - dependencies: - '@thednp/shorty': 2.0.11 - - '@thednp/shorty@2.0.11': {} - - '@tootallnate/once@1.1.2': {} - - '@tootallnate/once@2.0.0': {} - - '@ts-morph/common@0.23.0': - dependencies: - fast-glob: 3.3.3 - minimatch: 9.0.8 - mkdirp: 3.0.1 - path-browserify: 1.0.1 - - '@tufjs/canonical-json@1.0.0': {} - - '@tufjs/models@1.0.4': - dependencies: - '@tufjs/canonical-json': 1.0.0 - minimatch: 9.0.8 - - '@types/accepts@1.3.7': - dependencies: - '@types/node': 24.10.14 - - '@types/body-parser@1.19.6': - dependencies: - '@types/connect': 3.4.38 - '@types/node': 24.10.14 - - '@types/boom@7.3.5': {} - - '@types/bunyan@1.8.11': - dependencies: - '@types/node': 24.10.14 - - '@types/cacheable-request@6.0.3': - dependencies: - '@types/http-cache-semantics': 4.2.0 - '@types/keyv': 3.1.4 - '@types/node': 24.10.14 - '@types/responselike': 1.0.3 - - '@types/connect@3.4.38': - dependencies: - '@types/node': 24.10.14 - - '@types/console-log-level@1.4.5': {} - - '@types/content-disposition@0.5.9': {} - - '@types/cookies@0.9.2': - dependencies: - '@types/connect': 3.4.38 - '@types/express': 4.17.25 - '@types/keygrip': 1.0.6 - '@types/node': 24.10.14 - - '@types/express-serve-static-core@4.19.8': - dependencies: - '@types/node': 24.10.14 - '@types/qs': 6.14.0 - '@types/range-parser': 1.2.7 - '@types/send': 1.2.1 - - '@types/express@4.17.25': - dependencies: - '@types/body-parser': 1.19.6 - '@types/express-serve-static-core': 4.19.8 - '@types/qs': 6.14.0 - '@types/serve-static': 1.15.10 - - '@types/formidable@1.2.8': - dependencies: - '@types/node': 24.10.14 - - '@types/http-assert@1.5.6': {} - - '@types/http-cache-semantics@4.2.0': {} - - '@types/http-errors@2.0.5': {} - - '@types/istanbul-lib-coverage@2.0.6': {} - - '@types/json-schema@7.0.15': {} - - '@types/json-stable-stringify@1.2.0': - dependencies: - json-stable-stringify: 1.3.0 - - '@types/keygrip@1.0.6': {} - - '@types/keyv@3.1.4': - dependencies: - '@types/node': 24.10.14 - - '@types/koa-compose@3.2.9': - dependencies: - '@types/koa': 3.0.1 - - '@types/koa@3.0.1': - dependencies: - '@types/accepts': 1.3.7 - '@types/content-disposition': 0.5.9 - '@types/cookies': 0.9.2 - '@types/http-assert': 1.5.6 - '@types/http-errors': 2.0.5 - '@types/keygrip': 1.0.6 - '@types/koa-compose': 3.2.9 - '@types/node': 24.10.14 - - '@types/mime@1.3.5': {} - - '@types/minimist@1.2.5': {} - - '@types/mocha@10.0.10': {} - - '@types/node@24.10.14': - dependencies: - undici-types: 7.16.0 - - '@types/normalize-package-data@2.4.4': {} - - '@types/once@1.4.5': {} - - '@types/proxyquire@1.3.31': {} - - '@types/qs@6.14.0': {} - - '@types/range-parser@1.2.7': {} - - '@types/responselike@1.0.3': - dependencies: - '@types/node': 24.10.14 - - '@types/restify@8.5.12': - dependencies: - '@types/bunyan': 1.8.11 - '@types/formidable': 1.2.8 - '@types/node': 24.10.14 - '@types/spdy': 3.4.9 - - '@types/semver@7.7.1': {} - - '@types/send@0.17.6': - dependencies: - '@types/mime': 1.3.5 - '@types/node': 24.10.14 - - '@types/send@1.2.1': - dependencies: - '@types/node': 24.10.14 - - '@types/serve-static@1.15.10': - dependencies: - '@types/http-errors': 2.0.5 - '@types/node': 24.10.14 - '@types/send': 0.17.6 - - '@types/spdy@3.4.9': - dependencies: - '@types/node': 24.10.14 - - '@types/uuid@8.3.4': {} - - '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)': - dependencies: - '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.9.3) - debug: 4.4.3(supports-color@8.1.1) - eslint: 8.57.1 - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare-lite: 1.4.0 - semver: 7.7.4 - tsutils: 3.21.0(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.9.3)': - dependencies: - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.9.3) - debug: 4.4.3(supports-color@8.1.1) - eslint: 8.57.1 - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@5.62.0': - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - - '@typescript-eslint/type-utils@5.62.0(eslint@8.57.1)(typescript@5.9.3)': - dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.9.3) - '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.9.3) - debug: 4.4.3(supports-color@8.1.1) - eslint: 8.57.1 - tsutils: 3.21.0(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@5.62.0': {} - - '@typescript-eslint/typescript-estree@5.62.0(typescript@5.9.3)': - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.4.3(supports-color@8.1.1) - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.7.4 - tsutils: 3.21.0(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@5.62.0(eslint@8.57.1)(typescript@5.9.3)': - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) - '@types/json-schema': 7.0.15 - '@types/semver': 7.7.1 - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.9.3) - eslint: 8.57.1 - eslint-scope: 5.1.1 - semver: 7.7.4 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/visitor-keys@5.62.0': - dependencies: - '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.3 - - '@ungap/structured-clone@1.3.0': {} - - abbrev@1.1.1: {} - - abbrev@2.0.0: {} - - abort-controller@3.0.0: - dependencies: - event-target-shim: 5.0.1 - - accepts@1.3.8: - dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 - - acorn-jsx@5.3.2(acorn@8.16.0): - dependencies: - acorn: 8.16.0 - - acorn@8.16.0: {} - - agent-base@6.0.2: - dependencies: - debug: 4.4.3(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - agent-base@7.1.4: {} - - agentkeepalive@4.6.0: - dependencies: - humanize-ms: 1.2.1 - - aggregate-error@3.1.0: - dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 - - ajv-formats@3.0.1(ajv@8.13.0): - optionalDependencies: - ajv: 8.13.0 - - ajv@6.14.0: - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - - ajv@8.13.0: - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - - ansi-colors@4.1.3: {} - - ansi-escapes@4.3.2: - dependencies: - type-fest: 0.21.3 - - ansi-regex@5.0.1: {} - - ansi-regex@6.2.2: {} - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - ansi-styles@6.2.3: {} - - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - - apache-crypt@1.2.6: - dependencies: - unix-crypt-td-js: 1.1.4 - - apache-md5@1.1.8: {} - - aproba@2.1.0: {} - - are-we-there-yet@3.0.1: - dependencies: - delegates: 1.0.0 - readable-stream: 3.6.2 - - are-we-there-yet@4.0.2: {} - - argparse@1.0.10: - dependencies: - sprintf-js: 1.0.3 - - argparse@2.0.1: {} - - argv@0.0.2: {} - - array-buffer-byte-length@1.0.2: - dependencies: - call-bound: 1.0.4 - is-array-buffer: 3.0.5 - - array-find-index@1.0.2: {} - - array-flatten@1.1.1: {} - - array-union@2.1.0: {} - - arraybuffer.prototype.slice@1.0.4: - dependencies: - array-buffer-byte-length: 1.0.2 - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - is-array-buffer: 3.0.5 - - arrify@1.0.1: {} - - arrify@2.0.1: {} - - asn1@0.2.6: - dependencies: - safer-buffer: 2.1.2 - - assert-plus@1.0.0: {} - - async-function@1.0.0: {} - - atomic-sleep@1.0.0: {} - - available-typed-arrays@1.0.7: - dependencies: - possible-typed-array-names: 1.1.0 - - babel-plugin-polyfill-corejs2@0.4.15(@babel/core@7.29.0): - dependencies: - '@babel/compat-data': 7.29.0 - '@babel/core': 7.29.0 - '@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.29.0) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - babel-plugin-polyfill-corejs3@0.14.0(@babel/core@7.29.0): - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.29.0) - core-js-compat: 3.48.0 - transitivePeerDependencies: - - supports-color - - babel-plugin-polyfill-regenerator@0.6.6(@babel/core@7.29.0): - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.29.0) - transitivePeerDependencies: - - supports-color - - balanced-match@1.0.2: {} - - balanced-match@4.0.4: {} - - base64-js@1.3.1: {} - - base64-js@1.5.1: {} - - baseline-browser-mapping@2.10.0: {} - - basic-auth@2.0.1: - dependencies: - safe-buffer: 5.1.2 - - batch@0.6.1: {} - - bcrypt-pbkdf@1.0.2: - dependencies: - tweetnacl: 0.14.5 - - bcryptjs@2.4.3: {} - - bignumber.js@9.3.1: {} - - bin-links@4.0.4: - dependencies: - cmd-shim: 6.0.3 - npm-normalize-package-bin: 3.0.1 - read-cmd-shim: 4.0.0 - write-file-atomic: 5.0.1 - - binary-extensions@2.3.0: {} - - bl@4.1.0: - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 - - body-parser@1.20.4: - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.1 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.14.2 - raw-body: 2.5.3 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - - boolbase@1.0.0: {} - - boom@7.3.0: - dependencies: - hoek: 6.1.3 - - bootstrap.native@5.1.6: - dependencies: - '@thednp/event-listener': 2.0.12 - '@thednp/position-observer': 1.1.0 - '@thednp/shorty': 2.0.11 - - brace-expansion@1.1.12: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - brace-expansion@2.0.2: - dependencies: - balanced-match: 1.0.2 - - brace-expansion@5.0.3: - dependencies: - balanced-match: 4.0.4 - - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - - brotli@1.3.3: - dependencies: - base64-js: 1.5.1 - - browser-stdout@1.3.1: {} - - browserslist@4.28.1: - dependencies: - baseline-browser-mapping: 2.10.0 - caniuse-lite: 1.0.30001774 - electron-to-chromium: 1.5.302 - node-releases: 2.0.27 - update-browserslist-db: 1.2.3(browserslist@4.28.1) - - buffer-equal-constant-time@1.0.1: {} - - buffer@5.7.1: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - - buffer@6.0.3: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - - builtins@1.0.3: {} - - builtins@5.1.0: - dependencies: - semver: 7.7.4 - - bytes@3.1.2: {} - - c8@10.1.3: - dependencies: - '@bcoe/v8-coverage': 1.0.2 - '@istanbuljs/schema': 0.1.3 - find-up: 5.0.0 - foreground-child: 3.3.1 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-report: 3.0.1 - istanbul-reports: 3.2.0 - test-exclude: 7.0.2 - v8-to-istanbul: 9.3.0 - yargs: 17.7.2 - yargs-parser: 21.1.1 - - cacache@16.1.3: - dependencies: - '@npmcli/fs': 2.1.2 - '@npmcli/move-file': 2.0.1 - chownr: 2.0.0 - fs-minipass: 2.1.0 - glob: 8.1.0 - infer-owner: 1.0.4 - lru-cache: 7.18.3 - minipass: 3.3.6 - minipass-collect: 1.0.2 - minipass-flush: 1.0.5 - minipass-pipeline: 1.2.4 - mkdirp: 1.0.4 - p-map: 4.0.0 - promise-inflight: 1.0.1 - rimraf: 3.0.2 - ssri: 9.0.1 - tar: 6.2.1 - unique-filename: 2.0.1 - transitivePeerDependencies: - - bluebird - - cacache@17.1.4: - dependencies: - '@npmcli/fs': 3.1.1 - fs-minipass: 3.0.3 - glob: 10.5.0 - lru-cache: 7.18.3 - minipass: 7.1.3 - minipass-collect: 1.0.2 - minipass-flush: 1.0.5 - minipass-pipeline: 1.2.4 - p-map: 4.0.0 - ssri: 10.0.6 - tar: 6.2.1 - unique-filename: 3.0.0 - - cacheable-lookup@5.0.4: {} - - cacheable-request@7.0.4: - dependencies: - clone-response: 1.0.3 - get-stream: 5.2.0 - http-cache-semantics: 4.2.0 - keyv: 4.5.4 - lowercase-keys: 2.0.0 - normalize-url: 6.1.0 - responselike: 2.0.1 - - call-bind-apply-helpers@1.0.2: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - - call-bind@1.0.8: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - get-intrinsic: 1.3.0 - set-function-length: 1.2.2 - - call-bound@1.0.4: - dependencies: - call-bind-apply-helpers: 1.0.2 - get-intrinsic: 1.3.0 - - callsite@1.0.0: {} - - callsites@3.1.0: {} - - camelcase-keys@6.2.2: - dependencies: - camelcase: 5.3.1 - map-obj: 4.3.0 - quick-lru: 4.0.1 - - camelcase@5.3.1: {} - - camelcase@6.3.0: {} - - caniuse-lite@1.0.30001774: {} - - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - chalk@5.6.2: {} - - chardet@0.7.0: {} - - cheerio-select@2.1.0: - dependencies: - boolbase: 1.0.0 - css-select: 5.2.2 - css-what: 6.2.2 - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.2.2 - - cheerio@1.0.0: - dependencies: - cheerio-select: 2.1.0 - dom-serializer: 2.0.0 - domhandler: 5.0.3 - domutils: 3.2.2 - encoding-sniffer: 0.2.1 - htmlparser2: 9.1.0 - parse5: 7.3.0 - parse5-htmlparser2-tree-adapter: 7.1.0 - parse5-parser-stream: 7.1.2 - undici: 6.23.0 - whatwg-mimetype: 4.0.0 - - chokidar@3.6.0: - dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - - chokidar@4.0.3: - dependencies: - readdirp: 4.1.2 - - chownr@2.0.0: {} - - clean-stack@2.2.0: {} - - cli-cursor@3.1.0: - dependencies: - restore-cursor: 3.1.0 - - cli-spinners@2.9.2: {} - - cli-width@3.0.0: {} - - cliui@8.0.1: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - - clone-response@1.0.3: - dependencies: - mimic-response: 1.0.1 - - clone@1.0.4: {} - - cmd-shim@6.0.3: {} - - code-block-writer@13.0.3: {} - - codecov@3.8.3(encoding@0.1.13): - dependencies: - argv: 0.0.2 - ignore-walk: 3.0.4 - js-yaml: 3.14.1 - teeny-request: 7.1.1(encoding@0.1.13) - urlgrey: 1.0.0 - transitivePeerDependencies: - - encoding - - supports-color - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.4: {} - - color-support@1.1.3: {} - - colors@1.4.0: {} - - commander@12.1.0: {} - - common-ancestor-path@1.0.1: {} - - concat-map@0.0.1: {} - - connect@3.7.0: - dependencies: - debug: 2.6.9 - finalhandler: 1.1.2 - parseurl: 1.3.3 - utils-merge: 1.0.1 - transitivePeerDependencies: - - supports-color - - console-control-strings@1.1.0: {} - - console-log-level@1.4.1: {} - - content-disposition@0.5.4: - dependencies: - safe-buffer: 5.2.1 - - content-disposition@1.0.1: {} - - content-type@1.0.5: {} - - convert-source-map@2.0.0: {} - - cookie-signature@1.0.7: {} - - cookie@0.7.2: {} - - cookies@0.9.1: - dependencies: - depd: 2.0.0 - keygrip: 1.1.0 - - core-js-compat@3.48.0: - dependencies: - browserslist: 4.28.1 - - core-util-is@1.0.2: {} - - core-util-is@1.0.3: {} - - cors@2.8.6: - dependencies: - object-assign: 4.1.1 - vary: 1.1.2 - - cosmiconfig@9.0.0(typescript@5.9.3): - dependencies: - env-paths: 2.2.1 - import-fresh: 3.3.1 - js-yaml: 4.1.1 - parse-json: 5.2.0 - optionalDependencies: - typescript: 5.9.3 - - cross-spawn@7.0.6: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - crypto-js@4.2.0: {} - - css-select@5.2.2: - dependencies: - boolbase: 1.0.0 - css-what: 6.2.2 - domhandler: 5.0.3 - domutils: 3.2.2 - nth-check: 2.1.1 - - css-what@6.2.2: {} - - cssesc@3.0.0: {} - - csv-generate@4.5.0: {} - - csv-parse@6.1.0: {} - - csv-stringify@6.6.0: {} - - csv@6.4.1: - dependencies: - csv-generate: 4.5.0 - csv-parse: 6.1.0 - csv-stringify: 6.6.0 - stream-transform: 3.4.0 - - dashdash@1.14.1: - dependencies: - assert-plus: 1.0.0 - - data-uri-to-buffer@4.0.1: {} - - data-view-buffer@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-length@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-offset@1.0.1: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - debug@2.6.9: - dependencies: - ms: 2.0.0 - - debug@4.4.3(supports-color@8.1.1): - dependencies: - ms: 2.1.3 - optionalDependencies: - supports-color: 8.1.1 - - decache@4.6.2: - dependencies: - callsite: 1.0.0 - - decamelize-keys@1.1.1: - dependencies: - decamelize: 1.2.0 - map-obj: 1.0.1 - - decamelize@1.2.0: {} - - decamelize@4.0.0: {} - - decompress-response@6.0.0: - dependencies: - mimic-response: 3.1.0 - - deep-equal@1.0.1: {} - - deep-equal@1.1.2: - dependencies: - is-arguments: 1.2.0 - is-date-object: 1.1.0 - is-regex: 1.2.1 - object-is: 1.1.6 - object-keys: 1.1.1 - regexp.prototype.flags: 1.5.4 - - deep-extend@0.6.0: {} - - deep-is@0.1.4: {} - - defaults@1.0.4: - dependencies: - clone: 1.0.4 - - defer-to-connect@2.0.1: {} - - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - - define-lazy-prop@2.0.0: {} - - define-properties@1.2.1: - dependencies: - define-data-property: 1.1.4 - has-property-descriptors: 1.0.2 - object-keys: 1.1.1 - - delegates@1.0.0: {} - - depd@1.1.2: {} - - depd@2.0.0: {} - - destroy@1.2.0: {} - - detect-node@2.1.0: {} - - dfa@1.2.0: {} - - diff@7.0.0: {} - - dir-glob@3.0.1: - dependencies: - path-type: 4.0.0 - - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - - dom-serializer@2.0.0: - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - entities: 4.5.0 - - domelementtype@2.3.0: {} - - domhandler@5.0.3: - dependencies: - domelementtype: 2.3.0 - - domutils@3.2.2: - dependencies: - dom-serializer: 2.0.0 - domelementtype: 2.3.0 - domhandler: 5.0.3 - - dot@2.0.0-beta.1: {} - - dtrace-provider@0.8.8: - dependencies: - nan: 2.25.0 - optional: true - - dunder-proto@1.0.1: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-errors: 1.3.0 - gopd: 1.2.0 - - duplexer@0.1.2: {} - - duplexify@4.1.3: - dependencies: - end-of-stream: 1.4.5 - inherits: 2.0.4 - readable-stream: 3.6.2 - stream-shift: 1.0.3 - - eastasianwidth@0.2.0: {} - - ecc-jsbn@0.1.2: - dependencies: - jsbn: 0.1.1 - safer-buffer: 2.1.2 - - ecdsa-sig-formatter@1.0.11: - dependencies: - safe-buffer: 5.2.1 - - ee-first@1.1.1: {} - - electron-to-chromium@1.5.302: {} - - emitter-component@1.1.2: {} - - emoji-regex@8.0.0: {} - - emoji-regex@9.2.2: {} - - encodeurl@1.0.2: {} - - encodeurl@2.0.0: {} - - encoding-sniffer@0.2.1: - dependencies: - iconv-lite: 0.6.3 - whatwg-encoding: 3.1.1 - - encoding@0.1.13: - dependencies: - iconv-lite: 0.6.3 - optional: true - - end-of-stream@1.4.5: - dependencies: - once: 1.4.0 - - entities@4.5.0: {} - - entities@6.0.1: {} - - entities@7.0.1: {} - - env-paths@2.2.1: {} - - err-code@2.0.3: {} - - error-ex@1.3.4: - dependencies: - is-arrayish: 0.2.1 - - es-abstract@1.24.1: - dependencies: - array-buffer-byte-length: 1.0.2 - arraybuffer.prototype.slice: 1.0.4 - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.4 - data-view-buffer: 1.0.2 - data-view-byte-length: 1.0.2 - data-view-byte-offset: 1.0.1 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-set-tostringtag: 2.1.0 - es-to-primitive: 1.3.0 - function.prototype.name: 1.1.8 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - get-symbol-description: 1.1.0 - globalthis: 1.0.4 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - has-proto: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - internal-slot: 1.1.0 - is-array-buffer: 3.0.5 - is-callable: 1.2.7 - is-data-view: 1.0.2 - is-negative-zero: 2.0.3 - is-regex: 1.2.1 - is-set: 2.0.3 - is-shared-array-buffer: 1.0.4 - is-string: 1.1.1 - is-typed-array: 1.1.15 - is-weakref: 1.1.1 - math-intrinsics: 1.1.0 - object-inspect: 1.13.4 - object-keys: 1.1.1 - object.assign: 4.1.7 - own-keys: 1.0.1 - regexp.prototype.flags: 1.5.4 - safe-array-concat: 1.1.3 - safe-push-apply: 1.0.0 - safe-regex-test: 1.1.0 - set-proto: 1.0.0 - stop-iteration-iterator: 1.1.0 - string.prototype.trim: 1.2.10 - string.prototype.trimend: 1.0.9 - string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.3 - typed-array-byte-length: 1.0.3 - typed-array-byte-offset: 1.0.4 - typed-array-length: 1.0.7 - unbox-primitive: 1.1.0 - which-typed-array: 1.1.20 - - es-define-property@1.0.1: {} - - es-errors@1.3.0: {} - - es-object-atoms@1.1.1: - dependencies: - es-errors: 1.3.0 - - es-set-tostringtag@2.1.0: - dependencies: - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - es-to-primitive@1.3.0: - dependencies: - is-callable: 1.2.7 - is-date-object: 1.1.0 - is-symbol: 1.1.1 - - es6-shim@0.35.8: {} - - escalade@3.2.0: {} - - escape-html@1.0.3: {} - - escape-regexp-component@1.0.2: {} - - escape-string-regexp@1.0.5: {} - - escape-string-regexp@4.0.0: {} - - eslint-config-prettier@9.1.0(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - - eslint-plugin-es@4.1.0(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - eslint-utils: 2.1.0 - regexpp: 3.2.0 - - eslint-plugin-n@15.7.0(eslint@8.57.1): - dependencies: - builtins: 5.1.0 - eslint: 8.57.1 - eslint-plugin-es: 4.1.0(eslint@8.57.1) - eslint-utils: 3.0.0(eslint@8.57.1) - ignore: 5.3.2 - is-core-module: 2.16.1 - minimatch: 3.1.5 - resolve: 1.22.11 - semver: 7.7.4 - - eslint-plugin-prettier@5.2.1(eslint-config-prettier@9.1.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.3.3): - dependencies: - eslint: 8.57.1 - prettier: 3.3.3 - prettier-linter-helpers: 1.0.1 - synckit: 0.9.3 - optionalDependencies: - eslint-config-prettier: 9.1.0(eslint@8.57.1) - - eslint-scope@5.1.1: - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - - eslint-scope@7.2.2: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-utils@2.1.0: - dependencies: - eslint-visitor-keys: 1.3.0 - - eslint-utils@3.0.0(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - eslint-visitor-keys: 2.1.0 - - eslint-visitor-keys@1.3.0: {} - - eslint-visitor-keys@2.1.0: {} - - eslint-visitor-keys@3.4.3: {} - - eslint@8.57.1: - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) - '@eslint-community/regexpp': 4.12.2 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.1 - '@humanwhocodes/config-array': 0.13.0 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.3.0 - ajv: 6.14.0 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.3(supports-color@8.1.1) - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.7.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.1 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.5 - natural-compare: 1.4.0 - optionator: 0.9.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - - espree@9.6.1: - dependencies: - acorn: 8.16.0 - acorn-jsx: 5.3.2(acorn@8.16.0) - eslint-visitor-keys: 3.4.3 - - esprima@4.0.1: {} - - esquery@1.7.0: - dependencies: - estraverse: 5.3.0 - - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - - estraverse@4.3.0: {} - - estraverse@5.3.0: {} - - esutils@2.0.3: {} - - etag@1.8.1: {} - - event-stream@4.0.1: - dependencies: - duplexer: 0.1.2 - from: 0.1.7 - map-stream: 0.0.7 - pause-stream: 0.0.11 - split: 1.0.1 - stream-combiner: 0.2.2 - through: 2.3.8 - - event-target-shim@5.0.1: {} - - events@3.3.0: {} - - ewma@2.0.1: - dependencies: - assert-plus: 1.0.0 - - execa@4.1.0: - dependencies: - cross-spawn: 7.0.6 - get-stream: 5.2.0 - human-signals: 1.1.1 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - - execa@5.1.1: - dependencies: - cross-spawn: 7.0.6 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - - exponential-backoff@3.1.3: {} - - express@4.22.1: - dependencies: - accepts: 1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.4 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookie: 0.7.2 - cookie-signature: 1.0.7 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: 2.0.0 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 1.3.2 - fresh: 0.5.2 - http-errors: 2.0.1 - merge-descriptors: 1.0.3 - methods: 1.1.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - path-to-regexp: 0.1.12 - proxy-addr: 2.0.7 - qs: 6.14.2 - range-parser: 1.2.1 - safe-buffer: 5.2.1 - send: 0.19.2 - serve-static: 1.16.3 - setprototypeof: 1.2.0 - statuses: 2.0.2 - type-is: 1.6.18 - utils-merge: 1.0.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - - extend@3.0.2: {} - - external-editor@3.1.0: - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 - - extsprintf@1.3.0: {} - - extsprintf@1.4.1: {} - - fancy-log@2.0.0: - dependencies: - color-support: 1.1.3 - - fast-decode-uri-component@1.0.1: {} - - fast-deep-equal@3.1.3: {} - - fast-diff@1.3.0: {} - - fast-glob@3.3.3: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - - fast-json-stable-stringify@2.1.0: {} - - fast-levenshtein@2.0.6: {} - - fast-querystring@1.1.2: - dependencies: - fast-decode-uri-component: 1.0.1 - - fast-redact@3.5.0: {} - - fast-url-parser@1.1.3: - dependencies: - punycode: 1.4.1 - - fastq@1.20.1: - dependencies: - reusify: 1.1.0 - - faye-websocket@0.11.4: - dependencies: - websocket-driver: 0.7.4 - - fetch-blob@3.2.0: - dependencies: - node-domexception: 1.0.0 - web-streams-polyfill: 3.3.3 - - figures@3.2.0: - dependencies: - escape-string-regexp: 1.0.5 - - file-entry-cache@6.0.1: - dependencies: - flat-cache: 3.2.0 - - fill-keys@1.0.2: - dependencies: - is-object: 1.0.2 - merge-descriptors: 1.0.3 - - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - finalhandler@1.1.2: - dependencies: - debug: 2.6.9 - encodeurl: 1.0.2 - escape-html: 1.0.3 - on-finished: 2.3.0 - parseurl: 1.3.3 - statuses: 1.5.0 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - - finalhandler@1.3.2: - dependencies: - debug: 2.6.9 - encodeurl: 2.0.0 - escape-html: 1.0.3 - on-finished: 2.4.1 - parseurl: 1.3.3 - statuses: 2.0.2 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - - find-my-way@7.7.0: - dependencies: - fast-deep-equal: 3.1.3 - fast-querystring: 1.1.2 - safe-regex2: 2.0.0 - - find-up@4.1.0: - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - - find-up@5.0.0: - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - - flat-cache@3.2.0: - dependencies: - flatted: 3.3.3 - keyv: 4.5.4 - rimraf: 3.0.2 - - flat@5.0.2: {} - - flatted@3.3.3: {} - - for-each@0.3.5: - dependencies: - is-callable: 1.2.7 - - foreground-child@3.3.1: - dependencies: - cross-spawn: 7.0.6 - signal-exit: 4.1.0 - - formdata-polyfill@4.0.10: - dependencies: - fetch-blob: 3.2.0 - - formidable@1.2.6: {} - - forwarded@0.2.0: {} - - fresh@0.5.2: {} - - fresh@2.0.0: {} - - from@0.1.7: {} - - fs-extra@11.3.3: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.2.0 - universalify: 2.0.1 - - fs-minipass@2.1.0: - dependencies: - minipass: 3.3.6 - - fs-minipass@3.0.3: - dependencies: - minipass: 7.1.3 - - fs.realpath@1.0.0: {} - - fsevents@2.3.3: - optional: true - - function-bind@1.1.2: {} - - function.prototype.name@1.1.8: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - functions-have-names: 1.2.3 - hasown: 2.0.2 - is-callable: 1.2.7 - - functions-have-names@1.2.3: {} - - gauge@4.0.4: - dependencies: - aproba: 2.1.0 - color-support: 1.1.3 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - signal-exit: 3.0.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wide-align: 1.1.5 - - gauge@5.0.2: - dependencies: - aproba: 2.1.0 - color-support: 1.1.3 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - signal-exit: 4.1.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wide-align: 1.1.5 - - gaxios@5.1.3(encoding@0.1.13): - dependencies: - extend: 3.0.2 - https-proxy-agent: 5.0.1 - is-stream: 2.0.1 - node-fetch: 2.7.0(encoding@0.1.13) - transitivePeerDependencies: - - encoding - - supports-color - - gaxios@6.7.1(encoding@0.1.13): - dependencies: - extend: 3.0.2 - https-proxy-agent: 7.0.6 - is-stream: 2.0.1 - node-fetch: 2.7.0(encoding@0.1.13) - uuid: 9.0.1 - transitivePeerDependencies: - - encoding - - supports-color - - gaxios@7.1.3: - dependencies: - extend: 3.0.2 - https-proxy-agent: 7.0.6 - node-fetch: 3.3.2 - rimraf: 5.0.10 - transitivePeerDependencies: - - supports-color - - gcp-metadata@8.1.2: - dependencies: - gaxios: 7.1.3 - google-logging-utils: 1.1.3 - json-bigint: 1.0.0 - transitivePeerDependencies: - - supports-color - - generator-function@2.0.1: {} - - gensync@1.0.0-beta.2: {} - - get-caller-file@2.0.5: {} - - get-intrinsic@1.3.0: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - function-bind: 1.1.2 - get-proto: 1.0.1 - gopd: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - math-intrinsics: 1.1.0 - - get-proto@1.0.1: - dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.1.1 - - get-stream@5.2.0: - dependencies: - pump: 3.0.3 - - get-stream@6.0.1: {} - - get-symbol-description@1.1.0: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - - getpass@0.1.7: - dependencies: - assert-plus: 1.0.0 - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - - glob-parent@6.0.2: - dependencies: - is-glob: 4.0.3 - - glob@10.5.0: - dependencies: - foreground-child: 3.3.1 - jackspeak: 3.4.3 - minimatch: 9.0.8 - minipass: 7.1.3 - package-json-from-dist: 1.0.1 - path-scurry: 1.11.1 - - glob@7.2.3: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.5 - once: 1.4.0 - path-is-absolute: 1.0.1 - - glob@8.1.0: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.9 - once: 1.4.0 - - globals@13.24.0: - dependencies: - type-fest: 0.20.2 - - globalthis@1.0.4: - dependencies: - define-properties: 1.2.1 - gopd: 1.2.0 - - globby@11.1.0: - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.3 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 3.0.0 - - google-auth-library@10.6.1: - dependencies: - base64-js: 1.5.1 - ecdsa-sig-formatter: 1.0.11 - gaxios: 7.1.3 - gcp-metadata: 8.1.2 - google-logging-utils: 1.1.3 - jws: 4.0.1 - transitivePeerDependencies: - - supports-color - - google-logging-utils@1.1.3: {} - - gopd@1.2.0: {} - - got@11.8.6: - dependencies: - '@sindresorhus/is': 4.6.0 - '@szmarczak/http-timer': 4.0.6 - '@types/cacheable-request': 6.0.3 - '@types/responselike': 1.0.3 - cacheable-lookup: 5.0.4 - cacheable-request: 7.0.4 - decompress-response: 6.0.0 - http2-wrapper: 1.0.3 - lowercase-keys: 2.0.0 - p-cancelable: 2.1.1 - responselike: 2.0.1 - - graceful-fs@4.2.11: {} - - graphemer@1.4.0: {} - - gts@6.0.2(typescript@5.9.3): - dependencies: - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.9.3) - chalk: 4.1.2 - eslint: 8.57.1 - eslint-config-prettier: 9.1.0(eslint@8.57.1) - eslint-plugin-n: 15.7.0(eslint@8.57.1) - eslint-plugin-prettier: 5.2.1(eslint-config-prettier@9.1.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.3.3) - execa: 5.1.1 - inquirer: 7.3.3 - json5: 2.2.3 - meow: 9.0.0 - ncp: 2.0.0 - prettier: 3.3.3 - rimraf: 3.0.2 - typescript: 5.9.3 - write-file-atomic: 4.0.2 - transitivePeerDependencies: - - '@types/eslint' - - supports-color - - hammerjs@2.0.8: {} - - handle-thing@2.0.1: {} - - handlebars@4.7.8: - dependencies: - minimist: 1.2.8 - neo-async: 2.6.2 - source-map: 0.6.1 - wordwrap: 1.0.0 - optionalDependencies: - uglify-js: 3.19.3 - - hard-rejection@2.1.0: {} - - has-bigints@1.1.0: {} - - has-flag@4.0.0: {} - - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.1 - - has-proto@1.2.0: - dependencies: - dunder-proto: 1.0.1 - - has-symbols@1.1.0: {} - - has-tostringtag@1.0.2: - dependencies: - has-symbols: 1.1.0 - - has-unicode@2.0.1: {} - - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 - - he@1.2.0: {} - - hoek@6.1.3: {} - - hosted-git-info@2.8.9: {} - - hosted-git-info@4.1.0: - dependencies: - lru-cache: 6.0.0 - - hosted-git-info@6.1.3: - dependencies: - lru-cache: 7.18.3 - - hpack.js@2.1.6: - dependencies: - inherits: 2.0.4 - obuf: 1.1.2 - readable-stream: 2.3.8 - wbuf: 1.7.3 - - html-entities@2.6.0: {} - - html-escaper@2.0.2: {} - - htmlparser2@10.1.0: - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.2.2 - entities: 7.0.1 - - htmlparser2@9.1.0: - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.2.2 - entities: 4.5.0 - - http-assert@1.5.0: - dependencies: - deep-equal: 1.0.1 - http-errors: 1.8.1 - - http-auth-connect@1.0.6: {} - - http-auth@4.1.9: - dependencies: - apache-crypt: 1.2.6 - apache-md5: 1.1.8 - bcryptjs: 2.4.3 - uuid: 8.3.2 - - http-cache-semantics@4.2.0: {} - - http-deceiver@1.2.7: {} - - http-errors@1.8.1: - dependencies: - depd: 1.1.2 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 1.5.0 - toidentifier: 1.0.1 - - http-errors@2.0.0: - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - - http-errors@2.0.1: - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.2 - toidentifier: 1.0.1 - - http-parser-js@0.5.10: {} - - http-proxy-agent@4.0.1: - dependencies: - '@tootallnate/once': 1.1.2 - agent-base: 6.0.2 - debug: 4.4.3(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - http-proxy-agent@5.0.0: - dependencies: - '@tootallnate/once': 2.0.0 - agent-base: 6.0.2 - debug: 4.4.3(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - http-signature@1.4.0: - dependencies: - assert-plus: 1.0.0 - jsprim: 2.0.2 - sshpk: 1.18.0 - - http2-wrapper@1.0.3: - dependencies: - quick-lru: 5.1.1 - resolve-alpn: 1.2.1 - - https-proxy-agent@5.0.1: - dependencies: - agent-base: 6.0.2 - debug: 4.4.3(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - https-proxy-agent@7.0.6: - dependencies: - agent-base: 7.1.4 - debug: 4.4.3(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - human-signals@1.1.1: {} - - human-signals@2.1.0: {} - - humanize-ms@1.2.1: - dependencies: - ms: 2.1.3 - - i18next@23.16.8: - dependencies: - '@babel/runtime': 7.28.6 - - iconv-lite@0.4.24: - dependencies: - safer-buffer: 2.1.2 - - iconv-lite@0.6.3: - dependencies: - safer-buffer: 2.1.2 - - iconv-lite@0.7.2: - dependencies: - safer-buffer: 2.1.2 - - ieee754@1.2.1: {} - - ignore-walk@3.0.4: - dependencies: - minimatch: 3.1.5 - - ignore-walk@6.0.5: - dependencies: - minimatch: 9.0.8 - - ignore@5.3.2: {} - - import-fresh@3.3.1: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - imurmurhash@0.1.4: {} - - indent-string@4.0.0: {} - - infer-owner@1.0.4: {} - - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - inherits@2.0.4: {} - - ini@1.3.8: {} - - inquirer@7.3.3: - dependencies: - ansi-escapes: 4.3.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - external-editor: 3.1.0 - figures: 3.2.0 - lodash: 4.17.23 - mute-stream: 0.0.8 - run-async: 2.4.1 - rxjs: 6.6.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - - internal-slot@1.1.0: - dependencies: - es-errors: 1.3.0 - hasown: 2.0.2 - side-channel: 1.1.0 - - ip-address@10.1.0: {} - - ipaddr.js@1.9.1: {} - - is-arguments@1.2.0: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-array-buffer@3.0.5: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - - is-arrayish@0.2.1: {} - - is-async-function@2.1.1: - dependencies: - async-function: 1.0.0 - call-bound: 1.0.4 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - - is-bigint@1.1.0: - dependencies: - has-bigints: 1.1.0 - - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.3.0 - - is-boolean-object@1.2.2: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-callable@1.2.7: {} - - is-core-module@2.16.1: - dependencies: - hasown: 2.0.2 - - is-data-view@1.0.2: - dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - is-typed-array: 1.1.15 - - is-date-object@1.1.0: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-docker@2.2.1: {} - - is-extglob@2.1.1: {} - - is-finalizationregistry@1.1.1: - dependencies: - call-bound: 1.0.4 - - is-fullwidth-code-point@3.0.0: {} - - is-generator-function@1.1.2: - dependencies: - call-bound: 1.0.4 - generator-function: 2.0.1 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-interactive@1.0.0: {} - - is-lambda@1.0.1: {} - - is-map@2.0.3: {} - - is-negative-zero@2.0.3: {} - - is-node-process@1.2.0: {} - - is-number-object@1.1.1: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-number@7.0.0: {} - - is-object@1.0.2: {} - - is-path-inside@3.0.3: {} - - is-plain-obj@1.1.0: {} - - is-plain-obj@2.1.0: {} - - is-regex@1.2.1: - dependencies: - call-bound: 1.0.4 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - is-set@2.0.3: {} - - is-shared-array-buffer@1.0.4: - dependencies: - call-bound: 1.0.4 - - is-stream@2.0.1: {} - - is-string@1.1.1: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-symbol@1.1.1: - dependencies: - call-bound: 1.0.4 - has-symbols: 1.1.0 - safe-regex-test: 1.1.0 - - is-typed-array@1.1.15: - dependencies: - which-typed-array: 1.1.20 - - is-unicode-supported@0.1.0: {} - - is-weakmap@2.0.2: {} - - is-weakref@1.1.1: - dependencies: - call-bound: 1.0.4 - - is-weakset@2.0.4: - dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - - is-wsl@2.2.0: - dependencies: - is-docker: 2.2.1 - - isarray@1.0.0: {} - - isarray@2.0.5: {} - - isexe@2.0.0: {} - - istanbul-lib-coverage@3.2.2: {} - - istanbul-lib-report@3.0.1: - dependencies: - istanbul-lib-coverage: 3.2.2 - make-dir: 4.0.0 - supports-color: 7.2.0 - - istanbul-reports@3.2.0: - dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.1 - - jackspeak@3.4.3: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - - joi@17.13.3: - dependencies: - '@hapi/hoek': 9.3.0 - '@hapi/topo': 5.1.0 - '@sideway/address': 4.1.5 - '@sideway/formula': 3.0.1 - '@sideway/pinpoint': 2.0.0 - - jpeg-exif@1.1.4: {} - - js-green-licenses@4.0.0(encoding@0.1.13): - dependencies: - gaxios: 5.1.3(encoding@0.1.13) - meow: 9.0.0 - npm-package-arg: 8.1.5 - package-json: 7.0.0 - semver: 7.7.4 - spdx-correct: 3.2.0 - spdx-satisfies: 5.0.1 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - encoding - - supports-color - - js-tokens@4.0.0: {} - - js-yaml@3.14.1: - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - - js-yaml@4.1.1: - dependencies: - argparse: 2.0.1 - - jsbn@0.1.1: {} - - jsesc@3.1.0: {} - - json-bigint@1.0.0: - dependencies: - bignumber.js: 9.3.1 - - json-buffer@3.0.1: {} - - json-parse-even-better-errors@2.3.1: {} - - json-parse-even-better-errors@3.0.2: {} - - json-schema-traverse@0.4.1: {} - - json-schema-traverse@1.0.0: {} - - json-schema@0.4.0: {} - - json-stable-stringify-without-jsonify@1.0.1: {} - - json-stable-stringify@1.3.0: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - isarray: 2.0.5 - jsonify: 0.0.1 - object-keys: 1.1.1 - - json-stringify-nice@1.1.4: {} - - json-stringify-safe@5.0.1: {} - - json5@2.2.3: {} - - jsonc-parser@3.2.1: {} - - jsonfile@6.2.0: - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 - - jsonify@0.0.1: {} - - jsonparse@1.3.1: {} - - jsprim@2.0.2: - dependencies: - assert-plus: 1.0.0 - extsprintf: 1.3.0 - json-schema: 0.4.0 - verror: 1.10.0 - - just-diff-apply@5.5.0: {} - - just-diff@6.0.2: {} - - jwa@2.0.1: - dependencies: - buffer-equal-constant-time: 1.0.1 - ecdsa-sig-formatter: 1.0.11 - safe-buffer: 5.2.1 - - jws@4.0.1: - dependencies: - jwa: 2.0.1 - safe-buffer: 5.2.1 - - keycharm@0.2.0: {} - - keygrip@1.1.0: - dependencies: - tsscmp: 1.0.6 - - keyv@4.5.4: - dependencies: - json-buffer: 3.0.1 - - kind-of@6.0.3: {} - - koa-compose@4.1.0: {} - - koa@3.1.2: - dependencies: - accepts: 1.3.8 - content-disposition: 1.0.1 - content-type: 1.0.5 - cookies: 0.9.1 - delegates: 1.0.0 - destroy: 1.2.0 - encodeurl: 2.0.0 - escape-html: 1.0.3 - fresh: 0.5.2 - http-assert: 1.5.0 - http-errors: 2.0.1 - koa-compose: 4.1.0 - mime-types: 3.0.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - statuses: 2.0.2 - type-is: 2.0.1 - vary: 1.1.2 - - levn@0.4.1: - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - - lines-and-columns@1.2.4: {} - - linkinator@6.3.0(encoding@0.1.13): - dependencies: - chalk: 5.6.2 - escape-html: 1.0.3 - gaxios: 6.7.1(encoding@0.1.13) - glob: 10.5.0 - htmlparser2: 10.1.0 - marked: 13.0.3 - meow: 13.2.0 - mime: 4.1.0 - server-destroy: 1.0.1 - srcset: 5.0.3 - transitivePeerDependencies: - - encoding - - supports-color - - locate-path@5.0.0: - dependencies: - p-locate: 4.1.0 - - locate-path@6.0.0: - dependencies: - p-locate: 5.0.0 - - lodash.debounce@4.0.8: {} - - lodash.merge@4.6.2: {} - - lodash@4.17.23: {} - - log-symbols@4.1.0: - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - - loglevel-plugin-prefix@0.8.4: {} - - loglevel@1.9.2: {} - - lowercase-keys@2.0.0: {} - - lru-cache@10.4.3: {} - - lru-cache@5.1.1: - dependencies: - yallist: 3.1.1 - - lru-cache@6.0.0: - dependencies: - yallist: 4.0.0 - - lru-cache@7.18.3: {} - - lunr@2.3.9: {} - - macos-release@2.5.1: {} - - magic-string@0.30.10: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - - make-dir@4.0.0: - dependencies: - semver: 7.7.4 - - make-fetch-happen@10.2.1: - dependencies: - agentkeepalive: 4.6.0 - cacache: 16.1.3 - http-cache-semantics: 4.2.0 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 - is-lambda: 1.0.1 - lru-cache: 7.18.3 - minipass: 3.3.6 - minipass-collect: 1.0.2 - minipass-fetch: 2.1.2 - minipass-flush: 1.0.5 - minipass-pipeline: 1.2.4 - negotiator: 0.6.4 - promise-retry: 2.0.1 - socks-proxy-agent: 7.0.0 - ssri: 9.0.1 - transitivePeerDependencies: - - bluebird - - supports-color - - make-fetch-happen@11.1.1: - dependencies: - agentkeepalive: 4.6.0 - cacache: 17.1.4 - http-cache-semantics: 4.2.0 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 - is-lambda: 1.0.1 - lru-cache: 7.18.3 - minipass: 5.0.0 - minipass-fetch: 3.0.5 - minipass-flush: 1.0.5 - minipass-pipeline: 1.2.4 - negotiator: 0.6.4 - promise-retry: 2.0.1 - socks-proxy-agent: 7.0.0 - ssri: 10.0.6 - transitivePeerDependencies: - - supports-color - - map-obj@1.0.1: {} - - map-obj@4.3.0: {} - - map-stream@0.0.7: {} - - marked@13.0.3: {} - - marked@7.0.3: {} - - math-intrinsics@1.1.0: {} - - media-typer@0.3.0: {} - - media-typer@1.1.0: {} - - meow@13.2.0: {} - - meow@9.0.0: - dependencies: - '@types/minimist': 1.2.5 - camelcase-keys: 6.2.2 - decamelize: 1.2.0 - decamelize-keys: 1.1.1 - hard-rejection: 2.1.0 - minimist-options: 4.1.0 - normalize-package-data: 3.0.3 - read-pkg-up: 7.0.1 - redent: 3.0.0 - trim-newlines: 3.0.1 - type-fest: 0.18.1 - yargs-parser: 20.2.9 - - merge-descriptors@1.0.3: {} - - merge-stream@2.0.0: {} - - merge2@1.4.1: {} - - methods@1.1.2: {} - - micromatch@4.0.8: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - - mime-db@1.52.0: {} - - mime-db@1.54.0: {} - - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 - - mime-types@3.0.2: - dependencies: - mime-db: 1.54.0 - - mime@1.6.0: {} - - mime@3.0.0: {} - - mime@4.1.0: {} - - mimic-fn@2.1.0: {} - - mimic-response@1.0.1: {} - - mimic-response@3.1.0: {} - - min-indent@1.0.1: {} - - minimalistic-assert@1.0.1: {} - - minimatch@10.2.4: - dependencies: - brace-expansion: 5.0.3 - - minimatch@3.1.5: - dependencies: - brace-expansion: 1.1.12 - - minimatch@5.1.9: - dependencies: - brace-expansion: 2.0.2 - - minimatch@9.0.8: - dependencies: - brace-expansion: 5.0.3 - - minimist-options@4.1.0: - dependencies: - arrify: 1.0.1 - is-plain-obj: 1.1.0 - kind-of: 6.0.3 - - minimist@1.2.8: {} - - minipass-collect@1.0.2: - dependencies: - minipass: 3.3.6 - - minipass-fetch@2.1.2: - dependencies: - minipass: 3.3.6 - minipass-sized: 1.0.3 - minizlib: 2.1.2 - optionalDependencies: - encoding: 0.1.13 - - minipass-fetch@3.0.5: - dependencies: - minipass: 7.1.3 - minipass-sized: 1.0.3 - minizlib: 2.1.2 - optionalDependencies: - encoding: 0.1.13 - - minipass-flush@1.0.5: - dependencies: - minipass: 3.3.6 - - minipass-json-stream@1.0.2: - dependencies: - jsonparse: 1.3.1 - minipass: 3.3.6 - - minipass-pipeline@1.2.4: - dependencies: - minipass: 3.3.6 - - minipass-sized@1.0.3: - dependencies: - minipass: 3.3.6 - - minipass@3.3.6: - dependencies: - yallist: 4.0.0 - - minipass@5.0.0: {} - - minipass@7.1.3: {} - - minizlib@2.1.2: - dependencies: - minipass: 3.3.6 - yallist: 4.0.0 - - mkdirp@1.0.4: {} - - mkdirp@3.0.1: {} - - mocha@11.7.5: - dependencies: - browser-stdout: 1.3.1 - chokidar: 4.0.3 - debug: 4.4.3(supports-color@8.1.1) - diff: 7.0.0 - escape-string-regexp: 4.0.0 - find-up: 5.0.0 - glob: 10.5.0 - he: 1.2.0 - is-path-inside: 3.0.3 - js-yaml: 4.1.1 - log-symbols: 4.1.0 - minimatch: 9.0.8 - ms: 2.1.3 - picocolors: 1.1.1 - serialize-javascript: 6.0.2 - strip-json-comments: 3.1.1 - supports-color: 8.1.1 - workerpool: 9.3.4 - yargs: 17.7.2 - yargs-parser: 21.1.1 - yargs-unparser: 2.0.0 - - module-not-found-error@1.0.1: {} - - moment@2.30.1: {} - - morgan@1.10.1: - dependencies: - basic-auth: 2.0.1 - debug: 2.6.9 - depd: 2.0.0 - on-finished: 2.3.0 - on-headers: 1.1.0 - transitivePeerDependencies: - - supports-color - - ms@2.0.0: {} - - ms@2.1.3: {} - - mute-stream@0.0.8: {} - - nan@2.25.0: - optional: true - - natural-compare-lite@1.4.0: {} - - natural-compare@1.4.0: {} - - ncp@2.0.0: {} - - negotiator@0.6.3: {} - - negotiator@0.6.4: {} - - neo-async@2.6.2: {} - - nock@14.0.11: - dependencies: - '@mswjs/interceptors': 0.41.3 - json-stringify-safe: 5.0.1 - propagate: 2.0.1 - - node-domexception@1.0.0: {} - - node-fetch@2.7.0(encoding@0.1.13): - dependencies: - whatwg-url: 5.0.0 - optionalDependencies: - encoding: 0.1.13 - - node-fetch@3.3.2: - dependencies: - data-uri-to-buffer: 4.0.1 - fetch-blob: 3.2.0 - formdata-polyfill: 4.0.10 - - node-gyp@9.4.1: - dependencies: - env-paths: 2.2.1 - exponential-backoff: 3.1.3 - glob: 7.2.3 - graceful-fs: 4.2.11 - make-fetch-happen: 10.2.1 - nopt: 6.0.0 - npmlog: 6.0.2 - rimraf: 3.0.2 - semver: 7.7.4 - tar: 6.2.1 - which: 2.0.2 - transitivePeerDependencies: - - bluebird - - supports-color - - node-releases@2.0.27: {} - - nopt@6.0.0: - dependencies: - abbrev: 1.1.1 - - nopt@7.2.1: - dependencies: - abbrev: 2.0.0 - - normalize-package-data@2.5.0: - dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.11 - semver: 5.7.2 - validate-npm-package-license: 3.0.4 - - normalize-package-data@3.0.3: - dependencies: - hosted-git-info: 4.1.0 - is-core-module: 2.16.1 - semver: 7.7.4 - validate-npm-package-license: 3.0.4 - - normalize-package-data@5.0.0: - dependencies: - hosted-git-info: 6.1.3 - is-core-module: 2.16.1 - semver: 7.7.4 - validate-npm-package-license: 3.0.4 - - normalize-path@3.0.0: {} - - normalize-url@6.1.0: {} - - npm-bundled@3.0.1: - dependencies: - npm-normalize-package-bin: 3.0.1 - - npm-install-checks@6.3.0: - dependencies: - semver: 7.7.4 - - npm-normalize-package-bin@3.0.1: {} - - npm-package-arg@10.1.0: - dependencies: - hosted-git-info: 6.1.3 - proc-log: 3.0.0 - semver: 7.7.4 - validate-npm-package-name: 5.0.1 - - npm-package-arg@8.1.5: - dependencies: - hosted-git-info: 4.1.0 - semver: 7.7.4 - validate-npm-package-name: 3.0.0 - - npm-packlist@7.0.4: - dependencies: - ignore-walk: 6.0.5 - - npm-packlist@8.0.2: - dependencies: - ignore-walk: 6.0.5 - - npm-pick-manifest@8.0.2: - dependencies: - npm-install-checks: 6.3.0 - npm-normalize-package-bin: 3.0.1 - npm-package-arg: 10.1.0 - semver: 7.7.4 - - npm-registry-fetch@14.0.5: - dependencies: - make-fetch-happen: 11.1.1 - minipass: 5.0.0 - minipass-fetch: 3.0.5 - minipass-json-stream: 1.0.2 - minizlib: 2.1.2 - npm-package-arg: 10.1.0 - proc-log: 3.0.0 - transitivePeerDependencies: - - supports-color - - npm-run-path@4.0.1: - dependencies: - path-key: 3.1.1 - - npmlog@6.0.2: - dependencies: - are-we-there-yet: 3.0.1 - console-control-strings: 1.1.0 - gauge: 4.0.4 - set-blocking: 2.0.0 - - npmlog@7.0.1: - dependencies: - are-we-there-yet: 4.0.2 - console-control-strings: 1.1.0 - gauge: 5.0.2 - set-blocking: 2.0.0 - - nth-check@2.1.1: - dependencies: - boolbase: 1.0.0 - - object-assign@4.1.1: {} - - object-inspect@1.13.4: {} - - object-is@1.1.6: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - - object-keys@1.1.1: {} - - object.assign@4.1.7: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - has-symbols: 1.1.0 - object-keys: 1.1.1 - - obuf@1.1.2: {} - - on-exit-leak-free@2.1.2: {} - - on-finished@2.3.0: - dependencies: - ee-first: 1.1.1 - - on-finished@2.4.1: - dependencies: - ee-first: 1.1.1 - - on-headers@1.1.0: {} - - once@1.4.0: - dependencies: - wrappy: 1.0.2 - - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - - open@8.4.0: - dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 - - opencollective-postinstall@2.0.3: {} - - optionator@0.9.4: - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.5 - - ora@5.4.1: - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.9.2 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - - os-name@4.0.1: - dependencies: - macos-release: 2.5.1 - windows-release: 4.0.0 - - os-tmpdir@1.0.2: {} - - outvariant@1.4.3: {} - - own-keys@1.0.1: - dependencies: - get-intrinsic: 1.3.0 - object-keys: 1.1.1 - safe-push-apply: 1.0.0 - - p-cancelable@2.1.1: {} - - p-limit@2.3.0: - dependencies: - p-try: 2.2.0 - - p-limit@3.1.0: - dependencies: - yocto-queue: 0.1.0 - - p-locate@4.1.0: - dependencies: - p-limit: 2.3.0 - - p-locate@5.0.0: - dependencies: - p-limit: 3.1.0 - - p-map@4.0.0: - dependencies: - aggregate-error: 3.1.0 - - p-try@2.2.0: {} - - pack-n-play@2.1.0: - dependencies: - '@npmcli/arborist': 6.5.1 - execa: 5.1.1 - npm-packlist: 8.0.2 - once: 1.4.0 - rimraf: 5.0.10 - tar: 6.2.1 - tmp: 0.2.3 - transitivePeerDependencies: - - bluebird - - supports-color - - package-json-from-dist@1.0.1: {} - - package-json@7.0.0: - dependencies: - got: 11.8.6 - registry-auth-token: 4.2.2 - registry-url: 5.1.0 - semver: 7.7.4 - - pacote@15.2.0: - dependencies: - '@npmcli/git': 4.1.0 - '@npmcli/installed-package-contents': 2.1.0 - '@npmcli/promise-spawn': 6.0.2 - '@npmcli/run-script': 6.0.2 - cacache: 17.1.4 - fs-minipass: 3.0.3 - minipass: 5.0.0 - npm-package-arg: 10.1.0 - npm-packlist: 7.0.4 - npm-pick-manifest: 8.0.2 - npm-registry-fetch: 14.0.5 - proc-log: 3.0.0 - promise-retry: 2.0.1 - read-package-json: 6.0.4 - read-package-json-fast: 3.0.2 - sigstore: 1.9.0 - ssri: 10.0.6 - tar: 6.2.1 - transitivePeerDependencies: - - bluebird - - supports-color - - pako@0.2.9: {} - - parent-module@1.0.1: - dependencies: - callsites: 3.1.0 - - parse-conflict-json@3.0.1: - dependencies: - json-parse-even-better-errors: 3.0.2 - just-diff: 6.0.2 - just-diff-apply: 5.5.0 - - parse-json@5.2.0: - dependencies: - '@babel/code-frame': 7.29.0 - error-ex: 1.3.4 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - - parse5-htmlparser2-tree-adapter@7.1.0: - dependencies: - domhandler: 5.0.3 - parse5: 7.3.0 - - parse5-parser-stream@7.1.2: - dependencies: - parse5: 7.3.0 - - parse5@7.3.0: - dependencies: - entities: 6.0.1 - - parseurl@1.3.3: {} - - path-browserify@1.0.1: {} - - path-exists@4.0.0: {} - - path-is-absolute@1.0.1: {} - - path-key@3.1.1: {} - - path-parse@1.0.7: {} - - path-scurry@1.11.1: - dependencies: - lru-cache: 10.4.3 - minipass: 7.1.3 - - path-to-regexp@0.1.12: {} - - path-type@4.0.0: {} - - pause-stream@0.0.11: - dependencies: - through: 2.3.8 - - pdfmake@0.2.23: - dependencies: - '@foliojs-fork/linebreak': 1.1.2 - '@foliojs-fork/pdfkit': 0.15.3 - iconv-lite: 0.7.2 - xmldoc: 2.0.3 - - picocolors@1.1.1: {} - - picomatch@2.3.1: {} - - picomatch@4.0.2: {} - - pidusage@3.0.2: - dependencies: - safe-buffer: 5.2.1 - - pino-abstract-transport@1.2.0: - dependencies: - readable-stream: 4.7.0 - split2: 4.2.0 - - pino-std-serializers@6.2.2: {} - - pino@8.21.0: - dependencies: - atomic-sleep: 1.0.0 - fast-redact: 3.5.0 - on-exit-leak-free: 2.1.2 - pino-abstract-transport: 1.2.0 - pino-std-serializers: 6.2.2 - process-warning: 3.0.0 - quick-format-unescaped: 4.0.4 - real-require: 0.2.0 - safe-stable-stringify: 2.5.0 - sonic-boom: 3.8.1 - thread-stream: 2.7.0 - - png-js@1.0.0: {} - - possible-typed-array-names@1.1.0: {} - - postcss-selector-parser@6.1.2: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - - prelude-ls@1.2.1: {} - - prettier-linter-helpers@1.0.1: - dependencies: - fast-diff: 1.3.0 - - prettier@3.3.3: {} - - prismjs@1.30.0: {} - - proc-log@3.0.0: {} - - process-nextick-args@2.0.1: {} - - process-warning@3.0.0: {} - - process@0.11.10: {} - - promise-all-reject-late@1.0.1: {} - - promise-call-limit@1.0.2: {} - - promise-inflight@1.0.1: {} - - promise-retry@2.0.1: - dependencies: - err-code: 2.0.3 - retry: 0.12.0 - - propagate@2.0.1: {} - - propagating-hammerjs@1.5.0: - dependencies: - hammerjs: 2.0.8 - - proxy-addr@2.0.7: - dependencies: - forwarded: 0.2.0 - ipaddr.js: 1.9.1 - - proxy-middleware@0.15.0: {} - - proxyquire@2.1.3: - dependencies: - fill-keys: 1.0.2 - module-not-found-error: 1.0.1 - resolve: 1.22.11 - - pump@3.0.3: - dependencies: - end-of-stream: 1.4.5 - once: 1.4.0 - - punycode@1.4.1: {} - - punycode@2.3.1: {} - - qs@6.14.2: - dependencies: - side-channel: 1.1.0 - - qs@6.15.0: - dependencies: - side-channel: 1.1.0 - - queue-microtask@1.2.3: {} - - quick-format-unescaped@4.0.4: {} - - quick-lru@4.0.1: {} - - quick-lru@5.1.1: {} - - randombytes@2.1.0: - dependencies: - safe-buffer: 5.2.1 - - range-parser@1.2.1: {} - - raw-body@2.5.3: - dependencies: - bytes: 3.1.2 - http-errors: 2.0.1 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - - rc@1.2.8: - dependencies: - deep-extend: 0.6.0 - ini: 1.3.8 - minimist: 1.2.8 - strip-json-comments: 2.0.1 - - read-cmd-shim@4.0.0: {} - - read-package-json-fast@3.0.2: - dependencies: - json-parse-even-better-errors: 3.0.2 - npm-normalize-package-bin: 3.0.1 - - read-package-json@6.0.4: - dependencies: - glob: 10.5.0 - json-parse-even-better-errors: 3.0.2 - normalize-package-data: 5.0.0 - npm-normalize-package-bin: 3.0.1 - - read-pkg-up@7.0.1: - dependencies: - find-up: 4.1.0 - read-pkg: 5.2.0 - type-fest: 0.8.1 - - read-pkg@5.2.0: - dependencies: - '@types/normalize-package-data': 2.4.4 - normalize-package-data: 2.5.0 - parse-json: 5.2.0 - type-fest: 0.6.0 - - readable-stream@2.3.8: - dependencies: - core-util-is: 1.0.3 - 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 - - readable-stream@3.6.2: - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - - readable-stream@4.7.0: - dependencies: - abort-controller: 3.0.0 - buffer: 6.0.3 - events: 3.3.0 - process: 0.11.10 - string_decoder: 1.3.0 - - readdirp@3.6.0: - dependencies: - picomatch: 2.3.1 - - readdirp@4.1.2: {} - - real-require@0.2.0: {} - - redent@3.0.0: - dependencies: - indent-string: 4.0.0 - strip-indent: 3.0.0 - - reflect.getprototypeof@1.0.10: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - which-builtin-type: 1.2.1 - - regenerate-unicode-properties@10.2.2: - dependencies: - regenerate: 1.4.2 - - regenerate@1.4.2: {} - - regexp.prototype.flags@1.5.4: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-errors: 1.3.0 - get-proto: 1.0.1 - gopd: 1.2.0 - set-function-name: 2.0.2 - - regexpp@3.2.0: {} - - regexpu-core@6.4.0: - dependencies: - regenerate: 1.4.2 - regenerate-unicode-properties: 10.2.2 - regjsgen: 0.8.0 - regjsparser: 0.13.0 - unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.2.1 - - registry-auth-token@4.2.2: - dependencies: - rc: 1.2.8 - - registry-url@5.1.0: - dependencies: - rc: 1.2.8 - - regjsgen@0.8.0: {} - - regjsparser@0.13.0: - dependencies: - jsesc: 3.1.0 - - require-directory@2.1.1: {} - - require-from-string@2.0.2: {} - - resolve-alpn@1.2.1: {} - - resolve-from@4.0.0: {} - - resolve@1.22.11: - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - responselike@2.0.1: - dependencies: - lowercase-keys: 2.0.0 - - restify-errors@8.1.0: - dependencies: - '@netflix/nerror': 1.1.3 - assert-plus: 1.0.0 - lodash: 4.17.23 - optionalDependencies: - safe-json-stringify: 1.2.0 - - restify@11.1.0: - dependencies: - assert-plus: 1.0.0 - csv: 6.4.1 - escape-regexp-component: 1.0.2 - ewma: 2.0.1 - find-my-way: 7.7.0 - formidable: 1.2.6 - http-signature: 1.4.0 - lodash: 4.17.23 - lru-cache: 7.18.3 - mime: 3.0.0 - negotiator: 0.6.4 - once: 1.4.0 - pidusage: 3.0.2 - pino: 8.21.0 - qs: 6.15.0 - restify-errors: 8.1.0 - semver: 7.7.4 - send: 0.18.0 - spdy: 4.0.2 - uuid: 9.0.1 - vasync: 2.2.1 - optionalDependencies: - dtrace-provider: 0.8.8 - transitivePeerDependencies: - - supports-color - - restore-cursor@3.1.0: - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - - ret@0.2.2: {} - - retry-request@8.0.2: - dependencies: - extend: 3.0.2 - teeny-request: 10.1.0 - transitivePeerDependencies: - - supports-color - - retry@0.12.0: {} - - reusify@1.1.0: {} - - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - - rimraf@5.0.10: - dependencies: - glob: 10.5.0 - - run-async@2.4.1: {} - - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - - rxjs@6.6.7: - dependencies: - tslib: 1.14.1 - - rxjs@7.8.1: - dependencies: - tslib: 2.8.1 - - safe-array-concat@1.1.3: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - has-symbols: 1.1.0 - isarray: 2.0.5 - - safe-buffer@5.1.2: {} - - safe-buffer@5.2.1: {} - - safe-json-stringify@1.2.0: - optional: true - - safe-push-apply@1.0.0: - dependencies: - es-errors: 1.3.0 - isarray: 2.0.5 - - safe-regex-test@1.1.0: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-regex: 1.2.1 - - safe-regex2@2.0.0: - dependencies: - ret: 0.2.2 - - safe-stable-stringify@2.5.0: {} - - safer-buffer@2.1.2: {} - - sax@1.4.4: {} - - select-hose@2.0.0: {} - - semver@5.7.2: {} - - semver@6.3.1: {} - - semver@7.7.4: {} - - send@0.18.0: - dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 0.5.2 - http-errors: 2.0.0 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.1 - transitivePeerDependencies: - - supports-color - - send@0.19.2: - dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 2.0.0 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 0.5.2 - http-errors: 2.0.1 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.2 - transitivePeerDependencies: - - supports-color - - send@1.2.1: - dependencies: - debug: 4.4.3(supports-color@8.1.1) - encodeurl: 2.0.0 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 2.0.0 - http-errors: 2.0.1 - mime-types: 3.0.2 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.2 - transitivePeerDependencies: - - supports-color - - serialize-javascript@6.0.2: - dependencies: - randombytes: 2.1.0 - - serve-index@1.9.2: - dependencies: - accepts: 1.3.8 - batch: 0.6.1 - debug: 2.6.9 - escape-html: 1.0.3 - http-errors: 1.8.1 - mime-types: 2.1.35 - parseurl: 1.3.3 - transitivePeerDependencies: - - supports-color - - serve-static@1.16.3: - dependencies: - encodeurl: 2.0.0 - escape-html: 1.0.3 - parseurl: 1.3.3 - send: 0.19.2 - transitivePeerDependencies: - - supports-color - - server-destroy@1.0.1: {} - - set-blocking@2.0.0: {} - - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - - set-function-name@2.0.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - functions-have-names: 1.2.3 - has-property-descriptors: 1.0.2 - - set-proto@1.0.0: - dependencies: - dunder-proto: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - - setprototypeof@1.2.0: {} - - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@3.0.0: {} - - side-channel-list@1.0.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - - side-channel-map@1.0.1: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.4 - - side-channel-weakmap@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.4 - side-channel-map: 1.0.1 - - side-channel@1.1.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - side-channel-list: 1.0.0 - side-channel-map: 1.0.1 - side-channel-weakmap: 1.0.2 - - signal-exit@3.0.7: {} - - signal-exit@4.1.0: {} - - sigstore@1.9.0: - dependencies: - '@sigstore/bundle': 1.1.0 - '@sigstore/protobuf-specs': 0.2.1 - '@sigstore/sign': 1.0.0 - '@sigstore/tuf': 1.0.3 - make-fetch-happen: 11.1.1 - transitivePeerDependencies: - - supports-color - - slash@3.0.0: {} - - smart-buffer@4.2.0: {} - - socks-proxy-agent@7.0.0: - dependencies: - agent-base: 6.0.2 - debug: 4.4.3(supports-color@8.1.1) - socks: 2.8.7 - transitivePeerDependencies: - - supports-color - - socks@2.8.7: - dependencies: - ip-address: 10.1.0 - smart-buffer: 4.2.0 - - sonic-boom@3.8.1: - dependencies: - atomic-sleep: 1.0.0 - - source-map@0.6.1: {} - - source-map@0.7.4: {} - - spdx-compare@1.0.0: - dependencies: - array-find-index: 1.0.2 - spdx-expression-parse: 3.0.1 - spdx-ranges: 2.1.1 - - spdx-correct@3.2.0: - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.23 - - spdx-exceptions@2.5.0: {} - - spdx-expression-parse@3.0.1: - dependencies: - spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.23 - - spdx-license-ids@3.0.23: {} - - spdx-ranges@2.1.1: {} - - spdx-satisfies@5.0.1: - dependencies: - spdx-compare: 1.0.0 - spdx-expression-parse: 3.0.1 - spdx-ranges: 2.1.1 - - spdy-transport@3.0.0: - dependencies: - debug: 4.4.3(supports-color@8.1.1) - detect-node: 2.1.0 - hpack.js: 2.1.6 - obuf: 1.1.2 - readable-stream: 3.6.2 - wbuf: 1.7.3 - transitivePeerDependencies: - - supports-color - - spdy@4.0.2: - dependencies: - debug: 4.4.3(supports-color@8.1.1) - handle-thing: 2.0.1 - http-deceiver: 1.2.7 - select-hose: 2.0.0 - spdy-transport: 3.0.0 - transitivePeerDependencies: - - supports-color - - split2@4.2.0: {} - - split@1.0.1: - dependencies: - through: 2.3.8 - - sprintf-js@1.0.3: {} - - srcset@5.0.3: {} - - sshpk@1.18.0: - dependencies: - asn1: 0.2.6 - 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 - - ssri@10.0.6: - dependencies: - minipass: 7.1.3 - - ssri@9.0.1: - dependencies: - minipass: 3.3.6 - - statuses@1.5.0: {} - - statuses@2.0.1: {} - - statuses@2.0.2: {} - - stop-iteration-iterator@1.1.0: - dependencies: - es-errors: 1.3.0 - internal-slot: 1.1.0 - - stream-combiner@0.2.2: - dependencies: - duplexer: 0.1.2 - through: 2.3.8 - - stream-events@1.0.5: - dependencies: - stubs: 3.0.0 - - stream-shift@1.0.3: {} - - stream-transform@3.4.0: {} - - strict-event-emitter@0.5.1: {} - - string-width@4.2.3: - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - string-width@5.1.2: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.2 - - string.prototype.trim@1.2.10: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-data-property: 1.1.4 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-object-atoms: 1.1.1 - has-property-descriptors: 1.0.2 - - string.prototype.trimend@1.0.9: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - string.prototype.trimstart@1.0.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - string_decoder@1.1.1: - dependencies: - safe-buffer: 5.1.2 - - string_decoder@1.3.0: - dependencies: - safe-buffer: 5.2.1 - - strip-ansi@6.0.1: - dependencies: - ansi-regex: 5.0.1 - - strip-ansi@7.1.2: - dependencies: - ansi-regex: 6.2.2 - - strip-final-newline@2.0.0: {} - - strip-indent@3.0.0: - dependencies: - min-indent: 1.0.1 - - strip-json-comments@2.0.1: {} - - strip-json-comments@3.1.1: {} - - stubs@3.0.0: {} - - supports-color@7.2.0: - dependencies: - has-flag: 4.0.0 - - supports-color@8.1.1: - dependencies: - has-flag: 4.0.0 - - supports-preserve-symlinks-flag@1.0.0: {} - - svg-pan-zoom@3.6.2: {} - - synckit@0.9.3: - dependencies: - '@pkgr/core': 0.1.2 - tslib: 2.8.1 - - tablesort@5.6.0: {} - - tar@6.2.1: - dependencies: - chownr: 2.0.0 - fs-minipass: 2.1.0 - minipass: 5.0.0 - minizlib: 2.1.2 - mkdirp: 1.0.4 - yallist: 4.0.0 - - teeny-request@10.1.0: - dependencies: - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 - node-fetch: 3.3.2 - stream-events: 1.0.5 - transitivePeerDependencies: - - supports-color - - teeny-request@7.1.1(encoding@0.1.13): - dependencies: - http-proxy-agent: 4.0.1 - https-proxy-agent: 5.0.1 - node-fetch: 2.7.0(encoding@0.1.13) - stream-events: 1.0.5 - uuid: 8.3.2 - transitivePeerDependencies: - - encoding - - supports-color - - test-exclude@7.0.2: - dependencies: - '@istanbuljs/schema': 0.1.3 - glob: 10.5.0 - minimatch: 10.2.4 - - text-table@0.2.0: {} - - thread-stream@2.7.0: - dependencies: - real-require: 0.2.0 - - through@2.3.8: {} - - tiny-inflate@1.0.3: {} - - tmp@0.0.33: - dependencies: - os-tmpdir: 1.0.2 - - tmp@0.2.3: {} - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - toidentifier@1.0.1: {} - - tr46@0.0.3: {} - - traverse@0.6.11: - dependencies: - gopd: 1.2.0 - typedarray.prototype.slice: 1.0.5 - which-typed-array: 1.1.20 - - treeverse@3.0.0: {} - - trim-newlines@3.0.1: {} - - ts-morph@22.0.0: - dependencies: - '@ts-morph/common': 0.23.0 - code-block-writer: 13.0.3 - - tslib@1.14.1: {} - - tslib@2.8.1: {} - - tsscmp@1.0.6: {} - - tsutils@3.21.0(typescript@5.9.3): - dependencies: - tslib: 1.14.1 - typescript: 5.9.3 - - tuf-js@1.1.7: - dependencies: - '@tufjs/models': 1.0.4 - debug: 4.4.3(supports-color@8.1.1) - make-fetch-happen: 11.1.1 - transitivePeerDependencies: - - supports-color - - tweetnacl@0.14.5: {} - - type-check@0.4.0: - dependencies: - prelude-ls: 1.2.1 - - type-fest@0.18.1: {} - - type-fest@0.20.2: {} - - type-fest@0.21.3: {} - - type-fest@0.6.0: {} - - type-fest@0.8.1: {} - - type-is@1.6.18: - dependencies: - media-typer: 0.3.0 - mime-types: 2.1.35 - - type-is@2.0.1: - dependencies: - content-type: 1.0.5 - media-typer: 1.1.0 - mime-types: 3.0.2 - - typed-array-buffer@1.0.3: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-typed-array: 1.1.15 - - typed-array-byte-length@1.0.3: - dependencies: - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - - typed-array-byte-offset@1.0.4: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - reflect.getprototypeof: 1.0.10 - - typed-array-length@1.0.7: - dependencies: - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - is-typed-array: 1.1.15 - possible-typed-array-names: 1.1.0 - reflect.getprototypeof: 1.0.10 - - typedarray.prototype.slice@1.0.5: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-errors: 1.3.0 - get-proto: 1.0.1 - math-intrinsics: 1.1.0 - typed-array-buffer: 1.0.3 - typed-array-byte-offset: 1.0.4 - - typescript@5.9.3: {} - - uglify-js@3.19.3: - optional: true - - unbox-primitive@1.1.0: - dependencies: - call-bound: 1.0.4 - has-bigints: 1.1.0 - has-symbols: 1.1.0 - which-boxed-primitive: 1.1.1 - - undici-types@7.16.0: {} - - undici@6.23.0: {} - - unicode-canonical-property-names-ecmascript@2.0.1: {} - - unicode-match-property-ecmascript@2.0.0: - dependencies: - unicode-canonical-property-names-ecmascript: 2.0.1 - unicode-property-aliases-ecmascript: 2.2.0 - - unicode-match-property-value-ecmascript@2.2.1: {} - - unicode-properties@1.4.1: - dependencies: - base64-js: 1.5.1 - unicode-trie: 2.0.0 - - unicode-property-aliases-ecmascript@2.2.0: {} - - unicode-trie@2.0.0: - dependencies: - pako: 0.2.9 - tiny-inflate: 1.0.3 - - unique-filename@2.0.1: - dependencies: - unique-slug: 3.0.0 - - unique-filename@3.0.0: - dependencies: - unique-slug: 4.0.0 - - unique-slug@3.0.0: - dependencies: - imurmurhash: 0.1.4 - - unique-slug@4.0.0: - dependencies: - imurmurhash: 0.1.4 - - universalify@2.0.1: {} - - unix-crypt-td-js@1.1.4: {} - - unpipe@1.0.0: {} - - update-browserslist-db@1.2.3(browserslist@4.28.1): - dependencies: - browserslist: 4.28.1 - escalade: 3.2.0 - picocolors: 1.1.1 - - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - - urlgrey@1.0.0: - dependencies: - fast-url-parser: 1.1.3 - - util-deprecate@1.0.2: {} - - utils-merge@1.0.1: {} - - uuid@8.3.2: {} - - uuid@9.0.1: {} - - v8-to-istanbul@9.3.0: - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - '@types/istanbul-lib-coverage': 2.0.6 - convert-source-map: 2.0.0 - - validate-npm-package-license@3.0.4: - dependencies: - spdx-correct: 3.2.0 - spdx-expression-parse: 3.0.1 - - validate-npm-package-name@3.0.0: - dependencies: - builtins: 1.0.3 - - validate-npm-package-name@5.0.1: {} - - vary@1.1.2: {} - - vasync@2.2.1: - dependencies: - verror: 1.10.0 - - verror@1.10.0: - dependencies: - assert-plus: 1.0.0 - core-util-is: 1.0.2 - extsprintf: 1.4.1 - - vis@4.21.0-EOL: - dependencies: - emitter-component: 1.1.2 - hammerjs: 2.0.8 - keycharm: 0.2.0 - moment: 2.30.1 - propagating-hammerjs: 1.5.0 - - walk-up-path@3.0.1: {} - - wbuf@1.7.3: - dependencies: - minimalistic-assert: 1.0.1 - - wcwidth@1.0.1: - dependencies: - defaults: 1.0.4 - - web-streams-polyfill@3.3.3: {} - - webidl-conversions@3.0.1: {} - - websocket-driver@0.7.4: - dependencies: - http-parser-js: 0.5.10 - safe-buffer: 5.2.1 - websocket-extensions: 0.1.4 - - websocket-extensions@0.1.4: {} - - whatwg-encoding@3.1.1: - dependencies: - iconv-lite: 0.6.3 - - whatwg-mimetype@4.0.0: {} - - whatwg-url@5.0.0: - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - - which-boxed-primitive@1.1.1: - dependencies: - is-bigint: 1.1.0 - is-boolean-object: 1.2.2 - is-number-object: 1.1.1 - is-string: 1.1.1 - is-symbol: 1.1.1 - - which-builtin-type@1.2.1: - dependencies: - call-bound: 1.0.4 - function.prototype.name: 1.1.8 - has-tostringtag: 1.0.2 - is-async-function: 2.1.1 - is-date-object: 1.1.0 - is-finalizationregistry: 1.1.1 - is-generator-function: 1.1.2 - is-regex: 1.2.1 - is-weakref: 1.1.1 - isarray: 2.0.5 - which-boxed-primitive: 1.1.1 - which-collection: 1.0.2 - which-typed-array: 1.1.20 - - which-collection@1.0.2: - dependencies: - is-map: 2.0.3 - is-set: 2.0.3 - is-weakmap: 2.0.2 - is-weakset: 2.0.4 - - which-typed-array@1.1.20: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.4 - for-each: 0.3.5 - get-proto: 1.0.1 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - which@3.0.1: - dependencies: - isexe: 2.0.0 - - wide-align@1.1.5: - dependencies: - string-width: 4.2.3 - - windows-release@4.0.0: - dependencies: - execa: 4.1.0 - - word-wrap@1.2.5: {} - - wordwrap@1.0.0: {} - - workerpool@9.3.4: {} - - wrap-ansi@7.0.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - wrap-ansi@8.1.0: - dependencies: - ansi-styles: 6.2.3 - string-width: 5.1.2 - strip-ansi: 7.1.2 - - wrappy@1.0.2: {} - - write-file-atomic@4.0.2: - dependencies: - imurmurhash: 0.1.4 - signal-exit: 3.0.7 - - write-file-atomic@5.0.1: - dependencies: - imurmurhash: 0.1.4 - signal-exit: 4.1.0 - - xmldoc@2.0.3: - dependencies: - sax: 1.4.4 - - y18n@5.0.8: {} - - yallist@3.1.1: {} - - yallist@4.0.0: {} - - yargs-parser@20.2.9: {} - - yargs-parser@21.1.1: {} - - yargs-unparser@2.0.0: - dependencies: - camelcase: 6.3.0 - decamelize: 4.0.0 - flat: 5.0.2 - is-plain-obj: 2.1.0 - - yargs@17.7.2: - dependencies: - cliui: 8.0.1 - escalade: 3.2.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 - - yocto-queue@0.1.0: {} - - zepto@1.2.0: {} From f6f0e65d3ae2332db2e654a499fdeda5a5f41a09 Mon Sep 17 00:00:00 2001 From: Gautam Sharda Date: Thu, 26 Feb 2026 18:38:31 +0000 Subject: [PATCH 499/527] chore: add pnpm overrides --- handwritten/error-reporting/package.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 1d1746a28d7..c443eccba6f 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -75,5 +75,11 @@ "tablesort": "5.6.0", "cheerio": "1.0.0" }, + "pnpm": { + "overrides": { + "tablesort": "5.6.0", + "cheerio": "1.0.0" + } + }, "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/handwritten/error-reporting" } From 9f78105c31c138dfe68dc75c9573fda1b9ff4229 Mon Sep 17 00:00:00 2001 From: Gautam Sharda Date: Thu, 26 Feb 2026 23:25:07 +0000 Subject: [PATCH 500/527] chore: remove yoshi-nodejs becuase it doesn't exist --- .github/CODEOWNERS | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 4cbf6f00522..ae7db338588 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -9,4 +9,3 @@ * @googleapis/cloud-sdk-nodejs-team /handwritten/bigquery @googleapis/bigquery-team /handwritten/cloud-profiler @googleapis/cloud-profiler-team -/handwritten/error-reporting @googleapis/yoshi-nodejs From 973273e2ce1d66850c5d4ae8666aca828321faf4 Mon Sep 17 00:00:00 2001 From: Gautam Sharda Date: Sat, 28 Feb 2026 00:15:40 +0000 Subject: [PATCH 501/527] chore: adapt owlbot.py for monorepo --- handwritten/error-reporting/owlbot.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/handwritten/error-reporting/owlbot.py b/handwritten/error-reporting/owlbot.py index 4a8b19e9c39..3902f6d577e 100644 --- a/handwritten/error-reporting/owlbot.py +++ b/handwritten/error-reporting/owlbot.py @@ -21,9 +21,9 @@ logging.basicConfig(level=logging.DEBUG) common_templates = gcp.CommonTemplates() -templates = common_templates.node_library() -s.copy(templates, excludes=[".github/auto-label.yaml", ".github/CODEOWNERS", ".github/sync-repo-settings.yaml"]) -node.fix() +templates = common_templates.node_mono_repo_library() +s.copy(templates, destination="handwritten/error-reporting") +node.fix_hermetic(relative_dir="handwritten/error-reporting") # -------------------------------------------------------------------------- @@ -32,16 +32,16 @@ # add shared environment variables to test configs s.move( - ".kokoro/common_env_vars.cfg", - ".kokoro/common.cfg", + "handwritten/error-reporting/.kokoro/common_env_vars.cfg", + "handwritten/error-reporting/.kokoro/common.cfg", merge=lambda src, dst, _, : f"{dst}\n{src}", ) -for path, subdirs, files in os.walk(f".kokoro/continuous"): +for path, subdirs, files in os.walk(f"handwritten/error-reporting/.kokoro/continuous"): for name in files: if name == "common.cfg": file_path = os.path.join(path, name) s.move( - ".kokoro/common_env_vars.cfg", + "handwritten/error-reporting/.kokoro/common_env_vars.cfg", file_path, merge=lambda src, dst, _, : f"{dst}\n{src}", ) From b42cfbe2b2e8327e3e800325ed3fdf18d730f2af Mon Sep 17 00:00:00 2001 From: Gautam Sharda Date: Sat, 28 Feb 2026 00:50:27 +0000 Subject: [PATCH 502/527] chore: add required argument --- handwritten/error-reporting/owlbot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/owlbot.py b/handwritten/error-reporting/owlbot.py index 3902f6d577e..1bf69c30581 100644 --- a/handwritten/error-reporting/owlbot.py +++ b/handwritten/error-reporting/owlbot.py @@ -21,7 +21,7 @@ logging.basicConfig(level=logging.DEBUG) common_templates = gcp.CommonTemplates() -templates = common_templates.node_mono_repo_library() +templates = common_templates.node_mono_repo_library(relative_dir="handwritten/error-reporting") s.copy(templates, destination="handwritten/error-reporting") node.fix_hermetic(relative_dir="handwritten/error-reporting") From e83f4d2e49e142c8faf545463f0dd467d49194bd Mon Sep 17 00:00:00 2001 From: Gautam Sharda Date: Tue, 3 Mar 2026 21:27:20 +0000 Subject: [PATCH 503/527] chore: make owlbot script idempotent --- handwritten/error-reporting/owlbot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/owlbot.py b/handwritten/error-reporting/owlbot.py index 1bf69c30581..840be541845 100644 --- a/handwritten/error-reporting/owlbot.py +++ b/handwritten/error-reporting/owlbot.py @@ -43,5 +43,5 @@ s.move( "handwritten/error-reporting/.kokoro/common_env_vars.cfg", file_path, - merge=lambda src, dst, _, : f"{dst}\n{src}", + merge=lambda src, dst, _: dst if src.strip() in dst else f"{dst.rstrip()}\n{src.strip()}\n", ) From 05249fe649334592f82ad86b8c23847bb97e7213 Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Tue, 3 Mar 2026 21:35:50 +0000 Subject: [PATCH 504/527] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot?= =?UTF-8?q?=20post-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- handwritten/error-reporting/.eslintignore | 1 - .../error-reporting/.kokoro/common.cfg | 20 ++++++++ .../.kokoro/continuous/node14/common.cfg | 20 ++++++++ handwritten/error-reporting/.mocharc.js | 2 +- handwritten/error-reporting/.prettierrc.js | 2 +- handwritten/error-reporting/README.md | 48 ++++--------------- 6 files changed, 51 insertions(+), 42 deletions(-) diff --git a/handwritten/error-reporting/.eslintignore b/handwritten/error-reporting/.eslintignore index c4a0963e9bd..ea5b04aebe6 100644 --- a/handwritten/error-reporting/.eslintignore +++ b/handwritten/error-reporting/.eslintignore @@ -5,4 +5,3 @@ build/ docs/ protos/ samples/generated/ -system-test/**/fixtures diff --git a/handwritten/error-reporting/.kokoro/common.cfg b/handwritten/error-reporting/.kokoro/common.cfg index e55448e95ac..49e57fb8f53 100644 --- a/handwritten/error-reporting/.kokoro/common.cfg +++ b/handwritten/error-reporting/.kokoro/common.cfg @@ -42,3 +42,23 @@ env_vars: { ################################################### + + +############################################# +# this section merged from .kokoro/common_env_vars.cfg using owlbot.py + +env_vars: { + key: "PRODUCT_AREA_LABEL" + value: "observability" +} +env_vars: { + key: "PRODUCT_LABEL" + value: "error-reporting" +} +env_vars: { + key: "LANGUAGE_LABEL" + value: "nodejs" +} + +################################################### + diff --git a/handwritten/error-reporting/.kokoro/continuous/node14/common.cfg b/handwritten/error-reporting/.kokoro/continuous/node14/common.cfg index e55448e95ac..49e57fb8f53 100644 --- a/handwritten/error-reporting/.kokoro/continuous/node14/common.cfg +++ b/handwritten/error-reporting/.kokoro/continuous/node14/common.cfg @@ -42,3 +42,23 @@ env_vars: { ################################################### + + +############################################# +# this section merged from .kokoro/common_env_vars.cfg using owlbot.py + +env_vars: { + key: "PRODUCT_AREA_LABEL" + value: "observability" +} +env_vars: { + key: "PRODUCT_LABEL" + value: "error-reporting" +} +env_vars: { + key: "LANGUAGE_LABEL" + value: "nodejs" +} + +################################################### + diff --git a/handwritten/error-reporting/.mocharc.js b/handwritten/error-reporting/.mocharc.js index 0b600509bed..2431859019f 100644 --- a/handwritten/error-reporting/.mocharc.js +++ b/handwritten/error-reporting/.mocharc.js @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2026 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/handwritten/error-reporting/.prettierrc.js b/handwritten/error-reporting/.prettierrc.js index d1b95106f4c..d2eddc2ed89 100644 --- a/handwritten/error-reporting/.prettierrc.js +++ b/handwritten/error-reporting/.prettierrc.js @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2026 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 161cc6a2b6a..279151ac527 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -2,25 +2,23 @@ [//]: # "To regenerate it, use `python -m synthtool`." Google Cloud Platform logo -# [Error Reporting: Node.js Client](https://github.com/googleapis/nodejs-error-reporting) +# [Error Reporting: Node.js Client](https://github.com/googleapis/google-cloud-node/tree/main/handwritten/error-reporting) [![release level](https://img.shields.io/badge/release%20level-stable-brightgreen.svg?style=flat)](https://cloud.google.com/terms/launch-stages) -[![npm version](https://img.shields.io/npm/v/@google-cloud/error-reporting.svg)](https://www.npmjs.org/package/@google-cloud/error-reporting) +[![npm version](https://img.shields.io/npm/v/@google-cloud/error-reporting.svg)](https://www.npmjs.com/package/@google-cloud/error-reporting) -> Node.js idiomatic client for [Error Reporting][product-docs]. - -[Error Reporting](https://cloud.google.com/error-reporting/docs/) aggregates and displays errors produced in your running cloud services. +Error Reporting Client Library for Node.js A comprehensive list of changes in each version may be found in -[the CHANGELOG](https://github.com/googleapis/nodejs-error-reporting/blob/main/CHANGELOG.md). +[the CHANGELOG](https://github.com/googleapis/google-cloud-node/tree/main/handwritten/error-reporting/CHANGELOG.md). * [Error Reporting Node.js Client API Reference][client-docs] * [Error Reporting Documentation][product-docs] -* [github.com/googleapis/nodejs-error-reporting](https://github.com/googleapis/nodejs-error-reporting) +* [github.com/googleapis/google-cloud-node/handwritten/error-reporting](https://github.com/googleapis/google-cloud-node/tree/main/handwritten/error-reporting) Read more about the client libraries for Cloud APIs, including the older Google APIs Client Libraries, in [Client Libraries Explained][explained]. @@ -45,7 +43,7 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. 1. [Select or create a Cloud Platform project][projects]. 1. [Enable the Error Reporting API][enable_api]. -1. [Set up authentication with a service account][auth] so you can access the +1. [Set up authentication][auth] so you can access the API from your local workstation. ### Installing the client library @@ -54,35 +52,7 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. npm install @google-cloud/error-reporting ``` -This module provides custom Error Reporting support for Node.js applications. -[Error Reporting](https://cloud.google.com/error-reporting/) is a feature of -Google Cloud Platform that allows in-depth monitoring and viewing of errors reported by -applications running in almost any environment. - -However, note that [@google-cloud/logging-winston](https://github.com/googleapis/nodejs-logging-winston) and [@google-cloud/logging-bunyan](https://github.com/googleapis/nodejs-logging-bunyan) automatically integrate with the Error Reporting service for Error objects logged at severity `error` or higher, for applications running on Google Cloud Platform. - -Thus, if you are already using Winston or Bunyan in your application, and don't need custom error reporting capabilities, you do not need to use the `@google-cloud/error-reporting` library directly to report errors to the Error Reporting Console. - -![Error Reporting overview](https://raw.githubusercontent.com/googleapis/nodejs-error-reporting/master/doc/images/errors-overview.png) - -# When Errors Are Reported - -The `reportMode` configuration option is used to specify when errors are reported to the Error Reporting Console. It can have one of three values: -* `'production'` (default): Only report errors if the NODE_ENV environment variable is set to "production". -* `'always'`: Always report errors regardless of the value of NODE_ENV. -* `'never'`: Never report errors regardless of the value of NODE_ENV. - -The `reportMode` configuration option replaces the deprecated `ignoreEnvironmentCheck` configuration option. If both the `reportMode` and `ignoreEnvironmentCheck` options are specified, the `reportMode` configuration option takes precedence. - -The `ignoreEnvironmentCheck` option should not be used. However, if it is used, and the `reportMode` option is not specified, it can have the values: -* `false` (default): Only report errors if the NODE_ENV environment variable is set to "production". -* `true`: Always report errors regardless of the value of NODE_ENV. - -## Setup, Configuration, and Examples - -See the documentation for setup instructions, configuration options, and examples: https://cloud.google.com/error-reporting/docs/setup/nodejs -Additional code samples can also be found here: https://github.com/GoogleCloudPlatform/nodejs-docs-samples/tree/main/error-reporting @@ -132,7 +102,7 @@ More Information: [Google Cloud Platform Launch Stages][launch_stages] ## Contributing -Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/nodejs-error-reporting/blob/main/CONTRIBUTING.md). +Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/google-cloud-node/blob/main/CONTRIBUTING.md). Please note that this `README.md`, the `samples/README.md`, and a variety of configuration files in this repository (including `.nycrc` and `tsconfig.json`) @@ -144,7 +114,7 @@ to its templates in Apache Version 2.0 -See [LICENSE](https://github.com/googleapis/nodejs-error-reporting/blob/main/LICENSE) +See [LICENSE](https://github.com/googleapis/google-cloud-node/blob/main/LICENSE) [client-docs]: https://cloud.google.com/nodejs/docs/reference/error-reporting/latest [product-docs]: https://cloud.google.com/error-reporting @@ -152,4 +122,4 @@ See [LICENSE](https://github.com/googleapis/nodejs-error-reporting/blob/main/LIC [projects]: https://console.cloud.google.com/project [billing]: https://support.google.com/cloud/answer/6293499#enable-billing [enable_api]: https://console.cloud.google.com/flows/enableapi?apiid=clouderrorreporting.googleapis.com -[auth]: https://cloud.google.com/docs/authentication/getting-started +[auth]: https://cloud.google.com/docs/authentication/external/set-up-adc-local From 1153f32b9c236918b893eaf2706b6ff490e8768d Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Tue, 3 Mar 2026 21:44:57 +0000 Subject: [PATCH 505/527] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot?= =?UTF-8?q?=20post-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- handwritten/error-reporting/.eslintignore | 1 - .../error-reporting/.kokoro/common.cfg | 20 ++++++++ handwritten/error-reporting/.mocharc.js | 2 +- handwritten/error-reporting/.prettierrc.js | 2 +- handwritten/error-reporting/README.md | 48 ++++--------------- .../src/request-extractors/hapi.ts | 6 ++- 6 files changed, 35 insertions(+), 44 deletions(-) diff --git a/handwritten/error-reporting/.eslintignore b/handwritten/error-reporting/.eslintignore index c4a0963e9bd..ea5b04aebe6 100644 --- a/handwritten/error-reporting/.eslintignore +++ b/handwritten/error-reporting/.eslintignore @@ -5,4 +5,3 @@ build/ docs/ protos/ samples/generated/ -system-test/**/fixtures diff --git a/handwritten/error-reporting/.kokoro/common.cfg b/handwritten/error-reporting/.kokoro/common.cfg index e55448e95ac..49e57fb8f53 100644 --- a/handwritten/error-reporting/.kokoro/common.cfg +++ b/handwritten/error-reporting/.kokoro/common.cfg @@ -42,3 +42,23 @@ env_vars: { ################################################### + + +############################################# +# this section merged from .kokoro/common_env_vars.cfg using owlbot.py + +env_vars: { + key: "PRODUCT_AREA_LABEL" + value: "observability" +} +env_vars: { + key: "PRODUCT_LABEL" + value: "error-reporting" +} +env_vars: { + key: "LANGUAGE_LABEL" + value: "nodejs" +} + +################################################### + diff --git a/handwritten/error-reporting/.mocharc.js b/handwritten/error-reporting/.mocharc.js index 0b600509bed..2431859019f 100644 --- a/handwritten/error-reporting/.mocharc.js +++ b/handwritten/error-reporting/.mocharc.js @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2026 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/handwritten/error-reporting/.prettierrc.js b/handwritten/error-reporting/.prettierrc.js index d1b95106f4c..d2eddc2ed89 100644 --- a/handwritten/error-reporting/.prettierrc.js +++ b/handwritten/error-reporting/.prettierrc.js @@ -1,4 +1,4 @@ -// Copyright 2020 Google LLC +// Copyright 2026 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 161cc6a2b6a..279151ac527 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -2,25 +2,23 @@ [//]: # "To regenerate it, use `python -m synthtool`." Google Cloud Platform logo -# [Error Reporting: Node.js Client](https://github.com/googleapis/nodejs-error-reporting) +# [Error Reporting: Node.js Client](https://github.com/googleapis/google-cloud-node/tree/main/handwritten/error-reporting) [![release level](https://img.shields.io/badge/release%20level-stable-brightgreen.svg?style=flat)](https://cloud.google.com/terms/launch-stages) -[![npm version](https://img.shields.io/npm/v/@google-cloud/error-reporting.svg)](https://www.npmjs.org/package/@google-cloud/error-reporting) +[![npm version](https://img.shields.io/npm/v/@google-cloud/error-reporting.svg)](https://www.npmjs.com/package/@google-cloud/error-reporting) -> Node.js idiomatic client for [Error Reporting][product-docs]. - -[Error Reporting](https://cloud.google.com/error-reporting/docs/) aggregates and displays errors produced in your running cloud services. +Error Reporting Client Library for Node.js A comprehensive list of changes in each version may be found in -[the CHANGELOG](https://github.com/googleapis/nodejs-error-reporting/blob/main/CHANGELOG.md). +[the CHANGELOG](https://github.com/googleapis/google-cloud-node/tree/main/handwritten/error-reporting/CHANGELOG.md). * [Error Reporting Node.js Client API Reference][client-docs] * [Error Reporting Documentation][product-docs] -* [github.com/googleapis/nodejs-error-reporting](https://github.com/googleapis/nodejs-error-reporting) +* [github.com/googleapis/google-cloud-node/handwritten/error-reporting](https://github.com/googleapis/google-cloud-node/tree/main/handwritten/error-reporting) Read more about the client libraries for Cloud APIs, including the older Google APIs Client Libraries, in [Client Libraries Explained][explained]. @@ -45,7 +43,7 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. 1. [Select or create a Cloud Platform project][projects]. 1. [Enable the Error Reporting API][enable_api]. -1. [Set up authentication with a service account][auth] so you can access the +1. [Set up authentication][auth] so you can access the API from your local workstation. ### Installing the client library @@ -54,35 +52,7 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. npm install @google-cloud/error-reporting ``` -This module provides custom Error Reporting support for Node.js applications. -[Error Reporting](https://cloud.google.com/error-reporting/) is a feature of -Google Cloud Platform that allows in-depth monitoring and viewing of errors reported by -applications running in almost any environment. - -However, note that [@google-cloud/logging-winston](https://github.com/googleapis/nodejs-logging-winston) and [@google-cloud/logging-bunyan](https://github.com/googleapis/nodejs-logging-bunyan) automatically integrate with the Error Reporting service for Error objects logged at severity `error` or higher, for applications running on Google Cloud Platform. - -Thus, if you are already using Winston or Bunyan in your application, and don't need custom error reporting capabilities, you do not need to use the `@google-cloud/error-reporting` library directly to report errors to the Error Reporting Console. - -![Error Reporting overview](https://raw.githubusercontent.com/googleapis/nodejs-error-reporting/master/doc/images/errors-overview.png) - -# When Errors Are Reported - -The `reportMode` configuration option is used to specify when errors are reported to the Error Reporting Console. It can have one of three values: -* `'production'` (default): Only report errors if the NODE_ENV environment variable is set to "production". -* `'always'`: Always report errors regardless of the value of NODE_ENV. -* `'never'`: Never report errors regardless of the value of NODE_ENV. - -The `reportMode` configuration option replaces the deprecated `ignoreEnvironmentCheck` configuration option. If both the `reportMode` and `ignoreEnvironmentCheck` options are specified, the `reportMode` configuration option takes precedence. - -The `ignoreEnvironmentCheck` option should not be used. However, if it is used, and the `reportMode` option is not specified, it can have the values: -* `false` (default): Only report errors if the NODE_ENV environment variable is set to "production". -* `true`: Always report errors regardless of the value of NODE_ENV. - -## Setup, Configuration, and Examples - -See the documentation for setup instructions, configuration options, and examples: https://cloud.google.com/error-reporting/docs/setup/nodejs -Additional code samples can also be found here: https://github.com/GoogleCloudPlatform/nodejs-docs-samples/tree/main/error-reporting @@ -132,7 +102,7 @@ More Information: [Google Cloud Platform Launch Stages][launch_stages] ## Contributing -Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/nodejs-error-reporting/blob/main/CONTRIBUTING.md). +Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/google-cloud-node/blob/main/CONTRIBUTING.md). Please note that this `README.md`, the `samples/README.md`, and a variety of configuration files in this repository (including `.nycrc` and `tsconfig.json`) @@ -144,7 +114,7 @@ to its templates in Apache Version 2.0 -See [LICENSE](https://github.com/googleapis/nodejs-error-reporting/blob/main/LICENSE) +See [LICENSE](https://github.com/googleapis/google-cloud-node/blob/main/LICENSE) [client-docs]: https://cloud.google.com/nodejs/docs/reference/error-reporting/latest [product-docs]: https://cloud.google.com/error-reporting @@ -152,4 +122,4 @@ See [LICENSE](https://github.com/googleapis/nodejs-error-reporting/blob/main/LIC [projects]: https://console.cloud.google.com/project [billing]: https://support.google.com/cloud/answer/6293499#enable-billing [enable_api]: https://console.cloud.google.com/flows/enableapi?apiid=clouderrorreporting.googleapis.com -[auth]: https://cloud.google.com/docs/authentication/getting-started +[auth]: https://cloud.google.com/docs/authentication/external/set-up-adc-local diff --git a/handwritten/error-reporting/src/request-extractors/hapi.ts b/handwritten/error-reporting/src/request-extractors/hapi.ts index 06ca36f767e..7193332021f 100644 --- a/handwritten/error-reporting/src/request-extractors/hapi.ts +++ b/handwritten/error-reporting/src/request-extractors/hapi.ts @@ -65,7 +65,9 @@ function extractRemoteAddressFromRequest(req: hapi.Request) { /** * Helper to normalize headers that might be arrays into a single string. */ -function getSingleHeader(val: string | string[] | undefined): string | undefined { +function getSingleHeader( + val: string | string[] | undefined, +): string | undefined { return Array.isArray(val) ? val[0] : val; } @@ -106,4 +108,4 @@ export function hapiRequestInformationExtractor(req?: hapi.Request) { .setRemoteAddress(getSingleHeader(extractRemoteAddressFromRequest(req!))); return returnObject; -} \ No newline at end of file +} From 56dc752b79c420af014ee1169d63e91b57530354 Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Tue, 3 Mar 2026 21:49:43 +0000 Subject: [PATCH 506/527] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot?= =?UTF-8?q?=20post-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- .../error-reporting/.kokoro/common.cfg | 20 +++++++++++++++++++ .../src/request-extractors/hapi.ts | 6 ++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/.kokoro/common.cfg b/handwritten/error-reporting/.kokoro/common.cfg index 49e57fb8f53..6c9eb719cf3 100644 --- a/handwritten/error-reporting/.kokoro/common.cfg +++ b/handwritten/error-reporting/.kokoro/common.cfg @@ -44,6 +44,26 @@ env_vars: { +############################################# +# this section merged from .kokoro/common_env_vars.cfg using owlbot.py + +env_vars: { + key: "PRODUCT_AREA_LABEL" + value: "observability" +} +env_vars: { + key: "PRODUCT_LABEL" + value: "error-reporting" +} +env_vars: { + key: "LANGUAGE_LABEL" + value: "nodejs" +} + +################################################### + + + ############################################# # this section merged from .kokoro/common_env_vars.cfg using owlbot.py diff --git a/handwritten/error-reporting/src/request-extractors/hapi.ts b/handwritten/error-reporting/src/request-extractors/hapi.ts index 06ca36f767e..7193332021f 100644 --- a/handwritten/error-reporting/src/request-extractors/hapi.ts +++ b/handwritten/error-reporting/src/request-extractors/hapi.ts @@ -65,7 +65,9 @@ function extractRemoteAddressFromRequest(req: hapi.Request) { /** * Helper to normalize headers that might be arrays into a single string. */ -function getSingleHeader(val: string | string[] | undefined): string | undefined { +function getSingleHeader( + val: string | string[] | undefined, +): string | undefined { return Array.isArray(val) ? val[0] : val; } @@ -106,4 +108,4 @@ export function hapiRequestInformationExtractor(req?: hapi.Request) { .setRemoteAddress(getSingleHeader(extractRemoteAddressFromRequest(req!))); return returnObject; -} \ No newline at end of file +} From cbf10e257e2c08f87c916cbd4bea7463fc1b815b Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Tue, 3 Mar 2026 21:57:37 +0000 Subject: [PATCH 507/527] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot?= =?UTF-8?q?=20post-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- .../error-reporting/.kokoro/common.cfg | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/handwritten/error-reporting/.kokoro/common.cfg b/handwritten/error-reporting/.kokoro/common.cfg index 49e57fb8f53..6c9eb719cf3 100644 --- a/handwritten/error-reporting/.kokoro/common.cfg +++ b/handwritten/error-reporting/.kokoro/common.cfg @@ -44,6 +44,26 @@ env_vars: { +############################################# +# this section merged from .kokoro/common_env_vars.cfg using owlbot.py + +env_vars: { + key: "PRODUCT_AREA_LABEL" + value: "observability" +} +env_vars: { + key: "PRODUCT_LABEL" + value: "error-reporting" +} +env_vars: { + key: "LANGUAGE_LABEL" + value: "nodejs" +} + +################################################### + + + ############################################# # this section merged from .kokoro/common_env_vars.cfg using owlbot.py From 83c63dcd6f995993108ffc6e38f3af1fd87191ac Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Tue, 3 Mar 2026 21:58:59 +0000 Subject: [PATCH 508/527] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot?= =?UTF-8?q?=20post-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- .../error-reporting/.kokoro/common.cfg | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/handwritten/error-reporting/.kokoro/common.cfg b/handwritten/error-reporting/.kokoro/common.cfg index 6c9eb719cf3..eb03b2d2a3a 100644 --- a/handwritten/error-reporting/.kokoro/common.cfg +++ b/handwritten/error-reporting/.kokoro/common.cfg @@ -64,6 +64,26 @@ env_vars: { +############################################# +# this section merged from .kokoro/common_env_vars.cfg using owlbot.py + +env_vars: { + key: "PRODUCT_AREA_LABEL" + value: "observability" +} +env_vars: { + key: "PRODUCT_LABEL" + value: "error-reporting" +} +env_vars: { + key: "LANGUAGE_LABEL" + value: "nodejs" +} + +################################################### + + + ############################################# # this section merged from .kokoro/common_env_vars.cfg using owlbot.py From 246b2badb667ecc85d6eb5cd8871921621c8e483 Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Tue, 3 Mar 2026 22:09:29 +0000 Subject: [PATCH 509/527] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot?= =?UTF-8?q?=20post-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- .../error-reporting/.kokoro/common.cfg | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/handwritten/error-reporting/.kokoro/common.cfg b/handwritten/error-reporting/.kokoro/common.cfg index eb03b2d2a3a..1bb0aa1116d 100644 --- a/handwritten/error-reporting/.kokoro/common.cfg +++ b/handwritten/error-reporting/.kokoro/common.cfg @@ -84,6 +84,26 @@ env_vars: { +############################################# +# this section merged from .kokoro/common_env_vars.cfg using owlbot.py + +env_vars: { + key: "PRODUCT_AREA_LABEL" + value: "observability" +} +env_vars: { + key: "PRODUCT_LABEL" + value: "error-reporting" +} +env_vars: { + key: "LANGUAGE_LABEL" + value: "nodejs" +} + +################################################### + + + ############################################# # this section merged from .kokoro/common_env_vars.cfg using owlbot.py From 8481701e0bad62b4d3edc169beabaa554e56e6a0 Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Tue, 3 Mar 2026 22:17:44 +0000 Subject: [PATCH 510/527] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot?= =?UTF-8?q?=20post-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- .../error-reporting/.kokoro/common.cfg | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/handwritten/error-reporting/.kokoro/common.cfg b/handwritten/error-reporting/.kokoro/common.cfg index eb03b2d2a3a..1bb0aa1116d 100644 --- a/handwritten/error-reporting/.kokoro/common.cfg +++ b/handwritten/error-reporting/.kokoro/common.cfg @@ -84,6 +84,26 @@ env_vars: { +############################################# +# this section merged from .kokoro/common_env_vars.cfg using owlbot.py + +env_vars: { + key: "PRODUCT_AREA_LABEL" + value: "observability" +} +env_vars: { + key: "PRODUCT_LABEL" + value: "error-reporting" +} +env_vars: { + key: "LANGUAGE_LABEL" + value: "nodejs" +} + +################################################### + + + ############################################# # this section merged from .kokoro/common_env_vars.cfg using owlbot.py From c5c2966c42ad8d394d8ba75e13c4773098f97cff Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Tue, 3 Mar 2026 22:22:10 +0000 Subject: [PATCH 511/527] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot?= =?UTF-8?q?=20post-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- .../error-reporting/.kokoro/common.cfg | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/handwritten/error-reporting/.kokoro/common.cfg b/handwritten/error-reporting/.kokoro/common.cfg index 1bb0aa1116d..e9c7869e329 100644 --- a/handwritten/error-reporting/.kokoro/common.cfg +++ b/handwritten/error-reporting/.kokoro/common.cfg @@ -104,6 +104,26 @@ env_vars: { +############################################# +# this section merged from .kokoro/common_env_vars.cfg using owlbot.py + +env_vars: { + key: "PRODUCT_AREA_LABEL" + value: "observability" +} +env_vars: { + key: "PRODUCT_LABEL" + value: "error-reporting" +} +env_vars: { + key: "LANGUAGE_LABEL" + value: "nodejs" +} + +################################################### + + + ############################################# # this section merged from .kokoro/common_env_vars.cfg using owlbot.py From 6677bf8953faa8905d4267f4f8f0b30103b91cc5 Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Tue, 3 Mar 2026 22:31:18 +0000 Subject: [PATCH 512/527] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot?= =?UTF-8?q?=20post-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- .../error-reporting/.kokoro/common.cfg | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/handwritten/error-reporting/.kokoro/common.cfg b/handwritten/error-reporting/.kokoro/common.cfg index 1bb0aa1116d..e9c7869e329 100644 --- a/handwritten/error-reporting/.kokoro/common.cfg +++ b/handwritten/error-reporting/.kokoro/common.cfg @@ -104,6 +104,26 @@ env_vars: { +############################################# +# this section merged from .kokoro/common_env_vars.cfg using owlbot.py + +env_vars: { + key: "PRODUCT_AREA_LABEL" + value: "observability" +} +env_vars: { + key: "PRODUCT_LABEL" + value: "error-reporting" +} +env_vars: { + key: "LANGUAGE_LABEL" + value: "nodejs" +} + +################################################### + + + ############################################# # this section merged from .kokoro/common_env_vars.cfg using owlbot.py From e8a865e5616f486211d98fe257bb828dc248b3c2 Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Tue, 3 Mar 2026 22:34:27 +0000 Subject: [PATCH 513/527] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot?= =?UTF-8?q?=20post-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- .../error-reporting/.kokoro/common.cfg | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/handwritten/error-reporting/.kokoro/common.cfg b/handwritten/error-reporting/.kokoro/common.cfg index e9c7869e329..c43f227833f 100644 --- a/handwritten/error-reporting/.kokoro/common.cfg +++ b/handwritten/error-reporting/.kokoro/common.cfg @@ -124,6 +124,26 @@ env_vars: { +############################################# +# this section merged from .kokoro/common_env_vars.cfg using owlbot.py + +env_vars: { + key: "PRODUCT_AREA_LABEL" + value: "observability" +} +env_vars: { + key: "PRODUCT_LABEL" + value: "error-reporting" +} +env_vars: { + key: "LANGUAGE_LABEL" + value: "nodejs" +} + +################################################### + + + ############################################# # this section merged from .kokoro/common_env_vars.cfg using owlbot.py From 2461c6c2fe8460b49d5425690957c595a9031f5b Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Tue, 3 Mar 2026 22:43:17 +0000 Subject: [PATCH 514/527] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot?= =?UTF-8?q?=20post-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- .../error-reporting/.kokoro/common.cfg | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/handwritten/error-reporting/.kokoro/common.cfg b/handwritten/error-reporting/.kokoro/common.cfg index e9c7869e329..c43f227833f 100644 --- a/handwritten/error-reporting/.kokoro/common.cfg +++ b/handwritten/error-reporting/.kokoro/common.cfg @@ -124,6 +124,26 @@ env_vars: { +############################################# +# this section merged from .kokoro/common_env_vars.cfg using owlbot.py + +env_vars: { + key: "PRODUCT_AREA_LABEL" + value: "observability" +} +env_vars: { + key: "PRODUCT_LABEL" + value: "error-reporting" +} +env_vars: { + key: "LANGUAGE_LABEL" + value: "nodejs" +} + +################################################### + + + ############################################# # this section merged from .kokoro/common_env_vars.cfg using owlbot.py From 9a77e4aa35d26c92c9b9a1a1e55f15a4ee53ec4d Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Tue, 3 Mar 2026 22:46:33 +0000 Subject: [PATCH 515/527] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot?= =?UTF-8?q?=20post-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- .../error-reporting/.kokoro/common.cfg | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/handwritten/error-reporting/.kokoro/common.cfg b/handwritten/error-reporting/.kokoro/common.cfg index c43f227833f..4626b1e9729 100644 --- a/handwritten/error-reporting/.kokoro/common.cfg +++ b/handwritten/error-reporting/.kokoro/common.cfg @@ -144,6 +144,26 @@ env_vars: { +############################################# +# this section merged from .kokoro/common_env_vars.cfg using owlbot.py + +env_vars: { + key: "PRODUCT_AREA_LABEL" + value: "observability" +} +env_vars: { + key: "PRODUCT_LABEL" + value: "error-reporting" +} +env_vars: { + key: "LANGUAGE_LABEL" + value: "nodejs" +} + +################################################### + + + ############################################# # this section merged from .kokoro/common_env_vars.cfg using owlbot.py From 8a2594b1399b3373aabb718010208b016a1ea1b4 Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Tue, 3 Mar 2026 22:53:07 +0000 Subject: [PATCH 516/527] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot?= =?UTF-8?q?=20post-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- .../error-reporting/.kokoro/common.cfg | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/handwritten/error-reporting/.kokoro/common.cfg b/handwritten/error-reporting/.kokoro/common.cfg index c43f227833f..4626b1e9729 100644 --- a/handwritten/error-reporting/.kokoro/common.cfg +++ b/handwritten/error-reporting/.kokoro/common.cfg @@ -144,6 +144,26 @@ env_vars: { +############################################# +# this section merged from .kokoro/common_env_vars.cfg using owlbot.py + +env_vars: { + key: "PRODUCT_AREA_LABEL" + value: "observability" +} +env_vars: { + key: "PRODUCT_LABEL" + value: "error-reporting" +} +env_vars: { + key: "LANGUAGE_LABEL" + value: "nodejs" +} + +################################################### + + + ############################################# # this section merged from .kokoro/common_env_vars.cfg using owlbot.py From bfcfea3f7fb3bb7d5bfe8f828979c3526d52d7e4 Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Tue, 3 Mar 2026 22:55:02 +0000 Subject: [PATCH 517/527] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot?= =?UTF-8?q?=20post-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- .../error-reporting/.kokoro/common.cfg | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/handwritten/error-reporting/.kokoro/common.cfg b/handwritten/error-reporting/.kokoro/common.cfg index c43f227833f..4626b1e9729 100644 --- a/handwritten/error-reporting/.kokoro/common.cfg +++ b/handwritten/error-reporting/.kokoro/common.cfg @@ -144,6 +144,26 @@ env_vars: { +############################################# +# this section merged from .kokoro/common_env_vars.cfg using owlbot.py + +env_vars: { + key: "PRODUCT_AREA_LABEL" + value: "observability" +} +env_vars: { + key: "PRODUCT_LABEL" + value: "error-reporting" +} +env_vars: { + key: "LANGUAGE_LABEL" + value: "nodejs" +} + +################################################### + + + ############################################# # this section merged from .kokoro/common_env_vars.cfg using owlbot.py From a8384fc248f9d336bcfa0114d6cbde5163f8051e Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Tue, 3 Mar 2026 22:58:43 +0000 Subject: [PATCH 518/527] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot?= =?UTF-8?q?=20post-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- .../error-reporting/.kokoro/common.cfg | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/handwritten/error-reporting/.kokoro/common.cfg b/handwritten/error-reporting/.kokoro/common.cfg index 4626b1e9729..fff5dd95aca 100644 --- a/handwritten/error-reporting/.kokoro/common.cfg +++ b/handwritten/error-reporting/.kokoro/common.cfg @@ -164,6 +164,26 @@ env_vars: { +############################################# +# this section merged from .kokoro/common_env_vars.cfg using owlbot.py + +env_vars: { + key: "PRODUCT_AREA_LABEL" + value: "observability" +} +env_vars: { + key: "PRODUCT_LABEL" + value: "error-reporting" +} +env_vars: { + key: "LANGUAGE_LABEL" + value: "nodejs" +} + +################################################### + + + ############################################# # this section merged from .kokoro/common_env_vars.cfg using owlbot.py From f7d5527a564aaa03c9b9c273fdcb05b4b9068025 Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Tue, 3 Mar 2026 23:06:08 +0000 Subject: [PATCH 519/527] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot?= =?UTF-8?q?=20post-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- .../error-reporting/.kokoro/common.cfg | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/handwritten/error-reporting/.kokoro/common.cfg b/handwritten/error-reporting/.kokoro/common.cfg index 4626b1e9729..fff5dd95aca 100644 --- a/handwritten/error-reporting/.kokoro/common.cfg +++ b/handwritten/error-reporting/.kokoro/common.cfg @@ -164,6 +164,26 @@ env_vars: { +############################################# +# this section merged from .kokoro/common_env_vars.cfg using owlbot.py + +env_vars: { + key: "PRODUCT_AREA_LABEL" + value: "observability" +} +env_vars: { + key: "PRODUCT_LABEL" + value: "error-reporting" +} +env_vars: { + key: "LANGUAGE_LABEL" + value: "nodejs" +} + +################################################### + + + ############################################# # this section merged from .kokoro/common_env_vars.cfg using owlbot.py From cacf99f2393019c2d1d86a259f25f87b2a42c62b Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Tue, 3 Mar 2026 23:06:42 +0000 Subject: [PATCH 520/527] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot?= =?UTF-8?q?=20post-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- .../error-reporting/.kokoro/common.cfg | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/handwritten/error-reporting/.kokoro/common.cfg b/handwritten/error-reporting/.kokoro/common.cfg index 4626b1e9729..fff5dd95aca 100644 --- a/handwritten/error-reporting/.kokoro/common.cfg +++ b/handwritten/error-reporting/.kokoro/common.cfg @@ -164,6 +164,26 @@ env_vars: { +############################################# +# this section merged from .kokoro/common_env_vars.cfg using owlbot.py + +env_vars: { + key: "PRODUCT_AREA_LABEL" + value: "observability" +} +env_vars: { + key: "PRODUCT_LABEL" + value: "error-reporting" +} +env_vars: { + key: "LANGUAGE_LABEL" + value: "nodejs" +} + +################################################### + + + ############################################# # this section merged from .kokoro/common_env_vars.cfg using owlbot.py From 1755420cc114fd85cc5da860d8a08a5a56ba0f39 Mon Sep 17 00:00:00 2001 From: Gautam Sharda Date: Tue, 3 Mar 2026 23:03:58 +0000 Subject: [PATCH 521/527] chore: make owlbot script idempotent --- .../error-reporting/.kokoro/common.cfg | 161 ------------------ handwritten/error-reporting/owlbot.py | 2 +- 2 files changed, 1 insertion(+), 162 deletions(-) diff --git a/handwritten/error-reporting/.kokoro/common.cfg b/handwritten/error-reporting/.kokoro/common.cfg index fff5dd95aca..11af8480b6f 100644 --- a/handwritten/error-reporting/.kokoro/common.cfg +++ b/handwritten/error-reporting/.kokoro/common.cfg @@ -41,164 +41,3 @@ env_vars: { } ################################################### - - - -############################################# -# this section merged from .kokoro/common_env_vars.cfg using owlbot.py - -env_vars: { - key: "PRODUCT_AREA_LABEL" - value: "observability" -} -env_vars: { - key: "PRODUCT_LABEL" - value: "error-reporting" -} -env_vars: { - key: "LANGUAGE_LABEL" - value: "nodejs" -} - -################################################### - - - -############################################# -# this section merged from .kokoro/common_env_vars.cfg using owlbot.py - -env_vars: { - key: "PRODUCT_AREA_LABEL" - value: "observability" -} -env_vars: { - key: "PRODUCT_LABEL" - value: "error-reporting" -} -env_vars: { - key: "LANGUAGE_LABEL" - value: "nodejs" -} - -################################################### - - - -############################################# -# this section merged from .kokoro/common_env_vars.cfg using owlbot.py - -env_vars: { - key: "PRODUCT_AREA_LABEL" - value: "observability" -} -env_vars: { - key: "PRODUCT_LABEL" - value: "error-reporting" -} -env_vars: { - key: "LANGUAGE_LABEL" - value: "nodejs" -} - -################################################### - - - -############################################# -# this section merged from .kokoro/common_env_vars.cfg using owlbot.py - -env_vars: { - key: "PRODUCT_AREA_LABEL" - value: "observability" -} -env_vars: { - key: "PRODUCT_LABEL" - value: "error-reporting" -} -env_vars: { - key: "LANGUAGE_LABEL" - value: "nodejs" -} - -################################################### - - - -############################################# -# this section merged from .kokoro/common_env_vars.cfg using owlbot.py - -env_vars: { - key: "PRODUCT_AREA_LABEL" - value: "observability" -} -env_vars: { - key: "PRODUCT_LABEL" - value: "error-reporting" -} -env_vars: { - key: "LANGUAGE_LABEL" - value: "nodejs" -} - -################################################### - - - -############################################# -# this section merged from .kokoro/common_env_vars.cfg using owlbot.py - -env_vars: { - key: "PRODUCT_AREA_LABEL" - value: "observability" -} -env_vars: { - key: "PRODUCT_LABEL" - value: "error-reporting" -} -env_vars: { - key: "LANGUAGE_LABEL" - value: "nodejs" -} - -################################################### - - - -############################################# -# this section merged from .kokoro/common_env_vars.cfg using owlbot.py - -env_vars: { - key: "PRODUCT_AREA_LABEL" - value: "observability" -} -env_vars: { - key: "PRODUCT_LABEL" - value: "error-reporting" -} -env_vars: { - key: "LANGUAGE_LABEL" - value: "nodejs" -} - -################################################### - - - -############################################# -# this section merged from .kokoro/common_env_vars.cfg using owlbot.py - -env_vars: { - key: "PRODUCT_AREA_LABEL" - value: "observability" -} -env_vars: { - key: "PRODUCT_LABEL" - value: "error-reporting" -} -env_vars: { - key: "LANGUAGE_LABEL" - value: "nodejs" -} - -################################################### - diff --git a/handwritten/error-reporting/owlbot.py b/handwritten/error-reporting/owlbot.py index 840be541845..1f781dad5b8 100644 --- a/handwritten/error-reporting/owlbot.py +++ b/handwritten/error-reporting/owlbot.py @@ -34,7 +34,7 @@ s.move( "handwritten/error-reporting/.kokoro/common_env_vars.cfg", "handwritten/error-reporting/.kokoro/common.cfg", - merge=lambda src, dst, _, : f"{dst}\n{src}", + merge=lambda src, dst, _: dst if src.strip() in dst else f"{dst.rstrip()}\n{src.strip()}\n", ) for path, subdirs, files in os.walk(f"handwritten/error-reporting/.kokoro/continuous"): for name in files: From 70cb8caa6fb9e31f3be5cd0fe2bfec8e4ea74d33 Mon Sep 17 00:00:00 2001 From: Gautam Sharda Date: Wed, 4 Mar 2026 21:36:50 +0000 Subject: [PATCH 522/527] chore: add relevant dropped / overwritten sections in README --- handwritten/error-reporting/README.md | 36 ++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 279151ac527..bc434ae21b3 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -10,7 +10,9 @@ -Error Reporting Client Library for Node.js +> Node.js idiomatic client for [Error Reporting][product-docs]. + +[Error Reporting](https://cloud.google.com/error-reporting/docs/) aggregates and displays errors produced in your running cloud services. A comprehensive list of changes in each version may be found in @@ -43,7 +45,7 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. 1. [Select or create a Cloud Platform project][projects]. 1. [Enable the Error Reporting API][enable_api]. -1. [Set up authentication][auth] so you can access the +1. [Set up authentication with a service account][auth] so you can access the API from your local workstation. ### Installing the client library @@ -52,7 +54,35 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. npm install @google-cloud/error-reporting ``` +This module provides custom Error Reporting support for Node.js applications. +[Error Reporting](https://cloud.google.com/error-reporting/) is a feature of +Google Cloud Platform that allows in-depth monitoring and viewing of errors reported by +applications running in almost any environment. + +However, note that [@google-cloud/logging-winston](https://github.com/googleapis/nodejs-logging-winston) and [@google-cloud/logging-bunyan](https://github.com/googleapis/nodejs-logging-bunyan) automatically integrate with the Error Reporting service for Error objects logged at severity `error` or higher, for applications running on Google Cloud Platform. + +Thus, if you are already using Winston or Bunyan in your application, and don't need custom error reporting capabilities, you do not need to use the `@google-cloud/error-reporting` library directly to report errors to the Error Reporting Console. + +![Error Reporting overview](https://raw.githubusercontent.com/googleapis/nodejs-error-reporting/master/doc/images/errors-overview.png) + +# When Errors Are Reported + +The `reportMode` configuration option is used to specify when errors are reported to the Error Reporting Console. It can have one of three values: +* `'production'` (default): Only report errors if the NODE_ENV environment variable is set to "production". +* `'always'`: Always report errors regardless of the value of NODE_ENV. +* `'never'`: Never report errors regardless of the value of NODE_ENV. + +The `reportMode` configuration option replaces the deprecated `ignoreEnvironmentCheck` configuration option. If both the `reportMode` and `ignoreEnvironmentCheck` options are specified, the `reportMode` configuration option takes precedence. + +The `ignoreEnvironmentCheck` option should not be used. However, if it is used, and the `reportMode` option is not specified, it can have the values: +* `false` (default): Only report errors if the NODE_ENV environment variable is set to "production". +* `true`: Always report errors regardless of the value of NODE_ENV. + +## Setup, Configuration, and Examples + +See the documentation for setup instructions, configuration options, and examples: https://cloud.google.com/error-reporting/docs/setup/nodejs +Additional code samples can also be found here: https://github.com/GoogleCloudPlatform/nodejs-docs-samples/tree/main/error-reporting @@ -122,4 +152,4 @@ See [LICENSE](https://github.com/googleapis/google-cloud-node/blob/main/LICENSE) [projects]: https://console.cloud.google.com/project [billing]: https://support.google.com/cloud/answer/6293499#enable-billing [enable_api]: https://console.cloud.google.com/flows/enableapi?apiid=clouderrorreporting.googleapis.com -[auth]: https://cloud.google.com/docs/authentication/external/set-up-adc-local +[auth]: https://cloud.google.com/docs/authentication/getting-started \ No newline at end of file From 4d288697b6b2302a4944035d18ba90be2abbd3ec Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Wed, 4 Mar 2026 21:48:45 +0000 Subject: [PATCH 523/527] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot?= =?UTF-8?q?=20post-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- handwritten/error-reporting/README.md | 36 +++------------------------ 1 file changed, 3 insertions(+), 33 deletions(-) diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index bc434ae21b3..279151ac527 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -10,9 +10,7 @@ -> Node.js idiomatic client for [Error Reporting][product-docs]. - -[Error Reporting](https://cloud.google.com/error-reporting/docs/) aggregates and displays errors produced in your running cloud services. +Error Reporting Client Library for Node.js A comprehensive list of changes in each version may be found in @@ -45,7 +43,7 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. 1. [Select or create a Cloud Platform project][projects]. 1. [Enable the Error Reporting API][enable_api]. -1. [Set up authentication with a service account][auth] so you can access the +1. [Set up authentication][auth] so you can access the API from your local workstation. ### Installing the client library @@ -54,35 +52,7 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. npm install @google-cloud/error-reporting ``` -This module provides custom Error Reporting support for Node.js applications. -[Error Reporting](https://cloud.google.com/error-reporting/) is a feature of -Google Cloud Platform that allows in-depth monitoring and viewing of errors reported by -applications running in almost any environment. - -However, note that [@google-cloud/logging-winston](https://github.com/googleapis/nodejs-logging-winston) and [@google-cloud/logging-bunyan](https://github.com/googleapis/nodejs-logging-bunyan) automatically integrate with the Error Reporting service for Error objects logged at severity `error` or higher, for applications running on Google Cloud Platform. - -Thus, if you are already using Winston or Bunyan in your application, and don't need custom error reporting capabilities, you do not need to use the `@google-cloud/error-reporting` library directly to report errors to the Error Reporting Console. - -![Error Reporting overview](https://raw.githubusercontent.com/googleapis/nodejs-error-reporting/master/doc/images/errors-overview.png) - -# When Errors Are Reported - -The `reportMode` configuration option is used to specify when errors are reported to the Error Reporting Console. It can have one of three values: -* `'production'` (default): Only report errors if the NODE_ENV environment variable is set to "production". -* `'always'`: Always report errors regardless of the value of NODE_ENV. -* `'never'`: Never report errors regardless of the value of NODE_ENV. - -The `reportMode` configuration option replaces the deprecated `ignoreEnvironmentCheck` configuration option. If both the `reportMode` and `ignoreEnvironmentCheck` options are specified, the `reportMode` configuration option takes precedence. - -The `ignoreEnvironmentCheck` option should not be used. However, if it is used, and the `reportMode` option is not specified, it can have the values: -* `false` (default): Only report errors if the NODE_ENV environment variable is set to "production". -* `true`: Always report errors regardless of the value of NODE_ENV. - -## Setup, Configuration, and Examples - -See the documentation for setup instructions, configuration options, and examples: https://cloud.google.com/error-reporting/docs/setup/nodejs -Additional code samples can also be found here: https://github.com/GoogleCloudPlatform/nodejs-docs-samples/tree/main/error-reporting @@ -152,4 +122,4 @@ See [LICENSE](https://github.com/googleapis/google-cloud-node/blob/main/LICENSE) [projects]: https://console.cloud.google.com/project [billing]: https://support.google.com/cloud/answer/6293499#enable-billing [enable_api]: https://console.cloud.google.com/flows/enableapi?apiid=clouderrorreporting.googleapis.com -[auth]: https://cloud.google.com/docs/authentication/getting-started \ No newline at end of file +[auth]: https://cloud.google.com/docs/authentication/external/set-up-adc-local From 5423f5141fd4c5af0c855a026555acd0434ee7db Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Wed, 4 Mar 2026 21:49:19 +0000 Subject: [PATCH 524/527] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot?= =?UTF-8?q?=20post-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- handwritten/error-reporting/README.md | 36 +++------------------------ 1 file changed, 3 insertions(+), 33 deletions(-) diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index bc434ae21b3..279151ac527 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -10,9 +10,7 @@ -> Node.js idiomatic client for [Error Reporting][product-docs]. - -[Error Reporting](https://cloud.google.com/error-reporting/docs/) aggregates and displays errors produced in your running cloud services. +Error Reporting Client Library for Node.js A comprehensive list of changes in each version may be found in @@ -45,7 +43,7 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. 1. [Select or create a Cloud Platform project][projects]. 1. [Enable the Error Reporting API][enable_api]. -1. [Set up authentication with a service account][auth] so you can access the +1. [Set up authentication][auth] so you can access the API from your local workstation. ### Installing the client library @@ -54,35 +52,7 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. npm install @google-cloud/error-reporting ``` -This module provides custom Error Reporting support for Node.js applications. -[Error Reporting](https://cloud.google.com/error-reporting/) is a feature of -Google Cloud Platform that allows in-depth monitoring and viewing of errors reported by -applications running in almost any environment. - -However, note that [@google-cloud/logging-winston](https://github.com/googleapis/nodejs-logging-winston) and [@google-cloud/logging-bunyan](https://github.com/googleapis/nodejs-logging-bunyan) automatically integrate with the Error Reporting service for Error objects logged at severity `error` or higher, for applications running on Google Cloud Platform. - -Thus, if you are already using Winston or Bunyan in your application, and don't need custom error reporting capabilities, you do not need to use the `@google-cloud/error-reporting` library directly to report errors to the Error Reporting Console. - -![Error Reporting overview](https://raw.githubusercontent.com/googleapis/nodejs-error-reporting/master/doc/images/errors-overview.png) - -# When Errors Are Reported - -The `reportMode` configuration option is used to specify when errors are reported to the Error Reporting Console. It can have one of three values: -* `'production'` (default): Only report errors if the NODE_ENV environment variable is set to "production". -* `'always'`: Always report errors regardless of the value of NODE_ENV. -* `'never'`: Never report errors regardless of the value of NODE_ENV. - -The `reportMode` configuration option replaces the deprecated `ignoreEnvironmentCheck` configuration option. If both the `reportMode` and `ignoreEnvironmentCheck` options are specified, the `reportMode` configuration option takes precedence. - -The `ignoreEnvironmentCheck` option should not be used. However, if it is used, and the `reportMode` option is not specified, it can have the values: -* `false` (default): Only report errors if the NODE_ENV environment variable is set to "production". -* `true`: Always report errors regardless of the value of NODE_ENV. - -## Setup, Configuration, and Examples - -See the documentation for setup instructions, configuration options, and examples: https://cloud.google.com/error-reporting/docs/setup/nodejs -Additional code samples can also be found here: https://github.com/GoogleCloudPlatform/nodejs-docs-samples/tree/main/error-reporting @@ -152,4 +122,4 @@ See [LICENSE](https://github.com/googleapis/google-cloud-node/blob/main/LICENSE) [projects]: https://console.cloud.google.com/project [billing]: https://support.google.com/cloud/answer/6293499#enable-billing [enable_api]: https://console.cloud.google.com/flows/enableapi?apiid=clouderrorreporting.googleapis.com -[auth]: https://cloud.google.com/docs/authentication/getting-started \ No newline at end of file +[auth]: https://cloud.google.com/docs/authentication/external/set-up-adc-local From 364cb3398d77ca1fc66a14b72115dc1bc850fb98 Mon Sep 17 00:00:00 2001 From: Gautam Sharda Date: Wed, 4 Mar 2026 22:56:55 +0000 Subject: [PATCH 525/527] chore: exclude README.md from owlbot --- handwritten/error-reporting/README.md | 12 ++++++------ handwritten/error-reporting/owlbot.py | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index bc434ae21b3..50c88afaeb5 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -2,10 +2,10 @@ [//]: # "To regenerate it, use `python -m synthtool`." Google Cloud Platform logo -# [Error Reporting: Node.js Client](https://github.com/googleapis/google-cloud-node/tree/main/handwritten/error-reporting) +# [Error Reporting: Node.js Client](https://github.com/googleapis/nodejs-error-reporting) [![release level](https://img.shields.io/badge/release%20level-stable-brightgreen.svg?style=flat)](https://cloud.google.com/terms/launch-stages) -[![npm version](https://img.shields.io/npm/v/@google-cloud/error-reporting.svg)](https://www.npmjs.com/package/@google-cloud/error-reporting) +[![npm version](https://img.shields.io/npm/v/@google-cloud/error-reporting.svg)](https://www.npmjs.org/package/@google-cloud/error-reporting) @@ -16,11 +16,11 @@ A comprehensive list of changes in each version may be found in -[the CHANGELOG](https://github.com/googleapis/google-cloud-node/tree/main/handwritten/error-reporting/CHANGELOG.md). +[the CHANGELOG](https://github.com/googleapis/nodejs-error-reporting/blob/main/CHANGELOG.md). * [Error Reporting Node.js Client API Reference][client-docs] * [Error Reporting Documentation][product-docs] -* [github.com/googleapis/google-cloud-node/handwritten/error-reporting](https://github.com/googleapis/google-cloud-node/tree/main/handwritten/error-reporting) +* [github.com/googleapis/nodejs-error-reporting](https://github.com/googleapis/nodejs-error-reporting) Read more about the client libraries for Cloud APIs, including the older Google APIs Client Libraries, in [Client Libraries Explained][explained]. @@ -132,7 +132,7 @@ More Information: [Google Cloud Platform Launch Stages][launch_stages] ## Contributing -Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/google-cloud-node/blob/main/CONTRIBUTING.md). +Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/nodejs-error-reporting/blob/main/CONTRIBUTING.md). Please note that this `README.md`, the `samples/README.md`, and a variety of configuration files in this repository (including `.nycrc` and `tsconfig.json`) @@ -144,7 +144,7 @@ to its templates in Apache Version 2.0 -See [LICENSE](https://github.com/googleapis/google-cloud-node/blob/main/LICENSE) +See [LICENSE](https://github.com/googleapis/nodejs-error-reporting/blob/main/LICENSE) [client-docs]: https://cloud.google.com/nodejs/docs/reference/error-reporting/latest [product-docs]: https://cloud.google.com/error-reporting diff --git a/handwritten/error-reporting/owlbot.py b/handwritten/error-reporting/owlbot.py index 1f781dad5b8..41e9d3c1c18 100644 --- a/handwritten/error-reporting/owlbot.py +++ b/handwritten/error-reporting/owlbot.py @@ -22,7 +22,7 @@ common_templates = gcp.CommonTemplates() templates = common_templates.node_mono_repo_library(relative_dir="handwritten/error-reporting") -s.copy(templates, destination="handwritten/error-reporting") +s.copy(templates, destination="handwritten/error-reporting", excludes=["README.md"]) node.fix_hermetic(relative_dir="handwritten/error-reporting") From 73921cd3bf3d7cdd78b5fc2a3a9b07fd9b064ac0 Mon Sep 17 00:00:00 2001 From: Gautam Sharda Date: Wed, 4 Mar 2026 23:00:52 +0000 Subject: [PATCH 526/527] chore: add original README --- handwritten/error-reporting/README.md | 36 ++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 115af9a76ca..50c88afaeb5 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -10,7 +10,9 @@ -Error Reporting Client Library for Node.js +> Node.js idiomatic client for [Error Reporting][product-docs]. + +[Error Reporting](https://cloud.google.com/error-reporting/docs/) aggregates and displays errors produced in your running cloud services. A comprehensive list of changes in each version may be found in @@ -43,7 +45,7 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. 1. [Select or create a Cloud Platform project][projects]. 1. [Enable the Error Reporting API][enable_api]. -1. [Set up authentication][auth] so you can access the +1. [Set up authentication with a service account][auth] so you can access the API from your local workstation. ### Installing the client library @@ -52,7 +54,35 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. npm install @google-cloud/error-reporting ``` +This module provides custom Error Reporting support for Node.js applications. +[Error Reporting](https://cloud.google.com/error-reporting/) is a feature of +Google Cloud Platform that allows in-depth monitoring and viewing of errors reported by +applications running in almost any environment. + +However, note that [@google-cloud/logging-winston](https://github.com/googleapis/nodejs-logging-winston) and [@google-cloud/logging-bunyan](https://github.com/googleapis/nodejs-logging-bunyan) automatically integrate with the Error Reporting service for Error objects logged at severity `error` or higher, for applications running on Google Cloud Platform. + +Thus, if you are already using Winston or Bunyan in your application, and don't need custom error reporting capabilities, you do not need to use the `@google-cloud/error-reporting` library directly to report errors to the Error Reporting Console. + +![Error Reporting overview](https://raw.githubusercontent.com/googleapis/nodejs-error-reporting/master/doc/images/errors-overview.png) + +# When Errors Are Reported + +The `reportMode` configuration option is used to specify when errors are reported to the Error Reporting Console. It can have one of three values: +* `'production'` (default): Only report errors if the NODE_ENV environment variable is set to "production". +* `'always'`: Always report errors regardless of the value of NODE_ENV. +* `'never'`: Never report errors regardless of the value of NODE_ENV. + +The `reportMode` configuration option replaces the deprecated `ignoreEnvironmentCheck` configuration option. If both the `reportMode` and `ignoreEnvironmentCheck` options are specified, the `reportMode` configuration option takes precedence. + +The `ignoreEnvironmentCheck` option should not be used. However, if it is used, and the `reportMode` option is not specified, it can have the values: +* `false` (default): Only report errors if the NODE_ENV environment variable is set to "production". +* `true`: Always report errors regardless of the value of NODE_ENV. + +## Setup, Configuration, and Examples + +See the documentation for setup instructions, configuration options, and examples: https://cloud.google.com/error-reporting/docs/setup/nodejs +Additional code samples can also be found here: https://github.com/GoogleCloudPlatform/nodejs-docs-samples/tree/main/error-reporting @@ -122,4 +152,4 @@ See [LICENSE](https://github.com/googleapis/nodejs-error-reporting/blob/main/LIC [projects]: https://console.cloud.google.com/project [billing]: https://support.google.com/cloud/answer/6293499#enable-billing [enable_api]: https://console.cloud.google.com/flows/enableapi?apiid=clouderrorreporting.googleapis.com -[auth]: https://cloud.google.com/docs/authentication/external/set-up-adc-local +[auth]: https://cloud.google.com/docs/authentication/getting-started \ No newline at end of file From 7b2cf865c94889a0fb9cfc9b5f6190bad9ee9aa1 Mon Sep 17 00:00:00 2001 From: Gautam Sharda Date: Wed, 4 Mar 2026 23:22:53 +0000 Subject: [PATCH 527/527] chore: fix rp config --- release-please-submodules.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/release-please-submodules.json b/release-please-submodules.json index 93d4ec14160..9e933f1b0eb 100644 --- a/release-please-submodules.json +++ b/release-please-submodules.json @@ -11,7 +11,9 @@ "handwritten/datastore": { "component": "datastore" }, - "handwritten/error-reporting": {}, + "handwritten/error-reporting": { + "component": "error-reporting" + }, "handwritten/logging-bunyan": { "component": "logging-bunyan" },

;fK6#h#WTVvXVBL>2#| zrh0$WaxHzFFTj6 zE}c!)mHyQRsSH5eP!Cg3&=dEV-DLk7oLqlc93-y}EQcZw1dagZr+v8D!t?d6qNFCF z6Myb}hQ}qz_(m!aHcf1h#~pssq9hAH&nOt?^P(Gs=3$L+YC4ZMco+6TOBBMyL*Zx$ zxh3neB@j8uWXpa)5ri1ChU)hL)^`uCc1iWs&$<0&2Muj{E7!m}?#7w?UcEaz^=@Fd zlkv7>k~{!awKy7KRPz(xJCDUsj0->apXQRTE71;HB%>&CM)MXG7yBdXh^Q2&TM_dh z{S>pO6Auasva1w-EMu7;2U`%Hp9d(2oXfCYuR9f8i3En8{EtSKfjys2DLx%vQ>YWz z1`ReXmP-GpEJQ9}2$w=_3y{`-6hwjtfSZ~V*Kr?}EKHu$88{i$@sBl13GfvcViQ)+ zEc;~zuDLv$N`@p!tJk=MP^xaF!?+xnxW@Q1nJaH&&>mD-TT2V4HX<81(7C~y?FMcj z=~waoZugbE>Mt|PW~*vf56P61h|JPt_%`S zHwpcU+#Pi5*6s6VC#l-F>dx-KbrVq2)bx-yG}s818{&$9?XL&@xjOGk#$XxX7R2;| zS5p6sOT8y2m`4U=k8}^o;w5-0v@&FnY9<|q1MXV86)W4Qw;P2NsfzGiUy<-|TwRK7 z2oI1gF3rstT|ig{aWEC!giXKqKPw@2rNP$h7tVN3`AX=hxfh8KSIQy^d|yvG1sbWV$cy;Q6$Zf}4PFE#w%+9)Fff;)J|T z#$~OcKvm)f2U~5ihNgj4TBg65NSwrIT?%NE{EJyZDEoOGJ-O9=y78r3{ zPV@F2dowl`cqseOkZ6-AMQ;9W(XqB7RAJ2REci-`X1g4jTTcG^LPI_fSPw6`yEyed z1t0tS@6P&w36X>|Lz|~x?!J;eo9STCPK;J9yP+k9e?sOtgr0OQX)PlU?av@tb9ByL zULy-SjzX*tXywqLan&EAz+ZUZdAF{iHHHS>$MPV$5(-J?Y}QWaMfyshAy7879f~;t zb5MO5XyPthQLOWjuy06Fg;R%0kCmrs!KuLlT8Nl)Wn%-(2UlJLLq&}OGjko3m|k+P zaBRT!C{rYcGKpMTIEZ_(yNI}k(lW;xGK>H4&a(gUMZ9X77rF8)iV*a(%bjNM_G>r- z`w(jV53+fy1nS-(r0s!l7e$Y59{{xS%ZDp2ALe#9LN%7zIy!<^0dsvD0VNnLqp@No z_;|i7PY6J{d>f!#v0;dTqUmf(4X8yamSj{FF)^;F??~JxTGRDN@I=L;(1kjP{BLlx z{f|8t`s+4Jz5Rx1wq>YF;8^3N{%K~>UBV~UUgGSC@b8@%ualUVh|y&XluPQzoPHfd zS9%@pLvjm4NKTO(5CN_OD43=Ei0Chr_T~Z>5kl6K)9LNWJI2R`@w(7vp6RR3?m z$ogL+&iB^(M6|YgwSK!}g3>?tsw{nn|E9d9<m+gLPE@@G;BBaw-{%^&TUE;E8#&$c2tK2 zywZr(mblSpi|-Ow@afoQBHN(Ih3S)r+yL5k163m)TB1rCKQf|lRwd^|E7KjzwwKp-5AR5xi0!;JfCo z786u`Ysh8!2_9+2NMz&{{_;^tCb}7^y*a3pP%u`OAcc5C1LUHcnY^G8kw80D`2zK7 zZ^W&xjp?l~Us}VU4>3XI1Rp*HyIVxD;sIea#HvPK1PDnlo_TEG0Q#nC6h}-H7CA*u zeE(Ga_kXD;5Qi@e=o3IwkRVx#T>HkHC@T*-CSqnJqlA3A!y-^#fxzBFosNlYWst$7 z=dWV=`4Mk=v%K`eyw_?tf?wIGlr<&YflA5oN!bzDkI|^RBF<=0r+7; zh%XTo?;ItbJ_ubc%|YYM^?m!O(s zU0zK8rM<$91Z!f}ZN$h>|0-!@@S+c6>>K$280O^i+`|sSeHrK?yg8E(vxg==Jw}>! zn*Q9HTq^m+Zw(K7IoHEkyrF#orHa>gwY@T%)GeW}WB#z{mbm*Aa6K}=y%Y!lqW!o9 zFAkXVP!7Y8O>&-)%UoHqT5i^5^7rVpLvk?D>wqrK}4^{;HM+@*Z>T4ZQlE&~DQ|K$I2uR0T}aNKBiq_x4|t%IoiVW1e;+?WWz z>*!Gpr84M$v~sdu7ddX5l4DiJN8)oo0Uu|~Xew$*jT;d`Arr}sC@E>(5@S+Pb1=6g zDjhx@}6_q+p*tI11|W5+ZDg{SBo=7jWK&H%zt z_9+b^t9C7l@uY6UG;Fs5lP{!GBO`e#Ulx;!OM4^p&yVvsu2`1@d!T zw*~WCF(H_QAS8(PC~h5<##SeqVlvg!xIXYUhJ<4mkmv$*HicXTJAzUY{^?^8VGEEw_KyoL1wypvZMEk&U@t$mcQ`VdVN z>kS@E)~e;Er={KSU^@sbsaq+~-6Fj1QI+ZI6A&?Jx#HAD5MwOuXV@st7-hrzGVYOf zIOL8C@I)Ar5~^MaYLWEzU+oveaL}_aLQ)-Vs_Z3@;hLGlUAM24$&`|P?X{H zorEx&lllWZGrdd05DT)KTSA7NG^-Ez{|vN>J^14#MDO}-bHD z8)|A${(Z0MPup*Esl!;KP^I2@5JeD~JIWqwg@Tu)2?BnyDP9+fIkLjNnFz|-3`CHn zba-&JMd8#CRsAIDFpq!?q z?sIRis>S05zDxTYM|&$U{VYkFgd`>UGLboFz?k*07F25J>MY|Q3bnnw9(d>YAchTj z<4Kd?Odz&fFyR5_G)dztP?jpygrTlt4tj>c0=>n+-1RXU$fJ{y;;Le{kAver-S-9g zWQvgGhihU-G;{{yCOMCp8y>O6n4O7_PR^xpmpe_p7M@$;x3P{RL(i0X_*!Q!>SK@w z-_X>h=Dq3na;DoaA0`wf8aL!hbLS=iki-;)x1-YpvxLZ)4kHe5hmc+e2ev(HwqW6B z>SqPEr6Jk?1@ITla?BOXCk4A6*$+OkUll7fS1@CCn3c?C|1mpT1N|6g04Stt2yIMB zmXCHfTbVC}M(i|hdW0WxEDW7oF2`v`kW2Irt6>~xrYZzj@T#jztY+7Fcw|f9ohq7c z)3jf53Df!zzIm$Nyuf>Ctlt_SzGkal$(dMjbg2YI0mbNPE{mu27RfcJ|9haDmqNaV zKL(yx7emDJbi`5}7J8EGNM4adz7U}{GH0Xe^U73jb^lO+v>FBk;6xqm!c{)|rLQlx)}X-~`zN{lU4_;~ z>$UrariE)4mfkvP6;^PL38rfEB*=xaXT8M#btmN>o)ZCHQ2vA@SOgf)&7EMt09w?A zkR$u1m;9z95>DhrqZ~FcG?Xe!!=VpF^6QDbh4doR{n$%;O*+sHF=e~2IFj<?hmM5IZ)uh5EDbS zCB(x_fBuO-Qfd+}U|&L(&K!3hPOS>8K&nt*b)djxd>+tWges}~G(0AiBN@yHRXSq8 zIjdbU>zg0nD${5P%iLUXvPMqQ*ESo}Sa>f)8b-Oa@3B3Lz0_`QZtkY`Q|A45rSLTB zr!ob{U9z9!HuaxiV`2&#vTYu|@f=)ubV*@;{hj3GWZIN(aGygp$*u`R*H`7xd*VQc z1AvT8Bg+*Bg$E$~<1PzZ2)D%0h9YJi0>$K4jFPex`tHP;`+h7{&L_Cm*0HeETRwLTOQmk(G<=jVX3r={cSAZ)OhfT(A1(eY;ss!Ogn)TLol!{MN1d zbIch8ck}P3x}V08eW>X-*A*b1_UkU=E0cb~ISyesh~=c`XI*UjSrB}Biay7EMUPjX+Mu*fTldG8qR10RjSuWh66^bWcj-f9 zl0Z;QjSHW^@nQ=Xnd#e+D$^xDeGa1kYdkI)gCLJ9e1D`x>^8wb- zKSSn?77A-Ox9nDqet3VADp=ZK&}h|G-9byQwybi3wijS?%5Rp`N-jzx{4m4109pdBMzAx zt-ur;sI~W)Hiq85)n#8}R_&jfdhMy}lYYuC9K0mzA(@I#CZN(KCoiulr=g~Zdt{OX zbHY-$i<6TUg-SU*F_pgpq2|u}I7M>u;3|(ezVjiF0}Fz3 zL-kT^K>rZCrd9R>x)!ohPAzf!c#)VwoMgOhMAQPVv9_^M51uabR5= zci-z8gG1?G0<#@(*Cl;*5h&d%SQc4x0%~3`NqhklC;E-?1VoM=Wwuw<$0@=sA9bJ< z)YEf~H0XQ1pnk%j)z>i+0zi4lzj!}eKR=3d3n9B%TZF4MjBi=7HMslnT!j|H7mj!D zDd_+XLLR$aDLP@#Rs>EP+Mg(cDlhQ8tKh64k)}ZI2}4haU@TyW6ExYW3Q_h8qy@nW z&91h(ziZk=hsfV>Be-L<7^ugMOiU{=j~(9mGqy|aT8?;b-Y7(S;b$>mlZ&`un&bEy z6M0xMtk-79*MKb!R+2+CbWSn>lEP8A`w6ujG@9?|3MdAHD1+i90rz!Oug_63R(#=Q7KJp zD|`dusLsfcF=D>~_DYLfU@WDyS)EDevo6$&SP(15FcFaa6@gT|y@IZWh1NfS*0V}} z0hEzmgg?@87~V^Xua_;@B(+aw6G%Z)#f)_pvY_63j)9!dm5y8Y-n|&4ZLn z!j>zy8pd&k=G`RaI3IT_2(*W&VEbAwo@83TIGKw<9o}sX=-Z^a6ld}7@?DopdW#`C z$y`Py07xJ{G%c8+1$l%{>m=XiG3LGBNikVmt4EiGUJtsz|GVx2m%8KL2DRf+BmN z6?~&Qdw1}5CeHLkm7+zA;AP(&6~(QZ#>+jixUj&RC5dN4>>YS$o@q}SPiCXrX`Q%) zs_6kac`tU_zAPx9I%up}*U9vFEj|4UyYzftWAR$;u)Q1{U$AB}LtP-y^>1xONrxOS zB6I_@SiX9vlN+idjqrp)D!1OT--q^3hAOxj=Ou#*VRwu_*q?I0=hZ!L!D+-8dX}-e zN$5JlqGKVjBN4eqt#@hco54hSr|k!b`@~$;1j_~}TCeR)-x3}u^U-bb0QaEp5XT;= z6p)pZtAvK4((VabZI**8x%wx<8yE2{vyYM~a$a(qan9llB141k<=Qdil(b&W979evpYJq$ zgv#mPpdLjUR_^20;7FfCQ$A;M408~~>OG4S`yk}Pl=#duuV*vI&@+W1cm1iDbJFi( zjnp=FySKn0GQWWnR#<$ES<+>ssU8*XvOAs0HaCl(WWzi^gmWfo=#*9PJ}AVQiB25a96u;g|wS;sj30zj};Wtz{5{rU?0JwVxW-Fsp{&TCLbEb z=b48)9-s*Fo(0Rqo3(<}?7)fGVL`^`B(Vsf?^l;8>8m5$gyMSBDhL`nOgvqI@V7EN z8Il7@YJA?pgG`@4q+(_zUS0~)vK=Q~d~hUt(ud)e(sWXVo|-9W+tG-$Q{oC!eM?w> zU)ptDJ<9b?p(G@*Iqtn){7w~gPE((YQKX!&dI@b%571&H#jydz!YG~F0I++3eWDhT zda5~~`dpq0L2XoebS}l%v_#_ysDn6T$3T7)uug2Qe>1MXL7M{$b=B2pltwV(5aR&} z`T}_O3?{6gQ`nW2(ogY#X$!L+=*w>KgI(@JiGdDQ3aAgbsf?>11lh!#)O;9LhF0sc z!bkxdCz&NafjVVcYAaGTg~`kuTrot832D4nimXkQ74KSv)F`hAByBvd2mIM?Y(LzG zq?U3!S!lXKZb%WIl!_2?l?W<_y80eKA%OFo+~u!%W>UYs>ebV+D!|#Lh50`S4k*Vr zkbx!(Ka%Ct(#!7G7t-?cva?@d3Tx#&HulEbUn+DQ5qHO%rQS$mj@?W|5O~TAuCB|+ zQ}ZC_0e~5AH=df;RWDT7R+L$bIyVC`3j*uffaF!)q@G**HT2MWFMB&XJs_~X^FT29 z<88+}6pS`w%*qO6n~C8-CgbeD8WF{Y8&^xMQ?U^l*l{6Yb2{Qf__zxPQg%{AToy!# zZjD5uLAXe~^?-5((402sn4wke0m@Rw_$(k@l)Na>$RTJ#z~m_mAz;{OL1PJg*LJC; zI`;wS_vGhA9ID&9?1#2f;zvzT77=eF`A#8G1ldI>3qru5h*WmsKXm9);2b^~Nk@R% zk+B8s?>fL*1h8J%K^;%ALj6Yx^=&0ltynM+Sn1)&Q7JSa!%=>Hf=v=ziR3}y+$MRl zWN0GlQ5HzRk}op`goo235V&^*s)c)Cy_!?g@y#Mdkauvq$n{$C#~D!_WMF6onE_<%SDiBtPf4w}7x&c2-{0~4Kk zw_tDVAnyc-0Hoq>C^q_Dtv|^)H7KMxirch52=XD5H{ol_7*im`Iwm0@frNc86k~d@ zUiUr~5)n~zdb5yck7gZS%1u;>?)-=HrUPlFfFe}`(L{l>_D;DQWS`rKVL)$0MKEvl zHqP@>XD~)ttl_GLC{VG9dAg9v==$_~_PO3aAnek=x2+7mHbPoAe+$=2v>@eUjIyvE zof;7;ks?__!u>g|kSbsb@8FMvOq&8Y)L*C_IC~I*$QmmYiJ|hVVk4Al5ENI#{zxj( zq}*Ik1G&#TERdsyvW)C})M^56WJxd*MiFe*{yh*fcQgLkGmNYj%LtWDXz}zi02DKi zBZPs1REKl7+hS2Lk|+={jJ>6};ReP?8{WYuB31@Z?`*Kn5KrUG%x#i>z#5d!Uk2&k z_2nh!&(IB_$|d5-s^eJC@;-g4epy&E$4Cw$2yx^&C@cM{B{O=Z+O3G=pC}Bm51^vf zLoLP}nJ6Dk4XT7gr-AAzP6${{wTx5&RQ0?T?q(cnfn)`M<&su=p@^^Xg`uPzt9KyN z4x&BBsj~-d6`mY93HSz|U`FfLkBYI)WKMuVxPW=2J$fF-PB-;W_dMcqwNbcl9H{sx z5Zqo>G~f9-?N%Epph!**&MueEF+~4H9&LLTQ=io6l^!e7FOV#K?ps zg)VjgFnf*8yQs9hWvwCR#L=z0A{T2fiPohK44QHj|D7ioKL&!1oXSXaRb1?>tAiW^ zX~GX6iN)3Cy^47d>x8khFqrGoDipWmV%)&S#``jE-I_Jx0H&n;c+i{>42)?CBmluF zX-)XFUn)(r)usW2BXBmV3o`6jBL2cpq+8l-3;2*-QZ$te1K>bX(o4oC;_ zd>H5DzKPTl;2_^*;8|4rql%21d>SQAqR5B39~HF=idK@^!#qW}PNPtc97W|WC$2|+Lan67usbpSO}t)b8NbEc1AY|g$7@jT^|GP^ro1&Y#hW0*h;G9 zJ-FP6@19R1r(T_{goE1=!1AK;mtK09D-fM0V+c@q5^@+DdIibvzp zlk_J!#^5uso03(=uHs4I9;BtpdO`>=E2;1Z@2k{8GvdJ{V$!1KJY+5?9-+k7A9f$Lq$`8}2>|G1jr@ z&-|$4x@hY?he9xwcI@%3#E?(Z{0X+UHa2$vj#64gPFPcDI6HDw<6DL$Gs-(VwKLa2 z4Z%E+h7!qZ(ahK_h&Au%G^E_)8kTOY!ui zz5yzc9Bhj6mU%JX0UM zmYietwO{b@iM}(j&0oOw+`)icv%QOs?FX z=6q@TSQIs&<+HU#3Ox;_w};X+`ZJMW=9b7NAq04wxPku6j5C4oAG{7#B|odzJaw@7Hb zUfrZ*IqPAcT8Wc=^PV$!fPAc9YCk<|HDmgu`u5MJIDR4zzWr zl3NE8d7imD#dB_ba0Z;zU`MM0)T8j7NM-EK3(kd32KVNjGqJa0V+}Jc9yMQ<#9qV= zxe}5H?|Ppx9DSbHOc<=*gZhFu;JXWkbJtR5WoB{(1lOXDB-d_``C!oWO5?+<;C~5j z1yqWlGcxDq#t;fmY%?+edgkU&hJ4B(Jc5w`A|Z+7R*i4(&UGCS4dR(AdUyHo+=xal zE+#Md3DX!@n@*$a_@g!jOc{jJ`qx3uF z(PHpcn7zKs3GT0%w6wHkrjgF8u-d%u%2s{*muT4hckr#=h=dJpW>8CZm^^0F_!~&v zZ()?&>v4g4;7*Y`wM$fVE7FSL-6@K3d>z1ytTAX-z1oqTBne(e_WA?sK}-}wlS_l0 zqMD|aS$mx$t9oJS1{^<0#hR$WnoCy~R)Q*wS;qIN<8v*heU$1{&irZojw=ws9r{Ri z&bJv_2YD(D+8qKrqWZmVW3ySi2K3Cd<;D~mHwYt$yF}ySd%yo`0Xhq3yN{@aKnI6o zNe@?sUEc#?3I*7+QHJlN6vQ*Q0V!_8d4cwluSW=XS4?juxxCnaN0Mozkn`U^wVeWa zdZKUDX=s})ZJ~t}Fo}AM4y^~7W*ZI9Dt@2&-sug(+Or)83=uZzK&-b(i|2R3QADGW zCXJ$&do`>|t(K^x#>@VFeH2<;RU-S)#8hIg7``Yd5SAS9omIe6kclXp7na>RMMOPH zVtRu*M)H6#wdfe(n8V z<|oH&`d?-Mc79Z#pwy7^*_IYcKuy>|9uVF z4K!pp_5b|(Kjm%I<~~!6%0Q>1@-7)8RsZLgl3ruRp8tG6^8dNTS!DvA1?Z5ps{j6q zSyul4{k8vVzl;ApE8|mu4i&z?m<4cl5JsN{!UF*Z@lN5=4gP7iI124vA4cGiWT~iD zGkx47FtKbyLB=(#%%ecmC4VPBkja+FBP(kQ&U;_Q2QC49DXJg-KU;x3B5vmYKC<7Y zm;$u}r5zce)H;m6iQYgG_$0K8o=_^i!c`R8-2d__Sa;;>^DWPSs58|jNm1=D_C-BGCGl@O+z{z>ohm1a?%kr%HOt0XTk+R zS}<%+pi@+1P(pKm${{dQz?T`m4MC9$NA>EXxDNQVV zt+pI7F*W3D9ni!l0sa))cN{T~?ucX~UOQlJ-d@X}#Z12qE=KY~t*ia=MmZ$XR1~P# zs!-!$A)m8*O*fRjE{bGH4ut4d1FNHi)*E6CdViZwDZpF5OTU%9?euH+m1|+WoMdk( zlf@Sc*A}G=5>SYLlBO0hOau}jQ{RS(cz-$&91H3j$r8IveAP>siyX;cT7 zKl(a^FVJq=_GFWKd+!a*WyLE|(6>|Me@#l^h@2Z5ABVz!eR2!9aL}I^1}eT?+==-G*mYlT98I3RfMb9-Lw`)v z?A!wd4R>^qA7pR~}Ey7uGef8MHEa=d?^vm10@Wp~@l8j^o>n3VxV zW;60$0iHj9lhAyb0A)zwr<{USXesA|EyAop28Qn7Ca@e}z>qH*OiuwKL*7?4y6o|t z3gsf^Jk@B?G-CnW0o4ronD;ZSohTCUtZ4KWdxpUz*wY0(*l~gtv=sCDEAXu4Lj`D8 zY&{@5v0)V1h;QG%J)UZgQk@*17=H&xCV_OY>O zsJR`!V0Toa&n8xZK}T(1Lxg-sj)+82J31uzNH5stySb?&JEE)aYYyn~S0UlE=SeJrlgaMi$vF5V=Ri2_o%{9cZ0wl_ z0l*yg8yg!lIfOxl`3^krGaxxK2nXPE&slJE7>c;Xfexvv6n!jnofxkS^z{gmc+wFM zE|z6}R>-nz;lO+eX@8!9QsMFK1JfRd@Od2kGVgFc#6gG586OE0?QF@XrlyO$Hdv~P zc<%-dii!aSn5)onHqzyHBID-Gd!Xr&A(CS`l)>RYp%$nTM4E2ZPw44onj%lC%9RrK zn9RP4LzWrW;loOFYu5N9t26qSFZh1-l%bRAGv6M1dU9nMhmALkEkn<+H!dN8r6+j7 z8I`2xqI|LnAD5Vzj=%{%zVk=zC!hVqNCXx$fWJs?uIarM{k)z9>t{e)MJ4z!jCK>p zoWSr@{lwPwyn++YA4g&33lN81SBRO*={u%T8GM9-Ce=lE##Qu0A0}PNKw7+E3gxse zKp++0PpW>lf!{tCT(WZAv|)o^-=Q(El8JWA08N;h=*mu8JpxC5Syx>_hv+Tfr-QR^ zB-d9fA=miDyc6jg7h4wRpOkIhsNj#T6BYDoz4|nstMPXr#DcGha_Lqmwleq6qf6Ui z46SHtYU*9YnkVs&&mlXidVymG4IDKEGQzc}DUkZf3bvR;;iAJK*(+P;^F%6#|0w^-0YbS@c~Av%G_t z763)}@D=v}ku@l^-ZnZ0K#N2|;0T&P!bJ?aCzbi{!U^r8R)Ace-v^2?9 zpnSo^hGteFSa#nn&+gF4y{caHqhc*|a(81KAK_{;KyTQKYl;NI(t}lL)*i&kV+CWU zzcVtNNGb~D6cI>QGx(LN!c+lD6XSu!@kXJx;2bOf4~V0lv8D$_8+qB#A-Hl#K~Oo0 z!H=Z)L6=9PcN97M-zx#?tfmk*3?Rt;gBN9F%CSA6fTTn3O5PXqd;vfs;IvwYnCv5-rc=dQ&}G5|zY!9VHJna!=kUVV zUqHI40qdbh8c1CG2~yq9MfR7js)Ce2?n$2(H0a~!ga$t)HDBhfes=Ici$*FlJPPu1 z$Ooz*>?s<0%>Jul!8Ey7Z0Q5`q9GJDt%tx(tYB@K5G5jDJ8l${Wd8+@!lguvM<}(R z{J4X;y(nzKAguy`l+5SU($cb#nR(xv?Eqweb3sk zq#NghFR+&$GKu%6H8cyHuH+{|!$XO0OdHdt1uMCMxZ(r$o&{=qL!US2S7AW4E+WV0J|1CQ=tS zbheXOQ#fsFGaD+%G45dDe<+8D;joO@3P*!E)}X%aEkydyv(WFjg0OIaJ8s8yie~Q= zNRG8HmVtjxz@A0ePSlgY;H<=On_zeJhLxj|0fIo-X>k7XSpT>(_-mpW`oDjqBFPb6 z^LBsfem#(<6ussreh`F+?7$0W|K9!q^w}w+y>LVs0L~MAqZ`_XM^{iQh8*bTr$SjVLfO6V!egwO`eX>@q{UkUYYL_$nae zQ`b;^1pwfQeJr(!nb{**X+hx`ui}AACF}9)Nkp;n zh&du|S|)&lu-RT$qp%QK`&c$?i2Ahv-lXycSTnV2tzm(I92zS1qk$p3;lR_bz(>_f zT%c;#=3e4@t+E1GpxxnNcI@@+!=k4j zx|=NL3Sm!9Gd?i?5~tG@Fdr&IhzeG9k`~XJ&I(yMHMvZrZZDv>ynh9S8rLu&08EI4)TYT!7$g9pwQ z)IL>55ZM@eoiCUce+X^jz-!6`1lIU%C3t{q1afXB#z-sCYTqw+Xlh<_>S_|Gspl?l zYHFmXOFEzXeT?_ zqL5O`$Vl0ejF60!O2|k;DkFrfN@n(`Y(hrd&!evE`@6sY+<)DV`@SC6^|<?TM%0ZnpOhP_ar0GeJ!A>Jnt{+_wxezM^5*)rQHkKum1+60aI0bT-G5|23A_rkE8C|&Yk+aN;M9*^PQ2al}sYusO?8T&`L z(4g>BZ^w8LdX?jrLH%kF2Vgp3<>Us=U;yeuHXwG_Aq>O5><@;C|1=5m%Ys4+PXVmP z^{&-IUW&iCDWDlR@eLYJ3ijQ`F+{AW;3}$#R-#M`9L~biaOxXftewS*0UhlAC>+I& z;bU8S?yEMMFSSGP2)uv|@SSqH$jHdZ_No-TT(B^%PsH|9x`jtIG`t8s$by@PCm0u^ zhja`bg?qf(D_mtvR!$v$>wWhf0DK7Tw^odOJUYL8Q5;W9y2mke)7!H*S)E(Zs_|#u zLMr_e<%pys=0cq4a=~Fpk3RO~vl$2pQ2W_|^ntG0>!&n!<=fyh^q~GGl2)(9ghO7F zu9o&bhjttJX;IIVkw5~?5Z&^vBqYk| z7n4(2?F`;&e6!4SH}=VgZwEyX!{p{y4hhcc4scmQCHUw&TT>g+%ScjXSA7TLC=7yi2pIQbNQATol61FS2-$aWL8R>(;6|trU z`&-ZMq*>J_N&~kByfcVi0%gc%nD$_W-o)?!-F#|qZDD-&PEl7ZNvg8m;{-|l*P(v4i8nn zxf>=!K4eG=eym<36^EyC1{iemdUt=Kl>4IO&FvRO|+R-mtZ9G876lfgpGk!w8bh1Iey`mFg>R zD+R$mA^>uFeq$9rgx-J{CgS``<9PoEDjNLFvv0ZO6&0nOohHM6s5GzrYB&%$RD!=_ zqk4t!Co(gFwFOAo2Q&_mw@py2F{_Hwy9j%R2^6=rotnreWgi5@zeit>kt(3kO38U# znK_N50Rx2a#+4*SCFZfX47Avnf)0A4wjnb!qI4~zeu+sDI!B-g`#pT(S#WQcSDAS1Ro7l1w-zQ6m#VI_d@prLwWJsXOBmQS394gx|245UaP8_H9X zRCe(ix&nf)5!&3dp_nMg6IhdlOY=kK32>`;USGTyu;BdQZl|9S&X0$XS9|fF4(Sq(ok6DEj_=F>f2tTGugcta$_FiZ1t~6s+|kd{?UI0*<(xB@l=eQR;z=Y3wm)_1{@MDu~D@Rs$q%4*lr0Yx3C4CO~VXmXsZi;4Z90m0#95 za7)>W*kU;SWJOsm*a6!JX3tazHQiQ98w1G6kmUBm+D}&Xq+n%=6w)pGw zv7Rw>e-Cg-2f9TEM#yT0@R|f{u~+ZnU~GQt{@VEs02}6D;He6i_r|SS zWe-1elu+Jy7xJOuuiphV1@YS_6vFD$?>ydo2(Iqnnu1t7yWkC2;o17S`*bkoMT-yU z>gK9u;K-{%&0$X$s}W_oy!UiS=SW}QO%a`ELbXc55-X=BZwL}&`g1o84gU{} z@Wm*F(GcfnMv+WYN2r#cRRamaeT zAGMqrPMsv$c|b4q4-c#jn*L~;Pw@gjeLakwsl4R%#DNDiD4F2O+6ZXFa1wE}4{kPT zoP~`Ek#4}Nc^fJjP~9G4MFz&Nqu;-MJ>g}4Z_k$jdXZ&aw~0bPDCmBu^z@o|qO5mt zmAzpdw|@Acy)SpUrs>6QE-G$Dy0SkHK7uW|BXNiIrfbw*5Pl|Mc!@29%Cum^6_`+g zA*92tRz-4WaBAXo!F!e>RU3zIF|nZG@!TsxIK0jAfVdvwDEU3+xhxvbj7Ym1sB3}- zIr!&oFQ{tr^H)Vd7DEJo{u z%xONV+|tTQA+ANJRe%A&gClTQp@@|+?3G@vzSc={Z{qeg{@mIBMeyuJ$+|)`IiUiY zPHzjZWIQdGSB7tNyhYTLd=%3R1XdaXZ*ju(JJtbU2hoAC)|aWPc2GS&uNrjFxH@6( zMru${P??MM$aPuhkr&-zfR|?Yk{%Te1|1|f3DQ<#Oa#!-kY>p7;nySN!=};IGyzeo zts5TvjNvcaAYlNJG&+!(R-kxAt*mmrPVf@IM{T1m5If(*`FpBxXT}F1jhJwO)j;ig z2t?0T@fn9ECce*|-C+#XNFK}3J#un`d-Px77yz}va4}ZKI;8PZ6uQzSV=%7?rJMOZ zNeX!2ZK|e;a|7!c=)MFoY$Bov`PV3Eda*Lq=G~!QB0M&*o6g;dwCd>6x+S1VC`vXo zKYM$(aH$RSjTJ5<5ewb-nF$YU(ph*B++`ADh<_sKx`4?f&BB%lNb_A=YEtw;l*2At2&+sZD>5YK`tac?7c}3RoYc{V#j{N$@*(VM*MY zC@1bzuAqP_1u8DJscT~PPF+^7{R$E27)ijI5SToKEQPmB!Xe5b@0|H_5n*qv-$n$t zZtcNNOJa#Hr|5<1UU7`#mL@`Q#+QH}CX@&8pkRO?`uG$Bjgm(i&+KQoGZE1>@GFoP z>Y*=49YTup0fe&j8)91lU6Q}+GDHj$Ex^Hqv*#!$n{FfWP3V_vN~P^w z5ZFg)7BgM>K^&OURl4kqkvsstL7dnBe z4Av!VVCu$xvZCl$TJPxSb7v2V7qMQ!iY6KsOfiKzV7XF`ZA_$G0yM|mJS8Vb#}ZT% zWzCno&OW_?Sq!V!4}+F#ho`+oOy0_qq$Us^MSKfze3YRAP_5%d8@gww*w+6{!`Q$l z+ES1~R1i4jwFfZ=CBs?D$$F6|7mJpDEG{m-?*ukvgB(g|^n-AYBoS(w`0Ck_Hfz}- z{wID3_wn?RIi7CCH!Z>@CX~NIMHEC!zkAnCw0{2l;zNO}Hq1N)Hc4Y54;~Q`x?z*V z_R|fQ?uqkAPY?g5$CjA<>PG10bL-1ueyBDddOsF&yTCtmeMV=pt&g**m`onv8GB-?p{ zqC1(E0lI)n0~6E+a4*SuI*|baUnVjyqC0D9YI@$Fb`Ua-y&8EByXq4@1G73o+mF=O z4byXvpPsWEOA>YqWtOzMS7mVx-G;@mtHrt5PuM*1~7N1(Ms4MLJSSvQH^STIT?q6 zT3fkGW3OjPcz{iF=4PTD!S+K{uV{f`?U$}8oQt8WHW3e_!ed{bpN_RovzQnk=No(6 zIGt9@e@8=O=`386Q5)zCO~Wvk_g-npeq=nTgQ-T3r|g+LT@i!eS}=*CSSJJss93!*OX|hm zD=^5HIC9d&eVPsNO`BV-gLR(5flN2k9<^5Cl-~O;gP1IBb_}KYJK+>7vXMRPl!=jr z>>*ei|F|I?!-&S<`IqTnD|`iS7awwIS*v2#mP$q|xb4(jO-Sa4W2Du7>8tSTT_|nU z6P)jOzYOT|3h8=5@Pt`4>;863lWA$<`+y+A#U{;n4NR zx~UHuY<@i!B6vTa@u1cA%+#M(bW$5#t?a|&J}C}~bW&R?3p##t<*@4hJokm%E{?1X>qnm*!%0PyVZVo8)X^m1 zXfx|7x?Xs*4`m>mtauH^vm20nD`EKo&XnWWe*!ux(12;YmD{uDM@<9Y*EPNz=PxtG z!11zh@dm(gWlZQ2jSyA^CqQ+NStPr!yO*6^=sHc0=Wc`DpzrV=SU7iaL>}}3`WCs! zeu&Efq0i0+=?4W@?fNnXh=Ml0WS*UaK>xr;ivbHDyw(qF7Cv}DVbUj1ET5<}7@M_- zN0tz$O&9Rd)*&U$V<=?X`4B~AZbL`-co2~mVj)97n?86;ko_A8z6JE6;_(ichxe5o zbO`Y>_CGS?>BF$gGCe=v<)!$4V{gZZ$0_ua)QL=;d6@gZsq@m+)fL!Z3K9mtbBOg{ zOJYi*yGcq_`-u72X4qEsy?G2WJp5N9!|u2n<17mOE?0$dAH`qEwhY$&K($vU-m1EY zS?mpVSI(2mjb#ukfV*}B$6^$xj#?B9*1?C{1kmm`C=jZ*&E8BI=GqCba+8Rvz6goM zzL@rQqsh_txyP(poq#|9O(_Pfp*FqOu7C)1z$d-y*~?0wT$M;CM>Eh^EV`}cV!-9Wod>gEB! z8DPc_dt$hB7Ne^B;PKM%7T~OhI0yv<83^2;muQott{R|MFy(6d+p& zl0OB9Tyq??R&QV2i;gx0-;|QW@B}Ei%L0<+Ke%C&^w9r7tJ>}piQ2@Q)|JGpHYh{0 zV`^@$WyZOE`*xy%rnHuwD4;6=!FIB}4I5UxlsGK2`y8%f7KZ7-cW>jb2GN6!FfD`Di6 zz8Qnc_8u7TXsM@u>9dp=7NyfcriI;Nk@6*l`7W zYGWPJhYYq2bh={W%RIetU|T={l#^tveTt9GdG#6ul0q&jSBny9?> zd_H#VshP%5IlPU2O^HlHD>+KedZz02WGOOOkJa4~5B@cU_~_L)k!%`X0L7A{PK3CgOH*aNo%6 zuV0p!PDg{xciqm;(`EW68${TrI+pMiWiUi#F}f|cMx>QwehAtmKpAkIv3(wBTJH!q zqDwEqCiM&+sKU3TB2!P+;?#~Rn07_G(Xi9w_xNVSTo=7w^U5CXLZYE=7^Hs$R^;3U zi-!~4S&vR73_FqcMgpo@)So`J?-z%U6LfKGaHy27z!g zUZ;6h-u*&dsr$~xel*y9dFWfDQF2++)6++TzAzd84dZi>?G|{LGmerK_c${%G#^Hr zV=ceY4Lv#xOSrK(ArX;4JfrOC)lmK2v3?f#)pOrIsyoRLgB%85bF9Ou`|Z2HH!3oW zr653!Tef6btOONki(ws>e0StGz{q0?!#K|mW3#=4Xhq}GydY5OoyV88gkvag_}#nZ zeFFp1NDp9jk9vCewQ<4afLX;W=zAYOed_N5et--XZMFkER9%PeAPa2m7t;d|3X6~5 z*w}x>3TW|r$!#++yD#!1_KT(;g7+gKICAZnG?wOxEcCZqh0*`C5g6otukeD zmdT3*U+RB(?Ce?Lv1{{+?TTj(pU#&48S(?uF-OJI4>!*m;=~c3YDY&fzDwk?iR1^lGs@!Hz$Nx(gv%RXGOMbzwbf6n+#9t9 zb-$4IctOzm>Untg_*K@{KG*&eq~I4d%~R&?*=U_9ADgkBiI*9d6JsJ6jtN2Z(Rf3L;1Z3i6wAUW~pb>H`o@TmeDAT&3}gjv9ndIN?l z@RHZs!Glw17nO~Q5*dOuid!E+YY?ckycoW?hLKTBW|1UU6N~D}1w6{fQyUBSMpPm; zaUp+m$NQ2uFJVCgx=?TbY3dv^O>9G@49BAJ9LlM~EF5Llws)w+gj)wF&e=$Oxii+@ zu4_J9#1vbyecK%kqTn*N*>@L1n#mF;#|%Wyl6VXd-@Mzoqwu6}K{yd8P}dJ8_w+l$ zYN4-xFcwq93=foM&VyVC_l4(m5yO*868a23%5KOU3a^=pq1purHYxG6r8Fm4wVDb; z19X=zUw%(^-QBz!;Ghn?f`Hrt)-+Mz<91?c&6?Hc<!62m-afA*~ATfLm+mbSKD%*DMk zGtne~V@LwXDIR|i_>=~9F*X3U5jT`h1Z2lHrlOjNIsB z9vP=zh1~3pk+ur_o<}eP^5$guuVJz%591&jJ-oGZ8@?-MG7^}g_`UjugiZ+V9~nD! z=aRs3m(4~B^72Hcj6IK`Y8v6cAf^;yU;PzdSMOnl;3V`RVI$y?J-r)R`+xRGWHB(y zzq;##b7hRv97a5dwDP`B!9L+P6U+x5iTronK(YbqOWA_?CT zT$pD;@O;cENLcy7@kGSgdCmBQ*oF!d8=<7}-0W=WXK7M6q7a*ggq|YYADq3i2i12T zI0X=eNvl38BBBd|N`&tC#KoPCnbpzP*O)wFXlVHM#GX~)#u~r9rup-hyO{*Tj0gS^ ziA$+}1f{oaTL~XU^;_H&1VC-c@4?Jn@ElLNaGzuT38yt2JMV5i7EjW?S5SbDjf30E zr7)J6t@9{jU~n*eF|@I<3C)ZdYC8K%|A`Xy+{tx|4jmU#4OioRI$Vd+MXFODkGa~d zkyhzc5!te3A#E#ih`PGQ%eRZWE-mh%jI0o|VD#%RcF)~4uqS*W-sa$)bG3-b)m}cr57xejlSa`DGB8`onSk%jd1tQKT zD_H(^?Gd}EQ?$>GUvkwsUB^+kBlobHRocfFtwTl41(Fegifwwo6teio*)EQi~;r41ivrZw2)U$Ol!O^!eUo=oTdlcibGi{(p_Pv*9V zSHd*#5f@4DTwHHjy5;2m{5Sk)4QcXC#tySg$x93EKC6vOZa>lvwa~i>Z4q zYi=%hV{#z2$#JP_G~=v@XlJa4Co8?0Qu)?Aq?Z2g@5ScFH7vAzPM7y1+c#q!x`&gs zCM|ztk687)eIC307Yq4UY5nK7B6d;z2Y&kBFGKz*W#7}{zsS`8dw+G<*3j$TfQM_q z_ZeNL8j}|SJrUbXoT^P)hMImYO*(&Wdndp2W7gzz)4wRG|MhwMk8~+HWOBb0K6H8E zhu|&a|Hof;Py{&+-X^|Cog${x>(_@%zuE?#9!gX~k%9I8IjvvxD9?P+dGLcOf>xav zzQMD~)-cUemfmLtx*=)`SbJ;m(8`K2Crj7Qq-`RJ)-XFF%nl%UvfFFl`2vb0@CLxv z{a^ACezY>JLzXm%4Eh<=FczED5!2a~)zzjY?4~~cnPEKl= zk_K!ZODG{A$fixTZ3ExGYcO4D{D?A0>f77>QS4;#}$AYbJ>~tYh^?dFORF ziMPD#1Y7squ4b4`uW*(bY(lsH5X7LQ1t11=#IL#xD7wiLeY(wOE~hYp`+ht{8`tH_ zZ#~-Ywh2m0zp2r%Kpa#=uoKM0-tCOR;42V_N2FUj7@BbDiVzvISf(TQ3Ri-njCUm| z;BB7J&5~p&=!v8LbDo^VF?nILr z4+x z>ogEUc42pr%%d*$uI=<9pzKTH^2 zN0(Ptt_D-oIlXDX)gCT6B;p3`6trD=7pQPKC|)2}^5JR6d(Ks;@jN{bbX;}+lLRHt zO&Asw{sDYNsWM3{+NAe&1`{D3)QW0o1SqDcT|=w;DPG`I^NEPi16Xv*A0)Lhz0YK4 z*Sm!?|1z5UO_)k09qwv+MqBL#~IWKT&lxW$su$PflrQhV@UKYI<6{ zNK7O!7;$bRuSe!b2w%jl!nQ4qI`gCo%iEX>ZE1T4sbdcN65Js80wFGgED{Jw0@Yuy zVU(#X5@-HxzsvUj*;^x;kbbNT$rb`7sccNTs!!dC13(J+=0+91F|rXKVE&((lY^&( z4nuN^4I49RhppYD;6RIuNKgi4?g7l4&#>)0Z)Iso3Kqnyv9q&-{mf6VA_c4iGQKrF z`}aNXgn^I<(`oCoXIG=%hQx?yumJ-i#!DHUhiBMu6(($k{CBD{a%wFP7WA%VWALmk*&Yo(~-3CwSL)#1v3QEK05l@x6ROh)Hy zNVIoDj3mlg5Pw!%R{hIJx6g>(2)eyBYKdq;&bj`wPGTGz(^n} z_v7N!BK7n0^U>`efMp1~EeG_V5&H$nRU6*Q zqN+smZRtt4Gw=<2GpLu^2n$GoKLu$Es8f!ML`v@3<%i56AUkU#4-&g^ga;S4yP?aZ zqo6HmIBwxv`=(t=i2d;{35m7mUUFfu?0qqfNYcPOVfyk1xqA@(%541p#Ha|7y9 zNn%)sSEF?gRk#hq1RHTBAif}5ATbQzj29mRpt~HU2nkw5I2G~ZOUioP=SBfU>4bw6 z*q$=JGVS0SDE&Tt{){(6!MZ)izD?KEAHW$d!A;QWaNgiAF9Kmg@z_huFbvbx(YiyY zr@G*VEL0%yBtWHMPK6hWmpo)H;Q_?c2W@CKW~8C1DCkiWucQzeExr`^LHz@2methC zAWj|E((=ZhdPlLn(B%?@0(V6%938Xwxo^k036zbjCsbh**ytWUeYy(x0cfHtksWa- zJX~d-cq>3bd*jn5Equ1pnwnct3EQ!gVN=1%!tlU(_S@C!`<*1u99TY938lVvaIA1D zq~k)HIWmj304~Si_K`>av_3n2K55yk|K$q~k;sFYHE`R2OopU*Q@U`9vdcDex+&lS zV-xDag2K?jc__WAPkz;Zxd5+--?F#&3QKEiL}}l>YBGEujv{={@%X}h?=o=gC#lyV z4ic@cU(QJ|T*qhH9HI<(!Fa6z5Lqen1-#DEAyIs7WTyW8SGkb75LGR1ztz$)9oA$m z;qiM5m>Cg{2sz$~PX>x7KfeQ!Cb9pH9Hq5?j~oXvg~3Mw=at?(YOuX~bAQTibSCJf z$&`a;0kU36vl5ywsd~3xolepI>tu()2(4B7w{KF&oGz}K17Qi+7z3IB72*PdOt5_| zxOt^$A|Z0y++ie!l|-DUl<#JfC^(?RbqxIjL_*BM z^jg)iM)vHdn?mk5KS=1L`KloJv*A#r$wtBn5t<0n+mFss()lk!az~*+2?HW|l+Y+( zK;nA9axlQn1XWSD@B#~*TUmYf^g7d6+3|pK@A{iU;IW))v&;NQG0k3sB|A<;DhO>@B?QT zLAx%r$CLF)>3eB?F3sKHp;Ec>Q&=qEaijX5yH4_73BRnUf+sw zgIOy{tfLfxisyslGvaEY`om(74oKh`5%S;$(QOYTO&BCV#3;U1;xo(+H*P#V>VnC) zq=gkz)?bwl12~sFz1tBNr8~j`9%9 zBl;D^-e&jLYMQ^fT3BiO5o!yFO`!o%`?IiwE621}NRk88M|NBbS_-HtzD7Zj(|ANUh}k6{eC{rLfK5S+ z-ta1_2`-qSUq|INo-4(813-NEvc5RrudJ-B_uMb!iS8W~?TOaxw58%?Y?y?f`y0pawt;#mNJ3~au9ezxa`BxB30m7`epEv2P6(&Ahpp3Zm=Q%kcpRnTvU1Ck| z3^oG#zNzWyG9dCabanWc#h`EhQgXr_CU6`{?sgBdg3z5(l`!<|9vLu=+2tMnR~JPr z7ZyL4FH`z79E+%i3F_A}0ID|tRX&`C#Cj7Vgmqk82X%iT4* z30D4gG6XmPzykBPk5gyNB0pdit6prxDF8LRKhML|4+EohwYBBo%w!_!^+v>gG>U%* zbO8AXU!FKjQi!U7ya`qXpA$1DXXVLfc%98S15oziPuQTSfZ3k3$~V=g4TDA1iP0D3 zk~4da)P_+#($LB2PJrQaK=;X|TioXA>y%TqA?RlPb`_V2#H?d(h?I0I*A8sLUP5!= zaXf9}Aaijj7y$r>33XRXTV~nc$G<^c7r^C3v2Wh`^>}4`xXxGOLgza?PuijoQY0XG zQ_LXy=9djaRK>Z~AmNct&Y08JEYstUtI^wQ2HLp*_i#Kxt5C$J@_~$F%L^bRD8g=w z>xVR#unx!a9KoV7-n6U`+h$rmNv@wEji3;l;YciuTms5hhIkz3Nw68Cg7eW#kOtcF zBbDKnANcng3x);;#f^=T5kyjg(F@}QMHqjIzK1kDpv z$M+{~66CIiSZ8|R6a~z+-!d4_>&ut25>K{VEnac8*ef7FGiLT8oNLU}5W`Un(^ySU znJc62L+P&o3a`XBeR~kgdKuBJc#iNL^#tPb96d0Cr zczw+ySA@{(O;=S{RuaeZ$~VN936AE-{G)i07LLTN`S|wvYS9$QJ&BImQYuNwnXc2> z%Pa33YMr)#nSVgkS_;Y-cI+Uer=?I}h3Jgo7%`rt{Dx~WA4J|*%DDjL_-VRg-fd#&AzP1Mhbu-en#jI)57Jy3TU)tE zMiC_aL?M9e^C@-I*R(y&ibx&nmeay&7Ms4+C=XrQ-p6GSM*3tJG zg$-vAMz`Rq^m6X_a!wYze#NOg#6$*Rq_7?jG)#+p@Kb;`>ZU&RagFC$92JS&&wpo} z-66Al@9B(B(1K53Mk<;(ZCZdj%;ho4AoR#E%b_{;70^VO^&Nb(ZUE4(3e@@E#U-h# zMtP0$>>Uovaj##E0Cc@C8pd~q(8!bA*up9FjjOOR^luM#ynI=}>hd7#={%=oHxpvX zj0Rn;8t7sV!Q|jh?fMTH zSmLbzSo-&m+UsGbxwU*RhEQO#k)y9U=j?i71FLK++3mU(Lyi!k3{227A<@d{8GiXYfo#GZz*ZYdIOx^vgmaH|wxP~YPu<^re zkqAYZGr+v!NRoE}5-as}8s@O13cpmmm;50k$TarG7nZjz=rg64hg-nvg zH$e7%oRVk!%_8a?^{u*dv$b+#{vwVZ^LN$5|GN z{i=PV&Yy|;MnLt^`FFHA^fN#U;=|}3z5mhih7aX-~vAY z-%U5wr92pVxbJa#yX>01pl8KqMEbTZ>cxwT*RJoHKs&1W8q=Xnquy#f00BJMBDQr4 zqx3`6_(}?~f5VS7WLq6VRRs=N;ICJZXYEhdwE*!z-G!gJH5b{N<#>9DdPBOxt|i;& zW+9CiRw;``9MW4s`hm>>NoX>+39s&lcrnm;Ek81?$ccb`415vR5A!fe=|v?*zPtlt zCV{iSR?0(oE5Hk)now^0+d%9Q-?Jwsf(b4k)lm|J#Eyb>O8!K?RWQc5v^e8&z57lY z83mJnAA$wLnSacp)qqiI?O7bK2=thY{p0Zb`!tBi`^#OxLq|7A78y2Y&uk zTcU32#f2GrEyN&B0rs#|e0uOB&=RJfd-m)>+|O#t$fCvJn+*Q}l+OPbP&(&j#&I7Y zo0qPc97;`?_EFV8-wV|;H%j$2lss@C03G4K6GnF`EjeV)Fd8U`MIM~MT4Hgyf!#b% zWD8_6<1N++%(qvGii#5Qj!_!`732^ISVsZ5mXfE`r?L))MMkR0hy9ID0t-)dLI~3n zw119buU(q~8<8#qYaLO!rPcinpduw5h6R3FSf(;sJosbo&38b{1iMiGn??ngC8GVt zw7F|!gh_dba|W_E#}GVa=0(Gwl7pT)I$eoYVCtSzQ&TDc z`YRQ7f-T0O)$f@9UE~6G7(nOD$@%!M=z1zWcG5&?r3i?QV_+-kJZ_p~nv9*(8LLn6a_OajVudqUT=Hurpb%~tw^1%@3w!el zi*%}rw6qaf+1dNSJX;-L4U7zepRj_i0YO+*ZLRtM)!6uCJ89Kn-pc>ZNhKnC@|A5< zNR9)j1AuCcMY zse-c*BftIK!$4_uQT=E$40}?Lj}lR73V1#d2PQyf#ZrZPckebut6sS0Y0@PJxF~2S zSu$N7o@<_4#-f*Lwk@ry3jAUL8qI{VRX*&kCM4(a?j+r%VG4Fw+{BE$^PSS$rFmQF z4pQ}3O=IH?yvqxU05W-)aJryJ+IL>s{BVvzsu54N zCdq8riBb$5-h$nP|J%RQfj=?b?F!EY1Y9^?#gU}W9K6i zmhYg;MGuf-1&k7(^N1-ej#HzPNBP7Rda(@!|77P|EZYuGkyu->4mH;;9g70+Lnr~1 zdg2I-di<9G5YaS@{Efng8iC>jTr3K0zi*ytUzxiAa78896o8xMd94)fW-x*%=@k|z zbz{a3A2~9C;0Wf@YTWF~#o97J=J34mg*+Bg5t>bdAY77PnBdtZE31YrB*g+4AR2Yw zKI)vz%pwq*0;Hn3=|5pIjkQNCrNHK{;EqDY_vi>@&KC7ALKQJ}Ml-%o5jZY<&bV6O zj&rmp%b?-PfFmkKf~bO{2{fl1o8m;n0p2^gXTisw@J|0QjU92d$xo0Qpl8=AM^k`< zFDZYED7~#eCcTh+@K&Z&%n0X>SXfxljtGQT*1x{$FlhouSARfP@xy~lw=dkXF`t`y z7KoKfX892E2-vg2BMOhYbi!>e*=Ozb?f)su zR%4dn{RgMy0W2Y?Ff^7n<9Wi4Z$ZwpFHf1#m5le4F#tX5Mf-c<@@1Mt9Z9bBlbXC( zFDuFta5hgP(Z&z5l5h)yyiFd%KW$O8H;n6Jm+~Hu6NwCT)*+)S3<$9cWAa0WKN{pTKR1hdq_Xfh zs9dfa#c{0)rvgd3dCysMXje$7w4Yh`@@P85k1^D!5dtQoUq40O@#n5RM{v^NJs#aY z-y_tby=}~yNRxU8H&ok z+xisX61CE+oAzGz|4=RaH4B_zs)p7|K|Pn1A=EGHqqJJCI4-Gan9?7}2H z8za#~v;`k(Yq$397mo^G-X|)WD&n%n%m8Nb6E?twc`Bpmw2#QGq@zR6&5kj#Pim?t z9&Z))^EiIGfeG>1pZp8bge})YM!$OC0Os8yGCSEeY#@_EuPgW4+S(pIdUW%HHTrFK zPmHVYaP+jOZNs(+)U{iI_v+ABCe%F`VeI_SmcJJPS8^R53-+JXv8!%guE1`|Pj~TO zrNQd;A0|U`EAz?ARIQP}+a=YEehDj~VLLEscCl0|D`HUiWMry;dRm$)+hvfblJdP# zZxEvi)N+Bo7pa41e>M2MT^C}$*^lUX@q`n@Fd~CfTwc5s9TUTxtPACv>eR=S#&g#v z({gem?9ixe0xqlDa*AqvS@I+*G+))YWw9nzK zH;lv&AZ!Jtv#FI8E$Riddk+DM(DkQ%NtUNh$?Bd3NQsn^C%bZ4ty5Sq>;m@Bx z;1(V%S%RpDx?W^1KYxHxt&^u2FYCAjI2vWpW?|s~j@?WX>OJvpn2NYgMd_|&i)n)- zZCe3Js1cZLM@>t+z(%hYGq`;$rbxf{o?&|V0~J3>0oppr8oTIh@c{dtMP&H~sRGPO*9{CC4nVx@uQN|HIpg-uQ76J_hS20II-i z2-)p>+bap&;b7zYGkeK-w|YwRA8Dp!zrrw?5${hqBa*ZT&_GRAL+fRPb!b*G^&K9zgO(WMtDrukA!H~O)9=IV>ESIl-}t8E zBI~OT@v{9WHP`mD1CZ6v6{?T>&orZ&@;uj4s(g1%m09p&(ekC5x%v4pdklX3gMv!2 zRR88dAN$r+34$Mq@HS6FFGSKl32W-PU)<&kb$E#M&Kt{E40d2z$Go--Aw)NTcf!O2 z3LzC=k^9$|xvTVVtZC9H8#oXAqu=Mom#b^B8_Qdq2GfX{mG%7)1DntEd2@re*Ydw} zSl%jz7DD=2Cy@}qVh?zguD-rM!At>Ok{zuutpG!BV!0RSQfPR1X?Web z;JJ6UaCTcgl#iN7lJN!s#=O4zm$;7Vuwj@=_VNgYdfnh z-^;STxFYE1uSXq|#pn#>%=eZT+u-vm^0WKwDszUhoR+owg74}&!y z^nks%UL;V-*mx5Wh!FIDn&$aYw2s7AQ+Y^77E`jYAbJW(0YD-6_)`<{JVkeNTwD7l z7J(Sty&OCwEC!8t?zn(?JMpvxkP3IcMqAvD2YDhrr62qXbf8<@M?ntu$vnrCcE zi@JwVJX&@Cic5fiT#Vt+9`hTa@|7hFrzOsTtjNf#$OFO@b`&4{BnmUxWL9JA2mPLHQR7Q4S8p zH?GqqpkUvcdAwajMEV1tv2LvfTDt6IU?SyU#b!c$PmpDToZh~D`-JpAuHW2M6{i0@ zi0jiFXK|T9o$@O>G=$26xbUKMnCNgDo0x&hJW!+vhJN0tn<*K37x~q}U&Z2}bp-7K zDLOD#=)!yX9^R^gVRTD|ZCdJ@U&2T8@|*Jlg}$b46BiHJ;L)JJma}VlBt9YGHeg>p zO>v%?`nR6NDl&x?!)L_J_)>}!NVPcb_fx`i#QP~feQ9+Oz($v&GQBDQ$~eM zGxzY9@axov+eKH{4nt44b8>2mwilBZ7zWUL?d;qXyK)TQ2K=7=pj0*>@Ee6kG1?hy zBW3@%Y9UEU{1`QS@h=vK;HHlcuh7dm7}6uTTN9OR}`UwnVyM!W{N8$a2ro{ujGZUBFAcN9XSXm!*9+3 zg%Bh&xuK5wp^Ho(0eYn#*FT(fycTP0IPV%zZYXm11=+#GAruV>P}fp;3)ml-AZ9_i6tp7ZRVJtQqLoFws8%gP8`p*JvI9B%R862dW2)!x5;PZY1cahwy0bzvGEP z3m(J+k=uil{?VxF{QjvA=##l5Wn@%<(ooq%MuPR;I|4lR0gVbr_mU5C+$+$wmES&`IR7(E5KX5kqHD|!V?HKl(S+L=_L zD&9PqhebhVfa*TG`nbxWG*V@oL#%r__C-d;CmfhnZ8^Bu+^k=G&ckOviB%>g(ap4; zyHMma*SJ82bQ9AZ4%X+N(Oh|bZ3|@5`_K zo877uZTe)b0E~Kw6Do<|HNEf1_Og+4{)JdGkGYrR@G~Gn#+s4Eh%=&e4GkTd|ALao z-;7B)d9VX@D*fc08C1lFZwF0&|B@2U_lxX^tFJy;`_izcx+b}86kk0x;_AjkCTpN? z4cNIqsUzv{JGAT)s@;&1tx+Bl1c69+cO4jTYQbFS6Z-m-!!-op+SIpEBD~Una3jOj ztZLFDsR&3j-oUvW)|p1N43Ri3<C*a7tC-(9+`6F}P80L=%a}JGrB5lTJfzL3DKVc;Qc^yQ#7#X!p6o_vukwl$Zhk zD$)Dk*RTg)=yug3@$$851^R}DNha?+C^>Vs`Mq}qWn|WqaTj=BR5l5l33l{rq-_J- zl31Ph2W{uCSNrJv8?qlty^<$YtK^em83TMdCgU%k6ZcV*L_KRsxoEgbD(_DyFH|F@Onh-UnXnt(!9QFiHW%ZVCsF0!&{a z^rS_HinEWU>;V{&FWpj5+nA%ULO}9h`r!<{j7<|PyRqe9HgqR8Hi+$ZU8VKKfT9(DG8p4<7kyoo)c^~r4WL(8e9)_0Latz5*kMBzCBMD zg{t!=DQt-Q)lZy%O~w*1A-@i?AU-w;J_Tmig=qvPR8qSOQ_#iS*$&zT3djRcV58cC zcpsK?f$+~Vh3{LE%lvydfhfb+0jNnN2}r{^ov4*Uz!4NWUFe%hTovZ>)LU%3m%&g- z@&d?C24L7@2{j5z6(A_)+dDs9G6rWPF9v^wITczS zeOw@~Wj|}09E(Z}QYjZuI}f+LT1&WqDcUHe`Z+!F1Kr)7^fz8mU`O^KvCrF#=LpJZ za`2G5Sd=&Zx*(I@0&p`dlmqNKkw7m+qjzOg7MmX_Y1;C9WwF|ku7}UtixDJUB~(KJ z@E;w|JrXaUZ!~5&YJLZwwHIa20mMXwg@qA6ImZO$GN!#o5B1@YB84i&QQ@mCP5r>K zCEFid-EtIecjDrhuqOelAb~VYEc z(zsa+L}8Cen)m1vHEkNPWW(xjqC(=kREw7+$&nyBhTeApC`fWG$#8VCgOl1e(~?v1 zT3&J0ReVvHHZXWy=>T}nKw=mE5y-ZnGQ_S>3ibmCCP%9--Vy+bmCUfg#j9MxvqDrb zuo&C2?8jDyI;oEl&j5g%_n68Y$1sHC+rU!5GM-cRoc2rC98Th|OR>3C4V-{D4w4vF z)C70(S)LlzW}~j_FNhb&@S zB$bJ?kQ+M@C=x8>HF4VT@7NKst9;v$dzKL!mf#GgQmcge5s2mL5X~b;${<7!Ky}cI zuvzaq)Crx@l5_un&u422jQj|RF5+Ag$iVOgv*h*FbONLqbJPPw zFBEuO98pdLId|Zm^@%g%xc(`TU*Z=iknck$0j?WsNc{^@C6>b=#YBHU_ygp7ma;4O z23>G?!$p^O9;c8!^UWE+^VkYj|F9NoUl0=!;ZI%22k4$8G*BY)&2wqan$n6AB?Z+X^BuGvKK~pe_8xPJABPJdac1+W3ijzSbRNUAEj$LTSTGg~U z1U572Y2+>DtA3%@+7PH^vQd{kYvCCT3x8~wZ;g)h;r4h{ICqp6wL&QZ%0U|nM8S%7 z>VDsg)bH)pB~0sQF}|59(HCK*hd2&pf?GdU?2f1JE-Z7yxi+BtwLEet_7(bIcyUA? zsvKliz>y&3-DHWCl4M(wfC8o)D+tAihEqpd&WHXAn?}QO@kY5T z{^B7ZGFL$Emx-7IO6%N_SLpzcV0rBY_>$}gj`@WjuN{XA2cNnOVd%eqzs}+aXnjvl zSOUCYqvu=%Hy{y^Ri4ujJ3gV>^3|#&&*dd@jnG{(<{KSl*S~Pl(Xq$p>PtN3bP=#h zWVyQ+=HWnt1fuNFKY~I2VZU$SB+Lcye6vCW?1c^vo1Db%#{g)&m)YIjE00%+WJox~ zpybg?o{E1X zrGCQ@@*=!pfbHpg{~H^H#ZQ8M@woQ9G-fB$3;gWrvvTOEiMd|8BiRqh99hZ^F?R?$ z!6S(shUIoX%Dx_)e9$Bm6LJ#6N_`0Eo$InlouPzz4GWC%RWZ~f?}u{?6HqfOXMs=q zF_j_3qm?2AlSOX1g>zp(AVsY~W(OE9gHol+*wvm5)>pmTn)6EkDVE2syEgyr@3d}# zR>%gNVnuQ^Xxnf9%$y>IMe71lK&>PkP#5+K)u12H7nU}&bQNIiY?m#4yHi=#UQ$~>1R_msr9#Kx@0J*;eK+FdhbWSKGL_;f3d}|;5He#nh zMv1_>?kVS@vxRZW;f&28+}=kMq;IDVH*PRaL0_%^@?4~i#u2<`n&Hd9C%acHb*j(H z6EiG-JRt#GjKp;kLz_(iPPVq?W&ekttNf>HOut4x( zXgV~}2E#f~#<_fTZZHNj-}Nauo7bqQsHiQZL`FvPMIDAI4G_Am96`uclh40ARMng- zmf@M{j%#~VQuoN=!y12n)-wE~Pq6890Jk-RANTtgfywZ7z#KckCLs&a%~;4%*M47! z=b8VRS-AB6{O3WYiuj;5hh`)D&TCV*x|}^dJ>$)ym^{m?%HvPky%jyAiyjB~Bozh3 ze19tHr_Jrv;Ai^loksKEERBaV)MId9pgfiLyxh<|eaoj8`=!B4zS>XB|*2e4Topb|Ddhmff(OjKOB6D1{yC*gYt9vt$SE~5Cl-o(`wg{Ja5#~G{o^!48+ z3*4FOzitzixcZh{a-b4Y9*fS!`ACF2RHAXl%4%YA^rtOv)`x^77sW46pl}s3ZvGI};k4;t42SKDBkCc=W~gNB=V!lRNpkUEdU&z)1!N zHgI4G83yYBFu4RdAs2=ji5GiAtfV1|LqkU5~rJ#k_T z3kI}How3;PwdWaYsaxl6#Wi6Gf8gJva;XZ`v)jHO|0;v}P5f`B1lo=MJ8`Q7!QEsm zRfZ0vs_I}y){|_jXDlxbnQp0{Jo9}A3O$tR=5|7LqUoqxQDy>~0%+3cdJN4HdN4^T zsq5Mz+pm@_qGHcN>Nt+fH2tikgZnSzaOj~Gh&(7dtnfiCMSFjWHjCOVMV~k+P+HJp zV0U`}Mjl>F-RG)w1QswWD=YXI1c@AG1~+Hr$&)AXqu_oA4BV$u{+XQSQ5GT^plYsd z)AG}%I*^Q}9+ZVjt+Z)-1;dJu+pKQUs{G7+b|OU^*e6Dp*?L!((kGw(%zuUV5sCcy zvQzJ$@)^TsCfyZ!8|Zz!IVK^Z5a}znTm{mDfKn2M9GHUbJ818-p9(UdR*k0bCZ9nx z1P-i{tOZk^=k0IbbAjDi03lGTqXk4H(yuPv(sCdd18=+InP;JRu>D|@`x}fDCOwT1 zpF*}V$X1(CNdw*-e>XGQamHSVv2>i9n#opjg{bpNE|JHkROQ!;Lj`T5N**ci3!E&C zO8l{)49FeccAo4V{dSw8OO7;_wLo4k;ve7 z?`)d8=CQQKe*+TuDdBFRK!zJyq054S5l7OX1>=pk{eQC zk=`_vFgj16BpTBJH&GlNbBSc6@O3%M>oz&P>>Nw5uDj;2xS4|gEDC#Xq(~Y@RVQD0 z{Y~bJj!wF6stH#U4MkG-Rolp13uPO{Yj)KYN|BB1k*P*bf!LbIt+`CkS5dk;v-HKD z*|!;rN0pncpcGbe;)k9xl^$;zdinVC*&|!Se>svj;MiQehWtN;;{8$d-ygjA{^wuO z;Ny}1tYR7d_Xj?WOzOXX`v3Ze63@C)jr}YTe?#-{gZ#F?(oFUDkIMB=7XEk~lUVWZ iFUqUd{QvZ!=Nb77dJiV9St~+5iKg07)#v+7z5g#~V1I1@ literal 0 HcmV?d00001 From eea5ab3bd4403e013239344cfb7a65b9fcd27c8f Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Fri, 19 May 2017 11:41:13 -0700 Subject: [PATCH 020/527] error-reporting: Fix README typos showing usage (#2316) --- handwritten/error-reporting/README.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 3556842e9d5..4ac797e7b35 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -166,10 +166,10 @@ errors.report('My error message'); ```js var express = require('express'); -var app = express(); -// Will create an errors instance based off env variables var errors = require('@google-cloud/error-reporting')(); +var app = express(); + app.get('/error', (req, res, next) => { res.send('Something broke!'); next(new Error('Custom error message')); @@ -203,15 +203,16 @@ server.route({ } }); -server.register({ register: errors.hapi }); +server.register(errors.hapi); ``` ### Using Koa ```js +var Koa = require('koa'); var errors = require('@google-cloud/error-reporting')(); -var koa = require('koa'); -var app = koa(); + +var app = new Koa(); app.use(errors.koa); @@ -231,20 +232,20 @@ app.listen(3000); ### Using Restify ```js +var restify = require('restify'); +var errors = require('@google-cloud/error-reporting')(); + function respond(req, res, next) { next(new Error('this is a restify error')); } -var restify = require('restify'); -var errors = require('@google-cloud/error-reporting')(); - var server = restify.createServer(); server.use(errors.restify(server)); server.get('/hello/:name', respond); server.head('/hello/:name', respond); -server.listen(8080); +server.listen(3000); ``` [gcloud-sdk]: https://cloud.google.com/sdk/gcloud/ From 8ea36d4bfdd1f92ab09b2b374d3d66ebf4ad8563 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Mon, 22 May 2017 15:56:23 -0700 Subject: [PATCH 021/527] error-reporting: Fix bug with errors not published (#2314) --- handwritten/error-reporting/README.md | 11 +++- handwritten/error-reporting/src/index.js | 2 +- .../error-reporting/src/interfaces/manual.js | 19 +++++- .../src/interfaces/message-builder.js | 19 +++++- .../system-test/testAuthClient.js | 64 +++++++++++++++---- .../test/unit/interfaces/manual.js | 28 ++++++-- 6 files changed, 116 insertions(+), 27 deletions(-) diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 4ac797e7b35..91e2ac259b8 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -149,19 +149,24 @@ var errors = require('@google-cloud/error-reporting')({ ```js var errors = require('@google-cloud/error-reporting')(); -// Use the error message builder to custom set all message fields +// Use the error message builder to customize all fields ... var errorEvt = errors.event() .setMessage('My error message') .setUser('root@nexus'); errors.report(errorEvt, () => console.log('done!')); -// Or just use a regular error +// or just use a regular error ... errors.report(new Error('My error message'), () => console.log('done!')); -// One can even just use a string +// or one can even just use a string. errors.report('My error message'); ``` +The stack trace associated with an error can be viewed in the error reporting console. +* If the `errors.report` method is given an `ErrorMessage` object built using the `errors.event` method, the stack trace at the point where the error event was constructed will be used. +* If the `errors.report` method is given an `Error` object, the stack trace where the error was instantiated will be used. +* If the `errors.report` method is given a string, the stack trace at the point where `errors.report` is invoked will be used. + ### Using Express ```js diff --git a/handwritten/error-reporting/src/index.js b/handwritten/error-reporting/src/index.js index 519e6ebbae5..b2038350e05 100644 --- a/handwritten/error-reporting/src/index.js +++ b/handwritten/error-reporting/src/index.js @@ -106,7 +106,7 @@ function Errors(initConfiguration) { * console.log('done!'); * }); */ - this.report = manual(this._client, this._config); + this.report = manual(this._client, this._config, this._logger); /** * @example * // Use to create and report errors manually with a high-degree diff --git a/handwritten/error-reporting/src/interfaces/manual.js b/handwritten/error-reporting/src/interfaces/manual.js index e2dbc74e495..5be883c979f 100644 --- a/handwritten/error-reporting/src/interfaces/manual.js +++ b/handwritten/error-reporting/src/interfaces/manual.js @@ -33,10 +33,12 @@ var errorHandlerRouter = require('../error-router.js'); * @param {AuthClient} client - an initialized API client * @param {NormalizedConfigurationVariables} config - the environmental * configuration + * @param {Object} logger - The logger instance created when the library API has + * been initialized. * @returns {reportManualError} - a bound version of the reportManualError * function */ -function handlerSetup(client, config) { +function handlerSetup(client, config, logger) { /** * The interface for manually reporting errors to the Google Error API in * application code. @@ -74,6 +76,21 @@ function handlerSetup(client, config) { } if (err instanceof ErrorMessage) { + // The API expects the error to contain a stack trace. Thus we + // append the stack trace of the point where the error was constructed. + // See the `message-builder.js` file for more details. + if (err._autoGeneratedStackTrace) { + err.setMessage(err.message + '\n' + err._autoGeneratedStackTrace); + // Delete the property so that if the ErrorMessage is reported a second + // time, the stack trace is not appended a second time. Also, the API + // will not accept the ErrorMessage if it has additional properties. + delete err._autoGeneratedStackTrace; + } else { + logger.warn('Encountered a manually constructed error with message \"'+ + err.message + '\" but without a construction site ' + + 'stack trace. This error might not be visible in the ' + + 'error reporting console.'); + } em = err; } else { em = new ErrorMessage(); diff --git a/handwritten/error-reporting/src/interfaces/message-builder.js b/handwritten/error-reporting/src/interfaces/message-builder.js index c22f3c11cc0..3a539d3b3be 100644 --- a/handwritten/error-reporting/src/interfaces/message-builder.js +++ b/handwritten/error-reporting/src/interfaces/message-builder.js @@ -33,9 +33,26 @@ function handlerSetup(config) { * @returns {ErrorMessage} - returns a new instance of the ErrorMessage class */ function newMessage() { - return new ErrorMessage().setServiceContext( + // The API expects a reported error to contain a stack trace. + // However, users do not need to provide a stack trace for ErrorMessage + // objects built using the message builder. Instead, here we store + // the stack trace with the parts that reference the error-reporting's + // internals removed. Then when the error is reported, the stored + // stack trace will be appended to the user's message for the error. + // + // Note: The stack trace at the point where the user constructed the + // error is used instead of the stack trace where the error is + // reported to be consistent with the behavior of reporting a + // an error when reporting an actual Node.js Error object. + var fauxError = new Error(''); + var fullStack = fauxError.stack.split('\n'); + var cleanedStack = fullStack.slice(2).join('\n'); + + var em = new ErrorMessage().setServiceContext( config.getServiceContext().service, config.getServiceContext().version); + em._autoGeneratedStackTrace = cleanedStack; + return em; } return newMessage; diff --git a/handwritten/error-reporting/system-test/testAuthClient.js b/handwritten/error-reporting/system-test/testAuthClient.js index dde00dc2cf0..8678a2b0d3f 100644 --- a/handwritten/error-reporting/system-test/testAuthClient.js +++ b/handwritten/error-reporting/system-test/testAuthClient.js @@ -361,10 +361,9 @@ describe('Expected Behavior', function() { }); describe('error-reporting', function() { - const TIMESTAMP = Date.now(); const BASE_NAME = 'error-reporting-system-test'; function buildName(suffix) { - return [TIMESTAMP, BASE_NAME, suffix].join('_'); + return [Date.now(), BASE_NAME, suffix].join('_'); } const SERVICE_NAME = buildName('service-name'); @@ -390,15 +389,8 @@ describe('error-reporting', function() { }); }); - it('Should correctly publish errors', function(done) { - // After an error is reported, this test waits TIMEOUT ms before - // verifying the error has been reported to ensure the system had - // enough time to receive the error report and process it. - // As such, this test is set to fail due to a timeout only if sufficiently - // more than TIMEOUT ms has elapsed to avoid test fragility. - this.timeout(TIMEOUT * 2); - var errorId = buildName('message'); - errors.report(new Error(errorId), function(err, response, body) { + function verifyReporting(errOb, messageTest, timeout, cb) { + errors.report(errOb, function(err, response, body) { assert.ifError(err); assert(isObject(response)); assert.deepEqual(body, {}); @@ -410,7 +402,7 @@ describe('error-reporting', function() { var matchedErrors = groups.filter(function(errItem) { return errItem && errItem.representative && - errItem.representative.message.startsWith('Error: ' + errorId); + messageTest(errItem.representative.message); }); // The error should have been reported exactly once @@ -424,9 +416,53 @@ describe('error-reporting', function() { assert.ok(context); assert.strictEqual(context.service, SERVICE_NAME); assert.strictEqual(context.version, SERVICE_VERSION); - done(); + cb(); }); - }, TIMEOUT); + }, timeout); }); + } + + // For each test below, after an error is reported, the test waits + // TIMEOUT ms before verifying the error has been reported to ensure + // the system had enough time to receive the error report and process it. + // As such, each test is set to fail due to a timeout only if sufficiently + // more than TIMEOUT ms has elapsed to avoid test fragility. + + it('Should correctly publish errors using the Error constructor', + function(done) { + this.timeout(TIMEOUT * 2); + var errorId = buildName('with-error-constructor'); + var errOb = new Error(errorId); + verifyReporting(errOb, function(message) { + return message.startsWith('Error: ' + errorId); + }, TIMEOUT, done); + }); + + it('Should correctly publish errors using a string', function(done) { + this.timeout(TIMEOUT * 2); + var errorId = buildName('with-string'); + verifyReporting(errorId, function(message) { + return message.startsWith(errorId); + }, TIMEOUT, done); + }); + + it('Should correctly publish errors using an error builder', function(done) { + this.timeout(TIMEOUT * 2); + var errorId = buildName('with-error-builder'); + var errOb = (function definitionSiteFunction() { + return errors.event() + .setMessage(errorId); + })(); + (function callingSiteFunction() { + verifyReporting(errOb, function(message) { + // Verify that the stack trace of the constructed error + // uses the stack trace at the point where the error was constructed + // and not the stack trace at the point where the `report` method + // was called. + return message.startsWith(errorId) && + message.indexOf('callingSiteFunction') === -1 && + message.indexOf('definitionSiteFunction') !== -1; + }, TIMEOUT, done); + })(); }); }); \ No newline at end of file diff --git a/handwritten/error-reporting/test/unit/interfaces/manual.js b/handwritten/error-reporting/test/unit/interfaces/manual.js index e5544d0675a..3216148cef8 100644 --- a/handwritten/error-reporting/test/unit/interfaces/manual.js +++ b/handwritten/error-reporting/test/unit/interfaces/manual.js @@ -37,7 +37,21 @@ describe('Manual handler', function() { } } }; - var report = manual(client, config); + var report = manual(client, config, { + warn: function(message) { + // The use of `report` in this class should issue the following warning + // becasue the `report` class is used directly and, as such, cannot + // by itself have information where a ErrorMesasge was constructed. It + // only knows that an error has been reported. + // Thus, the ErrorMessage objects given to the `report` method in the + // tests do not have construction site information to verify that if + // that information is not available, the user is issued a warning. + assert.strictEqual(message, 'Encountered a manually constructed error ' + + 'with message "builder test" but without a construction site stack ' + + 'trace. This error might not be visible in the error reporting ' + + 'console.'); + } + }); describe('Report invocation behaviour', function() { it('Should allow argument-less invocation', function() { var r = report(); @@ -140,20 +154,20 @@ describe('Manual handler', function() { describe('Custom Payload Builder', function() { it('Should accept builder inst as only argument', function() { - var msg = 'test'; + var msg = 'builder test'; var r = report(new ErrorMessage().setMessage(msg)); - assert.strictEqual(r.message, msg, + assert(r.message.startsWith(msg), 'string message should propagate from error message inst'); }); it('Should accept builder and request as arguments', function() { - var msg = 'test'; + var msg = 'builder test'; var oldReq = {method: 'GET'}; var newReq = {method: 'POST'}; var r = report( new ErrorMessage().setMessage(msg).consumeRequestInformation(oldReq), newReq ); - assert.strictEqual(r.message, msg, + assert(r.message.startsWith(msg), 'string message should propagate from error message inst'); assert.strictEqual(r.context.httpRequest.method, newReq.method, [ @@ -163,7 +177,7 @@ describe('Manual handler', function() { ); }); it('Should accept message and additional message params as', function() { - var oldMsg = 'test'; + var oldMsg = 'builder test'; var newMsg = 'analysis'; var r = report( new ErrorMessage().setMessage(oldMsg), @@ -176,7 +190,7 @@ describe('Manual handler', function() { ].join('\n')); }); it('Should accept message and callback function', function(done) { - var oldMsg = 'test'; + var oldMsg = 'builder test'; report( new ErrorMessage().setMessage(oldMsg), function() { done(); } From 768b10c64060dc973456de9d2ed6584d0e858c39 Mon Sep 17 00:00:00 2001 From: Stephen Sawchuk Date: Thu, 25 May 2017 19:39:58 -0400 Subject: [PATCH 022/527] error-reporting @ 0.1.2 tagged. --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index a4302eed052..0b6a82c2f4d 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -53,5 +53,5 @@ "utils", "index.js" ], - "version": "0.1.1" + "version": "0.1.2" } From ded8af8d074ab0c0297f35944398aee0378655a8 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Wed, 31 May 2017 08:38:50 -0700 Subject: [PATCH 023/527] error-reporting: Fix an issue where authorization would fail (#2336) The `keyFilename` and `credentials` values specified in the configuration to the error-reporting library were not being used to communicate through the API. This would cause communication through the error-reporting API to fail. --- .../error-reporting/src/configuration.js | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/handwritten/error-reporting/src/configuration.js b/handwritten/error-reporting/src/configuration.js index 18892607b55..5ecc79b9fb8 100644 --- a/handwritten/error-reporting/src/configuration.js +++ b/handwritten/error-reporting/src/configuration.js @@ -104,7 +104,7 @@ var Configuration = function(givenConfig, logger) { */ this._key = null; /** - * The _keyFilename property is meant to contain a path to a file containing + * The keyFilename property is meant to contain a path to a file containing * user or service account credentials, which will be used in place of * application default credentials. This property will remain null if no * value for keyFilename is given in the runtime configuration. @@ -113,9 +113,9 @@ var Configuration = function(givenConfig, logger) { * @type {String|Null} * @defaultvalue null */ - this._keyFilename = null; + this.keyFilename = null; /** - * The _credentials property is meant to contain an object representation of + * The credentials property is meant to contain an object representation of * user or service account credentials, which will be used in place of * application default credentials. This property will remain null if no * value for credentials is given in the runtime configuration. @@ -124,7 +124,7 @@ var Configuration = function(givenConfig, logger) { * @type {Credentials|Null} * @defaultvalue null */ - this._credentials = null; + this.credentials = null; /** * The _serviceContext property is meant to contain the optional service * context information which may be given in the runtime configuration. If @@ -258,12 +258,12 @@ Configuration.prototype._gatherLocalConfiguration = function() { throw new Error('config.key must be a string'); } if (isString(this._givenConfiguration.keyFilename)) { - this._keyFilename = this._givenConfiguration.keyFilename; + this.keyFilename = this._givenConfiguration.keyFilename; } else if (has(this._givenConfiguration, 'keyFilename')) { throw new Error('config.keyFilename must be a string'); } if (isObject(this._givenConfiguration.credentials)) { - this._credentials = this._givenConfiguration.credentials; + this.credentials = this._givenConfiguration.credentials; } else if (has(this._givenConfiguration, 'credentials')) { throw new Error('config.credentials must be a valid credentials object'); } @@ -335,24 +335,24 @@ Configuration.prototype.getKey = function() { return this._key; }; /** - * Returns the _keyFilename property on the instance. + * Returns the keyFilename property on the instance. * @memberof Configuration * @public * @function getKeyFilename - * @returns {String|Null} - returns the _keyFilename property + * @returns {String|Null} - returns the keyFilename property */ Configuration.prototype.getKeyFilename = function() { - return this._keyFilename; + return this.keyFilename; }; /** - * Returns the _credentials property on the instance. + * Returns the credentials property on the instance. * @memberof Configuration * @public * @function getCredentials - * @returns {Credentials|Null} - returns the _credentials property + * @returns {Credentials|Null} - returns the credentials property */ Configuration.prototype.getCredentials = function() { - return this._credentials; + return this.credentials; }; /** * Returns the _serviceContext property on the instance. From 3fbef626f8293250b04af77b2e363541a16a45fe Mon Sep 17 00:00:00 2001 From: Ali Ijaz Sheikh Date: Wed, 31 May 2017 10:18:46 -0700 Subject: [PATCH 024/527] Doc error-reporting integration with logs (#2333) Document loggin-{winston,bunyan} and error-reporting from each other's README files. --- handwritten/error-reporting/README.md | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 91e2ac259b8..f80430e51b6 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -9,7 +9,7 @@ This module provides Stackdriver Error Reporting support for Node.js applications. [Stackdriver Error Reporting](https://cloud.google.com/error-reporting/) is a feature of Google Cloud Platform that allows in-depth monitoring and viewing of errors reported by -applications running in almost any environment. +applications running in almost any environment. ![Stackdriver Error Reporting overview](doc/images/errors-overview.png) @@ -17,6 +17,13 @@ Here's an introductory video that provides some more details: [![Learn about Error Reporting in Stackdriver](https://img.youtube.com/vi/cVpWVD75Hs8/0.jpg)](https://www.youtube.com/watch?v=cVpWVD75Hs8) +Note that [@google-cloud/logging-winston][logging-winston] and +[@google-cloud/logging-bunyan][logging-bunyan] automatically integrate with the +Error Reporting service for Error objects logged at severity `error` or higher, +for applications running on Google Cloud Platform. If you are already using +Winston or Bunyan in your application, and don't need direct access/control of +error reporting, you may want to check those modules as well. + ## Prerequisites 1. Your application needs to use Node.js version 4.x or greater. @@ -48,6 +55,9 @@ var errors = require('@google-cloud/error-reporting')({ // Report an error to the Stackdriver Error Reporting API errors.report(new Error('Something broke!')); + +// We also provide error handling middleware for express, hapi, restify & koa. +// See sections below. ``` 3. **View reported errors:** @@ -184,6 +194,8 @@ app.get('/exception', () => { JSON.parse('{\"malformedJson\": true'); }); +// Note that express error handling middleware should be attached after all +// the other routes and use() calls. See [express docs][express-error-docs]. app.use(errors.express); app.listen(3000); @@ -253,10 +265,13 @@ server.head('/hello/:name', respond); server.listen(3000); ``` -[gcloud-sdk]: https://cloud.google.com/sdk/gcloud/ [app-default-credentials]: https://developers.google.com/identity/protocols/application-default-credentials -[service-account]: https://console.developers.google.com/apis/credentials/serviceaccountkey +[express-error-docs]: https://expressjs.com/en/guide/error-handling.html +[gcloud-sdk]: https://cloud.google.com/sdk/gcloud/ +[logging-bunyan]: https://www.npmjs.com/package/@google-cloud/logging-bunyan +[logging-winston]: https://www.npmjs.com/package/@google-cloud/logging-winston [npm-image]: https://badge.fury.io/js/%40google-cloud%2Ferror-reporting.svg [npm-url]: https://npmjs.org/package/@google-cloud/error-reporting +[service-account]: https://console.developers.google.com/apis/credentials/serviceaccountkey [snyk-image]: https://snyk.io/test/npm/@google-cloud/error-reporting/badge.svg [snyk-url]: https://snyk.io/test/npm/@google-cloud/error-reporting From ecf0e09d569150eab5f372abc44ed86372bba00c Mon Sep 17 00:00:00 2001 From: Stephen Sawchuk Date: Wed, 31 May 2017 13:20:21 -0400 Subject: [PATCH 025/527] error-reporting @ 0.1.3 tagged. --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 0b6a82c2f4d..f5ed4ed7e28 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -53,5 +53,5 @@ "utils", "index.js" ], - "version": "0.1.2" + "version": "0.1.3" } From 8be9f2261465ef09a665ee8a05242d2ef3e440d4 Mon Sep 17 00:00:00 2001 From: Kelvin Jin Date: Thu, 8 Jun 2017 16:32:14 -0700 Subject: [PATCH 026/527] Elaborate on GKE (#2366) PR-URL: #2366 --- handwritten/error-reporting/README.md | 37 +++++++++++++++++---------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index f80430e51b6..a2dc5b51ecf 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -40,7 +40,7 @@ runtime configuration object is set to `true`. See the [Configuration](#configu In your project, on the command line: -```bash +```sh # Install through npm while saving to the local 'package.json' npm install --save @google-cloud/error-reporting ``` @@ -96,7 +96,16 @@ If you already have VMs that were created without API access and do not wish to ### Google Container Engine -Container Engine nodes need to also be created with the `https://www.googleapis.com/auth/cloud-platform` scope, which is configurable during cluster creation. Alternatively, you can follow the instructions for using a service account under [running elsewhere](#running-elsewhere). It's recommended that you store the service account credentials as [Kubernetes Secret](http://kubernetes.io/v1.1/docs/user-guide/secrets.html). +As with Compute Engine, Container Engine nodes need to be created with the `https://www.googleapis.com/auth/cloud-platform` scope, which is configurable during cluster creation: +* If the cluster is being created with the `gcloud` CLI, pass the scope to the command with the `--scopes` command (multiple scopes can be [delimited with a comma](https://cloud.google.com/sdk/gcloud/reference/container/clusters/create)): + + ```sh + gcloud container clusters create example-cluster-name --scopes https://www.googleapis.com/auth/cloud-platform + ``` + +* If the cluster is being created through the Cloud Console UI, ensure that the "Cloud Platform" project access is set to "Enabled" (it's disabled by default). + +Alternatively, you can also follow the instructions for using a service account under [running elsewhere](#running-elsewhere). It's recommended that you store the service account credentials as [Kubernetes Secret](http://kubernetes.io/v1.1/docs/user-guide/secrets.html). ## Running Elsewhere @@ -104,7 +113,9 @@ If your application is running outside of Google Cloud Platform, such as locally 1. You will need to specify your project ID when starting the errors agent. - GCLOUD_PROJECT=particular-future-12345 node myapp.js + ```sh + GCLOUD_PROJECT=particular-future-12345 node myapp.js + ``` 1. You need to provide service account credentials to your application by using one of the three options below: * The recommended way is via [Application Default Credentials][app-default-credentials]. @@ -114,16 +125,16 @@ If your application is running outside of Google Cloud Platform, such as locally * If you are running your application on a development machine or test environment where you are using the [`gcloud` command line tools][gcloud-sdk], and are logged using `gcloud beta auth application-default login`, you already have sufficient credentials, and a service account key is not required. * Alternatively, you may set the `keyFilename` or `credentials` configuration field to the full path or contents to the key file, respectively. Setting either of these fields will override either setting `GOOGLE_APPLICATION_CREDENTIALS` or logging in using `gcloud`. For example: -```js - // Require and start the agent with configuration options - var errors = require('@google-cloud/error-reporting')({ - // The path to your key file: - keyFilename: '/path/to/keyfile.json', - - // Or the contents of the key file: - credentials: require('./path/to/keyfile.json') - }); -``` + ```js + // Require and start the agent with configuration options + var errors = require('@google-cloud/error-reporting')({ + // The path to your key file: + keyFilename: '/path/to/keyfile.json', + + // Or the contents of the key file: + credentials: require('./path/to/keyfile.json') + }); + ``` When running on Google Cloud Platform, we handle these for you automatically. From 04744832484f0d8fb6660f8e8280610020562461 Mon Sep 17 00:00:00 2001 From: Ali Ijaz Sheikh Date: Thu, 15 Jun 2017 05:27:11 -0700 Subject: [PATCH 027/527] Fix hardcoded old package name (#2391) Fixes: https://github.com/GoogleCloudPlatform/google-cloud-node/issues/2389 --- handwritten/error-reporting/package.json | 2 +- .../error-reporting/src/configuration.js | 20 ------------------- .../error-reporting/src/interfaces/hapi.js | 7 +++---- handwritten/error-reporting/src/logger.js | 4 +++- .../test/unit/configuration.js | 4 ---- .../test/unit/interfaces/hapi.js | 2 +- .../error-reporting/test/unit/logger.js | 4 ++-- 7 files changed, 10 insertions(+), 33 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index f5ed4ed7e28..a4e4c7a26bd 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -4,7 +4,7 @@ "main": "./src/index.js", "repository": "GoogleCloudPlatform/google-cloud-node", "scripts": { - "test": "nyc --exclude=\"fuzzer.js\" mocha ./test/unit/**/*.js", + "test": "nyc --exclude=\"fuzzer.js\" mocha ./test/unit/*.js ./test/unit/**/*.js", "system-test": "nyc --exclude=\"error-message.js\" mocha ./system-test/*.js", "lint": "jshint -c ../../.jshintrc src system-test test utils && jscs -c ../../.jscsrc src system-test test utils", "publish-module": "node ../../scripts/publish.js error-reporting" diff --git a/handwritten/error-reporting/src/configuration.js b/handwritten/error-reporting/src/configuration.js index 5ecc79b9fb8..03d77768964 100644 --- a/handwritten/error-reporting/src/configuration.js +++ b/handwritten/error-reporting/src/configuration.js @@ -22,7 +22,6 @@ var isObject = is.object; var isBoolean = is.boolean; var isString = is.string; var isNumber = is.number; -var version = require('../package.json').version; /** * The Configuration constructor function initializes several internal @@ -135,15 +134,6 @@ var Configuration = function(givenConfig, logger) { * @type {Object} */ this._serviceContext = {service: 'nodejs', version: ''}; - /** - * The _version of the Error reporting library that is currently being run. - * This information will be logged in errors communicated to the Stackdriver - * Error API. - * @memberof Configuration - * @private - * @type {String} - */ - this._version = version; /** * The _givenConfiguration property holds a ConfigurationOptions object * which, if valid, will be merged against by the values taken from the meta- @@ -364,14 +354,4 @@ Configuration.prototype.getCredentials = function() { Configuration.prototype.getServiceContext = function() { return this._serviceContext; }; -/** - * Returns the _version property on the instance. - * @memberof Configuration - * @public - * @function getVersion - * @returns {String} - returns the _version property - */ -Configuration.prototype.getVersion = function() { - return this._version; -}; module.exports = Configuration; diff --git a/handwritten/error-reporting/src/interfaces/hapi.js b/handwritten/error-reporting/src/interfaces/hapi.js index 35ee6eeaca7..dcc5999e1b9 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.js +++ b/handwritten/error-reporting/src/interfaces/hapi.js @@ -21,6 +21,7 @@ var isFunction = is.fn; var ErrorMessage = require('../classes/error-message.js'); var hapiRequestInformationExtractor = require('../request-extractors/hapi.js'); var errorHandlerRouter = require('../error-router.js'); +var packageJson = require('../../package.json'); /** * The Hapi error handler function serves simply to create an error message @@ -105,12 +106,10 @@ function makeHapiPlugin(client, config) { } var hapiPlugin = {register: hapiRegisterFunction}; - var version = (isObject(config) && config.getVersion()) ? - config.getVersion(): '0.0.0'; hapiPlugin.register.attributes = { - name: '@google/cloud-errors', - version: version + name: packageJson.name, + version: packageJson.version }; return hapiPlugin; diff --git a/handwritten/error-reporting/src/logger.js b/handwritten/error-reporting/src/logger.js index da71a8dd56a..d7ae446da61 100644 --- a/handwritten/error-reporting/src/logger.js +++ b/handwritten/error-reporting/src/logger.js @@ -22,6 +22,8 @@ var isObject = is.object; var isString = is.string; var isNumber = is.number; var logger = require('@google-cloud/common').logger; +var packageJson = require('../package.json'); + /** * Creates an instance of the Google Cloud Diagnostics logger class. This * instance will be configured to log at the level given by the environment or @@ -59,7 +61,7 @@ function createLogger(initConfiguration) { 'representation of a number in string form'); } } - return logger({level: level, tag: '@google/cloud-errors'}); + return logger({level: level, tag: packageJson.name }); } module.exports = createLogger; diff --git a/handwritten/error-reporting/test/unit/configuration.js b/handwritten/error-reporting/test/unit/configuration.js index 44f96061c81..5171935ebeb 100644 --- a/handwritten/error-reporting/test/unit/configuration.js +++ b/handwritten/error-reporting/test/unit/configuration.js @@ -19,7 +19,6 @@ var assert = require('assert'); var isNumber = require('is').number; var merge = require('lodash.merge'); var Configuration = require('../fixtures/configuration.js'); -var version = require('../../package.json').version; var Fuzzer = require('../../utils/fuzzer.js'); var level = process.env.GCLOUD_ERRORS_LOGLEVEL; var logger = require('../../src/logger.js')({ @@ -93,9 +92,6 @@ describe('Configuration class', function() { assert.deepEqual(c.getServiceContext(), {service: 'node', version: undefined}); }); - it('Should have a version corresponding to package.json', function() { - assert.strictEqual(c.getVersion(), version); - }); }); describe('with ignoreEnvironmentCheck', function() { var conf = merge({}, stubConfig, {ignoreEnvironmentCheck: true}); diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.js b/handwritten/error-reporting/test/unit/interfaces/hapi.js index ae2c491d215..e2ef1cc2dea 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.js +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.js @@ -57,7 +57,7 @@ describe('Hapi interface', function() { function() { assert(has(plugin.register.attributes, 'name')); assert.strictEqual(plugin.register.attributes.name, - '@google/cloud-errors'); + '@google-cloud/error-reporting'); } ); it('the plugin\'s attribute property should have a version property', diff --git a/handwritten/error-reporting/test/unit/logger.js b/handwritten/error-reporting/test/unit/logger.js index c2a3074ad80..938b0877747 100644 --- a/handwritten/error-reporting/test/unit/logger.js +++ b/handwritten/error-reporting/test/unit/logger.js @@ -72,13 +72,13 @@ describe('logger', function() { var logger = createLogger(); logger.warn('test warning message'); assert.strictEqual(text, - 'WARN:@google/cloud-errors: test warning message'); + 'WARN:@google-cloud/error-reporting: test warning message'); }); it('Should print ERROR logs by default', function() { var logger = createLogger(); logger.error('test error message'); assert.strictEqual(text, - 'ERROR:@google/cloud-errors: test error message'); + 'ERROR:@google-cloud/error-reporting: test error message'); }); }); }); From c77f4ca65a416380f7365e68d6dd13b8f9f309dd Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Thu, 15 Jun 2017 10:31:19 -0700 Subject: [PATCH 028/527] errors-reporting: Unhandled rejections are reported (#2360) --- handwritten/error-reporting/README.md | 13 +- .../error-reporting/src/configuration.js | 24 +++ handwritten/error-reporting/src/index.js | 11 ++ .../system-test/testAuthClient.js | 144 ++++++++++++++---- .../test/unit/configuration.js | 23 +++ 5 files changed, 181 insertions(+), 34 deletions(-) diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index a2dc5b51ecf..a7c4bb137c7 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -64,9 +64,17 @@ errors.report(new Error('Something broke!')); Open Stackdriver Error Reporting at https://console.cloud.google.com/errors to view the reported errors. +## Unhandled Rejections + +Unhandled Rejections are not reported by default. The reporting of unhandled rejections can be enabled using the `reportUnhandledRejections` configuration option. See the [Configuration](#configuration) section for more details. + +If unhandled rejections are set to be reported, then, when an unhandled rejection occurs, a message is printed to standard out indicated that an unhandled rejection had occurred and is being reported, and the value causing the rejection is reported to the error-reporting console. + ## Catching and Reporting Application-wide Uncaught Errors -*It is recommended to catch `uncaughtExceptions` for production-deployed applications.* +Uncaught exceptions are not reported by default. *It is recommended to process `uncaughtException`s for production-deployed applications.* + +Note that uncaught exceptions are not reported by default because to do so would require adding a listener to the `uncaughtException` event. Adding such a listener without knowledge of other `uncaughtException` listeners can cause interference between the event handlers or prevent the process from terminating cleanly. As such, it is necessary for `uncaughtException`s to be reported manually. ```js var errors = require('@google-cloud/error-reporting')(); @@ -156,6 +164,9 @@ var errors = require('@google-cloud/error-reporting')({ // should be reported // defaults to 2 (warnings) logLevel: 2, + // determines whether or not unhandled rejections are reported to the + // error-reporting console + reportUnhandledRejections: true, serviceContext: { service: 'my-service', version: 'my-service-version' diff --git a/handwritten/error-reporting/src/configuration.js b/handwritten/error-reporting/src/configuration.js index 03d77768964..33be4fc5f99 100644 --- a/handwritten/error-reporting/src/configuration.js +++ b/handwritten/error-reporting/src/configuration.js @@ -134,6 +134,14 @@ var Configuration = function(givenConfig, logger) { * @type {Object} */ this._serviceContext = {service: 'nodejs', version: ''}; + /** + * The _reportUnhandledRejections property is meant to specify whether or + * not unhandled rejections should be reported to the error-reporting console. + * @memberof Configuration + * @private + * @type {Boolean} + */ + this._reportUnhandledRejections = false; /** * The _givenConfiguration property holds a ConfigurationOptions object * which, if valid, will be merged against by the values taken from the meta- @@ -257,6 +265,12 @@ Configuration.prototype._gatherLocalConfiguration = function() { } else if (has(this._givenConfiguration, 'credentials')) { throw new Error('config.credentials must be a valid credentials object'); } + if (isBoolean(this._givenConfiguration.reportUnhandledRejections)) { + this._reportUnhandledRejections = + this._givenConfiguration.reportUnhandledRejections; + } else if (has(this._givenConfiguration, 'reportUnhandledRejections')) { + throw new Error('config.reportUnhandledRejections must be a boolean'); + } }; /** * The _checkLocalProjectId function is responsible for determing whether the @@ -354,4 +368,14 @@ Configuration.prototype.getCredentials = function() { Configuration.prototype.getServiceContext = function() { return this._serviceContext; }; +/** + * Returns the _reportUnhandledRejections property on the instance. + * @memberof Configuration + * @public + * @function getReportUnhandledRejections + * @returns {Boolean} - returns the _reportUnhandledRejections property + */ +Configuration.prototype.getReportUnhandledRejections = function() { + return this._reportUnhandledRejections; +}; module.exports = Configuration; diff --git a/handwritten/error-reporting/src/index.js b/handwritten/error-reporting/src/index.js index b2038350e05..3fec7a6e052 100644 --- a/handwritten/error-reporting/src/index.js +++ b/handwritten/error-reporting/src/index.js @@ -154,6 +154,17 @@ function Errors(initConfiguration) { * app.use(errors.koa); */ this.koa = koa(this._client, this._config); + + if (this._config.getReportUnhandledRejections()) { + var that = this; + process.on('unhandledRejection', function(reason) { + console.log('UnhandledPromiseRejectionWarning: ' + + 'Unhandled promise rejection: ' + reason + + '. This rejection has been reported to the ' + + 'Google Cloud Platform error-reporting console.'); + that.report(reason); + }); + } } module.exports = Errors; diff --git a/handwritten/error-reporting/system-test/testAuthClient.js b/handwritten/error-reporting/system-test/testAuthClient.js index 8678a2b0d3f..a97e2198842 100644 --- a/handwritten/error-reporting/system-test/testAuthClient.js +++ b/handwritten/error-reporting/system-test/testAuthClient.js @@ -31,9 +31,10 @@ var forEach = require('lodash.foreach'); var assign = require('lodash.assign'); var pick = require('lodash.pick'); var omitBy = require('lodash.omitby'); +var util = require('util'); const ERR_TOKEN = '_@google_STACKDRIVER_INTEGRATION_TEST_ERROR__'; -const TIMEOUT = 20000; +const TIMEOUT = 30000; const envKeys = ['GOOGLE_APPLICATION_CREDENTIALS', 'GCLOUD_PROJECT', 'NODE_ENV']; @@ -371,54 +372,91 @@ describe('error-reporting', function() { var errors; var transport; + var oldLogger; + var logOutput = ''; before(function() { - errors = require('../src/index.js')({ + // This test assumes that only the error-reporting library will be + // adding listeners to the 'unhandledRejection' event. Thus we need to + // make sure that no listeners for that event exist. If this check + // fails, then the reinitialize() method below will need to updated to + // more carefully reinitialize the error-reporting library without + // interfering with existing listeners of the 'unhandledRejection' event. + assert.strictEqual(process.listenerCount('unhandledRejection'), 0); + oldLogger = console.log; + console.log = function() { + var text = util.format.apply(null, arguments); + oldLogger(text); + logOutput += text; + }; + reinitialize(); + }); + + function reinitialize(extraConfig) { + process.removeAllListeners('unhandledRejection'); + var config = Object.assign({ ignoreEnvironmentCheck: true, serviceContext: { service: SERVICE_NAME, version: SERVICE_VERSION } - }); + }, extraConfig || {}); + errors = require('../src/index.js')(config); transport = new ErrorsApiTransport(errors._config, errors._logger); - }); + } after(function(done) { - transport.deleteAllEvents(function(err) { - assert.ifError(err); - done(); - }); + console.log = oldLogger; + if (transport) { + transport.deleteAllEvents(function(err) { + assert.ifError(err); + done(); + }); + } + }); + + afterEach(function() { + logOutput = ''; }); + function verifyAllGroups(messageTest, timeout, cb) { + setTimeout(function() { + transport.getAllGroups(function(err, groups) { + assert.ifError(err); + assert.ok(groups); + + var matchedErrors = groups.filter(function(errItem) { + return errItem && errItem.representative && + messageTest(errItem.representative.message); + }); + + cb(matchedErrors); + }); + }, timeout); + } + + function verifyServerResponse(messageTest, timeout, cb) { + verifyAllGroups(messageTest, timeout, function(matchedErrors) { + // The error should have been reported exactly once + assert.strictEqual(matchedErrors.length, 1); + var errItem = matchedErrors[0]; + assert.ok(errItem); + assert.equal(errItem.count, 1); + var rep = errItem.representative; + assert.ok(rep); + var context = rep.serviceContext; + assert.ok(context); + assert.strictEqual(context.service, SERVICE_NAME); + assert.strictEqual(context.version, SERVICE_VERSION); + cb(); + }); + } + function verifyReporting(errOb, messageTest, timeout, cb) { errors.report(errOb, function(err, response, body) { assert.ifError(err); assert(isObject(response)); assert.deepEqual(body, {}); - - setTimeout(function() { - transport.getAllGroups(function(err, groups) { - assert.ifError(err); - assert.ok(groups); - - var matchedErrors = groups.filter(function(errItem) { - return errItem && errItem.representative && - messageTest(errItem.representative.message); - }); - - // The error should have been reported exactly once - assert.strictEqual(matchedErrors.length, 1); - var errItem = matchedErrors[0]; - assert.ok(errItem); - assert.equal(errItem.count, 1); - var rep = errItem.representative; - assert.ok(rep); - var context = rep.serviceContext; - assert.ok(context); - assert.strictEqual(context.service, SERVICE_NAME); - assert.strictEqual(context.version, SERVICE_VERSION); - cb(); - }); - }, timeout); + verifyServerResponse(messageTest, timeout, cb); }); } @@ -465,4 +503,44 @@ describe('error-reporting', function() { }, TIMEOUT, done); })(); }); + + it('Should report unhandledRejections if enabled', function(done) { + this.timeout(TIMEOUT * 2); + reinitialize({ reportUnhandledRejections: true }); + var rejectValue = buildName('promise-rejection'); + Promise.reject(rejectValue); + setImmediate(function() { + var expected = 'UnhandledPromiseRejectionWarning: Unhandled ' + + 'promise rejection: ' + rejectValue + + '. This rejection has been reported to the ' + + 'Google Cloud Platform error-reporting console.'; + assert.notStrictEqual(logOutput.indexOf(expected), -1); + verifyServerResponse(function(message) { + return message.startsWith(rejectValue); + }, TIMEOUT, done); + }); + }); + + it('Should not report unhandledRejections if disabled', function(done) { + this.timeout(TIMEOUT * 2); + reinitialize({ reportUnhandledRejections: false }); + var rejectValue = buildName('promise-rejection'); + Promise.reject(rejectValue); + setImmediate(function() { + var notExpected = 'UnhandledPromiseRejectionWarning: Unhandled ' + + 'promise rejection: ' + rejectValue + + '. This rejection has been reported to the error-reporting console.'; + assert.strictEqual(logOutput.indexOf(notExpected), -1); + // Get all groups that that start with the rejection value and hence all + // of the groups corresponding to the above rejection (Since the + // buildName() creates a string unique enough to single out only the + // above rejection.) and verify that there are no such groups reported. + verifyAllGroups(function(message) { + return message.startsWith(rejectValue); + }, TIMEOUT, function(matchedErrors) { + assert.strictEqual(matchedErrors.length, 0); + done(); + }); + }); + }); }); \ No newline at end of file diff --git a/handwritten/error-reporting/test/unit/configuration.js b/handwritten/error-reporting/test/unit/configuration.js index 5171935ebeb..b1d13f0d306 100644 --- a/handwritten/error-reporting/test/unit/configuration.js +++ b/handwritten/error-reporting/test/unit/configuration.js @@ -92,6 +92,9 @@ describe('Configuration class', function() { assert.deepEqual(c.getServiceContext(), {service: 'node', version: undefined}); }); + it('Should specify to not report unhandledRejections', function() { + assert.strictEqual(c.getReportUnhandledRejections(), false); + }); }); describe('with ignoreEnvironmentCheck', function() { var conf = merge({}, stubConfig, {ignoreEnvironmentCheck: true}); @@ -134,6 +137,13 @@ describe('Configuration class', function() { new Configuration({serviceContext: {version: true}}, logger); }); }); + it('Should throw if invalid for reportUnhandledRejections', + function() { + assert.throws(function() { + new Configuration({ reportUnhandledRejections: 'INVALID' }, + logger); + }); + }); it('Should not throw given an empty object for serviceContext', function() { assert.doesNotThrow(function() { @@ -278,6 +288,19 @@ describe('Configuration class', function() { assert.strictEqual(c.getKey(), key); }); }); + describe('reportUnhandledRejections', function() { + var c; + var reportRejections = false; + before(function() { + c = new Configuration({ + reportUnhandledRejections: reportRejections + }); + }); + it('Should assign', function() { + assert.strictEqual(c.getReportUnhandledRejections(), + reportRejections); + }); + }); }); }); }); From 049275e5764cf90f8a256dda7a2903aeb2b6b736 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Thu, 15 Jun 2017 16:01:46 -0700 Subject: [PATCH 029/527] error-reporting: Fix `report()` silently failing (#2363) * error-reporting: Fix `report()` silently failing If the `report()` method is called with a number, an associated error never appears in the error reporting console, and no log message is printed to the user to indicate why the error has not appeared. * Fix linting errors * Add the new `build-stack-trace.js` file * Add more system tests for `errors.report()` * Rename errorHandlerRouter to populateErrorMessage * Rename error-router to populate-error-message * Reorganize the populate-error-message tests * Update buildStackTrace to use captureStackTrace The `Error.captureStackTrace` method is now used in the `buildStackTrace` function to create a stack trace. * Simplify the system tests The code for verifiying that stack traces don't contain error-reporting specific frames has been consolidated into a single location. * Consolidate code in populate-error-message.js * Make the `buildStackTrace` more robust In particular, the `buildStackTrace` was updated to ensure that no error-reporting specific frames are included in the built stack trace. In addition, the system-tests have been updated to ensure error-reporting related frames, and only those frames, are removed from the built stack trace. --- .../error-reporting/src/build-stack-trace.js | 42 +++ .../src/classes/custom-stack-trace.js | 117 -------- .../src/error-extractors/error.js | 49 ---- .../src/error-extractors/object.js | 80 ------ .../src/error-handlers/error.js | 46 ---- .../src/error-handlers/number.js | 45 --- .../src/error-handlers/object.js | 45 --- .../src/error-handlers/string.js | 47 ---- .../src/error-handlers/unknown.js | 37 --- .../error-reporting/src/error-router.js | 63 ----- .../error-reporting/src/interfaces/express.js | 4 +- .../error-reporting/src/interfaces/hapi.js | 4 +- .../error-reporting/src/interfaces/koa.js | 4 +- .../error-reporting/src/interfaces/manual.js | 4 +- .../src/interfaces/message-builder.js | 5 +- .../error-reporting/src/interfaces/restify.js | 4 +- .../src/populate-error-message.js | 125 +++++++++ .../system-test/testAuthClient.js | 126 +++++++-- .../test/unit/build-stack-trace.js | 61 +++++ .../test/unit/classes/custom-stack-trace.js | 77 ------ .../test/unit/error-extractors/error.js | 107 -------- .../test/unit/error-extractors/object.js | 108 -------- .../test/unit/error-handlers/error.js | 56 ---- .../test/unit/error-handlers/number.js | 44 --- .../test/unit/error-handlers/object.js | 44 --- .../test/unit/error-handlers/string.js | 44 --- .../test/unit/error-handlers/unknown.js | 47 ---- .../test/unit/populate-error-message.js | 257 ++++++++++++++++++ 28 files changed, 598 insertions(+), 1094 deletions(-) create mode 100644 handwritten/error-reporting/src/build-stack-trace.js delete mode 100644 handwritten/error-reporting/src/classes/custom-stack-trace.js delete mode 100644 handwritten/error-reporting/src/error-extractors/error.js delete mode 100644 handwritten/error-reporting/src/error-extractors/object.js delete mode 100644 handwritten/error-reporting/src/error-handlers/error.js delete mode 100644 handwritten/error-reporting/src/error-handlers/number.js delete mode 100644 handwritten/error-reporting/src/error-handlers/object.js delete mode 100644 handwritten/error-reporting/src/error-handlers/string.js delete mode 100644 handwritten/error-reporting/src/error-handlers/unknown.js delete mode 100644 handwritten/error-reporting/src/error-router.js create mode 100644 handwritten/error-reporting/src/populate-error-message.js create mode 100644 handwritten/error-reporting/test/unit/build-stack-trace.js delete mode 100644 handwritten/error-reporting/test/unit/classes/custom-stack-trace.js delete mode 100644 handwritten/error-reporting/test/unit/error-extractors/error.js delete mode 100644 handwritten/error-reporting/test/unit/error-extractors/object.js delete mode 100644 handwritten/error-reporting/test/unit/error-handlers/error.js delete mode 100644 handwritten/error-reporting/test/unit/error-handlers/number.js delete mode 100644 handwritten/error-reporting/test/unit/error-handlers/object.js delete mode 100644 handwritten/error-reporting/test/unit/error-handlers/string.js delete mode 100644 handwritten/error-reporting/test/unit/error-handlers/unknown.js create mode 100644 handwritten/error-reporting/test/unit/populate-error-message.js diff --git a/handwritten/error-reporting/src/build-stack-trace.js b/handwritten/error-reporting/src/build-stack-trace.js new file mode 100644 index 00000000000..f90f56b7fc1 --- /dev/null +++ b/handwritten/error-reporting/src/build-stack-trace.js @@ -0,0 +1,42 @@ +/** + * Copyright 2017 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; + +const SRC_ROOT = __dirname; + +/** + * Constructs a string representation of the stack trace at the point where + * this function was invoked. Note that the stack trace will not include any + * references to frames specific to this error-reporting library itself. + * @param {String?} message - The message that should appear as the first line + * of the stack trace. This value defaults to the empty string. + * @returns {String} - A string representation of the stack trace at the point + * where this method was invoked. + */ +function buildStackTrace(message) { + var target = {}; + // Build a stack trace without the frames associated with `buildStackTrace`. + // The stack is located at `target.stack`. + Error.captureStackTrace(target, buildStackTrace); + var prefix = message ? message + '\n' : ''; + return prefix + target.stack.split('\n').slice(1).filter(function(line) { + // Filter out all frames that are specific to the error-reporting library + return !line || line.indexOf(SRC_ROOT) === -1; + }).join('\n'); +} + +module.exports = buildStackTrace; diff --git a/handwritten/error-reporting/src/classes/custom-stack-trace.js b/handwritten/error-reporting/src/classes/custom-stack-trace.js deleted file mode 100644 index 7e9d3ea8eba..00000000000 --- a/handwritten/error-reporting/src/classes/custom-stack-trace.js +++ /dev/null @@ -1,117 +0,0 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; -var is = require('is'); -var isString = is.string; -var isNumber = is.number; -var isFunction = is.fn; - -/** - * A function which is used as a default substitute to handle cases where an - * Error's call site array was not properly generated or its length was not - * greater than 0. This function aims to produce a basic notification that - * CallSite extraction failed. - * @function stubbedNoOp - * @returns {String} - A JSON object serving as a notification with one - * property: error whose value is a string describing that a stack trace could - * not be captured. - */ -function stubbedNoOp() { - - return JSON.stringify({error: 'Unable to capture stack trace information'}); -} - -/** - * The constuctor for CustomStackTrace takes no arugments and is solely meant - * to instantiate properties on the instance. Each property should be externally - * set using the corresponding set function. - * @class CustomStackTrace - * @classdesc CustomStackTrace is a class which is meant to store and control- - * for top-frame values on a stack trace dump. This class can be stringified - * for representation in JSON. - * @property {String} filePath - The file path of CallSite object - * @property {Number} lineNumber - The line number of the CallSite object - * @property {String} functionName - The function name of the CallSite object - * @property {Function} stringifyStucturedCallList - A function which is meant - * to produce the JSON representation of the full stack trace. - */ -function CustomStackTrace() { - - this.filePath = ''; - this.lineNumber = 0; - this.functionName = ''; - this.stringifyStucturedCallList = stubbedNoOp; -} - -/** - * Sets the filePath property on the instance - * @function setFilePath - * @chainable - * @param {String} filePath - the file path of the CallSite object - * @returns {this} - returns the instance for chaining - */ -CustomStackTrace.prototype.setFilePath = function(filePath) { - - this.filePath = isString(filePath) ? filePath : ''; - - return this; -}; - -/** - * Sets the lineNumber property on the instance - * @function setLineNumber - * @chainable - * @param {Number} lineNumber - the line number of the CallSite object - * @returns {this} - returns the instance for chaining - */ -CustomStackTrace.prototype.setLineNumber = function(lineNumber) { - - this.lineNumber = isNumber(lineNumber) ? lineNumber : 0; - - return this; -}; - -/** - * Sets the functionName property on the instance - * @function setFunctionName - * @chainable - * @param {String} functionName - the function name of the CallSite object - * @returns {this} - returns the instance for chaining - */ -CustomStackTrace.prototype.setFunctionName = function(functionName) { - - this.functionName = isString(functionName) ? functionName : ''; - - return this; -}; - -/** - * Sets the stringifyStucturedCallList on the instance - * @function setStringifyStructuredCallList - * @chainable - * @param {Function} op - the function to produce the JSON representation of - * the full stack trace - * @returns {this} - returns the instance for chaining - */ -CustomStackTrace.prototype.setStringifyStructuredCallList = function(op) { - - this.stringifyStucturedCallList = isFunction(op) ? op : stubbedNoOp; - - return this; -}; - -module.exports = CustomStackTrace; diff --git a/handwritten/error-reporting/src/error-extractors/error.js b/handwritten/error-reporting/src/error-extractors/error.js deleted file mode 100644 index e2abe83ec5d..00000000000 --- a/handwritten/error-reporting/src/error-extractors/error.js +++ /dev/null @@ -1,49 +0,0 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; -var has = require('lodash.has'); -var is = require('is'); -var isObject = is.object; - -/** - * Extracts error information from an instance of the Error class and marshals - * that information into the provided instance of error message. This function - * will check before accessing any part of the error for propety presence but - * will not check the types of these property values that is instead work that - * is allocated to the error message instance itself. - * @param {Error} err - the error instance - * @param {ErrorMessage} errorMessage - the error message instance to have the - * error information marshaled into - * @returns {Undefined} - does not return anything - */ -function extractFromErrorClass(err, errorMessage) { - - errorMessage.setMessage(err.stack); - - if (has(err, 'user')) { - - errorMessage.setUser(err.user); - } - - if (has(err, 'serviceContext') && isObject(err.serviceContext)) { - - errorMessage.setServiceContext(err.serviceContext.service, - err.serviceContext.version); - } -} - -module.exports = extractFromErrorClass; diff --git a/handwritten/error-reporting/src/error-extractors/object.js b/handwritten/error-reporting/src/error-extractors/object.js deleted file mode 100644 index f1b155177e4..00000000000 --- a/handwritten/error-reporting/src/error-extractors/object.js +++ /dev/null @@ -1,80 +0,0 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; -var has = require('lodash.has'); -var is = require('is'); -var isObject = is.object; - -/** - * Attempts to extract error information given an object as the input for the - * error. This function will check presence of each property before attempting - * to access the given property on the object but will not check for type - * compliance as that is allocated to the instance of the error message itself. - * @function extractFromObject - * @param {Object} err - the Object given as the content of the error - * @param {String} [err.message] - the error message - * @param {String} [err.user] - the user the error occurred for - * @param {String} [err.filePath] - the file path and file where the error - * occurred at - * @param {Number} [err.lineNumber] - the line number where the error occurred - * at - * @param {String} [err.functionName] - the function where the error occurred at - * @param {Object} [err.serviceContext] - the service context object of the - * error - * @param {String} [err.serviceContext.service] - the service the error occurred - * on - * @param {String} [err.serviceContext.version] - the version of the application - * that the error occurred on - * @param {ErrorMessage} errorMessage - the error message instance to marshal - * error information into - * @returns {Undefined} - does not return anything - */ -function extractFromObject(err, errorMessage) { - - if (has(err, 'message')) { - - errorMessage.setMessage(err.message); - } - - if (has(err, 'user')) { - - errorMessage.setUser(err.user); - } - - if (has(err, 'filePath')) { - - errorMessage.setFilePath(err.filePath); - } - - if (has(err, 'lineNumber')) { - - errorMessage.setLineNumber(err.lineNumber); - } - - if (has(err, 'functionName')) { - - errorMessage.setFunctionName(err.functionName); - } - - if (has(err, 'serviceContext') && isObject(err.serviceContext)) { - - errorMessage.setServiceContext(err.serviceContext.service, - err.serviceContext.version); - } -} - -module.exports = extractFromObject; diff --git a/handwritten/error-reporting/src/error-handlers/error.js b/handwritten/error-reporting/src/error-handlers/error.js deleted file mode 100644 index a3ca5a938e6..00000000000 --- a/handwritten/error-reporting/src/error-handlers/error.js +++ /dev/null @@ -1,46 +0,0 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; -var handleUnknownAsError = require('./unknown.js'); -var extractFromErrorClass = require('../error-extractors/error.js'); - -/** - * Handles routing and validation for parsing an errorMessage that was - * flagged as an instance of the Error class. This function does not - * discriminate against regular objects, checking only to see if the err - * parameter is itself a basic object and has the function property - * hasOwnProperty. Given that the input passes this basic test the input - * will undergo extraction by the extractFromErrorClass function, otherwise - * it will be treated and processed as an unknown. - * @function handleErrorClassError - * @param {Error} err - the error instance to extract information from - * @param {ErrorMessage} errorMessage - the error message to marshal error - * information into. - * @returns {Undefined} - does not return anything - */ -function handleErrorClassError(err, errorMessage) { - - if (err instanceof Error) { - - extractFromErrorClass(err, errorMessage); - } else { - - handleUnknownAsError(err, errorMessage); - } -} - -module.exports = handleErrorClassError; diff --git a/handwritten/error-reporting/src/error-handlers/number.js b/handwritten/error-reporting/src/error-handlers/number.js deleted file mode 100644 index ebec109028e..00000000000 --- a/handwritten/error-reporting/src/error-handlers/number.js +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; -var is = require('is'); -var isNumber = is.number; -var isFunction = is.function; - -/** - * Handles routing and validation for parsing an error which has been indicated - * to be of type Number. This handler will manufacture a new Error to create - * a stack-trace for submission to the Error API and will attempt to caste the - * given number to a string for submission to the Error API. - * @function handleNumberAsError - * @param {Number} err - the number submitted as content for the error message - * @param {ErrorMessage} errorMessage - the error messag instance to marshall - * error information into. - * @returns {Undefined} - does not return anything - */ -function handleNumberAsError(err, errorMessage) { - var fauxError = new Error(); - var errChecked = fauxError.stack; - - if (isNumber(err) && isFunction(err.toString)) { - - errChecked = err.toString(); - } - - errorMessage.setMessage(errChecked); -} - -module.exports = handleNumberAsError; diff --git a/handwritten/error-reporting/src/error-handlers/object.js b/handwritten/error-reporting/src/error-handlers/object.js deleted file mode 100644 index 2b3c11a13c2..00000000000 --- a/handwritten/error-reporting/src/error-handlers/object.js +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; -var is = require('is'); -var isObject = is.object; -var extractFromObject = require('../error-extractors/object.js'); -var handleUnknownAsError = require('./unknown.js'); - -/** - * Handles routing and validation for parsing an error that has been indicated - * to be of type object. If the value submitted for err passes a basic check - * for being of type Object than the input will extracted as such, otherwise the - * input will be treated as unknown. - * @function handleObjectAsError - * @param {Object} err - the error information object to extract from - * @param {ErrorMessage} errorMessage - the error message instance to marshal - * error information into - * @returns {Undefined} - does not return anything - */ -function handleObjectAsError(err, errorMessage) { - - if (isObject(err)) { - - extractFromObject(err, errorMessage); - } else { - - handleUnknownAsError(err, errorMessage); - } -} - -module.exports = handleObjectAsError; diff --git a/handwritten/error-reporting/src/error-handlers/string.js b/handwritten/error-reporting/src/error-handlers/string.js deleted file mode 100644 index 8e2e0fb816f..00000000000 --- a/handwritten/error-reporting/src/error-handlers/string.js +++ /dev/null @@ -1,47 +0,0 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; -var isString = require('is').string; - -/** - * Handles validation of an error which has been indicated to be of type String. - * This function will create a new instance of the Error class to produce a - * stack trace for submission to the API and check to confirm that the given - * value is of type string. - * @function handleStringAsError - * @param {String} err - the String indicated as the content of the error - * @param {ErrorMessage} errorMessage - the error message instance to marshal - * error information into. - * @returns {Undefined} - does not return anything - */ -function handleStringAsError(err, errorMessage) { - var fauxError = new Error(); - var fullStack = fauxError.stack.split('\n'); - var cleanedStack = fullStack.slice(0, 1).concat(fullStack.slice(4)); - var errChecked = ''; - - if (isString(err)) { - // Replace the generic error message with the user-provided string - cleanedStack[0] = err; - } - - errChecked = cleanedStack.join('\n'); - - errorMessage.setMessage(errChecked); -} - -module.exports = handleStringAsError; diff --git a/handwritten/error-reporting/src/error-handlers/unknown.js b/handwritten/error-reporting/src/error-handlers/unknown.js deleted file mode 100644 index 6243f184bc5..00000000000 --- a/handwritten/error-reporting/src/error-handlers/unknown.js +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -/** - * Handles unknown/unsupported input as the content of the error message. Since - * the problem-space is not defined for this path the library only attempts to - * manufacture a stack trace for submission to the API and discards the input - * that was given as the error content. - * @function handleUnknownAsError - * @param {Any} err - the unknown/unsupported input indicated as the content of - * the error. - * @param {ErrorMessage} errorMessage - the error message instance to marshal - * error information into. - * @returns {Undefined} - does not return anything - */ -function handleUnknownAsError(err, errorMessage) { - var fauxError = new Error(); - - errorMessage.setMessage(fauxError.stack); -} - -module.exports = handleUnknownAsError; diff --git a/handwritten/error-reporting/src/error-router.js b/handwritten/error-reporting/src/error-router.js deleted file mode 100644 index d8dbcf5ab8e..00000000000 --- a/handwritten/error-reporting/src/error-router.js +++ /dev/null @@ -1,63 +0,0 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; -var handleErrorClassError = require('./error-handlers/error.js'); -var handleObjectAsError = require('./error-handlers/object.js'); -var handleStringAsError = require('./error-handlers/string.js'); -var handleNumberAsError = require('./error-handlers/number.js'); -var handleUnknownAsError = require('./error-handlers/unknown.js'); - -/** - * The Error handler router is responsible for taking an error of some type and - * and Error message container, analyzing the type of the error and routing it - * to the proper handler so that the error information can be marshaled into the - * the error message container. - * @function errorHandlerRouter - * @param {Any} err - the error information to extract from - * @param {ErrorMessage} em - an instance of ErrorMessage to marshal error - * information into - * @returns {Undefined} - does not return a value - */ -function errorHandlerRouter(err, em) { - - if (err instanceof Error) { - - handleErrorClassError(err, em); - - return; - } - - switch (typeof err) { - case 'object': { - handleObjectAsError(err, em); - break; - } - case 'string': { - handleStringAsError(err, em); - break; - } - case 'number': { - handleNumberAsError(err, em); - break; - } - default: { - handleUnknownAsError(err, em); - } - } -} - -module.exports = errorHandlerRouter; diff --git a/handwritten/error-reporting/src/interfaces/express.js b/handwritten/error-reporting/src/interfaces/express.js index 07803c173fe..4a1df34366e 100644 --- a/handwritten/error-reporting/src/interfaces/express.js +++ b/handwritten/error-reporting/src/interfaces/express.js @@ -21,7 +21,7 @@ var isFunction = is.fn; var ErrorMessage = require('../classes/error-message.js'); var expressRequestInformationExtractor = require('../request-extractors/express.js'); -var errorHandlerRouter = require('../error-router.js'); +var populateErrorMessage = require('../populate-error-message.js'); /** * Returns a function that can be used as an express error handling middleware. @@ -58,7 +58,7 @@ function makeExpressHandler(client, config) { expressRequestInformationExtractor(req, res)) .setServiceContext(ctxService, ctxVersion); - errorHandlerRouter(err, em); + populateErrorMessage(err, em); if (isObject(client) && isFunction(client.sendError)) { client.sendError(em); diff --git a/handwritten/error-reporting/src/interfaces/hapi.js b/handwritten/error-reporting/src/interfaces/hapi.js index dcc5999e1b9..de904d08158 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.js +++ b/handwritten/error-reporting/src/interfaces/hapi.js @@ -20,7 +20,7 @@ var isObject = is.object; var isFunction = is.fn; var ErrorMessage = require('../classes/error-message.js'); var hapiRequestInformationExtractor = require('../request-extractors/hapi.js'); -var errorHandlerRouter = require('../error-router.js'); +var populateErrorMessage = require('../populate-error-message.js'); var packageJson = require('../../package.json'); /** @@ -46,7 +46,7 @@ function hapiErrorHandler(req, err, config) { .consumeRequestInformation(hapiRequestInformationExtractor(req)) .setServiceContext(service, version); - errorHandlerRouter(err, em); + populateErrorMessage(err, em); return em; } diff --git a/handwritten/error-reporting/src/interfaces/koa.js b/handwritten/error-reporting/src/interfaces/koa.js index b0297fb7eaf..8d9357a6697 100644 --- a/handwritten/error-reporting/src/interfaces/koa.js +++ b/handwritten/error-reporting/src/interfaces/koa.js @@ -17,7 +17,7 @@ 'use strict'; var ErrorMessage = require('../classes/error-message.js'); var koaRequestInformationExtractor = require('../request-extractors/koa.js'); -var errorHandlerRouter = require('../error-router.js'); +var populateErrorMessage = require('../populate-error-message.js'); /** * The koaErrorHandler should be placed at the beginning of the koa middleware @@ -53,7 +53,7 @@ function koaErrorHandler(client, config) { .setServiceContext(svc.service, svc.version); - errorHandlerRouter(err, em); + populateErrorMessage(err, em); client.sendError(em); } diff --git a/handwritten/error-reporting/src/interfaces/manual.js b/handwritten/error-reporting/src/interfaces/manual.js index 5be883c979f..4e85e247e2a 100644 --- a/handwritten/error-reporting/src/interfaces/manual.js +++ b/handwritten/error-reporting/src/interfaces/manual.js @@ -22,7 +22,7 @@ var isFunction = is.fn; var ErrorMessage = require('../classes/error-message.js'); var manualRequestInformationExtractor = require('../request-extractors/manual.js'); -var errorHandlerRouter = require('../error-router.js'); +var populateErrorMessage = require('../populate-error-message.js'); /** * The handler setup function serves to produce a bound instance of the @@ -96,7 +96,7 @@ function handlerSetup(client, config, logger) { em = new ErrorMessage(); em.setServiceContext(config.getServiceContext().service, config.getServiceContext().version); - errorHandlerRouter(err, em); + populateErrorMessage(err, em); } if (isObject(request)) { diff --git a/handwritten/error-reporting/src/interfaces/message-builder.js b/handwritten/error-reporting/src/interfaces/message-builder.js index 3a539d3b3be..03c7aefd746 100644 --- a/handwritten/error-reporting/src/interfaces/message-builder.js +++ b/handwritten/error-reporting/src/interfaces/message-builder.js @@ -16,6 +16,7 @@ 'use strict'; var ErrorMessage = require('../classes/error-message.js'); +var buildStackTrace = require('../build-stack-trace.js'); /** * The handler setup function serves to produce a bound instance of the @@ -44,9 +45,7 @@ function handlerSetup(config) { // error is used instead of the stack trace where the error is // reported to be consistent with the behavior of reporting a // an error when reporting an actual Node.js Error object. - var fauxError = new Error(''); - var fullStack = fauxError.stack.split('\n'); - var cleanedStack = fullStack.slice(2).join('\n'); + var cleanedStack = buildStackTrace(''); var em = new ErrorMessage().setServiceContext( config.getServiceContext().service, diff --git a/handwritten/error-reporting/src/interfaces/restify.js b/handwritten/error-reporting/src/interfaces/restify.js index 5d8a6e89d6f..1fa0ce40af9 100644 --- a/handwritten/error-reporting/src/interfaces/restify.js +++ b/handwritten/error-reporting/src/interfaces/restify.js @@ -21,7 +21,7 @@ var isFunction = is.function; var ErrorMessage = require('../classes/error-message.js'); var expressRequestInformationExtractor = require('../request-extractors/express.js'); -var errorHandlerRouter = require('../error-router.js'); +var populateErrorMessage = require('../populate-error-message.js'); /** * The restifyErrorHandler is responsible for taking the captured error, setting @@ -41,7 +41,7 @@ function restifyErrorHandler(client, config, err, em) { var svc = config.getServiceContext(); em.setServiceContext(svc.service, svc.version); - errorHandlerRouter(err, em); + populateErrorMessage(err, em); client.sendError(em); } diff --git a/handwritten/error-reporting/src/populate-error-message.js b/handwritten/error-reporting/src/populate-error-message.js new file mode 100644 index 00000000000..a082dce5afa --- /dev/null +++ b/handwritten/error-reporting/src/populate-error-message.js @@ -0,0 +1,125 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; +var has = require('lodash.has'); +var is = require('is'); +var isObject = is.object; +var buildStackTrace = require('./build-stack-trace.js'); + +/** + * The Error handler router is responsible for taking an object of some type and + * and Error message container, analyzing the type of the object and marshalling + * the object's information into the error message container. + * @function populateErrorMessage + * @param {Any} ob - the object information to extract from + * @param {ErrorMessage} em - an instance of ErrorMessage to marshal object + * information into + * @returns {Undefined} - does not return a value + */ +function populateErrorMessage(ob, em) { + if (ob === null || ob === undefined) { + em.setMessage(buildStackTrace('' + ob)); + } else if (ob.stack) { + populateFromError(ob, em); + } else if (typeof ob === 'object' && isObject(ob)) { + populateFromObject(ob, em); + } else { + em.setMessage(buildStackTrace(ob.toString())); + } + + return em; +} + +/** + * Extracts error information from an instance of the Error class and marshals + * that information into the provided instance of error message. This function + * will check before accessing any part of the error for propety presence but + * will not check the types of these property values that is instead work that + * is allocated to the error message instance itself. + * @function populateFromError + * @param {Error} err - the error instance + * @param {ErrorMessage} errorMessage - the error message instance to have the + * error information marshaled into + * @returns {Undefined} - does not return anything + */ +function populateFromError(err, errorMessage) { + errorMessage.setMessage(err.stack); + + if (has(err, 'user')) { + errorMessage.setUser(err.user); + } + + if (has(err, 'serviceContext') && isObject(err.serviceContext)) { + errorMessage.setServiceContext(err.serviceContext.service, + err.serviceContext.version); + } +} + +/** + * Attempts to extract error information given an object as the input for the + * error. This function will check presence of each property before attempting + * to access the given property on the object but will not check for type + * compliance as that is allocated to the instance of the error message itself. + * @function populateFromObject + * @param {Object} ob - the Object given as the content of the error + * @param {String} [ob.message] - the error message + * @param {String} [ob.user] - the user the error occurred for + * @param {String} [ob.filePath] - the file path and file where the error + * occurred at + * @param {Number} [ob.lineNumber] - the line number where the error occurred + * at + * @param {String} [ob.functionName] - the function where the error occurred at + * @param {Object} [ob.serviceContext] - the service context object of the + * error + * @param {String} [ob.serviceContext.service] - the service the error occurred + * on + * @param {String} [ob.serviceContext.version] - the version of the application + * that the error occurred on + * @param {ErrorMessage} errorMessage - the error message instance to marshal + * error information into + * @returns {Undefined} - does not return anything + */ +function populateFromObject(ob, errorMessage) { + if (has(ob, 'message')) { + errorMessage.setMessage(ob.message); + } else { + errorMessage.setMessage(buildStackTrace('' + ob)); + } + + if (has(ob, 'user')) { + errorMessage.setUser(ob.user); + } + + if (has(ob, 'filePath')) { + errorMessage.setFilePath(ob.filePath); + } + + if (has(ob, 'lineNumber')) { + errorMessage.setLineNumber(ob.lineNumber); + } + + if (has(ob, 'functionName')) { + errorMessage.setFunctionName(ob.functionName); + } + + if (has(ob, 'serviceContext') && isObject(ob.serviceContext)) { + errorMessage.setServiceContext(ob.serviceContext.service, + ob.serviceContext.version); + } +} + +module.exports = populateErrorMessage; diff --git a/handwritten/error-reporting/system-test/testAuthClient.js b/handwritten/error-reporting/system-test/testAuthClient.js index a97e2198842..251e5cf4ff7 100644 --- a/handwritten/error-reporting/system-test/testAuthClient.js +++ b/handwritten/error-reporting/system-test/testAuthClient.js @@ -32,6 +32,7 @@ var assign = require('lodash.assign'); var pick = require('lodash.pick'); var omitBy = require('lodash.omitby'); var util = require('util'); +var path = require('path'); const ERR_TOKEN = '_@google_STACKDRIVER_INTEGRATION_TEST_ERROR__'; const TIMEOUT = 30000; @@ -362,13 +363,15 @@ describe('Expected Behavior', function() { }); describe('error-reporting', function() { + const SRC_ROOT = path.join(__dirname, '..', 'src'); + const TIMESTAMP = Date.now(); const BASE_NAME = 'error-reporting-system-test'; function buildName(suffix) { - return [Date.now(), BASE_NAME, suffix].join('_'); + return [TIMESTAMP, BASE_NAME, suffix].join('_'); } - const SERVICE_NAME = buildName('service-name'); - const SERVICE_VERSION = buildName('service-version'); + const SERVICE = buildName('service-name'); + const VERSION = buildName('service-version'); var errors; var transport; @@ -396,8 +399,8 @@ describe('error-reporting', function() { var config = Object.assign({ ignoreEnvironmentCheck: true, serviceContext: { - service: SERVICE_NAME, - version: SERVICE_VERSION + service: SERVICE, + version: VERSION } }, extraConfig || {}); errors = require('../src/index.js')(config); @@ -426,6 +429,9 @@ describe('error-reporting', function() { var matchedErrors = groups.filter(function(errItem) { return errItem && errItem.representative && + errItem.representative.serviceContext && + errItem.representative.serviceContext.service === SERVICE && + errItem.representative.serviceContext.version === VERSION && messageTest(errItem.representative.message); }); @@ -443,21 +449,33 @@ describe('error-reporting', function() { assert.equal(errItem.count, 1); var rep = errItem.representative; assert.ok(rep); + // Ensure the stack trace in the message does not contain any frames + // specific to the error-reporting library. + assert.strictEqual(rep.message.indexOf(SRC_ROOT), -1); + // Ensure the stack trace in the mssage contains the frame corresponding + // to the 'expectedTopOfStack' function because that is the name of + // function used in this file that is the topmost function in the call + // stack that is not internal to the error-reporting library. + // This ensures that only the frames specific to the + // error-reporting library are removed from the stack trace. + assert.notStrictEqual(rep.message.indexOf('expectedTopOfStack'), -1); var context = rep.serviceContext; assert.ok(context); - assert.strictEqual(context.service, SERVICE_NAME); - assert.strictEqual(context.version, SERVICE_VERSION); + assert.strictEqual(context.service, SERVICE); + assert.strictEqual(context.version, VERSION); cb(); }); } function verifyReporting(errOb, messageTest, timeout, cb) { - errors.report(errOb, function(err, response, body) { - assert.ifError(err); - assert(isObject(response)); - assert.deepEqual(body, {}); - verifyServerResponse(messageTest, timeout, cb); - }); + (function expectedTopOfStack() { + errors.report(errOb, function(err, response, body) { + assert.ifError(err); + assert(isObject(response)); + assert.deepEqual(body, {}); + verifyServerResponse(messageTest, timeout, cb); + }); + })(); } // For each test below, after an error is reported, the test waits @@ -466,30 +484,79 @@ describe('error-reporting', function() { // As such, each test is set to fail due to a timeout only if sufficiently // more than TIMEOUT ms has elapsed to avoid test fragility. - it('Should correctly publish errors using the Error constructor', - function(done) { + it('Should correctly publish an error that is an Error object', + function verifyErrors(done) { this.timeout(TIMEOUT * 2); var errorId = buildName('with-error-constructor'); - var errOb = new Error(errorId); + var errOb = (function expectedTopOfStack() { + return new Error(errorId); + })(); verifyReporting(errOb, function(message) { - return message.startsWith('Error: ' + errorId); + return message.startsWith('Error: ' + errorId + '\n'); }, TIMEOUT, done); }); - it('Should correctly publish errors using a string', function(done) { + it('Should correctly publish an error that is a string', function(done) { this.timeout(TIMEOUT * 2); var errorId = buildName('with-string'); verifyReporting(errorId, function(message) { - return message.startsWith(errorId); + return message.startsWith(errorId + '\n'); + }, TIMEOUT, done); + }); + + it('Should correctly publish an error that is undefined', function(done) { + this.timeout(TIMEOUT * 2); + verifyReporting(undefined, function(message) { + return message.startsWith('undefined\n'); + }, TIMEOUT, done); + }); + + it('Should correctly publish an error that is null', function(done) { + this.timeout(TIMEOUT * 2); + verifyReporting(null, function(message) { + return message.startsWith('null\n'); + }, TIMEOUT, done); + }); + + it('Should correctly publish an error that is a plain object', + function(done) { + this.timeout(TIMEOUT * 2); + verifyReporting({ someKey: 'someValue' }, function(message) { + return message.startsWith('[object Object]\n'); + }, TIMEOUT, done); + }); + + it('Should correctly publish an error that is a number', function(done) { + this.timeout(TIMEOUT * 2); + var num = (new Date()).getTime(); + verifyReporting(num, function(message) { + return message.startsWith('' + num + '\n'); + }, TIMEOUT, done); + }); + + it('Should correctly publish an error that is of an unknown type', + function(done) { + this.timeout(TIMEOUT * 2); + var bool = true; + verifyReporting(bool, function(message) { + return message.startsWith('true\n'); }, TIMEOUT, done); }); it('Should correctly publish errors using an error builder', function(done) { this.timeout(TIMEOUT * 2); var errorId = buildName('with-error-builder'); + // Use an IIFE with the name `definitionSiteFunction` to use later to ensure + // the stack trace of the point where the error message was constructed is + // used. + // Use an IIFE with the name `expectedTopOfStack` so that the test can + // verify that the stack trace used does not contain any frames + // specific to the error-reporting library. var errOb = (function definitionSiteFunction() { - return errors.event() - .setMessage(errorId); + return (function expectedTopOfStack() { + return errors.event() + .setMessage(errorId); + })(); })(); (function callingSiteFunction() { verifyReporting(errOb, function(message) { @@ -508,15 +575,22 @@ describe('error-reporting', function() { this.timeout(TIMEOUT * 2); reinitialize({ reportUnhandledRejections: true }); var rejectValue = buildName('promise-rejection'); - Promise.reject(rejectValue); + (function expectedTopOfStack() { + // An Error is used for the rejection value so that it's stack + // contains the stack trace at the point the rejection occured and is + // rejected within a function named `expectedTopOfStack` so that the + // test can verify that the collected stack is correct. + Promise.reject(new Error(rejectValue)); + })(); + var rejectText = 'Error: ' + rejectValue; setImmediate(function() { var expected = 'UnhandledPromiseRejectionWarning: Unhandled ' + - 'promise rejection: ' + rejectValue + + 'promise rejection: ' + rejectText + '. This rejection has been reported to the ' + 'Google Cloud Platform error-reporting console.'; assert.notStrictEqual(logOutput.indexOf(expected), -1); verifyServerResponse(function(message) { - return message.startsWith(rejectValue); + return message.startsWith(rejectText); }, TIMEOUT, done); }); }); @@ -525,7 +599,9 @@ describe('error-reporting', function() { this.timeout(TIMEOUT * 2); reinitialize({ reportUnhandledRejections: false }); var rejectValue = buildName('promise-rejection'); - Promise.reject(rejectValue); + (function expectedTopOfStack() { + Promise.reject(rejectValue); + })(); setImmediate(function() { var notExpected = 'UnhandledPromiseRejectionWarning: Unhandled ' + 'promise rejection: ' + rejectValue + diff --git a/handwritten/error-reporting/test/unit/build-stack-trace.js b/handwritten/error-reporting/test/unit/build-stack-trace.js new file mode 100644 index 00000000000..f12c313934a --- /dev/null +++ b/handwritten/error-reporting/test/unit/build-stack-trace.js @@ -0,0 +1,61 @@ +/** + * Copyright 2017 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; + +var assert = require('assert'); +var path = require('path'); +var buildStackTrace = require('../../src/build-stack-trace.js'); + +const SRC_ROOT = path.join(__dirname, '..', '..', 'src'); + +describe('build-stack-trace', function() { + it('Should not have a message attached if none is given', function() { + assert(buildStackTrace().startsWith(' at')); + assert(!buildStackTrace(undefined).startsWith('undefined')); + assert(!buildStackTrace(null).startsWith('null')); + }); + + it('Should attach a message if given', function() { + assert(buildStackTrace('Some Message').startsWith('Some Message\n')); + }); + + it('Should not contain error-reporting specific frames', function() { + (function functionA() { + (function functionB() { + (function functionC() { + var stackTrace = buildStackTrace(); + assert(stackTrace); + assert.strictEqual(stackTrace.indexOf(SRC_ROOT), -1); + })(); + })(); + })(); + }); + + it('Should return the stack trace', function() { + (function functionA() { + (function functionB() { + (function functionC() { + var stackTrace = buildStackTrace(); + assert(stackTrace); + assert.notStrictEqual(stackTrace.indexOf('functionA'), -1); + assert.notStrictEqual(stackTrace.indexOf('functionB'), -1); + assert.notStrictEqual(stackTrace.indexOf('functionC'), -1); + })(); + })(); + })(); + }); +}); diff --git a/handwritten/error-reporting/test/unit/classes/custom-stack-trace.js b/handwritten/error-reporting/test/unit/classes/custom-stack-trace.js deleted file mode 100644 index 6095ab5051a..00000000000 --- a/handwritten/error-reporting/test/unit/classes/custom-stack-trace.js +++ /dev/null @@ -1,77 +0,0 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the 'License'); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an 'AS IS' BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -'use strict'; - -var assert = require('assert'); -var CustomStackTrace = require('../../../src/classes/custom-stack-trace.js'); - -describe('Fuzzing the CustomStackTrace class', function() { - var testFunction = function testFunction() { - return ''; - }; - var cs; - beforeEach(function() { cs = new CustomStackTrace(); }); - it('Should accept value for file path', function() { - cs.setFilePath('test'); - assert( - cs.filePath === 'test', - 'Setting a valid string on the CustomStackTrace.filePath instance ' + - 'should result in assignment' - ); - }); - it('Should reject invalid type for file path', function() { - cs.setFilePath(null); - assert( - cs.filePath === '', - 'Setting an invalid type on the CustomStackTrace.filePath instance ' + - 'should result in default value of an empty string' - ); - }); - it('Should accept value for line number', function() { - cs.setLineNumber(10); - assert( - cs.lineNumber === 10, - 'Setting a valid number on the CustomStackTrace.lineNumber instance ' + - 'should result in assignment' - ); - }); - it('Should reject invalid type for line number', function() { - cs.setLineNumber('10'); - assert( - cs.lineNumber === 0, - 'Setting an invalid type on the CustomStackTrace.lineNumber instance ' + - 'should result in default value of number 0' - ); - }); - it('Should accept value for call list', function() { - cs.setStringifyStructuredCallList(testFunction); - assert.strictEqual( - cs.stringifyStucturedCallList, - testFunction, - 'Setting a valid function on the CustomStackTrace. ' + - 'setStringifyStructuredCallList should result in assignment' - ); - }); - it('Should reject incalid value for call list', function() { - cs.setStringifyStructuredCallList(null); - assert( - ((typeof cs.setStringifyStructuredCallList) === 'function'), - 'Setting an invalid setStringifyStructuredCallList on the ' + - 'CustomStackTrace. setStringifyStructuredCallList should result in a ' + - 'default value of a function' - ); - }); -}); diff --git a/handwritten/error-reporting/test/unit/error-extractors/error.js b/handwritten/error-reporting/test/unit/error-extractors/error.js deleted file mode 100644 index cda098e60e7..00000000000 --- a/handwritten/error-reporting/test/unit/error-extractors/error.js +++ /dev/null @@ -1,107 +0,0 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the 'License'); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an 'AS IS' BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -var assert = require('assert'); -var extractFromErrorClass = require('../../../src/error-extractors/error.js'); -var ErrorMessage = require('../../../src/classes/error-message.js'); - - -describe('Writing and reading ErrorMessage properties', function() { - describe('Message field', function() { - it('Should set the message as the stack of the given error', function() { - var TEST_MESSAGE = 'This is a test'; - var em = new ErrorMessage(); - var err = new Error(TEST_MESSAGE); - extractFromErrorClass(err, em); - assert.deepEqual(em.message, err.stack, 'Given a valid message the ' + - 'error message should absorb the error stack as the message' - ); - }); - }); - describe('User field', function() { - var em, err; - var TEST_USER_INVALID = 12; - beforeEach(function() { - em = new ErrorMessage(); - err = new Error(); - }); - it('Should set the user field if given valid input', function() { - var TEST_USER_VALID = 'TEST_USER'; - err.user = TEST_USER_VALID; - extractFromErrorClass(err, em); - assert.strictEqual(em.context.user, TEST_USER_VALID); - }); - it('Should default the user field if given invalid input', function() { - err.user = TEST_USER_INVALID; - extractFromErrorClass(err, em); - assert.strictEqual(em.context.user, ''); - }); - }); - describe('Service field', function() { - var em, err; - var TEST_SERVICE_DEFAULT = {service: 'node', version: undefined}; - beforeEach(function() { - em = new ErrorMessage(); - err = new Error(); - }); - it('Should set the field if given valid input', function() { - var TEST_SERVICE_VALID = {service: 'test', version: 'test'}; - err.serviceContext = TEST_SERVICE_VALID; - extractFromErrorClass(err, em); - assert.deepEqual(err.serviceContext, TEST_SERVICE_VALID); - }); - it('Should default the field if given invalid input', function() { - var TEST_SERVICE_INVALID = 12; - err.serviceContext = TEST_SERVICE_INVALID; - extractFromErrorClass(err, em); - assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); - }); - it('Should default the field if not given input', function() { - extractFromErrorClass(err, em); - assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); - }); - }); - describe('Report location field', function() { - var em, err; - var TEST_STACK_DEFAULT = { - filePath: '', - lineNumber: 0, - functionName: '' - }; - beforeEach(function() { - em = new ErrorMessage(); - err = new Error(); - }); - it('Should default the field if given invalid input', function() { - var TEST_STACK_INVALID_CONTENTS = { - filePath: null, - lineNumber: '2', - functionName: {} - }; - err.stack = TEST_STACK_INVALID_CONTENTS; - extractFromErrorClass(err, em); - assert.deepEqual(em.context.reportLocation, TEST_STACK_DEFAULT); - }); - it('Should default field if not given a valid type', function() { - var TEST_STACK_INVALID_TYPE = []; - err.stack = TEST_STACK_INVALID_TYPE; - extractFromErrorClass(err, em); - assert.deepEqual(em.context.reportLocation, TEST_STACK_DEFAULT); - }); - }); -}); diff --git a/handwritten/error-reporting/test/unit/error-extractors/object.js b/handwritten/error-reporting/test/unit/error-extractors/object.js deleted file mode 100644 index bb3d32136ba..00000000000 --- a/handwritten/error-reporting/test/unit/error-extractors/object.js +++ /dev/null @@ -1,108 +0,0 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -var assert = require('assert'); -var extractFromObject = require('../../../src/error-extractors/object.js'); -var ErrorMessage = require('../../../src/classes/error-message.js'); - -describe('Object value extraction as error message', function() { - var em, err; - beforeEach(function() { - em = new ErrorMessage(); - err = {}; - }); - describe('Message field', function() { - it('Should write to the field given valid input', function() { - var MESSAGE = 'test'; - err = {message: MESSAGE}; - extractFromObject(err, em); - assert.strictEqual(em.message, MESSAGE); - }); - it('Should default the field given lack-of input', function() { - extractFromObject(err, em); - assert.strictEqual(em.message, ''); - }); - }); - describe('User field', function() { - it('Should write to the field given valid input', function() { - var USER = 'test'; - err.user = USER; - extractFromObject(err, em); - assert.strictEqual(em.context.user, USER); - }); - it('Should default the field given lack-of input', function() { - extractFromObject(err, em); - assert.strictEqual(em.context.user, ''); - }); - }); - describe('filePath field', function() { - it('Should write to the field given valid input', function() { - var PATH = 'test'; - err.filePath = PATH; - extractFromObject(err, em); - assert.strictEqual(em.context.reportLocation.filePath, PATH); - }); - it('Should default the field given lack-of input', function() { - extractFromObject(err, em); - assert.strictEqual(em.context.reportLocation.filePath, ''); - }); - }); - describe('lineNumber field', function() { - it('Should write to the field given valid input', function() { - var LINE_NUMBER = 10; - err.lineNumber = LINE_NUMBER; - extractFromObject(err, em); - assert.strictEqual(em.context.reportLocation.lineNumber, LINE_NUMBER); - }); - it('Should default the field given lack-of input', function() { - extractFromObject(err, em); - assert.strictEqual(em.context.reportLocation.lineNumber, 0); - }); - }); - describe('functionName field', function() { - it('Should write to the field given valid input', function() { - var FUNCTION_NAME = 'test'; - err.functionName = FUNCTION_NAME; - extractFromObject(err, em); - assert.strictEqual(em.context.reportLocation.functionName, FUNCTION_NAME); - }); - it('Should default the field given lack-of input', function() { - extractFromObject(err, em); - assert.strictEqual(em.context.reportLocation.functionName, ''); - }); - }); - describe('serviceContext field', function() { - var TEST_SERVICE_DEFAULT = {service: 'node', version: undefined}; - it('Should write to the field given valid input', function() { - var TEST_SERVICE_VALID = {service: 'test', version: 'test'}; - err.serviceContext = TEST_SERVICE_VALID; - extractFromObject(err, em); - assert.deepEqual(em.serviceContext, TEST_SERVICE_VALID); - }); - it('Should default the field given invalid input', function() { - var TEST_SERVICE_INVALID = 12; - err.serviceContext = TEST_SERVICE_INVALID; - extractFromObject(err, em); - assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); - }); - it('Should default the field given lack-of input', function() { - extractFromObject(err, em); - assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); - }); - }); -}); diff --git a/handwritten/error-reporting/test/unit/error-handlers/error.js b/handwritten/error-reporting/test/unit/error-handlers/error.js deleted file mode 100644 index 0e0156d2f07..00000000000 --- a/handwritten/error-reporting/test/unit/error-handlers/error.js +++ /dev/null @@ -1,56 +0,0 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -var assert = require('assert'); -var ErrorMessage = require('../../../src/classes/error-message.js'); -var handleErrorClassError = require('../../../src/error-handlers/error.js'); - -describe('Behaviour under various type inputs', function() { - var em; - var adversarialObjectInput = { - stack: {} - }; - var adversarialObjectInputTwo = { - stack: [] - }; - beforeEach(function() {em = new ErrorMessage();}); - it('Should not throw given undefined', function() { - assert.doesNotThrow(handleErrorClassError.bind(null, undefined, em)); - }); - it('Should not throw given null', function() { - assert.doesNotThrow(handleErrorClassError.bind(null, null, em)); - }); - it('Should not throw given a string', function() { - assert.doesNotThrow(handleErrorClassError.bind(null, 'string_test', em)); - }); - it('Should not throw given a number', function() { - assert.doesNotThrow(handleErrorClassError.bind(null, 1.2, em)); - }); - it('Should not throw given an array', function() { - assert.doesNotThrow(handleErrorClassError.bind(null, [], em)); - }); - it('Should not throw given an object of invalid form', function() { - assert.doesNotThrow( - handleErrorClassError.bind(null, adversarialObjectInput, em)); - assert.doesNotThrow( - handleErrorClassError.bind(null, adversarialObjectInputTwo, em)); - }); - it('Should not throw given valid input', function() { - assert.doesNotThrow(handleErrorClassError.bind(null, new Error(), em)); - }); -}); diff --git a/handwritten/error-reporting/test/unit/error-handlers/number.js b/handwritten/error-reporting/test/unit/error-handlers/number.js deleted file mode 100644 index fbdf870edf9..00000000000 --- a/handwritten/error-reporting/test/unit/error-handlers/number.js +++ /dev/null @@ -1,44 +0,0 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -var assert = require('assert'); -var ErrorMessage = require('../../../src/classes/error-message.js'); -var handleNumberAsError = require('../../../src/error-handlers/number.js'); - -describe('handleNumberAsError behaviour under varying input', function() { - var em; - beforeEach(function() {em = new ErrorMessage();}); - it('Should not throw given undefined', function() { - assert.doesNotThrow(handleNumberAsError.bind(null, undefined, em)); - }); - it('Should not throw given null', function() { - assert.doesNotThrow(handleNumberAsError.bind(null, null, em)); - }); - it('Should not throw given a string', function() { - assert.doesNotThrow(handleNumberAsError.bind(null, 'test', em)); - }); - it('Should not throw given an instance of Error', function() { - assert.doesNotThrow(handleNumberAsError.bind(null, new Error(), em)); - }); - it('Should not throw given an object', function() { - assert.doesNotThrow(handleNumberAsError.bind(null, {}, em)); - }); - it('Should not throw given valid input', function() { - assert.doesNotThrow(handleNumberAsError.bind(null, 1.3, em)); - }); -}); diff --git a/handwritten/error-reporting/test/unit/error-handlers/object.js b/handwritten/error-reporting/test/unit/error-handlers/object.js deleted file mode 100644 index 3e00791e98c..00000000000 --- a/handwritten/error-reporting/test/unit/error-handlers/object.js +++ /dev/null @@ -1,44 +0,0 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -var assert = require('assert'); -var ErrorMessage = require('../../../src/classes/error-message.js'); -var handleObjectAsError = require('../../../src/error-handlers/object.js'); - -describe('handleObjectAsError behaviour under varying inputs', function() { - var em; - beforeEach(function() {em = new ErrorMessage();}); - it('Should not throw given undefined', function() { - assert.doesNotThrow(handleObjectAsError.bind(null, undefined, em)); - }); - it('Should not throw given null', function() { - assert.doesNotThrow(handleObjectAsError.bind(null, null, em)); - }); - it('Should not throw given a string', function() { - assert.doesNotThrow(handleObjectAsError.bind(null, 'msg', em)); - }); - it('Should not throw given an instance of Error', function() { - assert.doesNotThrow(handleObjectAsError.bind(null, new Error(), em)); - }); - it('Should not throw given a number', function() { - assert.doesNotThrow(handleObjectAsError.bind(null, 1.3, em)); - }); - it('Should not throw given valid input', function() { - assert.doesNotThrow(handleObjectAsError.bind(null, {}, em)); - }); -}); diff --git a/handwritten/error-reporting/test/unit/error-handlers/string.js b/handwritten/error-reporting/test/unit/error-handlers/string.js deleted file mode 100644 index e5ae4704f23..00000000000 --- a/handwritten/error-reporting/test/unit/error-handlers/string.js +++ /dev/null @@ -1,44 +0,0 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -var assert = require('assert'); -var ErrorMessage = require('../../../src/classes/error-message.js'); -var handleStringAsError = require('../../../src/error-handlers/string.js'); - -describe('handleStringAsError behaviour under varying inputs', function() { - var em; - beforeEach(function() {em = new ErrorMessage();}); - it('Should not throw given undefined', function() { - assert.doesNotThrow(handleStringAsError.bind(null, undefined, em)); - }); - it('Should not throw given null', function() { - assert.doesNotThrow(handleStringAsError.bind(null, null, em)); - }); - it('Should not throw given an object', function() { - assert.doesNotThrow(handleStringAsError.bind(null, {}, em)); - }); - it('Should not throw given an array', function() { - assert.doesNotThrow(handleStringAsError.bind(null, [], em)); - }); - it('Should not throw given an instance of Error', function() { - assert.doesNotThrow(handleStringAsError.bind(null, 1.3, em)); - }); - it('Should not throw given valid input', function() { - assert.doesNotThrow(handleStringAsError.bind(null, 'test', em)); - }); -}); diff --git a/handwritten/error-reporting/test/unit/error-handlers/unknown.js b/handwritten/error-reporting/test/unit/error-handlers/unknown.js deleted file mode 100644 index f971a17b94d..00000000000 --- a/handwritten/error-reporting/test/unit/error-handlers/unknown.js +++ /dev/null @@ -1,47 +0,0 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict'; - -var assert = require('assert'); -var ErrorMessage = require('../../../src/classes/error-message.js'); -var handleUnknownAsError = require('../../../src/error-handlers/unknown.js'); - -describe('handleUnknownAsError behvaiour under varying input', function() { - var em; - beforeEach(function() {em = new ErrorMessage();}); - it('Should not throw given undefined', function() { - assert.doesNotThrow(handleUnknownAsError.bind(null, undefined, em)); - }); - it('Should not throw given null', function() { - assert.doesNotThrow(handleUnknownAsError.bind(null, null, em)); - }); - it('Should not throw given an object', function() { - assert.doesNotThrow(handleUnknownAsError.bind(null, {}, em)); - }); - it('Should not throw given an array', function() { - assert.doesNotThrow(handleUnknownAsError.bind(null, [], em)); - }); - it('Should not throw given an instance of Error', function() { - assert.doesNotThrow(handleUnknownAsError.bind(null, new Error(), em)); - }); - it('Should not throw given a number', function() { - assert.doesNotThrow(handleUnknownAsError.bind(null, 1.3, em)); - }); - it('Should not throw given a string', function() { - assert.doesNotThrow(handleUnknownAsError.bind(null, 'msg', em)); - }); -}); diff --git a/handwritten/error-reporting/test/unit/populate-error-message.js b/handwritten/error-reporting/test/unit/populate-error-message.js new file mode 100644 index 00000000000..79386c9ed0e --- /dev/null +++ b/handwritten/error-reporting/test/unit/populate-error-message.js @@ -0,0 +1,257 @@ +/** + * Copyright 2017 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; + +var assert = require('assert'); + +var ErrorMessage = require('../../src/classes/error-message.js'); +var populateErrorMessage = require('../../src/populate-error-message.js'); + +var TEST_USER_INVALID = 12; +var TEST_MESSAGE = 'This is a test'; +var TEST_SERVICE_DEFAULT = {service: 'node', version: undefined}; +var TEST_STACK_DEFAULT = { + filePath: '', + lineNumber: 0, + functionName: '' + }; + +describe('populate-error-message', function() { + var em; + var adversarialObjectInput = { + stack: {} + }; + var adversarialObjectInputTwo = { + stack: [] + }; + beforeEach(function() { + em = new ErrorMessage(); + }); + + it('Should not throw given undefined', function() { + assert.doesNotThrow(populateErrorMessage.bind(null, undefined, em)); + }); + + it('Should not throw given null', function() { + assert.doesNotThrow(populateErrorMessage.bind(null, null, em)); + }); + + it('Should not throw given a string', function() { + assert.doesNotThrow(populateErrorMessage.bind(null, 'string_test', em)); + }); + + it('Should not throw given a number', function() { + assert.doesNotThrow(populateErrorMessage.bind(null, 1.2, em)); + }); + + it('Should not throw given an array', function() { + assert.doesNotThrow(populateErrorMessage.bind(null, [], em)); + }); + + it('Should not throw given an object', function() { + assert.doesNotThrow(populateErrorMessage.bind(null, {}, em)); + }); + + it('Should not throw given an instance of Error', function() { + assert.doesNotThrow(populateErrorMessage.bind(null, new Error(), em)); + }); + + it('Should not throw given an object of invalid form', function() { + assert.doesNotThrow( + populateErrorMessage.bind(null, adversarialObjectInput, em)); + assert.doesNotThrow( + populateErrorMessage.bind(null, adversarialObjectInputTwo, em)); + }); + + it('Message Field: Should set the message as the stack given an Error', + function() { + var err = new Error(TEST_MESSAGE); + populateErrorMessage(err, em); + assert.deepEqual(em.message, err.stack, 'Given a valid message the ' + + 'error message should absorb the error stack as the message' + ); + }); + + it('Message Field: Should set the field given valid input given an object', + function() { + var err = {}; + var MESSAGE = 'test'; + err = {message: MESSAGE}; + populateErrorMessage(err, em); + assert.strictEqual(em.message, MESSAGE); + }); + + it('Message Field: Should default the field given lack-of input given ' + + 'an object', function() { + var err = {}; + populateErrorMessage(err, em); + assert(em.message.startsWith('[object Object]')); + }); + + it('User Field: Should set the field given valid input given an Error', + function() { + var err = new Error(); + var TEST_USER_VALID = 'TEST_USER'; + err.user = TEST_USER_VALID; + populateErrorMessage(err, em); + assert.strictEqual(em.context.user, TEST_USER_VALID); + }); + + it('User Field: Should default the field given invalid input given an Error', + function() { + var err = new Error(); + err.user = TEST_USER_INVALID; + populateErrorMessage(err, em); + assert.strictEqual(em.context.user, ''); + }); + + it('User Field: Should set the field given valid input given an object', + function() { + var err = {}; + var USER = 'test'; + err.user = USER; + populateErrorMessage(err, em); + assert.strictEqual(em.context.user, USER); + }); + + it('User Field: Should default the field given lack-of input given an ' + + 'object', function() { + var err = {}; + populateErrorMessage(err, em); + assert.strictEqual(em.context.user, ''); + }); + + it('ServiceContext Field: Should set the field given valid input given ' + + 'an Error', function() { + var err = new Error(); + var TEST_SERVICE_VALID = {service: 'test', version: 'test'}; + err.serviceContext = TEST_SERVICE_VALID; + populateErrorMessage(err, em); + assert.deepEqual(err.serviceContext, TEST_SERVICE_VALID); + }); + + it('ServiceContext Field: Should default the field given invalid input ' + + 'given an Error', function() { + var err = new Error(); + var TEST_SERVICE_INVALID = 12; + err.serviceContext = TEST_SERVICE_INVALID; + populateErrorMessage(err, em); + assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); + }); + + it('ServiceContext Field: Should default the field if not given input ' + + 'given an Error', function() { + var err = new Error(); + populateErrorMessage(err, em); + assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); + }); + + it('ServiceContext Field: Should set the field given valid input given an ' + + 'object', function() { + var err = {}; + var TEST_SERVICE_VALID = {service: 'test', version: 'test'}; + err.serviceContext = TEST_SERVICE_VALID; + populateErrorMessage(err, em); + assert.deepEqual(em.serviceContext, TEST_SERVICE_VALID); + }); + + it('ServiceContext Field: Should default the field given invalid input ' + + 'given an object', function() { + var err = {}; + var TEST_SERVICE_INVALID = 12; + err.serviceContext = TEST_SERVICE_INVALID; + populateErrorMessage(err, em); + assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); + }); + + it('ServiceContext Field: Should default the field given lack-of input ' + + 'given an object', function() { + var err = {}; + populateErrorMessage(err, em); + assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); + }); + + it('Report location Field: Should default the field if given invalid input ' + + 'given an Error', function() { + var TEST_STACK_INVALID_CONTENTS = { + filePath: null, + lineNumber: '2', + functionName: {} + }; + var err = new Error(); + err.stack = TEST_STACK_INVALID_CONTENTS; + populateErrorMessage(err, em); + assert.deepEqual(em.context.reportLocation, TEST_STACK_DEFAULT); + }); + + it('Report location Field: Should default field if not given a valid type ' + + 'given an Error', function() { + var err = new Error(); + var TEST_STACK_INVALID_TYPE = []; + err.stack = TEST_STACK_INVALID_TYPE; + populateErrorMessage(err, em); + assert.deepEqual(em.context.reportLocation, TEST_STACK_DEFAULT); + }); + + it('FilePath Field: Should set the field given valid input given an object', + function() { + var err = {}; + var PATH = 'test'; + err.filePath = PATH; + populateErrorMessage(err, em); + assert.strictEqual(em.context.reportLocation.filePath, PATH); + }); + + it('FilePath Field: Should default the field given lack-of input given ' + + 'an object', function() { + var err = {}; + populateErrorMessage(err, em); + assert.strictEqual(em.context.reportLocation.filePath, ''); + }); + + it('LineNumber Field: Should set the field given valid input given an object', + function() { + var err = {}; + var LINE_NUMBER = 10; + err.lineNumber = LINE_NUMBER; + populateErrorMessage(err, em); + assert.strictEqual(em.context.reportLocation.lineNumber, LINE_NUMBER); + }); + + it('LineNumber Field: Should default the field given lack-of input given ' + + 'an object', function() { + var err = {}; + populateErrorMessage(err, em); + assert.strictEqual(em.context.reportLocation.lineNumber, 0); + }); + + it('FunctionName Field: Should set the field given valid input given ' + + 'an object', function() { + var err = {}; + var FUNCTION_NAME = 'test'; + err.functionName = FUNCTION_NAME; + populateErrorMessage(err, em); + assert.strictEqual(em.context.reportLocation.functionName, FUNCTION_NAME); + }); + + it('FunctionName Field: Should default the field given lack-of input given ' + + 'an object', function() { + var err = {}; + populateErrorMessage(err, em); + assert.strictEqual(em.context.reportLocation.functionName, ''); + }); +}); From 4fc20954b6f5604264cd013b9ea8f2e2389314cb Mon Sep 17 00:00:00 2001 From: Stephen Sawchuk Date: Mon, 17 Jul 2017 10:44:41 -0400 Subject: [PATCH 030/527] error-reporting @ 0.2.0 tagged. --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index a4e4c7a26bd..6f4f037eede 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -53,5 +53,5 @@ "utils", "index.js" ], - "version": "0.1.3" + "version": "0.2.0" } From 1e0211ef478de212e52a28c49aad2114bd1d6da8 Mon Sep 17 00:00:00 2001 From: Ali Ijaz Sheikh Date: Mon, 17 Jul 2017 08:08:11 -0700 Subject: [PATCH 031/527] betas for logging-{winston,bunyan}, error-reporting (#2454) These modules can now be declared in beta. --- handwritten/error-reporting/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index a7c4bb137c7..a47d30dd017 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -3,8 +3,7 @@ [![NPM Version][npm-image]][npm-url] [![Known Vulnerabilities][snyk-image]][snyk-url] -> This module is experimental, and should be used by early adopters. -> This module uses APIs that may be undocumented and are subject to change without notice. +> **Beta** *This is a Beta release of the Stackdriver Error Reporting libraries for Node.js. These libraries might be changed in backward-incompatible ways and are not subject to any SLA or deprecation policy.* This module provides Stackdriver Error Reporting support for Node.js applications. [Stackdriver Error Reporting](https://cloud.google.com/error-reporting/) is a feature of From cbcdcbc5c7b2e74989cafa5d7dedf44ce80cf715 Mon Sep 17 00:00:00 2001 From: Stephen Sawchuk Date: Mon, 17 Jul 2017 11:10:04 -0400 Subject: [PATCH 032/527] error-reporting @ 0.2.1 tagged. --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 6f4f037eede..3f09fe4f321 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -53,5 +53,5 @@ "utils", "index.js" ], - "version": "0.2.0" + "version": "0.2.1" } From ec3b99b2cb5c4d57f3d8ddb6208ecf5f4324398f Mon Sep 17 00:00:00 2001 From: Kelvin Jin Date: Fri, 15 Sep 2017 14:25:34 -0700 Subject: [PATCH 033/527] error-reporting: Skip authentication for error-reporting when API key is provided (#2554) PR-URL: #2554 --- handwritten/error-reporting/README.md | 24 +++++++++- .../src/google-apis/auth-client.js | 46 +++++++++++++----- .../{testAuthClient.js => error-reporting.js} | 36 ++++++++++++++ .../test/unit/google-apis/auth-client.js | 47 ++++++++++++++----- 4 files changed, 128 insertions(+), 25 deletions(-) rename handwritten/error-reporting/system-test/{testAuthClient.js => error-reporting.js} (94%) diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index a47d30dd017..e8529aa573e 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -116,7 +116,9 @@ Alternatively, you can also follow the instructions for using a service account ## Running Elsewhere -If your application is running outside of Google Cloud Platform, such as locally, on-premise, or on another cloud provider, you can still use Stackdriver Errors. +If your application is running outside of Google Cloud Platform, such as locally, on-premise, or on another cloud provider, you can still use Stackdriver Errors either with locally-stored credentials or with an API Key. + +### Using Locally-Stored Credentials 1. You will need to specify your project ID when starting the errors agent. @@ -145,6 +147,25 @@ If your application is running outside of Google Cloud Platform, such as locally When running on Google Cloud Platform, we handle these for you automatically. +### Using an API Key + +You may use an API key in lieu of locally-stored credentials. Please see [this document][api-key] on how to set up an API key if you do not already have one. + +Once you have obtained an API key, you may provide it as part of the Error Reporting instance configuration: + +```js +var errors = require('@google-cloud/error-reporting')({ + projectId: '{your project ID}', + key: '{your api key}' +}); +``` + +If a key is provided, the module will not attempt to authenticate using the methods associated with locally-stored credentials as mentioned in the previous section. + +We recommend using a file, environment variable, or another mechanism to store the API key rather than hard-coding it into your application's source. + +**Note:** The Error Reporting instance will check if the provided API key is invalid shortly after it is instantiated. If the key is invalid, an error-level message will be logged to stdout. + ## Configuration The following code snippet lists all available configuration options. All configuration options are optional. @@ -286,6 +307,7 @@ server.head('/hello/:name', respond); server.listen(3000); ``` +[api-key]: https://support.google.com/cloud/answer/6158862 [app-default-credentials]: https://developers.google.com/identity/protocols/application-default-credentials [express-error-docs]: https://expressjs.com/en/guide/error-handling.html [gcloud-sdk]: https://cloud.google.com/sdk/gcloud/ diff --git a/handwritten/error-reporting/src/google-apis/auth-client.js b/handwritten/error-reporting/src/google-apis/auth-client.js index b7587e4308d..1459e929261 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.js +++ b/handwritten/error-reporting/src/google-apis/auth-client.js @@ -27,7 +27,7 @@ var isString = is.string; var SCOPES = ['https://www.googleapis.com/auth/cloud-platform']; /* @const {String} Base Error Reporting API */ -var API = 'https://clouderrorreporting.googleapis.com/v1beta1/projects'; +var API = 'https://clouderrorreporting.googleapis.com/v1beta1'; /** * The RequestHandler constructor initializes several properties on the @@ -70,6 +70,7 @@ class RequestHandler extends common.Service { } return null; } + /** * No-operation stub function for user callback substitution * @param {Error|Null} err - the error @@ -88,26 +89,47 @@ class RequestHandler extends common.Service { */ constructor(config, logger) { var pid = config.getProjectId(); + // If an API key is provided, do not try to authenticate. + var tryAuthenticate = !config.getKey(); super({ packageJson: pkg, - baseUrl: 'https://clouderrorreporting.googleapis.com/v1beta1/', + baseUrl: API, scopes: SCOPES, projectId: pid !== null ? pid : undefined, - projectIdRequired: true + projectIdRequired: true, + customEndpoint: !tryAuthenticate }, config); this._config = config; this._logger = logger; var that = this; - this.authClient.getToken(function(err, token) { - if (err) { - that._logger.error([ - 'Unable to find credential information on instance. This library', - 'will be unable to communicate with the Stackdriver API to save', - 'errors. Message: ' + err.message - ].join(' ')); - } - }); + if (tryAuthenticate) { + this.authClient.getToken(function(err, token) { + if (err) { + that._logger.error([ + 'Unable to find credential information on instance. This library', + 'will be unable to communicate with the Stackdriver API to save', + 'errors. Message: ' + err.message + ].join(' ')); + } + }); + } else { + this.request({ + uri: 'events:report', + qs: RequestHandler.manufactureQueryString(this._config.getKey()), + method: 'POST', + json: {} + }, (err, body, response) => { + if (err && err.message !== 'Message cannot be empty.' && + response.statusCode === 400) { + this._logger.error([ + 'Encountered an error while attempting to validate the provided', + 'API key' + ].join(' '), err); + } + }); + that._logger.info('API key provided; skipping OAuth2 token request.'); + } } /** * Creates a request options object given the value of the error message and diff --git a/handwritten/error-reporting/system-test/testAuthClient.js b/handwritten/error-reporting/system-test/error-reporting.js similarity index 94% rename from handwritten/error-reporting/system-test/testAuthClient.js rename to handwritten/error-reporting/system-test/error-reporting.js index 251e5cf4ff7..9acb8d90551 100644 --- a/handwritten/error-reporting/system-test/testAuthClient.js +++ b/handwritten/error-reporting/system-test/error-reporting.js @@ -31,6 +31,7 @@ var forEach = require('lodash.foreach'); var assign = require('lodash.assign'); var pick = require('lodash.pick'); var omitBy = require('lodash.omitby'); +var request = require('request'); var util = require('util'); var path = require('path'); @@ -362,6 +363,41 @@ describe('Expected Behavior', function() { }); }); +describe('Error Reporting API', function() { + [ + { + name: 'when a valid API key is given', + getKey: () => env.apiKey, + message: 'Message cannot be empty.' + }, + { + name: 'when an empty API key is given', + getKey: () => '', + message: 'The request is missing a valid API key.' + }, + { + name: 'when an invalid API key is given', + getKey: () => env.apiKey.slice(1) + env.apiKey[0], + message: 'API key not valid. Please pass a valid API key.' + } + ].forEach(function(testCase) { + it(`should return an expected message ${testCase.name}`, function(done) { + this.timeout(30000); + const API = 'https://clouderrorreporting.googleapis.com/v1beta1'; + const key = testCase.getKey(); + request.post({ + url: `${API}/projects/${env.projectId}/events:report?key=${key}`, + json: {}, + }, (err, response, body) => { + assert.ok(!err && body.error); + assert.strictEqual(response.statusCode, 400); + assert.strictEqual(body.error.message, testCase.message); + done(); + }); + }); + }); +}); + describe('error-reporting', function() { const SRC_ROOT = path.join(__dirname, '..', 'src'); const TIMESTAMP = Date.now(); diff --git a/handwritten/error-reporting/test/unit/google-apis/auth-client.js b/handwritten/error-reporting/test/unit/google-apis/auth-client.js index cda05f05fca..3278a1c6a92 100644 --- a/handwritten/error-reporting/test/unit/google-apis/auth-client.js +++ b/handwritten/error-reporting/test/unit/google-apis/auth-client.js @@ -20,7 +20,7 @@ var proxyquire = require('proxyquire'); var Configuration = require('../../../src/configuration.js'); -function verifyReportedMessage(errToReturn, expectedMessage) { +function verifyReportedMessage(config, errToReturn, expectedLogs) { class ServiceStub { constructor() { this.authClient = { @@ -28,6 +28,7 @@ function verifyReportedMessage(errToReturn, expectedMessage) { cb(errToReturn); } }; + this.request = function() {}; } } @@ -37,28 +38,50 @@ function verifyReportedMessage(errToReturn, expectedMessage) { } }); - var message = ''; + var logs = {}; var logger = { error: function(text) { - message += text; + if (!logs.error) { + logs.error = ''; + } + logs.error += text; + }, + info: function(text) { + if (!logs.info) { + logs.info = ''; + } + logs.info += text; } }; - var config = new Configuration({ ignoreEnvironmentCheck: true }, logger); + var config = new Configuration(config, logger); new RequestHandler(config, logger); - assert.strictEqual(message, expectedMessage); + assert.deepStrictEqual(logs, expectedLogs); } - describe('RequestHandler', function() { + it('should not request OAuth2 token if key is provided', function() { + var config = { + ignoreEnvironmentCheck: true, + key: 'key' + }; + var message = 'Made OAuth2 Token Request'; + verifyReportedMessage(config, new Error(message), { + info: 'API key provided; skipping OAuth2 token request.' + }); + }); + it('should issue a warning if it cannot communicate with the API', function() { + var config = { ignoreEnvironmentCheck: true }; var message = 'Test Error'; - verifyReportedMessage(new Error(message), - 'Unable to find credential information on instance. This library ' + - 'will be unable to communicate with the Stackdriver API to save ' + - 'errors. Message: ' + message); + verifyReportedMessage(config, new Error(message), { + error: 'Unable to find credential information on instance. This ' + + 'library will be unable to communicate with the Stackdriver API to ' + + 'save errors. Message: ' + message + }); }); it('should not issue a warning if it can communicate with the API', function() { - verifyReportedMessage(null, ''); - verifyReportedMessage(undefined, ''); + var config = { ignoreEnvironmentCheck: true }; + verifyReportedMessage(config, null, {}); + verifyReportedMessage(config, undefined, {}); }); }); From 2448d0e68d01b455cf5639bdf204e6e21c45bc9e Mon Sep 17 00:00:00 2001 From: Stephen Sawchuk Date: Tue, 3 Oct 2017 19:19:59 -0400 Subject: [PATCH 034/527] error-reporting @ 0.2.2 tagged. --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 3f09fe4f321..6998cfebd45 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -53,5 +53,5 @@ "utils", "index.js" ], - "version": "0.2.1" + "version": "0.2.2" } From 95c09c81a842125ae56f5b0ae543bdec6c0339fa Mon Sep 17 00:00:00 2001 From: Tomoaki Abe Date: Sun, 15 Oct 2017 05:29:38 +0900 Subject: [PATCH 035/527] Remove unused values (#2669) * Remove unused values I removed it because I found a variable not being used under `packages/error-reporting`. * Remove unnecessary space --- handwritten/error-reporting/src/google-apis/auth-client.js | 3 +-- handwritten/error-reporting/utils/fuzzer.js | 4 ---- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/handwritten/error-reporting/src/google-apis/auth-client.js b/handwritten/error-reporting/src/google-apis/auth-client.js index 1459e929261..c5c99596e17 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.js +++ b/handwritten/error-reporting/src/google-apis/auth-client.js @@ -18,7 +18,6 @@ 'use strict'; const common = require('@google-cloud/common'); const pkg = require('../../package.json'); -var logger = require('../logger.js'); var is = require('is'); var isFunction = is.fn; var isString = is.string; @@ -120,7 +119,7 @@ class RequestHandler extends common.Service { method: 'POST', json: {} }, (err, body, response) => { - if (err && err.message !== 'Message cannot be empty.' && + if (err && err.message !== 'Message cannot be empty.' && response.statusCode === 400) { this._logger.error([ 'Encountered an error while attempting to validate the provided', diff --git a/handwritten/error-reporting/utils/fuzzer.js b/handwritten/error-reporting/utils/fuzzer.js index 956a688aae3..c9fa25d92bb 100644 --- a/handwritten/error-reporting/utils/fuzzer.js +++ b/handwritten/error-reporting/utils/fuzzer.js @@ -23,10 +23,8 @@ var maxBy = require('lodash.maxby'); var random = require('lodash.random'); var is = require('is'); var isNumber = is.number; -var isObject = is.object; var isString = is.string; var isArray = is.array; -var isNull = is.null; var isFunction = is.function; function Fuzzer() { } @@ -202,7 +200,6 @@ Fuzzer.prototype.generate.object = function(numProperties, currentDepth, allowed Fuzzer.prototype._backFillUnevenTypesArrays = function(argsTypesArray) { - var largestIndex = 0; var largestLength = (maxBy( argsTypesArray , function(o) { return o.length } @@ -292,7 +289,6 @@ Fuzzer.prototype._generateValuesForFuzzTyping = function(typesToFuzzOnEach, inde Fuzzer.prototype.fuzzFunctionForTypes = function(fnToFuzz, expectsArgTypes, cb, withContext) { var expectsArgTypesChecked = isArray(expectsArgTypes) ? expectsArgTypes : []; var typesToFuzzOnEach = this._generateTypesToFuzzWith(expectsArgTypesChecked); - var withContextChecked = (withContext !== undefined) ? withContext : null; var returnValue = undefined; From e9451beed0586831390550fddb320be6e4620832 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Fri, 22 Dec 2017 15:39:29 -0800 Subject: [PATCH 036/527] Complete code migration (#18) --- handwritten/error-reporting/.appveyor.yaml | 21 + .../error-reporting/.circleci/config.yaml | 226 +++++ .../error-reporting/.circleci/key.json.enc | Bin 0 -> 2384 bytes .../error-reporting/.cloud-repo-tools.json | 16 + handwritten/error-reporting/.eslintignore | 3 + handwritten/error-reporting/.eslintrc.yml | 13 + .../error-reporting/.github/CONTRIBUTING.md | 53 + .../error-reporting/.github/ISSUE_TEMPLATE.md | 28 + .../.github/PULL_REQUEST_TEMPLATE.md | 5 + handwritten/error-reporting/.gitignore | 17 +- handwritten/error-reporting/.jsdoc.js | 41 + handwritten/error-reporting/.mailmap | 5 + handwritten/error-reporting/.nycrc | 26 + handwritten/error-reporting/.prettierignore | 3 + handwritten/error-reporting/.prettierrc | 8 + .../error-reporting/CODE_OF_CONDUCT.md | 43 + handwritten/error-reporting/CONTRIBUTORS | 15 + handwritten/error-reporting/LICENSE | 202 ++++ handwritten/error-reporting/README.md | 348 ++----- handwritten/error-reporting/README_OLD.md | 320 ++++++ handwritten/error-reporting/package.json | 93 +- .../error-reporting/src/build-stack-trace.js | 15 +- .../src/classes/error-message.js | 52 +- .../classes/request-information-container.js | 7 - .../error-reporting/src/configuration.js | 29 +- .../src/google-apis/auth-client.js | 121 ++- handwritten/error-reporting/src/index.js | 11 +- .../error-reporting/src/interfaces/express.js | 8 +- .../error-reporting/src/interfaces/hapi.js | 23 +- .../error-reporting/src/interfaces/koa.js | 12 +- .../error-reporting/src/interfaces/manual.js | 20 +- .../src/interfaces/message-builder.js | 5 +- .../error-reporting/src/interfaces/restify.js | 19 +- handwritten/error-reporting/src/logger.js | 18 +- .../src/populate-error-message.js | 12 +- .../src/request-extractors/express.js | 21 +- .../src/request-extractors/hapi.js | 46 +- .../src/request-extractors/koa.js | 29 +- .../src/request-extractors/manual.js | 11 +- .../error-reporting/system-test/.eslintrc.yml | 6 + .../system-test/error-reporting.js | 498 ++++++---- .../error-reporting/test/.eslintrc.yml | 5 + .../test/fixtures/configuration.js | 2 +- .../test-servers/express_scaffold_server.js | 134 ++- .../test/test-servers/hapi_scaffold_server.js | 50 +- .../test/test-servers/koa_scaffold_server.js | 12 +- .../test-servers/manual_scaffold_server.js | 11 +- .../test-servers/restify_scaffold_server.js | 1 + .../test/unit/classes/error-message.js | 930 +++++++++--------- .../classes/request-information-container.js | 31 +- .../test/unit/configuration.js | 246 ++--- .../test/unit/google-apis/auth-client.js | 28 +- .../test/unit/interfaces/express.js | 49 +- .../test/unit/interfaces/hapi.js | 133 +-- .../test/unit/interfaces/manual.js | 128 ++- .../test/unit/interfaces/restify.js | 27 +- .../error-reporting/test/unit/logger.js | 36 +- .../test/unit/populate-error-message.js | 320 +++--- .../test/unit/request-extractors/express.js | 262 ++--- .../test/unit/request-extractors/hapi.js | 47 +- .../test/unit/request-extractors/koa.js | 29 +- .../test/unit/request-extractors/manual.js | 47 +- .../test/unit/service-configuration.js | 222 +++-- .../utils/errors-api-transport.js | 11 +- handwritten/error-reporting/utils/fuzzer.js | 216 ++-- 65 files changed, 3310 insertions(+), 2116 deletions(-) create mode 100644 handwritten/error-reporting/.appveyor.yaml create mode 100644 handwritten/error-reporting/.circleci/config.yaml create mode 100644 handwritten/error-reporting/.circleci/key.json.enc create mode 100644 handwritten/error-reporting/.cloud-repo-tools.json create mode 100644 handwritten/error-reporting/.eslintignore create mode 100644 handwritten/error-reporting/.eslintrc.yml create mode 100644 handwritten/error-reporting/.github/CONTRIBUTING.md create mode 100644 handwritten/error-reporting/.github/ISSUE_TEMPLATE.md create mode 100644 handwritten/error-reporting/.github/PULL_REQUEST_TEMPLATE.md create mode 100644 handwritten/error-reporting/.jsdoc.js create mode 100644 handwritten/error-reporting/.mailmap create mode 100644 handwritten/error-reporting/.nycrc create mode 100644 handwritten/error-reporting/.prettierignore create mode 100644 handwritten/error-reporting/.prettierrc create mode 100644 handwritten/error-reporting/CODE_OF_CONDUCT.md create mode 100644 handwritten/error-reporting/CONTRIBUTORS create mode 100644 handwritten/error-reporting/LICENSE create mode 100644 handwritten/error-reporting/README_OLD.md create mode 100644 handwritten/error-reporting/system-test/.eslintrc.yml create mode 100644 handwritten/error-reporting/test/.eslintrc.yml diff --git a/handwritten/error-reporting/.appveyor.yaml b/handwritten/error-reporting/.appveyor.yaml new file mode 100644 index 00000000000..75c7f9f84bc --- /dev/null +++ b/handwritten/error-reporting/.appveyor.yaml @@ -0,0 +1,21 @@ +environment: + matrix: + - nodejs_version: 8 + +install: + - ps: Install-Product node $env:nodejs_version + - npm install -g npm # Force using the latest npm to get dedupe during install + - set PATH=%APPDATA%\npm;%PATH% + - npm install --force --ignore-scripts + +test_script: + - node --version + - npm --version + - npm rebuild + - npm test + +build: off + +matrix: + fast_finish: true + diff --git a/handwritten/error-reporting/.circleci/config.yaml b/handwritten/error-reporting/.circleci/config.yaml new file mode 100644 index 00000000000..6e575b3da58 --- /dev/null +++ b/handwritten/error-reporting/.circleci/config.yaml @@ -0,0 +1,226 @@ +--- +# "Include" for unit tests definition. +unit_tests: &unit_tests + steps: + - checkout + - run: + name: Install modules and dependencies. + command: npm install + - run: + name: Run unit tests. + command: npm test + - run: + name: Submit coverage data to codecov. + command: node_modules/.bin/codecov + when: always + +version: 2.0 +workflows: + version: 2 + tests: + jobs: + - node4: + filters: + tags: + only: /.*/ + - node6: + filters: + tags: + only: /.*/ + - node7: + filters: + tags: + only: /.*/ + - node8: + filters: + tags: + only: /.*/ + - node9: + filters: + tags: + only: /.*/ + - lint: + requires: + - node4 + - node6 + - node7 + - node8 + - node9 + filters: + tags: + only: /.*/ + - docs: + requires: + - node4 + - node6 + - node7 + - node8 + - node9 + filters: + tags: + only: /.*/ + - system_tests: + requires: + - lint + - docs + filters: + branches: + only: master + tags: + only: /^v[\d.]+$/ + - sample_tests: + requires: + - lint + - docs + filters: + branches: + only: master + tags: + only: /^v[\d.]+$/ + - publish_npm: + requires: + - system_tests + - sample_tests + filters: + branches: + ignore: /.*/ + tags: + only: /^v[\d.]+$/ + +jobs: + node4: + docker: + - image: node:4 + steps: + - checkout + - run: + name: Install modules and dependencies. + command: npm install --unsafe-perm + - run: + name: Run unit tests. + command: npm test + - run: + name: Submit coverage data to codecov. + command: node_modules/.bin/codecov + when: always + node6: + docker: + - image: node:6 + <<: *unit_tests + node7: + docker: + - image: node:7 + <<: *unit_tests + node8: + docker: + - image: node:8 + <<: *unit_tests + node9: + docker: + - image: node:9 + <<: *unit_tests + + lint: + docker: + - image: node:8 + steps: + - checkout + - run: + name: Install modules and dependencies. + command: | + npm install + npm link + - run: + name: Link the module being tested to the samples. + command: | + cd samples/ + npm link @google-cloud/error-reporting + npm install + cd .. + - run: + name: Run linting. + command: npm run lint + + docs: + docker: + - image: node:8 + steps: + - checkout + - run: + name: Install modules and dependencies. + command: npm install + - run: + name: Build documentation. + command: npm run docs + + sample_tests: + docker: + - image: node:8 + steps: + - checkout + - run: + name: Decrypt credentials. + command: | + openssl aes-256-cbc -d -in .circleci/key.json.enc \ + -out .circleci/key.json \ + -k "${SYSTEM_TESTS_ENCRYPTION_KEY}" + - run: + name: Install and link the module. + command: | + npm install + npm link + - run: + name: Link the module being tested to the samples. + command: | + cd samples/ + npm link @google-cloud/error-reporting + npm install + cd .. + - run: + name: Run sample tests. + command: npm run samples-test + environment: + GCLOUD_PROJECT: long-door-651 + GOOGLE_APPLICATION_CREDENTIALS: /var/language/.circleci/key.json + - run: + name: Remove unencrypted key. + command: rm .circleci/key.json + when: always + working_directory: /var/language/ + + system_tests: + docker: + - image: node:8 + steps: + - checkout + - run: + name: Decrypt credentials. + command: | + openssl aes-256-cbc -d -in .circleci/key.json.enc \ + -out .circleci/key.json \ + -k "${SYSTEM_TESTS_ENCRYPTION_KEY}" + - run: + name: Install modules and dependencies. + command: npm install + - run: + name: Run system tests. + command: npm run system-test + environment: + GOOGLE_APPLICATION_CREDENTIALS: .circleci/key.json + GCLOUD_TESTS_KEY: .circleci/key.json + - run: + name: Remove unencrypted key. + command: rm .circleci/key.json + when: always + + publish_npm: + docker: + - image: node:8 + steps: + - checkout + - run: + name: Set NPM authentication. + command: echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc + - run: + name: Publish the module to npm. + command: npm publish diff --git a/handwritten/error-reporting/.circleci/key.json.enc b/handwritten/error-reporting/.circleci/key.json.enc new file mode 100644 index 0000000000000000000000000000000000000000..7453128c9f17320390a76eab60e8df5568d6b27a GIT binary patch literal 2384 zcmV-W39t53VQh3|WM5xN)F{dHKYX<#N3uXQ2q&$OBDZ16#~t|jd3IxQWUym8`ZGi{D$JGq3K{dT{{Rzva$^4+^IJ=t|@x;^suR68lZ5#?A#hKPU`TNTz zjHr)z zkLh`(`u15EeBHgmZ;)FTFi8t|(=9Wl-g@DUEj?gNb->TM<2p$;h{3?O3C~!Qt@o4z zZUnOn;g^_aL{!wKmpca)qo}s5Bgh8i8)xUDw1rt6y}niyx_OCd>`kZT=W?64vuRuX zq;-*eu?_|kfxb=w%PL;i=KH9me$-DlQKpBgN?#OycB{~iyWd$9kcc(5$|t%TqEN;I zWd0ej6az&=sce z#edp+7wGHXM#RZf`tu01k_NLyDlOO520b!g3zvQz|DHoe`e@@$UMvtqjqdiPtCu^0 zMn)bWRY;)c4ljLwUJ1z|M-c)DVMS1klPG9}cVo06yNhdXeCFEHEC(yoD=E?F zW!BkZO^4i7Z9ft&Gas?N0;*=^%4;RwoUO8-y_$?jAMY^hzlDF#ei0?V+ILBipYGT= zx@>11)jTBlY7!)enc)zdZ``_W=fgmD^(0HOHxq(L;RzReX{p0(XlJfU=#Xhg$lzh5 zk|E;CZ`TP1O{^f_67n`l(=RT7vvjT1afirVgp$yU7SqSw8ghzQ`@ONERI1=bF&bBc z4T8^-Iju0VsH_kZ;!Qu3UqGepw$n2zrLqA08Nt9I%fE{*3^l+zgur(!YM9p=v-ofs z*_0M1@y3OxiJ8nK33!GzrNKFlWzHYzX1-oSKe9^$kqXL6{S3=rdJ62?qidWoM2{me>qh+l)3%-!avZXIR0!K zl%1IZq)MEzPsyCFGN^XQn$tYkns(P)WpQ*ujhnMIP8vQ+?AFLl^8HqPD<$#Jra}l&-}!>7aT-oJ z(-d}x!ANK%&eF0oIyefXD$GDm)${!c*1m z6dN_m!9|L#Sj@dA4hm`FmVrIBvg#A7pm6+Q1+6~AWB2pleC`qpjVP%Ff3O7zbq)Ju z@@n^^N+kfi1s0#r+Y;_rGVF+k3jJP584@~>d)w9LrxeZjqp+4pLw-u%zdCK0m{C{I z#A16mlX1*WX}$NMaf^rfeXiA0%PQbO@9$ZgrinNQ(v!SMgN-R7PO0C~fLXv%zT?o@ z@_Ms12oi_?TKORXxyZgyupxAHvpz1XuIqM~b>15uQf=WS1Ql=%y5`I!s!yh)S_iyo@DYG`u?cisVgKdk(KJx@46dIQRveAa=z%D^$vdD2QLip*pSt~i(iNa&BFZP_AB^4ozgYM9{I z9JkDRrK$;!u3DQLKhg3}tHLRe*zS!31+gVqrN z-G~n2mCN^yv~W76d2{OdX{_yMh1wDM={E(JOclpa#6EX$E6P1@{6a)!%8TP2e1f0t z0I2&ENIP(4ACt;mq)jrR{%L64xp@`+i1n+^ww)uz^q~xTlWQW@2H28a>6{J*ZX28L zXLnLSq#$R&$C+ZOKmKzpLUA|aA_PG^_k!NG!1et8&>AGs7aL=-A5m z@;~_jOc-D5$_I*wem2LRwaXDb8}sl=HXN4etdwu4KaL%%A}Bgtv9ne)F880Pj7!gJ zgeXMM6CrrYO>`MwTn!0?skX)6V^!aQyxd`Jef^YeEO1otOFUw}RFme#VLh8`=DKTS930 zp!Mc~e`KPB-xfA{!3z|G*urvR_vFiZ+LwE&8$+QS9yu6f|}FRt#(cUlXTCRyJZ zCcQ3v{BzwAOEMlw4W7=KhfD?lJXxM*F?fDWgQ3O)B};mHy`AIJ6QKjf$JzQT8S-Sm zUEWgnI7Y!Od(7EFJ^{%E+Up40pzNLt8;m>cviwC}cAckwd5m_f!Hptl#gTXsYco9y zd}-1#V{4YtC?Qmn=I{^ry})Ex-|{0E$QiN~!IfdlBtkjaw(8Nl`+) (it's a good idea to open an issue first for discussion) + +- [ ] Tests and linter pass +- [ ] Code coverage does not decrease (if any source code was changed) +- [ ] Appropriate docs were updated (if necessary) diff --git a/handwritten/error-reporting/.gitignore b/handwritten/error-reporting/.gitignore index 43e232a9716..6b80718f261 100644 --- a/handwritten/error-reporting/.gitignore +++ b/handwritten/error-reporting/.gitignore @@ -1,9 +1,10 @@ -node_modules -coverage -npm-debug.log -.DS_Store -.eslintrc.js -docs -tests/configuration +**/*.log +**/node_modules +.coverage .nyc_output -*.patch +docs/ +out/ +system-test/secrets.js +system-test/*key.json +*.lock +*-lock.js* diff --git a/handwritten/error-reporting/.jsdoc.js b/handwritten/error-reporting/.jsdoc.js new file mode 100644 index 00000000000..2f6acd6730a --- /dev/null +++ b/handwritten/error-reporting/.jsdoc.js @@ -0,0 +1,41 @@ +/*! + * Copyright 2017 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +'use strict'; + +module.exports = { + opts: { + readme: './README.md', + package: './package.json', + template: './node_modules/ink-docstrap/template', + recurse: true, + verbose: true, + destination: './docs/', + }, + plugins: ['plugins/markdown'], + source: { + excludePattern: '(^|\\/|\\\\)[._]', + include: ['src'], + includePattern: '\\.js$', + }, + templates: { + copyright: 'Copyright 2017 Google, Inc.', + includeDate: false, + sourceFiles: false, + systemName: '@google-cloud/error-reporting', + theme: 'lumen', + }, +}; diff --git a/handwritten/error-reporting/.mailmap b/handwritten/error-reporting/.mailmap new file mode 100644 index 00000000000..480e8418a06 --- /dev/null +++ b/handwritten/error-reporting/.mailmap @@ -0,0 +1,5 @@ +Jason Dobry Jason Dobry +Jason Dobry Jason Dobry +Luke Sneeringer Luke Sneeringer +Stephen Sawchuk Stephen Sawchuk +Stephen Sawchuk Stephen Sawchuk diff --git a/handwritten/error-reporting/.nycrc b/handwritten/error-reporting/.nycrc new file mode 100644 index 00000000000..a1a8e6920ce --- /dev/null +++ b/handwritten/error-reporting/.nycrc @@ -0,0 +1,26 @@ +{ + "report-dir": "./.coverage", + "exclude": [ + "src/*{/*,/**/*}.js", + "src/*/v*/*.js", + "test/**/*.js" + ], + "watermarks": { + "branches": [ + 95, + 100 + ], + "functions": [ + 95, + 100 + ], + "lines": [ + 95, + 100 + ], + "statements": [ + 95, + 100 + ] + } +} diff --git a/handwritten/error-reporting/.prettierignore b/handwritten/error-reporting/.prettierignore new file mode 100644 index 00000000000..f6fac98b0a8 --- /dev/null +++ b/handwritten/error-reporting/.prettierignore @@ -0,0 +1,3 @@ +node_modules/* +samples/node_modules/* +src/**/doc/* diff --git a/handwritten/error-reporting/.prettierrc b/handwritten/error-reporting/.prettierrc new file mode 100644 index 00000000000..df6eac07446 --- /dev/null +++ b/handwritten/error-reporting/.prettierrc @@ -0,0 +1,8 @@ +--- +bracketSpacing: false +printWidth: 80 +semi: true +singleQuote: true +tabWidth: 2 +trailingComma: es5 +useTabs: false diff --git a/handwritten/error-reporting/CODE_OF_CONDUCT.md b/handwritten/error-reporting/CODE_OF_CONDUCT.md new file mode 100644 index 00000000000..46b2a08ea6d --- /dev/null +++ b/handwritten/error-reporting/CODE_OF_CONDUCT.md @@ -0,0 +1,43 @@ +# Contributor Code of Conduct + +As contributors and maintainers of this project, +and in the interest of fostering an open and welcoming community, +we pledge to respect all people who contribute through reporting issues, +posting feature requests, updating documentation, +submitting pull requests or patches, and other activities. + +We are committed to making participation in this project +a harassment-free experience for everyone, +regardless of level of experience, gender, gender identity and expression, +sexual orientation, disability, personal appearance, +body size, race, ethnicity, age, religion, or nationality. + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery +* Personal attacks +* Trolling or insulting/derogatory comments +* Public or private harassment +* Publishing other's private information, +such as physical or electronic +addresses, without explicit permission +* Other unethical or unprofessional conduct. + +Project maintainers have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct. +By adopting this Code of Conduct, +project maintainers commit themselves to fairly and consistently +applying these principles to every aspect of managing this project. +Project maintainers who do not follow or enforce the Code of Conduct +may be permanently removed from the project team. + +This code of conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. + +Instances of abusive, harassing, or otherwise unacceptable behavior +may be reported by opening an issue +or contacting one or more of the project maintainers. + +This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.2.0, +available at [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/) diff --git a/handwritten/error-reporting/CONTRIBUTORS b/handwritten/error-reporting/CONTRIBUTORS new file mode 100644 index 00000000000..87859d44351 --- /dev/null +++ b/handwritten/error-reporting/CONTRIBUTORS @@ -0,0 +1,15 @@ +# The names of individuals who have contributed to this project. +# +# Names are formatted as: +# name +# +Ace Nassri +Ali Ijaz Sheikh +Cristian Cavalli +Dominic Kramer +Eric Uldall +Jason Dobry +Kelvin Jin +Luke Sneeringer +Stephen Sawchuk +Tomoaki Abe diff --git a/handwritten/error-reporting/LICENSE b/handwritten/error-reporting/LICENSE new file mode 100644 index 00000000000..7a4a3ea2424 --- /dev/null +++ b/handwritten/error-reporting/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index e8529aa573e..bb161bcb242 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -1,320 +1,112 @@ -# Stackdriver Error Reporting for Node.js +Google Cloud Platform logo -[![NPM Version][npm-image]][npm-url] -[![Known Vulnerabilities][snyk-image]][snyk-url] +# Stackdriver Error Reporting: Node.js Client -> **Beta** *This is a Beta release of the Stackdriver Error Reporting libraries for Node.js. These libraries might be changed in backward-incompatible ways and are not subject to any SLA or deprecation policy.* +[![Greenkeeper badge](https://badges.greenkeeper.io/googleapis/nodejs-error-reporting.svg)](https://greenkeeper.io/) -This module provides Stackdriver Error Reporting support for Node.js applications. -[Stackdriver Error Reporting](https://cloud.google.com/error-reporting/) is a feature of -Google Cloud Platform that allows in-depth monitoring and viewing of errors reported by -applications running in almost any environment. +[![release level](https://img.shields.io/badge/release%20level-beta-yellow.svg?style=flat)](https://cloud.google.com/terms/launch-stages) +[![CircleCI](https://img.shields.io/circleci/project/github/googleapis/nodejs-error-reporting.svg?style=flat)](https://circleci.com/gh/googleapis/nodejs-error-reporting) +[![AppVeyor](https://ci.appveyor.com/api/projects/status/github/googleapis/nodejs-error-reporting?branch=master&svg=true)](https://ci.appveyor.com/project/googleapis/nodejs-error-reporting) +[![codecov](https://img.shields.io/codecov/c/github/googleapis/nodejs-error-reporting/master.svg?style=flat)](https://codecov.io/gh/googleapis/nodejs-error-reporting) -![Stackdriver Error Reporting overview](doc/images/errors-overview.png) +> Node.js idiomatic client for [Error Reporting][product-docs]. -Here's an introductory video that provides some more details: +[Stackdriver Error Reporting](https://cloud.google.com/error-reporting/docs/) aggregates and displays errors produced in your running cloud services. -[![Learn about Error Reporting in Stackdriver](https://img.youtube.com/vi/cVpWVD75Hs8/0.jpg)](https://www.youtube.com/watch?v=cVpWVD75Hs8) +* [Error Reporting Node.js Client API Reference][client-docs] +* [Error Reporting Documentation][product-docs] -Note that [@google-cloud/logging-winston][logging-winston] and -[@google-cloud/logging-bunyan][logging-bunyan] automatically integrate with the -Error Reporting service for Error objects logged at severity `error` or higher, -for applications running on Google Cloud Platform. If you are already using -Winston or Bunyan in your application, and don't need direct access/control of -error reporting, you may want to check those modules as well. +Read more about the client libraries for Cloud APIs, including the older +Google APIs Client Libraries, in [Client Libraries Explained][explained]. -## Prerequisites +[explained]: https://cloud.google.com/apis/docs/client-libraries-explained -1. Your application needs to use Node.js version 4.x or greater. -1. You need a [Google Cloud project](https://console.cloud.google.com). Your application can run anywhere, but errors are reported to a particular project. -1. [Enable the Stackdriver Error Reporting API](https://console.cloud.google.com/apis/api/clouderrorreporting.googleapis.com/overview) for your project. +**Table of contents:** -**Note:** The module will only send errors when the `NODE_ENV` environment variable is -set to `production` or the `ignoreEnvironmentCheck` property given in the -runtime configuration object is set to `true`. See the [Configuration](#configuration) section for more details. +* [Quickstart](#quickstart) + * [Before you begin](#before-you-begin) + * [Installing the client library](#installing-the-client-library) + * [Using the client library](#using-the-client-library) +* [Samples](#samples) +* [Versioning](#versioning) +* [Contributing](#contributing) +* [License](#license) -## Quick Start +## Quickstart -1. **Install the module:** +### Before you begin - In your project, on the command line: +1. Select or create a Cloud Platform project. -```sh - # Install through npm while saving to the local 'package.json' - npm install --save @google-cloud/error-reporting -``` - -2. **Require the module:** + [Go to the projects page][projects] -```js -// Require the library and initialize the error handler -var errors = require('@google-cloud/error-reporting')({ - serviceContext: {service: 'my-service'} // not needed on Google Cloud -}); +1. Enable billing for your project. -// Report an error to the Stackdriver Error Reporting API -errors.report(new Error('Something broke!')); + [Enable billing][billing] -// We also provide error handling middleware for express, hapi, restify & koa. -// See sections below. -``` +1. Enable the Stackdriver Error Reporting API. -3. **View reported errors:** + [Enable the API][enable_api] - Open Stackdriver Error Reporting at https://console.cloud.google.com/errors to view the reported errors. +1. [Set up authentication with a service account][auth] so you can access the + API from your local workstation. -## Unhandled Rejections +[projects]: https://console.cloud.google.com/project +[billing]: https://support.google.com/cloud/answer/6293499#enable-billing +[enable_api]: https://console.cloud.google.com/flows/enableapi?apiid=clouderrorreporting.googleapis.com +[auth]: https://cloud.google.com/docs/authentication/getting-started -Unhandled Rejections are not reported by default. The reporting of unhandled rejections can be enabled using the `reportUnhandledRejections` configuration option. See the [Configuration](#configuration) section for more details. +### Installing the client library -If unhandled rejections are set to be reported, then, when an unhandled rejection occurs, a message is printed to standard out indicated that an unhandled rejection had occurred and is being reported, and the value causing the rejection is reported to the error-reporting console. + npm install --save @google-cloud/error-reporting -## Catching and Reporting Application-wide Uncaught Errors +### Using the client library -Uncaught exceptions are not reported by default. *It is recommended to process `uncaughtException`s for production-deployed applications.* +```javascript + // Imports the Google Cloud client library + const ErrorReporting = require('@google-cloud/error-reporting'); -Note that uncaught exceptions are not reported by default because to do so would require adding a listener to the `uncaughtException` event. Adding such a listener without knowledge of other `uncaughtException` listeners can cause interference between the event handlers or prevent the process from terminating cleanly. As such, it is necessary for `uncaughtException`s to be reported manually. + // Instantiates a client + const errors = ErrorReporting(); -```js -var errors = require('@google-cloud/error-reporting')(); -process.on('uncaughtException', (e) => { - // Write the error to stderr. - console.error(e); - // Report that same error the Stackdriver Error Service - errors.report(e); -}); + // Reports a simple error + errors.report('Something broke!'); ``` -More information about uncaught exception handling in Node.js and what it means for your application can be found [here](https://nodejs.org/api/process.html#process_event_uncaughtexception). - -## Running on Google Cloud Platform - -All information in this section assumes that the items in the [Prerequisites](#prerequisites) section above have been completed. - -### Google App Engine Flexible environment - -If you are using [Google App Engine flexible environment](https://cloud.google.com/appengine/docs/flexible/), you do not have to do any additional configuration. - -### Google Compute Engine - -Your VM instances need to be created with the `https://www.googleapis.com/auth/cloud-platform` scope if created via the [gcloud](https://cloud.google.com/sdk) CLI or the Google Cloud Platform API, or by enabling at least one of the Stackdriver APIs if created through the browser-based console. - -If you already have VMs that were created without API access and do not wish to recreate it, you can follow the instructions for using a service account under [running elsewhere](#running-elsewhere). - -### Google Container Engine - -As with Compute Engine, Container Engine nodes need to be created with the `https://www.googleapis.com/auth/cloud-platform` scope, which is configurable during cluster creation: -* If the cluster is being created with the `gcloud` CLI, pass the scope to the command with the `--scopes` command (multiple scopes can be [delimited with a comma](https://cloud.google.com/sdk/gcloud/reference/container/clusters/create)): - - ```sh - gcloud container clusters create example-cluster-name --scopes https://www.googleapis.com/auth/cloud-platform - ``` - -* If the cluster is being created through the Cloud Console UI, ensure that the "Cloud Platform" project access is set to "Enabled" (it's disabled by default). +## Samples -Alternatively, you can also follow the instructions for using a service account under [running elsewhere](#running-elsewhere). It's recommended that you store the service account credentials as [Kubernetes Secret](http://kubernetes.io/v1.1/docs/user-guide/secrets.html). +Samples are in the [`samples/`](https://github.com/googleapis/nodejs-error-reporting/blob/master/samples) directory. The samples' `README.md` +has instructions for running the samples. -## Running Elsewhere +| Sample | Source Code | +| --------------------------- | --------------------------------- | +| Examples | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/master/samples/snippets.js) | -If your application is running outside of Google Cloud Platform, such as locally, on-premise, or on another cloud provider, you can still use Stackdriver Errors either with locally-stored credentials or with an API Key. +The [Error Reporting Node.js Client API Reference][client-docs] documentation +also contains samples. -### Using Locally-Stored Credentials +## Versioning -1. You will need to specify your project ID when starting the errors agent. +This library follows [Semantic Versioning](http://semver.org/). - ```sh - GCLOUD_PROJECT=particular-future-12345 node myapp.js - ``` +This library is considered to be in **beta**. This means it is expected to be +mostly stable while we work toward a general availability release; however, +complete stability is not guaranteed. We will address issues and requests +against beta libraries with a high priority. -1. You need to provide service account credentials to your application by using one of the three options below: - * The recommended way is via [Application Default Credentials][app-default-credentials]. - 1. [Create a new JSON service account key][service-account]. - 1. Copy the key somewhere your application can access it. Be sure not to expose the key publicly. - 1. Set the environment variable `GOOGLE_APPLICATION_CREDENTIALS` to the full path to the key. The Error Reporting library will automatically look for this environment variable. - * If you are running your application on a development machine or test environment where you are using the [`gcloud` command line tools][gcloud-sdk], and are logged using `gcloud beta auth application-default login`, you already have sufficient credentials, and a service account key is not required. - * Alternatively, you may set the `keyFilename` or `credentials` configuration field to the full path or contents to the key file, respectively. Setting either of these fields will override either setting `GOOGLE_APPLICATION_CREDENTIALS` or logging in using `gcloud`. For example: +More Information: [Google Cloud Platform Launch Stages][launch_stages] - ```js - // Require and start the agent with configuration options - var errors = require('@google-cloud/error-reporting')({ - // The path to your key file: - keyFilename: '/path/to/keyfile.json', +[launch_stages]: https://cloud.google.com/terms/launch-stages - // Or the contents of the key file: - credentials: require('./path/to/keyfile.json') - }); - ``` +## Contributing -When running on Google Cloud Platform, we handle these for you automatically. - -### Using an API Key - -You may use an API key in lieu of locally-stored credentials. Please see [this document][api-key] on how to set up an API key if you do not already have one. - -Once you have obtained an API key, you may provide it as part of the Error Reporting instance configuration: - -```js -var errors = require('@google-cloud/error-reporting')({ - projectId: '{your project ID}', - key: '{your api key}' -}); -``` - -If a key is provided, the module will not attempt to authenticate using the methods associated with locally-stored credentials as mentioned in the previous section. - -We recommend using a file, environment variable, or another mechanism to store the API key rather than hard-coding it into your application's source. - -**Note:** The Error Reporting instance will check if the provided API key is invalid shortly after it is instantiated. If the key is invalid, an error-level message will be logged to stdout. - -## Configuration - -The following code snippet lists all available configuration options. All configuration options are optional. - -```js -var errors = require('@google-cloud/error-reporting')({ - projectId: 'my-project-id', - keyFilename: '/path/to/keyfile.json', - credentials: require('./path/to/keyfile.json'), - // if true library will attempt to report errors to the service regardless - // of the value of NODE_ENV - // defaults to false - ignoreEnvironmentCheck: false, - // determines the logging level internal to the library; levels range 0-5 - // where 0 indicates no logs should be reported and 5 indicates all logs - // should be reported - // defaults to 2 (warnings) - logLevel: 2, - // determines whether or not unhandled rejections are reported to the - // error-reporting console - reportUnhandledRejections: true, - serviceContext: { - service: 'my-service', - version: 'my-service-version' - } -}); -``` - -## Examples - -### Reporting Manually - -```js -var errors = require('@google-cloud/error-reporting')(); - -// Use the error message builder to customize all fields ... -var errorEvt = errors.event() - .setMessage('My error message') - .setUser('root@nexus'); -errors.report(errorEvt, () => console.log('done!')); - -// or just use a regular error ... -errors.report(new Error('My error message'), () => console.log('done!')); - -// or one can even just use a string. -errors.report('My error message'); -``` +Contributions welcome! See the [Contributing Guide](.github/CONTRIBUTING.md). -The stack trace associated with an error can be viewed in the error reporting console. -* If the `errors.report` method is given an `ErrorMessage` object built using the `errors.event` method, the stack trace at the point where the error event was constructed will be used. -* If the `errors.report` method is given an `Error` object, the stack trace where the error was instantiated will be used. -* If the `errors.report` method is given a string, the stack trace at the point where `errors.report` is invoked will be used. +## License -### Using Express +Apache Version 2.0 -```js -var express = require('express'); -var errors = require('@google-cloud/error-reporting')(); - -var app = express(); - -app.get('/error', (req, res, next) => { - res.send('Something broke!'); - next(new Error('Custom error message')); -}); - -app.get('/exception', () => { - JSON.parse('{\"malformedJson\": true'); -}); - -// Note that express error handling middleware should be attached after all -// the other routes and use() calls. See [express docs][express-error-docs]. -app.use(errors.express); - -app.listen(3000); -``` - -### Using Hapi - -```js -var hapi = require('hapi'); -var errors = require('@google-cloud/error-reporting')(); - -var server = new hapi.Server(); -server.connection({ port: 3000 }); -server.start(); - -server.route({ - method: 'GET', - path: '/error', - handler: (request, reply) => { - reply('Something broke!'); - throw new Error('Custom error message'); - } -}); - -server.register(errors.hapi); -``` - -### Using Koa - -```js -var Koa = require('koa'); -var errors = require('@google-cloud/error-reporting')(); - -var app = new Koa(); - -app.use(errors.koa); - -app.use(function *(next) { - //This will set status and message - this.throw('Error Message', 500); -}); - -// response -app.use(function *(){ - this.body = 'Hello World'; -}); - -app.listen(3000); -``` - -### Using Restify - -```js -var restify = require('restify'); -var errors = require('@google-cloud/error-reporting')(); - -function respond(req, res, next) { - next(new Error('this is a restify error')); -} - -var server = restify.createServer(); - -server.use(errors.restify(server)); -server.get('/hello/:name', respond); -server.head('/hello/:name', respond); - -server.listen(3000); -``` +See [LICENSE](LICENSE) -[api-key]: https://support.google.com/cloud/answer/6158862 -[app-default-credentials]: https://developers.google.com/identity/protocols/application-default-credentials -[express-error-docs]: https://expressjs.com/en/guide/error-handling.html -[gcloud-sdk]: https://cloud.google.com/sdk/gcloud/ -[logging-bunyan]: https://www.npmjs.com/package/@google-cloud/logging-bunyan -[logging-winston]: https://www.npmjs.com/package/@google-cloud/logging-winston -[npm-image]: https://badge.fury.io/js/%40google-cloud%2Ferror-reporting.svg -[npm-url]: https://npmjs.org/package/@google-cloud/error-reporting -[service-account]: https://console.developers.google.com/apis/credentials/serviceaccountkey -[snyk-image]: https://snyk.io/test/npm/@google-cloud/error-reporting/badge.svg -[snyk-url]: https://snyk.io/test/npm/@google-cloud/error-reporting +[client-docs]: https://cloud.google.com/nodejs/docs/reference/error-reporting/latest/ +[product-docs]: https://cloud.google.com/error-reporting/docs/ diff --git a/handwritten/error-reporting/README_OLD.md b/handwritten/error-reporting/README_OLD.md new file mode 100644 index 00000000000..e8529aa573e --- /dev/null +++ b/handwritten/error-reporting/README_OLD.md @@ -0,0 +1,320 @@ +# Stackdriver Error Reporting for Node.js + +[![NPM Version][npm-image]][npm-url] +[![Known Vulnerabilities][snyk-image]][snyk-url] + +> **Beta** *This is a Beta release of the Stackdriver Error Reporting libraries for Node.js. These libraries might be changed in backward-incompatible ways and are not subject to any SLA or deprecation policy.* + +This module provides Stackdriver Error Reporting support for Node.js applications. +[Stackdriver Error Reporting](https://cloud.google.com/error-reporting/) is a feature of +Google Cloud Platform that allows in-depth monitoring and viewing of errors reported by +applications running in almost any environment. + +![Stackdriver Error Reporting overview](doc/images/errors-overview.png) + +Here's an introductory video that provides some more details: + +[![Learn about Error Reporting in Stackdriver](https://img.youtube.com/vi/cVpWVD75Hs8/0.jpg)](https://www.youtube.com/watch?v=cVpWVD75Hs8) + +Note that [@google-cloud/logging-winston][logging-winston] and +[@google-cloud/logging-bunyan][logging-bunyan] automatically integrate with the +Error Reporting service for Error objects logged at severity `error` or higher, +for applications running on Google Cloud Platform. If you are already using +Winston or Bunyan in your application, and don't need direct access/control of +error reporting, you may want to check those modules as well. + +## Prerequisites + +1. Your application needs to use Node.js version 4.x or greater. +1. You need a [Google Cloud project](https://console.cloud.google.com). Your application can run anywhere, but errors are reported to a particular project. +1. [Enable the Stackdriver Error Reporting API](https://console.cloud.google.com/apis/api/clouderrorreporting.googleapis.com/overview) for your project. + +**Note:** The module will only send errors when the `NODE_ENV` environment variable is +set to `production` or the `ignoreEnvironmentCheck` property given in the +runtime configuration object is set to `true`. See the [Configuration](#configuration) section for more details. + +## Quick Start + +1. **Install the module:** + + In your project, on the command line: + +```sh + # Install through npm while saving to the local 'package.json' + npm install --save @google-cloud/error-reporting +``` + +2. **Require the module:** + +```js +// Require the library and initialize the error handler +var errors = require('@google-cloud/error-reporting')({ + serviceContext: {service: 'my-service'} // not needed on Google Cloud +}); + +// Report an error to the Stackdriver Error Reporting API +errors.report(new Error('Something broke!')); + +// We also provide error handling middleware for express, hapi, restify & koa. +// See sections below. +``` + +3. **View reported errors:** + + Open Stackdriver Error Reporting at https://console.cloud.google.com/errors to view the reported errors. + +## Unhandled Rejections + +Unhandled Rejections are not reported by default. The reporting of unhandled rejections can be enabled using the `reportUnhandledRejections` configuration option. See the [Configuration](#configuration) section for more details. + +If unhandled rejections are set to be reported, then, when an unhandled rejection occurs, a message is printed to standard out indicated that an unhandled rejection had occurred and is being reported, and the value causing the rejection is reported to the error-reporting console. + +## Catching and Reporting Application-wide Uncaught Errors + +Uncaught exceptions are not reported by default. *It is recommended to process `uncaughtException`s for production-deployed applications.* + +Note that uncaught exceptions are not reported by default because to do so would require adding a listener to the `uncaughtException` event. Adding such a listener without knowledge of other `uncaughtException` listeners can cause interference between the event handlers or prevent the process from terminating cleanly. As such, it is necessary for `uncaughtException`s to be reported manually. + +```js +var errors = require('@google-cloud/error-reporting')(); +process.on('uncaughtException', (e) => { + // Write the error to stderr. + console.error(e); + // Report that same error the Stackdriver Error Service + errors.report(e); +}); +``` + +More information about uncaught exception handling in Node.js and what it means for your application can be found [here](https://nodejs.org/api/process.html#process_event_uncaughtexception). + +## Running on Google Cloud Platform + +All information in this section assumes that the items in the [Prerequisites](#prerequisites) section above have been completed. + +### Google App Engine Flexible environment + +If you are using [Google App Engine flexible environment](https://cloud.google.com/appengine/docs/flexible/), you do not have to do any additional configuration. + +### Google Compute Engine + +Your VM instances need to be created with the `https://www.googleapis.com/auth/cloud-platform` scope if created via the [gcloud](https://cloud.google.com/sdk) CLI or the Google Cloud Platform API, or by enabling at least one of the Stackdriver APIs if created through the browser-based console. + +If you already have VMs that were created without API access and do not wish to recreate it, you can follow the instructions for using a service account under [running elsewhere](#running-elsewhere). + +### Google Container Engine + +As with Compute Engine, Container Engine nodes need to be created with the `https://www.googleapis.com/auth/cloud-platform` scope, which is configurable during cluster creation: +* If the cluster is being created with the `gcloud` CLI, pass the scope to the command with the `--scopes` command (multiple scopes can be [delimited with a comma](https://cloud.google.com/sdk/gcloud/reference/container/clusters/create)): + + ```sh + gcloud container clusters create example-cluster-name --scopes https://www.googleapis.com/auth/cloud-platform + ``` + +* If the cluster is being created through the Cloud Console UI, ensure that the "Cloud Platform" project access is set to "Enabled" (it's disabled by default). + +Alternatively, you can also follow the instructions for using a service account under [running elsewhere](#running-elsewhere). It's recommended that you store the service account credentials as [Kubernetes Secret](http://kubernetes.io/v1.1/docs/user-guide/secrets.html). + +## Running Elsewhere + +If your application is running outside of Google Cloud Platform, such as locally, on-premise, or on another cloud provider, you can still use Stackdriver Errors either with locally-stored credentials or with an API Key. + +### Using Locally-Stored Credentials + +1. You will need to specify your project ID when starting the errors agent. + + ```sh + GCLOUD_PROJECT=particular-future-12345 node myapp.js + ``` + +1. You need to provide service account credentials to your application by using one of the three options below: + * The recommended way is via [Application Default Credentials][app-default-credentials]. + 1. [Create a new JSON service account key][service-account]. + 1. Copy the key somewhere your application can access it. Be sure not to expose the key publicly. + 1. Set the environment variable `GOOGLE_APPLICATION_CREDENTIALS` to the full path to the key. The Error Reporting library will automatically look for this environment variable. + * If you are running your application on a development machine or test environment where you are using the [`gcloud` command line tools][gcloud-sdk], and are logged using `gcloud beta auth application-default login`, you already have sufficient credentials, and a service account key is not required. + * Alternatively, you may set the `keyFilename` or `credentials` configuration field to the full path or contents to the key file, respectively. Setting either of these fields will override either setting `GOOGLE_APPLICATION_CREDENTIALS` or logging in using `gcloud`. For example: + + ```js + // Require and start the agent with configuration options + var errors = require('@google-cloud/error-reporting')({ + // The path to your key file: + keyFilename: '/path/to/keyfile.json', + + // Or the contents of the key file: + credentials: require('./path/to/keyfile.json') + }); + ``` + +When running on Google Cloud Platform, we handle these for you automatically. + +### Using an API Key + +You may use an API key in lieu of locally-stored credentials. Please see [this document][api-key] on how to set up an API key if you do not already have one. + +Once you have obtained an API key, you may provide it as part of the Error Reporting instance configuration: + +```js +var errors = require('@google-cloud/error-reporting')({ + projectId: '{your project ID}', + key: '{your api key}' +}); +``` + +If a key is provided, the module will not attempt to authenticate using the methods associated with locally-stored credentials as mentioned in the previous section. + +We recommend using a file, environment variable, or another mechanism to store the API key rather than hard-coding it into your application's source. + +**Note:** The Error Reporting instance will check if the provided API key is invalid shortly after it is instantiated. If the key is invalid, an error-level message will be logged to stdout. + +## Configuration + +The following code snippet lists all available configuration options. All configuration options are optional. + +```js +var errors = require('@google-cloud/error-reporting')({ + projectId: 'my-project-id', + keyFilename: '/path/to/keyfile.json', + credentials: require('./path/to/keyfile.json'), + // if true library will attempt to report errors to the service regardless + // of the value of NODE_ENV + // defaults to false + ignoreEnvironmentCheck: false, + // determines the logging level internal to the library; levels range 0-5 + // where 0 indicates no logs should be reported and 5 indicates all logs + // should be reported + // defaults to 2 (warnings) + logLevel: 2, + // determines whether or not unhandled rejections are reported to the + // error-reporting console + reportUnhandledRejections: true, + serviceContext: { + service: 'my-service', + version: 'my-service-version' + } +}); +``` + +## Examples + +### Reporting Manually + +```js +var errors = require('@google-cloud/error-reporting')(); + +// Use the error message builder to customize all fields ... +var errorEvt = errors.event() + .setMessage('My error message') + .setUser('root@nexus'); +errors.report(errorEvt, () => console.log('done!')); + +// or just use a regular error ... +errors.report(new Error('My error message'), () => console.log('done!')); + +// or one can even just use a string. +errors.report('My error message'); +``` + +The stack trace associated with an error can be viewed in the error reporting console. +* If the `errors.report` method is given an `ErrorMessage` object built using the `errors.event` method, the stack trace at the point where the error event was constructed will be used. +* If the `errors.report` method is given an `Error` object, the stack trace where the error was instantiated will be used. +* If the `errors.report` method is given a string, the stack trace at the point where `errors.report` is invoked will be used. + +### Using Express + +```js +var express = require('express'); +var errors = require('@google-cloud/error-reporting')(); + +var app = express(); + +app.get('/error', (req, res, next) => { + res.send('Something broke!'); + next(new Error('Custom error message')); +}); + +app.get('/exception', () => { + JSON.parse('{\"malformedJson\": true'); +}); + +// Note that express error handling middleware should be attached after all +// the other routes and use() calls. See [express docs][express-error-docs]. +app.use(errors.express); + +app.listen(3000); +``` + +### Using Hapi + +```js +var hapi = require('hapi'); +var errors = require('@google-cloud/error-reporting')(); + +var server = new hapi.Server(); +server.connection({ port: 3000 }); +server.start(); + +server.route({ + method: 'GET', + path: '/error', + handler: (request, reply) => { + reply('Something broke!'); + throw new Error('Custom error message'); + } +}); + +server.register(errors.hapi); +``` + +### Using Koa + +```js +var Koa = require('koa'); +var errors = require('@google-cloud/error-reporting')(); + +var app = new Koa(); + +app.use(errors.koa); + +app.use(function *(next) { + //This will set status and message + this.throw('Error Message', 500); +}); + +// response +app.use(function *(){ + this.body = 'Hello World'; +}); + +app.listen(3000); +``` + +### Using Restify + +```js +var restify = require('restify'); +var errors = require('@google-cloud/error-reporting')(); + +function respond(req, res, next) { + next(new Error('this is a restify error')); +} + +var server = restify.createServer(); + +server.use(errors.restify(server)); +server.get('/hello/:name', respond); +server.head('/hello/:name', respond); + +server.listen(3000); +``` + +[api-key]: https://support.google.com/cloud/answer/6158862 +[app-default-credentials]: https://developers.google.com/identity/protocols/application-default-credentials +[express-error-docs]: https://expressjs.com/en/guide/error-handling.html +[gcloud-sdk]: https://cloud.google.com/sdk/gcloud/ +[logging-bunyan]: https://www.npmjs.com/package/@google-cloud/logging-bunyan +[logging-winston]: https://www.npmjs.com/package/@google-cloud/logging-winston +[npm-image]: https://badge.fury.io/js/%40google-cloud%2Ferror-reporting.svg +[npm-url]: https://npmjs.org/package/@google-cloud/error-reporting +[service-account]: https://console.developers.google.com/apis/credentials/serviceaccountkey +[snyk-image]: https://snyk.io/test/npm/@google-cloud/error-reporting/badge.svg +[snyk-url]: https://snyk.io/test/npm/@google-cloud/error-reporting diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 6998cfebd45..55ae16dfc17 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,23 +1,70 @@ { "name": "@google-cloud/error-reporting", "description": "Stackdriver Error Reporting Client Library for Node.js", + "version": "0.2.2", + "license": "Apache-2.0", + "author": "Google Inc.", + "engines": { + "node": ">=4.0" + }, + "repository": "googleapis/nodejs-error-reporting", "main": "./src/index.js", - "repository": "GoogleCloudPlatform/google-cloud-node", + "nyc": { + "exclude": [ + "./utils/fuzzer.js" + ] + }, + "files": [ + "src", + "utils", + "index.js" + ], + "contributors": [ + "Ace Nassri ", + "Ali Ijaz Sheikh ", + "Cristian Cavalli ", + "Dominic Kramer ", + "Eric Uldall ", + "Jason Dobry ", + "Kelvin Jin ", + "Luke Sneeringer ", + "Stephen Sawchuk ", + "Tomoaki Abe " + ], "scripts": { - "test": "nyc --exclude=\"fuzzer.js\" mocha ./test/unit/*.js ./test/unit/**/*.js", + "docs": "repo-tools exec -- jsdoc -c .jsdoc.js", + "generate-scaffolding": "repo-tools generate all && repo-tools generate lib_samples_readme -l samples/ --config ../.cloud-repo-tools.json", + "lint": "repo-tools lint --cmd eslint -- src/ samples/ system-test/ test/", + "prettier": "repo-tools exec -- prettier --write src/*.js src/*/*.js samples/*.js samples/*/*.js test/*.js test/*/*.js test/*/*/*.js system-test/*.js system-test/*/*.js", "system-test": "nyc --exclude=\"error-message.js\" mocha ./system-test/*.js", - "lint": "jshint -c ../../.jshintrc src system-test test utils && jscs -c ../../.jscsrc src system-test test utils", - "publish-module": "node ../../scripts/publish.js error-reporting" + "cover": "nyc --exclude=\"fuzzer.js\" --reporter=lcov mocha --require intelli-espower-loader ./test/unit/*.js ./test/unit/**/*.js && nyc report", + "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", + "test-no-cover": "repo-tools test run --cmd mocha -- ./test/unit/*.js ./test/unit/**/*.js --no-timeouts", + "test": "repo-tools test run --cmd npm -- run cover" + }, + "dependencies": { + "@google-cloud/common": "^0.15.1", + "extend": "^3.0.0", + "is": "^3.2.0", + "lodash.has": "^4.5.2" }, - "author": "Google Inc.", - "license": "Apache-2.0", "devDependencies": { + "@google-cloud/nodejs-repo-tools": "^2.0.11", + "async": "^2.6.0", "body-parser": "^1.15.1", + "codecov": "^3.0.0", + "eslint": "^4.9.0", + "eslint-config-prettier": "^2.6.0", + "eslint-plugin-node": "^5.2.1", + "eslint-plugin-prettier": "^2.3.1", "express": "^4.13.4", - "hapi": "^16.1.0", + "hapi": "^17.1.1", + "ink-docstrap": "^1.3.0", + "intelli-espower-loader": "^1.0.1", "jscs": "^3.0.7", + "jsdoc": "^3.5.5", "jshint": "^2.9.2", - "koa": "^1.2.0", + "koa": "^2.4.1", "lodash.assign": "^4.2.0", "lodash.foreach": "^4.5.0", "lodash.indexof": "^4.0.5", @@ -28,30 +75,12 @@ "lodash.pick": "^4.4.0", "lodash.random": "^3.2.0", "lodash.without": "^4.4.0", - "mocha": "^3.2.0", + "mocha": "^4.0.1", "nock": "^9.0.0", - "nyc": "^10.0.0", + "nyc": "^11.3.0", + "power-assert": "^1.4.4", + "prettier": "^1.7.4", "proxyquire": "^1.7.11", - "restify": "^4.1.0" - }, - "dependencies": { - "@google-cloud/common": "^0.13.0", - "extend": "^3.0.0", - "is": "^3.2.0", - "lodash.has": "^4.5.2" - }, - "nyc": { - "exclude": [ - "./utils/fuzzer.js" - ] - }, - "engines": { - "node": ">=4.0" - }, - "files": [ - "src", - "utils", - "index.js" - ], - "version": "0.2.2" + "restify": "^6.3.4" + } } diff --git a/handwritten/error-reporting/src/build-stack-trace.js b/handwritten/error-reporting/src/build-stack-trace.js index f90f56b7fc1..7172510a635 100644 --- a/handwritten/error-reporting/src/build-stack-trace.js +++ b/handwritten/error-reporting/src/build-stack-trace.js @@ -33,10 +33,17 @@ function buildStackTrace(message) { // The stack is located at `target.stack`. Error.captureStackTrace(target, buildStackTrace); var prefix = message ? message + '\n' : ''; - return prefix + target.stack.split('\n').slice(1).filter(function(line) { - // Filter out all frames that are specific to the error-reporting library - return !line || line.indexOf(SRC_ROOT) === -1; - }).join('\n'); + return ( + prefix + + target.stack + .split('\n') + .slice(1) + .filter(function(line) { + // Filter out all frames that are specific to the error-reporting library + return !line || line.indexOf(SRC_ROOT) === -1; + }) + .join('\n') + ); } module.exports = buildStackTrace; diff --git a/handwritten/error-reporting/src/classes/error-message.js b/handwritten/error-reporting/src/classes/error-message.js index 9683c87f08d..b7c38c902a7 100644 --- a/handwritten/error-reporting/src/classes/error-message.js +++ b/handwritten/error-reporting/src/classes/error-message.js @@ -65,8 +65,7 @@ var isObject = is.object; * the report site */ function ErrorMessage() { - - this.eventTime = (new Date()).toISOString(); + this.eventTime = new Date().toISOString(); this.serviceContext = {service: 'node', version: undefined}; this.message = ''; this.context = { @@ -76,10 +75,10 @@ function ErrorMessage() { userAgent: '', referrer: '', responseStatusCode: 0, - remoteIp: '' + remoteIp: '', }, user: '', - reportLocation: {filePath: '', lineNumber: 0, functionName: ''} + reportLocation: {filePath: '', lineNumber: 0, functionName: ''}, }; } @@ -91,8 +90,7 @@ function ErrorMessage() { * @returns {this} - returns the instance for chaining */ ErrorMessage.prototype.setEventTimeToNow = function() { - - this.eventTime = (new Date()).toISOString(); + this.eventTime = new Date().toISOString(); return this; }; @@ -108,7 +106,6 @@ ErrorMessage.prototype.setEventTimeToNow = function() { * @returns {this} - returns the instance for chaining */ ErrorMessage.prototype.setServiceContext = function(service, version) { - this.serviceContext.service = isString(service) ? service : 'node'; this.serviceContext.version = isString(version) ? version : undefined; @@ -122,7 +119,6 @@ ErrorMessage.prototype.setServiceContext = function(service, version) { * @returns {this} - returns the instance for chaining */ ErrorMessage.prototype.setMessage = function(message) { - this.message = isString(message) ? message : ''; return this; @@ -136,7 +132,6 @@ ErrorMessage.prototype.setMessage = function(message) { * @returns {this} - returns the instance for chaining */ ErrorMessage.prototype.setHttpMethod = function(method) { - this.context.httpRequest.method = isString(method) ? method : ''; return this; @@ -149,7 +144,6 @@ ErrorMessage.prototype.setHttpMethod = function(method) { * @returns {this} - returns the instance for chaining */ ErrorMessage.prototype.setUrl = function(url) { - this.context.httpRequest.url = isString(url) ? url : ''; return this; @@ -162,7 +156,6 @@ ErrorMessage.prototype.setUrl = function(url) { * @returns {this} - returns the instance for chaining */ ErrorMessage.prototype.setUserAgent = function(userAgent) { - this.context.httpRequest.userAgent = isString(userAgent) ? userAgent : ''; return this; @@ -175,7 +168,6 @@ ErrorMessage.prototype.setUserAgent = function(userAgent) { * @returns {this} - returns the instance for chaining */ ErrorMessage.prototype.setReferrer = function(referrer) { - this.context.httpRequest.referrer = isString(referrer) ? referrer : ''; return this; @@ -188,9 +180,9 @@ ErrorMessage.prototype.setReferrer = function(referrer) { * @returns {this} - returns the instance for chaining */ ErrorMessage.prototype.setResponseStatusCode = function(responseStatusCode) { - - this.context.httpRequest.responseStatusCode = - isNumber(responseStatusCode) ? responseStatusCode : 0; + this.context.httpRequest.responseStatusCode = isNumber(responseStatusCode) + ? responseStatusCode + : 0; return this; }; @@ -202,7 +194,6 @@ ErrorMessage.prototype.setResponseStatusCode = function(responseStatusCode) { * @returns {this} - returns the instance for chaining */ ErrorMessage.prototype.setRemoteIp = function(remoteIp) { - this.context.httpRequest.remoteIp = isString(remoteIp) ? remoteIp : ''; return this; @@ -215,7 +206,6 @@ ErrorMessage.prototype.setRemoteIp = function(remoteIp) { * @returns {this} - returns the instance for chaining */ ErrorMessage.prototype.setUser = function(user) { - this.context.user = isString(user) ? user : ''; return this; @@ -228,7 +218,6 @@ ErrorMessage.prototype.setUser = function(user) { * @returns {this} - returns the instance for chaining */ ErrorMessage.prototype.setFilePath = function(filePath) { - this.context.reportLocation.filePath = isString(filePath) ? filePath : ''; return this; @@ -241,9 +230,9 @@ ErrorMessage.prototype.setFilePath = function(filePath) { * @returns {this} - returns the instance for chaining */ ErrorMessage.prototype.setLineNumber = function(lineNumber) { - - this.context.reportLocation.lineNumber = - isNumber(lineNumber) ? lineNumber : 0; + this.context.reportLocation.lineNumber = isNumber(lineNumber) + ? lineNumber + : 0; return this; }; @@ -255,9 +244,9 @@ ErrorMessage.prototype.setLineNumber = function(lineNumber) { * @returns {this} - returns the instance for chaining */ ErrorMessage.prototype.setFunctionName = function(functionName) { - - this.context.reportLocation.functionName = - isString(functionName) ? functionName : ''; + this.context.reportLocation.functionName = isString(functionName) + ? functionName + : ''; return this; }; @@ -271,19 +260,18 @@ ErrorMessage.prototype.setFunctionName = function(functionName) { * @returns {this} - returns the instance for chaining */ ErrorMessage.prototype.consumeRequestInformation = function( - requestInformation) { - + requestInformation +) { if (!isObject(requestInformation)) { - return this; } this.setHttpMethod(requestInformation.method) - .setUrl(requestInformation.url) - .setUserAgent(requestInformation.userAgent) - .setReferrer(requestInformation.referrer) - .setResponseStatusCode(requestInformation.statusCode) - .setRemoteIp(requestInformation.remoteAddress); + .setUrl(requestInformation.url) + .setUserAgent(requestInformation.userAgent) + .setReferrer(requestInformation.referrer) + .setResponseStatusCode(requestInformation.statusCode) + .setRemoteIp(requestInformation.remoteAddress); return this; }; diff --git a/handwritten/error-reporting/src/classes/request-information-container.js b/handwritten/error-reporting/src/classes/request-information-container.js index 70c76b846d9..19784312977 100644 --- a/handwritten/error-reporting/src/classes/request-information-container.js +++ b/handwritten/error-reporting/src/classes/request-information-container.js @@ -40,7 +40,6 @@ var isNumber = is.number; * @property {Number} statusCode - The response status code */ function RequestInformationContainer() { - this.url = ''; this.method = ''; this.referrer = ''; @@ -56,7 +55,6 @@ function RequestInformationContainer() { * @returns {this} - returns the instance for chaining */ RequestInformationContainer.prototype.setUrl = function(url) { - this.url = isString(url) ? url : ''; return this; @@ -69,7 +67,6 @@ RequestInformationContainer.prototype.setUrl = function(url) { * @returns {this} - returns the instance for chaining */ RequestInformationContainer.prototype.setMethod = function(method) { - this.method = isString(method) ? method : ''; return this; @@ -82,7 +79,6 @@ RequestInformationContainer.prototype.setMethod = function(method) { * @returns {this} - returns the instance for chaining */ RequestInformationContainer.prototype.setReferrer = function(referrer) { - this.referrer = isString(referrer) ? referrer : ''; return this; @@ -95,7 +91,6 @@ RequestInformationContainer.prototype.setReferrer = function(referrer) { * @returns {this} - returns the instance for chaining */ RequestInformationContainer.prototype.setUserAgent = function(userAgent) { - this.userAgent = isString(userAgent) ? userAgent : ''; return this; @@ -108,7 +103,6 @@ RequestInformationContainer.prototype.setUserAgent = function(userAgent) { * @returns {this} - returns the instance for chaining */ RequestInformationContainer.prototype.setRemoteAddress = function(remoteIp) { - this.remoteAddress = isString(remoteIp) ? remoteIp : ''; return this; @@ -121,7 +115,6 @@ RequestInformationContainer.prototype.setRemoteAddress = function(remoteIp) { * @returns {this} - returns the instance for chaining */ RequestInformationContainer.prototype.setStatusCode = function(statusCode) { - this.statusCode = isNumber(statusCode) ? statusCode : 0; return this; diff --git a/handwritten/error-reporting/src/configuration.js b/handwritten/error-reporting/src/configuration.js index 33be4fc5f99..eba96820c4c 100644 --- a/handwritten/error-reporting/src/configuration.js +++ b/handwritten/error-reporting/src/configuration.js @@ -207,15 +207,13 @@ Configuration.prototype._checkLocalServiceContext = function() { if (isObject(this._givenConfiguration.serviceContext)) { if (isString(this._givenConfiguration.serviceContext.service)) { - this._serviceContext.service = - this._givenConfiguration.serviceContext.service; + this._serviceContext.service = this._givenConfiguration.serviceContext.service; } else if (has(this._givenConfiguration.serviceContext, 'service')) { throw new Error('config.serviceContext.service must be a string'); } if (isString(this._givenConfiguration.serviceContext.version)) { - this._serviceContext.version = - this._givenConfiguration.serviceContext.version; + this._serviceContext.version = this._givenConfiguration.serviceContext.version; } else if (has(this._givenConfiguration.serviceContext, 'version')) { throw new Error('config.serviceContext.version must be a string'); } @@ -236,19 +234,23 @@ Configuration.prototype._checkLocalServiceContext = function() { Configuration.prototype._gatherLocalConfiguration = function() { if (this._givenConfiguration.ignoreEnvironmentCheck === true) { this._shouldReportErrorsToAPI = true; - } else if (has(this._givenConfiguration, 'ignoreEnvironmentCheck') && - !isBoolean(this._givenConfiguration.ignoreEnvironmentCheck)) { + } else if ( + has(this._givenConfiguration, 'ignoreEnvironmentCheck') && + !isBoolean(this._givenConfiguration.ignoreEnvironmentCheck) + ) { throw new Error('config.ignoreEnvironmentCheck must be a boolean'); } else { this._shouldReportErrorsToAPI = env.NODE_ENV === 'production'; } if (!this._shouldReportErrorsToAPI) { - this._logger.warn([ - 'Stackdriver error reporting client has not been configured to send', - 'errors, please check the NODE_ENV environment variable and make sure it', - 'is set to "production" or the ignoreEnvironmentCheck property is set to', - 'true in the runtime configuration object' - ].join(' ')); + this._logger.warn( + [ + 'Stackdriver error reporting client has not been configured to send', + 'errors, please check the NODE_ENV environment variable and make sure it', + 'is set to "production" or the ignoreEnvironmentCheck property is set to', + 'true in the runtime configuration object', + ].join(' ') + ); } if (isString(this._givenConfiguration.key)) { this._key = this._givenConfiguration.key; @@ -266,8 +268,7 @@ Configuration.prototype._gatherLocalConfiguration = function() { throw new Error('config.credentials must be a valid credentials object'); } if (isBoolean(this._givenConfiguration.reportUnhandledRejections)) { - this._reportUnhandledRejections = - this._givenConfiguration.reportUnhandledRejections; + this._reportUnhandledRejections = this._givenConfiguration.reportUnhandledRejections; } else if (has(this._givenConfiguration, 'reportUnhandledRejections')) { throw new Error('config.reportUnhandledRejections must be a boolean'); } diff --git a/handwritten/error-reporting/src/google-apis/auth-client.js b/handwritten/error-reporting/src/google-apis/auth-client.js index c5c99596e17..94f9eaf821a 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.js +++ b/handwritten/error-reporting/src/google-apis/auth-client.js @@ -78,7 +78,7 @@ class RequestHandler extends common.Service { * @returns {Null} * @static */ - static noOp(err, response, body) { + static noOp() { return null; } /** @@ -90,43 +90,57 @@ class RequestHandler extends common.Service { var pid = config.getProjectId(); // If an API key is provided, do not try to authenticate. var tryAuthenticate = !config.getKey(); - super({ - packageJson: pkg, - baseUrl: API, - scopes: SCOPES, - projectId: pid !== null ? pid : undefined, - projectIdRequired: true, - customEndpoint: !tryAuthenticate - }, config); + super( + { + packageJson: pkg, + baseUrl: API, + scopes: SCOPES, + projectId: pid !== null ? pid : undefined, + projectIdRequired: true, + customEndpoint: !tryAuthenticate, + }, + config + ); this._config = config; this._logger = logger; var that = this; if (tryAuthenticate) { - this.authClient.getToken(function(err, token) { + this.authClient.getToken(function(err) { if (err) { - that._logger.error([ - 'Unable to find credential information on instance. This library', - 'will be unable to communicate with the Stackdriver API to save', - 'errors. Message: ' + err.message - ].join(' ')); + that._logger.error( + [ + 'Unable to find credential information on instance. This library', + 'will be unable to communicate with the Stackdriver API to save', + 'errors. Message: ' + err.message, + ].join(' ') + ); } }); } else { - this.request({ - uri: 'events:report', - qs: RequestHandler.manufactureQueryString(this._config.getKey()), - method: 'POST', - json: {} - }, (err, body, response) => { - if (err && err.message !== 'Message cannot be empty.' && - response.statusCode === 400) { - this._logger.error([ - 'Encountered an error while attempting to validate the provided', - 'API key' - ].join(' '), err); + this.request( + { + uri: 'events:report', + qs: RequestHandler.manufactureQueryString(this._config.getKey()), + method: 'POST', + json: {}, + }, + (err, body, response) => { + if ( + err && + err.message !== 'Message cannot be empty.' && + response && response.statusCode === 400 + ) { + this._logger.error( + [ + 'Encountered an error while attempting to validate the provided', + 'API key', + ].join(' '), + err + ); + } } - }); + ); that._logger.info('API key provided; skipping OAuth2 token request.'); } } @@ -143,30 +157,41 @@ class RequestHandler extends common.Service { * @instance */ sendError(errorMessage, userCb) { - var self = this; var cb = isFunction(userCb) ? userCb : RequestHandler.noOp; if (this._config.getShouldReportErrorsToAPI()) { - this.request({ - uri: 'events:report', - qs: RequestHandler.manufactureQueryString(this._config.getKey()), - method: 'POST', - json: errorMessage - }, (err, body, response) => { - if (err) { - this._logger.error([ - 'Encountered an error while attempting to transmit an error to', - 'the Stackdriver Error Reporting API.' - ].join(' '), err); + this.request( + { + uri: 'events:report', + qs: RequestHandler.manufactureQueryString(this._config.getKey()), + method: 'POST', + json: errorMessage, + }, + (err, body, response) => { + if (err) { + this._logger.error( + [ + 'Encountered an error while attempting to transmit an error to', + 'the Stackdriver Error Reporting API.', + ].join(' '), + err + ); + } + cb(err, response, body); } - cb(err, response, body); - }); + ); } else { - cb(new Error([ - 'Stackdriver error reporting client has not been configured to send', - 'errors, please check the NODE_ENV environment variable and make sure', - 'it is set to "production" or set the ignoreEnvironmentCheck property', - 'to true in the runtime configuration object' - ].join(' ')), null, null); + cb( + new Error( + [ + 'Stackdriver error reporting client has not been configured to send', + 'errors, please check the NODE_ENV environment variable and make sure', + 'it is set to "production" or set the ignoreEnvironmentCheck property', + 'to true in the runtime configuration object', + ].join(' ') + ), + null, + null + ); } } } diff --git a/handwritten/error-reporting/src/index.js b/handwritten/error-reporting/src/index.js index 3fec7a6e052..3d8ab98c735 100644 --- a/handwritten/error-reporting/src/index.js +++ b/handwritten/error-reporting/src/index.js @@ -158,10 +158,13 @@ function Errors(initConfiguration) { if (this._config.getReportUnhandledRejections()) { var that = this; process.on('unhandledRejection', function(reason) { - console.log('UnhandledPromiseRejectionWarning: ' + - 'Unhandled promise rejection: ' + reason + - '. This rejection has been reported to the ' + - 'Google Cloud Platform error-reporting console.'); + that._logger.warn( + 'UnhandledPromiseRejectionWarning: ' + + 'Unhandled promise rejection: ' + + reason + + '. This rejection has been reported to the ' + + 'Google Cloud Platform error-reporting console.' + ); that.report(reason); }); } diff --git a/handwritten/error-reporting/src/interfaces/express.js b/handwritten/error-reporting/src/interfaces/express.js index 4a1df34366e..5327a5c940e 100644 --- a/handwritten/error-reporting/src/interfaces/express.js +++ b/handwritten/error-reporting/src/interfaces/express.js @@ -19,8 +19,7 @@ var is = require('is'); var isObject = is.object; var isFunction = is.fn; var ErrorMessage = require('../classes/error-message.js'); -var expressRequestInformationExtractor = - require('../request-extractors/express.js'); +var expressRequestInformationExtractor = require('../request-extractors/express.js'); var populateErrorMessage = require('../populate-error-message.js'); /** @@ -54,9 +53,8 @@ function makeExpressHandler(client, config) { } var em = new ErrorMessage() - .consumeRequestInformation( - expressRequestInformationExtractor(req, res)) - .setServiceContext(ctxService, ctxVersion); + .consumeRequestInformation(expressRequestInformationExtractor(req, res)) + .setServiceContext(ctxService, ctxVersion); populateErrorMessage(err, em); diff --git a/handwritten/error-reporting/src/interfaces/hapi.js b/handwritten/error-reporting/src/interfaces/hapi.js index de904d08158..1c85add4d82 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.js +++ b/handwritten/error-reporting/src/interfaces/hapi.js @@ -43,15 +43,14 @@ function hapiErrorHandler(req, err, config) { } var em = new ErrorMessage() - .consumeRequestInformation(hapiRequestInformationExtractor(req)) - .setServiceContext(service, version); + .consumeRequestInformation(hapiRequestInformationExtractor(req)) + .setServiceContext(service, version); populateErrorMessage(err, em); return em; } - /** * Creates a Hapi plugin object which can be used to handle errors in Hapi. * @param {AuthClient} client - an inited auth client instance @@ -60,7 +59,6 @@ function hapiErrorHandler(req, err, config) { * @returns {Object} - the actual Hapi plugin */ function makeHapiPlugin(client, config) { - /** * The register function serves to attach the hapiErrorHandler to specific * points in the hapi request-response lifecycle. Namely: it attaches to the @@ -85,11 +83,16 @@ function makeHapiPlugin(client, config) { if (isFunction(server.ext)) { server.ext('onPreResponse', function(request, reply) { - if (isObject(request) && isObject(request.response) && - request.response.isBoom) { - var em = hapiErrorHandler(request, - new Error(request.response.message), - config); + if ( + isObject(request) && + isObject(request.response) && + request.response.isBoom + ) { + var em = hapiErrorHandler( + request, + new Error(request.response.message), + config + ); client.sendError(em); } @@ -109,7 +112,7 @@ function makeHapiPlugin(client, config) { hapiPlugin.register.attributes = { name: packageJson.name, - version: packageJson.version + version: packageJson.version, }; return hapiPlugin; diff --git a/handwritten/error-reporting/src/interfaces/koa.js b/handwritten/error-reporting/src/interfaces/koa.js index 8d9357a6697..69a02b5e51c 100644 --- a/handwritten/error-reporting/src/interfaces/koa.js +++ b/handwritten/error-reporting/src/interfaces/koa.js @@ -32,7 +32,6 @@ var populateErrorMessage = require('../populate-error-message.js'); * request handlers. */ function koaErrorHandler(client, config) { - /** * The actual error handler for the Koa plugin attempts to yield the results * of downstream request handlers and will attempt to catch errors emitted by @@ -40,18 +39,17 @@ function koaErrorHandler(client, config) { * @param {Function} next - the result of the request handlers to yield * @returns {Undefined} does not return anything */ - return function *(next) { + return function*(next) { var svc = config.getServiceContext(); try { - yield next; } catch (err) { var em = new ErrorMessage() - .consumeRequestInformation( - koaRequestInformationExtractor(this.request, this.response)) - .setServiceContext(svc.service, - svc.version); + .consumeRequestInformation( + koaRequestInformationExtractor(this.request, this.response) + ) + .setServiceContext(svc.service, svc.version); populateErrorMessage(err, em); diff --git a/handwritten/error-reporting/src/interfaces/manual.js b/handwritten/error-reporting/src/interfaces/manual.js index 4e85e247e2a..a83530e5063 100644 --- a/handwritten/error-reporting/src/interfaces/manual.js +++ b/handwritten/error-reporting/src/interfaces/manual.js @@ -20,8 +20,7 @@ var isString = is.string; var isObject = is.object; var isFunction = is.fn; var ErrorMessage = require('../classes/error-message.js'); -var manualRequestInformationExtractor = - require('../request-extractors/manual.js'); +var manualRequestInformationExtractor = require('../request-extractors/manual.js'); var populateErrorMessage = require('../populate-error-message.js'); /** @@ -86,16 +85,21 @@ function handlerSetup(client, config, logger) { // will not accept the ErrorMessage if it has additional properties. delete err._autoGeneratedStackTrace; } else { - logger.warn('Encountered a manually constructed error with message \"'+ - err.message + '\" but without a construction site ' + - 'stack trace. This error might not be visible in the ' + - 'error reporting console.'); + logger.warn( + 'Encountered a manually constructed error with message "' + + err.message + + '" but without a construction site ' + + 'stack trace. This error might not be visible in the ' + + 'error reporting console.' + ); } em = err; } else { em = new ErrorMessage(); - em.setServiceContext(config.getServiceContext().service, - config.getServiceContext().version); + em.setServiceContext( + config.getServiceContext().service, + config.getServiceContext().version + ); populateErrorMessage(err, em); } diff --git a/handwritten/error-reporting/src/interfaces/message-builder.js b/handwritten/error-reporting/src/interfaces/message-builder.js index 03c7aefd746..b9cbfb0f66d 100644 --- a/handwritten/error-reporting/src/interfaces/message-builder.js +++ b/handwritten/error-reporting/src/interfaces/message-builder.js @@ -48,8 +48,9 @@ function handlerSetup(config) { var cleanedStack = buildStackTrace(''); var em = new ErrorMessage().setServiceContext( - config.getServiceContext().service, - config.getServiceContext().version); + config.getServiceContext().service, + config.getServiceContext().version + ); em._autoGeneratedStackTrace = cleanedStack; return em; } diff --git a/handwritten/error-reporting/src/interfaces/restify.js b/handwritten/error-reporting/src/interfaces/restify.js index 1fa0ce40af9..34932ba7659 100644 --- a/handwritten/error-reporting/src/interfaces/restify.js +++ b/handwritten/error-reporting/src/interfaces/restify.js @@ -19,8 +19,7 @@ var is = require('is'); var isObject = is.object; var isFunction = is.function; var ErrorMessage = require('../classes/error-message.js'); -var expressRequestInformationExtractor = - require('../request-extractors/express.js'); +var expressRequestInformationExtractor = require('../request-extractors/express.js'); var populateErrorMessage = require('../populate-error-message.js'); /** @@ -64,10 +63,13 @@ function restifyErrorHandler(client, config, err, em) { function restifyRequestFinishHandler(client, config, req, res) { var em; - if (res._body instanceof Error || - res.statusCode > 309 && res.statusCode < 512) { + if ( + res._body instanceof Error || + (res.statusCode > 309 && res.statusCode < 512) + ) { em = new ErrorMessage().consumeRequestInformation( - expressRequestInformationExtractor(req, res)); + expressRequestInformationExtractor(req, res) + ); restifyErrorHandler(client, config, res._body, em); } @@ -95,9 +97,7 @@ function restifyRequestHandler(client, config, req, res, next) { var listener = {}; if (isObject(res) && isFunction(res.on) && isFunction(res.removeListener)) { - listener = function() { - restifyRequestFinishHandler(client, config, req, res); res.removeListener('finish', listener); }; @@ -126,10 +126,10 @@ function restifyRequestHandler(client, config, req, res, next) { * @returns {Function} - the actual request error handler */ function serverErrorHandler(client, config, server) { - server.on('uncaughtException', function(req, res, reqConfig, err) { var em = new ErrorMessage().consumeRequestInformation( - expressRequestInformationExtractor(req, res)); + expressRequestInformationExtractor(req, res) + ); restifyErrorHandler(client, config, err, em); }); @@ -149,7 +149,6 @@ function serverErrorHandler(client, config, server) { * restify middleware stack */ function handlerSetup(client, config) { - return serverErrorHandler.bind(null, client, config); } diff --git a/handwritten/error-reporting/src/logger.js b/handwritten/error-reporting/src/logger.js index d7ae446da61..5aeafa916ac 100644 --- a/handwritten/error-reporting/src/logger.js +++ b/handwritten/error-reporting/src/logger.js @@ -47,21 +47,25 @@ function createLogger(initConfiguration) { var level = DEFAULT_LEVEL; if (has(process.env, 'GCLOUD_ERRORS_LOGLEVEL')) { // Cast env string as integer - level = logger.LEVELS[~~process.env.GCLOUD_ERRORS_LOGLEVEL] || - DEFAULT_LEVEL; - } else if (isObject(initConfiguration) && - has(initConfiguration, 'logLevel')) { + level = + logger.LEVELS[~~process.env.GCLOUD_ERRORS_LOGLEVEL] || DEFAULT_LEVEL; + } else if ( + isObject(initConfiguration) && + has(initConfiguration, 'logLevel') + ) { if (isString(initConfiguration.logLevel)) { // Cast string as integer level = logger.LEVELS[~~initConfiguration.logLevel] || DEFAULT_LEVEL; } else if (isNumber(initConfiguration.logLevel)) { level = logger.LEVELS[initConfiguration.logLevel] || DEFAULT_LEVEL; } else { - throw new Error('config.logLevel must be a number or decimal ' + - 'representation of a number in string form'); + throw new Error( + 'config.logLevel must be a number or decimal ' + + 'representation of a number in string form' + ); } } - return logger({level: level, tag: packageJson.name }); + return logger({level: level, tag: packageJson.name}); } module.exports = createLogger; diff --git a/handwritten/error-reporting/src/populate-error-message.js b/handwritten/error-reporting/src/populate-error-message.js index a082dce5afa..f983f4f2355 100644 --- a/handwritten/error-reporting/src/populate-error-message.js +++ b/handwritten/error-reporting/src/populate-error-message.js @@ -64,8 +64,10 @@ function populateFromError(err, errorMessage) { } if (has(err, 'serviceContext') && isObject(err.serviceContext)) { - errorMessage.setServiceContext(err.serviceContext.service, - err.serviceContext.version); + errorMessage.setServiceContext( + err.serviceContext.service, + err.serviceContext.version + ); } } @@ -117,8 +119,10 @@ function populateFromObject(ob, errorMessage) { } if (has(ob, 'serviceContext') && isObject(ob.serviceContext)) { - errorMessage.setServiceContext(ob.serviceContext.service, - ob.serviceContext.version); + errorMessage.setServiceContext( + ob.serviceContext.service, + ob.serviceContext.version + ); } } diff --git a/handwritten/error-reporting/src/request-extractors/express.js b/handwritten/error-reporting/src/request-extractors/express.js index 197e73978b7..fd523c554be 100644 --- a/handwritten/error-reporting/src/request-extractors/express.js +++ b/handwritten/error-reporting/src/request-extractors/express.js @@ -18,8 +18,7 @@ var is = require('is'); var isFunction = is.fn; var isObject = is.object; -var RequestInformationContainer = - require('../classes/request-information-container.js'); +var RequestInformationContainer = require('../classes/request-information-container.js'); /** * This function checks for the presence of an `x-forwarded-for` header on the @@ -32,12 +31,9 @@ var RequestInformationContainer = * string */ function extractRemoteAddressFromRequest(req) { - if (typeof req.header('x-forwarded-for') !== 'undefined') { - return req.header('x-forwarded-for'); } else if (isObject(req.connection)) { - return req.connection.remoteAddress; } @@ -56,20 +52,19 @@ function extractRemoteAddressFromRequest(req) { * information in a standardized format */ function expressRequestInformationExtractor(req, res) { - var returnObject = new RequestInformationContainer(); if (!isObject(req) || !isFunction(req.header) || !isObject(res)) { - return returnObject; } - returnObject.setMethod(req.method) - .setUrl(req.url) - .setUserAgent(req.header('user-agent')) - .setReferrer(req.header('referrer')) - .setStatusCode(res.statusCode) - .setRemoteAddress(extractRemoteAddressFromRequest(req)); + returnObject + .setMethod(req.method) + .setUrl(req.url) + .setUserAgent(req.header('user-agent')) + .setReferrer(req.header('referrer')) + .setStatusCode(res.statusCode) + .setRemoteAddress(extractRemoteAddressFromRequest(req)); return returnObject; } diff --git a/handwritten/error-reporting/src/request-extractors/hapi.js b/handwritten/error-reporting/src/request-extractors/hapi.js index cc44bf1764d..63420338777 100644 --- a/handwritten/error-reporting/src/request-extractors/hapi.js +++ b/handwritten/error-reporting/src/request-extractors/hapi.js @@ -20,8 +20,7 @@ var is = require('is'); var isObject = is.object; var isFunction = is.function; var isArray = is.array; -var RequestInformationContainer = - require('../classes/request-information-container.js'); +var RequestInformationContainer = require('../classes/request-information-container.js'); /** * This function is used to check for a pending status code on the response @@ -33,14 +32,17 @@ var RequestInformationContainer = * extractable status code. */ function attemptToExtractStatusCode(req) { - - if (has(req, 'response') && isObject(req.response) && - has(req.response, 'statusCode')) { - + if ( + has(req, 'response') && + isObject(req.response) && + has(req.response, 'statusCode') + ) { return req.response.statusCode; - } else if (has(req, 'response') && isObject(req.response) && - isObject(req.response.output)) { - + } else if ( + has(req, 'response') && + isObject(req.response) && + isObject(req.response.output) + ) { return req.response.output.statusCode; } @@ -59,12 +61,9 @@ function attemptToExtractStatusCode(req) { * a string that represents the remote IP address */ function extractRemoteAddressFromRequest(req) { - if (has(req.headers, 'x-forwarded-for')) { - return req.headers['x-forwarded-for']; } else if (isObject(req.info)) { - return req.info.remoteAddress; } @@ -81,21 +80,24 @@ function extractRemoteAddressFromRequest(req) { * information in a standardized format */ function hapiRequestInformationExtractor(req) { - var returnObject = new RequestInformationContainer(); - if (!isObject(req) || !isObject(req.headers) || isFunction(req) || - isArray(req)) { - + if ( + !isObject(req) || + !isObject(req.headers) || + isFunction(req) || + isArray(req) + ) { return returnObject; } - returnObject.setMethod(req.method) - .setUrl(req.url) - .setUserAgent(req.headers['user-agent']) - .setReferrer(req.headers.referrer) - .setStatusCode(attemptToExtractStatusCode(req)) - .setRemoteAddress(extractRemoteAddressFromRequest(req)); + returnObject + .setMethod(req.method) + .setUrl(req.url) + .setUserAgent(req.headers['user-agent']) + .setReferrer(req.headers.referrer) + .setStatusCode(attemptToExtractStatusCode(req)) + .setRemoteAddress(extractRemoteAddressFromRequest(req)); return returnObject; } diff --git a/handwritten/error-reporting/src/request-extractors/koa.js b/handwritten/error-reporting/src/request-extractors/koa.js index 5dceb5aeec9..ce239c5cba5 100644 --- a/handwritten/error-reporting/src/request-extractors/koa.js +++ b/handwritten/error-reporting/src/request-extractors/koa.js @@ -19,8 +19,7 @@ var is = require('is'); var isObject = is.object; var isFunction = is.function; var isArray = is.array; -var RequestInformationContainer = - require('../classes/request-information-container.js'); +var RequestInformationContainer = require('../classes/request-information-container.js'); /** * The koaRequestInformationExtractor attempts to extract information from a Koa @@ -33,21 +32,27 @@ var RequestInformationContainer = * container instance that may be in its initial state */ function koaRequestInformationExtractor(req, res) { - var returnObject = new RequestInformationContainer(); - if (!isObject(req) || !isObject(res) || isFunction(req) || isFunction(res) || - isArray(req) || isArray(res) || !isObject(req.headers)) { - + if ( + !isObject(req) || + !isObject(res) || + isFunction(req) || + isFunction(res) || + isArray(req) || + isArray(res) || + !isObject(req.headers) + ) { return returnObject; } - returnObject.setMethod(req.method) - .setUrl(req.url) - .setUserAgent(req.headers['user-agent']) - .setReferrer(req.headers.referrer) - .setStatusCode(res.status) - .setRemoteAddress(req.ip); + returnObject + .setMethod(req.method) + .setUrl(req.url) + .setUserAgent(req.headers['user-agent']) + .setReferrer(req.headers.referrer) + .setStatusCode(res.status) + .setRemoteAddress(req.ip); return returnObject; } diff --git a/handwritten/error-reporting/src/request-extractors/manual.js b/handwritten/error-reporting/src/request-extractors/manual.js index 706e8a0c88a..26b47462bee 100644 --- a/handwritten/error-reporting/src/request-extractors/manual.js +++ b/handwritten/error-reporting/src/request-extractors/manual.js @@ -19,8 +19,7 @@ var is = require('is'); var isObject = is.object; var isArray = is.array; var isFunction = is.fn; -var RequestInformationContainer = - require('../classes/request-information-container.js'); +var RequestInformationContainer = require('../classes/request-information-container.js'); /** * The manualRequestInformationExtractor is meant to take a standard object @@ -41,41 +40,33 @@ var RequestInformationContainer = * information in a standardized format */ function manualRequestInformationExtractor(req) { - var returnObject = new RequestInformationContainer(); if (!isObject(req) || isArray(req) || isFunction(req)) { - return returnObject; } if (has(req, 'method')) { - returnObject.setMethod(req.method); } if (has(req, 'url')) { - returnObject.setUrl(req.url); } if (has(req, 'userAgent')) { - returnObject.setUserAgent(req.userAgent); } if (has(req, 'referrer')) { - returnObject.setReferrer(req.referrer); } if (has(req, 'statusCode')) { - returnObject.setStatusCode(req.statusCode); } if (has(req, 'remoteAddress')) { - returnObject.setRemoteAddress(req.remoteAddress); } diff --git a/handwritten/error-reporting/system-test/.eslintrc.yml b/handwritten/error-reporting/system-test/.eslintrc.yml new file mode 100644 index 00000000000..2e6882e46d2 --- /dev/null +++ b/handwritten/error-reporting/system-test/.eslintrc.yml @@ -0,0 +1,6 @@ +--- +env: + mocha: true +rules: + node/no-unpublished-require: off + no-console: off diff --git a/handwritten/error-reporting/system-test/error-reporting.js b/handwritten/error-reporting/system-test/error-reporting.js index 9acb8d90551..7572569e94d 100644 --- a/handwritten/error-reporting/system-test/error-reporting.js +++ b/handwritten/error-reporting/system-test/error-reporting.js @@ -31,6 +31,7 @@ var forEach = require('lodash.foreach'); var assign = require('lodash.assign'); var pick = require('lodash.pick'); var omitBy = require('lodash.omitby'); +// eslint-disable-next-line node/no-extraneous-require var request = require('request'); var util = require('util'); var path = require('path'); @@ -38,8 +39,11 @@ var path = require('path'); const ERR_TOKEN = '_@google_STACKDRIVER_INTEGRATION_TEST_ERROR__'; const TIMEOUT = 30000; -const envKeys = ['GOOGLE_APPLICATION_CREDENTIALS', 'GCLOUD_PROJECT', - 'NODE_ENV']; +const envKeys = [ + 'GOOGLE_APPLICATION_CREDENTIALS', + 'GCLOUD_PROJECT', + 'NODE_ENV', +]; class InstancedEnv { constructor(injectedEnv) { @@ -59,28 +63,28 @@ class InstancedEnv { setProjectId() { assign(process.env, { - GCLOUD_PROJECT: this.injectedEnv.projectId + GCLOUD_PROJECT: this.injectedEnv.projectId, }); return this; } setProjectNumber() { assign(process.env, { - GCLOUD_PROJECT: this.injectedEnv.projectNumber + GCLOUD_PROJECT: this.injectedEnv.projectNumber, }); return this; } setKeyFilename() { assign(process.env, { - GOOGLE_APPLICATION_CREDENTIALS: this.injectedEnv.keyFilename + GOOGLE_APPLICATION_CREDENTIALS: this.injectedEnv.keyFilename, }); return this; } setProduction() { assign(process.env, { - NODE_ENV: 'production' + NODE_ENV: 'production', }); return this; } @@ -95,7 +99,13 @@ class InstancedEnv { } } -const env = new InstancedEnv(require('../../../system-test/env.js')); +// eslint-disable-next-line node/no-missing-require +const env = new InstancedEnv({ + projectId: process.env.GCLOUD_TESTS_PROJECT_ID, + keyFilename: process.env.GCLOUD_TESTS_KEY, + apiKey: process.env.GCLOUD_TESTS_API_KEY, + projectNumber: process.env.GCLOUD_TESTS_PROJECT_NUMBER +}); function shouldRun() { var shouldRun = true; @@ -124,6 +134,7 @@ function shouldRun() { if (!shouldRun()) { console.log('Skipping error-reporting system tests'); + // eslint-disable-next-line no-process-exit process.exit(1); } @@ -136,14 +147,21 @@ describe('Request/Response lifecycle mocking', function() { }); beforeEach(function() { - env.setProjectId().setKeyFilename().setProduction(); + env + .setProjectId() + .setKeyFilename() + .setProduction(); fakeService = nock( 'https://clouderrorreporting.googleapis.com/v1beta1/projects/' + - process.env.GCLOUD_PROJECT - ).persist().post('/events:report'); + process.env.GCLOUD_PROJECT + ) + .persist() + .post('/events:report'); logger = createLogger({logLevel: 5}); client = new RequestHandler( - new Configuration({ignoreEnvironmentCheck: true}, logger), logger); + new Configuration({ignoreEnvironmentCheck: true}, logger), + logger + ); }); afterEach(function() { @@ -157,11 +175,9 @@ describe('Request/Response lifecycle mocking', function() { it('Should fail when receiving non-retryable errors', function(done) { this.timeout(5000); - client.sendError({}, function(err, response, - /* jshint unused:false */ body) { + client.sendError({}, function(err, response) { assert(err instanceof Error); - assert.strictEqual(err.message.toLowerCase(), - 'message cannot be empty.'); + assert.strictEqual(err.message.toLowerCase(), 'message cannot be empty.'); assert(isObject(response)); assert.strictEqual(response.statusCode, 400); done(); @@ -174,24 +190,32 @@ describe('Request/Response lifecycle mocking', function() { var intendedTries = 4; fakeService.reply(429, function() { tries += 1; - console.log('Mock Server Received Request:', tries + '/' + - intendedTries); + console.log('Mock Server Received Request:', tries + '/' + intendedTries); return {error: 'Please try again later'}; }); - client.sendError(errorMessage, function(err, response, - /* jshint unused:false */ body) { + client.sendError(errorMessage, function() { assert.strictEqual(tries, intendedTries); done(); }); }); - it('Should provide the key as a query string on outgoing requests when ' + - 'using an API key', function(done) { - env.sterilizeProcess().setProjectId().setProduction(); + it( + 'Should provide the key as a query string on outgoing requests when ' + + 'using an API key', + function(done) { + env + .sterilizeProcess() + .setProjectId() + .setProduction(); var key = env.apiKey; - var client = new RequestHandler(new Configuration( - {key: key, ignoreEnvironmentCheck: true}, - createLogger({logLevel: 5}))); + var logger = createLogger({logLevel: 5}); + var client = new RequestHandler( + new Configuration( + {key: key, ignoreEnvironmentCheck: true}, + logger + ), + logger + ); fakeService.query({key: key}).reply(200, function(uri) { assert(uri.indexOf('key=' + key) > -1); return {}; @@ -202,8 +226,9 @@ describe('Request/Response lifecycle mocking', function() { } ); - it('Should still execute the request with a callback-less invocation', - function(done) { + it('Should still execute the request with a callback-less invocation', function( + done + ) { fakeService.reply(200, function() { done(); }); @@ -218,81 +243,115 @@ describe('Client creation', function() { env.sterilizeProcess(); }); - it('Should not throw on initialization when using only project id as a ' + - 'runtime argument', function(done) { - env.sterilizeProcess().setKeyFilename(); - var logger = createLogger({logLevel: 5}); - var cfg = new Configuration({projectId: env.injected().projectId, - ignoreEnvironmentCheck: true}, logger); - this.timeout(10000); - assert.doesNotThrow(function() { - (new RequestHandler(cfg, logger)).sendError(errorMessage, - function(err, response, body) { + it( + 'Should not throw on initialization when using only project id as a ' + + 'runtime argument', + function(done) { + env.sterilizeProcess().setKeyFilename(); + var logger = createLogger({logLevel: 5}); + var cfg = new Configuration( + { + projectId: env.injected().projectId, + ignoreEnvironmentCheck: true, + }, + logger + ); + this.timeout(10000); + assert.doesNotThrow(function() { + new RequestHandler(cfg, logger).sendError(errorMessage, function( + err, + response, + body + ) { assert.strictEqual(err, null); assert.strictEqual(response.statusCode, 200); assert(isObject(body) && isEmpty(body)); done(); - } - ); - }); - }); + }); + }); + } + ); - it('Should not throw on initialization when using only project id as an ' + - 'env variable', function(done) { - env.sterilizeProcess().setProjectId().setKeyFilename(); - var logger = createLogger({logLevel: 5}); - var cfg = new Configuration({ignoreEnvironmentCheck: true}, logger); - this.timeout(10000); - assert.doesNotThrow(function() { - (new RequestHandler(cfg, logger)).sendError(errorMessage, - function(err, response, body) { + it( + 'Should not throw on initialization when using only project id as an ' + + 'env variable', + function(done) { + env + .sterilizeProcess() + .setProjectId() + .setKeyFilename(); + var logger = createLogger({logLevel: 5}); + var cfg = new Configuration({ignoreEnvironmentCheck: true}, logger); + this.timeout(10000); + assert.doesNotThrow(function() { + new RequestHandler(cfg, logger).sendError(errorMessage, function( + err, + response, + body + ) { assert.strictEqual(err, null); assert.strictEqual(response.statusCode, 200); assert(isObject(body) && isEmpty(body)); done(); - } - ); - }); - }); + }); + }); + } + ); - it('Should not throw on initialization when using only project number as ' + - 'a runtime argument', function(done) { - env.sterilizeProcess().setKeyFilename(); - var logger = createLogger({logLevel: 5}); - var cfg = new Configuration({ - projectId: parseInt(env.injected().projectNumber), - ignoreEnvironmentCheck: true - }, logger); - this.timeout(10000); - assert.doesNotThrow(function() { - (new RequestHandler(cfg, logger)).sendError(errorMessage, - function(err, response, body) { + it( + 'Should not throw on initialization when using only project number as ' + + 'a runtime argument', + function(done) { + env.sterilizeProcess().setKeyFilename(); + var logger = createLogger({logLevel: 5}); + var cfg = new Configuration( + { + projectId: parseInt(env.injected().projectNumber), + ignoreEnvironmentCheck: true, + }, + logger + ); + this.timeout(10000); + assert.doesNotThrow(function() { + new RequestHandler(cfg, logger).sendError(errorMessage, function( + err, + response, + body + ) { assert.strictEqual(err, null); assert.strictEqual(response.statusCode, 200); assert(isObject(body) && isEmpty(body)); done(); - } - ); - }); - }); + }); + }); + } + ); - it('Should not throw on initialization when using only project number as ' + - 'an env variable', function(done) { - env.sterilizeProcess().setKeyFilename().setProjectNumber(); - var logger = createLogger({logLevel: 5}); - var cfg = new Configuration({ignoreEnvironmentCheck: true}, logger); - this.timeout(10000); - assert.doesNotThrow(function() { - (new RequestHandler(cfg, logger)).sendError(errorMessage, - function(err, response, body) { + it( + 'Should not throw on initialization when using only project number as ' + + 'an env variable', + function(done) { + env + .sterilizeProcess() + .setKeyFilename() + .setProjectNumber(); + var logger = createLogger({logLevel: 5}); + var cfg = new Configuration({ignoreEnvironmentCheck: true}, logger); + this.timeout(10000); + assert.doesNotThrow(function() { + new RequestHandler(cfg, logger).sendError(errorMessage, function( + err, + response, + body + ) { assert.strictEqual(err, null); assert.strictEqual(response.statusCode, 200); assert(isObject(body) && isEmpty(body)); done(); - } - ); - }); - }); + }); + }); + } + ); }); describe('Expected Behavior', function() { @@ -300,7 +359,7 @@ describe('Expected Behavior', function() { 'Stackdriver error reporting client has not been configured to send', 'errors, please check the NODE_ENV environment variable and make', 'sure it is set to "production" or set the ignoreEnvironmentCheck', - 'property to true in the runtime configuration object' + 'property to true in the runtime configuration object', ].join(' '); var er = new Error(ERR_TOKEN); @@ -310,15 +369,20 @@ describe('Expected Behavior', function() { env.sterilizeProcess(); }); - it('Should callback with an error with a configuration to not report errors', - function(done) { - env.sterilizeProcess().setKeyFilename().setProjectId(); + it('Should callback with an error with a configuration to not report errors', function( + done + ) { + env + .sterilizeProcess() + .setKeyFilename() + .setProjectId(); process.env.NODE_ENV = 'null'; var logger = createLogger({logLevel: 5}); - var client = new RequestHandler(new Configuration(undefined, logger), - logger); - client.sendError({}, function(err, response, - /* jshint unused:false */ body) { + var client = new RequestHandler( + new Configuration(undefined, logger), + logger + ); + client.sendError({}, function(err, response) { assert(err instanceof Error); assert.strictEqual(err.message, ERROR_STRING); assert.strictEqual(response, null); @@ -329,10 +393,13 @@ describe('Expected Behavior', function() { it('Should succeed in its request given a valid project id', function(done) { env.sterilizeProcess(); var logger = createLogger({logLevel: 5}); - var cfg = new Configuration({ - projectId: env.injected().projectId, - ignoreEnvironmentCheck: true - }, logger); + var cfg = new Configuration( + { + projectId: env.injected().projectId, + ignoreEnvironmentCheck: true, + }, + logger + ); var client = new RequestHandler(cfg, logger); client.sendError(em, function(err, response, body) { @@ -344,14 +411,18 @@ describe('Expected Behavior', function() { }); }); - it('Should succeed in its request given a valid project number', - function(done) { + it('Should succeed in its request given a valid project number', function( + done + ) { env.sterilizeProcess(); var logger = createLogger({logLevel: 5}); - var cfg = new Configuration({ - projectId: parseInt(env.injected().projectNumber), - ignoreEnvironmentCheck: true - }, logger); + var cfg = new Configuration( + { + projectId: parseInt(env.injected().projectNumber), + ignoreEnvironmentCheck: true, + }, + logger + ); var client = new RequestHandler(cfg, logger); client.sendError(em, function(err, response, body) { assert.strictEqual(err, null); @@ -368,32 +439,41 @@ describe('Error Reporting API', function() { { name: 'when a valid API key is given', getKey: () => env.apiKey, - message: 'Message cannot be empty.' + message: 'Message cannot be empty.', + statusCode: 400 }, { name: 'when an empty API key is given', getKey: () => '', - message: 'The request is missing a valid API key.' + message: 'The request is missing a valid API key.', + // TODO: Determine if 403 is the correct expected status code. + // Prior to the code migration, the expected status code + // was 400. However, the service is now reporting 403. + statusCode: 403 }, { name: 'when an invalid API key is given', getKey: () => env.apiKey.slice(1) + env.apiKey[0], - message: 'API key not valid. Please pass a valid API key.' - } + message: 'API key not valid. Please pass a valid API key.', + statusCode: 400 + }, ].forEach(function(testCase) { it(`should return an expected message ${testCase.name}`, function(done) { this.timeout(30000); const API = 'https://clouderrorreporting.googleapis.com/v1beta1'; const key = testCase.getKey(); - request.post({ - url: `${API}/projects/${env.projectId}/events:report?key=${key}`, - json: {}, - }, (err, response, body) => { - assert.ok(!err && body.error); - assert.strictEqual(response.statusCode, 400); - assert.strictEqual(body.error.message, testCase.message); - done(); - }); + request.post( + { + url: `${API}/projects/${env.projectId}/events:report?key=${key}`, + json: {}, + }, + (err, response, body) => { + assert.ok(!err && body.error); + assert.strictEqual(response.statusCode, testCase.statusCode); + assert.strictEqual(body.error.message, testCase.message); + done(); + } + ); }); }); }); @@ -432,13 +512,16 @@ describe('error-reporting', function() { function reinitialize(extraConfig) { process.removeAllListeners('unhandledRejection'); - var config = Object.assign({ - ignoreEnvironmentCheck: true, - serviceContext: { - service: SERVICE, - version: VERSION - } - }, extraConfig || {}); + var config = Object.assign( + { + ignoreEnvironmentCheck: true, + serviceContext: { + service: SERVICE, + version: VERSION, + }, + }, + extraConfig || {} + ); errors = require('../src/index.js')(config); transport = new ErrorsApiTransport(errors._config, errors._logger); } @@ -464,11 +547,14 @@ describe('error-reporting', function() { assert.ok(groups); var matchedErrors = groups.filter(function(errItem) { - return errItem && errItem.representative && + return ( + errItem && + errItem.representative && errItem.representative.serviceContext && errItem.representative.serviceContext.service === SERVICE && errItem.representative.serviceContext.version === VERSION && - messageTest(errItem.representative.message); + messageTest(errItem.representative.message) + ); }); cb(matchedErrors); @@ -520,63 +606,101 @@ describe('error-reporting', function() { // As such, each test is set to fail due to a timeout only if sufficiently // more than TIMEOUT ms has elapsed to avoid test fragility. - it('Should correctly publish an error that is an Error object', - function verifyErrors(done) { + it('Should correctly publish an error that is an Error object', function verifyErrors( + done + ) { this.timeout(TIMEOUT * 2); var errorId = buildName('with-error-constructor'); var errOb = (function expectedTopOfStack() { return new Error(errorId); })(); - verifyReporting(errOb, function(message) { - return message.startsWith('Error: ' + errorId + '\n'); - }, TIMEOUT, done); + verifyReporting( + errOb, + function(message) { + return message.startsWith('Error: ' + errorId + '\n'); + }, + TIMEOUT, + done + ); }); it('Should correctly publish an error that is a string', function(done) { this.timeout(TIMEOUT * 2); var errorId = buildName('with-string'); - verifyReporting(errorId, function(message) { - return message.startsWith(errorId + '\n'); - }, TIMEOUT, done); + verifyReporting( + errorId, + function(message) { + return message.startsWith(errorId + '\n'); + }, + TIMEOUT, + done + ); }); it('Should correctly publish an error that is undefined', function(done) { this.timeout(TIMEOUT * 2); - verifyReporting(undefined, function(message) { - return message.startsWith('undefined\n'); - }, TIMEOUT, done); + verifyReporting( + undefined, + function(message) { + return message.startsWith('undefined\n'); + }, + TIMEOUT, + done + ); }); it('Should correctly publish an error that is null', function(done) { this.timeout(TIMEOUT * 2); - verifyReporting(null, function(message) { - return message.startsWith('null\n'); - }, TIMEOUT, done); + verifyReporting( + null, + function(message) { + return message.startsWith('null\n'); + }, + TIMEOUT, + done + ); }); - it('Should correctly publish an error that is a plain object', - function(done) { + it('Should correctly publish an error that is a plain object', function( + done + ) { this.timeout(TIMEOUT * 2); - verifyReporting({ someKey: 'someValue' }, function(message) { - return message.startsWith('[object Object]\n'); - }, TIMEOUT, done); + verifyReporting( + {someKey: 'someValue'}, + function(message) { + return message.startsWith('[object Object]\n'); + }, + TIMEOUT, + done + ); }); it('Should correctly publish an error that is a number', function(done) { this.timeout(TIMEOUT * 2); - var num = (new Date()).getTime(); - verifyReporting(num, function(message) { - return message.startsWith('' + num + '\n'); - }, TIMEOUT, done); + var num = new Date().getTime(); + verifyReporting( + num, + function(message) { + return message.startsWith('' + num + '\n'); + }, + TIMEOUT, + done + ); }); - it('Should correctly publish an error that is of an unknown type', - function(done) { + it('Should correctly publish an error that is of an unknown type', function( + done + ) { this.timeout(TIMEOUT * 2); var bool = true; - verifyReporting(bool, function(message) { - return message.startsWith('true\n'); - }, TIMEOUT, done); + verifyReporting( + bool, + function(message) { + return message.startsWith('true\n'); + }, + TIMEOUT, + done + ); }); it('Should correctly publish errors using an error builder', function(done) { @@ -590,26 +714,32 @@ describe('error-reporting', function() { // specific to the error-reporting library. var errOb = (function definitionSiteFunction() { return (function expectedTopOfStack() { - return errors.event() - .setMessage(errorId); + return errors.event().setMessage(errorId); })(); })(); (function callingSiteFunction() { - verifyReporting(errOb, function(message) { - // Verify that the stack trace of the constructed error - // uses the stack trace at the point where the error was constructed - // and not the stack trace at the point where the `report` method - // was called. - return message.startsWith(errorId) && - message.indexOf('callingSiteFunction') === -1 && - message.indexOf('definitionSiteFunction') !== -1; - }, TIMEOUT, done); + verifyReporting( + errOb, + function(message) { + // Verify that the stack trace of the constructed error + // uses the stack trace at the point where the error was constructed + // and not the stack trace at the point where the `report` method + // was called. + return ( + message.startsWith(errorId) && + message.indexOf('callingSiteFunction') === -1 && + message.indexOf('definitionSiteFunction') !== -1 + ); + }, + TIMEOUT, + done + ); })(); }); it('Should report unhandledRejections if enabled', function(done) { this.timeout(TIMEOUT * 2); - reinitialize({ reportUnhandledRejections: true }); + reinitialize({reportUnhandledRejections: true}); var rejectValue = buildName('promise-rejection'); (function expectedTopOfStack() { // An Error is used for the rejection value so that it's stack @@ -620,39 +750,51 @@ describe('error-reporting', function() { })(); var rejectText = 'Error: ' + rejectValue; setImmediate(function() { - var expected = 'UnhandledPromiseRejectionWarning: Unhandled ' + - 'promise rejection: ' + rejectText + + var expected = + 'UnhandledPromiseRejectionWarning: Unhandled ' + + 'promise rejection: ' + + rejectText + '. This rejection has been reported to the ' + 'Google Cloud Platform error-reporting console.'; assert.notStrictEqual(logOutput.indexOf(expected), -1); - verifyServerResponse(function(message) { - return message.startsWith(rejectText); - }, TIMEOUT, done); + verifyServerResponse( + function(message) { + return message.startsWith(rejectText); + }, + TIMEOUT, + done + ); }); }); it('Should not report unhandledRejections if disabled', function(done) { this.timeout(TIMEOUT * 2); - reinitialize({ reportUnhandledRejections: false }); + reinitialize({reportUnhandledRejections: false}); var rejectValue = buildName('promise-rejection'); (function expectedTopOfStack() { Promise.reject(rejectValue); })(); setImmediate(function() { - var notExpected = 'UnhandledPromiseRejectionWarning: Unhandled ' + - 'promise rejection: ' + rejectValue + + var notExpected = + 'UnhandledPromiseRejectionWarning: Unhandled ' + + 'promise rejection: ' + + rejectValue + '. This rejection has been reported to the error-reporting console.'; assert.strictEqual(logOutput.indexOf(notExpected), -1); // Get all groups that that start with the rejection value and hence all // of the groups corresponding to the above rejection (Since the // buildName() creates a string unique enough to single out only the // above rejection.) and verify that there are no such groups reported. - verifyAllGroups(function(message) { - return message.startsWith(rejectValue); - }, TIMEOUT, function(matchedErrors) { - assert.strictEqual(matchedErrors.length, 0); - done(); - }); + verifyAllGroups( + function(message) { + return message.startsWith(rejectValue); + }, + TIMEOUT, + function(matchedErrors) { + assert.strictEqual(matchedErrors.length, 0); + done(); + } + ); }); }); -}); \ No newline at end of file +}); diff --git a/handwritten/error-reporting/test/.eslintrc.yml b/handwritten/error-reporting/test/.eslintrc.yml new file mode 100644 index 00000000000..73f7bbc946f --- /dev/null +++ b/handwritten/error-reporting/test/.eslintrc.yml @@ -0,0 +1,5 @@ +--- +env: + mocha: true +rules: + node/no-unpublished-require: off diff --git a/handwritten/error-reporting/test/fixtures/configuration.js b/handwritten/error-reporting/test/fixtures/configuration.js index 2e0834e6e61..e0c26f44efb 100644 --- a/handwritten/error-reporting/test/fixtures/configuration.js +++ b/handwritten/error-reporting/test/fixtures/configuration.js @@ -19,7 +19,7 @@ var Configuration = require('../../src/configuration.js'); var FakeConfiguration = function(config) { - return Configuration.call(this, config, { warn: function() {} }); + return Configuration.call(this, config, {warn: function() {}}); }; FakeConfiguration.prototype = Object.create(Configuration.prototype); diff --git a/handwritten/error-reporting/test/test-servers/express_scaffold_server.js b/handwritten/error-reporting/test/test-servers/express_scaffold_server.js index f9a6efeca79..3fc56198212 100644 --- a/handwritten/error-reporting/test/test-servers/express_scaffold_server.js +++ b/handwritten/error-reporting/test/test-servers/express_scaffold_server.js @@ -25,110 +25,90 @@ var app = express(); var errorHandler = require('../../src/index.js')({ onUncaughtException: 'report', key: process.env.STUBBED_API_KEY, - projectId: process.env.STUBBED_PROJECT_NUM + projectId: process.env.STUBBED_PROJECT_NUM, }); var bodyParser = require('body-parser'); +// eslint-disable-next-line no-console +var log = console.log; + app.use(bodyParser.json()); app.post('/testErrorHandling', function(req, res, next) { - - if (has(req.body, 'test') && req.body.test !== true) { - return next(new Error('Error on Express Regular Error POST Route')); } else { - res.send('Success'); res.end(); } -} -); - -app.get( - '/customError', function(req, res, next) { - - errorHandler.report( - 'Error on Express Custom Error GET Route', function(err, res) { - - if (err) { - - console.log(WARNING_HEADER); - console.log('Error in sending custom get error to api'); - console.log(err); - console.log(EXCLAMATION_LN); - } else { - - console.log(EXCLAMATION_LN); - console.log('Successfully sent custom get error to api'); - console.log(EXCLAMATION_LN); - } - } - ); +}); - res.send('Success'); - res.end(); +app.get('/customError', function(req, res, next) { + errorHandler.report('Error on Express Custom Error GET Route', function(err) { + if (err) { + log(WARNING_HEADER); + log('Error in sending custom get error to api'); + log(err); + log(EXCLAMATION_LN); + } else { + log(EXCLAMATION_LN); + log('Successfully sent custom get error to api'); + log(EXCLAMATION_LN); + } + }); - next(); - } -); + res.send('Success'); + res.end(); -app.get( - '/getError', function(req, res, next) { + next(); +}); - return next(new Error('Error on Express Regular Error GET Route')); - } -); +app.get('/getError', function(req, res, next) { + return next(new Error('Error on Express Regular Error GET Route')); +}); app.use(errorHandler.express); function throwUncaughtError() { - console.log('Throwing an uncaught error..'); + log('Throwing an uncaught error..'); throw new Error('This is an uncaught error'); } function reportManualError() { - console.log('Reporting a manual error..'); + log('Reporting a manual error..'); errorHandler.report( - new Error('This is a manually reported error'), null, null, - function(err, res) { - - if (err) { - - console.log(WARNING_HEADER); - console.log('Got an error in sending error information to the API'); - console.log(err); - console.log(EXCLAMATION_LN); - } else { - - console.log(EXCLAMATION_LN); - console.log('Successfully sent error information to the API'); - console.log(EXCLAMATION_LN); - } - - if (process.env.THROW_ON_STARTUP) { - throwUncaughtError(); - } - } - ); -} -console.log('reporting a manual error first'); -errorHandler.report( - new Error('This is a test'), - (err, res) => { - console.log('reported first manual error'); + new Error('This is a manually reported error'), + null, + null, + function(err) { if (err) { - console.log('Error was unable to be reported', err); + log(WARNING_HEADER); + log('Got an error in sending error information to the API'); + log(err); + log(EXCLAMATION_LN); } else { - console.log('Error reported!'); + log(EXCLAMATION_LN); + log('Successfully sent error information to the API'); + log(EXCLAMATION_LN); } - } -); -app.listen( - 3000, - function() { - console.log('Scaffold Server has been started on port 3000'); - reportManualError(); + if (process.env.THROW_ON_STARTUP) { + throwUncaughtError(); + } + } + ); +} +log('reporting a manual error first'); +errorHandler.report(new Error('This is a test'), err => { + log('reported first manual error'); + if (err) { + log('Error was unable to be reported', err); + } else { + log('Error reported!'); } -); +}); + +app.listen(3000, function() { + log('Scaffold Server has been started on port 3000'); + reportManualError(); +}); diff --git a/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.js b/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.js index e16e50d8220..c5fb7fc121a 100644 --- a/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.js +++ b/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.js @@ -19,37 +19,41 @@ var hapi = require('hapi'); var errorHandler = require('../../src/index.js')(); var server = new hapi.Server(); -server.connection({ port: 3000 }); - -server.start( - (err) => { - if (err) { - throw err; - } - console.log( - 'Server running at', server.info.uri); +server.connection({port: 3000}); + +// eslint-disable-next-line no-console +var log = console.log; + +// eslint-disable-next-line no-console +var error = console.error; + +server.start(err => { + if (err) { + throw err; } -); + log('Server running at', server.info.uri); +}); server.route({ - method: 'GET', path: '/get', handler: function(request, reply) { - console.log('Got a GET'); + method: 'GET', + path: '/get', + handler: function() { + log('Got a GET'); throw new Error('an error'); - } + }, }); server.route({ - method: 'POST', path: '/post', handler: function(request, reply) { - console.log('Got a POST', request.payload); + method: 'POST', + path: '/post', + handler: function(request) { + log('Got a POST', request.payload); throw new Error('An error on the hapi post route'); - } + }, }); - -server.register( - { register: errorHandler.hapi }, (err) => { - if (err) { - console.error('There was an error in registering the plugin', err); - } +server.register({register: errorHandler.hapi}, err => { + if (err) { + error('There was an error in registering the plugin', err); } -); +}); diff --git a/handwritten/error-reporting/test/test-servers/koa_scaffold_server.js b/handwritten/error-reporting/test/test-servers/koa_scaffold_server.js index 6e9bf3aceb8..00ba9404801 100644 --- a/handwritten/error-reporting/test/test-servers/koa_scaffold_server.js +++ b/handwritten/error-reporting/test/test-servers/koa_scaffold_server.js @@ -18,21 +18,20 @@ 'use strict'; var errorHandler = require('../../src/index.js')({ - onUncaughtException: 'report' + onUncaughtException: 'report', }); var koa = require('koa'); var app = koa(); app.use(errorHandler.koa); -app.use(function *(next) { +app.use(function*(next) { //This will set status and message this.throw('Error Message', 500); yield next; }); - -app.use(function *(next){ +app.use(function*(next) { var start = new Date(); yield next; var ms = new Date() - start; @@ -41,15 +40,16 @@ app.use(function *(next){ // logger -app.use(function *(next){ +app.use(function*(next) { var start = new Date(); yield next; var ms = new Date() - start; + // eslint-disable-next-line no-console console.log('%s %s - %s', this.method, this.url, ms); }); // response -app.use(function *(next){ +app.use(function*(next) { this.body = 'Hello World'; yield next; }); diff --git a/handwritten/error-reporting/test/test-servers/manual_scaffold_server.js b/handwritten/error-reporting/test/test-servers/manual_scaffold_server.js index 1831bc18d22..454da38c871 100644 --- a/handwritten/error-reporting/test/test-servers/manual_scaffold_server.js +++ b/handwritten/error-reporting/test/test-servers/manual_scaffold_server.js @@ -16,10 +16,13 @@ 'use strict'; const errors = require('../../src/index.js')(); -errors.report('Sample test string', (err, response, body) => { +errors.report('Sample test string', err => { + // eslint-disable-next-line no-console console.log( 'Callback from report:\n', - '\tError: ', err, '\n', + '\tError: ', + err, + '\n', '\tResponse Body:' - ); -}); \ No newline at end of file + ); +}); diff --git a/handwritten/error-reporting/test/test-servers/restify_scaffold_server.js b/handwritten/error-reporting/test/test-servers/restify_scaffold_server.js index 8b8d4655a73..5d2c55f3c3a 100644 --- a/handwritten/error-reporting/test/test-servers/restify_scaffold_server.js +++ b/handwritten/error-reporting/test/test-servers/restify_scaffold_server.js @@ -29,5 +29,6 @@ server.get('/hello/:name', respond); server.head('/hello/:name', respond); server.listen(8080, function() { + // eslint-disable-next-line no-console console.log('%s listening at %s', server.name, server.url); }); diff --git a/handwritten/error-reporting/test/unit/classes/error-message.js b/handwritten/error-reporting/test/unit/classes/error-message.js index 89f6b05ff5f..67d2f4448ac 100644 --- a/handwritten/error-reporting/test/unit/classes/error-message.js +++ b/handwritten/error-reporting/test/unit/classes/error-message.js @@ -21,48 +21,43 @@ var ErrorMessage = require('../../../src/classes/error-message.js'); describe('Instantiating a new ErrorMessage', function() { var em; - beforeEach(function() {em = new ErrorMessage();}); + beforeEach(function() { + em = new ErrorMessage(); + }); it('Should have a default service context', function() { - assert.deepEqual( - em.serviceContext, - { service: 'node', version: undefined } - ); + assert.deepEqual(em.serviceContext, {service: 'node', version: undefined}); }); it('Should have a default message', function() { assert.strictEqual(em.message, ''); }); it('Should have a default http context', function() { - assert.deepEqual( - em.context.httpRequest, - { - method: '', - url: '', - userAgent: '', - referrer: '', - responseStatusCode: 0, - remoteIp: '' - } - ); + assert.deepEqual(em.context.httpRequest, { + method: '', + url: '', + userAgent: '', + referrer: '', + responseStatusCode: 0, + remoteIp: '', + }); }); it('Should have a default reportLocation', function() { - assert.deepEqual( - em.context.reportLocation, - { - filePath: '', - lineNumber: 0, - functionName: '' - } - ); - }) + assert.deepEqual(em.context.reportLocation, { + filePath: '', + lineNumber: 0, + functionName: '', + }); + }); }); describe('Calling against setEventTimeToNow', function() { var em; - beforeEach(function() {em = new ErrorMessage()}); + beforeEach(function() { + em = new ErrorMessage(); + }); it('Should set the eventTime property', function() { em.setEventTimeToNow(); - assert((typeof em.eventTime) === 'string'); + assert(typeof em.eventTime === 'string'); }); }); @@ -72,267 +67,266 @@ describe('Fuzzing against setServiceContext', function() { var DEFAULT_VERSION_VALUE = undefined; var DEFAULT_SERVICE_VALUE = 'node'; var em; - beforeEach(function() {em = new ErrorMessage()}); + beforeEach(function() { + em = new ErrorMessage(); + }); it('Should set the value for service context', function() { em.setServiceContext(AFFIRMATIVE_TEST_VALUE, AFFIRMATIVE_TEST_VALUE); assert.deepEqual( - em.serviceContext - , { - service: AFFIRMATIVE_TEST_VALUE - , version: AFFIRMATIVE_TEST_VALUE - } - , [ - 'In the affirmative case the value should be settable to a valid string' - , 'and by setting this value this should mutate the instance' + em.serviceContext, + { + service: AFFIRMATIVE_TEST_VALUE, + version: AFFIRMATIVE_TEST_VALUE, + }, + [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', ].join(' ') - ); + ); }); it('Should set the default values', function() { em.setServiceContext(DEFAULT_TEST_VALUE, DEFAULT_TEST_VALUE); assert.deepEqual( - em.serviceContext - , { - service: DEFAULT_TEST_VALUE - , version: DEFAULT_TEST_VALUE - } - , [ - 'In resetting to default valid values the instance should reflect the' - , 'value update' + em.serviceContext, + { + service: DEFAULT_TEST_VALUE, + version: DEFAULT_TEST_VALUE, + }, + [ + 'In resetting to default valid values the instance should reflect the', + 'value update', ].join(' ') - ); + ); }); it('Should still set version with affirmative value', function() { em.setServiceContext(null, AFFIRMATIVE_TEST_VALUE); assert.deepEqual( - em.serviceContext - , { - service: DEFAULT_SERVICE_VALUE - , version: AFFIRMATIVE_TEST_VALUE - } - , [ - 'Providing only a valid value to the second argument of' - , 'setServiceContext should set the service property as an empty string' - , 'but set the version property to the affirmative value.' - ].join(' ') - ); + em.serviceContext, + { + service: DEFAULT_SERVICE_VALUE, + version: AFFIRMATIVE_TEST_VALUE, + }, + [ + 'Providing only a valid value to the second argument of', + 'setServiceContext should set the service property as an empty string', + 'but set the version property to the affirmative value.', + ].join(' ') + ); }); it('Should still set service with affirmative value', function() { em.setServiceContext(AFFIRMATIVE_TEST_VALUE, null); assert.deepEqual( - em.serviceContext - , { - service: AFFIRMATIVE_TEST_VALUE - , version: DEFAULT_VERSION_VALUE - } - , [ - 'Providing only a valid value to the first argument of' - , 'setServiceContext should set the version property as an empty string' - , 'but set the service property to the affirmative value.' - ].join(' ') - ); + em.serviceContext, + { + service: AFFIRMATIVE_TEST_VALUE, + version: DEFAULT_VERSION_VALUE, + }, + [ + 'Providing only a valid value to the first argument of', + 'setServiceContext should set the version property as an empty string', + 'but set the service property to the affirmative value.', + ].join(' ') + ); }); it('Should set default values on both', function() { em.setServiceContext(null, null); assert.deepEqual( - em.serviceContext - , { - service: DEFAULT_SERVICE_VALUE - , version: DEFAULT_VERSION_VALUE - } - , [ - 'Providing null as the value to both arguments should set both' - , 'properties as empty strings.' + em.serviceContext, + { + service: DEFAULT_SERVICE_VALUE, + version: DEFAULT_VERSION_VALUE, + }, + [ + 'Providing null as the value to both arguments should set both', + 'properties as empty strings.', ].join(' ') - ); + ); }); it('Should set default values on both', function() { em.setServiceContext(2, 1.3); assert.deepEqual( - em.serviceContext - , { - service: DEFAULT_SERVICE_VALUE - , version: DEFAULT_VERSION_VALUE - } - , [ - 'Providing numbers as the value to both arguments should set both' - , 'properties as empty strings.' + em.serviceContext, + { + service: DEFAULT_SERVICE_VALUE, + version: DEFAULT_VERSION_VALUE, + }, + [ + 'Providing numbers as the value to both arguments should set both', + 'properties as empty strings.', ].join(' ') - ); + ); }); it('Should set as default', function() { - em.setServiceContext({ test: 'true' }, []); + em.setServiceContext({test: 'true'}, []); assert.deepEqual( - em.serviceContext - , { - service: DEFAULT_SERVICE_VALUE - , version: DEFAULT_VERSION_VALUE - } - , [ - 'Providing arrays or objects as the value to both arguments' - , 'should set both properties as empty strings.' + em.serviceContext, + { + service: DEFAULT_SERVICE_VALUE, + version: DEFAULT_VERSION_VALUE, + }, + [ + 'Providing arrays or objects as the value to both arguments', + 'should set both properties as empty strings.', ].join(' ') - ); + ); }); it('Should set as default', function() { em.setServiceContext(); assert.deepEqual( - em.serviceContext - , { - service: DEFAULT_SERVICE_VALUE - , version: DEFAULT_VERSION_VALUE - } - , 'Providing no arguments should set both properties as empty strings' - ); - }) + em.serviceContext, + { + service: DEFAULT_SERVICE_VALUE, + version: DEFAULT_VERSION_VALUE, + }, + 'Providing no arguments should set both properties as empty strings' + ); + }); }); -describe( - 'Fuzzing against setMessage', - function() { - var em; - beforeEach(function() {em = new ErrorMessage()}); - var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; - var NEGATIVE_TEST_VALUE = ''; - - it('Should set the message', function() { - em.setMessage(AFFIRMATIVE_TEST_VALUE); - assert( - em.message === AFFIRMATIVE_TEST_VALUE - , [ - 'In the affirmative case the value should be settable to a valid string' - , 'and by setting this value this should mutate the instance' - ].join(' ') - ); - }); - it('Should default', function() { - em.setMessage(); - assert( - em.message === NEGATIVE_TEST_VALUE - , [ - 'By providing no argument (undefined) to setMessage the property' - , 'message should be set to an empty string on the instance' - ].join(' ') - ); - }); - } -); +describe('Fuzzing against setMessage', function() { + var em; + beforeEach(function() { + em = new ErrorMessage(); + }); + var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; + var NEGATIVE_TEST_VALUE = ''; -describe( - 'Fuzzing against setHttpMethod', - function() { - var em; - var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; - var NEGATIVE_TEST_VALUE = ''; - beforeEach(function() {em = new ErrorMessage()}); - it('Should set the method', function() { - em.setHttpMethod(AFFIRMATIVE_TEST_VALUE); - assert( - em.context.httpRequest.method === AFFIRMATIVE_TEST_VALUE - , [ - 'In the affirmative case the value should be settable to a valid string' - , 'and by setting this value this should mutate the instance' - ].join(' ') - ); - }); - it('Should default', function() { - em.setHttpMethod(); - assert( - em.context.httpRequest.method === NEGATIVE_TEST_VALUE - , [ - 'By providing no argument (undefined) to setHttpMethod the property' - , 'message should be set to an empty string on the instance' - ].join(' ') - ); - }); - } -); + it('Should set the message', function() { + em.setMessage(AFFIRMATIVE_TEST_VALUE); + assert( + em.message === AFFIRMATIVE_TEST_VALUE, + [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ') + ); + }); + it('Should default', function() { + em.setMessage(); + assert( + em.message === NEGATIVE_TEST_VALUE, + [ + 'By providing no argument (undefined) to setMessage the property', + 'message should be set to an empty string on the instance', + ].join(' ') + ); + }); +}); -describe( - 'Fuzzing against setUrl', - function() { - var em; - var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; - var NEGATIVE_TEST_VALUE = ''; - beforeEach(function() {em = new ErrorMessage()}); - it('Should set url', function() { - em.setUrl(AFFIRMATIVE_TEST_VALUE); - assert( - em.context.httpRequest.url === AFFIRMATIVE_TEST_VALUE - , [ - 'In the affirmative case the value should be settable to a valid string' - , 'and by setting this value this should mutate the instance' - ].join(' ') - ); - }); - it('Should default', function() { - em.setUrl(); - assert( - em.context.httpRequest.url === NEGATIVE_TEST_VALUE - , [ - 'By providing no argument (undefined) to setUrl the property' - , 'message should be set to an empty string on the instance' - ].join(' ') - ); - }); - } -); +describe('Fuzzing against setHttpMethod', function() { + var em; + var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; + var NEGATIVE_TEST_VALUE = ''; + beforeEach(function() { + em = new ErrorMessage(); + }); + it('Should set the method', function() { + em.setHttpMethod(AFFIRMATIVE_TEST_VALUE); + assert( + em.context.httpRequest.method === AFFIRMATIVE_TEST_VALUE, + [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ') + ); + }); + it('Should default', function() { + em.setHttpMethod(); + assert( + em.context.httpRequest.method === NEGATIVE_TEST_VALUE, + [ + 'By providing no argument (undefined) to setHttpMethod the property', + 'message should be set to an empty string on the instance', + ].join(' ') + ); + }); +}); +describe('Fuzzing against setUrl', function() { + var em; + var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; + var NEGATIVE_TEST_VALUE = ''; + beforeEach(function() { + em = new ErrorMessage(); + }); + it('Should set url', function() { + em.setUrl(AFFIRMATIVE_TEST_VALUE); + assert( + em.context.httpRequest.url === AFFIRMATIVE_TEST_VALUE, + [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ') + ); + }); + it('Should default', function() { + em.setUrl(); + assert( + em.context.httpRequest.url === NEGATIVE_TEST_VALUE, + [ + 'By providing no argument (undefined) to setUrl the property', + 'message should be set to an empty string on the instance', + ].join(' ') + ); + }); +}); -describe( - 'Fuzzing against setUserAgent', - function() { - var em; - var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; - var NEGATIVE_TEST_VALUE = ''; - beforeEach(function() {em = new ErrorMessage()}); - it('Should set userAgent', function() { - em.setUserAgent(AFFIRMATIVE_TEST_VALUE); - assert( - em.context.httpRequest.userAgent === AFFIRMATIVE_TEST_VALUE - , [ - 'In the affirmative case the value should be settable to a valid string' - , 'and by setting this value this should mutate the instance' - ].join(' ') - ); - }); - it('Should default', function() { - em.setUserAgent(); - assert( - em.context.httpRequest.userAgent === NEGATIVE_TEST_VALUE - , [ - 'By providing no argument (undefined) to setUserAgent the property' - , 'message should be set to an empty string on the instance' - ].join(' ') - ); - }); - } -); +describe('Fuzzing against setUserAgent', function() { + var em; + var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; + var NEGATIVE_TEST_VALUE = ''; + beforeEach(function() { + em = new ErrorMessage(); + }); + it('Should set userAgent', function() { + em.setUserAgent(AFFIRMATIVE_TEST_VALUE); + assert( + em.context.httpRequest.userAgent === AFFIRMATIVE_TEST_VALUE, + [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ') + ); + }); + it('Should default', function() { + em.setUserAgent(); + assert( + em.context.httpRequest.userAgent === NEGATIVE_TEST_VALUE, + [ + 'By providing no argument (undefined) to setUserAgent the property', + 'message should be set to an empty string on the instance', + ].join(' ') + ); + }); +}); describe('Fuzzing against setReferrer', function() { var em; var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; var NEGATIVE_TEST_VALUE = ''; - beforeEach(function() {em = new ErrorMessage()}); + beforeEach(function() { + em = new ErrorMessage(); + }); it('Should set referrer', function() { em.setReferrer(AFFIRMATIVE_TEST_VALUE); assert( - em.context.httpRequest.referrer === AFFIRMATIVE_TEST_VALUE - , [ - 'In the affirmative case the value should be settable to a valid string' - , 'and by setting this value this should mutate the instance' + em.context.httpRequest.referrer === AFFIRMATIVE_TEST_VALUE, + [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', ].join(' ') - ); + ); }); it('Should default', function() { em.setReferrer(); assert( - em.context.httpRequest.referrer === NEGATIVE_TEST_VALUE - , [ - 'By providing no argument (undefined) to setReferrer the property' - , 'message should be set to an empty string on the instance' + em.context.httpRequest.referrer === NEGATIVE_TEST_VALUE, + [ + 'By providing no argument (undefined) to setReferrer the property', + 'message should be set to an empty string on the instance', ].join(' ') - ); + ); }); }); @@ -340,26 +334,28 @@ describe('Fuzzing against setResponseStatusCode', function() { var em; var AFFIRMATIVE_TEST_VALUE = 200; var NEGATIVE_TEST_VALUE = 0; - beforeEach(function() {em = new ErrorMessage()}); + beforeEach(function() { + em = new ErrorMessage(); + }); it('Should set responseStatusCode', function() { em.setResponseStatusCode(AFFIRMATIVE_TEST_VALUE); assert( - em.context.httpRequest.responseStatusCode === AFFIRMATIVE_TEST_VALUE - , [ - 'In the affirmative case the value should be settable to a valid string' - , 'and by setting this value this should mutate the instance' + em.context.httpRequest.responseStatusCode === AFFIRMATIVE_TEST_VALUE, + [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', ].join(' ') - ); + ); }); it('Should default', function() { em.setResponseStatusCode(); assert( - em.context.httpRequest.responseStatusCode === NEGATIVE_TEST_VALUE - , [ - 'By providing no argument (undefined) to setResponseStatusCode the property' - , 'message should be set to an empty string on the instance' + em.context.httpRequest.responseStatusCode === NEGATIVE_TEST_VALUE, + [ + 'By providing no argument (undefined) to setResponseStatusCode the property', + 'message should be set to an empty string on the instance', ].join(' ') - ); + ); }); }); @@ -367,83 +363,86 @@ describe('Fuzzing against setRemoteIp', function() { var em; var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; var NEGATIVE_TEST_VALUE = ''; - beforeEach(function() {em = new ErrorMessage()}); + beforeEach(function() { + em = new ErrorMessage(); + }); it('Should set remoteIp', function() { em.setRemoteIp(AFFIRMATIVE_TEST_VALUE); assert( - em.context.httpRequest.remoteIp === AFFIRMATIVE_TEST_VALUE - , [ - 'In the affirmative case the value should be settable to a valid string' - , 'and by setting this value this should mutate the instance' + em.context.httpRequest.remoteIp === AFFIRMATIVE_TEST_VALUE, + [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', ].join(' ') - ); + ); }); it('Should default', function() { em.setRemoteIp(); assert( - em.context.httpRequest.remoteIp === NEGATIVE_TEST_VALUE - , [ - 'By providing no argument (undefined) to setRemoteIp the property' - , 'message should be set to an empty string on the instance' + em.context.httpRequest.remoteIp === NEGATIVE_TEST_VALUE, + [ + 'By providing no argument (undefined) to setRemoteIp the property', + 'message should be set to an empty string on the instance', ].join(' ') - ); + ); }); }); -describe( - 'Fuzzing against setUser', - function() { - var em; - var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; - var NEGATIVE_TEST_VALUE = ''; - beforeEach(function() {em = new ErrorMessage()}); - it('Should set user', function() { - em.setUser(AFFIRMATIVE_TEST_VALUE); - assert( - em.context.user === AFFIRMATIVE_TEST_VALUE - , [ - 'In the affirmative case the value should be settable to a valid string' - , 'and by setting this value this should mutate the instance' - ].join(' ') - ); - }); - it('Should default', function() { - em.setUser(); - assert( - em.context.user === NEGATIVE_TEST_VALUE - , [ - 'By providing no argument (undefined) to setUser the property' - , 'user should be set to an empty string on the instance' - ].join(' ') - ); - }); - } -); +describe('Fuzzing against setUser', function() { + var em; + var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; + var NEGATIVE_TEST_VALUE = ''; + beforeEach(function() { + em = new ErrorMessage(); + }); + it('Should set user', function() { + em.setUser(AFFIRMATIVE_TEST_VALUE); + assert( + em.context.user === AFFIRMATIVE_TEST_VALUE, + [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ') + ); + }); + it('Should default', function() { + em.setUser(); + assert( + em.context.user === NEGATIVE_TEST_VALUE, + [ + 'By providing no argument (undefined) to setUser the property', + 'user should be set to an empty string on the instance', + ].join(' ') + ); + }); +}); describe('Fuzzing against setFilePath', function() { var em; var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; var NEGATIVE_TEST_VALUE = ''; - beforeEach(function() {em = new ErrorMessage()}); + beforeEach(function() { + em = new ErrorMessage(); + }); it('Should set filePath', function() { em.setFilePath(AFFIRMATIVE_TEST_VALUE); assert( - em.context.reportLocation.filePath === AFFIRMATIVE_TEST_VALUE - , [ - 'In the affirmative case the value should be settable to a valid string' - , 'and by setting this value this should mutate the instance' + em.context.reportLocation.filePath === AFFIRMATIVE_TEST_VALUE, + [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', ].join(' ') - ); + ); }); it('Should default', function() { em.setFilePath(); assert( - em.context.reportLocation.filePath === NEGATIVE_TEST_VALUE - , [ - 'By providing no argument (undefined) to setFilePath the property' - , 'filePath should be set to an empty string on the instance' + em.context.reportLocation.filePath === NEGATIVE_TEST_VALUE, + [ + 'By providing no argument (undefined) to setFilePath the property', + 'filePath should be set to an empty string on the instance', ].join(' ') - ); + ); }); }); @@ -451,26 +450,28 @@ describe('Fuzzing against setLineNumber', function() { var em; var AFFIRMATIVE_TEST_VALUE = 27; var NEGATIVE_TEST_VALUE = 0; - beforeEach(function() {em = new ErrorMessage()}); + beforeEach(function() { + em = new ErrorMessage(); + }); it('Should set lineNumber', function() { em.setLineNumber(AFFIRMATIVE_TEST_VALUE); assert( - em.context.reportLocation.lineNumber === AFFIRMATIVE_TEST_VALUE - , [ - 'In the affirmative case the value should be settable to a valid string' - , 'and by setting this value this should mutate the instance' + em.context.reportLocation.lineNumber === AFFIRMATIVE_TEST_VALUE, + [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', ].join(' ') - ); + ); }); it('Should default', function() { em.setLineNumber(); assert( - em.context.reportLocation.lineNumber === NEGATIVE_TEST_VALUE - , [ - 'By providing no argument (undefined) to setLineNumber the property' - , 'lineNumber should be set to an empty string on the instance' + em.context.reportLocation.lineNumber === NEGATIVE_TEST_VALUE, + [ + 'By providing no argument (undefined) to setLineNumber the property', + 'lineNumber should be set to an empty string on the instance', ].join(' ') - ); + ); }); }); @@ -478,26 +479,28 @@ describe('Fuzzing against setFunctionName', function() { var em; var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; var NEGATIVE_TEST_VALUE = ''; - beforeEach(function() {em = new ErrorMessage()}); + beforeEach(function() { + em = new ErrorMessage(); + }); it('Should set functionName', function() { em.setFunctionName(AFFIRMATIVE_TEST_VALUE); assert( - em.context.reportLocation.functionName === AFFIRMATIVE_TEST_VALUE - , [ - 'In the affirmative case the value should be settable to a valid string' - , 'and by setting this value this should mutate the instance' + em.context.reportLocation.functionName === AFFIRMATIVE_TEST_VALUE, + [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', ].join(' ') - ); + ); }); it('Should default', function() { em.setFunctionName(); assert( - em.context.reportLocation.functionName === NEGATIVE_TEST_VALUE - , [ - 'By providing no argument (undefined) to setFunctionName the property' - , 'functionName should be set to an empty string on the instance' + em.context.reportLocation.functionName === NEGATIVE_TEST_VALUE, + [ + 'By providing no argument (undefined) to setFunctionName the property', + 'functionName should be set to an empty string on the instance', ].join(' ') - ); + ); }); }); @@ -509,174 +512,171 @@ describe('Fuzzing against consumeRequestInformation', function() { var NEGATIVE_NUMBER_CASE = 0; var AFFIRMATIVE_TEST_VALUE = { - method: A_VALID_STRING - , url: A_VALID_STRING - , userAgent: A_VALID_STRING - , referrer: A_VALID_STRING - , statusCode: A_VALID_NUMBER - , remoteAddress: A_VALID_STRING + method: A_VALID_STRING, + url: A_VALID_STRING, + userAgent: A_VALID_STRING, + referrer: A_VALID_STRING, + statusCode: A_VALID_NUMBER, + remoteAddress: A_VALID_STRING, }; var NEGATIVE_TEST_VALUE = { - method: null - , url: A_VALID_NUMBER - , userAgent: {} - , referrer: [] - , statusCode: A_VALID_STRING - , remoteAddress: undefined + method: null, + url: A_VALID_NUMBER, + userAgent: {}, + referrer: [], + statusCode: A_VALID_STRING, + remoteAddress: undefined, }; it('Should consume the stubbed request object', function() { em.consumeRequestInformation(AFFIRMATIVE_TEST_VALUE); assert( - em.context.httpRequest.method === A_VALID_STRING - , [ - 'The error messages method, given a valid string, should be' - , 'set to that value' + em.context.httpRequest.method === A_VALID_STRING, + [ + 'The error messages method, given a valid string, should be', + 'set to that value', ].join(' ') - ); + ); assert( - em.context.httpRequest.url === A_VALID_STRING - , [ - 'The error messages url, given a valid string, should be' - , 'set to that value' + em.context.httpRequest.url === A_VALID_STRING, + [ + 'The error messages url, given a valid string, should be', + 'set to that value', ].join(' ') - ); + ); assert( - em.context.httpRequest.userAgent === A_VALID_STRING - , [ - 'The error messages userAgent, given a valid string, should be' - , 'set to that value' + em.context.httpRequest.userAgent === A_VALID_STRING, + [ + 'The error messages userAgent, given a valid string, should be', + 'set to that value', ].join(' ') - ); + ); assert( - em.context.httpRequest.referrer === A_VALID_STRING - , [ - 'The error messages referrer, given a valid string, should be' - , 'set to that value' + em.context.httpRequest.referrer === A_VALID_STRING, + [ + 'The error messages referrer, given a valid string, should be', + 'set to that value', ].join(' ') - ); + ); assert( - em.context.httpRequest.responseStatusCode === A_VALID_NUMBER - , [ - 'The error messages responseStatusCode, given a valid number, should be' - , 'set to that value' + em.context.httpRequest.responseStatusCode === A_VALID_NUMBER, + [ + 'The error messages responseStatusCode, given a valid number, should be', + 'set to that value', ].join(' ') - ); + ); assert( - em.context.httpRequest.remoteIp === A_VALID_STRING - , [ - 'The error messages remoteAddress, given a valid string, should be' - , 'set to that value' + em.context.httpRequest.remoteIp === A_VALID_STRING, + [ + 'The error messages remoteAddress, given a valid string, should be', + 'set to that value', ].join(' ') - ); + ); }); it('Should default when consuming a malformed request object', function() { em.consumeRequestInformation(null); assert( - em.context.httpRequest.method === A_VALID_STRING - , [ - 'The error messages method, given an invalid type a the top-level' - , 'should remain untouched' - ].join(' ') - ); - assert( - em.context.httpRequest.url === A_VALID_STRING - , [ - 'The error messages url, given an invalid type a the top-level' - , 'should remain untouched' - ].join(' ') - ); - assert( - em.context.httpRequest.userAgent === A_VALID_STRING - , [ - 'The error messages userAgent, given an invalid type a the top-level' - , 'should remain untouched' - ].join(' ') - ); - assert( - em.context.httpRequest.referrer === A_VALID_STRING - , [ - 'The error messages referrer, given an invalid type a the top-level' - , 'should remain untouched' - ].join(' ') - ); - assert( - em.context.httpRequest.responseStatusCode === A_VALID_NUMBER - , [ - 'The error messages responseStatusCode, given an invalid type a the top-level' - , 'should remain untouched' - ].join(' ') - ); - assert( - em.context.httpRequest.remoteIp === A_VALID_STRING - , [ - 'The error messages remoteAddress, given an invalid type a the top-level' - , 'should remain untouched' - ].join(' ') - ); - }); - it('Should default when consuming mistyped response object properties', - function() { - em.consumeRequestInformation(NEGATIVE_TEST_VALUE); - assert( - em.context.httpRequest.method === NEGATIVE_STRING_CASE - , [ - 'The error messages method, given an invalid input should default to' - , 'the negative value' - ].join(' ') - ); - assert( - em.context.httpRequest.url === NEGATIVE_STRING_CASE - , [ - 'The error messages url, given an invalid input should default to' - , 'the negative value' - ].join(' ') - ); - assert( - em.context.httpRequest.userAgent === NEGATIVE_STRING_CASE - , [ - 'The error messages userAgent, ggiven an invalid input should default to' - , 'the negative value' - ].join(' ') - ); - assert( - em.context.httpRequest.referrer === NEGATIVE_STRING_CASE - , [ - 'The error messages referrer, given an invalid input should default to' - , 'the negative value' - ].join(' ') - ); - assert( - em.context.httpRequest.responseStatusCode === NEGATIVE_NUMBER_CASE - , [ - 'The error messages responseStatusCode, given an invalid input should default to' - , 'the negative value' - ].join(' ') - ); - assert( - em.context.httpRequest.remoteIp === NEGATIVE_STRING_CASE - , [ - 'The error messages remoteAddress, given an invalid input should default to' - , 'the negative value' - ].join(' ') - ); - } - ); - it('Should return the instance on calling consumeRequestInformation', - function() { - assert( - em.consumeRequestInformation(AFFIRMATIVE_TEST_VALUE) instanceof ErrorMessage - , [ - 'Calling consumeRequestInformation with valid input should return' - , 'the ErrorMessage instance' - ].join(' ') - ); - assert( - em.consumeRequestInformation() instanceof ErrorMessage - , [ - 'Calling consumeRequestInformation with invalid input should return' - , 'the ErrorMessage instance' - ].join(' ') - ); - } - ); + em.context.httpRequest.method === A_VALID_STRING, + [ + 'The error messages method, given an invalid type a the top-level', + 'should remain untouched', + ].join(' ') + ); + assert( + em.context.httpRequest.url === A_VALID_STRING, + [ + 'The error messages url, given an invalid type a the top-level', + 'should remain untouched', + ].join(' ') + ); + assert( + em.context.httpRequest.userAgent === A_VALID_STRING, + [ + 'The error messages userAgent, given an invalid type a the top-level', + 'should remain untouched', + ].join(' ') + ); + assert( + em.context.httpRequest.referrer === A_VALID_STRING, + [ + 'The error messages referrer, given an invalid type a the top-level', + 'should remain untouched', + ].join(' ') + ); + assert( + em.context.httpRequest.responseStatusCode === A_VALID_NUMBER, + [ + 'The error messages responseStatusCode, given an invalid type a the top-level', + 'should remain untouched', + ].join(' ') + ); + assert( + em.context.httpRequest.remoteIp === A_VALID_STRING, + [ + 'The error messages remoteAddress, given an invalid type a the top-level', + 'should remain untouched', + ].join(' ') + ); + }); + it('Should default when consuming mistyped response object properties', function() { + em.consumeRequestInformation(NEGATIVE_TEST_VALUE); + assert( + em.context.httpRequest.method === NEGATIVE_STRING_CASE, + [ + 'The error messages method, given an invalid input should default to', + 'the negative value', + ].join(' ') + ); + assert( + em.context.httpRequest.url === NEGATIVE_STRING_CASE, + [ + 'The error messages url, given an invalid input should default to', + 'the negative value', + ].join(' ') + ); + assert( + em.context.httpRequest.userAgent === NEGATIVE_STRING_CASE, + [ + 'The error messages userAgent, ggiven an invalid input should default to', + 'the negative value', + ].join(' ') + ); + assert( + em.context.httpRequest.referrer === NEGATIVE_STRING_CASE, + [ + 'The error messages referrer, given an invalid input should default to', + 'the negative value', + ].join(' ') + ); + assert( + em.context.httpRequest.responseStatusCode === NEGATIVE_NUMBER_CASE, + [ + 'The error messages responseStatusCode, given an invalid input should default to', + 'the negative value', + ].join(' ') + ); + assert( + em.context.httpRequest.remoteIp === NEGATIVE_STRING_CASE, + [ + 'The error messages remoteAddress, given an invalid input should default to', + 'the negative value', + ].join(' ') + ); + }); + it('Should return the instance on calling consumeRequestInformation', function() { + assert( + em.consumeRequestInformation(AFFIRMATIVE_TEST_VALUE) instanceof + ErrorMessage, + [ + 'Calling consumeRequestInformation with valid input should return', + 'the ErrorMessage instance', + ].join(' ') + ); + assert( + em.consumeRequestInformation() instanceof ErrorMessage, + [ + 'Calling consumeRequestInformation with invalid input should return', + 'the ErrorMessage instance', + ].join(' ') + ); + }); }); diff --git a/handwritten/error-reporting/test/unit/classes/request-information-container.js b/handwritten/error-reporting/test/unit/classes/request-information-container.js index 508eb6ebcb4..75aeaabc432 100644 --- a/handwritten/error-reporting/test/unit/classes/request-information-container.js +++ b/handwritten/error-reporting/test/unit/classes/request-information-container.js @@ -17,49 +17,48 @@ 'use strict'; var assert = require('assert'); -var RequestInformationContainer = - require('../../../src/classes/request-information-container.js'); +var RequestInformationContainer = require('../../../src/classes/request-information-container.js'); var Fuzzer = require('../../../utils/fuzzer.js'); describe('RequestInformationContainer', function() { var f = new Fuzzer(); var cbFn, ric; - beforeEach(function() {ric = new RequestInformationContainer();}); + beforeEach(function() { + ric = new RequestInformationContainer(); + }); describe('Fuzzing against RequestInformationContainer', function() { - it('Should return the property as an empty string', - function() { - cbFn = function() { - assert.deepEqual(ric.url, ''); - }; - f.fuzzFunctionForTypes(ric.setUrl, ['string'], cbFn, ric); - } - ); + it('Should return the property as an empty string', function() { + cbFn = function() { + assert.deepEqual(ric.url, ''); + }; + f.fuzzFunctionForTypes(ric.setUrl, ['string'], cbFn, ric); + }); it('Should return the method property as an empty string', function() { - cbFn = function(returnValue) { + cbFn = function() { assert.deepEqual(ric.method, ''); }; f.fuzzFunctionForTypes(ric.setMethod, ['string'], cbFn, ric); }); it('Should return the referrer property as an empty string', function() { - cbFn = function(returnValue) { + cbFn = function() { assert.deepEqual(ric.referrer, ''); }; f.fuzzFunctionForTypes(ric.setReferrer, ['string'], cbFn, ric); }); it('Should return the userAgent property as an empty string', function() { - cbFn = function(returnValue) { + cbFn = function() { assert.deepEqual(ric.userAgent, ''); }; f.fuzzFunctionForTypes(ric.setUserAgent, ['string'], cbFn, ric); }); it('Should return the property as an empty string', function() { - cbFn = function(returnValue) { + cbFn = function() { assert.deepEqual(ric.remoteAddress, ''); }; f.fuzzFunctionForTypes(ric.setRemoteAddress, ['string'], cbFn, ric); }); it('Should return the default value for statusCode', function() { - cbFn = function(returnValue) { + cbFn = function() { assert.strictEqual(ric.statusCode, 0); }; f.fuzzFunctionForTypes(ric.setStatusCode, ['number'], cbFn, ric); diff --git a/handwritten/error-reporting/test/unit/configuration.js b/handwritten/error-reporting/test/unit/configuration.js index b1d13f0d306..5a3a0e5ad5a 100644 --- a/handwritten/error-reporting/test/unit/configuration.js +++ b/handwritten/error-reporting/test/unit/configuration.js @@ -22,7 +22,7 @@ var Configuration = require('../fixtures/configuration.js'); var Fuzzer = require('../../utils/fuzzer.js'); var level = process.env.GCLOUD_ERRORS_LOGLEVEL; var logger = require('../../src/logger.js')({ - logLevel: isNumber(level) ? level : 4 + logLevel: isNumber(level) ? level : 4, }); var nock = require('nock'); @@ -32,7 +32,7 @@ var env = { NODE_ENV: process.env.NODE_ENV, GCLOUD_PROJECT: process.env.GCLOUD_PROJECT, GAE_MODULE_NAME: process.env.GAE_MODULE_NAME, - GAE_MODULE_VERSION: process.env.GAE_MODULE_VERSION + GAE_MODULE_VERSION: process.env.GAE_MODULE_VERSION, }; function sterilizeEnv() { delete process.env.NODE_ENV; @@ -47,135 +47,150 @@ function restoreEnv() { process.env.GAE_MODULE_VERSION = env.GAE_MODULE_VERSION; } function createDeadMetadataService() { - return nock(METADATA_URL).get('/project-id').times(1).reply(500); + return nock(METADATA_URL) + .get('/project-id') + .times(1) + .reply(500); } describe('Configuration class', function() { - before(function() {sterilizeEnv();}); - after(function() {restoreEnv();}); - describe( - 'Initialization', - function() { - var f = new Fuzzer(); - var stubConfig = {test: true}; - describe('fuzzing the constructor', function() { - it('Should return default values', function() { - var c; - f.fuzzFunctionForTypes( - function(givenConfigFuzz) { - c = new Configuration(givenConfigFuzz, logger); - assert.deepEqual(c._givenConfiguration, {}); - }, - ['object'] - ); - }); - }); - describe('valid config and default values', function() { + before(function() { + sterilizeEnv(); + }); + after(function() { + restoreEnv(); + }); + describe('Initialization', function() { + var f = new Fuzzer(); + var stubConfig = {test: true}; + describe('fuzzing the constructor', function() { + it('Should return default values', function() { var c; - before(function() {process.env.NODE_ENV = 'development';}); - after(function() {sterilizeEnv();}); - it('Should not throw with a valid configuration', function() { - assert.doesNotThrow(function() { - c = new Configuration(stubConfig, logger); - }); - }); - it('Should have a property reflecting the config argument', function() { - assert.deepEqual(c._givenConfiguration, stubConfig); - }); - it('Should not have a project id', function() { - assert.strictEqual(c._projectId, null); + f.fuzzFunctionForTypes( + function(givenConfigFuzz) { + c = new Configuration(givenConfigFuzz, logger); + assert.deepEqual(c._givenConfiguration, {}); + }, + ['object'] + ); + }); + }); + describe('valid config and default values', function() { + var c; + before(function() { + process.env.NODE_ENV = 'development'; + }); + after(function() { + sterilizeEnv(); + }); + it('Should not throw with a valid configuration', function() { + assert.doesNotThrow(function() { + c = new Configuration(stubConfig, logger); }); - it('Should not have a key', function() { - assert.strictEqual(c.getKey(), null); + }); + it('Should have a property reflecting the config argument', function() { + assert.deepEqual(c._givenConfiguration, stubConfig); + }); + it('Should not have a project id', function() { + assert.strictEqual(c._projectId, null); + }); + it('Should not have a key', function() { + assert.strictEqual(c.getKey(), null); + }); + it('Should have a default service context', function() { + assert.deepEqual(c.getServiceContext(), { + service: 'node', + version: undefined, }); - it('Should have a default service context', function() { - assert.deepEqual(c.getServiceContext(), - {service: 'node', version: undefined}); + }); + it('Should specify to not report unhandledRejections', function() { + assert.strictEqual(c.getReportUnhandledRejections(), false); + }); + }); + describe('with ignoreEnvironmentCheck', function() { + var conf = merge({}, stubConfig, {ignoreEnvironmentCheck: true}); + var c = new Configuration(conf, logger); + it('Should reportErrorsToAPI', function() { + assert.strictEqual(c.getShouldReportErrorsToAPI(), true); + }); + }); + describe('without ignoreEnvironmentCheck', function() { + describe('report behaviour with production env', function() { + var c; + before(function() { + sterilizeEnv(); + process.env.NODE_ENV = 'production'; + c = new Configuration(undefined, logger); }); - it('Should specify to not report unhandledRejections', function() { - assert.strictEqual(c.getReportUnhandledRejections(), false); + after(function() { + sterilizeEnv(); }); - }); - describe('with ignoreEnvironmentCheck', function() { - var conf = merge({}, stubConfig, {ignoreEnvironmentCheck: true}); - var c = new Configuration(conf, logger); it('Should reportErrorsToAPI', function() { assert.strictEqual(c.getShouldReportErrorsToAPI(), true); }); }); - describe('without ignoreEnvironmentCheck', function() { - describe('report behaviour with production env', function() { - var c; - before(function() { - sterilizeEnv(); - process.env.NODE_ENV = 'production'; - c = new Configuration(undefined, logger); - }); - after(function() {sterilizeEnv();}); - it('Should reportErrorsToAPI', function() { - assert.strictEqual(c.getShouldReportErrorsToAPI(), true); + describe('exception behaviour', function() { + it('Should throw if invalid type for key', function() { + assert.throws(function() { + new Configuration({key: null}, logger); }); }); - describe('exception behaviour', function() { - it('Should throw if invalid type for key', function() { - assert.throws(function() { - new Configuration({key: null}, logger); - }); + it('Should throw if invalid for ignoreEnvironmentCheck', function() { + assert.throws(function() { + new Configuration({ignoreEnvironmentCheck: null}, logger); }); - it('Should throw if invalid for ignoreEnvironmentCheck', function() { - assert.throws(function() { - new Configuration({ignoreEnvironmentCheck: null}, logger); - }); + }); + it('Should throw if invalid for serviceContext.service', function() { + assert.throws(function() { + new Configuration({serviceContext: {service: false}}, logger); }); - it('Should throw if invalid for serviceContext.service', function() { - assert.throws(function() { - new Configuration({serviceContext: {service: false}}, logger); - }); + }); + it('Should throw if invalid for serviceContext.version', function() { + assert.throws(function() { + new Configuration({serviceContext: {version: true}}, logger); }); - it('Should throw if invalid for serviceContext.version', function() { - assert.throws(function() { - new Configuration({serviceContext: {version: true}}, logger); - }); + }); + it('Should throw if invalid for reportUnhandledRejections', function() { + assert.throws(function() { + new Configuration({reportUnhandledRejections: 'INVALID'}, logger); }); - it('Should throw if invalid for reportUnhandledRejections', - function() { - assert.throws(function() { - new Configuration({ reportUnhandledRejections: 'INVALID' }, - logger); - }); + }); + it('Should not throw given an empty object for serviceContext', function() { + assert.doesNotThrow(function() { + new Configuration({serviceContext: {}}, logger); }); - it('Should not throw given an empty object for serviceContext', - function() { - assert.doesNotThrow(function() { - new Configuration({serviceContext: {}}, logger); - }); - } - ); }); }); - } - ); + }); + }); describe('Configuration resource aquisition', function() { - before(function() {sterilizeEnv();}); + before(function() { + sterilizeEnv(); + }); describe('project id from configuration instance', function() { var pi = 'test'; var c; before(function() { c = new Configuration({projectId: pi}, logger); }); - after(function() {nock.cleanAll();}); + after(function() { + nock.cleanAll(); + }); it('Should return the project id', function() { assert.strictEqual(c.getProjectId(), pi); }); }); describe('project number from configuration instance', function() { var pn = 1234; - var serve, c; + var c; before(function() { sterilizeEnv(); c = new Configuration({projectId: pn}, logger); }); - after(function() {nock.cleanAll(); sterilizeEnv();}); + after(function() { + nock.cleanAll(); + sterilizeEnv(); + }); it('Should return the project number', function() { assert.strictEqual(c.getProjectId(), pn.toString()); }); @@ -183,10 +198,10 @@ describe('Configuration class', function() { }); describe('Exception behaviour', function() { describe('While lacking a project id', function() { - var serve, c; + var c; before(function() { sterilizeEnv(); - serve = createDeadMetadataService(); + createDeadMetadataService(); c = new Configuration(undefined, logger); }); after(function() { @@ -198,10 +213,10 @@ describe('Configuration class', function() { }); }); describe('Invalid type for projectId in runtime config', function() { - var serve, c; + var c; before(function() { sterilizeEnv(); - serve = createDeadMetadataService(); + createDeadMetadataService(); c = new Configuration({projectId: null}, logger); }); after(function() { @@ -224,8 +239,12 @@ describe('Configuration class', function() { restoreEnv(); }); describe('via env', function() { - before(function() {sterilizeEnv();}); - afterEach(function() {sterilizeEnv();}); + before(function() { + sterilizeEnv(); + }); + afterEach(function() { + sterilizeEnv(); + }); describe('no longer tests env itself', function() { var c; var projectId = 'test-xyz'; @@ -242,7 +261,7 @@ describe('Configuration class', function() { var projectId = 'test-abc'; var serviceContext = { service: 'test', - version: '1.x' + version: '1.x', }; before(function() { process.env.GCLOUD_PROJECT = projectId; @@ -256,18 +275,20 @@ describe('Configuration class', function() { }); }); describe('via runtime configuration', function() { - before(function() {sterilizeEnv();}); + before(function() { + sterilizeEnv(); + }); describe('serviceContext', function() { var c; var projectId = 'xyz123'; var serviceContext = { service: 'evaluation', - version: '2.x' + version: '2.x', }; before(function() { c = new Configuration({ projectId: projectId, - serviceContext: serviceContext + serviceContext: serviceContext, }); }); it('Should assign', function() { @@ -279,10 +300,13 @@ describe('Configuration class', function() { var projectId = '987abc'; var key = '1337-api-key'; before(function() { - c = new Configuration({ - key: key, - projectId: projectId - }, logger); + c = new Configuration( + { + key: key, + projectId: projectId, + }, + logger + ); }); it('Should assign', function() { assert.strictEqual(c.getKey(), key); @@ -293,12 +317,14 @@ describe('Configuration class', function() { var reportRejections = false; before(function() { c = new Configuration({ - reportUnhandledRejections: reportRejections + reportUnhandledRejections: reportRejections, }); }); it('Should assign', function() { - assert.strictEqual(c.getReportUnhandledRejections(), - reportRejections); + assert.strictEqual( + c.getReportUnhandledRejections(), + reportRejections + ); }); }); }); diff --git a/handwritten/error-reporting/test/unit/google-apis/auth-client.js b/handwritten/error-reporting/test/unit/google-apis/auth-client.js index 3278a1c6a92..134b66b36c0 100644 --- a/handwritten/error-reporting/test/unit/google-apis/auth-client.js +++ b/handwritten/error-reporting/test/unit/google-apis/auth-client.js @@ -20,13 +20,13 @@ var proxyquire = require('proxyquire'); var Configuration = require('../../../src/configuration.js'); -function verifyReportedMessage(config, errToReturn, expectedLogs) { +function verifyReportedMessage(config1, errToReturn, expectedLogs) { class ServiceStub { constructor() { this.authClient = { getToken: function(cb) { cb(errToReturn); - } + }, }; this.request = function() {}; } @@ -34,8 +34,8 @@ function verifyReportedMessage(config, errToReturn, expectedLogs) { var RequestHandler = proxyquire('../../../src/google-apis/auth-client.js', { '@google-cloud/common': { - Service: ServiceStub - } + Service: ServiceStub, + }, }); var logs = {}; @@ -51,36 +51,38 @@ function verifyReportedMessage(config, errToReturn, expectedLogs) { logs.info = ''; } logs.info += text; - } + }, }; - var config = new Configuration(config, logger); - new RequestHandler(config, logger); + var config2 = new Configuration(config1, logger); + new RequestHandler(config2, logger); assert.deepStrictEqual(logs, expectedLogs); } describe('RequestHandler', function() { it('should not request OAuth2 token if key is provided', function() { var config = { ignoreEnvironmentCheck: true, - key: 'key' + key: 'key', }; var message = 'Made OAuth2 Token Request'; verifyReportedMessage(config, new Error(message), { - info: 'API key provided; skipping OAuth2 token request.' + info: 'API key provided; skipping OAuth2 token request.', }); }); it('should issue a warning if it cannot communicate with the API', function() { - var config = { ignoreEnvironmentCheck: true }; + var config = {ignoreEnvironmentCheck: true}; var message = 'Test Error'; verifyReportedMessage(config, new Error(message), { - error: 'Unable to find credential information on instance. This ' + + error: + 'Unable to find credential information on instance. This ' + 'library will be unable to communicate with the Stackdriver API to ' + - 'save errors. Message: ' + message + 'save errors. Message: ' + + message, }); }); it('should not issue a warning if it can communicate with the API', function() { - var config = { ignoreEnvironmentCheck: true }; + var config = {ignoreEnvironmentCheck: true}; verifyReportedMessage(config, null, {}); verifyReportedMessage(config, undefined, {}); }); diff --git a/handwritten/error-reporting/test/unit/interfaces/express.js b/handwritten/error-reporting/test/unit/interfaces/express.js index 8072592998b..4582d43e169 100644 --- a/handwritten/error-reporting/test/unit/interfaces/express.js +++ b/handwritten/error-reporting/test/unit/interfaces/express.js @@ -29,30 +29,30 @@ describe('expressInterface', function() { describe('Given invalid input', function() { it('Should not throw errors', function() { var f = new Fuzzer(); - assert.doesNotThrow( - function() { - f.fuzzFunctionForTypes( - expressInterface, ['object', 'object'] - ); - return; - } - ); + assert.doesNotThrow(function() { + f.fuzzFunctionForTypes(expressInterface, ['object', 'object']); + return; + }); }); }); }); describe('Intended behaviour', function() { - var stubbedConfig = new Configuration({ - serviceContext: { - service: 'a_test_service', version: 'a_version' - } - }, createLogger({logLevel: 4})); + var stubbedConfig = new Configuration( + { + serviceContext: { + service: 'a_test_service', + version: 'a_version', + }, + }, + createLogger({logLevel: 4}) + ); stubbedConfig.lacksCredentials = function() { return false; }; var client = { sendError: function() { return; - } + }, }; var testError = new Error('This is a test'); var validBoundHandler = expressInterface(client, stubbedConfig); @@ -60,13 +60,16 @@ describe('expressInterface', function() { var res = validBoundHandler(testError, null, null, null); assert.deepEqual( res, - merge(new ErrorMessage().setMessage(testError.stack) - .setServiceContext( - stubbedConfig._serviceContext.service, - stubbedConfig._serviceContext.version), + merge( + new ErrorMessage() + .setMessage(testError.stack) + .setServiceContext( + stubbedConfig._serviceContext.service, + stubbedConfig._serviceContext.version + ), {eventTime: res.eventTime} - ) - ); + ) + ); }); describe('Calling back to express builtins', function() { it('Should callback to next', function(done) { @@ -80,10 +83,12 @@ describe('expressInterface', function() { done(); }; var client = { - sendError: sendError + sendError: sendError, }; var handler = expressInterface(client, stubbedConfig); - handler(testError, null, null, function() {return;}); + handler(testError, null, null, function() { + return; + }); }); }); }); diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.js b/handwritten/error-reporting/test/unit/interfaces/hapi.js index e2ef1cc2dea..aa675d0f6f6 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.js +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.js @@ -38,43 +38,51 @@ describe('Hapi interface', function() { }); }); describe('Providing valid input to the setup handler', function() { - var givenConfig = {getVersion: function() {return '1';}}; + var givenConfig = { + getVersion: function() { + return '1'; + }, + }; var plugin; - beforeEach(function() {plugin = hapiInterface(null, givenConfig);}); + beforeEach(function() { + plugin = hapiInterface(null, givenConfig); + }); it('should have plain object as plugin', function() { assert(isObject(plugin)); }); it('plugin should have a register function property', function() { assert(has(plugin, 'register') && isFunction(plugin.register)); }); - it('the plugin\'s register property should have an attributes property', - function() { - assert(has(plugin.register, 'attributes') && - isObject(plugin.register.attributes)); - } - ); - it('the plugin\'s attribute property should have a name property', - function() { - assert(has(plugin.register.attributes, 'name')); - assert.strictEqual(plugin.register.attributes.name, - '@google-cloud/error-reporting'); - } - ); - it('the plugin\'s attribute property should have a version property', - function() { - assert(has(plugin.register.attributes, 'version')); - } - ); + it("the plugin's register property should have an attributes property", function() { + assert( + has(plugin.register, 'attributes') && + isObject(plugin.register.attributes) + ); + }); + it("the plugin's attribute property should have a name property", function() { + assert(has(plugin.register.attributes, 'name')); + assert.strictEqual( + plugin.register.attributes.name, + '@google-cloud/error-reporting' + ); + }); + it("the plugin's attribute property should have a version property", function() { + assert(has(plugin.register.attributes, 'version')); + }); }); describe('hapiRegisterFunction behaviour', function() { var fakeServer; - beforeEach(function() {fakeServer = new EventEmitter();}); + beforeEach(function() { + fakeServer = new EventEmitter(); + }); it('Should call fn when the request-error event is emitted', function() { var fakeClient = { sendError: function(errMsg) { - assert(errMsg instanceof ErrorMessage, - 'should be an instance of Error message'); - } + assert( + errMsg instanceof ErrorMessage, + 'should be an instance of Error message' + ); + }, }; var plugin = hapiInterface(fakeClient, { lacksCredentials: function() { @@ -85,7 +93,7 @@ describe('Hapi interface', function() { }, getServiceContext: function() { return {service: 'node'}; - } + }, }); plugin.register(fakeServer, null, null, null); fakeServer.emit('request-error'); @@ -100,10 +108,12 @@ describe('Hapi interface', function() { projectId: 'xyz', serviceContext: { service: 'x', - version: '1.x' - } + version: '1.x', + }, }); - config.lacksCredentials = function() {return false;}; + config.lacksCredentials = function() { + return false; + }; plugin = hapiInterface(fakeClient, config); }); beforeEach(function() { @@ -113,51 +123,58 @@ describe('Hapi interface', function() { afterEach(function() { fakeServer.removeAllListeners(); }); - it('Should call continue when a boom is emitted if reply is an object', - function(done) { - plugin.register(fakeServer, null, function() {}); - fakeServer.emit(EVENT, {response: {isBoom: true}}, - { - continue: function() { - // The continue function should be called - done(); - } - } - ); - }); - it('Should call continue when a boom is emitted if reply is a function', - function(done) { - // Manually testing has shown that in actual usage the `reply` object - // provided to listeners of the `onPreResponse` event can be a function - // that has a `continue` property that is a function. - // If `reply.continue()` is not invoked in this situation, the Hapi - // app will become unresponsive. - plugin.register(fakeServer, null, function() {}); - var reply = function() {}; - reply.continue = function() { - // The continue function should be called - done(); - }; - fakeServer.emit(EVENT, {response: {isBoom: true}}, reply); + it('Should call continue when a boom is emitted if reply is an object', function( + done + ) { + plugin.register(fakeServer, null, function() {}); + fakeServer.emit( + EVENT, + {response: {isBoom: true}}, + { + continue: function() { + // The continue function should be called + done(); + }, + } + ); + }); + it('Should call continue when a boom is emitted if reply is a function', function( + done + ) { + // Manually testing has shown that in actual usage the `reply` object + // provided to listeners of the `onPreResponse` event can be a function + // that has a `continue` property that is a function. + // If `reply.continue()` is not invoked in this situation, the Hapi + // app will become unresponsive. + plugin.register(fakeServer, null, function() {}); + var reply = function() {}; + reply.continue = function() { + // The continue function should be called + done(); + }; + fakeServer.emit(EVENT, {response: {isBoom: true}}, reply); }); it('Should call sendError when a boom is received', function(done) { var fakeClient = { sendError: function(err) { assert(err instanceof ErrorMessage); done(); - } + }, }; var plugin = hapiInterface(fakeClient, config); plugin.register(fakeServer, null, function() {}); fakeServer.emit('onPreResponse', {response: {isBoom: true}}); }); it('Should call next when completing a request', function(done) { - plugin.register(fakeServer, null, function(err) { + plugin.register(fakeServer, null, function() { // The next function should be called done(); }); - fakeServer.emit(EVENT, {response: {isBoom: true}}, - {continue: function() {}}); + fakeServer.emit( + EVENT, + {response: {isBoom: true}}, + {continue: function() {}} + ); }); }); }); diff --git a/handwritten/error-reporting/test/unit/interfaces/manual.js b/handwritten/error-reporting/test/unit/interfaces/manual.js index 3216148cef8..c280e2a7288 100644 --- a/handwritten/error-reporting/test/unit/interfaces/manual.js +++ b/handwritten/error-reporting/test/unit/interfaces/manual.js @@ -35,7 +35,7 @@ describe('Manual handler', function() { if (cb) { setImmediate(cb); } - } + }, }; var report = manual(client, config, { warn: function(message) { @@ -46,11 +46,14 @@ describe('Manual handler', function() { // Thus, the ErrorMessage objects given to the `report` method in the // tests do not have construction site information to verify that if // that information is not available, the user is issued a warning. - assert.strictEqual(message, 'Encountered a manually constructed error ' + - 'with message "builder test" but without a construction site stack ' + - 'trace. This error might not be visible in the error reporting ' + - 'console.'); - } + assert.strictEqual( + message, + 'Encountered a manually constructed error ' + + 'with message "builder test" but without a construction site stack ' + + 'trace. This error might not be visible in the error reporting ' + + 'console.' + ); + }, }); describe('Report invocation behaviour', function() { it('Should allow argument-less invocation', function() { @@ -68,7 +71,7 @@ describe('Manual handler', function() { }); it('Should allow a function as a malformed error input', function(done) { this.timeout(2000); - var r = report(function(err, res) { + var r = report(function() { assert(false, 'callback should not be called'); done(); }); @@ -78,76 +81,92 @@ describe('Manual handler', function() { }, 1000); }); it('Should callback to the supplied function', function(done) { - var r = report('malarkey', function(err, res) { + var r = report('malarkey', function() { done(); }); assert(r.message.match(/malarkey/), 'string error should propagate'); }); it('replace the error string with the additional message', function(done) { - var r = report('monkey', 'wrench', function(err, res) { + var r = report('monkey', 'wrench', function() { done(); }); - assert.strictEqual(r.message, 'wrench', - 'additional message should replace'); + assert.strictEqual( + r.message, + 'wrench', + 'additional message should replace' + ); }); it('Should allow a full array of optional arguments', function(done) { - var r = report('donkey', { method: 'FETCH' }, 'cart', function(err, res) { + var r = report('donkey', {method: 'FETCH'}, 'cart', function() { done(); }); assert.strictEqual(r.message, 'cart', 'additional message replace'); assert.strictEqual(r.context.httpRequest.method, 'FETCH'); }); it('Should allow all optional arguments except the callback', function() { - var r = report('whiskey', { method: 'SIP' }, 'sour'); + var r = report('whiskey', {method: 'SIP'}, 'sour'); assert.strictEqual(r.message, 'sour', 'additional message replace'); assert.strictEqual(r.context.httpRequest.method, 'SIP'); }); it('Should allow a lack of additional message', function(done) { - var r = report('ticky', { method: 'TACKEY' }, function(err, res) { + var r = report('ticky', {method: 'TACKEY'}, function() { done(); }); - assert(r.message.match(/ticky/) && !r.message.match(/TACKEY/), - 'original message should be preserved'); + assert( + r.message.match(/ticky/) && !r.message.match(/TACKEY/), + 'original message should be preserved' + ); assert.strictEqual(r.context.httpRequest.method, 'TACKEY'); }); it('Should ignore arguments', function(done) { - var r = report('hockey', function(err, res) { - done(); - }, 'field'); - assert(r.message.match('hockey') && !r.message.match('field'), - 'string after callback should be ignored'); + var r = report( + 'hockey', + function() { + done(); + }, + 'field' + ); + assert( + r.message.match('hockey') && !r.message.match('field'), + 'string after callback should be ignored' + ); }); it('Should ignore arguments', function(done) { - var r = report('passkey', function(err, res) { - done(); - }, { method: 'HONK'}); + var r = report( + 'passkey', + function() { + done(); + }, + {method: 'HONK'} + ); assert.notEqual(r.context.httpRequest.method, 'HONK'); }); it('Should allow null arguments as placeholders', function(done) { - var r = report('pokey', null, null, function(err, res) { + var r = report('pokey', null, null, function() { done(); }); assert(r.message.match(/pokey/), 'string error should propagate'); }); it('Should allow explicit undefined', function(done) { - var r = report('Turkey', undefined, undefined, function(err, res) { + var r = report('Turkey', undefined, undefined, function() { done(); }); assert(r.message.match(/Turkey/), 'string error should propagate'); }); it('Should allow request to be supplied as undefined', function(done) { - var r = report('turnkey', undefined, 'solution', function(err, res) { + var r = report('turnkey', undefined, 'solution', function() { done(); }); assert.strictEqual(r.message, 'solution', 'error should propagate'); }); it('Should allow additional message', function(done) { - var r = - report('Mickey', { method: 'SNIFF'}, undefined, function(err, res) { - done(); - }); - assert(r.message.match(/Mickey/) && !r.message.match(/SNIFF/), - 'string error should propagate'); + var r = report('Mickey', {method: 'SNIFF'}, undefined, function() { + done(); + }); + assert( + r.message.match(/Mickey/) && !r.message.match(/SNIFF/), + 'string error should propagate' + ); assert.strictEqual(r.context.httpRequest.method, 'SNIFF'); }); }); @@ -156,8 +175,10 @@ describe('Manual handler', function() { it('Should accept builder inst as only argument', function() { var msg = 'builder test'; var r = report(new ErrorMessage().setMessage(msg)); - assert(r.message.startsWith(msg), - 'string message should propagate from error message inst'); + assert( + r.message.startsWith(msg), + 'string message should propagate from error message inst' + ); }); it('Should accept builder and request as arguments', function() { var msg = 'builder test'; @@ -166,35 +187,38 @@ describe('Manual handler', function() { var r = report( new ErrorMessage().setMessage(msg).consumeRequestInformation(oldReq), newReq - ); - assert(r.message.startsWith(msg), - 'string message should propagate from error message inst'); - assert.strictEqual(r.context.httpRequest.method, newReq.method, + ); + assert( + r.message.startsWith(msg), + 'string message should propagate from error message inst' + ); + assert.strictEqual( + r.context.httpRequest.method, + newReq.method, [ 'request argument supplied at report invocation should propagte and', - 'if supplied, should overwrite any prexisting data in the field.' + 'if supplied, should overwrite any prexisting data in the field.', ].join('\n') - ); + ); }); it('Should accept message and additional message params as', function() { var oldMsg = 'builder test'; var newMsg = 'analysis'; - var r = report( - new ErrorMessage().setMessage(oldMsg), - newMsg - ); - assert.strictEqual(r.message, newMsg, + var r = report(new ErrorMessage().setMessage(oldMsg), newMsg); + assert.strictEqual( + r.message, + newMsg, [ 'message supplied at report invocation should propagte and, if', - 'supplied, should overwrite any prexisting data in the message field.' - ].join('\n')); + 'supplied, should overwrite any prexisting data in the message field.', + ].join('\n') + ); }); it('Should accept message and callback function', function(done) { var oldMsg = 'builder test'; - report( - new ErrorMessage().setMessage(oldMsg), - function() { done(); } - ); + report(new ErrorMessage().setMessage(oldMsg), function() { + done(); + }); }); }); }); diff --git a/handwritten/error-reporting/test/unit/interfaces/restify.js b/handwritten/error-reporting/test/unit/interfaces/restify.js index e9bb6feeccc..85aae6fa7b9 100644 --- a/handwritten/error-reporting/test/unit/interfaces/restify.js +++ b/handwritten/error-reporting/test/unit/interfaces/restify.js @@ -23,6 +23,7 @@ var restifyInterface = require('../../../src/interfaces/restify.js'); // node v0.12 compatibility if (!EventEmitter.prototype.listenerCount) { EventEmitter.prototype.listenerCount = function(eventName) { + // eslint-disable-next-line node/no-deprecated-api return EventEmitter.listenerCount(this, eventName); }; } @@ -30,18 +31,26 @@ if (!EventEmitter.prototype.listenerCount) { describe('restifyInterface', function() { var UNCAUGHT_EVENT = 'uncaughtException'; var FINISH = 'finish'; - var noOp = function() {return;}; + var noOp = function() { + return; + }; describe('Attachment to the uncaughtException event', function() { it('Should attach one listener after instantiation', function() { var ee = new EventEmitter(); - assert.strictEqual(ee.listenerCount(UNCAUGHT_EVENT), 0, - 'Listeners on event should be zero'); + assert.strictEqual( + ee.listenerCount(UNCAUGHT_EVENT), + 0, + 'Listeners on event should be zero' + ); // return the bound function which the user will actually interface with var errorHandlerInstance = restifyInterface(null, null); // execute the handler the user will use with the stubbed server instance errorHandlerInstance(ee); - assert.strictEqual(ee.listenerCount(UNCAUGHT_EVENT), 1, - 'Listeners on event should now be one'); + assert.strictEqual( + ee.listenerCount(UNCAUGHT_EVENT), + 1, + 'Listeners on event should now be one' + ); }); }); describe('Request handler lifecycle events', function() { @@ -77,19 +86,19 @@ describe('restifyInterface', function() { }); }); }); - describe('default path with req/res error', function(done) { + describe('default path with req/res error', function() { ee.removeAllListeners(); var client = { sendError: function() { assert(true, 'sendError should be called'); - } + }, }; var config = { getServiceContext: function() { assert(true, 'getServiceContext should be called'); return { service: 'stub-service', - version: 'stub-version' + version: 'stub-version', }; }, lacksCredentials: function() { @@ -97,7 +106,7 @@ describe('restifyInterface', function() { }, getVersion: function() { return '1'; - } + }, }; var errorHandlerInstance = restifyInterface(client, config); var requestHandlerInstance = errorHandlerInstance(ee); diff --git a/handwritten/error-reporting/test/unit/logger.js b/handwritten/error-reporting/test/unit/logger.js index 938b0877747..fd5c25a495e 100644 --- a/handwritten/error-reporting/test/unit/logger.js +++ b/handwritten/error-reporting/test/unit/logger.js @@ -25,7 +25,9 @@ describe('logger', function() { oldEnv = process.env.GCLOUD_ERRORS_LOGLEVEL; delete process.env.GCLOUD_ERRORS_LOGLEVEL; }); - after(function() {process.env.GCLOUD_ERRORS_LOGLEVEL = oldEnv;}); + after(function() { + process.env.GCLOUD_ERRORS_LOGLEVEL = oldEnv; + }); describe('Exception handling', function() { it('Should not throw given undefined', function() { assert.doesNotThrow(createLogger, createLogger()); @@ -34,12 +36,16 @@ describe('logger', function() { assert.doesNotThrow(createLogger.bind(null, {}), createLogger()); }); it('Should not throw given logLevel as a number', function() { - assert.doesNotThrow(createLogger.bind(null, {logLevel: 3}), - createLogger({logLevel: 3})); + assert.doesNotThrow( + createLogger.bind(null, {logLevel: 3}), + createLogger({logLevel: 3}) + ); }); it('Should not throw given logLevel as a string', function() { - assert.doesNotThrow(createLogger.bind(null, {logLevel: '3'}), - createLogger({logLevel: 3})); + assert.doesNotThrow( + createLogger.bind(null, {logLevel: '3'}), + createLogger({logLevel: 3}) + ); }); it('Should not throw given an env variable to use', function() { process.env.GCLOUD_ERRORS_LOGLEVEL = 4; @@ -47,38 +53,44 @@ describe('logger', function() { delete process.env.GCLOUD_ERRORS_LOGLEVEL; }); it('Should thow given logLevel as null', function() { - assert.throws(createLogger.bind(null, {logLevel: null}), - undefined); + assert.throws(createLogger.bind(null, {logLevel: null}), undefined); }); }); describe('Default log level', function() { var oldLog; var text; beforeEach(function() { + // eslint-disable-next-line no-console oldLog = console.log; text = ''; + // eslint-disable-next-line no-console console.log = function() { oldLog.apply(this, arguments); - for (var i=0; i -1)) ? [ofOneType] : this.types(); + var availableTypes = + isString(ofOneType) && indexOf(this.types(), ofOneType) > -1 + ? [ofOneType] + : this.types(); var currentDepthChecked = isNumber(currentDepth) ? currentDepth : 0; var allowedDepthChecked = isNumber(allowedDepth) ? allowedDepth : 3; var arr = []; - var currentTypeBeingGenerated = ""; + var currentTypeBeingGenerated = ''; currentDepthChecked += 1; // Deny the ability to nest more objects if (currentDepthChecked >= allowedDepthChecked) { - - availableTypes = without(this.types(), "object", "array"); + availableTypes = without(this.types(), 'object', 'array'); } for (var i = 0; i < lenChecked; i++) { - currentTypeBeingGenerated = availableTypes[random(0, availableTypes.length-1)]; - - if (currentTypeBeingGenerated === "object") { + currentTypeBeingGenerated = + availableTypes[random(0, availableTypes.length - 1)]; + if (currentTypeBeingGenerated === 'object') { arr.push( this[currentTypeBeingGenerated]( - null - , currentDepthChecked - , allowedDepthChecked - ) - ); - } else if (currentTypeBeingGenerated === "array") { - + null, + currentDepthChecked, + allowedDepthChecked + ) + ); + } else if (currentTypeBeingGenerated === 'array') { arr.push( this[currentTypeBeingGenerated]( - null - , ofOneType - , currentDepthChecked - , allowedDepthChecked - ) - ); + null, + ofOneType, + currentDepthChecked, + allowedDepthChecked + ) + ); } else { - arr.push(this[currentTypeBeingGenerated]()); } } return arr; -} - -Fuzzer.prototype.generate.object = function(numProperties, currentDepth, allowedDepth) { +}; - var numPropertiesChecked = isNumber(numProperties) ? numProperties : random(1, 10); +Fuzzer.prototype.generate.object = function( + numProperties, + currentDepth, + allowedDepth +) { + var numPropertiesChecked = isNumber(numProperties) + ? numProperties + : random(1, 10); var currentDepthChecked = isNumber(currentDepth) ? currentDepth : 0; var allowedDepthChecked = isNumber(allowedDepth) ? allowedDepth : 3; var obj = {}; currentDepthChecked += 1; - var availableTypes = this.types() + var availableTypes = this.types(); // Deny the ability to nest more objects if (currentDepth >= allowedDepth) { - availableTypes = without(availableTypes, "object", "array"); + availableTypes = without(availableTypes, 'object', 'array'); } var currentTypeBeingGenerated = 0; - var currentKey = ""; + var currentKey = ''; for (var i = 0; i < numPropertiesChecked; i++) { - - currentTypeBeingGenerated = availableTypes[random(0, availableTypes.length-1)]; + currentTypeBeingGenerated = + availableTypes[random(0, availableTypes.length - 1)]; currentKey = this.alphaNumericString(random(1, 10)); - if (currentTypeBeingGenerated === "object") { - - obj[currentKey] = this[currentTypeBeingGenerated](null, currentDepthChecked, allowedDepthChecked); - } else if (currentTypeBeingGenerated === "array") { - - obj[currentKey] = this[currentTypeBeingGenerated](null, null, currentDepthChecked, allowedDepthChecked); + if (currentTypeBeingGenerated === 'object') { + obj[currentKey] = this[currentTypeBeingGenerated]( + null, + currentDepthChecked, + allowedDepthChecked + ); + } else if (currentTypeBeingGenerated === 'array') { + obj[currentKey] = this[currentTypeBeingGenerated]( + null, + null, + currentDepthChecked, + allowedDepthChecked + ); } else { - obj[currentKey] = this[currentTypeBeingGenerated](); } } return obj; -} +}; Fuzzer.prototype._backFillUnevenTypesArrays = function(argsTypesArray) { - - var largestLength = (maxBy( - argsTypesArray - , function(o) { return o.length } - )).length; + var largestLength = maxBy(argsTypesArray, function(o) { + return o.length; + }).length; for (var i = 0; i < argsTypesArray.length; i++) { if (argsTypesArray[i].length !== largestLength) { - while (argsTypesArray[i].length < largestLength) { argsTypesArray[i].push( - argsTypesArray[i][random(0, argsTypesArray[i].length-1)] - ); + argsTypesArray[i][random(0, argsTypesArray[i].length - 1)] + ); } } } return argsTypesArray; -} +}; Fuzzer.prototype._normalizeTypesArrayLengths = function(argsTypesArray) { - var allAreTheSameLength = true; var lastLength = argsTypesArray[0].length; for (var i = 1; i < argsTypesArray.length; i++) { - if (argsTypesArray[i].length !== lastLength) { - allAreTheSameLength = false; break; } } if (allAreTheSameLength) { - return argsTypesArray; } return this._backFillUnevenTypesArrays(argsTypesArray); -} +}; Fuzzer.prototype._generateTypesToFuzzWith = function(expectsArgTypes) { var argsTypesArray = []; var tmpArray = this.generate.types(); for (var i = 0; i < expectsArgTypes.length; i++) { - if (!isArray(expectsArgTypes[i])) { - argsTypesArray.push( - without( - this.generate.types() - , expectsArgTypes[i] - ) - ); + argsTypesArray.push(without(this.generate.types(), expectsArgTypes[i])); } else { - for (var j = 0; j < expectsArgTypes[i].length; j++) { - - tmpArray = without( - tmpArray - , expectsArgTypes[i][j] - ); + tmpArray = without(tmpArray, expectsArgTypes[i][j]); } argsTypesArray.push([].concat(tmpArray)); @@ -271,11 +253,14 @@ Fuzzer.prototype._generateTypesToFuzzWith = function(expectsArgTypes) { argsTypesArray = this._normalizeTypesArrayLengths(argsTypesArray); return argsTypesArray; -} +}; -Fuzzer.prototype._generateValuesForFuzzTyping = function(typesToFuzzOnEach, index) { +Fuzzer.prototype._generateValuesForFuzzTyping = function( + typesToFuzzOnEach, + index +) { var args = []; - var typeToGen = ""; + var typeToGen = ''; for (var i = 0; i < typesToFuzzOnEach.length; i++) { typeToGen = typesToFuzzOnEach[i][index]; @@ -284,28 +269,31 @@ Fuzzer.prototype._generateValuesForFuzzTyping = function(typesToFuzzOnEach, inde } return args; -} +}; -Fuzzer.prototype.fuzzFunctionForTypes = function(fnToFuzz, expectsArgTypes, cb, withContext) { +Fuzzer.prototype.fuzzFunctionForTypes = function( + fnToFuzz, + expectsArgTypes, + cb, + withContext +) { var expectsArgTypesChecked = isArray(expectsArgTypes) ? expectsArgTypes : []; var typesToFuzzOnEach = this._generateTypesToFuzzWith(expectsArgTypesChecked); var returnValue = undefined; for (var i = 0; i < typesToFuzzOnEach[0].length; i++) { - returnValue = fnToFuzz.apply( - withContext - , this._generateValuesForFuzzTyping(typesToFuzzOnEach, i) - ); + withContext, + this._generateValuesForFuzzTyping(typesToFuzzOnEach, i) + ); if (isFunction(cb)) { - cb(returnValue); } } return true; -} +}; module.exports = Fuzzer; From 01c60d2013c40fe95eff7e743aa4954ef3f4f379 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Tue, 2 Jan 2018 15:12:30 -0800 Subject: [PATCH 037/527] chore: Fix circleci to match the other googleapis (#19) --- .../error-reporting/.circleci/{config.yaml => config.yml} | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) rename handwritten/error-reporting/.circleci/{config.yaml => config.yml} (94%) diff --git a/handwritten/error-reporting/.circleci/config.yaml b/handwritten/error-reporting/.circleci/config.yml similarity index 94% rename from handwritten/error-reporting/.circleci/config.yaml rename to handwritten/error-reporting/.circleci/config.yml index 6e575b3da58..c500381e365 100644 --- a/handwritten/error-reporting/.circleci/config.yaml +++ b/handwritten/error-reporting/.circleci/config.yml @@ -181,12 +181,12 @@ jobs: command: npm run samples-test environment: GCLOUD_PROJECT: long-door-651 - GOOGLE_APPLICATION_CREDENTIALS: /var/language/.circleci/key.json + GOOGLE_APPLICATION_CREDENTIALS: /var/error-reporting/.circleci/key.json - run: name: Remove unencrypted key. command: rm .circleci/key.json when: always - working_directory: /var/language/ + working_directory: /var/error-reporting/ system_tests: docker: @@ -206,8 +206,8 @@ jobs: name: Run system tests. command: npm run system-test environment: - GOOGLE_APPLICATION_CREDENTIALS: .circleci/key.json - GCLOUD_TESTS_KEY: .circleci/key.json + GOOGLE_APPLICATION_CREDENTIALS: /var/error-reporting/.circleci/key.json + GCLOUD_TESTS_KEY: /var/error-reporting/.circleci/key.json - run: name: Remove unencrypted key. command: rm .circleci/key.json From 732ec37e803dc028dd110a992cb3593808e41dbe Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Tue, 2 Jan 2018 15:27:17 -0800 Subject: [PATCH 038/527] chore: Rename `.appveyor.yaml` to `*.yml` (#20) --- handwritten/error-reporting/{.appveyor.yaml => .appveyor.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename handwritten/error-reporting/{.appveyor.yaml => .appveyor.yml} (100%) diff --git a/handwritten/error-reporting/.appveyor.yaml b/handwritten/error-reporting/.appveyor.yml similarity index 100% rename from handwritten/error-reporting/.appveyor.yaml rename to handwritten/error-reporting/.appveyor.yml From c20d5f8986267b9d33ecd70bde7d9bf0fc402092 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Wed, 3 Jan 2018 16:02:58 -0800 Subject: [PATCH 039/527] chore: Use `gts` with `allowJs: true` (#21) --- handwritten/error-reporting/.gitignore | 1 + handwritten/error-reporting/package.json | 29 ++++++++++++------- .../src/google-apis/auth-client.js | 2 +- .../error-reporting/src/interfaces/hapi.js | 2 +- handwritten/error-reporting/src/logger.js | 2 +- handwritten/error-reporting/tsconfig.json | 24 +++++++++++++++ 6 files changed, 46 insertions(+), 14 deletions(-) create mode 100644 handwritten/error-reporting/tsconfig.json diff --git a/handwritten/error-reporting/.gitignore b/handwritten/error-reporting/.gitignore index 6b80718f261..3f7d83f8f42 100644 --- a/handwritten/error-reporting/.gitignore +++ b/handwritten/error-reporting/.gitignore @@ -8,3 +8,4 @@ system-test/secrets.js system-test/*key.json *.lock *-lock.js* +build diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 55ae16dfc17..b379ea6816c 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -8,16 +8,14 @@ "node": ">=4.0" }, "repository": "googleapis/nodejs-error-reporting", - "main": "./src/index.js", + "main": "./build/src/index.js", "nyc": { "exclude": [ - "./utils/fuzzer.js" + "./build/utils/fuzzer.js" ] }, "files": [ - "src", - "utils", - "index.js" + "build/src" ], "contributors": [ "Ace Nassri ", @@ -34,13 +32,20 @@ "scripts": { "docs": "repo-tools exec -- jsdoc -c .jsdoc.js", "generate-scaffolding": "repo-tools generate all && repo-tools generate lib_samples_readme -l samples/ --config ../.cloud-repo-tools.json", - "lint": "repo-tools lint --cmd eslint -- src/ samples/ system-test/ test/", + "lint": "repo-tools lint --cmd eslint -- build/src/ samples/ build/system-test/ build/test/", "prettier": "repo-tools exec -- prettier --write src/*.js src/*/*.js samples/*.js samples/*/*.js test/*.js test/*/*.js test/*/*/*.js system-test/*.js system-test/*/*.js", - "system-test": "nyc --exclude=\"error-message.js\" mocha ./system-test/*.js", - "cover": "nyc --exclude=\"fuzzer.js\" --reporter=lcov mocha --require intelli-espower-loader ./test/unit/*.js ./test/unit/**/*.js && nyc report", + "system-test": "nyc --exclude=\"error-message.js\" mocha ./build/system-test/*.js", + "cover": "nyc --exclude=\"fuzzer.js\" --reporter=lcov mocha --require intelli-espower-loader ./build/test/unit/*.js ./build/test/unit/**/*.js && nyc report", "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", - "test-no-cover": "repo-tools test run --cmd mocha -- ./test/unit/*.js ./test/unit/**/*.js --no-timeouts", - "test": "repo-tools test run --cmd npm -- run cover" + "test-no-cover": "repo-tools test run --cmd mocha -- ./build/test/unit/*.js ./build/test/unit/**/*.js --no-timeouts", + "test": "repo-tools test run --cmd npm -- run cover", + "check": "echo '`gts check` has been disabled. Re-enable when Typescript migration is complete.'", + "clean": "gts clean", + "compile": "tsc -p .", + "fix": "gts fix", + "prepare": "npm run compile", + "pretest": "npm run compile", + "posttest": "npm run check" }, "dependencies": { "@google-cloud/common": "^0.15.1", @@ -58,6 +63,7 @@ "eslint-plugin-node": "^5.2.1", "eslint-plugin-prettier": "^2.3.1", "express": "^4.13.4", + "gts": "^0.5.3", "hapi": "^17.1.1", "ink-docstrap": "^1.3.0", "intelli-espower-loader": "^1.0.1", @@ -81,6 +87,7 @@ "power-assert": "^1.4.4", "prettier": "^1.7.4", "proxyquire": "^1.7.11", - "restify": "^6.3.4" + "restify": "^6.3.4", + "typescript": "~2.6.2" } } diff --git a/handwritten/error-reporting/src/google-apis/auth-client.js b/handwritten/error-reporting/src/google-apis/auth-client.js index 94f9eaf821a..7615eb093a2 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.js +++ b/handwritten/error-reporting/src/google-apis/auth-client.js @@ -17,7 +17,7 @@ 'use strict'; const common = require('@google-cloud/common'); -const pkg = require('../../package.json'); +const pkg = require('../../../package.json'); var is = require('is'); var isFunction = is.fn; var isString = is.string; diff --git a/handwritten/error-reporting/src/interfaces/hapi.js b/handwritten/error-reporting/src/interfaces/hapi.js index 1c85add4d82..9ca8444ef67 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.js +++ b/handwritten/error-reporting/src/interfaces/hapi.js @@ -21,7 +21,7 @@ var isFunction = is.fn; var ErrorMessage = require('../classes/error-message.js'); var hapiRequestInformationExtractor = require('../request-extractors/hapi.js'); var populateErrorMessage = require('../populate-error-message.js'); -var packageJson = require('../../package.json'); +var packageJson = require('../../../package.json'); /** * The Hapi error handler function serves simply to create an error message diff --git a/handwritten/error-reporting/src/logger.js b/handwritten/error-reporting/src/logger.js index 5aeafa916ac..d4001c84dc9 100644 --- a/handwritten/error-reporting/src/logger.js +++ b/handwritten/error-reporting/src/logger.js @@ -22,7 +22,7 @@ var isObject = is.object; var isString = is.string; var isNumber = is.number; var logger = require('@google-cloud/common').logger; -var packageJson = require('../package.json'); +var packageJson = require('../../package.json'); /** * Creates an instance of the Google Cloud Diagnostics logger class. This diff --git a/handwritten/error-reporting/tsconfig.json b/handwritten/error-reporting/tsconfig.json new file mode 100644 index 00000000000..0c250f020b8 --- /dev/null +++ b/handwritten/error-reporting/tsconfig.json @@ -0,0 +1,24 @@ +{ + "extends": "./node_modules/gts/tsconfig-google.json", + "compilerOptions": { + "rootDir": ".", + "outDir": "build", + "declaration": false, + "allowJs": true + }, + "include": [ + "src/*.ts", + "src/**/*.ts", + "src/*.js", + "src/**/*.js", + "test/*.ts", + "test/**/*.ts", + "test/*.js", + "test/**/*.js", + "system-test/*.js", + "system-test/**/*.js" + ], + "exclude": [ + "node_modules" + ] +} From 497336b8db1eb381ac2ca5d4f319efcd5baf0a4f Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Mon, 8 Jan 2018 11:07:19 -0800 Subject: [PATCH 040/527] chore: Rename src files to `*.ts` (#22) --- .../error-reporting/.circleci/config.yml | 18 +++++++++-------- handwritten/error-reporting/package.json | 2 ++ ...ld-stack-trace.js => build-stack-trace.ts} | 6 ++---- .../{error-message.js => error-message.ts} | 0 ...er.js => request-information-container.ts} | 4 +--- .../{configuration.js => configuration.ts} | 0 .../{auth-client.js => auth-client.ts} | 16 ++++++++++++++- .../src/{index.js => index.ts} | 12 +++++------ .../src/interfaces/{express.js => express.ts} | 8 ++++---- .../src/interfaces/{hapi.js => hapi.ts} | 10 +++++----- .../src/interfaces/{koa.js => koa.ts} | 4 ++-- .../src/interfaces/{manual.js => manual.ts} | 4 +--- ...{message-builder.js => message-builder.ts} | 20 +++++++++---------- .../src/interfaces/{restify.js => restify.ts} | 16 +++++++-------- .../src/{logger.js => logger.ts} | 2 +- ...r-message.js => populate-error-message.ts} | 2 +- .../{express.js => express.ts} | 6 ++---- .../request-extractors/{hapi.js => hapi.ts} | 2 +- .../src/request-extractors/{koa.js => koa.ts} | 2 +- .../{manual.js => manual.ts} | 2 +- .../test/unit/build-stack-trace.js | 2 +- .../classes/request-information-container.js | 2 +- .../test/unit/interfaces/manual.js | 2 +- .../test/unit/request-extractors/express.js | 2 +- handwritten/error-reporting/tsconfig.json | 4 +++- 25 files changed, 79 insertions(+), 69 deletions(-) rename handwritten/error-reporting/src/{build-stack-trace.js => build-stack-trace.ts} (94%) rename handwritten/error-reporting/src/classes/{error-message.js => error-message.ts} (100%) rename handwritten/error-reporting/src/classes/{request-information-container.js => request-information-container.ts} (97%) rename handwritten/error-reporting/src/{configuration.js => configuration.ts} (100%) rename handwritten/error-reporting/src/google-apis/{auth-client.js => auth-client.ts} (96%) rename handwritten/error-reporting/src/{index.js => index.ts} (93%) rename handwritten/error-reporting/src/interfaces/{express.js => express.ts} (90%) rename handwritten/error-reporting/src/interfaces/{hapi.js => hapi.ts} (94%) rename handwritten/error-reporting/src/interfaces/{koa.js => koa.ts} (95%) rename handwritten/error-reporting/src/interfaces/{manual.js => manual.ts} (98%) rename handwritten/error-reporting/src/interfaces/{message-builder.js => message-builder.ts} (80%) rename handwritten/error-reporting/src/interfaces/{restify.js => restify.ts} (91%) rename handwritten/error-reporting/src/{logger.js => logger.ts} (97%) rename handwritten/error-reporting/src/{populate-error-message.js => populate-error-message.ts} (98%) rename handwritten/error-reporting/src/request-extractors/{express.js => express.ts} (92%) rename handwritten/error-reporting/src/request-extractors/{hapi.js => hapi.ts} (97%) rename handwritten/error-reporting/src/request-extractors/{koa.js => koa.ts} (95%) rename handwritten/error-reporting/src/request-extractors/{manual.js => manual.ts} (96%) diff --git a/handwritten/error-reporting/.circleci/config.yml b/handwritten/error-reporting/.circleci/config.yml index c500381e365..e373ad0d4cf 100644 --- a/handwritten/error-reporting/.circleci/config.yml +++ b/handwritten/error-reporting/.circleci/config.yml @@ -9,10 +9,11 @@ unit_tests: &unit_tests - run: name: Run unit tests. command: npm test - - run: - name: Submit coverage data to codecov. - command: node_modules/.bin/codecov - when: always +# TODO: Re-enable after the translation to Typescript is complete +# - run: +# name: Submit coverage data to codecov. +# command: node_modules/.bin/codecov +# when: always version: 2.0 workflows: @@ -99,10 +100,11 @@ jobs: - run: name: Run unit tests. command: npm test - - run: - name: Submit coverage data to codecov. - command: node_modules/.bin/codecov - when: always +# TODO: Re-enable after the translation to Typescript is complete +# - run: +# name: Submit coverage data to codecov. +# command: node_modules/.bin/codecov +# when: always node6: docker: - image: node:6 diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index b379ea6816c..913073a851b 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -55,6 +55,8 @@ }, "devDependencies": { "@google-cloud/nodejs-repo-tools": "^2.0.11", + "@types/mocha": "^2.2.45", + "@types/node": "^8.5.2", "async": "^2.6.0", "body-parser": "^1.15.1", "codecov": "^3.0.0", diff --git a/handwritten/error-reporting/src/build-stack-trace.js b/handwritten/error-reporting/src/build-stack-trace.ts similarity index 94% rename from handwritten/error-reporting/src/build-stack-trace.js rename to handwritten/error-reporting/src/build-stack-trace.ts index 7172510a635..3f85e1c3815 100644 --- a/handwritten/error-reporting/src/build-stack-trace.js +++ b/handwritten/error-reporting/src/build-stack-trace.ts @@ -27,7 +27,7 @@ const SRC_ROOT = __dirname; * @returns {String} - A string representation of the stack trace at the point * where this method was invoked. */ -function buildStackTrace(message) { +export function buildStackTrace(message) { var target = {}; // Build a stack trace without the frames associated with `buildStackTrace`. // The stack is located at `target.stack`. @@ -35,7 +35,7 @@ function buildStackTrace(message) { var prefix = message ? message + '\n' : ''; return ( prefix + - target.stack + (target as any).stack .split('\n') .slice(1) .filter(function(line) { @@ -45,5 +45,3 @@ function buildStackTrace(message) { .join('\n') ); } - -module.exports = buildStackTrace; diff --git a/handwritten/error-reporting/src/classes/error-message.js b/handwritten/error-reporting/src/classes/error-message.ts similarity index 100% rename from handwritten/error-reporting/src/classes/error-message.js rename to handwritten/error-reporting/src/classes/error-message.ts diff --git a/handwritten/error-reporting/src/classes/request-information-container.js b/handwritten/error-reporting/src/classes/request-information-container.ts similarity index 97% rename from handwritten/error-reporting/src/classes/request-information-container.js rename to handwritten/error-reporting/src/classes/request-information-container.ts index 19784312977..b92415ff321 100644 --- a/handwritten/error-reporting/src/classes/request-information-container.js +++ b/handwritten/error-reporting/src/classes/request-information-container.ts @@ -39,7 +39,7 @@ var isNumber = is.number; * @property {String} remoteAddress - The IP address of the requester * @property {Number} statusCode - The response status code */ -function RequestInformationContainer() { +export function RequestInformationContainer() { this.url = ''; this.method = ''; this.referrer = ''; @@ -119,5 +119,3 @@ RequestInformationContainer.prototype.setStatusCode = function(statusCode) { return this; }; - -module.exports = RequestInformationContainer; diff --git a/handwritten/error-reporting/src/configuration.js b/handwritten/error-reporting/src/configuration.ts similarity index 100% rename from handwritten/error-reporting/src/configuration.js rename to handwritten/error-reporting/src/configuration.ts diff --git a/handwritten/error-reporting/src/google-apis/auth-client.js b/handwritten/error-reporting/src/google-apis/auth-client.ts similarity index 96% rename from handwritten/error-reporting/src/google-apis/auth-client.js rename to handwritten/error-reporting/src/google-apis/auth-client.ts index 7615eb093a2..ddff68c5782 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.js +++ b/handwritten/error-reporting/src/google-apis/auth-client.ts @@ -16,7 +16,17 @@ /*jshint unused:false*/ 'use strict'; -const common = require('@google-cloud/common'); + +export interface Service { + new(config: any, options: any): Service; + request: Function; +} + +export interface Common { + Service: Service; +} + +const common: Common = require('@google-cloud/common'); const pkg = require('../../../package.json'); var is = require('is'); var isFunction = is.fn; @@ -54,6 +64,10 @@ var API = 'https://clouderrorreporting.googleapis.com/v1beta1'; * @property {Object} _logger - the instance-cached logger instance */ class RequestHandler extends common.Service { + private _config: any; + private _logger: any; + private authClient: any; + /** * Returns a query-string request object if a string key is given, otherwise * will return null. diff --git a/handwritten/error-reporting/src/index.js b/handwritten/error-reporting/src/index.ts similarity index 93% rename from handwritten/error-reporting/src/index.js rename to handwritten/error-reporting/src/index.ts index 3d8ab98c735..7eb1b940f15 100644 --- a/handwritten/error-reporting/src/index.js +++ b/handwritten/error-reporting/src/index.ts @@ -20,7 +20,7 @@ 'use strict'; -var Configuration = require('./configuration.js'); +var Configuration = require('./configuration.js') as {(givenConfig: any, logger: any): void}; var AuthClient = require('./google-apis/auth-client.js'); // Begin error reporting interfaces @@ -30,7 +30,7 @@ var manual = require('./interfaces/manual.js'); var express = require('./interfaces/express.js'); var restify = require('./interfaces/restify'); var messageBuilder = require('./interfaces/message-builder.js'); -var createLogger = require('./logger.js'); +var createLogger1 = require('./logger.js'); /** * @typedef ConfigurationOptions @@ -89,12 +89,12 @@ var createLogger = require('./logger.js'); * @param {ConfigurationOptions} initConfiguration - The desired project/error * reporting configuration. */ -function Errors(initConfiguration) { +function Errors(initConfiguration): void { if (!(this instanceof Errors)) { return new Errors(initConfiguration); } - this._logger = createLogger(initConfiguration); + this._logger = createLogger1(initConfiguration); this._config = new Configuration(initConfiguration, this._logger); this._client = new AuthClient(this._config, this._logger); @@ -106,7 +106,7 @@ function Errors(initConfiguration) { * console.log('done!'); * }); */ - this.report = manual(this._client, this._config, this._logger); + this.report = manual.handlerSetup(this._client, this._config, this._logger); /** * @example * // Use to create and report errors manually with a high-degree @@ -118,7 +118,7 @@ function Errors(initConfiguration) { * console.log('done!'); * }); */ - this.event = messageBuilder(this._config); + this.event = messageBuilder.handlerSetup(this._config); /** * @example * var hapi = require('hapi'); diff --git a/handwritten/error-reporting/src/interfaces/express.js b/handwritten/error-reporting/src/interfaces/express.ts similarity index 90% rename from handwritten/error-reporting/src/interfaces/express.js rename to handwritten/error-reporting/src/interfaces/express.ts index 5327a5c940e..a0a8afb1cf9 100644 --- a/handwritten/error-reporting/src/interfaces/express.js +++ b/handwritten/error-reporting/src/interfaces/express.ts @@ -18,8 +18,8 @@ var is = require('is'); var isObject = is.object; var isFunction = is.fn; -var ErrorMessage = require('../classes/error-message.js'); -var expressRequestInformationExtractor = require('../request-extractors/express.js'); +var ErrorMessage1 = require('../classes/error-message.js'); +import {expressRequestInformationExtractor} from '../request-extractors/express'; var populateErrorMessage = require('../populate-error-message.js'); /** @@ -41,7 +41,7 @@ function makeExpressHandler(client, config) { * @param {Object} req - an Express request object * @param {Object} res - an Express response object * @param {Function} next - an Express continuation callback - * @returns {ErrorMessage} - Returns the ErrorMessage instance + * @returns {ErrorMessage1} - Returns the ErrorMessage1 instance */ function expressErrorHandler(err, req, res, next) { var ctxService = ''; @@ -52,7 +52,7 @@ function makeExpressHandler(client, config) { ctxVersion = config.getServiceContext().version; } - var em = new ErrorMessage() + var em = new ErrorMessage1() .consumeRequestInformation(expressRequestInformationExtractor(req, res)) .setServiceContext(ctxService, ctxVersion); diff --git a/handwritten/error-reporting/src/interfaces/hapi.js b/handwritten/error-reporting/src/interfaces/hapi.ts similarity index 94% rename from handwritten/error-reporting/src/interfaces/hapi.js rename to handwritten/error-reporting/src/interfaces/hapi.ts index 9ca8444ef67..1e02af75ec5 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.js +++ b/handwritten/error-reporting/src/interfaces/hapi.ts @@ -18,7 +18,7 @@ var is = require('is'); var isObject = is.object; var isFunction = is.fn; -var ErrorMessage = require('../classes/error-message.js'); +var ErrorMessage1 = require('../classes/error-message.js'); var hapiRequestInformationExtractor = require('../request-extractors/hapi.js'); var populateErrorMessage = require('../populate-error-message.js'); var packageJson = require('../../../package.json'); @@ -30,8 +30,8 @@ var packageJson = require('../../../package.json'); * @param {Object} req - The Hapi request object * @param {Any} err - The error input * @param {Object} config - the env configuration - * @returns {ErrorMessage} - a partially or fully populated instance of - * ErrorMessage + * @returns {ErrorMessage1} - a partially or fully populated instance of + * ErrorMessage1 */ function hapiErrorHandler(req, err, config) { var service = ''; @@ -42,7 +42,7 @@ function hapiErrorHandler(req, err, config) { version = config.getServiceContext().version; } - var em = new ErrorMessage() + var em = new ErrorMessage1() .consumeRequestInformation(hapiRequestInformationExtractor(req)) .setServiceContext(service, version); @@ -110,7 +110,7 @@ function makeHapiPlugin(client, config) { var hapiPlugin = {register: hapiRegisterFunction}; - hapiPlugin.register.attributes = { + (hapiPlugin.register as any).attributes = { name: packageJson.name, version: packageJson.version, }; diff --git a/handwritten/error-reporting/src/interfaces/koa.js b/handwritten/error-reporting/src/interfaces/koa.ts similarity index 95% rename from handwritten/error-reporting/src/interfaces/koa.js rename to handwritten/error-reporting/src/interfaces/koa.ts index 69a02b5e51c..768f35dabbe 100644 --- a/handwritten/error-reporting/src/interfaces/koa.js +++ b/handwritten/error-reporting/src/interfaces/koa.ts @@ -15,7 +15,7 @@ */ 'use strict'; -var ErrorMessage = require('../classes/error-message.js'); +var ErrorMessage1 = require('../classes/error-message.js'); var koaRequestInformationExtractor = require('../request-extractors/koa.js'); var populateErrorMessage = require('../populate-error-message.js'); @@ -45,7 +45,7 @@ function koaErrorHandler(client, config) { try { yield next; } catch (err) { - var em = new ErrorMessage() + var em = new ErrorMessage1() .consumeRequestInformation( koaRequestInformationExtractor(this.request, this.response) ) diff --git a/handwritten/error-reporting/src/interfaces/manual.js b/handwritten/error-reporting/src/interfaces/manual.ts similarity index 98% rename from handwritten/error-reporting/src/interfaces/manual.js rename to handwritten/error-reporting/src/interfaces/manual.ts index a83530e5063..23af9d9c50a 100644 --- a/handwritten/error-reporting/src/interfaces/manual.js +++ b/handwritten/error-reporting/src/interfaces/manual.ts @@ -37,7 +37,7 @@ var populateErrorMessage = require('../populate-error-message.js'); * @returns {reportManualError} - a bound version of the reportManualError * function */ -function handlerSetup(client, config, logger) { +export function handlerSetup(client, config, logger) { /** * The interface for manually reporting errors to the Google Error API in * application code. @@ -117,5 +117,3 @@ function handlerSetup(client, config, logger) { return reportManualError; } - -module.exports = handlerSetup; diff --git a/handwritten/error-reporting/src/interfaces/message-builder.js b/handwritten/error-reporting/src/interfaces/message-builder.ts similarity index 80% rename from handwritten/error-reporting/src/interfaces/message-builder.js rename to handwritten/error-reporting/src/interfaces/message-builder.ts index b9cbfb0f66d..62c4d18dfed 100644 --- a/handwritten/error-reporting/src/interfaces/message-builder.js +++ b/handwritten/error-reporting/src/interfaces/message-builder.ts @@ -15,27 +15,27 @@ */ 'use strict'; -var ErrorMessage = require('../classes/error-message.js'); -var buildStackTrace = require('../build-stack-trace.js'); +var ErrorMessage1 = require('../classes/error-message.js'); +import {buildStackTrace} from '../build-stack-trace'; /** * The handler setup function serves to produce a bound instance of the - * of a factory for ErrorMessage class instances with configuration-supplied + * of a factory for ErrorMessage1 class instances with configuration-supplied * service contexts automatically set. * @function handlerSetup * @param {NormalizedConfigurationVariables} config - the environmental * configuration - * @returns {ErrorMessage} - a new ErrorMessage instance + * @returns {ErrorMessage1} - a new ErrorMessage1 instance */ -function handlerSetup(config) { +export function handlerSetup(config) { /** - * The interface for creating new instances of the ErrorMessage class which + * The interface for creating new instances of the ErrorMessage1 class which * can be used to send custom payloads to the Error reporting service. - * @returns {ErrorMessage} - returns a new instance of the ErrorMessage class + * @returns {ErrorMessage1} - returns a new instance of the ErrorMessage1 class */ function newMessage() { // The API expects a reported error to contain a stack trace. - // However, users do not need to provide a stack trace for ErrorMessage + // However, users do not need to provide a stack trace for ErrorMessage1 // objects built using the message builder. Instead, here we store // the stack trace with the parts that reference the error-reporting's // internals removed. Then when the error is reported, the stored @@ -47,7 +47,7 @@ function handlerSetup(config) { // an error when reporting an actual Node.js Error object. var cleanedStack = buildStackTrace(''); - var em = new ErrorMessage().setServiceContext( + var em = new ErrorMessage1().setServiceContext( config.getServiceContext().service, config.getServiceContext().version ); @@ -57,5 +57,3 @@ function handlerSetup(config) { return newMessage; } - -module.exports = handlerSetup; diff --git a/handwritten/error-reporting/src/interfaces/restify.js b/handwritten/error-reporting/src/interfaces/restify.ts similarity index 91% rename from handwritten/error-reporting/src/interfaces/restify.js rename to handwritten/error-reporting/src/interfaces/restify.ts index 34932ba7659..e7113836f92 100644 --- a/handwritten/error-reporting/src/interfaces/restify.js +++ b/handwritten/error-reporting/src/interfaces/restify.ts @@ -18,22 +18,22 @@ var is = require('is'); var isObject = is.object; var isFunction = is.function; -var ErrorMessage = require('../classes/error-message.js'); +var ErrorMessage1 = require('../classes/error-message.js'); var expressRequestInformationExtractor = require('../request-extractors/express.js'); var populateErrorMessage = require('../populate-error-message.js'); /** * The restifyErrorHandler is responsible for taking the captured error, setting - * the serviceContext property on the corresponding ErrorMessage instance, + * the serviceContext property on the corresponding ErrorMessage1 instance, * routing the captured error to the right handler so that it can be correctly - * marshaled into the ErrorMessage instance and then attempting to send it to + * marshaled into the ErrorMessage1 instance and then attempting to send it to * the Stackdriver API via the given API client instance. * @function restifyErrorHandler * @param {AuthClient} client - the API client * @param {NormalizedConfigurationVariables} config - the application * configuration * @param {Any} err - the error being handled - * @param {ErrorMessage} - the error message instance container + * @param {ErrorMessage1} - the error message instance container * @returns {Undefined} - does not return anything */ function restifyErrorHandler(client, config, err, em) { @@ -67,8 +67,8 @@ function restifyRequestFinishHandler(client, config, req, res) { res._body instanceof Error || (res.statusCode > 309 && res.statusCode < 512) ) { - em = new ErrorMessage().consumeRequestInformation( - expressRequestInformationExtractor(req, res) + em = new ErrorMessage1().consumeRequestInformation( + expressRequestInformationExtractor.expressRequestInformationExtractor(req, res) ); restifyErrorHandler(client, config, res._body, em); @@ -127,8 +127,8 @@ function restifyRequestHandler(client, config, req, res, next) { */ function serverErrorHandler(client, config, server) { server.on('uncaughtException', function(req, res, reqConfig, err) { - var em = new ErrorMessage().consumeRequestInformation( - expressRequestInformationExtractor(req, res) + var em = new ErrorMessage1().consumeRequestInformation( + expressRequestInformationExtractor.expressRequestInformationExtractor(req, res) ); restifyErrorHandler(client, config, err, em); diff --git a/handwritten/error-reporting/src/logger.js b/handwritten/error-reporting/src/logger.ts similarity index 97% rename from handwritten/error-reporting/src/logger.js rename to handwritten/error-reporting/src/logger.ts index d4001c84dc9..4a05e013141 100644 --- a/handwritten/error-reporting/src/logger.js +++ b/handwritten/error-reporting/src/logger.ts @@ -48,7 +48,7 @@ function createLogger(initConfiguration) { if (has(process.env, 'GCLOUD_ERRORS_LOGLEVEL')) { // Cast env string as integer level = - logger.LEVELS[~~process.env.GCLOUD_ERRORS_LOGLEVEL] || DEFAULT_LEVEL; + logger.LEVELS[~~process.env.GCLOUD_ERRORS_LOGLEVEL!] || DEFAULT_LEVEL; } else if ( isObject(initConfiguration) && has(initConfiguration, 'logLevel') diff --git a/handwritten/error-reporting/src/populate-error-message.js b/handwritten/error-reporting/src/populate-error-message.ts similarity index 98% rename from handwritten/error-reporting/src/populate-error-message.js rename to handwritten/error-reporting/src/populate-error-message.ts index f983f4f2355..555d8832d22 100644 --- a/handwritten/error-reporting/src/populate-error-message.js +++ b/handwritten/error-reporting/src/populate-error-message.ts @@ -18,7 +18,7 @@ var has = require('lodash.has'); var is = require('is'); var isObject = is.object; -var buildStackTrace = require('./build-stack-trace.js'); +import {buildStackTrace} from './build-stack-trace'; /** * The Error handler router is responsible for taking an object of some type and diff --git a/handwritten/error-reporting/src/request-extractors/express.js b/handwritten/error-reporting/src/request-extractors/express.ts similarity index 92% rename from handwritten/error-reporting/src/request-extractors/express.js rename to handwritten/error-reporting/src/request-extractors/express.ts index fd523c554be..264c4301b8f 100644 --- a/handwritten/error-reporting/src/request-extractors/express.js +++ b/handwritten/error-reporting/src/request-extractors/express.ts @@ -18,7 +18,7 @@ var is = require('is'); var isFunction = is.fn; var isObject = is.object; -var RequestInformationContainer = require('../classes/request-information-container.js'); +import {RequestInformationContainer} from '../classes/request-information-container'; /** * This function checks for the presence of an `x-forwarded-for` header on the @@ -51,7 +51,7 @@ function extractRemoteAddressFromRequest(req) { * @returns {RequestInformationContainer} - an object containing the request * information in a standardized format */ -function expressRequestInformationExtractor(req, res) { +export function expressRequestInformationExtractor(req, res) { var returnObject = new RequestInformationContainer(); if (!isObject(req) || !isFunction(req.header) || !isObject(res)) { @@ -68,5 +68,3 @@ function expressRequestInformationExtractor(req, res) { return returnObject; } - -module.exports = expressRequestInformationExtractor; diff --git a/handwritten/error-reporting/src/request-extractors/hapi.js b/handwritten/error-reporting/src/request-extractors/hapi.ts similarity index 97% rename from handwritten/error-reporting/src/request-extractors/hapi.js rename to handwritten/error-reporting/src/request-extractors/hapi.ts index 63420338777..f3ddf750607 100644 --- a/handwritten/error-reporting/src/request-extractors/hapi.js +++ b/handwritten/error-reporting/src/request-extractors/hapi.ts @@ -20,7 +20,7 @@ var is = require('is'); var isObject = is.object; var isFunction = is.function; var isArray = is.array; -var RequestInformationContainer = require('../classes/request-information-container.js'); +import {RequestInformationContainer} from '../classes/request-information-container'; /** * This function is used to check for a pending status code on the response diff --git a/handwritten/error-reporting/src/request-extractors/koa.js b/handwritten/error-reporting/src/request-extractors/koa.ts similarity index 95% rename from handwritten/error-reporting/src/request-extractors/koa.js rename to handwritten/error-reporting/src/request-extractors/koa.ts index ce239c5cba5..f89814d10c9 100644 --- a/handwritten/error-reporting/src/request-extractors/koa.js +++ b/handwritten/error-reporting/src/request-extractors/koa.ts @@ -19,7 +19,7 @@ var is = require('is'); var isObject = is.object; var isFunction = is.function; var isArray = is.array; -var RequestInformationContainer = require('../classes/request-information-container.js'); +import {RequestInformationContainer} from '../classes/request-information-container'; /** * The koaRequestInformationExtractor attempts to extract information from a Koa diff --git a/handwritten/error-reporting/src/request-extractors/manual.js b/handwritten/error-reporting/src/request-extractors/manual.ts similarity index 96% rename from handwritten/error-reporting/src/request-extractors/manual.js rename to handwritten/error-reporting/src/request-extractors/manual.ts index 26b47462bee..9c25addc26f 100644 --- a/handwritten/error-reporting/src/request-extractors/manual.js +++ b/handwritten/error-reporting/src/request-extractors/manual.ts @@ -19,7 +19,7 @@ var is = require('is'); var isObject = is.object; var isArray = is.array; var isFunction = is.fn; -var RequestInformationContainer = require('../classes/request-information-container.js'); +import {RequestInformationContainer} from '../classes/request-information-container'; /** * The manualRequestInformationExtractor is meant to take a standard object diff --git a/handwritten/error-reporting/test/unit/build-stack-trace.js b/handwritten/error-reporting/test/unit/build-stack-trace.js index f12c313934a..b44f7b68305 100644 --- a/handwritten/error-reporting/test/unit/build-stack-trace.js +++ b/handwritten/error-reporting/test/unit/build-stack-trace.js @@ -18,7 +18,7 @@ var assert = require('assert'); var path = require('path'); -var buildStackTrace = require('../../src/build-stack-trace.js'); +var buildStackTrace = require('../../src/build-stack-trace.js').buildStackTrace; const SRC_ROOT = path.join(__dirname, '..', '..', 'src'); diff --git a/handwritten/error-reporting/test/unit/classes/request-information-container.js b/handwritten/error-reporting/test/unit/classes/request-information-container.js index 75aeaabc432..4389fc8155c 100644 --- a/handwritten/error-reporting/test/unit/classes/request-information-container.js +++ b/handwritten/error-reporting/test/unit/classes/request-information-container.js @@ -24,7 +24,7 @@ describe('RequestInformationContainer', function() { var f = new Fuzzer(); var cbFn, ric; beforeEach(function() { - ric = new RequestInformationContainer(); + ric = new RequestInformationContainer.RequestInformationContainer(); }); describe('Fuzzing against RequestInformationContainer', function() { it('Should return the property as an empty string', function() { diff --git a/handwritten/error-reporting/test/unit/interfaces/manual.js b/handwritten/error-reporting/test/unit/interfaces/manual.js index c280e2a7288..26aaa10a2e5 100644 --- a/handwritten/error-reporting/test/unit/interfaces/manual.js +++ b/handwritten/error-reporting/test/unit/interfaces/manual.js @@ -37,7 +37,7 @@ describe('Manual handler', function() { } }, }; - var report = manual(client, config, { + var report = manual.handlerSetup(client, config, { warn: function(message) { // The use of `report` in this class should issue the following warning // becasue the `report` class is used directly and, as such, cannot diff --git a/handwritten/error-reporting/test/unit/request-extractors/express.js b/handwritten/error-reporting/test/unit/request-extractors/express.js index 78798a82497..424771ca153 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/express.js +++ b/handwritten/error-reporting/test/unit/request-extractors/express.js @@ -17,7 +17,7 @@ 'use strict'; var assert = require('assert'); -var expressRequestInformationExtractor = require('../../../src/request-extractors/express.js'); +var expressRequestInformationExtractor = require('../../../src/request-extractors/express.js').expressRequestInformationExtractor; var Fuzzer = require('../../../utils/fuzzer.js'); var extend = require('extend'); diff --git a/handwritten/error-reporting/tsconfig.json b/handwritten/error-reporting/tsconfig.json index 0c250f020b8..07432c7c9a2 100644 --- a/handwritten/error-reporting/tsconfig.json +++ b/handwritten/error-reporting/tsconfig.json @@ -4,7 +4,9 @@ "rootDir": ".", "outDir": "build", "declaration": false, - "allowJs": true + "allowJs": true, + "noImplicitAny": false, + "noImplicitThis": false }, "include": [ "src/*.ts", From 7f9258489709418f16d1fd5c5639aa3793000e39 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Mon, 8 Jan 2018 12:29:23 -0800 Subject: [PATCH 041/527] Ensure compilation occurs before sys/samples tests (#25) --- handwritten/error-reporting/package.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 913073a851b..b2b875f7dbb 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -34,8 +34,10 @@ "generate-scaffolding": "repo-tools generate all && repo-tools generate lib_samples_readme -l samples/ --config ../.cloud-repo-tools.json", "lint": "repo-tools lint --cmd eslint -- build/src/ samples/ build/system-test/ build/test/", "prettier": "repo-tools exec -- prettier --write src/*.js src/*/*.js samples/*.js samples/*/*.js test/*.js test/*/*.js test/*/*/*.js system-test/*.js system-test/*/*.js", + "presystem-test": "npm run compile", "system-test": "nyc --exclude=\"error-message.js\" mocha ./build/system-test/*.js", "cover": "nyc --exclude=\"fuzzer.js\" --reporter=lcov mocha --require intelli-espower-loader ./build/test/unit/*.js ./build/test/unit/**/*.js && nyc report", + "presamples-test": "npm run compile", "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", "test-no-cover": "repo-tools test run --cmd mocha -- ./build/test/unit/*.js ./build/test/unit/**/*.js --no-timeouts", "test": "repo-tools test run --cmd npm -- run cover", From 0e9c41ac80d6b5441b571f991cafcf90922b6857 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Mon, 8 Jan 2018 14:52:47 -0800 Subject: [PATCH 042/527] chore: Use class syntax in `src` (#27) --- .../src/classes/error-message.ts | 459 ++++++------- .../classes/request-information-container.ts | 185 +++--- .../error-reporting/src/configuration.ts | 623 +++++++++--------- .../src/google-apis/auth-client.ts | 4 +- handwritten/error-reporting/src/index.ts | 4 +- .../error-reporting/src/interfaces/express.ts | 6 +- .../error-reporting/src/interfaces/hapi.ts | 8 +- .../error-reporting/src/interfaces/koa.ts | 4 +- .../error-reporting/src/interfaces/manual.ts | 8 +- .../src/interfaces/message-builder.ts | 16 +- .../error-reporting/src/interfaces/restify.ts | 12 +- .../system-test/error-reporting.js | 4 +- .../test/fixtures/configuration.js | 2 +- .../test/unit/classes/error-message.js | 2 +- .../test/unit/google-apis/auth-client.js | 4 +- .../test/unit/interfaces/express.js | 2 +- .../test/unit/interfaces/hapi.js | 2 +- .../test/unit/interfaces/manual.js | 2 +- .../test/unit/populate-error-message.js | 2 +- .../utils/errors-api-transport.js | 2 +- 20 files changed, 686 insertions(+), 665 deletions(-) diff --git a/handwritten/error-reporting/src/classes/error-message.ts b/handwritten/error-reporting/src/classes/error-message.ts index b7c38c902a7..fda6e30aa28 100644 --- a/handwritten/error-reporting/src/classes/error-message.ts +++ b/handwritten/error-reporting/src/classes/error-message.ts @@ -20,260 +20,263 @@ var isString = is.string; var isNumber = is.number; var isObject = is.object; -/** - * The constructor for ErrorMessage takes no arguments and is solely meant to - * to instantiate properties on the instance. Each property should be externally - * set using the corresponding set function with the exception of eventTime - * which can be set externally but does not need to be since it is inited to - * an ISO-8601 compliant time string. - * @type {Object} - * @class ErrorMessage - * @classdesc ErrorMessage is a class which is meant to store and control-for - * Stackdriver Error API submittable values. Meant to be JSON string-ifiable - * representation of the final values which will be submitted to the Error API - * this class enforces type-checking on every setter function and will write - * default type-friendly values to instance properties if given values which - * are type-incompatible to expectations. These type-friendly default - * substitutions will occur silently and no errors will be thrown on attempted - * invalid input under the premise that during misassignment some error - * information sent to the Error API is better than no error information - * due to the Error library failing under invalid input. - * @property {String} eventTime - an ISO-8601 compliant string representing when - * the error was created - * @property {Object} serviceContext - The service information for the error - * @property {String} serviceContext.service - The service that the error was - * was produced on - * @property {String|Undefined} serviceContext.version - The service version - * that the error was produced on - * @property {String} message - The error message - * @property {Object} context - the request, user and report context - * @property {Object} context.httpRequest - the request context - * @property {String} context.httpRequest.method - the request method (e.g. GET) - * @property {String} context.httpRequest.url - the request url or path - * @property {String} context.httpRequest.userAgent - the requesting user-agent - * @property {String} context.httpRequest.referrer - the request referrer - * @property {Number} context.httpRequest.responseStatusCode - the request - * status-code - * @property {String} context.httpRequest.remoteIp - the requesting remote ip - * @property {String} context.user - the vm instances user - * @property {Object} context.reportLocation - the report context - * @property {String} context.reportLocation.filePath - the file path of the - * report site - * @property {Number} context.reportLocation.lineNumber - the line number of the - * report site - * @property {String} context.reportLocation.functionName - the function name of - * the report site - */ -function ErrorMessage() { - this.eventTime = new Date().toISOString(); - this.serviceContext = {service: 'node', version: undefined}; - this.message = ''; - this.context = { - httpRequest: { - method: '', - url: '', - userAgent: '', - referrer: '', - responseStatusCode: 0, - remoteIp: '', - }, - user: '', - reportLocation: {filePath: '', lineNumber: 0, functionName: ''}, - }; -} - -/** - * Sets the eventTime property on the instance to an ISO-8601 compliant string - * representing the current time at invocation. - * @function setEventTimeToNow - * @chainable - * @returns {this} - returns the instance for chaining - */ -ErrorMessage.prototype.setEventTimeToNow = function() { - this.eventTime = new Date().toISOString(); +export class ErrorMessage { + eventTime: any; + serviceContext: any; + message: any; + context: any; + + /** + * The constructor for ErrorMessage takes no arguments and is solely meant to + * to instantiate properties on the instance. Each property should be externally + * set using the corresponding set function with the exception of eventTime + * which can be set externally but does not need to be since it is inited to + * an ISO-8601 compliant time string. + * @type {Object} + * @class ErrorMessage + * @classdesc ErrorMessage is a class which is meant to store and control-for + * Stackdriver Error API submittable values. Meant to be JSON string-ifiable + * representation of the final values which will be submitted to the Error API + * this class enforces type-checking on every setter function and will write + * default type-friendly values to instance properties if given values which + * are type-incompatible to expectations. These type-friendly default + * substitutions will occur silently and no errors will be thrown on attempted + * invalid input under the premise that during misassignment some error + * information sent to the Error API is better than no error information + * due to the Error library failing under invalid input. + * @property {String} eventTime - an ISO-8601 compliant string representing when + * the error was created + * @property {Object} serviceContext - The service information for the error + * @property {String} serviceContext.service - The service that the error was + * was produced on + * @property {String|Undefined} serviceContext.version - The service version + * that the error was produced on + * @property {String} message - The error message + * @property {Object} context - the request, user and report context + * @property {Object} context.httpRequest - the request context + * @property {String} context.httpRequest.method - the request method (e.g. GET) + * @property {String} context.httpRequest.url - the request url or path + * @property {String} context.httpRequest.userAgent - the requesting user-agent + * @property {String} context.httpRequest.referrer - the request referrer + * @property {Number} context.httpRequest.responseStatusCode - the request + * status-code + * @property {String} context.httpRequest.remoteIp - the requesting remote ip + * @property {String} context.user - the vm instances user + * @property {Object} context.reportLocation - the report context + * @property {String} context.reportLocation.filePath - the file path of the + * report site + * @property {Number} context.reportLocation.lineNumber - the line number of the + * report site + * @property {String} context.reportLocation.functionName - the function name of + * the report site + */ + constructor() { + this.eventTime = new Date().toISOString(); + this.serviceContext = {service: 'node', version: undefined}; + this.message = ''; + this.context = { + httpRequest: { + method: '', + url: '', + userAgent: '', + referrer: '', + responseStatusCode: 0, + remoteIp: '', + }, + user: '', + reportLocation: {filePath: '', lineNumber: 0, functionName: ''}, + }; + } - return this; -}; + /** + * Sets the eventTime property on the instance to an ISO-8601 compliant string + * representing the current time at invocation. + * @function setEventTimeToNow + * @chainable + * @returns {this} - returns the instance for chaining + */ + setEventTimeToNow() { + this.eventTime = new Date().toISOString(); -/** - * Sets the serviceContext property on the instance and its two constituent - * properties: service and version. - * @function setServiceContext - * @chainable - * @param {String} service - the service the error was reported on - * @param {String|Undefined} version - the version the service was on when the - * error was reported - * @returns {this} - returns the instance for chaining - */ -ErrorMessage.prototype.setServiceContext = function(service, version) { - this.serviceContext.service = isString(service) ? service : 'node'; - this.serviceContext.version = isString(version) ? version : undefined; + return this; + }; - return this; -}; + /** + * Sets the serviceContext property on the instance and its two constituent + * properties: service and version. + * @function setServiceContext + * @chainable + * @param {String} service - the service the error was reported on + * @param {String|Undefined} version - the version the service was on when the + * error was reported + * @returns {this} - returns the instance for chaining + */ + setServiceContext(service, version) { + this.serviceContext.service = isString(service) ? service : 'node'; + this.serviceContext.version = isString(version) ? version : undefined; -/** - * Sets the message property on the instance. - * @chainable - * @param {String} message - the error message - * @returns {this} - returns the instance for chaining - */ -ErrorMessage.prototype.setMessage = function(message) { - this.message = isString(message) ? message : ''; + return this; + }; - return this; -}; + /** + * Sets the message property on the instance. + * @chainable + * @param {String} message - the error message + * @returns {this} - returns the instance for chaining + */ + setMessage(message) { + this.message = isString(message) ? message : ''; -/** - * Sets the context.httpRequest.method property on the instance. - * @chainable - * @param {String} method - the HTTP method on the request which caused the - * errors instantiation - * @returns {this} - returns the instance for chaining - */ -ErrorMessage.prototype.setHttpMethod = function(method) { - this.context.httpRequest.method = isString(method) ? method : ''; + return this; + }; - return this; -}; + /** + * Sets the context.httpRequest.method property on the instance. + * @chainable + * @param {String} method - the HTTP method on the request which caused the + * errors instantiation + * @returns {this} - returns the instance for chaining + */ + setHttpMethod(method) { + this.context.httpRequest.method = isString(method) ? method : ''; -/** - * Sets the context.httpRequest.url property on the instance. - * @chainable - * @param {String} url - the requests target url - * @returns {this} - returns the instance for chaining - */ -ErrorMessage.prototype.setUrl = function(url) { - this.context.httpRequest.url = isString(url) ? url : ''; + return this; + }; - return this; -}; + /** + * Sets the context.httpRequest.url property on the instance. + * @chainable + * @param {String} url - the requests target url + * @returns {this} - returns the instance for chaining + */ + setUrl(url) { + this.context.httpRequest.url = isString(url) ? url : ''; -/** - * Sets the context.httpRequest.userAgent property on the instance. - * @chainable - * @param {String} userAgent - the requests user-agent - * @returns {this} - returns the instance for chaining - */ -ErrorMessage.prototype.setUserAgent = function(userAgent) { - this.context.httpRequest.userAgent = isString(userAgent) ? userAgent : ''; + return this; + }; - return this; -}; + /** + * Sets the context.httpRequest.userAgent property on the instance. + * @chainable + * @param {String} userAgent - the requests user-agent + * @returns {this} - returns the instance for chaining + */ + setUserAgent(userAgent) { + this.context.httpRequest.userAgent = isString(userAgent) ? userAgent : ''; -/** - * Sets the context.httpRequest.referrer property on the instance. - * @chainable - * @param {String} referrer - the requests referrer - * @returns {this} - returns the instance for chaining - */ -ErrorMessage.prototype.setReferrer = function(referrer) { - this.context.httpRequest.referrer = isString(referrer) ? referrer : ''; + return this; + }; - return this; -}; + /** + * Sets the context.httpRequest.referrer property on the instance. + * @chainable + * @param {String} referrer - the requests referrer + * @returns {this} - returns the instance for chaining + */ + setReferrer(referrer) { + this.context.httpRequest.referrer = isString(referrer) ? referrer : ''; -/** - * Sets the context.httpRequest.responseStatusCode property on the instance. - * @chainable - * @param {Number} responseStatusCode - the response status code - * @returns {this} - returns the instance for chaining - */ -ErrorMessage.prototype.setResponseStatusCode = function(responseStatusCode) { - this.context.httpRequest.responseStatusCode = isNumber(responseStatusCode) - ? responseStatusCode - : 0; + return this; + }; - return this; -}; + /** + * Sets the context.httpRequest.responseStatusCode property on the instance. + * @chainable + * @param {Number} responseStatusCode - the response status code + * @returns {this} - returns the instance for chaining + */ + setResponseStatusCode(responseStatusCode) { + this.context.httpRequest.responseStatusCode = isNumber(responseStatusCode) + ? responseStatusCode + : 0; -/** - * Sets the context.httpRequest.remoteIp property on the instance - * @chainable - * @param {String} remoteIp - the requesters remote IP - * @returns {this} - returns the instance for chaining - */ -ErrorMessage.prototype.setRemoteIp = function(remoteIp) { - this.context.httpRequest.remoteIp = isString(remoteIp) ? remoteIp : ''; + return this; + }; - return this; -}; + /** + * Sets the context.httpRequest.remoteIp property on the instance + * @chainable + * @param {String} remoteIp - the requesters remote IP + * @returns {this} - returns the instance for chaining + */ + setRemoteIp(remoteIp) { + this.context.httpRequest.remoteIp = isString(remoteIp) ? remoteIp : ''; -/** - * Sets the context.user property on the instance - * @chainable - * @param {String} user - the vm instances user - * @returns {this} - returns the instance for chaining - */ -ErrorMessage.prototype.setUser = function(user) { - this.context.user = isString(user) ? user : ''; + return this; + }; - return this; -}; + /** + * Sets the context.user property on the instance + * @chainable + * @param {String} user - the vm instances user + * @returns {this} - returns the instance for chaining + */ + setUser(user) { + this.context.user = isString(user) ? user : ''; -/** - * Sets the context.reportLocation.filePath property on the instance - * @chainable - * @param {String} filePath - the vm instances filePath - * @returns {this} - returns the instance for chaining - */ -ErrorMessage.prototype.setFilePath = function(filePath) { - this.context.reportLocation.filePath = isString(filePath) ? filePath : ''; + return this; + }; - return this; -}; + /** + * Sets the context.reportLocation.filePath property on the instance + * @chainable + * @param {String} filePath - the vm instances filePath + * @returns {this} - returns the instance for chaining + */ + setFilePath(filePath) { + this.context.reportLocation.filePath = isString(filePath) ? filePath : ''; -/** - * Sets the context.reportLocation.lineNumber property on the instance - * @chainable - * @param {Number} lineNumber - the line number of the report context - * @returns {this} - returns the instance for chaining - */ -ErrorMessage.prototype.setLineNumber = function(lineNumber) { - this.context.reportLocation.lineNumber = isNumber(lineNumber) - ? lineNumber - : 0; + return this; + }; - return this; -}; + /** + * Sets the context.reportLocation.lineNumber property on the instance + * @chainable + * @param {Number} lineNumber - the line number of the report context + * @returns {this} - returns the instance for chaining + */ + setLineNumber(lineNumber) { + this.context.reportLocation.lineNumber = isNumber(lineNumber) + ? lineNumber + : 0; -/** - * Sets the context.reportLocation.functionName property on the instance - * @chainable - * @param {String} functionName - the function name of the report context - * @returns {this} - returns the instance for chaining - */ -ErrorMessage.prototype.setFunctionName = function(functionName) { - this.context.reportLocation.functionName = isString(functionName) - ? functionName - : ''; + return this; + }; - return this; -}; + /** + * Sets the context.reportLocation.functionName property on the instance + * @chainable + * @param {String} functionName - the function name of the report context + * @returns {this} - returns the instance for chaining + */ + setFunctionName(functionName) { + this.context.reportLocation.functionName = isString(functionName) + ? functionName + : ''; -/** - * Consumes the standard object created by the requestInformationExtractors - * and assigns the properties of the object onto the instance. - * @chainable - * @param {Object} requestInformation - the standardized object created by the - * information extractors - * @returns {this} - returns the instance for chaining - */ -ErrorMessage.prototype.consumeRequestInformation = function( - requestInformation -) { - if (!isObject(requestInformation)) { return this; - } - - this.setHttpMethod(requestInformation.method) - .setUrl(requestInformation.url) - .setUserAgent(requestInformation.userAgent) - .setReferrer(requestInformation.referrer) - .setResponseStatusCode(requestInformation.statusCode) - .setRemoteIp(requestInformation.remoteAddress); + }; - return this; -}; + /** + * Consumes the standard object created by the requestInformationExtractors + * and assigns the properties of the object onto the instance. + * @chainable + * @param {Object} requestInformation - the standardized object created by the + * information extractors + * @returns {this} - returns the instance for chaining + */ + consumeRequestInformation(requestInformation) { + if (!isObject(requestInformation)) { + return this; + } + + this.setHttpMethod(requestInformation.method) + .setUrl(requestInformation.url) + .setUserAgent(requestInformation.userAgent) + .setReferrer(requestInformation.referrer) + .setResponseStatusCode(requestInformation.statusCode) + .setRemoteIp(requestInformation.remoteAddress); -module.exports = ErrorMessage; + return this; + }; +} diff --git a/handwritten/error-reporting/src/classes/request-information-container.ts b/handwritten/error-reporting/src/classes/request-information-container.ts index b92415ff321..db26869e69f 100644 --- a/handwritten/error-reporting/src/classes/request-information-container.ts +++ b/handwritten/error-reporting/src/classes/request-information-container.ts @@ -19,103 +19,112 @@ var is = require('is'); var isString = is.string; var isNumber = is.number; -/** - * The constructor for RequestInformationContainer does not take any arugments - * and is solely meant to allocate several properties on the instance. The - * constructor will init properties which closely relate to the ErrorMessage - * context.httpRequest object properties. The properties on the instance should - * be set through there corresponding setters as these will enforce type - * validation around input. - * @class RequestInformationContainer - * @classdesc RequestInformationContainer is a class which is meant to - * standardize and contain values corresponding to request information around - * an error-inducing request. This class is meant to be a temporary container - * for request information and essentially a standardized interface consumed by - * the ErrorMessage class itself. - * @property {String} url - The route/url that the request addressed - * @property {String} method - The method that the request used - * @property {String} referrer - The referrer of the request - * @property {String} userAgent - The user-agent of the requester - * @property {String} remoteAddress - The IP address of the requester - * @property {Number} statusCode - The response status code - */ -export function RequestInformationContainer() { - this.url = ''; - this.method = ''; - this.referrer = ''; - this.userAgent = ''; - this.remoteAddress = ''; - this.statusCode = 0; -} +export class RequestInformationContainer { + url: string; + method: string; + referrer: string; + userAgent: string; + remoteAddress: string; + statusCode: number; -/** - * Sets the url property on the instance. - * @chainable - * @param {String} url - the url of the request - * @returns {this} - returns the instance for chaining - */ -RequestInformationContainer.prototype.setUrl = function(url) { - this.url = isString(url) ? url : ''; + /** + * The constructor for RequestInformationContainer does not take any arugments + * and is solely meant to allocate several properties on the instance. The + * constructor will init properties which closely relate to the ErrorMessage + * context.httpRequest object properties. The properties on the instance should + * be set through there corresponding setters as these will enforce type + * validation around input. + * @class RequestInformationContainer + * @classdesc RequestInformationContainer is a class which is meant to + * standardize and contain values corresponding to request information around + * an error-inducing request. This class is meant to be a temporary container + * for request information and essentially a standardized interface consumed by + * the ErrorMessage class itself. + * @property {String} url - The route/url that the request addressed + * @property {String} method - The method that the request used + * @property {String} referrer - The referrer of the request + * @property {String} userAgent - The user-agent of the requester + * @property {String} remoteAddress - The IP address of the requester + * @property {Number} statusCode - The response status code + */ + constructor() { + this.url = ''; + this.method = ''; + this.referrer = ''; + this.userAgent = ''; + this.remoteAddress = ''; + this.statusCode = 0; + } - return this; -}; + /** + * Sets the url property on the instance. + * @chainable + * @param {String} url - the url of the request + * @returns {this} - returns the instance for chaining + */ + setUrl(url) { + this.url = isString(url) ? url : ''; -/** - * Sets the method property on the instance. - * @chainable - * @param {String} method - the method of the request - * @returns {this} - returns the instance for chaining - */ -RequestInformationContainer.prototype.setMethod = function(method) { - this.method = isString(method) ? method : ''; + return this; + }; - return this; -}; + /** + * Sets the method property on the instance. + * @chainable + * @param {String} method - the method of the request + * @returns {this} - returns the instance for chaining + */ + setMethod(method) { + this.method = isString(method) ? method : ''; -/** - * Sets the referrer property on the instance. - * @chainable - * @param {String} referrer - the referrer of the request - * @returns {this} - returns the instance for chaining - */ -RequestInformationContainer.prototype.setReferrer = function(referrer) { - this.referrer = isString(referrer) ? referrer : ''; + return this; + }; - return this; -}; + /** + * Sets the referrer property on the instance. + * @chainable + * @param {String} referrer - the referrer of the request + * @returns {this} - returns the instance for chaining + */ + setReferrer(referrer) { + this.referrer = isString(referrer) ? referrer : ''; -/** - * Sets the userAgent property on the instance. - * @chainable - * @param {String} userAgent - the user agent committing the request - * @returns {this} - returns the instance for chaining - */ -RequestInformationContainer.prototype.setUserAgent = function(userAgent) { - this.userAgent = isString(userAgent) ? userAgent : ''; + return this; + }; - return this; -}; + /** + * Sets the userAgent property on the instance. + * @chainable + * @param {String} userAgent - the user agent committing the request + * @returns {this} - returns the instance for chaining + */ + setUserAgent(userAgent) { + this.userAgent = isString(userAgent) ? userAgent : ''; -/** - * Sets the remoteAddress property on the instance. - * @chainable - * @param {String} remoteIp - the remote IP of the requester - * @returns {this} - returns the instance for chaining - */ -RequestInformationContainer.prototype.setRemoteAddress = function(remoteIp) { - this.remoteAddress = isString(remoteIp) ? remoteIp : ''; + return this; + }; - return this; -}; + /** + * Sets the remoteAddress property on the instance. + * @chainable + * @param {String} remoteIp - the remote IP of the requester + * @returns {this} - returns the instance for chaining + */ + setRemoteAddress(remoteIp) { + this.remoteAddress = isString(remoteIp) ? remoteIp : ''; -/** - * Sets the statusCode property on the instance. - * @chainable - * @param {Number} statusCode - the status code of the response to the request - * @returns {this} - returns the instance for chaining - */ -RequestInformationContainer.prototype.setStatusCode = function(statusCode) { - this.statusCode = isNumber(statusCode) ? statusCode : 0; + return this; + }; - return this; -}; + /** + * Sets the statusCode property on the instance. + * @chainable + * @param {Number} statusCode - the status code of the response to the request + * @returns {this} - returns the instance for chaining + */ + setStatusCode(statusCode) { + this.statusCode = isNumber(statusCode) ? statusCode : 0; + + return this; + }; +} diff --git a/handwritten/error-reporting/src/configuration.ts b/handwritten/error-reporting/src/configuration.ts index eba96820c4c..7842341c6ce 100644 --- a/handwritten/error-reporting/src/configuration.ts +++ b/handwritten/error-reporting/src/configuration.ts @@ -44,339 +44,350 @@ var isNumber = is.number; * @param {Object} logger - The logger instance created when the library API has * been initialized. */ -var Configuration = function(givenConfig, logger) { +export class Configuration { + _logger: any; + _shouldReportErrorsToAPI: boolean; + _projectId: any; + _key: any; + keyFilename: any; + credentials: any; + _serviceContext: any; + _reportUnhandledRejections: false; + _givenConfiguration: any; + + constructor(givenConfig, logger) { + /** + * The _logger property caches the logger instance created at the top-level + * for configuration logging purposes. + * @memberof Configuration + * @private + * @type {Object} + * @defaultvalue Object + */ + this._logger = logger; + /** + * The _shouldReportErrorsToAPI property is meant to denote whether or not + * the Stackdriver error reporting library will actually try to report Errors + * to the Stackdriver Error API. The value of this property is derived from + * the `NODE_ENV` environmental variable or the value of ignoreEnvironmentChec + * property if present in the runtime configuration. If either the `NODE_ENV` + * variable is set to 'production' or the ignoreEnvironmentCheck propery on + * the runtime configuration is set to true then the error reporting library + * attempt to send errors to the Error API. Otherwise the value will remain + * false and errors will not be reported to the API. + * @memberof Configuration + * @private + * @type {Boolean} + * @defaultvalue false + */ + this._shouldReportErrorsToAPI = false; + /** + * The _projectId property is meant to contain the string project id that the + * hosting application is running under. The project id is a unique string + * identifier for the project. If the Configuration instance is not able to + * retrieve a project id from the metadata service or the runtime-given + * configuration then the property will remain null. If given both a project + * id through the metadata service and the runtime configuration then the + * instance will assign the value given by the metadata service over the + * runtime configuration. If the instance is unable to retrieve a valid + * project id or number from runtime configuration and the metadata service + * then this will trigger the `error` event in which listening components must + * operate in 'offline' mode. + * {@link https://cloud.google.com/compute/docs/storing-retrieving-metadata} + * @memberof Configuration + * @private + * @type {String|Null} + * @defaultvalue null + */ + this._projectId = null; + /** + * The _key property is meant to contain the optional Stackdriver API key that + * may be used in place of default application credentials to authenticate + * with the Stackdriver Error API. This property will remain null if a key + * is not given in the runtime configuration or an invalid type is given as + * the runtime configuration. + * {@link https://support.google.com/cloud/answer/6158862?hl=en} + * @memberof Configuration + * @private + * @type {String|Null} + * @defaultvalue null + */ + this._key = null; + /** + * The keyFilename property is meant to contain a path to a file containing + * user or service account credentials, which will be used in place of + * application default credentials. This property will remain null if no + * value for keyFilename is given in the runtime configuration. + * @memberof Configuration + * @private + * @type {String|Null} + * @defaultvalue null + */ + this.keyFilename = null; + /** + * The credentials property is meant to contain an object representation of + * user or service account credentials, which will be used in place of + * application default credentials. This property will remain null if no + * value for credentials is given in the runtime configuration. + * @memberof Configuration + * @private + * @type {Credentials|Null} + * @defaultvalue null + */ + this.credentials = null; + /** + * The _serviceContext property is meant to contain the optional service + * context information which may be given in the runtime configuration. If + * not given in the runtime configuration then the property value will remain + * null. + * @memberof Configuration + * @private + * @type {Object} + */ + this._serviceContext = {service: 'nodejs', version: ''}; + /** + * The _reportUnhandledRejections property is meant to specify whether or + * not unhandled rejections should be reported to the error-reporting console. + * @memberof Configuration + * @private + * @type {Boolean} + */ + this._reportUnhandledRejections = false; + /** + * The _givenConfiguration property holds a ConfigurationOptions object + * which, if valid, will be merged against by the values taken from the meta- + * data service. If the _givenConfiguration property is not valid then only + * metadata values will be used in the Configuration instance. + * @memberof Configuration + * @private + * @type {Object|Null} + * @defaultvalue null + */ + this._givenConfiguration = isObject(givenConfig) ? givenConfig : {}; + this._checkLocalServiceContext(); + this._gatherLocalConfiguration(); + }; /** - * The _logger property caches the logger instance created at the top-level - * for configuration logging purposes. + * The _checkLocalServiceContext function is responsible for attempting to + * source the _serviceContext objects values from runtime configuration and the + * environment. First the function will check the env for known service context + * names, if these are not set then it will defer to the _givenConfiguration + * property if it is set on the instance. The function will check env variables + * `GAE_MODULE_NAME` and `GAE_MODULE_VERSION` for `_serviceContext.service` and + * `_serviceContext.version` respectively. If these are not set the + * `_serviceContext` properties will be left at default unless the given runtime + * configuration supplies any values as substitutes. * @memberof Configuration * @private - * @type {Object} - * @defaultvalue Object + * @function _checkLocalServiceContext + * @returns {Undefined} - does not return anything */ - this._logger = logger; + _checkLocalServiceContext() { + // Note: The GAE_MODULE_NAME environment variable is set on GAE. + // If the code is, in particular, running on GCF, then the + // FUNCTION_NAME environment variable is set. + // + // To determine the service name to use: + // If the user specified a service name it should be used, otherwise + // if the FUNCTION_NAME environment variable is set (indicating that the + // code is running on GCF) then the FUNCTION_NAME value should be used as + // the service name. If neither of these conditions are true, the + // value of the GAE_MODULE_NAME environment variable should be used as the + // service name. + // + // To determine the service version to use: + // If the user species a version, then that version will be used. + // Otherwise, the value of the environment variable GAE_MODULE_VERSION + // will be used if and only if the FUNCTION_NAME environment variable is + // not set. + var service; + var version; + + if (env.FUNCTION_NAME) { + service = env.FUNCTION_NAME; + } else if (env.GAE_SERVICE) { + service = env.GAE_SERVICE; + version = env.GAE_VERSION; + } else if (env.GAE_MODULE_NAME) { + service = env.GAE_MODULE_NAME; + version = env.GAE_MODULE_VERSION; + } + + this._serviceContext.service = isString(service) ? service : 'node'; + this._serviceContext.version = isString(version) ? version : undefined; + + if (isObject(this._givenConfiguration.serviceContext)) { + if (isString(this._givenConfiguration.serviceContext.service)) { + this._serviceContext.service = this._givenConfiguration.serviceContext.service; + } else if (has(this._givenConfiguration.serviceContext, 'service')) { + throw new Error('config.serviceContext.service must be a string'); + } + + if (isString(this._givenConfiguration.serviceContext.version)) { + this._serviceContext.version = this._givenConfiguration.serviceContext.version; + } else if (has(this._givenConfiguration.serviceContext, 'version')) { + throw new Error('config.serviceContext.version must be a string'); + } + } + }; /** - * The _shouldReportErrorsToAPI property is meant to denote whether or not - * the Stackdriver error reporting library will actually try to report Errors - * to the Stackdriver Error API. The value of this property is derived from - * the `NODE_ENV` environmental variable or the value of ignoreEnvironmentChec - * property if present in the runtime configuration. If either the `NODE_ENV` - * variable is set to 'production' or the ignoreEnvironmentCheck propery on - * the runtime configuration is set to true then the error reporting library - * attempt to send errors to the Error API. Otherwise the value will remain - * false and errors will not be reported to the API. + * The _gatherLocalConfiguration function is responsible for determining + * directly determing whether the properties `reportUncaughtExceptions` and + * `key`, which can be optionally supplied in the runtime configuration, should + * be merged into the instance. This function also calls several specialized + * environmental variable checkers which not only check for the optional runtime + * configuration supplied values but also the processes environmental values. * @memberof Configuration * @private - * @type {Boolean} - * @defaultvalue false + * @function _gatherLocalConfiguration + * @returns {Undefined} - does not return anything */ - this._shouldReportErrorsToAPI = false; + _gatherLocalConfiguration() { + if (this._givenConfiguration.ignoreEnvironmentCheck === true) { + this._shouldReportErrorsToAPI = true; + } else if ( + has(this._givenConfiguration, 'ignoreEnvironmentCheck') && + !isBoolean(this._givenConfiguration.ignoreEnvironmentCheck) + ) { + throw new Error('config.ignoreEnvironmentCheck must be a boolean'); + } else { + this._shouldReportErrorsToAPI = env.NODE_ENV === 'production'; + } + if (!this._shouldReportErrorsToAPI) { + this._logger.warn( + [ + 'Stackdriver error reporting client has not been configured to send', + 'errors, please check the NODE_ENV environment variable and make sure it', + 'is set to "production" or the ignoreEnvironmentCheck property is set to', + 'true in the runtime configuration object', + ].join(' ') + ); + } + if (isString(this._givenConfiguration.key)) { + this._key = this._givenConfiguration.key; + } else if (has(this._givenConfiguration, 'key')) { + throw new Error('config.key must be a string'); + } + if (isString(this._givenConfiguration.keyFilename)) { + this.keyFilename = this._givenConfiguration.keyFilename; + } else if (has(this._givenConfiguration, 'keyFilename')) { + throw new Error('config.keyFilename must be a string'); + } + if (isObject(this._givenConfiguration.credentials)) { + this.credentials = this._givenConfiguration.credentials; + } else if (has(this._givenConfiguration, 'credentials')) { + throw new Error('config.credentials must be a valid credentials object'); + } + if (isBoolean(this._givenConfiguration.reportUnhandledRejections)) { + this._reportUnhandledRejections = this._givenConfiguration.reportUnhandledRejections; + } else if (has(this._givenConfiguration, 'reportUnhandledRejections')) { + throw new Error('config.reportUnhandledRejections must be a boolean'); + } + }; /** - * The _projectId property is meant to contain the string project id that the - * hosting application is running under. The project id is a unique string - * identifier for the project. If the Configuration instance is not able to - * retrieve a project id from the metadata service or the runtime-given - * configuration then the property will remain null. If given both a project - * id through the metadata service and the runtime configuration then the - * instance will assign the value given by the metadata service over the - * runtime configuration. If the instance is unable to retrieve a valid - * project id or number from runtime configuration and the metadata service - * then this will trigger the `error` event in which listening components must - * operate in 'offline' mode. - * {@link https://cloud.google.com/compute/docs/storing-retrieving-metadata} + * The _checkLocalProjectId function is responsible for determing whether the + * _projectId property was set by the metadata service and whether or not the + * _projectId property should/can be set with a environmental or runtime + * configuration variable. If, upon execution of the _checkLocalProjectId + * function, the _projectId property has already been set to a string then it is + * assumed that this property has been set with the metadata services response. + * The metadata value for the project id always take precedence over any other + * locally configured project id value. Given that the metadata service did not + * set the project id this function will defer next to the value set in the + * environment named `GCLOUD_PROJECT` if it is set and of type string. If this + * environmental variable is not set the function will defer to the + * _givenConfiguration property if it is of type object and has a string + * property named projectId. If none of these conditions are met then the + * _projectId property will be left at its default value. * @memberof Configuration * @private - * @type {String|Null} - * @defaultvalue null + * @function _checkLocalProjectId + * @param {Function} cb - The original user callback to invoke with the project + * id or error encountered during id capture + * @returns {Undefined} - does not return anything */ - this._projectId = null; + _checkLocalProjectId() { + if (isString(this._projectId)) { + // already has been set by the metadata service + return this._projectId; + } + if (has(this._givenConfiguration, 'projectId')) { + if (isString(this._givenConfiguration.projectId)) { + this._projectId = this._givenConfiguration.projectId; + } else if (isNumber(this._givenConfiguration.projectId)) { + this._projectId = this._givenConfiguration.projectId.toString(); + } + } + return this._projectId; + }; /** - * The _key property is meant to contain the optional Stackdriver API key that - * may be used in place of default application credentials to authenticate - * with the Stackdriver Error API. This property will remain null if a key - * is not given in the runtime configuration or an invalid type is given as - * the runtime configuration. - * {@link https://support.google.com/cloud/answer/6158862?hl=en} + * Returns the _shouldReportErrorsToAPI property on the instance. * @memberof Configuration - * @private - * @type {String|Null} - * @defaultvalue null + * @public + * @function getShouldReportErrorsToAPI + * @returns {Boolean} - returns the _shouldReportErrorsToAPI property */ - this._key = null; + getShouldReportErrorsToAPI() { + return this._shouldReportErrorsToAPI; + }; /** - * The keyFilename property is meant to contain a path to a file containing - * user or service account credentials, which will be used in place of - * application default credentials. This property will remain null if no - * value for keyFilename is given in the runtime configuration. + * Returns the _projectId property on the instance. * @memberof Configuration - * @private - * @type {String|Null} - * @defaultvalue null + * @public + * @function getProjectId + * @returns {String|Null} - returns the _projectId property */ - this.keyFilename = null; + getProjectId() { + return this._checkLocalProjectId(); + }; /** - * The credentials property is meant to contain an object representation of - * user or service account credentials, which will be used in place of - * application default credentials. This property will remain null if no - * value for credentials is given in the runtime configuration. + * Returns the _key property on the instance. * @memberof Configuration - * @private - * @type {Credentials|Null} - * @defaultvalue null + * @public + * @function getKey + * @returns {String|Null} - returns the _key property */ - this.credentials = null; + getKey() { + return this._key; + }; /** - * The _serviceContext property is meant to contain the optional service - * context information which may be given in the runtime configuration. If - * not given in the runtime configuration then the property value will remain - * null. + * Returns the keyFilename property on the instance. * @memberof Configuration - * @private - * @type {Object} + * @public + * @function getKeyFilename + * @returns {String|Null} - returns the keyFilename property */ - this._serviceContext = {service: 'nodejs', version: ''}; + getKeyFilename() { + return this.keyFilename; + }; /** - * The _reportUnhandledRejections property is meant to specify whether or - * not unhandled rejections should be reported to the error-reporting console. + * Returns the credentials property on the instance. * @memberof Configuration - * @private - * @type {Boolean} + * @public + * @function getCredentials + * @returns {Credentials|Null} - returns the credentials property */ - this._reportUnhandledRejections = false; + getCredentials() { + return this.credentials; + }; /** - * The _givenConfiguration property holds a ConfigurationOptions object - * which, if valid, will be merged against by the values taken from the meta- - * data service. If the _givenConfiguration property is not valid then only - * metadata values will be used in the Configuration instance. + * Returns the _serviceContext property on the instance. * @memberof Configuration - * @private - * @type {Object|Null} - * @defaultvalue null + * @public + * @function getKey + * @returns {Object|Null} - returns the _serviceContext property */ - this._givenConfiguration = isObject(givenConfig) ? givenConfig : {}; - this._checkLocalServiceContext(); - this._gatherLocalConfiguration(); -}; -/** - * The _checkLocalServiceContext function is responsible for attempting to - * source the _serviceContext objects values from runtime configuration and the - * environment. First the function will check the env for known service context - * names, if these are not set then it will defer to the _givenConfiguration - * property if it is set on the instance. The function will check env variables - * `GAE_MODULE_NAME` and `GAE_MODULE_VERSION` for `_serviceContext.service` and - * `_serviceContext.version` respectively. If these are not set the - * `_serviceContext` properties will be left at default unless the given runtime - * configuration supplies any values as substitutes. - * @memberof Configuration - * @private - * @function _checkLocalServiceContext - * @returns {Undefined} - does not return anything - */ -Configuration.prototype._checkLocalServiceContext = function() { - // Note: The GAE_MODULE_NAME environment variable is set on GAE. - // If the code is, in particular, running on GCF, then the - // FUNCTION_NAME environment variable is set. - // - // To determine the service name to use: - // If the user specified a service name it should be used, otherwise - // if the FUNCTION_NAME environment variable is set (indicating that the - // code is running on GCF) then the FUNCTION_NAME value should be used as - // the service name. If neither of these conditions are true, the - // value of the GAE_MODULE_NAME environment variable should be used as the - // service name. - // - // To determine the service version to use: - // If the user species a version, then that version will be used. - // Otherwise, the value of the environment variable GAE_MODULE_VERSION - // will be used if and only if the FUNCTION_NAME environment variable is - // not set. - var service; - var version; - - if (env.FUNCTION_NAME) { - service = env.FUNCTION_NAME; - } else if (env.GAE_SERVICE) { - service = env.GAE_SERVICE; - version = env.GAE_VERSION; - } else if (env.GAE_MODULE_NAME) { - service = env.GAE_MODULE_NAME; - version = env.GAE_MODULE_VERSION; - } - - this._serviceContext.service = isString(service) ? service : 'node'; - this._serviceContext.version = isString(version) ? version : undefined; - - if (isObject(this._givenConfiguration.serviceContext)) { - if (isString(this._givenConfiguration.serviceContext.service)) { - this._serviceContext.service = this._givenConfiguration.serviceContext.service; - } else if (has(this._givenConfiguration.serviceContext, 'service')) { - throw new Error('config.serviceContext.service must be a string'); - } - - if (isString(this._givenConfiguration.serviceContext.version)) { - this._serviceContext.version = this._givenConfiguration.serviceContext.version; - } else if (has(this._givenConfiguration.serviceContext, 'version')) { - throw new Error('config.serviceContext.version must be a string'); - } - } -}; -/** - * The _gatherLocalConfiguration function is responsible for determining - * directly determing whether the properties `reportUncaughtExceptions` and - * `key`, which can be optionally supplied in the runtime configuration, should - * be merged into the instance. This function also calls several specialized - * environmental variable checkers which not only check for the optional runtime - * configuration supplied values but also the processes environmental values. - * @memberof Configuration - * @private - * @function _gatherLocalConfiguration - * @returns {Undefined} - does not return anything - */ -Configuration.prototype._gatherLocalConfiguration = function() { - if (this._givenConfiguration.ignoreEnvironmentCheck === true) { - this._shouldReportErrorsToAPI = true; - } else if ( - has(this._givenConfiguration, 'ignoreEnvironmentCheck') && - !isBoolean(this._givenConfiguration.ignoreEnvironmentCheck) - ) { - throw new Error('config.ignoreEnvironmentCheck must be a boolean'); - } else { - this._shouldReportErrorsToAPI = env.NODE_ENV === 'production'; - } - if (!this._shouldReportErrorsToAPI) { - this._logger.warn( - [ - 'Stackdriver error reporting client has not been configured to send', - 'errors, please check the NODE_ENV environment variable and make sure it', - 'is set to "production" or the ignoreEnvironmentCheck property is set to', - 'true in the runtime configuration object', - ].join(' ') - ); - } - if (isString(this._givenConfiguration.key)) { - this._key = this._givenConfiguration.key; - } else if (has(this._givenConfiguration, 'key')) { - throw new Error('config.key must be a string'); - } - if (isString(this._givenConfiguration.keyFilename)) { - this.keyFilename = this._givenConfiguration.keyFilename; - } else if (has(this._givenConfiguration, 'keyFilename')) { - throw new Error('config.keyFilename must be a string'); - } - if (isObject(this._givenConfiguration.credentials)) { - this.credentials = this._givenConfiguration.credentials; - } else if (has(this._givenConfiguration, 'credentials')) { - throw new Error('config.credentials must be a valid credentials object'); - } - if (isBoolean(this._givenConfiguration.reportUnhandledRejections)) { - this._reportUnhandledRejections = this._givenConfiguration.reportUnhandledRejections; - } else if (has(this._givenConfiguration, 'reportUnhandledRejections')) { - throw new Error('config.reportUnhandledRejections must be a boolean'); - } -}; -/** - * The _checkLocalProjectId function is responsible for determing whether the - * _projectId property was set by the metadata service and whether or not the - * _projectId property should/can be set with a environmental or runtime - * configuration variable. If, upon execution of the _checkLocalProjectId - * function, the _projectId property has already been set to a string then it is - * assumed that this property has been set with the metadata services response. - * The metadata value for the project id always take precedence over any other - * locally configured project id value. Given that the metadata service did not - * set the project id this function will defer next to the value set in the - * environment named `GCLOUD_PROJECT` if it is set and of type string. If this - * environmental variable is not set the function will defer to the - * _givenConfiguration property if it is of type object and has a string - * property named projectId. If none of these conditions are met then the - * _projectId property will be left at its default value. - * @memberof Configuration - * @private - * @function _checkLocalProjectId - * @param {Function} cb - The original user callback to invoke with the project - * id or error encountered during id capture - * @returns {Undefined} - does not return anything - */ -Configuration.prototype._checkLocalProjectId = function() { - if (isString(this._projectId)) { - // already has been set by the metadata service - return this._projectId; - } - if (has(this._givenConfiguration, 'projectId')) { - if (isString(this._givenConfiguration.projectId)) { - this._projectId = this._givenConfiguration.projectId; - } else if (isNumber(this._givenConfiguration.projectId)) { - this._projectId = this._givenConfiguration.projectId.toString(); - } - } - return this._projectId; -}; -/** - * Returns the _shouldReportErrorsToAPI property on the instance. - * @memberof Configuration - * @public - * @function getShouldReportErrorsToAPI - * @returns {Boolean} - returns the _shouldReportErrorsToAPI property - */ -Configuration.prototype.getShouldReportErrorsToAPI = function() { - return this._shouldReportErrorsToAPI; -}; -/** - * Returns the _projectId property on the instance. - * @memberof Configuration - * @public - * @function getProjectId - * @returns {String|Null} - returns the _projectId property - */ -Configuration.prototype.getProjectId = function() { - return this._checkLocalProjectId(); -}; -/** - * Returns the _key property on the instance. - * @memberof Configuration - * @public - * @function getKey - * @returns {String|Null} - returns the _key property - */ -Configuration.prototype.getKey = function() { - return this._key; -}; -/** - * Returns the keyFilename property on the instance. - * @memberof Configuration - * @public - * @function getKeyFilename - * @returns {String|Null} - returns the keyFilename property - */ -Configuration.prototype.getKeyFilename = function() { - return this.keyFilename; -}; -/** - * Returns the credentials property on the instance. - * @memberof Configuration - * @public - * @function getCredentials - * @returns {Credentials|Null} - returns the credentials property - */ -Configuration.prototype.getCredentials = function() { - return this.credentials; -}; -/** - * Returns the _serviceContext property on the instance. - * @memberof Configuration - * @public - * @function getKey - * @returns {Object|Null} - returns the _serviceContext property - */ -Configuration.prototype.getServiceContext = function() { - return this._serviceContext; -}; -/** - * Returns the _reportUnhandledRejections property on the instance. - * @memberof Configuration - * @public - * @function getReportUnhandledRejections - * @returns {Boolean} - returns the _reportUnhandledRejections property - */ -Configuration.prototype.getReportUnhandledRejections = function() { - return this._reportUnhandledRejections; -}; -module.exports = Configuration; + getServiceContext() { + return this._serviceContext; + }; + /** + * Returns the _reportUnhandledRejections property on the instance. + * @memberof Configuration + * @public + * @function getReportUnhandledRejections + * @returns {Boolean} - returns the _reportUnhandledRejections property + */ + getReportUnhandledRejections() { + return this._reportUnhandledRejections; + }; +} diff --git a/handwritten/error-reporting/src/google-apis/auth-client.ts b/handwritten/error-reporting/src/google-apis/auth-client.ts index ddff68c5782..64ba70c516e 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.ts +++ b/handwritten/error-reporting/src/google-apis/auth-client.ts @@ -63,7 +63,7 @@ var API = 'https://clouderrorreporting.googleapis.com/v1beta1'; * address the correct project in the Error Reporting API * @property {Object} _logger - the instance-cached logger instance */ -class RequestHandler extends common.Service { +export class RequestHandler extends common.Service { private _config: any; private _logger: any; private authClient: any; @@ -231,5 +231,3 @@ class RequestHandler extends common.Service { * received during the transaction * @param {Any} body - The response body if applicable */ - -module.exports = RequestHandler; diff --git a/handwritten/error-reporting/src/index.ts b/handwritten/error-reporting/src/index.ts index 7eb1b940f15..7cfdcee7aef 100644 --- a/handwritten/error-reporting/src/index.ts +++ b/handwritten/error-reporting/src/index.ts @@ -20,8 +20,8 @@ 'use strict'; -var Configuration = require('./configuration.js') as {(givenConfig: any, logger: any): void}; -var AuthClient = require('./google-apis/auth-client.js'); +import {Configuration} from './configuration'; +import {RequestHandler as AuthClient} from './google-apis/auth-client'; // Begin error reporting interfaces var koa = require('./interfaces/koa.js'); diff --git a/handwritten/error-reporting/src/interfaces/express.ts b/handwritten/error-reporting/src/interfaces/express.ts index a0a8afb1cf9..59ec5151d3c 100644 --- a/handwritten/error-reporting/src/interfaces/express.ts +++ b/handwritten/error-reporting/src/interfaces/express.ts @@ -18,7 +18,7 @@ var is = require('is'); var isObject = is.object; var isFunction = is.fn; -var ErrorMessage1 = require('../classes/error-message.js'); +import {ErrorMessage} from '../classes/error-message'; import {expressRequestInformationExtractor} from '../request-extractors/express'; var populateErrorMessage = require('../populate-error-message.js'); @@ -41,7 +41,7 @@ function makeExpressHandler(client, config) { * @param {Object} req - an Express request object * @param {Object} res - an Express response object * @param {Function} next - an Express continuation callback - * @returns {ErrorMessage1} - Returns the ErrorMessage1 instance + * @returns {ErrorMessage} - Returns the ErrorMessage instance */ function expressErrorHandler(err, req, res, next) { var ctxService = ''; @@ -52,7 +52,7 @@ function makeExpressHandler(client, config) { ctxVersion = config.getServiceContext().version; } - var em = new ErrorMessage1() + var em = new ErrorMessage() .consumeRequestInformation(expressRequestInformationExtractor(req, res)) .setServiceContext(ctxService, ctxVersion); diff --git a/handwritten/error-reporting/src/interfaces/hapi.ts b/handwritten/error-reporting/src/interfaces/hapi.ts index 1e02af75ec5..9260854cea2 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.ts +++ b/handwritten/error-reporting/src/interfaces/hapi.ts @@ -18,7 +18,7 @@ var is = require('is'); var isObject = is.object; var isFunction = is.fn; -var ErrorMessage1 = require('../classes/error-message.js'); +import {ErrorMessage} from '../classes/error-message'; var hapiRequestInformationExtractor = require('../request-extractors/hapi.js'); var populateErrorMessage = require('../populate-error-message.js'); var packageJson = require('../../../package.json'); @@ -30,8 +30,8 @@ var packageJson = require('../../../package.json'); * @param {Object} req - The Hapi request object * @param {Any} err - The error input * @param {Object} config - the env configuration - * @returns {ErrorMessage1} - a partially or fully populated instance of - * ErrorMessage1 + * @returns {ErrorMessage} - a partially or fully populated instance of + * ErrorMessage */ function hapiErrorHandler(req, err, config) { var service = ''; @@ -42,7 +42,7 @@ function hapiErrorHandler(req, err, config) { version = config.getServiceContext().version; } - var em = new ErrorMessage1() + var em = new ErrorMessage() .consumeRequestInformation(hapiRequestInformationExtractor(req)) .setServiceContext(service, version); diff --git a/handwritten/error-reporting/src/interfaces/koa.ts b/handwritten/error-reporting/src/interfaces/koa.ts index 768f35dabbe..05c0e2f02e8 100644 --- a/handwritten/error-reporting/src/interfaces/koa.ts +++ b/handwritten/error-reporting/src/interfaces/koa.ts @@ -15,7 +15,7 @@ */ 'use strict'; -var ErrorMessage1 = require('../classes/error-message.js'); +import {ErrorMessage} from '../classes/error-message'; var koaRequestInformationExtractor = require('../request-extractors/koa.js'); var populateErrorMessage = require('../populate-error-message.js'); @@ -45,7 +45,7 @@ function koaErrorHandler(client, config) { try { yield next; } catch (err) { - var em = new ErrorMessage1() + var em = new ErrorMessage() .consumeRequestInformation( koaRequestInformationExtractor(this.request, this.response) ) diff --git a/handwritten/error-reporting/src/interfaces/manual.ts b/handwritten/error-reporting/src/interfaces/manual.ts index 23af9d9c50a..a5f88c83aec 100644 --- a/handwritten/error-reporting/src/interfaces/manual.ts +++ b/handwritten/error-reporting/src/interfaces/manual.ts @@ -19,7 +19,7 @@ var is = require('is'); var isString = is.string; var isObject = is.object; var isFunction = is.fn; -var ErrorMessage = require('../classes/error-message.js'); +import {ErrorMessage} from '../classes/error-message'; var manualRequestInformationExtractor = require('../request-extractors/manual.js'); var populateErrorMessage = require('../populate-error-message.js'); @@ -78,12 +78,12 @@ export function handlerSetup(client, config, logger) { // The API expects the error to contain a stack trace. Thus we // append the stack trace of the point where the error was constructed. // See the `message-builder.js` file for more details. - if (err._autoGeneratedStackTrace) { - err.setMessage(err.message + '\n' + err._autoGeneratedStackTrace); + if ((err as any)._autoGeneratedStackTrace) { + err.setMessage(err.message + '\n' + (err as any)._autoGeneratedStackTrace); // Delete the property so that if the ErrorMessage is reported a second // time, the stack trace is not appended a second time. Also, the API // will not accept the ErrorMessage if it has additional properties. - delete err._autoGeneratedStackTrace; + delete (err as any)._autoGeneratedStackTrace; } else { logger.warn( 'Encountered a manually constructed error with message "' + diff --git a/handwritten/error-reporting/src/interfaces/message-builder.ts b/handwritten/error-reporting/src/interfaces/message-builder.ts index 62c4d18dfed..8b9a66bc0e0 100644 --- a/handwritten/error-reporting/src/interfaces/message-builder.ts +++ b/handwritten/error-reporting/src/interfaces/message-builder.ts @@ -15,27 +15,27 @@ */ 'use strict'; -var ErrorMessage1 = require('../classes/error-message.js'); +import {ErrorMessage} from '../classes/error-message'; import {buildStackTrace} from '../build-stack-trace'; /** * The handler setup function serves to produce a bound instance of the - * of a factory for ErrorMessage1 class instances with configuration-supplied + * of a factory for ErrorMessage class instances with configuration-supplied * service contexts automatically set. * @function handlerSetup * @param {NormalizedConfigurationVariables} config - the environmental * configuration - * @returns {ErrorMessage1} - a new ErrorMessage1 instance + * @returns {ErrorMessage} - a new ErrorMessage instance */ export function handlerSetup(config) { /** - * The interface for creating new instances of the ErrorMessage1 class which + * The interface for creating new instances of the ErrorMessage class which * can be used to send custom payloads to the Error reporting service. - * @returns {ErrorMessage1} - returns a new instance of the ErrorMessage1 class + * @returns {ErrorMessage} - returns a new instance of the ErrorMessage class */ function newMessage() { // The API expects a reported error to contain a stack trace. - // However, users do not need to provide a stack trace for ErrorMessage1 + // However, users do not need to provide a stack trace for ErrorMessage // objects built using the message builder. Instead, here we store // the stack trace with the parts that reference the error-reporting's // internals removed. Then when the error is reported, the stored @@ -47,11 +47,11 @@ export function handlerSetup(config) { // an error when reporting an actual Node.js Error object. var cleanedStack = buildStackTrace(''); - var em = new ErrorMessage1().setServiceContext( + var em = new ErrorMessage().setServiceContext( config.getServiceContext().service, config.getServiceContext().version ); - em._autoGeneratedStackTrace = cleanedStack; + (em as any)._autoGeneratedStackTrace = cleanedStack; return em; } diff --git a/handwritten/error-reporting/src/interfaces/restify.ts b/handwritten/error-reporting/src/interfaces/restify.ts index e7113836f92..1b8ad934d1a 100644 --- a/handwritten/error-reporting/src/interfaces/restify.ts +++ b/handwritten/error-reporting/src/interfaces/restify.ts @@ -18,22 +18,22 @@ var is = require('is'); var isObject = is.object; var isFunction = is.function; -var ErrorMessage1 = require('../classes/error-message.js'); +import {ErrorMessage} from '../classes/error-message'; var expressRequestInformationExtractor = require('../request-extractors/express.js'); var populateErrorMessage = require('../populate-error-message.js'); /** * The restifyErrorHandler is responsible for taking the captured error, setting - * the serviceContext property on the corresponding ErrorMessage1 instance, + * the serviceContext property on the corresponding ErrorMessage instance, * routing the captured error to the right handler so that it can be correctly - * marshaled into the ErrorMessage1 instance and then attempting to send it to + * marshaled into the ErrorMessage instance and then attempting to send it to * the Stackdriver API via the given API client instance. * @function restifyErrorHandler * @param {AuthClient} client - the API client * @param {NormalizedConfigurationVariables} config - the application * configuration * @param {Any} err - the error being handled - * @param {ErrorMessage1} - the error message instance container + * @param {ErrorMessage} - the error message instance container * @returns {Undefined} - does not return anything */ function restifyErrorHandler(client, config, err, em) { @@ -67,7 +67,7 @@ function restifyRequestFinishHandler(client, config, req, res) { res._body instanceof Error || (res.statusCode > 309 && res.statusCode < 512) ) { - em = new ErrorMessage1().consumeRequestInformation( + em = new ErrorMessage().consumeRequestInformation( expressRequestInformationExtractor.expressRequestInformationExtractor(req, res) ); @@ -127,7 +127,7 @@ function restifyRequestHandler(client, config, req, res, next) { */ function serverErrorHandler(client, config, server) { server.on('uncaughtException', function(req, res, reqConfig, err) { - var em = new ErrorMessage1().consumeRequestInformation( + var em = new ErrorMessage().consumeRequestInformation( expressRequestInformationExtractor.expressRequestInformationExtractor(req, res) ); diff --git a/handwritten/error-reporting/system-test/error-reporting.js b/handwritten/error-reporting/system-test/error-reporting.js index 7572569e94d..dafb3b91b9d 100644 --- a/handwritten/error-reporting/system-test/error-reporting.js +++ b/handwritten/error-reporting/system-test/error-reporting.js @@ -18,9 +18,9 @@ var assert = require('assert'); var nock = require('nock'); -var RequestHandler = require('../src/google-apis/auth-client.js'); +var RequestHandler = require('../src/google-apis/auth-client.js').RequestHandler; var ErrorsApiTransport = require('../utils/errors-api-transport.js'); -var ErrorMessage = require('../src/classes/error-message.js'); +var ErrorMessage = require('../src/classes/error-message.js').ErrorMessage; var Configuration = require('../test/fixtures/configuration.js'); var createLogger = require('../src/logger.js'); var is = require('is'); diff --git a/handwritten/error-reporting/test/fixtures/configuration.js b/handwritten/error-reporting/test/fixtures/configuration.js index e0c26f44efb..f177a41004e 100644 --- a/handwritten/error-reporting/test/fixtures/configuration.js +++ b/handwritten/error-reporting/test/fixtures/configuration.js @@ -16,7 +16,7 @@ 'use strict'; -var Configuration = require('../../src/configuration.js'); +var Configuration = require('../../src/configuration.js').Configuration; var FakeConfiguration = function(config) { return Configuration.call(this, config, {warn: function() {}}); diff --git a/handwritten/error-reporting/test/unit/classes/error-message.js b/handwritten/error-reporting/test/unit/classes/error-message.js index 67d2f4448ac..33eb86167c3 100644 --- a/handwritten/error-reporting/test/unit/classes/error-message.js +++ b/handwritten/error-reporting/test/unit/classes/error-message.js @@ -17,7 +17,7 @@ // jshint ignore: start var assert = require('assert'); -var ErrorMessage = require('../../../src/classes/error-message.js'); +var ErrorMessage = require('../../../src/classes/error-message.js').ErrorMessage; describe('Instantiating a new ErrorMessage', function() { var em; diff --git a/handwritten/error-reporting/test/unit/google-apis/auth-client.js b/handwritten/error-reporting/test/unit/google-apis/auth-client.js index 134b66b36c0..ea257f37c43 100644 --- a/handwritten/error-reporting/test/unit/google-apis/auth-client.js +++ b/handwritten/error-reporting/test/unit/google-apis/auth-client.js @@ -18,7 +18,7 @@ var assert = require('assert'); var proxyquire = require('proxyquire'); -var Configuration = require('../../../src/configuration.js'); +var Configuration = require('../../../src/configuration.js').Configuration; function verifyReportedMessage(config1, errToReturn, expectedLogs) { class ServiceStub { @@ -36,7 +36,7 @@ function verifyReportedMessage(config1, errToReturn, expectedLogs) { '@google-cloud/common': { Service: ServiceStub, }, - }); + }).RequestHandler; var logs = {}; var logger = { diff --git a/handwritten/error-reporting/test/unit/interfaces/express.js b/handwritten/error-reporting/test/unit/interfaces/express.js index 4582d43e169..aab01245f12 100644 --- a/handwritten/error-reporting/test/unit/interfaces/express.js +++ b/handwritten/error-reporting/test/unit/interfaces/express.js @@ -19,7 +19,7 @@ var assert = require('assert'); var merge = require('lodash.merge'); var expressInterface = require('../../../src/interfaces/express.js'); -var ErrorMessage = require('../../../src/classes/error-message.js'); +var ErrorMessage = require('../../../src/classes/error-message.js').ErrorMessage; var Fuzzer = require('../../../utils/fuzzer.js'); var Configuration = require('../../fixtures/configuration.js'); var createLogger = require('../../../src/logger.js'); diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.js b/handwritten/error-reporting/test/unit/interfaces/hapi.js index aa675d0f6f6..2531a9f63bc 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.js +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.js @@ -22,7 +22,7 @@ var isFunction = is.fn; var isObject = is.object; var assert = require('assert'); var hapiInterface = require('../../../src/interfaces/hapi.js'); -var ErrorMessage = require('../../../src/classes/error-message.js'); +var ErrorMessage = require('../../../src/classes/error-message.js').ErrorMessage; var Fuzzer = require('../../../utils/fuzzer.js'); var EventEmitter = require('events').EventEmitter; var Configuration = require('../../fixtures/configuration.js'); diff --git a/handwritten/error-reporting/test/unit/interfaces/manual.js b/handwritten/error-reporting/test/unit/interfaces/manual.js index 26aaa10a2e5..6e4cd45fb6d 100644 --- a/handwritten/error-reporting/test/unit/interfaces/manual.js +++ b/handwritten/error-reporting/test/unit/interfaces/manual.js @@ -23,7 +23,7 @@ var config = new Configuration({}); config.lacksCredentials = function() { return false; }; -var ErrorMessage = require('../../../src/classes/error-message.js'); +var ErrorMessage = require('../../../src/classes/error-message.js').ErrorMessage; // var nock = require('nock'); describe('Manual handler', function() { diff --git a/handwritten/error-reporting/test/unit/populate-error-message.js b/handwritten/error-reporting/test/unit/populate-error-message.js index d57d1219039..ff3c92a1234 100644 --- a/handwritten/error-reporting/test/unit/populate-error-message.js +++ b/handwritten/error-reporting/test/unit/populate-error-message.js @@ -18,7 +18,7 @@ var assert = require('assert'); -var ErrorMessage = require('../../src/classes/error-message.js'); +var ErrorMessage = require('../../src/classes/error-message.js').ErrorMessage; var populateErrorMessage = require('../../src/populate-error-message.js'); var TEST_USER_INVALID = 12; diff --git a/handwritten/error-reporting/utils/errors-api-transport.js b/handwritten/error-reporting/utils/errors-api-transport.js index 3c44aef28b4..981b0a6d10a 100644 --- a/handwritten/error-reporting/utils/errors-api-transport.js +++ b/handwritten/error-reporting/utils/errors-api-transport.js @@ -16,7 +16,7 @@ 'use strict'; -var AuthClient = require('../src/google-apis/auth-client.js'); +var AuthClient = require('../src/google-apis/auth-client.js').RequestHandler; /* @const {String} Base Error Reporting API */ var API = 'https://clouderrorreporting.googleapis.com/v1beta1/projects'; From de13621252c6a8b405bf2b7d5cf51c6487e53c58 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Mon, 8 Jan 2018 16:35:46 -0800 Subject: [PATCH 043/527] chore: Specify the working_directory for sys tests (#29) This is needed to fix the problem with the system tests on CircleCI where the file specified by GOOGLE_APPLICATION_CREDENTIALS could not be found. --- handwritten/error-reporting/.circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/handwritten/error-reporting/.circleci/config.yml b/handwritten/error-reporting/.circleci/config.yml index e373ad0d4cf..488611cde18 100644 --- a/handwritten/error-reporting/.circleci/config.yml +++ b/handwritten/error-reporting/.circleci/config.yml @@ -214,6 +214,7 @@ jobs: name: Remove unencrypted key. command: rm .circleci/key.json when: always + working_directory: /var/error-reporting/ publish_npm: docker: From b63ce2461f0156b824c853b56f4b69d592b871a8 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Mon, 8 Jan 2018 17:00:28 -0800 Subject: [PATCH 044/527] Remove `use strict` statements (#28) --- handwritten/error-reporting/src/build-stack-trace.ts | 2 -- handwritten/error-reporting/src/classes/error-message.ts | 1 - .../src/classes/request-information-container.ts | 1 - handwritten/error-reporting/src/configuration.ts | 1 - handwritten/error-reporting/src/google-apis/auth-client.ts | 2 -- handwritten/error-reporting/src/index.ts | 2 -- handwritten/error-reporting/src/interfaces/express.ts | 1 - handwritten/error-reporting/src/interfaces/hapi.ts | 1 - handwritten/error-reporting/src/interfaces/koa.ts | 1 - handwritten/error-reporting/src/interfaces/manual.ts | 1 - handwritten/error-reporting/src/interfaces/message-builder.ts | 1 - handwritten/error-reporting/src/interfaces/restify.ts | 1 - handwritten/error-reporting/src/logger.ts | 1 - handwritten/error-reporting/src/populate-error-message.ts | 1 - handwritten/error-reporting/src/request-extractors/express.ts | 2 +- handwritten/error-reporting/src/request-extractors/hapi.ts | 2 +- handwritten/error-reporting/src/request-extractors/koa.ts | 1 - handwritten/error-reporting/src/request-extractors/manual.ts | 2 +- 18 files changed, 3 insertions(+), 21 deletions(-) diff --git a/handwritten/error-reporting/src/build-stack-trace.ts b/handwritten/error-reporting/src/build-stack-trace.ts index 3f85e1c3815..ab9e45b1dd8 100644 --- a/handwritten/error-reporting/src/build-stack-trace.ts +++ b/handwritten/error-reporting/src/build-stack-trace.ts @@ -14,8 +14,6 @@ * limitations under the License. */ -'use strict'; - const SRC_ROOT = __dirname; /** diff --git a/handwritten/error-reporting/src/classes/error-message.ts b/handwritten/error-reporting/src/classes/error-message.ts index fda6e30aa28..70a4c4d22de 100644 --- a/handwritten/error-reporting/src/classes/error-message.ts +++ b/handwritten/error-reporting/src/classes/error-message.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -'use strict'; var is = require('is'); var isString = is.string; var isNumber = is.number; diff --git a/handwritten/error-reporting/src/classes/request-information-container.ts b/handwritten/error-reporting/src/classes/request-information-container.ts index db26869e69f..77e28386fa9 100644 --- a/handwritten/error-reporting/src/classes/request-information-container.ts +++ b/handwritten/error-reporting/src/classes/request-information-container.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -'use strict'; var is = require('is'); var isString = is.string; var isNumber = is.number; diff --git a/handwritten/error-reporting/src/configuration.ts b/handwritten/error-reporting/src/configuration.ts index 7842341c6ce..7a808acc372 100644 --- a/handwritten/error-reporting/src/configuration.ts +++ b/handwritten/error-reporting/src/configuration.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -'use strict'; var env = process.env; var has = require('lodash.has'); var is = require('is'); diff --git a/handwritten/error-reporting/src/google-apis/auth-client.ts b/handwritten/error-reporting/src/google-apis/auth-client.ts index 64ba70c516e..2d4c8c9591a 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.ts +++ b/handwritten/error-reporting/src/google-apis/auth-client.ts @@ -15,8 +15,6 @@ */ /*jshint unused:false*/ -'use strict'; - export interface Service { new(config: any, options: any): Service; request: Function; diff --git a/handwritten/error-reporting/src/index.ts b/handwritten/error-reporting/src/index.ts index 7cfdcee7aef..3e6ff7dfeaa 100644 --- a/handwritten/error-reporting/src/index.ts +++ b/handwritten/error-reporting/src/index.ts @@ -18,8 +18,6 @@ * @module error-reporting */ -'use strict'; - import {Configuration} from './configuration'; import {RequestHandler as AuthClient} from './google-apis/auth-client'; // Begin error reporting interfaces diff --git a/handwritten/error-reporting/src/interfaces/express.ts b/handwritten/error-reporting/src/interfaces/express.ts index 59ec5151d3c..92742d701df 100644 --- a/handwritten/error-reporting/src/interfaces/express.ts +++ b/handwritten/error-reporting/src/interfaces/express.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -'use strict'; var is = require('is'); var isObject = is.object; var isFunction = is.fn; diff --git a/handwritten/error-reporting/src/interfaces/hapi.ts b/handwritten/error-reporting/src/interfaces/hapi.ts index 9260854cea2..ec552c2fbcc 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.ts +++ b/handwritten/error-reporting/src/interfaces/hapi.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -'use strict'; var is = require('is'); var isObject = is.object; var isFunction = is.fn; diff --git a/handwritten/error-reporting/src/interfaces/koa.ts b/handwritten/error-reporting/src/interfaces/koa.ts index 05c0e2f02e8..b3f14703bec 100644 --- a/handwritten/error-reporting/src/interfaces/koa.ts +++ b/handwritten/error-reporting/src/interfaces/koa.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -'use strict'; import {ErrorMessage} from '../classes/error-message'; var koaRequestInformationExtractor = require('../request-extractors/koa.js'); var populateErrorMessage = require('../populate-error-message.js'); diff --git a/handwritten/error-reporting/src/interfaces/manual.ts b/handwritten/error-reporting/src/interfaces/manual.ts index a5f88c83aec..1a689e6976e 100644 --- a/handwritten/error-reporting/src/interfaces/manual.ts +++ b/handwritten/error-reporting/src/interfaces/manual.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -'use strict'; var is = require('is'); var isString = is.string; var isObject = is.object; diff --git a/handwritten/error-reporting/src/interfaces/message-builder.ts b/handwritten/error-reporting/src/interfaces/message-builder.ts index 8b9a66bc0e0..5b0ed2d5b14 100644 --- a/handwritten/error-reporting/src/interfaces/message-builder.ts +++ b/handwritten/error-reporting/src/interfaces/message-builder.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -'use strict'; import {ErrorMessage} from '../classes/error-message'; import {buildStackTrace} from '../build-stack-trace'; diff --git a/handwritten/error-reporting/src/interfaces/restify.ts b/handwritten/error-reporting/src/interfaces/restify.ts index 1b8ad934d1a..54cf09fc77b 100644 --- a/handwritten/error-reporting/src/interfaces/restify.ts +++ b/handwritten/error-reporting/src/interfaces/restify.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -'use strict'; var is = require('is'); var isObject = is.object; var isFunction = is.function; diff --git a/handwritten/error-reporting/src/logger.ts b/handwritten/error-reporting/src/logger.ts index 4a05e013141..d4b2d52906e 100644 --- a/handwritten/error-reporting/src/logger.ts +++ b/handwritten/error-reporting/src/logger.ts @@ -15,7 +15,6 @@ */ /*jshint bitwise: false*/ -'use strict'; var has = require('lodash.has'); var is = require('is'); var isObject = is.object; diff --git a/handwritten/error-reporting/src/populate-error-message.ts b/handwritten/error-reporting/src/populate-error-message.ts index 555d8832d22..9503c06c9c5 100644 --- a/handwritten/error-reporting/src/populate-error-message.ts +++ b/handwritten/error-reporting/src/populate-error-message.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -'use strict'; var has = require('lodash.has'); var is = require('is'); var isObject = is.object; diff --git a/handwritten/error-reporting/src/request-extractors/express.ts b/handwritten/error-reporting/src/request-extractors/express.ts index 264c4301b8f..edb93e91435 100644 --- a/handwritten/error-reporting/src/request-extractors/express.ts +++ b/handwritten/error-reporting/src/request-extractors/express.ts @@ -14,7 +14,7 @@ * limitations under the License. */ // jscs:disable requireEarlyReturn -'use strict'; + var is = require('is'); var isFunction = is.fn; var isObject = is.object; diff --git a/handwritten/error-reporting/src/request-extractors/hapi.ts b/handwritten/error-reporting/src/request-extractors/hapi.ts index f3ddf750607..bf10dfca5d8 100644 --- a/handwritten/error-reporting/src/request-extractors/hapi.ts +++ b/handwritten/error-reporting/src/request-extractors/hapi.ts @@ -14,7 +14,7 @@ * limitations under the License. */ // jscs:disable requireEarlyReturn -'use strict'; + var has = require('lodash.has'); var is = require('is'); var isObject = is.object; diff --git a/handwritten/error-reporting/src/request-extractors/koa.ts b/handwritten/error-reporting/src/request-extractors/koa.ts index f89814d10c9..7d862f744a2 100644 --- a/handwritten/error-reporting/src/request-extractors/koa.ts +++ b/handwritten/error-reporting/src/request-extractors/koa.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -'use strict'; var is = require('is'); var isObject = is.object; var isFunction = is.function; diff --git a/handwritten/error-reporting/src/request-extractors/manual.ts b/handwritten/error-reporting/src/request-extractors/manual.ts index 9c25addc26f..e02052e4353 100644 --- a/handwritten/error-reporting/src/request-extractors/manual.ts +++ b/handwritten/error-reporting/src/request-extractors/manual.ts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -'use strict'; + var has = require('lodash.has'); var is = require('is'); var isObject = is.object; From 4d9e988b74357ad7d9d69b4622ae62a6dc1590ea Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Tue, 9 Jan 2018 09:44:06 -0800 Subject: [PATCH 045/527] chore: Use `export` syntax instead of `module.exports` (#30) BREAKING CHANGE: This change also introduces some use of import statements as a result of the use of export statements. --- handwritten/error-reporting/src/index.ts | 16 ++++++++-------- .../error-reporting/src/interfaces/express.ts | 6 ++---- .../error-reporting/src/interfaces/hapi.ts | 8 +++----- .../error-reporting/src/interfaces/koa.ts | 8 +++----- .../error-reporting/src/interfaces/manual.ts | 4 ++-- .../error-reporting/src/interfaces/restify.ts | 8 +++----- handwritten/error-reporting/src/logger.ts | 4 +--- .../src/populate-error-message.ts | 4 +--- .../src/request-extractors/hapi.ts | 4 +--- .../src/request-extractors/koa.ts | 4 +--- .../src/request-extractors/manual.ts | 4 +--- .../system-test/error-reporting.js | 2 +- .../error-reporting/test/unit/configuration.js | 2 +- .../test/unit/interfaces/express.js | 4 ++-- .../error-reporting/test/unit/interfaces/hapi.js | 2 +- .../test/unit/interfaces/restify.js | 2 +- handwritten/error-reporting/test/unit/logger.js | 2 +- .../test/unit/populate-error-message.js | 2 +- .../test/unit/request-extractors/hapi.js | 2 +- .../test/unit/request-extractors/koa.js | 2 +- .../test/unit/request-extractors/manual.js | 2 +- .../test/unit/service-configuration.js | 2 +- 22 files changed, 38 insertions(+), 56 deletions(-) diff --git a/handwritten/error-reporting/src/index.ts b/handwritten/error-reporting/src/index.ts index 3e6ff7dfeaa..ef2d18f083c 100644 --- a/handwritten/error-reporting/src/index.ts +++ b/handwritten/error-reporting/src/index.ts @@ -22,13 +22,13 @@ import {Configuration} from './configuration'; import {RequestHandler as AuthClient} from './google-apis/auth-client'; // Begin error reporting interfaces -var koa = require('./interfaces/koa.js'); -var hapi = require('./interfaces/hapi.js'); -var manual = require('./interfaces/manual.js'); -var express = require('./interfaces/express.js'); -var restify = require('./interfaces/restify'); -var messageBuilder = require('./interfaces/message-builder.js'); -var createLogger1 = require('./logger.js'); +import {koaErrorHandler as koa} from './interfaces/koa'; +import {makeHapiPlugin as hapi} from './interfaces/hapi'; +import * as manual from './interfaces/manual'; +import {makeExpressHandler as express} from './interfaces/express'; +import {handlerSetup as restify} from './interfaces/restify'; +import * as messageBuilder from './interfaces/message-builder'; +import {createLogger} from './logger'; /** * @typedef ConfigurationOptions @@ -92,7 +92,7 @@ function Errors(initConfiguration): void { return new Errors(initConfiguration); } - this._logger = createLogger1(initConfiguration); + this._logger = createLogger(initConfiguration); this._config = new Configuration(initConfiguration, this._logger); this._client = new AuthClient(this._config, this._logger); diff --git a/handwritten/error-reporting/src/interfaces/express.ts b/handwritten/error-reporting/src/interfaces/express.ts index 92742d701df..52e2e44a23d 100644 --- a/handwritten/error-reporting/src/interfaces/express.ts +++ b/handwritten/error-reporting/src/interfaces/express.ts @@ -19,7 +19,7 @@ var isObject = is.object; var isFunction = is.fn; import {ErrorMessage} from '../classes/error-message'; import {expressRequestInformationExtractor} from '../request-extractors/express'; -var populateErrorMessage = require('../populate-error-message.js'); +import {populateErrorMessage} from '../populate-error-message'; /** * Returns a function that can be used as an express error handling middleware. @@ -30,7 +30,7 @@ var populateErrorMessage = require('../populate-error-message.js'); * @returns {expressErrorHandler} - a function that can be used as an express * error handling middleware. */ -function makeExpressHandler(client, config) { +export function makeExpressHandler(client, config) { /** * The Express Error Handler function is an interface for the error handler * stack into the Express architecture. @@ -70,5 +70,3 @@ function makeExpressHandler(client, config) { return expressErrorHandler; } - -module.exports = makeExpressHandler; diff --git a/handwritten/error-reporting/src/interfaces/hapi.ts b/handwritten/error-reporting/src/interfaces/hapi.ts index ec552c2fbcc..6646fc8420b 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.ts +++ b/handwritten/error-reporting/src/interfaces/hapi.ts @@ -18,8 +18,8 @@ var is = require('is'); var isObject = is.object; var isFunction = is.fn; import {ErrorMessage} from '../classes/error-message'; -var hapiRequestInformationExtractor = require('../request-extractors/hapi.js'); -var populateErrorMessage = require('../populate-error-message.js'); +import {hapiRequestInformationExtractor} from '../request-extractors/hapi'; +import {populateErrorMessage} from '../populate-error-message'; var packageJson = require('../../../package.json'); /** @@ -57,7 +57,7 @@ function hapiErrorHandler(req, err, config) { * configuration * @returns {Object} - the actual Hapi plugin */ -function makeHapiPlugin(client, config) { +export function makeHapiPlugin(client, config) { /** * The register function serves to attach the hapiErrorHandler to specific * points in the hapi request-response lifecycle. Namely: it attaches to the @@ -116,5 +116,3 @@ function makeHapiPlugin(client, config) { return hapiPlugin; } - -module.exports = makeHapiPlugin; diff --git a/handwritten/error-reporting/src/interfaces/koa.ts b/handwritten/error-reporting/src/interfaces/koa.ts index b3f14703bec..9d02d81793e 100644 --- a/handwritten/error-reporting/src/interfaces/koa.ts +++ b/handwritten/error-reporting/src/interfaces/koa.ts @@ -15,8 +15,8 @@ */ import {ErrorMessage} from '../classes/error-message'; -var koaRequestInformationExtractor = require('../request-extractors/koa.js'); -var populateErrorMessage = require('../populate-error-message.js'); +import {koaRequestInformationExtractor} from '../request-extractors/koa'; +import {populateErrorMessage} from '../populate-error-message'; /** * The koaErrorHandler should be placed at the beginning of the koa middleware @@ -30,7 +30,7 @@ var populateErrorMessage = require('../populate-error-message.js'); * @returns {Function} - The function used to catch errors yielded by downstream * request handlers. */ -function koaErrorHandler(client, config) { +export function koaErrorHandler(client, config) { /** * The actual error handler for the Koa plugin attempts to yield the results * of downstream request handlers and will attempt to catch errors emitted by @@ -56,5 +56,3 @@ function koaErrorHandler(client, config) { } }; } - -module.exports = koaErrorHandler; diff --git a/handwritten/error-reporting/src/interfaces/manual.ts b/handwritten/error-reporting/src/interfaces/manual.ts index 1a689e6976e..1b078d9f11f 100644 --- a/handwritten/error-reporting/src/interfaces/manual.ts +++ b/handwritten/error-reporting/src/interfaces/manual.ts @@ -19,8 +19,8 @@ var isString = is.string; var isObject = is.object; var isFunction = is.fn; import {ErrorMessage} from '../classes/error-message'; -var manualRequestInformationExtractor = require('../request-extractors/manual.js'); -var populateErrorMessage = require('../populate-error-message.js'); +import {manualRequestInformationExtractor} from '../request-extractors/manual'; +import {populateErrorMessage} from '../populate-error-message'; /** * The handler setup function serves to produce a bound instance of the diff --git a/handwritten/error-reporting/src/interfaces/restify.ts b/handwritten/error-reporting/src/interfaces/restify.ts index 54cf09fc77b..ea9b5777552 100644 --- a/handwritten/error-reporting/src/interfaces/restify.ts +++ b/handwritten/error-reporting/src/interfaces/restify.ts @@ -18,8 +18,8 @@ var is = require('is'); var isObject = is.object; var isFunction = is.function; import {ErrorMessage} from '../classes/error-message'; -var expressRequestInformationExtractor = require('../request-extractors/express.js'); -var populateErrorMessage = require('../populate-error-message.js'); +import * as expressRequestInformationExtractor from '../request-extractors/express'; +import {populateErrorMessage} from '../populate-error-message'; /** * The restifyErrorHandler is responsible for taking the captured error, setting @@ -147,8 +147,6 @@ function serverErrorHandler(client, config, server) { * @returns {Function} - returns the serverErrorHandler function for use in the * restify middleware stack */ -function handlerSetup(client, config) { +export function handlerSetup(client, config) { return serverErrorHandler.bind(null, client, config); } - -module.exports = handlerSetup; diff --git a/handwritten/error-reporting/src/logger.ts b/handwritten/error-reporting/src/logger.ts index d4b2d52906e..9555678979b 100644 --- a/handwritten/error-reporting/src/logger.ts +++ b/handwritten/error-reporting/src/logger.ts @@ -40,7 +40,7 @@ var packageJson = require('../../package.json'); * @returns {Object} - returns an instance of the logger created with the given/ * default options */ -function createLogger(initConfiguration) { +export function createLogger(initConfiguration) { // Default to log level: warn (2) var DEFAULT_LEVEL = logger.LEVELS[2]; var level = DEFAULT_LEVEL; @@ -66,5 +66,3 @@ function createLogger(initConfiguration) { } return logger({level: level, tag: packageJson.name}); } - -module.exports = createLogger; diff --git a/handwritten/error-reporting/src/populate-error-message.ts b/handwritten/error-reporting/src/populate-error-message.ts index 9503c06c9c5..3416d305744 100644 --- a/handwritten/error-reporting/src/populate-error-message.ts +++ b/handwritten/error-reporting/src/populate-error-message.ts @@ -29,7 +29,7 @@ import {buildStackTrace} from './build-stack-trace'; * information into * @returns {Undefined} - does not return a value */ -function populateErrorMessage(ob, em) { +export function populateErrorMessage(ob, em) { if (ob === null || ob === undefined) { em.setMessage(buildStackTrace('' + ob)); } else if (ob.stack) { @@ -124,5 +124,3 @@ function populateFromObject(ob, errorMessage) { ); } } - -module.exports = populateErrorMessage; diff --git a/handwritten/error-reporting/src/request-extractors/hapi.ts b/handwritten/error-reporting/src/request-extractors/hapi.ts index bf10dfca5d8..535f73f17a1 100644 --- a/handwritten/error-reporting/src/request-extractors/hapi.ts +++ b/handwritten/error-reporting/src/request-extractors/hapi.ts @@ -79,7 +79,7 @@ function extractRemoteAddressFromRequest(req) { * @returns {RequestInformationContainer} - an object containing the request * information in a standardized format */ -function hapiRequestInformationExtractor(req) { +export function hapiRequestInformationExtractor(req) { var returnObject = new RequestInformationContainer(); if ( @@ -101,5 +101,3 @@ function hapiRequestInformationExtractor(req) { return returnObject; } - -module.exports = hapiRequestInformationExtractor; diff --git a/handwritten/error-reporting/src/request-extractors/koa.ts b/handwritten/error-reporting/src/request-extractors/koa.ts index 7d862f744a2..f97f038c27d 100644 --- a/handwritten/error-reporting/src/request-extractors/koa.ts +++ b/handwritten/error-reporting/src/request-extractors/koa.ts @@ -30,7 +30,7 @@ import {RequestInformationContainer} from '../classes/request-information-contai * @returns {RequestInformationContainer} - returns a request information * container instance that may be in its initial state */ -function koaRequestInformationExtractor(req, res) { +export function koaRequestInformationExtractor(req, res) { var returnObject = new RequestInformationContainer(); if ( @@ -55,5 +55,3 @@ function koaRequestInformationExtractor(req, res) { return returnObject; } - -module.exports = koaRequestInformationExtractor; diff --git a/handwritten/error-reporting/src/request-extractors/manual.ts b/handwritten/error-reporting/src/request-extractors/manual.ts index e02052e4353..1a6aa29fbdf 100644 --- a/handwritten/error-reporting/src/request-extractors/manual.ts +++ b/handwritten/error-reporting/src/request-extractors/manual.ts @@ -39,7 +39,7 @@ import {RequestInformationContainer} from '../classes/request-information-contai * @returns {RequestInformationContainer} - an object containing the request * information in a standardized format */ -function manualRequestInformationExtractor(req) { +export function manualRequestInformationExtractor(req) { var returnObject = new RequestInformationContainer(); if (!isObject(req) || isArray(req) || isFunction(req)) { @@ -72,5 +72,3 @@ function manualRequestInformationExtractor(req) { return returnObject; } - -module.exports = manualRequestInformationExtractor; diff --git a/handwritten/error-reporting/system-test/error-reporting.js b/handwritten/error-reporting/system-test/error-reporting.js index dafb3b91b9d..07fb74fd772 100644 --- a/handwritten/error-reporting/system-test/error-reporting.js +++ b/handwritten/error-reporting/system-test/error-reporting.js @@ -22,7 +22,7 @@ var RequestHandler = require('../src/google-apis/auth-client.js').RequestHandler var ErrorsApiTransport = require('../utils/errors-api-transport.js'); var ErrorMessage = require('../src/classes/error-message.js').ErrorMessage; var Configuration = require('../test/fixtures/configuration.js'); -var createLogger = require('../src/logger.js'); +var createLogger = require('../src/logger.js').createLogger; var is = require('is'); var isObject = is.object; var isString = is.string; diff --git a/handwritten/error-reporting/test/unit/configuration.js b/handwritten/error-reporting/test/unit/configuration.js index 5a3a0e5ad5a..134f406e317 100644 --- a/handwritten/error-reporting/test/unit/configuration.js +++ b/handwritten/error-reporting/test/unit/configuration.js @@ -21,7 +21,7 @@ var merge = require('lodash.merge'); var Configuration = require('../fixtures/configuration.js'); var Fuzzer = require('../../utils/fuzzer.js'); var level = process.env.GCLOUD_ERRORS_LOGLEVEL; -var logger = require('../../src/logger.js')({ +var logger = require('../../src/logger.js').createLogger({ logLevel: isNumber(level) ? level : 4, }); var nock = require('nock'); diff --git a/handwritten/error-reporting/test/unit/interfaces/express.js b/handwritten/error-reporting/test/unit/interfaces/express.js index aab01245f12..06ad0de5be6 100644 --- a/handwritten/error-reporting/test/unit/interfaces/express.js +++ b/handwritten/error-reporting/test/unit/interfaces/express.js @@ -18,11 +18,11 @@ var assert = require('assert'); var merge = require('lodash.merge'); -var expressInterface = require('../../../src/interfaces/express.js'); +var expressInterface = require('../../../src/interfaces/express.js').makeExpressHandler; var ErrorMessage = require('../../../src/classes/error-message.js').ErrorMessage; var Fuzzer = require('../../../utils/fuzzer.js'); var Configuration = require('../../fixtures/configuration.js'); -var createLogger = require('../../../src/logger.js'); +var createLogger = require('../../../src/logger.js').createLogger; describe('expressInterface', function() { describe('Exception handling', function() { diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.js b/handwritten/error-reporting/test/unit/interfaces/hapi.js index 2531a9f63bc..0bc1c663240 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.js +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.js @@ -21,7 +21,7 @@ var is = require('is'); var isFunction = is.fn; var isObject = is.object; var assert = require('assert'); -var hapiInterface = require('../../../src/interfaces/hapi.js'); +var hapiInterface = require('../../../src/interfaces/hapi.js').makeHapiPlugin; var ErrorMessage = require('../../../src/classes/error-message.js').ErrorMessage; var Fuzzer = require('../../../utils/fuzzer.js'); var EventEmitter = require('events').EventEmitter; diff --git a/handwritten/error-reporting/test/unit/interfaces/restify.js b/handwritten/error-reporting/test/unit/interfaces/restify.js index 85aae6fa7b9..f5e1cd9d9a8 100644 --- a/handwritten/error-reporting/test/unit/interfaces/restify.js +++ b/handwritten/error-reporting/test/unit/interfaces/restify.js @@ -18,7 +18,7 @@ var EventEmitter = require('events').EventEmitter; var assert = require('assert'); -var restifyInterface = require('../../../src/interfaces/restify.js'); +var restifyInterface = require('../../../src/interfaces/restify.js').handlerSetup; // node v0.12 compatibility if (!EventEmitter.prototype.listenerCount) { diff --git a/handwritten/error-reporting/test/unit/logger.js b/handwritten/error-reporting/test/unit/logger.js index fd5c25a495e..3d07f1604f0 100644 --- a/handwritten/error-reporting/test/unit/logger.js +++ b/handwritten/error-reporting/test/unit/logger.js @@ -16,7 +16,7 @@ 'use strict'; var assert = require('assert'); -var createLogger = require('../../src/logger.js'); +var createLogger = require('../../src/logger.js').createLogger; describe('logger', function() { describe('Initialization', function() { diff --git a/handwritten/error-reporting/test/unit/populate-error-message.js b/handwritten/error-reporting/test/unit/populate-error-message.js index ff3c92a1234..14979a1de8b 100644 --- a/handwritten/error-reporting/test/unit/populate-error-message.js +++ b/handwritten/error-reporting/test/unit/populate-error-message.js @@ -19,7 +19,7 @@ var assert = require('assert'); var ErrorMessage = require('../../src/classes/error-message.js').ErrorMessage; -var populateErrorMessage = require('../../src/populate-error-message.js'); +var populateErrorMessage = require('../../src/populate-error-message.js').populateErrorMessage; var TEST_USER_INVALID = 12; var TEST_MESSAGE = 'This is a test'; diff --git a/handwritten/error-reporting/test/unit/request-extractors/hapi.js b/handwritten/error-reporting/test/unit/request-extractors/hapi.js index 669a21435bc..b1f28c1dac7 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/hapi.js +++ b/handwritten/error-reporting/test/unit/request-extractors/hapi.js @@ -17,7 +17,7 @@ 'use strict'; var assert = require('assert'); -var hapiRequestInformationExtractor = require('../../../src/request-extractors/hapi.js'); +var hapiRequestInformationExtractor = require('../../../src/request-extractors/hapi.js').hapiRequestInformationExtractor; var Fuzzer = require('../../../utils/fuzzer.js'); describe('hapiRequestInformationExtractor behaviour', function() { diff --git a/handwritten/error-reporting/test/unit/request-extractors/koa.js b/handwritten/error-reporting/test/unit/request-extractors/koa.js index dfd4caffb45..b30fb8892bd 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/koa.js +++ b/handwritten/error-reporting/test/unit/request-extractors/koa.js @@ -17,7 +17,7 @@ 'use strict'; var assert = require('assert'); -var koaRequestInformationExtractor = require('../../../src/request-extractors/koa.js'); +var koaRequestInformationExtractor = require('../../../src/request-extractors/koa.js').koaRequestInformationExtractor; var Fuzzer = require('../../../utils/fuzzer.js'); describe('koaRequestInformationExtractor', function() { diff --git a/handwritten/error-reporting/test/unit/request-extractors/manual.js b/handwritten/error-reporting/test/unit/request-extractors/manual.js index 6b5f009f668..b83275f0543 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/manual.js +++ b/handwritten/error-reporting/test/unit/request-extractors/manual.js @@ -19,7 +19,7 @@ var assert = require('assert'); var omit = require('lodash.omit'); var extend = require('extend'); -var manualRequestInformationExtractor = require('../../../src/request-extractors/manual.js'); +var manualRequestInformationExtractor = require('../../../src/request-extractors/manual.js').manualRequestInformationExtractor; var Fuzzer = require('../../../utils/fuzzer.js'); describe('manualRequestInformationExtractor', function() { diff --git a/handwritten/error-reporting/test/unit/service-configuration.js b/handwritten/error-reporting/test/unit/service-configuration.js index 0ccdac54916..5cfea253ebe 100644 --- a/handwritten/error-reporting/test/unit/service-configuration.js +++ b/handwritten/error-reporting/test/unit/service-configuration.js @@ -24,7 +24,7 @@ var assign = require('lodash.assign'); var omitBy = require('lodash.omitby'); var Configuration = require('../fixtures/configuration.js'); var level = process.env.GCLOUD_ERRORS_LOGLEVEL; -var logger = require('../../src/logger.js')({ +var logger = require('../../src/logger.js').createLogger({ logLevel: isNumber(level) ? level : 4, }); var env = { From d139e89475735af0a6355c90c09d8e6743a37419 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Tue, 9 Jan 2018 10:43:17 -0800 Subject: [PATCH 046/527] chore: Use `import` syntax (#31) --- handwritten/error-reporting/src/classes/error-message.ts | 2 +- .../src/classes/request-information-container.ts | 2 +- handwritten/error-reporting/src/configuration.ts | 4 ++-- handwritten/error-reporting/src/google-apis/auth-client.ts | 2 +- handwritten/error-reporting/src/interfaces/express.ts | 2 +- handwritten/error-reporting/src/interfaces/hapi.ts | 2 +- handwritten/error-reporting/src/interfaces/manual.ts | 2 +- handwritten/error-reporting/src/interfaces/restify.ts | 2 +- handwritten/error-reporting/src/logger.ts | 4 ++-- handwritten/error-reporting/src/populate-error-message.ts | 4 ++-- handwritten/error-reporting/src/request-extractors/express.ts | 2 +- handwritten/error-reporting/src/request-extractors/hapi.ts | 4 ++-- handwritten/error-reporting/src/request-extractors/koa.ts | 2 +- handwritten/error-reporting/src/request-extractors/manual.ts | 4 ++-- 14 files changed, 19 insertions(+), 19 deletions(-) diff --git a/handwritten/error-reporting/src/classes/error-message.ts b/handwritten/error-reporting/src/classes/error-message.ts index 70a4c4d22de..6799eaebea2 100644 --- a/handwritten/error-reporting/src/classes/error-message.ts +++ b/handwritten/error-reporting/src/classes/error-message.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -var is = require('is'); +import * as is from 'is'; var isString = is.string; var isNumber = is.number; var isObject = is.object; diff --git a/handwritten/error-reporting/src/classes/request-information-container.ts b/handwritten/error-reporting/src/classes/request-information-container.ts index 77e28386fa9..e2c03779180 100644 --- a/handwritten/error-reporting/src/classes/request-information-container.ts +++ b/handwritten/error-reporting/src/classes/request-information-container.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -var is = require('is'); +import * as is from 'is'; var isString = is.string; var isNumber = is.number; diff --git a/handwritten/error-reporting/src/configuration.ts b/handwritten/error-reporting/src/configuration.ts index 7a808acc372..2feb07f7e60 100644 --- a/handwritten/error-reporting/src/configuration.ts +++ b/handwritten/error-reporting/src/configuration.ts @@ -15,8 +15,8 @@ */ var env = process.env; -var has = require('lodash.has'); -var is = require('is'); +import * as has from 'lodash.has'; +import * as is from 'is'; var isObject = is.object; var isBoolean = is.boolean; var isString = is.string; diff --git a/handwritten/error-reporting/src/google-apis/auth-client.ts b/handwritten/error-reporting/src/google-apis/auth-client.ts index 2d4c8c9591a..ac6fcad3b6b 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.ts +++ b/handwritten/error-reporting/src/google-apis/auth-client.ts @@ -26,7 +26,7 @@ export interface Common { const common: Common = require('@google-cloud/common'); const pkg = require('../../../package.json'); -var is = require('is'); +import * as is from 'is'; var isFunction = is.fn; var isString = is.string; diff --git a/handwritten/error-reporting/src/interfaces/express.ts b/handwritten/error-reporting/src/interfaces/express.ts index 52e2e44a23d..6ebd8dc415a 100644 --- a/handwritten/error-reporting/src/interfaces/express.ts +++ b/handwritten/error-reporting/src/interfaces/express.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -var is = require('is'); +import * as is from 'is'; var isObject = is.object; var isFunction = is.fn; import {ErrorMessage} from '../classes/error-message'; diff --git a/handwritten/error-reporting/src/interfaces/hapi.ts b/handwritten/error-reporting/src/interfaces/hapi.ts index 6646fc8420b..8cfc4050892 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.ts +++ b/handwritten/error-reporting/src/interfaces/hapi.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -var is = require('is'); +import * as is from 'is'; var isObject = is.object; var isFunction = is.fn; import {ErrorMessage} from '../classes/error-message'; diff --git a/handwritten/error-reporting/src/interfaces/manual.ts b/handwritten/error-reporting/src/interfaces/manual.ts index 1b078d9f11f..6512185d477 100644 --- a/handwritten/error-reporting/src/interfaces/manual.ts +++ b/handwritten/error-reporting/src/interfaces/manual.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -var is = require('is'); +import * as is from 'is'; var isString = is.string; var isObject = is.object; var isFunction = is.fn; diff --git a/handwritten/error-reporting/src/interfaces/restify.ts b/handwritten/error-reporting/src/interfaces/restify.ts index ea9b5777552..3fc2d540afa 100644 --- a/handwritten/error-reporting/src/interfaces/restify.ts +++ b/handwritten/error-reporting/src/interfaces/restify.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -var is = require('is'); +import * as is from 'is'; var isObject = is.object; var isFunction = is.function; import {ErrorMessage} from '../classes/error-message'; diff --git a/handwritten/error-reporting/src/logger.ts b/handwritten/error-reporting/src/logger.ts index 9555678979b..505a8fe22c9 100644 --- a/handwritten/error-reporting/src/logger.ts +++ b/handwritten/error-reporting/src/logger.ts @@ -15,8 +15,8 @@ */ /*jshint bitwise: false*/ -var has = require('lodash.has'); -var is = require('is'); +import * as has from 'lodash.has'; +import * as is from 'is'; var isObject = is.object; var isString = is.string; var isNumber = is.number; diff --git a/handwritten/error-reporting/src/populate-error-message.ts b/handwritten/error-reporting/src/populate-error-message.ts index 3416d305744..f48164a8b1c 100644 --- a/handwritten/error-reporting/src/populate-error-message.ts +++ b/handwritten/error-reporting/src/populate-error-message.ts @@ -14,8 +14,8 @@ * limitations under the License. */ -var has = require('lodash.has'); -var is = require('is'); +import * as has from 'lodash.has'; +import * as is from 'is'; var isObject = is.object; import {buildStackTrace} from './build-stack-trace'; diff --git a/handwritten/error-reporting/src/request-extractors/express.ts b/handwritten/error-reporting/src/request-extractors/express.ts index edb93e91435..f766d03c449 100644 --- a/handwritten/error-reporting/src/request-extractors/express.ts +++ b/handwritten/error-reporting/src/request-extractors/express.ts @@ -15,7 +15,7 @@ */ // jscs:disable requireEarlyReturn -var is = require('is'); +import * as is from 'is'; var isFunction = is.fn; var isObject = is.object; import {RequestInformationContainer} from '../classes/request-information-container'; diff --git a/handwritten/error-reporting/src/request-extractors/hapi.ts b/handwritten/error-reporting/src/request-extractors/hapi.ts index 535f73f17a1..bfffe419099 100644 --- a/handwritten/error-reporting/src/request-extractors/hapi.ts +++ b/handwritten/error-reporting/src/request-extractors/hapi.ts @@ -15,8 +15,8 @@ */ // jscs:disable requireEarlyReturn -var has = require('lodash.has'); -var is = require('is'); +import * as has from 'lodash.has'; +import * as is from 'is'; var isObject = is.object; var isFunction = is.function; var isArray = is.array; diff --git a/handwritten/error-reporting/src/request-extractors/koa.ts b/handwritten/error-reporting/src/request-extractors/koa.ts index f97f038c27d..ab0e136243d 100644 --- a/handwritten/error-reporting/src/request-extractors/koa.ts +++ b/handwritten/error-reporting/src/request-extractors/koa.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -var is = require('is'); +import * as is from 'is'; var isObject = is.object; var isFunction = is.function; var isArray = is.array; diff --git a/handwritten/error-reporting/src/request-extractors/manual.ts b/handwritten/error-reporting/src/request-extractors/manual.ts index 1a6aa29fbdf..f4ce5cdc1bd 100644 --- a/handwritten/error-reporting/src/request-extractors/manual.ts +++ b/handwritten/error-reporting/src/request-extractors/manual.ts @@ -14,8 +14,8 @@ * limitations under the License. */ -var has = require('lodash.has'); -var is = require('is'); +import * as has from 'lodash.has'; +import * as is from 'is'; var isObject = is.object; var isArray = is.array; var isFunction = is.fn; From fa86cf18b430366d94b2c6b948316c10fb1b7be5 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Wed, 10 Jan 2018 09:43:36 -0800 Subject: [PATCH 047/527] chore: Add type annotations (#32) --- handwritten/error-reporting/package.json | 5 ++ .../error-reporting/src/build-stack-trace.ts | 2 +- .../src/classes/error-message.ts | 54 +++++++++++------ .../classes/request-information-container.ts | 18 +++--- .../error-reporting/src/configuration.ts | 59 +++++++++++++------ .../src/google-apis/auth-client.ts | 33 +++++------ handwritten/error-reporting/src/index.ts | 4 +- .../error-reporting/src/interfaces/express.ts | 10 +++- .../error-reporting/src/interfaces/hapi.ts | 19 ++++-- .../error-reporting/src/interfaces/koa.ts | 6 +- .../error-reporting/src/interfaces/manual.ts | 16 +++-- .../src/interfaces/message-builder.ts | 3 +- .../error-reporting/src/interfaces/restify.ts | 28 +++++---- handwritten/error-reporting/src/logger.ts | 8 ++- .../src/populate-error-message.ts | 46 ++++++++++----- .../src/request-extractors/express.ts | 5 +- .../src/request-extractors/hapi.ts | 18 +++--- .../src/request-extractors/koa.ts | 3 +- .../src/request-extractors/manual.ts | 17 ++++-- handwritten/error-reporting/src/types.d.ts | 56 ++++++++++++++++++ 20 files changed, 285 insertions(+), 125 deletions(-) create mode 100644 handwritten/error-reporting/src/types.d.ts diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index b2b875f7dbb..0b327de1405 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -57,8 +57,13 @@ }, "devDependencies": { "@google-cloud/nodejs-repo-tools": "^2.0.11", + "@types/express": "^4.11.0", + "@types/hapi": "^16.1.11", + "@types/koa": "^2.0.43", "@types/mocha": "^2.2.45", "@types/node": "^8.5.2", + "@types/request": "^2.0.9", + "@types/restify": "^5.0.6", "async": "^2.6.0", "body-parser": "^1.15.1", "codecov": "^3.0.0", diff --git a/handwritten/error-reporting/src/build-stack-trace.ts b/handwritten/error-reporting/src/build-stack-trace.ts index ab9e45b1dd8..32e1b08c393 100644 --- a/handwritten/error-reporting/src/build-stack-trace.ts +++ b/handwritten/error-reporting/src/build-stack-trace.ts @@ -25,7 +25,7 @@ const SRC_ROOT = __dirname; * @returns {String} - A string representation of the stack trace at the point * where this method was invoked. */ -export function buildStackTrace(message) { +export function buildStackTrace(message: string) { var target = {}; // Build a stack trace without the frames associated with `buildStackTrace`. // The stack is located at `target.stack`. diff --git a/handwritten/error-reporting/src/classes/error-message.ts b/handwritten/error-reporting/src/classes/error-message.ts index 6799eaebea2..bfad439ac16 100644 --- a/handwritten/error-reporting/src/classes/error-message.ts +++ b/handwritten/error-reporting/src/classes/error-message.ts @@ -19,11 +19,31 @@ var isString = is.string; var isNumber = is.number; var isObject = is.object; +import {RequestInformationContainer} from './request-information-container'; +import {ServiceContext} from '../configuration'; + +interface Context { + httpRequest: { + method: string; + url: string; + userAgent: string; + referrer: string; + responseStatusCode: number; + remoteIp: string; + }; + user: string; + reportLocation: { + filePath: string; + lineNumber: number; + functionName: string; + }; +} + export class ErrorMessage { - eventTime: any; - serviceContext: any; - message: any; - context: any; + eventTime: string; + serviceContext: ServiceContext; + message: string; + context: Context; /** * The constructor for ErrorMessage takes no arguments and is solely meant to @@ -110,7 +130,7 @@ export class ErrorMessage { * error was reported * @returns {this} - returns the instance for chaining */ - setServiceContext(service, version) { + setServiceContext(service: string, version?: string) { this.serviceContext.service = isString(service) ? service : 'node'; this.serviceContext.version = isString(version) ? version : undefined; @@ -123,7 +143,7 @@ export class ErrorMessage { * @param {String} message - the error message * @returns {this} - returns the instance for chaining */ - setMessage(message) { + setMessage(message: string) { this.message = isString(message) ? message : ''; return this; @@ -136,7 +156,7 @@ export class ErrorMessage { * errors instantiation * @returns {this} - returns the instance for chaining */ - setHttpMethod(method) { + setHttpMethod(method: string) { this.context.httpRequest.method = isString(method) ? method : ''; return this; @@ -148,7 +168,7 @@ export class ErrorMessage { * @param {String} url - the requests target url * @returns {this} - returns the instance for chaining */ - setUrl(url) { + setUrl(url: string) { this.context.httpRequest.url = isString(url) ? url : ''; return this; @@ -160,7 +180,7 @@ export class ErrorMessage { * @param {String} userAgent - the requests user-agent * @returns {this} - returns the instance for chaining */ - setUserAgent(userAgent) { + setUserAgent(userAgent: string) { this.context.httpRequest.userAgent = isString(userAgent) ? userAgent : ''; return this; @@ -172,7 +192,7 @@ export class ErrorMessage { * @param {String} referrer - the requests referrer * @returns {this} - returns the instance for chaining */ - setReferrer(referrer) { + setReferrer(referrer: string) { this.context.httpRequest.referrer = isString(referrer) ? referrer : ''; return this; @@ -184,7 +204,7 @@ export class ErrorMessage { * @param {Number} responseStatusCode - the response status code * @returns {this} - returns the instance for chaining */ - setResponseStatusCode(responseStatusCode) { + setResponseStatusCode(responseStatusCode: number) { this.context.httpRequest.responseStatusCode = isNumber(responseStatusCode) ? responseStatusCode : 0; @@ -198,7 +218,7 @@ export class ErrorMessage { * @param {String} remoteIp - the requesters remote IP * @returns {this} - returns the instance for chaining */ - setRemoteIp(remoteIp) { + setRemoteIp(remoteIp: string) { this.context.httpRequest.remoteIp = isString(remoteIp) ? remoteIp : ''; return this; @@ -210,7 +230,7 @@ export class ErrorMessage { * @param {String} user - the vm instances user * @returns {this} - returns the instance for chaining */ - setUser(user) { + setUser(user: string) { this.context.user = isString(user) ? user : ''; return this; @@ -222,7 +242,7 @@ export class ErrorMessage { * @param {String} filePath - the vm instances filePath * @returns {this} - returns the instance for chaining */ - setFilePath(filePath) { + setFilePath(filePath: string) { this.context.reportLocation.filePath = isString(filePath) ? filePath : ''; return this; @@ -234,7 +254,7 @@ export class ErrorMessage { * @param {Number} lineNumber - the line number of the report context * @returns {this} - returns the instance for chaining */ - setLineNumber(lineNumber) { + setLineNumber(lineNumber: number) { this.context.reportLocation.lineNumber = isNumber(lineNumber) ? lineNumber : 0; @@ -248,7 +268,7 @@ export class ErrorMessage { * @param {String} functionName - the function name of the report context * @returns {this} - returns the instance for chaining */ - setFunctionName(functionName) { + setFunctionName(functionName: string) { this.context.reportLocation.functionName = isString(functionName) ? functionName : ''; @@ -264,7 +284,7 @@ export class ErrorMessage { * information extractors * @returns {this} - returns the instance for chaining */ - consumeRequestInformation(requestInformation) { + consumeRequestInformation(requestInformation: RequestInformationContainer) { if (!isObject(requestInformation)) { return this; } diff --git a/handwritten/error-reporting/src/classes/request-information-container.ts b/handwritten/error-reporting/src/classes/request-information-container.ts index e2c03779180..cb978ddf51c 100644 --- a/handwritten/error-reporting/src/classes/request-information-container.ts +++ b/handwritten/error-reporting/src/classes/request-information-container.ts @@ -61,7 +61,7 @@ export class RequestInformationContainer { * @param {String} url - the url of the request * @returns {this} - returns the instance for chaining */ - setUrl(url) { + setUrl(url: string) { this.url = isString(url) ? url : ''; return this; @@ -73,7 +73,7 @@ export class RequestInformationContainer { * @param {String} method - the method of the request * @returns {this} - returns the instance for chaining */ - setMethod(method) { + setMethod(method: string) { this.method = isString(method) ? method : ''; return this; @@ -85,8 +85,8 @@ export class RequestInformationContainer { * @param {String} referrer - the referrer of the request * @returns {this} - returns the instance for chaining */ - setReferrer(referrer) { - this.referrer = isString(referrer) ? referrer : ''; + setReferrer(referrer?: string) { + this.referrer = (isString(referrer) ? referrer : '')!; return this; }; @@ -97,8 +97,8 @@ export class RequestInformationContainer { * @param {String} userAgent - the user agent committing the request * @returns {this} - returns the instance for chaining */ - setUserAgent(userAgent) { - this.userAgent = isString(userAgent) ? userAgent : ''; + setUserAgent(userAgent?: string) { + this.userAgent = (isString(userAgent) ? userAgent : '')!; return this; }; @@ -109,8 +109,8 @@ export class RequestInformationContainer { * @param {String} remoteIp - the remote IP of the requester * @returns {this} - returns the instance for chaining */ - setRemoteAddress(remoteIp) { - this.remoteAddress = isString(remoteIp) ? remoteIp : ''; + setRemoteAddress(remoteIp?: string) { + this.remoteAddress = (isString(remoteIp) ? remoteIp : '')!; return this; }; @@ -121,7 +121,7 @@ export class RequestInformationContainer { * @param {Number} statusCode - the status code of the response to the request * @returns {this} - returns the instance for chaining */ - setStatusCode(statusCode) { + setStatusCode(statusCode: number) { this.statusCode = isNumber(statusCode) ? statusCode : 0; return this; diff --git a/handwritten/error-reporting/src/configuration.ts b/handwritten/error-reporting/src/configuration.ts index 2feb07f7e60..8295a395ebe 100644 --- a/handwritten/error-reporting/src/configuration.ts +++ b/handwritten/error-reporting/src/configuration.ts @@ -22,6 +22,27 @@ var isBoolean = is.boolean; var isString = is.string; var isNumber = is.number; +import {Logger} from '@google-cloud/common'; + +export interface ConfigurationOptions { + projectId?: string; + keyFilename?: string; + logLevel?: string|number; + key?: string; + serviceContext?: { + service?: string; + version?: string; + }; + ignoreEnvironmentCheck?: boolean; + credentials?: {}; + reportUnhandledRejections?: boolean; +} + +export interface ServiceContext { + service: string; + version?: string; +} + /** * The Configuration constructor function initializes several internal * properties on the Configuration instance and accepts a runtime-given @@ -44,17 +65,17 @@ var isNumber = is.number; * been initialized. */ export class Configuration { - _logger: any; + _logger: Logger; _shouldReportErrorsToAPI: boolean; - _projectId: any; - _key: any; - keyFilename: any; - credentials: any; - _serviceContext: any; - _reportUnhandledRejections: false; - _givenConfiguration: any; + _projectId: string|null; + _key: string|null; + keyFilename: string|null; + credentials: {}|null; + _serviceContext: ServiceContext; + _reportUnhandledRejections: boolean; + _givenConfiguration: ConfigurationOptions; - constructor(givenConfig, logger) { + constructor(givenConfig: ConfigurationOptions, logger: Logger) { /** * The _logger property caches the logger instance created at the top-level * for configuration logging purposes. @@ -216,14 +237,14 @@ export class Configuration { this._serviceContext.version = isString(version) ? version : undefined; if (isObject(this._givenConfiguration.serviceContext)) { - if (isString(this._givenConfiguration.serviceContext.service)) { - this._serviceContext.service = this._givenConfiguration.serviceContext.service; + if (isString(this._givenConfiguration.serviceContext!.service)) { + this._serviceContext.service = this._givenConfiguration.serviceContext!.service!; } else if (has(this._givenConfiguration.serviceContext, 'service')) { throw new Error('config.serviceContext.service must be a string'); } - if (isString(this._givenConfiguration.serviceContext.version)) { - this._serviceContext.version = this._givenConfiguration.serviceContext.version; + if (isString(this._givenConfiguration.serviceContext!.version)) { + this._serviceContext.version = this._givenConfiguration.serviceContext!.version; } else if (has(this._givenConfiguration.serviceContext, 'version')) { throw new Error('config.serviceContext.version must be a string'); } @@ -263,22 +284,22 @@ export class Configuration { ); } if (isString(this._givenConfiguration.key)) { - this._key = this._givenConfiguration.key; + this._key = this._givenConfiguration.key!; } else if (has(this._givenConfiguration, 'key')) { throw new Error('config.key must be a string'); } if (isString(this._givenConfiguration.keyFilename)) { - this.keyFilename = this._givenConfiguration.keyFilename; + this.keyFilename = this._givenConfiguration.keyFilename!; } else if (has(this._givenConfiguration, 'keyFilename')) { throw new Error('config.keyFilename must be a string'); } if (isObject(this._givenConfiguration.credentials)) { - this.credentials = this._givenConfiguration.credentials; + this.credentials = this._givenConfiguration.credentials!; } else if (has(this._givenConfiguration, 'credentials')) { throw new Error('config.credentials must be a valid credentials object'); } if (isBoolean(this._givenConfiguration.reportUnhandledRejections)) { - this._reportUnhandledRejections = this._givenConfiguration.reportUnhandledRejections; + this._reportUnhandledRejections = this._givenConfiguration.reportUnhandledRejections!; } else if (has(this._givenConfiguration, 'reportUnhandledRejections')) { throw new Error('config.reportUnhandledRejections must be a boolean'); } @@ -312,9 +333,9 @@ export class Configuration { } if (has(this._givenConfiguration, 'projectId')) { if (isString(this._givenConfiguration.projectId)) { - this._projectId = this._givenConfiguration.projectId; + this._projectId = this._givenConfiguration.projectId!; } else if (isNumber(this._givenConfiguration.projectId)) { - this._projectId = this._givenConfiguration.projectId.toString(); + this._projectId = this._givenConfiguration.projectId!.toString(); } } return this._projectId; diff --git a/handwritten/error-reporting/src/google-apis/auth-client.ts b/handwritten/error-reporting/src/google-apis/auth-client.ts index ac6fcad3b6b..b4d2049b4cc 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.ts +++ b/handwritten/error-reporting/src/google-apis/auth-client.ts @@ -15,21 +15,16 @@ */ /*jshint unused:false*/ -export interface Service { - new(config: any, options: any): Service; - request: Function; -} - -export interface Common { - Service: Service; -} - -const common: Common = require('@google-cloud/common'); +import * as common from '@google-cloud/common'; const pkg = require('../../../package.json'); import * as is from 'is'; var isFunction = is.fn; var isString = is.string; +import {Configuration} from '../configuration'; +import {ErrorMessage} from '../classes/error-message'; +import * as http from 'http'; + /* @const {Array} list of scopes needed to work with the errors api. */ var SCOPES = ['https://www.googleapis.com/auth/cloud-platform']; @@ -62,9 +57,10 @@ var API = 'https://clouderrorreporting.googleapis.com/v1beta1'; * @property {Object} _logger - the instance-cached logger instance */ export class RequestHandler extends common.Service { - private _config: any; - private _logger: any; - private authClient: any; + private _config: Configuration; + private _logger: common.Logger; + // TODO: Make this more precise + private authClient: {getToken: (err: {}) => void;}; /** * Returns a query-string request object if a string key is given, otherwise @@ -75,7 +71,7 @@ export class RequestHandler extends common.Service { * null in case no api key is given * @static */ - static manufactureQueryString(key) { + static manufactureQueryString(key: string|null) { if (isString(key)) { return {key: key}; } @@ -98,7 +94,7 @@ export class RequestHandler extends common.Service { * @param {Configuration} config - an instance of the Configuration class * @param {Logger} logger - an instance of logger */ - constructor(config, logger) { + constructor(config: Configuration, logger: common.Logger) { var pid = config.getProjectId(); // If an API key is provided, do not try to authenticate. var tryAuthenticate = !config.getKey(); @@ -111,7 +107,8 @@ export class RequestHandler extends common.Service { projectIdRequired: true, customEndpoint: !tryAuthenticate, }, - config + // TODO: Fix the type incompatibilities that require this cast + config as common.ServiceAuthenticationConfig ); this._config = config; this._logger = logger; @@ -168,8 +165,8 @@ export class RequestHandler extends common.Service { * @returns {Undefined} - does not return anything * @instance */ - sendError(errorMessage, userCb) { - var cb = isFunction(userCb) ? userCb : RequestHandler.noOp; + sendError(errorMessage: ErrorMessage, userCb?: (err: Error|null, response: http.ServerResponse|null, body: any) => void) { + var cb: Function = (isFunction(userCb) ? userCb : RequestHandler.noOp)!; if (this._config.getShouldReportErrorsToAPI()) { this.request( { diff --git a/handwritten/error-reporting/src/index.ts b/handwritten/error-reporting/src/index.ts index ef2d18f083c..cf7814f584b 100644 --- a/handwritten/error-reporting/src/index.ts +++ b/handwritten/error-reporting/src/index.ts @@ -18,7 +18,7 @@ * @module error-reporting */ -import {Configuration} from './configuration'; +import {Configuration, ConfigurationOptions} from './configuration'; import {RequestHandler as AuthClient} from './google-apis/auth-client'; // Begin error reporting interfaces @@ -87,7 +87,7 @@ import {createLogger} from './logger'; * @param {ConfigurationOptions} initConfiguration - The desired project/error * reporting configuration. */ -function Errors(initConfiguration): void { +function Errors(initConfiguration: ConfigurationOptions): void { if (!(this instanceof Errors)) { return new Errors(initConfiguration); } diff --git a/handwritten/error-reporting/src/interfaces/express.ts b/handwritten/error-reporting/src/interfaces/express.ts index 6ebd8dc415a..a03af9e3428 100644 --- a/handwritten/error-reporting/src/interfaces/express.ts +++ b/handwritten/error-reporting/src/interfaces/express.ts @@ -21,6 +21,10 @@ import {ErrorMessage} from '../classes/error-message'; import {expressRequestInformationExtractor} from '../request-extractors/express'; import {populateErrorMessage} from '../populate-error-message'; +import {RequestHandler} from '../google-apis/auth-client'; +import {Configuration} from '../configuration'; +import * as express from 'express'; + /** * Returns a function that can be used as an express error handling middleware. * @function makeExpressHandler @@ -30,7 +34,7 @@ import {populateErrorMessage} from '../populate-error-message'; * @returns {expressErrorHandler} - a function that can be used as an express * error handling middleware. */ -export function makeExpressHandler(client, config) { +export function makeExpressHandler(client: RequestHandler, config: Configuration) { /** * The Express Error Handler function is an interface for the error handler * stack into the Express architecture. @@ -42,9 +46,9 @@ export function makeExpressHandler(client, config) { * @param {Function} next - an Express continuation callback * @returns {ErrorMessage} - Returns the ErrorMessage instance */ - function expressErrorHandler(err, req, res, next) { + function expressErrorHandler(err: {}, req: express.Request, res: express.Response, next: Function) { var ctxService = ''; - var ctxVersion = ''; + var ctxVersion: string|undefined = ''; if (isObject(config)) { ctxService = config.getServiceContext().service; diff --git a/handwritten/error-reporting/src/interfaces/hapi.ts b/handwritten/error-reporting/src/interfaces/hapi.ts index 8cfc4050892..03d194b92c0 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.ts +++ b/handwritten/error-reporting/src/interfaces/hapi.ts @@ -22,6 +22,10 @@ import {hapiRequestInformationExtractor} from '../request-extractors/hapi'; import {populateErrorMessage} from '../populate-error-message'; var packageJson = require('../../../package.json'); +import {RequestHandler} from '../google-apis/auth-client'; +import {Configuration} from '../configuration'; +import * as hapi from 'hapi'; + /** * The Hapi error handler function serves simply to create an error message * and begin that error message on the path of correct population. @@ -32,9 +36,9 @@ var packageJson = require('../../../package.json'); * @returns {ErrorMessage} - a partially or fully populated instance of * ErrorMessage */ -function hapiErrorHandler(req, err, config) { +function hapiErrorHandler(req: hapi.Request, err: {}, config: Configuration) { var service = ''; - var version = ''; + var version: string|undefined = ''; if (isObject(config)) { service = config.getServiceContext().service; @@ -57,7 +61,7 @@ function hapiErrorHandler(req, err, config) { * configuration * @returns {Object} - the actual Hapi plugin */ -export function makeHapiPlugin(client, config) { +export function makeHapiPlugin(client: RequestHandler, config: Configuration) { /** * The register function serves to attach the hapiErrorHandler to specific * points in the hapi request-response lifecycle. Namely: it attaches to the @@ -72,7 +76,7 @@ export function makeHapiPlugin(client, config) { * plugin * @returns {Undefined} - returns the execution of the next callback */ - function hapiRegisterFunction(server, options, next) { + function hapiRegisterFunction(server: hapi.Server, options: {}, next: Function) { if (isObject(server)) { if (isFunction(server.on)) { server.on('request-error', function(req, err) { @@ -85,11 +89,14 @@ export function makeHapiPlugin(client, config) { if ( isObject(request) && isObject(request.response) && - request.response.isBoom + // TODO: Handle the case when `request.response` is null + request.response!.isBoom ) { var em = hapiErrorHandler( request, - new Error(request.response.message), + // TODO: Handle the case when `request.response` is null + // TODO: Handle the type conflict that requires a cast to string + new Error(request.response!.message as {} as string), config ); client.sendError(em); diff --git a/handwritten/error-reporting/src/interfaces/koa.ts b/handwritten/error-reporting/src/interfaces/koa.ts index 9d02d81793e..36f3419d8d3 100644 --- a/handwritten/error-reporting/src/interfaces/koa.ts +++ b/handwritten/error-reporting/src/interfaces/koa.ts @@ -17,6 +17,8 @@ import {ErrorMessage} from '../classes/error-message'; import {koaRequestInformationExtractor} from '../request-extractors/koa'; import {populateErrorMessage} from '../populate-error-message'; +import { RequestHandler } from '../google-apis/auth-client'; +import { Configuration } from '../configuration'; /** * The koaErrorHandler should be placed at the beginning of the koa middleware @@ -30,7 +32,7 @@ import {populateErrorMessage} from '../populate-error-message'; * @returns {Function} - The function used to catch errors yielded by downstream * request handlers. */ -export function koaErrorHandler(client, config) { +export function koaErrorHandler(client: RequestHandler, config: Configuration) { /** * The actual error handler for the Koa plugin attempts to yield the results * of downstream request handlers and will attempt to catch errors emitted by @@ -38,7 +40,7 @@ export function koaErrorHandler(client, config) { * @param {Function} next - the result of the request handlers to yield * @returns {Undefined} does not return anything */ - return function*(next) { + return function*(next: Function) { var svc = config.getServiceContext(); try { diff --git a/handwritten/error-reporting/src/interfaces/manual.ts b/handwritten/error-reporting/src/interfaces/manual.ts index 6512185d477..f3e697ca295 100644 --- a/handwritten/error-reporting/src/interfaces/manual.ts +++ b/handwritten/error-reporting/src/interfaces/manual.ts @@ -21,6 +21,11 @@ var isFunction = is.fn; import {ErrorMessage} from '../classes/error-message'; import {manualRequestInformationExtractor} from '../request-extractors/manual'; import {populateErrorMessage} from '../populate-error-message'; +import { RequestHandler } from '../google-apis/auth-client'; +import { Configuration } from '../configuration'; +import { Logger } from '@google-cloud/common'; +import * as http from 'http'; +import {Request} from '../request-extractors/manual'; /** * The handler setup function serves to produce a bound instance of the @@ -36,7 +41,8 @@ import {populateErrorMessage} from '../populate-error-message'; * @returns {reportManualError} - a bound version of the reportManualError * function */ -export function handlerSetup(client, config, logger) { +export function handlerSetup(client: RequestHandler, config: Configuration, logger: Logger) { + type Callback = (err: Error|null, response: http.ServerResponse|null, body: any) => void; /** * The interface for manually reporting errors to the Google Error API in * application code. @@ -54,7 +60,7 @@ export function handlerSetup(client, config, logger) { * @returns {ErrorMessage} - returns the error message created through with * the parameters given. */ - function reportManualError(err, request, additionalMessage, callback) { + function reportManualError(err: {}, request: Request|undefined, additionalMessage: string|{}|undefined, callback: Callback|{}|string|undefined) { var em; if (isString(request)) { // no request given @@ -103,14 +109,16 @@ export function handlerSetup(client, config, logger) { } if (isObject(request)) { - em.consumeRequestInformation(manualRequestInformationExtractor(request)); + // TODO: Address this explicit cast + em.consumeRequestInformation(manualRequestInformationExtractor(request as Request)); } if (isString(additionalMessage)) { em.setMessage(additionalMessage); } - client.sendError(em, callback); + // TODO: Address this type cast + client.sendError(em, callback as Callback); return em; } diff --git a/handwritten/error-reporting/src/interfaces/message-builder.ts b/handwritten/error-reporting/src/interfaces/message-builder.ts index 5b0ed2d5b14..9d7c0899685 100644 --- a/handwritten/error-reporting/src/interfaces/message-builder.ts +++ b/handwritten/error-reporting/src/interfaces/message-builder.ts @@ -16,6 +16,7 @@ import {ErrorMessage} from '../classes/error-message'; import {buildStackTrace} from '../build-stack-trace'; +import { Configuration } from '../configuration'; /** * The handler setup function serves to produce a bound instance of the @@ -26,7 +27,7 @@ import {buildStackTrace} from '../build-stack-trace'; * configuration * @returns {ErrorMessage} - a new ErrorMessage instance */ -export function handlerSetup(config) { +export function handlerSetup(config: Configuration) { /** * The interface for creating new instances of the ErrorMessage class which * can be used to send custom payloads to the Error reporting service. diff --git a/handwritten/error-reporting/src/interfaces/restify.ts b/handwritten/error-reporting/src/interfaces/restify.ts index 3fc2d540afa..ee699d238eb 100644 --- a/handwritten/error-reporting/src/interfaces/restify.ts +++ b/handwritten/error-reporting/src/interfaces/restify.ts @@ -20,6 +20,10 @@ var isFunction = is.function; import {ErrorMessage} from '../classes/error-message'; import * as expressRequestInformationExtractor from '../request-extractors/express'; import {populateErrorMessage} from '../populate-error-message'; +import { RequestHandler } from '../google-apis/auth-client'; +import { Configuration } from '../configuration'; +import * as restify from 'restify'; +import * as express from 'express'; /** * The restifyErrorHandler is responsible for taking the captured error, setting @@ -35,7 +39,7 @@ import {populateErrorMessage} from '../populate-error-message'; * @param {ErrorMessage} - the error message instance container * @returns {Undefined} - does not return anything */ -function restifyErrorHandler(client, config, err, em) { +function restifyErrorHandler(client: RequestHandler, config: Configuration, err: {}, em: ErrorMessage) { var svc = config.getServiceContext(); em.setServiceContext(svc.service, svc.version); @@ -59,18 +63,21 @@ function restifyErrorHandler(client, config, err, em) { * @param {Object} res - the restify response * @returns {Undefined} - does not return anything */ -function restifyRequestFinishHandler(client, config, req, res) { +function restifyRequestFinishHandler(client: RequestHandler, config: Configuration, req: restify.Request, res: restify.Response) { var em; + // TODO: Address the fact that `_body` does not exist in `res` if ( - res._body instanceof Error || + (res as {} as {_body: {}})._body instanceof Error || (res.statusCode > 309 && res.statusCode < 512) ) { em = new ErrorMessage().consumeRequestInformation( - expressRequestInformationExtractor.expressRequestInformationExtractor(req, res) + // TODO: Address the type conflict with `req` and `res` and the types + // expected for `expressRequestInformationExtractor` + expressRequestInformationExtractor.expressRequestInformationExtractor(req as {} as express.Request, res as {} as express.Response) ); - restifyErrorHandler(client, config, res._body, em); + restifyErrorHandler(client, config, (res as {} as {_body: {}})._body, em); } } @@ -92,16 +99,17 @@ function restifyRequestFinishHandler(client, config, req, res) { * downstream request handlers * @returns {Any} - the result of the next function */ -function restifyRequestHandler(client, config, req, res, next) { +function restifyRequestHandler(client: RequestHandler, config: Configuration, req: restify.Request, res: restify.Response, next: Function) { + // TODO: Address the fact that a cast is needed to use `listener` var listener = {}; if (isObject(res) && isFunction(res.on) && isFunction(res.removeListener)) { listener = function() { restifyRequestFinishHandler(client, config, req, res); - res.removeListener('finish', listener); + res.removeListener('finish', listener as {} as (...args: {}[]) => void); }; - res.on('finish', listener); + res.on('finish', listener as {} as (...args: {}[]) => void); } return next(); @@ -124,7 +132,7 @@ function restifyRequestHandler(client, config, req, res, next) { * @param {Object} server - the restify server instance * @returns {Function} - the actual request error handler */ -function serverErrorHandler(client, config, server) { +function serverErrorHandler(client: RequestHandler, config: Configuration, server: restify.Server) { server.on('uncaughtException', function(req, res, reqConfig, err) { var em = new ErrorMessage().consumeRequestInformation( expressRequestInformationExtractor.expressRequestInformationExtractor(req, res) @@ -147,6 +155,6 @@ function serverErrorHandler(client, config, server) { * @returns {Function} - returns the serverErrorHandler function for use in the * restify middleware stack */ -export function handlerSetup(client, config) { +export function handlerSetup(client: RequestHandler, config: Configuration) { return serverErrorHandler.bind(null, client, config); } diff --git a/handwritten/error-reporting/src/logger.ts b/handwritten/error-reporting/src/logger.ts index 505a8fe22c9..c067c596227 100644 --- a/handwritten/error-reporting/src/logger.ts +++ b/handwritten/error-reporting/src/logger.ts @@ -23,6 +23,8 @@ var isNumber = is.number; var logger = require('@google-cloud/common').logger; var packageJson = require('../../package.json'); +import {ConfigurationOptions} from './configuration'; + /** * Creates an instance of the Google Cloud Diagnostics logger class. This * instance will be configured to log at the level given by the environment or @@ -40,7 +42,7 @@ var packageJson = require('../../package.json'); * @returns {Object} - returns an instance of the logger created with the given/ * default options */ -export function createLogger(initConfiguration) { +export function createLogger(initConfiguration: ConfigurationOptions) { // Default to log level: warn (2) var DEFAULT_LEVEL = logger.LEVELS[2]; var level = DEFAULT_LEVEL; @@ -54,9 +56,9 @@ export function createLogger(initConfiguration) { ) { if (isString(initConfiguration.logLevel)) { // Cast string as integer - level = logger.LEVELS[~~initConfiguration.logLevel] || DEFAULT_LEVEL; + level = logger.LEVELS[~~initConfiguration.logLevel!] || DEFAULT_LEVEL; } else if (isNumber(initConfiguration.logLevel)) { - level = logger.LEVELS[initConfiguration.logLevel] || DEFAULT_LEVEL; + level = logger.LEVELS[initConfiguration.logLevel!] || DEFAULT_LEVEL; } else { throw new Error( 'config.logLevel must be a number or decimal ' + diff --git a/handwritten/error-reporting/src/populate-error-message.ts b/handwritten/error-reporting/src/populate-error-message.ts index f48164a8b1c..b2fe372cf31 100644 --- a/handwritten/error-reporting/src/populate-error-message.ts +++ b/handwritten/error-reporting/src/populate-error-message.ts @@ -19,6 +19,20 @@ import * as is from 'is'; var isObject = is.object; import {buildStackTrace} from './build-stack-trace'; +import {ErrorMessage} from './classes/error-message'; + +export interface PopulatedObject { + message?: string; + user?: string; + filePath?: string; + lineNumber?: number; + functionName?: string; + serviceContext?: { + service?: string; + version?: string; + }; +} + /** * The Error handler router is responsible for taking an object of some type and * and Error message container, analyzing the type of the object and marshalling @@ -29,11 +43,11 @@ import {buildStackTrace} from './build-stack-trace'; * information into * @returns {Undefined} - does not return a value */ -export function populateErrorMessage(ob, em) { +export function populateErrorMessage(ob: {}, em: ErrorMessage) { if (ob === null || ob === undefined) { em.setMessage(buildStackTrace('' + ob)); - } else if (ob.stack) { - populateFromError(ob, em); + } else if ((ob as {stack: {}}).stack) { + populateFromError(ob as Error, em); } else if (typeof ob === 'object' && isObject(ob)) { populateFromObject(ob, em); } else { @@ -55,17 +69,17 @@ export function populateErrorMessage(ob, em) { * error information marshaled into * @returns {Undefined} - does not return anything */ -function populateFromError(err, errorMessage) { - errorMessage.setMessage(err.stack); +function populateFromError(err: Error & PopulatedObject, errorMessage: ErrorMessage) { + errorMessage.setMessage(err.stack!); if (has(err, 'user')) { - errorMessage.setUser(err.user); + errorMessage.setUser(err.user!); } if (has(err, 'serviceContext') && isObject(err.serviceContext)) { errorMessage.setServiceContext( - err.serviceContext.service, - err.serviceContext.version + err.serviceContext!.service!, + err.serviceContext!.version ); } } @@ -94,33 +108,33 @@ function populateFromError(err, errorMessage) { * error information into * @returns {Undefined} - does not return anything */ -function populateFromObject(ob, errorMessage) { +function populateFromObject(ob: PopulatedObject, errorMessage: ErrorMessage) { if (has(ob, 'message')) { - errorMessage.setMessage(ob.message); + errorMessage.setMessage(ob.message!); } else { errorMessage.setMessage(buildStackTrace('' + ob)); } if (has(ob, 'user')) { - errorMessage.setUser(ob.user); + errorMessage.setUser(ob.user!); } if (has(ob, 'filePath')) { - errorMessage.setFilePath(ob.filePath); + errorMessage.setFilePath(ob.filePath!); } if (has(ob, 'lineNumber')) { - errorMessage.setLineNumber(ob.lineNumber); + errorMessage.setLineNumber(ob.lineNumber!); } if (has(ob, 'functionName')) { - errorMessage.setFunctionName(ob.functionName); + errorMessage.setFunctionName(ob.functionName!); } if (has(ob, 'serviceContext') && isObject(ob.serviceContext)) { errorMessage.setServiceContext( - ob.serviceContext.service, - ob.serviceContext.version + ob.serviceContext!.service!, + ob.serviceContext!.version ); } } diff --git a/handwritten/error-reporting/src/request-extractors/express.ts b/handwritten/error-reporting/src/request-extractors/express.ts index f766d03c449..db5b40f8552 100644 --- a/handwritten/error-reporting/src/request-extractors/express.ts +++ b/handwritten/error-reporting/src/request-extractors/express.ts @@ -19,6 +19,7 @@ import * as is from 'is'; var isFunction = is.fn; var isObject = is.object; import {RequestInformationContainer} from '../classes/request-information-container'; +import * as express from 'express'; /** * This function checks for the presence of an `x-forwarded-for` header on the @@ -30,7 +31,7 @@ import {RequestInformationContainer} from '../classes/request-information-contai * @returns {String} - the remote address or, if one cannot be found, an empty * string */ -function extractRemoteAddressFromRequest(req) { +function extractRemoteAddressFromRequest(req: express.Request) { if (typeof req.header('x-forwarded-for') !== 'undefined') { return req.header('x-forwarded-for'); } else if (isObject(req.connection)) { @@ -51,7 +52,7 @@ function extractRemoteAddressFromRequest(req) { * @returns {RequestInformationContainer} - an object containing the request * information in a standardized format */ -export function expressRequestInformationExtractor(req, res) { +export function expressRequestInformationExtractor(req: express.Request, res: express.Response) { var returnObject = new RequestInformationContainer(); if (!isObject(req) || !isFunction(req.header) || !isObject(res)) { diff --git a/handwritten/error-reporting/src/request-extractors/hapi.ts b/handwritten/error-reporting/src/request-extractors/hapi.ts index bfffe419099..c97add29a29 100644 --- a/handwritten/error-reporting/src/request-extractors/hapi.ts +++ b/handwritten/error-reporting/src/request-extractors/hapi.ts @@ -21,6 +21,7 @@ var isObject = is.object; var isFunction = is.function; var isArray = is.array; import {RequestInformationContainer} from '../classes/request-information-container'; +import * as hapi from 'hapi'; /** * This function is used to check for a pending status code on the response @@ -31,19 +32,21 @@ import {RequestInformationContainer} from '../classes/request-information-contai * @returns {Number} - Either an HTTP status code or -1 in absence of an * extractable status code. */ -function attemptToExtractStatusCode(req) { +function attemptToExtractStatusCode(req: hapi.Request) { + // TODO: Handle the cases where `req.response` and `req.response.output` + // are `null` in this function if ( has(req, 'response') && isObject(req.response) && has(req.response, 'statusCode') ) { - return req.response.statusCode; + return req.response!.statusCode; } else if ( has(req, 'response') && isObject(req.response) && - isObject(req.response.output) + isObject(req.response!.output) ) { - return req.response.output.statusCode; + return req.response!.output!.statusCode; } return 0; @@ -60,7 +63,7 @@ function attemptToExtractStatusCode(req) { * @returns {String} - Either an empty string if the IP cannot be extracted or * a string that represents the remote IP address */ -function extractRemoteAddressFromRequest(req) { +function extractRemoteAddressFromRequest(req: hapi.Request) { if (has(req.headers, 'x-forwarded-for')) { return req.headers['x-forwarded-for']; } else if (isObject(req.info)) { @@ -79,7 +82,7 @@ function extractRemoteAddressFromRequest(req) { * @returns {RequestInformationContainer} - an object containing the request * information in a standardized format */ -export function hapiRequestInformationExtractor(req) { +export function hapiRequestInformationExtractor(req: hapi.Request) { var returnObject = new RequestInformationContainer(); if ( @@ -93,7 +96,8 @@ export function hapiRequestInformationExtractor(req) { returnObject .setMethod(req.method) - .setUrl(req.url) + // TODO: Address the type conflict that requires a cast to string + .setUrl(req.url as {} as string) .setUserAgent(req.headers['user-agent']) .setReferrer(req.headers.referrer) .setStatusCode(attemptToExtractStatusCode(req)) diff --git a/handwritten/error-reporting/src/request-extractors/koa.ts b/handwritten/error-reporting/src/request-extractors/koa.ts index ab0e136243d..69255c17734 100644 --- a/handwritten/error-reporting/src/request-extractors/koa.ts +++ b/handwritten/error-reporting/src/request-extractors/koa.ts @@ -19,6 +19,7 @@ var isObject = is.object; var isFunction = is.function; var isArray = is.array; import {RequestInformationContainer} from '../classes/request-information-container'; +import * as koa from 'koa'; /** * The koaRequestInformationExtractor attempts to extract information from a Koa @@ -30,7 +31,7 @@ import {RequestInformationContainer} from '../classes/request-information-contai * @returns {RequestInformationContainer} - returns a request information * container instance that may be in its initial state */ -export function koaRequestInformationExtractor(req, res) { +export function koaRequestInformationExtractor(req: koa.Request, res: koa.Response) { var returnObject = new RequestInformationContainer(); if ( diff --git a/handwritten/error-reporting/src/request-extractors/manual.ts b/handwritten/error-reporting/src/request-extractors/manual.ts index f4ce5cdc1bd..89e74bf121a 100644 --- a/handwritten/error-reporting/src/request-extractors/manual.ts +++ b/handwritten/error-reporting/src/request-extractors/manual.ts @@ -21,6 +21,15 @@ var isArray = is.array; var isFunction = is.fn; import {RequestInformationContainer} from '../classes/request-information-container'; +export interface Request { + method?: string; + url?: string; + userAgent?: string; + referrer?: string; + statusCode?: number; + remoteAddress?: string; +} + /** * The manualRequestInformationExtractor is meant to take a standard object * and extract request information based on the inclusion of several properties. @@ -39,7 +48,7 @@ import {RequestInformationContainer} from '../classes/request-information-contai * @returns {RequestInformationContainer} - an object containing the request * information in a standardized format */ -export function manualRequestInformationExtractor(req) { +export function manualRequestInformationExtractor(req: Request) { var returnObject = new RequestInformationContainer(); if (!isObject(req) || isArray(req) || isFunction(req)) { @@ -47,11 +56,11 @@ export function manualRequestInformationExtractor(req) { } if (has(req, 'method')) { - returnObject.setMethod(req.method); + returnObject.setMethod(req.method!); } if (has(req, 'url')) { - returnObject.setUrl(req.url); + returnObject.setUrl(req.url!); } if (has(req, 'userAgent')) { @@ -63,7 +72,7 @@ export function manualRequestInformationExtractor(req) { } if (has(req, 'statusCode')) { - returnObject.setStatusCode(req.statusCode); + returnObject.setStatusCode(req.statusCode!); } if (has(req, 'remoteAddress')) { diff --git a/handwritten/error-reporting/src/types.d.ts b/handwritten/error-reporting/src/types.d.ts new file mode 100644 index 00000000000..9ddac444280 --- /dev/null +++ b/handwritten/error-reporting/src/types.d.ts @@ -0,0 +1,56 @@ + +declare module '@google-cloud/common' { + import * as request from 'request'; + + type LogFunction = (message: any, ...args: any[]) => void; + + export interface Logger { + error: LogFunction; + warn: LogFunction; + info: LogFunction; + debug: LogFunction; + silly: LogFunction; + } + + export interface LoggerOptions { + level?: string; + levels?: string[]; + tag?: string; + } + + export const logger: { + (options?: LoggerOptions | string): Logger; + LEVELS: string[]; + }; + + export class Service { + constructor(config: ServiceConfig, options: ServiceAuthenticationConfig); + request(options: request.Options, + cb: ( + err: Error | null, + body: any, + response: request.RequestResponse + ) => void): void; + } + + export interface ServiceConfig { + packageJson?: any; + projectIdRequired?: boolean; + baseUrl?: string; + scopes?: string[]; + // TODO: `auth-client.ts` assumes that `projectId` and `customEndpoint` + // are properties of `ServiceConfig`. Determine if it is. + projectId?: string; + customEndpoint?: boolean; + } + + export interface ServiceAuthenticationConfig { + projectId?: string; + keyFilename?: string; + email?: string; + credentials?: { + client_email?: string; + private_key?: string; + }; + } +} From 65fdfd1ccb90a5b1fe811d814a42d38fd5ccd359 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Thu, 11 Jan 2018 09:38:57 -0800 Subject: [PATCH 048/527] chore: enable `noImplicitAny` and `noImplicitThis` (#34) --- handwritten/error-reporting/package.json | 2 + .../error-reporting/src/build-stack-trace.ts | 2 +- .../src/classes/error-message.ts | 2 +- .../error-reporting/src/configuration.ts | 4 +- .../src/google-apis/auth-client.ts | 5 +- handwritten/error-reporting/src/index.ts | 182 ++++++++++-------- .../error-reporting/src/interfaces/express.ts | 3 +- .../error-reporting/src/interfaces/hapi.ts | 3 +- .../error-reporting/src/interfaces/koa.ts | 3 +- .../error-reporting/src/interfaces/manual.ts | 10 +- handwritten/error-reporting/src/logger.ts | 2 +- .../src/populate-error-message.ts | 2 +- .../src/request-extractors/express.ts | 3 +- .../src/request-extractors/hapi.ts | 2 +- .../src/request-extractors/manual.ts | 5 +- .../system-test/error-reporting.js | 3 +- handwritten/error-reporting/tsconfig.json | 4 +- 17 files changed, 135 insertions(+), 102 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 0b327de1405..a49fa229c22 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -59,7 +59,9 @@ "@google-cloud/nodejs-repo-tools": "^2.0.11", "@types/express": "^4.11.0", "@types/hapi": "^16.1.11", + "@types/is": "0.0.18", "@types/koa": "^2.0.43", + "@types/lodash.has": "^4.5.3", "@types/mocha": "^2.2.45", "@types/node": "^8.5.2", "@types/request": "^2.0.9", diff --git a/handwritten/error-reporting/src/build-stack-trace.ts b/handwritten/error-reporting/src/build-stack-trace.ts index 32e1b08c393..9f9a3e6f6fb 100644 --- a/handwritten/error-reporting/src/build-stack-trace.ts +++ b/handwritten/error-reporting/src/build-stack-trace.ts @@ -36,7 +36,7 @@ export function buildStackTrace(message: string) { (target as any).stack .split('\n') .slice(1) - .filter(function(line) { + .filter(function(line: string) { // Filter out all frames that are specific to the error-reporting library return !line || line.indexOf(SRC_ROOT) === -1; }) diff --git a/handwritten/error-reporting/src/classes/error-message.ts b/handwritten/error-reporting/src/classes/error-message.ts index bfad439ac16..573aacbc20b 100644 --- a/handwritten/error-reporting/src/classes/error-message.ts +++ b/handwritten/error-reporting/src/classes/error-message.ts @@ -22,7 +22,7 @@ var isObject = is.object; import {RequestInformationContainer} from './request-information-container'; import {ServiceContext} from '../configuration'; -interface Context { +export interface Context { httpRequest: { method: string; url: string; diff --git a/handwritten/error-reporting/src/configuration.ts b/handwritten/error-reporting/src/configuration.ts index 8295a395ebe..5d481df2ca8 100644 --- a/handwritten/error-reporting/src/configuration.ts +++ b/handwritten/error-reporting/src/configuration.ts @@ -15,7 +15,7 @@ */ var env = process.env; -import * as has from 'lodash.has'; +import has = require('lodash.has'); import * as is from 'is'; var isObject = is.object; var isBoolean = is.boolean; @@ -233,7 +233,7 @@ export class Configuration { version = env.GAE_MODULE_VERSION; } - this._serviceContext.service = isString(service) ? service : 'node'; + this._serviceContext.service = (isString(service) ? service : 'node')!; this._serviceContext.version = isString(version) ? version : undefined; if (isObject(this._givenConfiguration.serviceContext)) { diff --git a/handwritten/error-reporting/src/google-apis/auth-client.ts b/handwritten/error-reporting/src/google-apis/auth-client.ts index b4d2049b4cc..963a62e8718 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.ts +++ b/handwritten/error-reporting/src/google-apis/auth-client.ts @@ -18,7 +18,8 @@ import * as common from '@google-cloud/common'; const pkg = require('../../../package.json'); import * as is from 'is'; -var isFunction = is.fn; +// TODO: Address the error where `is` does not have a `fn` property +var isFunction = (is as {} as {fn: Function}).fn; var isString = is.string; import {Configuration} from '../configuration'; @@ -115,7 +116,7 @@ export class RequestHandler extends common.Service { var that = this; if (tryAuthenticate) { - this.authClient.getToken(function(err) { + this.authClient.getToken(function(err: Error) { if (err) { that._logger.error( [ diff --git a/handwritten/error-reporting/src/index.ts b/handwritten/error-reporting/src/index.ts index cf7814f584b..8bbb65c6852 100644 --- a/handwritten/error-reporting/src/index.ts +++ b/handwritten/error-reporting/src/index.ts @@ -20,6 +20,7 @@ import {Configuration, ConfigurationOptions} from './configuration'; import {RequestHandler as AuthClient} from './google-apis/auth-client'; +import {Logger} from '@google-cloud/common'; // Begin error reporting interfaces import {koaErrorHandler as koa} from './interfaces/koa'; @@ -30,6 +31,14 @@ import {handlerSetup as restify} from './interfaces/restify'; import * as messageBuilder from './interfaces/message-builder'; import {createLogger} from './logger'; +import {ErrorMessage} from './classes/error-message'; +import {Request} from './request-extractors/manual'; +import {Callback} from './interfaces/manual'; +import {ServerResponse} from 'http'; +import * as h from 'hapi'; +import * as e from 'express'; +import * as r from 'restify'; + /** * @typedef ConfigurationOptions * @type {Object} @@ -87,85 +96,100 @@ import {createLogger} from './logger'; * @param {ConfigurationOptions} initConfiguration - The desired project/error * reporting configuration. */ -function Errors(initConfiguration: ConfigurationOptions): void { - if (!(this instanceof Errors)) { - return new Errors(initConfiguration); - } +export class Errors { + private _logger: Logger; + private _config: Configuration; + private _client: AuthClient; + report: (err: {}, request?: Request, additionalMessage?: string|{}, callback?: Callback|{}|string) => ErrorMessage; + event: () => ErrorMessage; + hapi: {register: (server: h.Server, options: {}, next: Function) => void }; + express: (err: {}, req: e.Request, res: e.Response, next: Function) => void; + restify: (client: AuthClient, config: Configuration, server: r.Server) => void; + koa: (next: Function) => Iterable; + + constructor(initConfiguration: ConfigurationOptions) { + if (!(this instanceof Errors)) { + return new Errors(initConfiguration); + } + + this._logger = createLogger(initConfiguration); + this._config = new Configuration(initConfiguration, this._logger); + this._client = new AuthClient(this._config, this._logger); + + if (this._config.getReportUnhandledRejections()) { + var that = this; + process.on('unhandledRejection', function(reason) { + that._logger.warn( + 'UnhandledPromiseRejectionWarning: ' + + 'Unhandled promise rejection: ' + + reason + + '. This rejection has been reported to the ' + + 'Google Cloud Platform error-reporting console.' + ); + that.report(reason); + }); + } + + // Build the application interfaces for use by the hosting application + /** + * @example + * // Use to report errors manually like so + * errors.report(new Error('xyz'), function () { + * console.log('done!'); + * }); + */ + this.report = manual.handlerSetup(this._client, this._config, this._logger); - this._logger = createLogger(initConfiguration); - this._config = new Configuration(initConfiguration, this._logger); - this._client = new AuthClient(this._config, this._logger); - - // Build the application interfaces for use by the hosting application - /** - * @example - * // Use to report errors manually like so - * errors.report(new Error('xyz'), function () { - * console.log('done!'); - * }); - */ - this.report = manual.handlerSetup(this._client, this._config, this._logger); - /** - * @example - * // Use to create and report errors manually with a high-degree - * // of manual control - * var err = errors.event() - * .setMessage('My error message') - * .setUser('root@nexus'); - * errors.report(err, function () { - * console.log('done!'); - * }); - */ - this.event = messageBuilder.handlerSetup(this._config); - /** - * @example - * var hapi = require('hapi'); - * var server = new hapi.Server(); - * server.connection({ port: 3000 }); - * server.start(); - * // AFTER ALL OTHER ROUTE HANDLERS - * server.register({register: errors.hapi}); - */ - this.hapi = hapi(this._client, this._config); - /** - * @example - * var express = require('express'); - * var app = express(); - * // AFTER ALL OTHER ROUTE HANDLERS - * app.use(errors.express); - * app.listen(3000); - */ - this.express = express(this._client, this._config); - /** - * @example - * var restify = require('restify'); - * var server = restify.createServer(); - * // BEFORE ALL OTHER ROUTE HANDLERS - * server.use(errors.restify(server)); - */ - this.restify = restify(this._client, this._config); - /** - * @example - * var koa = require('koa'); - * var app = koa(); - * // BEFORE ALL OTHER ROUTE HANDLERS HANDLERS - * app.use(errors.koa); - */ - this.koa = koa(this._client, this._config); - - if (this._config.getReportUnhandledRejections()) { - var that = this; - process.on('unhandledRejection', function(reason) { - that._logger.warn( - 'UnhandledPromiseRejectionWarning: ' + - 'Unhandled promise rejection: ' + - reason + - '. This rejection has been reported to the ' + - 'Google Cloud Platform error-reporting console.' - ); - that.report(reason); - }); + /** + * @example + * // Use to create and report errors manually with a high-degree + * // of manual control + * var err = errors.event() + * .setMessage('My error message') + * .setUser('root@nexus'); + * errors.report(err, function () { + * console.log('done!'); + * }); + */ + this.event = messageBuilder.handlerSetup(this._config); + + /** + * @example + * var hapi = require('hapi'); + * var server = new hapi.Server(); + * server.connection({ port: 3000 }); + * server.start(); + * // AFTER ALL OTHER ROUTE HANDLERS + * server.register({register: errors.hapi}); + */ + this.hapi = hapi(this._client, this._config); + + /** + * @example + * var express = require('express'); + * var app = express(); + * // AFTER ALL OTHER ROUTE HANDLERS + * app.use(errors.express); + * app.listen(3000); + */ + this.express = express(this._client, this._config); + + /** + * @example + * var restify = require('restify'); + * var server = restify.createServer(); + * // BEFORE ALL OTHER ROUTE HANDLERS + * server.use(errors.restify(server)); + */ + this.restify = restify(this._client, this._config); + + /** + * @example + * var koa = require('koa'); + * var app = koa(); + * // BEFORE ALL OTHER ROUTE HANDLERS HANDLERS + * app.use(errors.koa); + */ + this.koa = koa(this._client, this._config); } } - -module.exports = Errors; diff --git a/handwritten/error-reporting/src/interfaces/express.ts b/handwritten/error-reporting/src/interfaces/express.ts index a03af9e3428..18a41393c91 100644 --- a/handwritten/error-reporting/src/interfaces/express.ts +++ b/handwritten/error-reporting/src/interfaces/express.ts @@ -16,7 +16,8 @@ import * as is from 'is'; var isObject = is.object; -var isFunction = is.fn; +// TODO: Address the error where `is` does not have a `fn` property +var isFunction = (is as {} as {fn: Function}).fn; import {ErrorMessage} from '../classes/error-message'; import {expressRequestInformationExtractor} from '../request-extractors/express'; import {populateErrorMessage} from '../populate-error-message'; diff --git a/handwritten/error-reporting/src/interfaces/hapi.ts b/handwritten/error-reporting/src/interfaces/hapi.ts index 03d194b92c0..cfd0b939761 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.ts +++ b/handwritten/error-reporting/src/interfaces/hapi.ts @@ -16,7 +16,8 @@ import * as is from 'is'; var isObject = is.object; -var isFunction = is.fn; +// TODO: Address the error where `is` does not have a `fn` property +var isFunction = (is as {} as {fn: Function}).fn; import {ErrorMessage} from '../classes/error-message'; import {hapiRequestInformationExtractor} from '../request-extractors/hapi'; import {populateErrorMessage} from '../populate-error-message'; diff --git a/handwritten/error-reporting/src/interfaces/koa.ts b/handwritten/error-reporting/src/interfaces/koa.ts index 36f3419d8d3..d9854df89fe 100644 --- a/handwritten/error-reporting/src/interfaces/koa.ts +++ b/handwritten/error-reporting/src/interfaces/koa.ts @@ -19,6 +19,7 @@ import {koaRequestInformationExtractor} from '../request-extractors/koa'; import {populateErrorMessage} from '../populate-error-message'; import { RequestHandler } from '../google-apis/auth-client'; import { Configuration } from '../configuration'; +import { Request, Response } from 'koa'; /** * The koaErrorHandler should be placed at the beginning of the koa middleware @@ -40,7 +41,7 @@ export function koaErrorHandler(client: RequestHandler, config: Configuration) { * @param {Function} next - the result of the request handlers to yield * @returns {Undefined} does not return anything */ - return function*(next: Function) { + return function*(this: {request: Request; response: Response;}, next: Function) { var svc = config.getServiceContext(); try { diff --git a/handwritten/error-reporting/src/interfaces/manual.ts b/handwritten/error-reporting/src/interfaces/manual.ts index f3e697ca295..60773673acd 100644 --- a/handwritten/error-reporting/src/interfaces/manual.ts +++ b/handwritten/error-reporting/src/interfaces/manual.ts @@ -17,7 +17,8 @@ import * as is from 'is'; var isString = is.string; var isObject = is.object; -var isFunction = is.fn; +// TODO: Address the error where `is` does not have a `fn` property +var isFunction = (is as {} as {fn: Function}).fn; import {ErrorMessage} from '../classes/error-message'; import {manualRequestInformationExtractor} from '../request-extractors/manual'; import {populateErrorMessage} from '../populate-error-message'; @@ -27,6 +28,8 @@ import { Logger } from '@google-cloud/common'; import * as http from 'http'; import {Request} from '../request-extractors/manual'; +export type Callback = (err: Error|null, response: http.ServerResponse|null, body: any) => void; + /** * The handler setup function serves to produce a bound instance of the * reportManualError function with no bound context, a bound first arugment @@ -42,7 +45,6 @@ import {Request} from '../request-extractors/manual'; * function */ export function handlerSetup(client: RequestHandler, config: Configuration, logger: Logger) { - type Callback = (err: Error|null, response: http.ServerResponse|null, body: any) => void; /** * The interface for manually reporting errors to the Google Error API in * application code. @@ -60,7 +62,7 @@ export function handlerSetup(client: RequestHandler, config: Configuration, logg * @returns {ErrorMessage} - returns the error message created through with * the parameters given. */ - function reportManualError(err: {}, request: Request|undefined, additionalMessage: string|{}|undefined, callback: Callback|{}|string|undefined) { + function reportManualError(err: {}, request?: Request, additionalMessage?: string|{}, callback?: Callback|{}|string) { var em; if (isString(request)) { // no request given @@ -114,7 +116,7 @@ export function handlerSetup(client: RequestHandler, config: Configuration, logg } if (isString(additionalMessage)) { - em.setMessage(additionalMessage); + em.setMessage(additionalMessage as string); } // TODO: Address this type cast diff --git a/handwritten/error-reporting/src/logger.ts b/handwritten/error-reporting/src/logger.ts index c067c596227..6405d5fbfbe 100644 --- a/handwritten/error-reporting/src/logger.ts +++ b/handwritten/error-reporting/src/logger.ts @@ -15,7 +15,7 @@ */ /*jshint bitwise: false*/ -import * as has from 'lodash.has'; +import has = require('lodash.has'); import * as is from 'is'; var isObject = is.object; var isString = is.string; diff --git a/handwritten/error-reporting/src/populate-error-message.ts b/handwritten/error-reporting/src/populate-error-message.ts index b2fe372cf31..becddba40ee 100644 --- a/handwritten/error-reporting/src/populate-error-message.ts +++ b/handwritten/error-reporting/src/populate-error-message.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as has from 'lodash.has'; +import has = require('lodash.has'); import * as is from 'is'; var isObject = is.object; import {buildStackTrace} from './build-stack-trace'; diff --git a/handwritten/error-reporting/src/request-extractors/express.ts b/handwritten/error-reporting/src/request-extractors/express.ts index db5b40f8552..3b550d6be39 100644 --- a/handwritten/error-reporting/src/request-extractors/express.ts +++ b/handwritten/error-reporting/src/request-extractors/express.ts @@ -16,7 +16,8 @@ // jscs:disable requireEarlyReturn import * as is from 'is'; -var isFunction = is.fn; +// TODO: Address the error where `is` does not have a `fn` property +var isFunction = (is as {} as {fn: Function}).fn; var isObject = is.object; import {RequestInformationContainer} from '../classes/request-information-container'; import * as express from 'express'; diff --git a/handwritten/error-reporting/src/request-extractors/hapi.ts b/handwritten/error-reporting/src/request-extractors/hapi.ts index c97add29a29..33b5db27d1c 100644 --- a/handwritten/error-reporting/src/request-extractors/hapi.ts +++ b/handwritten/error-reporting/src/request-extractors/hapi.ts @@ -15,7 +15,7 @@ */ // jscs:disable requireEarlyReturn -import * as has from 'lodash.has'; +import has = require('lodash.has'); import * as is from 'is'; var isObject = is.object; var isFunction = is.function; diff --git a/handwritten/error-reporting/src/request-extractors/manual.ts b/handwritten/error-reporting/src/request-extractors/manual.ts index 89e74bf121a..f4040f8c935 100644 --- a/handwritten/error-reporting/src/request-extractors/manual.ts +++ b/handwritten/error-reporting/src/request-extractors/manual.ts @@ -14,11 +14,12 @@ * limitations under the License. */ -import * as has from 'lodash.has'; +import has = require('lodash.has'); import * as is from 'is'; var isObject = is.object; var isArray = is.array; -var isFunction = is.fn; +// TODO: Address the error where `is` does not have a `fn` property +var isFunction = (is as {} as {fn: Function}).fn; import {RequestInformationContainer} from '../classes/request-information-container'; export interface Request { diff --git a/handwritten/error-reporting/system-test/error-reporting.js b/handwritten/error-reporting/system-test/error-reporting.js index 07fb74fd772..b3875a6c8db 100644 --- a/handwritten/error-reporting/system-test/error-reporting.js +++ b/handwritten/error-reporting/system-test/error-reporting.js @@ -522,7 +522,8 @@ describe('error-reporting', function() { }, extraConfig || {} ); - errors = require('../src/index.js')(config); + const Errors = require('../src/index.js').Errors; + errors = new Errors(config); transport = new ErrorsApiTransport(errors._config, errors._logger); } diff --git a/handwritten/error-reporting/tsconfig.json b/handwritten/error-reporting/tsconfig.json index 07432c7c9a2..0c250f020b8 100644 --- a/handwritten/error-reporting/tsconfig.json +++ b/handwritten/error-reporting/tsconfig.json @@ -4,9 +4,7 @@ "rootDir": ".", "outDir": "build", "declaration": false, - "allowJs": true, - "noImplicitAny": false, - "noImplicitThis": false + "allowJs": true }, "include": [ "src/*.ts", From 53768a873d150431e95b06efa0e2f7da7b8d0427 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Thu, 11 Jan 2018 10:05:49 -0800 Subject: [PATCH 049/527] chore: replace `var` with `const` or `let` (#36) --- .../error-reporting/src/build-stack-trace.ts | 4 ++-- .../src/classes/error-message.ts | 6 +++--- .../classes/request-information-container.ts | 4 ++-- .../error-reporting/src/configuration.ts | 14 ++++++------- .../src/google-apis/auth-client.ts | 16 +++++++-------- handwritten/error-reporting/src/index.ts | 20 +++++++++---------- .../error-reporting/src/interfaces/express.ts | 10 +++++----- .../error-reporting/src/interfaces/hapi.ts | 16 +++++++-------- .../error-reporting/src/interfaces/koa.ts | 4 ++-- .../error-reporting/src/interfaces/manual.ts | 8 ++++---- .../src/interfaces/message-builder.ts | 4 ++-- .../error-reporting/src/interfaces/restify.ts | 12 +++++------ handwritten/error-reporting/src/logger.ts | 14 ++++++------- .../src/populate-error-message.ts | 2 +- .../src/request-extractors/express.ts | 6 +++--- .../src/request-extractors/hapi.ts | 8 ++++---- .../src/request-extractors/koa.ts | 8 ++++---- .../src/request-extractors/manual.ts | 8 ++++---- 18 files changed, 82 insertions(+), 82 deletions(-) diff --git a/handwritten/error-reporting/src/build-stack-trace.ts b/handwritten/error-reporting/src/build-stack-trace.ts index 9f9a3e6f6fb..92a9fb12c33 100644 --- a/handwritten/error-reporting/src/build-stack-trace.ts +++ b/handwritten/error-reporting/src/build-stack-trace.ts @@ -26,11 +26,11 @@ const SRC_ROOT = __dirname; * where this method was invoked. */ export function buildStackTrace(message: string) { - var target = {}; + const target = {}; // Build a stack trace without the frames associated with `buildStackTrace`. // The stack is located at `target.stack`. Error.captureStackTrace(target, buildStackTrace); - var prefix = message ? message + '\n' : ''; + const prefix = message ? message + '\n' : ''; return ( prefix + (target as any).stack diff --git a/handwritten/error-reporting/src/classes/error-message.ts b/handwritten/error-reporting/src/classes/error-message.ts index 573aacbc20b..4403f2ea748 100644 --- a/handwritten/error-reporting/src/classes/error-message.ts +++ b/handwritten/error-reporting/src/classes/error-message.ts @@ -15,9 +15,9 @@ */ import * as is from 'is'; -var isString = is.string; -var isNumber = is.number; -var isObject = is.object; +const isString = is.string; +const isNumber = is.number; +const isObject = is.object; import {RequestInformationContainer} from './request-information-container'; import {ServiceContext} from '../configuration'; diff --git a/handwritten/error-reporting/src/classes/request-information-container.ts b/handwritten/error-reporting/src/classes/request-information-container.ts index cb978ddf51c..b9d2610f03b 100644 --- a/handwritten/error-reporting/src/classes/request-information-container.ts +++ b/handwritten/error-reporting/src/classes/request-information-container.ts @@ -15,8 +15,8 @@ */ import * as is from 'is'; -var isString = is.string; -var isNumber = is.number; +const isString = is.string; +const isNumber = is.number; export class RequestInformationContainer { url: string; diff --git a/handwritten/error-reporting/src/configuration.ts b/handwritten/error-reporting/src/configuration.ts index 5d481df2ca8..2bb9423ce72 100644 --- a/handwritten/error-reporting/src/configuration.ts +++ b/handwritten/error-reporting/src/configuration.ts @@ -14,13 +14,13 @@ * limitations under the License. */ -var env = process.env; +const env = process.env; import has = require('lodash.has'); import * as is from 'is'; -var isObject = is.object; -var isBoolean = is.boolean; -var isString = is.string; -var isNumber = is.number; +const isObject = is.object; +const isBoolean = is.boolean; +const isString = is.string; +const isNumber = is.number; import {Logger} from '@google-cloud/common'; @@ -220,8 +220,8 @@ export class Configuration { // Otherwise, the value of the environment variable GAE_MODULE_VERSION // will be used if and only if the FUNCTION_NAME environment variable is // not set. - var service; - var version; + let service; + let version; if (env.FUNCTION_NAME) { service = env.FUNCTION_NAME; diff --git a/handwritten/error-reporting/src/google-apis/auth-client.ts b/handwritten/error-reporting/src/google-apis/auth-client.ts index 963a62e8718..af83b0f0646 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.ts +++ b/handwritten/error-reporting/src/google-apis/auth-client.ts @@ -19,18 +19,18 @@ import * as common from '@google-cloud/common'; const pkg = require('../../../package.json'); import * as is from 'is'; // TODO: Address the error where `is` does not have a `fn` property -var isFunction = (is as {} as {fn: Function}).fn; -var isString = is.string; +const isFunction = (is as {} as {fn: Function}).fn; +const isString = is.string; import {Configuration} from '../configuration'; import {ErrorMessage} from '../classes/error-message'; import * as http from 'http'; /* @const {Array} list of scopes needed to work with the errors api. */ -var SCOPES = ['https://www.googleapis.com/auth/cloud-platform']; +const SCOPES = ['https://www.googleapis.com/auth/cloud-platform']; /* @const {String} Base Error Reporting API */ -var API = 'https://clouderrorreporting.googleapis.com/v1beta1'; +const API = 'https://clouderrorreporting.googleapis.com/v1beta1'; /** * The RequestHandler constructor initializes several properties on the @@ -96,9 +96,9 @@ export class RequestHandler extends common.Service { * @param {Logger} logger - an instance of logger */ constructor(config: Configuration, logger: common.Logger) { - var pid = config.getProjectId(); + const pid = config.getProjectId(); // If an API key is provided, do not try to authenticate. - var tryAuthenticate = !config.getKey(); + const tryAuthenticate = !config.getKey(); super( { packageJson: pkg, @@ -114,7 +114,7 @@ export class RequestHandler extends common.Service { this._config = config; this._logger = logger; - var that = this; + const that = this; if (tryAuthenticate) { this.authClient.getToken(function(err: Error) { if (err) { @@ -167,7 +167,7 @@ export class RequestHandler extends common.Service { * @instance */ sendError(errorMessage: ErrorMessage, userCb?: (err: Error|null, response: http.ServerResponse|null, body: any) => void) { - var cb: Function = (isFunction(userCb) ? userCb : RequestHandler.noOp)!; + const cb: Function = (isFunction(userCb) ? userCb : RequestHandler.noOp)!; if (this._config.getShouldReportErrorsToAPI()) { this.request( { diff --git a/handwritten/error-reporting/src/index.ts b/handwritten/error-reporting/src/index.ts index 8bbb65c6852..acf06c8fcbd 100644 --- a/handwritten/error-reporting/src/index.ts +++ b/handwritten/error-reporting/src/index.ts @@ -117,7 +117,7 @@ export class Errors { this._client = new AuthClient(this._config, this._logger); if (this._config.getReportUnhandledRejections()) { - var that = this; + const that = this; process.on('unhandledRejection', function(reason) { that._logger.warn( 'UnhandledPromiseRejectionWarning: ' + @@ -144,7 +144,7 @@ export class Errors { * @example * // Use to create and report errors manually with a high-degree * // of manual control - * var err = errors.event() + * const err = errors.event() * .setMessage('My error message') * .setUser('root@nexus'); * errors.report(err, function () { @@ -155,8 +155,8 @@ export class Errors { /** * @example - * var hapi = require('hapi'); - * var server = new hapi.Server(); + * const hapi = require('hapi'); + * const server = new hapi.Server(); * server.connection({ port: 3000 }); * server.start(); * // AFTER ALL OTHER ROUTE HANDLERS @@ -166,8 +166,8 @@ export class Errors { /** * @example - * var express = require('express'); - * var app = express(); + * const express = require('express'); + * const app = express(); * // AFTER ALL OTHER ROUTE HANDLERS * app.use(errors.express); * app.listen(3000); @@ -176,8 +176,8 @@ export class Errors { /** * @example - * var restify = require('restify'); - * var server = restify.createServer(); + * const restify = require('restify'); + * const server = restify.createServer(); * // BEFORE ALL OTHER ROUTE HANDLERS * server.use(errors.restify(server)); */ @@ -185,8 +185,8 @@ export class Errors { /** * @example - * var koa = require('koa'); - * var app = koa(); + * const koa = require('koa'); + * const app = koa(); * // BEFORE ALL OTHER ROUTE HANDLERS HANDLERS * app.use(errors.koa); */ diff --git a/handwritten/error-reporting/src/interfaces/express.ts b/handwritten/error-reporting/src/interfaces/express.ts index 18a41393c91..a53d66df163 100644 --- a/handwritten/error-reporting/src/interfaces/express.ts +++ b/handwritten/error-reporting/src/interfaces/express.ts @@ -15,9 +15,9 @@ */ import * as is from 'is'; -var isObject = is.object; +const isObject = is.object; // TODO: Address the error where `is` does not have a `fn` property -var isFunction = (is as {} as {fn: Function}).fn; +const isFunction = (is as {} as {fn: Function}).fn; import {ErrorMessage} from '../classes/error-message'; import {expressRequestInformationExtractor} from '../request-extractors/express'; import {populateErrorMessage} from '../populate-error-message'; @@ -48,15 +48,15 @@ export function makeExpressHandler(client: RequestHandler, config: Configuration * @returns {ErrorMessage} - Returns the ErrorMessage instance */ function expressErrorHandler(err: {}, req: express.Request, res: express.Response, next: Function) { - var ctxService = ''; - var ctxVersion: string|undefined = ''; + let ctxService = ''; + let ctxVersion: string|undefined = ''; if (isObject(config)) { ctxService = config.getServiceContext().service; ctxVersion = config.getServiceContext().version; } - var em = new ErrorMessage() + const em = new ErrorMessage() .consumeRequestInformation(expressRequestInformationExtractor(req, res)) .setServiceContext(ctxService, ctxVersion); diff --git a/handwritten/error-reporting/src/interfaces/hapi.ts b/handwritten/error-reporting/src/interfaces/hapi.ts index cfd0b939761..3bbfa2db2c1 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.ts +++ b/handwritten/error-reporting/src/interfaces/hapi.ts @@ -15,13 +15,13 @@ */ import * as is from 'is'; -var isObject = is.object; +const isObject = is.object; // TODO: Address the error where `is` does not have a `fn` property -var isFunction = (is as {} as {fn: Function}).fn; +const isFunction = (is as {} as {fn: Function}).fn; import {ErrorMessage} from '../classes/error-message'; import {hapiRequestInformationExtractor} from '../request-extractors/hapi'; import {populateErrorMessage} from '../populate-error-message'; -var packageJson = require('../../../package.json'); +const packageJson = require('../../../package.json'); import {RequestHandler} from '../google-apis/auth-client'; import {Configuration} from '../configuration'; @@ -38,15 +38,15 @@ import * as hapi from 'hapi'; * ErrorMessage */ function hapiErrorHandler(req: hapi.Request, err: {}, config: Configuration) { - var service = ''; - var version: string|undefined = ''; + let service = ''; + let version: string|undefined = ''; if (isObject(config)) { service = config.getServiceContext().service; version = config.getServiceContext().version; } - var em = new ErrorMessage() + const em = new ErrorMessage() .consumeRequestInformation(hapiRequestInformationExtractor(req)) .setServiceContext(service, version); @@ -93,7 +93,7 @@ export function makeHapiPlugin(client: RequestHandler, config: Configuration) { // TODO: Handle the case when `request.response` is null request.response!.isBoom ) { - var em = hapiErrorHandler( + const em = hapiErrorHandler( request, // TODO: Handle the case when `request.response` is null // TODO: Handle the type conflict that requires a cast to string @@ -115,7 +115,7 @@ export function makeHapiPlugin(client: RequestHandler, config: Configuration) { } } - var hapiPlugin = {register: hapiRegisterFunction}; + const hapiPlugin = {register: hapiRegisterFunction}; (hapiPlugin.register as any).attributes = { name: packageJson.name, diff --git a/handwritten/error-reporting/src/interfaces/koa.ts b/handwritten/error-reporting/src/interfaces/koa.ts index d9854df89fe..fef39dc3b4c 100644 --- a/handwritten/error-reporting/src/interfaces/koa.ts +++ b/handwritten/error-reporting/src/interfaces/koa.ts @@ -42,12 +42,12 @@ export function koaErrorHandler(client: RequestHandler, config: Configuration) { * @returns {Undefined} does not return anything */ return function*(this: {request: Request; response: Response;}, next: Function) { - var svc = config.getServiceContext(); + const svc = config.getServiceContext(); try { yield next; } catch (err) { - var em = new ErrorMessage() + const em = new ErrorMessage() .consumeRequestInformation( koaRequestInformationExtractor(this.request, this.response) ) diff --git a/handwritten/error-reporting/src/interfaces/manual.ts b/handwritten/error-reporting/src/interfaces/manual.ts index 60773673acd..5089b950659 100644 --- a/handwritten/error-reporting/src/interfaces/manual.ts +++ b/handwritten/error-reporting/src/interfaces/manual.ts @@ -15,10 +15,10 @@ */ import * as is from 'is'; -var isString = is.string; -var isObject = is.object; +const isString = is.string; +const isObject = is.object; // TODO: Address the error where `is` does not have a `fn` property -var isFunction = (is as {} as {fn: Function}).fn; +const isFunction = (is as {} as {fn: Function}).fn; import {ErrorMessage} from '../classes/error-message'; import {manualRequestInformationExtractor} from '../request-extractors/manual'; import {populateErrorMessage} from '../populate-error-message'; @@ -63,7 +63,7 @@ export function handlerSetup(client: RequestHandler, config: Configuration, logg * the parameters given. */ function reportManualError(err: {}, request?: Request, additionalMessage?: string|{}, callback?: Callback|{}|string) { - var em; + let em; if (isString(request)) { // no request given callback = additionalMessage; diff --git a/handwritten/error-reporting/src/interfaces/message-builder.ts b/handwritten/error-reporting/src/interfaces/message-builder.ts index 9d7c0899685..d77e4037b48 100644 --- a/handwritten/error-reporting/src/interfaces/message-builder.ts +++ b/handwritten/error-reporting/src/interfaces/message-builder.ts @@ -45,9 +45,9 @@ export function handlerSetup(config: Configuration) { // error is used instead of the stack trace where the error is // reported to be consistent with the behavior of reporting a // an error when reporting an actual Node.js Error object. - var cleanedStack = buildStackTrace(''); + const cleanedStack = buildStackTrace(''); - var em = new ErrorMessage().setServiceContext( + const em = new ErrorMessage().setServiceContext( config.getServiceContext().service, config.getServiceContext().version ); diff --git a/handwritten/error-reporting/src/interfaces/restify.ts b/handwritten/error-reporting/src/interfaces/restify.ts index ee699d238eb..4882acdb5a7 100644 --- a/handwritten/error-reporting/src/interfaces/restify.ts +++ b/handwritten/error-reporting/src/interfaces/restify.ts @@ -15,8 +15,8 @@ */ import * as is from 'is'; -var isObject = is.object; -var isFunction = is.function; +const isObject = is.object; +const isFunction = is.function; import {ErrorMessage} from '../classes/error-message'; import * as expressRequestInformationExtractor from '../request-extractors/express'; import {populateErrorMessage} from '../populate-error-message'; @@ -40,7 +40,7 @@ import * as express from 'express'; * @returns {Undefined} - does not return anything */ function restifyErrorHandler(client: RequestHandler, config: Configuration, err: {}, em: ErrorMessage) { - var svc = config.getServiceContext(); + const svc = config.getServiceContext(); em.setServiceContext(svc.service, svc.version); populateErrorMessage(err, em); @@ -64,7 +64,7 @@ function restifyErrorHandler(client: RequestHandler, config: Configuration, err: * @returns {Undefined} - does not return anything */ function restifyRequestFinishHandler(client: RequestHandler, config: Configuration, req: restify.Request, res: restify.Response) { - var em; + let em; // TODO: Address the fact that `_body` does not exist in `res` if ( @@ -101,7 +101,7 @@ function restifyRequestFinishHandler(client: RequestHandler, config: Configurati */ function restifyRequestHandler(client: RequestHandler, config: Configuration, req: restify.Request, res: restify.Response, next: Function) { // TODO: Address the fact that a cast is needed to use `listener` - var listener = {}; + let listener = {}; if (isObject(res) && isFunction(res.on) && isFunction(res.removeListener)) { listener = function() { @@ -134,7 +134,7 @@ function restifyRequestHandler(client: RequestHandler, config: Configuration, re */ function serverErrorHandler(client: RequestHandler, config: Configuration, server: restify.Server) { server.on('uncaughtException', function(req, res, reqConfig, err) { - var em = new ErrorMessage().consumeRequestInformation( + const em = new ErrorMessage().consumeRequestInformation( expressRequestInformationExtractor.expressRequestInformationExtractor(req, res) ); diff --git a/handwritten/error-reporting/src/logger.ts b/handwritten/error-reporting/src/logger.ts index 6405d5fbfbe..ecffea67e0e 100644 --- a/handwritten/error-reporting/src/logger.ts +++ b/handwritten/error-reporting/src/logger.ts @@ -17,11 +17,11 @@ import has = require('lodash.has'); import * as is from 'is'; -var isObject = is.object; -var isString = is.string; -var isNumber = is.number; -var logger = require('@google-cloud/common').logger; -var packageJson = require('../../package.json'); +const isObject = is.object; +const isString = is.string; +const isNumber = is.number; +const logger = require('@google-cloud/common').logger; +const packageJson = require('../../package.json'); import {ConfigurationOptions} from './configuration'; @@ -44,8 +44,8 @@ import {ConfigurationOptions} from './configuration'; */ export function createLogger(initConfiguration: ConfigurationOptions) { // Default to log level: warn (2) - var DEFAULT_LEVEL = logger.LEVELS[2]; - var level = DEFAULT_LEVEL; + const DEFAULT_LEVEL = logger.LEVELS[2]; + let level = DEFAULT_LEVEL; if (has(process.env, 'GCLOUD_ERRORS_LOGLEVEL')) { // Cast env string as integer level = diff --git a/handwritten/error-reporting/src/populate-error-message.ts b/handwritten/error-reporting/src/populate-error-message.ts index becddba40ee..3829929f19e 100644 --- a/handwritten/error-reporting/src/populate-error-message.ts +++ b/handwritten/error-reporting/src/populate-error-message.ts @@ -16,7 +16,7 @@ import has = require('lodash.has'); import * as is from 'is'; -var isObject = is.object; +const isObject = is.object; import {buildStackTrace} from './build-stack-trace'; import {ErrorMessage} from './classes/error-message'; diff --git a/handwritten/error-reporting/src/request-extractors/express.ts b/handwritten/error-reporting/src/request-extractors/express.ts index 3b550d6be39..66031e7bd1e 100644 --- a/handwritten/error-reporting/src/request-extractors/express.ts +++ b/handwritten/error-reporting/src/request-extractors/express.ts @@ -17,8 +17,8 @@ import * as is from 'is'; // TODO: Address the error where `is` does not have a `fn` property -var isFunction = (is as {} as {fn: Function}).fn; -var isObject = is.object; +const isFunction = (is as {} as {fn: Function}).fn; +const isObject = is.object; import {RequestInformationContainer} from '../classes/request-information-container'; import * as express from 'express'; @@ -54,7 +54,7 @@ function extractRemoteAddressFromRequest(req: express.Request) { * information in a standardized format */ export function expressRequestInformationExtractor(req: express.Request, res: express.Response) { - var returnObject = new RequestInformationContainer(); + const returnObject = new RequestInformationContainer(); if (!isObject(req) || !isFunction(req.header) || !isObject(res)) { return returnObject; diff --git a/handwritten/error-reporting/src/request-extractors/hapi.ts b/handwritten/error-reporting/src/request-extractors/hapi.ts index 33b5db27d1c..0e46ce9bed6 100644 --- a/handwritten/error-reporting/src/request-extractors/hapi.ts +++ b/handwritten/error-reporting/src/request-extractors/hapi.ts @@ -17,9 +17,9 @@ import has = require('lodash.has'); import * as is from 'is'; -var isObject = is.object; -var isFunction = is.function; -var isArray = is.array; +const isObject = is.object; +const isFunction = is.function; +const isArray = is.array; import {RequestInformationContainer} from '../classes/request-information-container'; import * as hapi from 'hapi'; @@ -83,7 +83,7 @@ function extractRemoteAddressFromRequest(req: hapi.Request) { * information in a standardized format */ export function hapiRequestInformationExtractor(req: hapi.Request) { - var returnObject = new RequestInformationContainer(); + const returnObject = new RequestInformationContainer(); if ( !isObject(req) || diff --git a/handwritten/error-reporting/src/request-extractors/koa.ts b/handwritten/error-reporting/src/request-extractors/koa.ts index 69255c17734..24633559e17 100644 --- a/handwritten/error-reporting/src/request-extractors/koa.ts +++ b/handwritten/error-reporting/src/request-extractors/koa.ts @@ -15,9 +15,9 @@ */ import * as is from 'is'; -var isObject = is.object; -var isFunction = is.function; -var isArray = is.array; +const isObject = is.object; +const isFunction = is.function; +const isArray = is.array; import {RequestInformationContainer} from '../classes/request-information-container'; import * as koa from 'koa'; @@ -32,7 +32,7 @@ import * as koa from 'koa'; * container instance that may be in its initial state */ export function koaRequestInformationExtractor(req: koa.Request, res: koa.Response) { - var returnObject = new RequestInformationContainer(); + const returnObject = new RequestInformationContainer(); if ( !isObject(req) || diff --git a/handwritten/error-reporting/src/request-extractors/manual.ts b/handwritten/error-reporting/src/request-extractors/manual.ts index f4040f8c935..9fa7766aa8f 100644 --- a/handwritten/error-reporting/src/request-extractors/manual.ts +++ b/handwritten/error-reporting/src/request-extractors/manual.ts @@ -16,10 +16,10 @@ import has = require('lodash.has'); import * as is from 'is'; -var isObject = is.object; -var isArray = is.array; +const isObject = is.object; +const isArray = is.array; // TODO: Address the error where `is` does not have a `fn` property -var isFunction = (is as {} as {fn: Function}).fn; +const isFunction = (is as {} as {fn: Function}).fn; import {RequestInformationContainer} from '../classes/request-information-container'; export interface Request { @@ -50,7 +50,7 @@ export interface Request { * information in a standardized format */ export function manualRequestInformationExtractor(req: Request) { - var returnObject = new RequestInformationContainer(); + const returnObject = new RequestInformationContainer(); if (!isObject(req) || isArray(req) || isFunction(req)) { return returnObject; From cc44ae7bc71cf440ef5c1bb027fc35de743406b8 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Thu, 11 Jan 2018 10:49:11 -0800 Subject: [PATCH 050/527] chore: re-enable `gts check` (#37) --- handwritten/error-reporting/package.json | 2 +- .../error-reporting/src/build-stack-trace.ts | 20 +- .../src/classes/error-message.ts | 86 ++- .../classes/request-information-container.ts | 22 +- .../error-reporting/src/configuration.ts | 161 ++--- .../src/google-apis/auth-client.ts | 137 ++-- handwritten/error-reporting/src/index.ts | 41 +- .../error-reporting/src/interfaces/express.ts | 11 +- .../error-reporting/src/interfaces/hapi.ts | 35 +- .../error-reporting/src/interfaces/koa.ts | 19 +- .../error-reporting/src/interfaces/manual.ts | 39 +- .../src/interfaces/message-builder.ts | 11 +- .../error-reporting/src/interfaces/restify.ts | 45 +- handwritten/error-reporting/src/logger.ts | 13 +- .../src/populate-error-message.ts | 16 +- .../src/request-extractors/express.ts | 16 +- .../src/request-extractors/hapi.ts | 35 +- .../src/request-extractors/koa.ts | 27 +- .../system-test/error-reporting.js | 631 ++++++++---------- .../test-servers/express_scaffold_server.js | 35 +- .../test/test-servers/koa_scaffold_server.js | 2 +- .../test-servers/manual_scaffold_server.js | 7 +- .../test/unit/classes/error-message.js | 618 +++++++---------- .../classes/request-information-container.js | 3 +- .../test/unit/configuration.js | 42 +- .../test/unit/google-apis/auth-client.js | 27 +- .../test/unit/interfaces/express.js | 38 +- .../test/unit/interfaces/hapi.js | 101 ++- .../test/unit/interfaces/manual.js | 93 +-- .../test/unit/interfaces/restify.js | 15 +- .../error-reporting/test/unit/logger.js | 18 +- .../test/unit/populate-error-message.js | 417 ++++++------ .../test/unit/request-extractors/express.js | 71 +- .../test/unit/request-extractors/hapi.js | 19 +- .../test/unit/request-extractors/koa.js | 18 +- .../test/unit/request-extractors/manual.js | 98 ++- .../test/unit/service-configuration.js | 405 +++++------ 37 files changed, 1473 insertions(+), 1921 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index a49fa229c22..1b6e5c148f8 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -41,7 +41,7 @@ "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", "test-no-cover": "repo-tools test run --cmd mocha -- ./build/test/unit/*.js ./build/test/unit/**/*.js --no-timeouts", "test": "repo-tools test run --cmd npm -- run cover", - "check": "echo '`gts check` has been disabled. Re-enable when Typescript migration is complete.'", + "check": "gts check", "clean": "gts clean", "compile": "tsc -p .", "fix": "gts fix", diff --git a/handwritten/error-reporting/src/build-stack-trace.ts b/handwritten/error-reporting/src/build-stack-trace.ts index 92a9fb12c33..da5bc49d751 100644 --- a/handwritten/error-reporting/src/build-stack-trace.ts +++ b/handwritten/error-reporting/src/build-stack-trace.ts @@ -32,14 +32,14 @@ export function buildStackTrace(message: string) { Error.captureStackTrace(target, buildStackTrace); const prefix = message ? message + '\n' : ''; return ( - prefix + - (target as any).stack - .split('\n') - .slice(1) - .filter(function(line: string) { - // Filter out all frames that are specific to the error-reporting library - return !line || line.indexOf(SRC_ROOT) === -1; - }) - .join('\n') - ); + prefix + + (target as {stack: string}) + .stack.split('\n') + .slice(1) + .filter((line: string) => { + // Filter out all frames that are specific to the error-reporting + // library + return !line || line.indexOf(SRC_ROOT) === -1; + }) + .join('\n')); } diff --git a/handwritten/error-reporting/src/classes/error-message.ts b/handwritten/error-reporting/src/classes/error-message.ts index 4403f2ea748..e46968a0254 100644 --- a/handwritten/error-reporting/src/classes/error-message.ts +++ b/handwritten/error-reporting/src/classes/error-message.ts @@ -24,19 +24,12 @@ import {ServiceContext} from '../configuration'; export interface Context { httpRequest: { - method: string; - url: string; - userAgent: string; - referrer: string; + method: string; url: string; userAgent: string; referrer: string; responseStatusCode: number; remoteIp: string; }; user: string; - reportLocation: { - filePath: string; - lineNumber: number; - functionName: string; - }; + reportLocation: {filePath: string; lineNumber: number; functionName: string;}; } export class ErrorMessage { @@ -47,21 +40,21 @@ export class ErrorMessage { /** * The constructor for ErrorMessage takes no arguments and is solely meant to - * to instantiate properties on the instance. Each property should be externally - * set using the corresponding set function with the exception of eventTime - * which can be set externally but does not need to be since it is inited to - * an ISO-8601 compliant time string. + * to instantiate properties on the instance. Each property should be + * externally set using the corresponding set function with the exception of + * eventTime which can be set externally but does not need to be since it is + * inited to an ISO-8601 compliant time string. * @type {Object} * @class ErrorMessage * @classdesc ErrorMessage is a class which is meant to store and control-for * Stackdriver Error API submittable values. Meant to be JSON string-ifiable - * representation of the final values which will be submitted to the Error API - * this class enforces type-checking on every setter function and will write - * default type-friendly values to instance properties if given values which - * are type-incompatible to expectations. These type-friendly default - * substitutions will occur silently and no errors will be thrown on attempted - * invalid input under the premise that during misassignment some error - * information sent to the Error API is better than no error information + * representation of the final values which will be submitted to the Error + * API this class enforces type-checking on every setter function and will + * write default type-friendly values to instance properties if given values + * which are type-incompatible to expectations. These type-friendly default + * substitutions will occur silently and no errors will be thrown on + * attempted invalid input under the premise that during misassignment some + * error information sent to the Error API is better than no error information * due to the Error library failing under invalid input. * @property {String} eventTime - an ISO-8601 compliant string representing when * the error was created @@ -118,7 +111,7 @@ export class ErrorMessage { this.eventTime = new Date().toISOString(); return this; - }; + } /** * Sets the serviceContext property on the instance and its two constituent @@ -135,7 +128,7 @@ export class ErrorMessage { this.serviceContext.version = isString(version) ? version : undefined; return this; - }; + } /** * Sets the message property on the instance. @@ -147,7 +140,7 @@ export class ErrorMessage { this.message = isString(message) ? message : ''; return this; - }; + } /** * Sets the context.httpRequest.method property on the instance. @@ -160,7 +153,7 @@ export class ErrorMessage { this.context.httpRequest.method = isString(method) ? method : ''; return this; - }; + } /** * Sets the context.httpRequest.url property on the instance. @@ -172,7 +165,7 @@ export class ErrorMessage { this.context.httpRequest.url = isString(url) ? url : ''; return this; - }; + } /** * Sets the context.httpRequest.userAgent property on the instance. @@ -184,7 +177,7 @@ export class ErrorMessage { this.context.httpRequest.userAgent = isString(userAgent) ? userAgent : ''; return this; - }; + } /** * Sets the context.httpRequest.referrer property on the instance. @@ -196,7 +189,7 @@ export class ErrorMessage { this.context.httpRequest.referrer = isString(referrer) ? referrer : ''; return this; - }; + } /** * Sets the context.httpRequest.responseStatusCode property on the instance. @@ -205,12 +198,11 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setResponseStatusCode(responseStatusCode: number) { - this.context.httpRequest.responseStatusCode = isNumber(responseStatusCode) - ? responseStatusCode - : 0; + this.context.httpRequest.responseStatusCode = + isNumber(responseStatusCode) ? responseStatusCode : 0; return this; - }; + } /** * Sets the context.httpRequest.remoteIp property on the instance @@ -222,7 +214,7 @@ export class ErrorMessage { this.context.httpRequest.remoteIp = isString(remoteIp) ? remoteIp : ''; return this; - }; + } /** * Sets the context.user property on the instance @@ -234,7 +226,7 @@ export class ErrorMessage { this.context.user = isString(user) ? user : ''; return this; - }; + } /** * Sets the context.reportLocation.filePath property on the instance @@ -246,7 +238,7 @@ export class ErrorMessage { this.context.reportLocation.filePath = isString(filePath) ? filePath : ''; return this; - }; + } /** * Sets the context.reportLocation.lineNumber property on the instance @@ -255,12 +247,11 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setLineNumber(lineNumber: number) { - this.context.reportLocation.lineNumber = isNumber(lineNumber) - ? lineNumber - : 0; + this.context.reportLocation.lineNumber = + isNumber(lineNumber) ? lineNumber : 0; return this; - }; + } /** * Sets the context.reportLocation.functionName property on the instance @@ -269,12 +260,11 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setFunctionName(functionName: string) { - this.context.reportLocation.functionName = isString(functionName) - ? functionName - : ''; + this.context.reportLocation.functionName = + isString(functionName) ? functionName : ''; return this; - }; + } /** * Consumes the standard object created by the requestInformationExtractors @@ -290,12 +280,12 @@ export class ErrorMessage { } this.setHttpMethod(requestInformation.method) - .setUrl(requestInformation.url) - .setUserAgent(requestInformation.userAgent) - .setReferrer(requestInformation.referrer) - .setResponseStatusCode(requestInformation.statusCode) - .setRemoteIp(requestInformation.remoteAddress); + .setUrl(requestInformation.url) + .setUserAgent(requestInformation.userAgent) + .setReferrer(requestInformation.referrer) + .setResponseStatusCode(requestInformation.statusCode) + .setRemoteIp(requestInformation.remoteAddress); return this; - }; + } } diff --git a/handwritten/error-reporting/src/classes/request-information-container.ts b/handwritten/error-reporting/src/classes/request-information-container.ts index b9d2610f03b..3469c290870 100644 --- a/handwritten/error-reporting/src/classes/request-information-container.ts +++ b/handwritten/error-reporting/src/classes/request-information-container.ts @@ -30,15 +30,15 @@ export class RequestInformationContainer { * The constructor for RequestInformationContainer does not take any arugments * and is solely meant to allocate several properties on the instance. The * constructor will init properties which closely relate to the ErrorMessage - * context.httpRequest object properties. The properties on the instance should - * be set through there corresponding setters as these will enforce type - * validation around input. + * context.httpRequest object properties. The properties on the instance + * should be set through there corresponding setters as these will enforce + * type validation around input. * @class RequestInformationContainer * @classdesc RequestInformationContainer is a class which is meant to * standardize and contain values corresponding to request information around * an error-inducing request. This class is meant to be a temporary container - * for request information and essentially a standardized interface consumed by - * the ErrorMessage class itself. + * for request information and essentially a standardized interface consumed + * by the ErrorMessage class itself. * @property {String} url - The route/url that the request addressed * @property {String} method - The method that the request used * @property {String} referrer - The referrer of the request @@ -65,7 +65,7 @@ export class RequestInformationContainer { this.url = isString(url) ? url : ''; return this; - }; + } /** * Sets the method property on the instance. @@ -77,7 +77,7 @@ export class RequestInformationContainer { this.method = isString(method) ? method : ''; return this; - }; + } /** * Sets the referrer property on the instance. @@ -89,7 +89,7 @@ export class RequestInformationContainer { this.referrer = (isString(referrer) ? referrer : '')!; return this; - }; + } /** * Sets the userAgent property on the instance. @@ -101,7 +101,7 @@ export class RequestInformationContainer { this.userAgent = (isString(userAgent) ? userAgent : '')!; return this; - }; + } /** * Sets the remoteAddress property on the instance. @@ -113,7 +113,7 @@ export class RequestInformationContainer { this.remoteAddress = (isString(remoteIp) ? remoteIp : '')!; return this; - }; + } /** * Sets the statusCode property on the instance. @@ -125,5 +125,5 @@ export class RequestInformationContainer { this.statusCode = isNumber(statusCode) ? statusCode : 0; return this; - }; + } } diff --git a/handwritten/error-reporting/src/configuration.ts b/handwritten/error-reporting/src/configuration.ts index 2bb9423ce72..6578753d6ea 100644 --- a/handwritten/error-reporting/src/configuration.ts +++ b/handwritten/error-reporting/src/configuration.ts @@ -29,10 +29,7 @@ export interface ConfigurationOptions { keyFilename?: string; logLevel?: string|number; key?: string; - serviceContext?: { - service?: string; - version?: string; - }; + serviceContext?: {service?: string; version?: string;}; ignoreEnvironmentCheck?: boolean; credentials?: {}; reportUnhandledRejections?: boolean; @@ -87,14 +84,15 @@ export class Configuration { this._logger = logger; /** * The _shouldReportErrorsToAPI property is meant to denote whether or not - * the Stackdriver error reporting library will actually try to report Errors - * to the Stackdriver Error API. The value of this property is derived from - * the `NODE_ENV` environmental variable or the value of ignoreEnvironmentChec - * property if present in the runtime configuration. If either the `NODE_ENV` - * variable is set to 'production' or the ignoreEnvironmentCheck propery on - * the runtime configuration is set to true then the error reporting library - * attempt to send errors to the Error API. Otherwise the value will remain - * false and errors will not be reported to the API. + * the Stackdriver error reporting library will actually try to report + * Errors to the Stackdriver Error API. The value of this property is + * derived from the `NODE_ENV` environmental variable or the value of + * ignoreEnvironmentChec property if present in the runtime configuration. + * If either the `NODE_ENV` variable is set to 'production' or the + * ignoreEnvironmentCheck propery on the runtime configuration is set to + * true then the error reporting library attempt to send errors to the Error + * API. Otherwise the value will remain false and errors will not be + * reported to the API. * @memberof Configuration * @private * @type {Boolean} @@ -102,17 +100,17 @@ export class Configuration { */ this._shouldReportErrorsToAPI = false; /** - * The _projectId property is meant to contain the string project id that the - * hosting application is running under. The project id is a unique string - * identifier for the project. If the Configuration instance is not able to - * retrieve a project id from the metadata service or the runtime-given - * configuration then the property will remain null. If given both a project - * id through the metadata service and the runtime configuration then the - * instance will assign the value given by the metadata service over the - * runtime configuration. If the instance is unable to retrieve a valid - * project id or number from runtime configuration and the metadata service - * then this will trigger the `error` event in which listening components must - * operate in 'offline' mode. + * The _projectId property is meant to contain the string project id that + * the hosting application is running under. The project id is a unique + * string identifier for the project. If the Configuration instance is not + * able to retrieve a project id from the metadata service or the + * runtime-given configuration then the property will remain null. If given + * both a project id through the metadata service and the runtime + * configuration then the instance will assign the value given by the + * metadata service over the runtime configuration. If the instance is + * unable to retrieve a valid project id or number from runtime + * configuration and the metadata service then this will trigger the `error` + * event in which listening components must operate in 'offline' mode. * {@link https://cloud.google.com/compute/docs/storing-retrieving-metadata} * @memberof Configuration * @private @@ -121,11 +119,11 @@ export class Configuration { */ this._projectId = null; /** - * The _key property is meant to contain the optional Stackdriver API key that - * may be used in place of default application credentials to authenticate - * with the Stackdriver Error API. This property will remain null if a key - * is not given in the runtime configuration or an invalid type is given as - * the runtime configuration. + * The _key property is meant to contain the optional Stackdriver API key + * that may be used in place of default application credentials to + * authenticate with the Stackdriver Error API. This property will remain + * null if a key is not given in the runtime configuration or an invalid + * type is given as the runtime configuration. * {@link https://support.google.com/cloud/answer/6158862?hl=en} * @memberof Configuration * @private @@ -158,8 +156,8 @@ export class Configuration { /** * The _serviceContext property is meant to contain the optional service * context information which may be given in the runtime configuration. If - * not given in the runtime configuration then the property value will remain - * null. + * not given in the runtime configuration then the property value will + * remain null. * @memberof Configuration * @private * @type {Object} @@ -167,7 +165,8 @@ export class Configuration { this._serviceContext = {service: 'nodejs', version: ''}; /** * The _reportUnhandledRejections property is meant to specify whether or - * not unhandled rejections should be reported to the error-reporting console. + * not unhandled rejections should be reported to the error-reporting + * console. * @memberof Configuration * @private * @type {Boolean} @@ -175,9 +174,9 @@ export class Configuration { this._reportUnhandledRejections = false; /** * The _givenConfiguration property holds a ConfigurationOptions object - * which, if valid, will be merged against by the values taken from the meta- - * data service. If the _givenConfiguration property is not valid then only - * metadata values will be used in the Configuration instance. + * which, if valid, will be merged against by the values taken from the + * meta-data service. If the _givenConfiguration property is not valid then + * only metadata values will be used in the Configuration instance. * @memberof Configuration * @private * @type {Object|Null} @@ -186,17 +185,18 @@ export class Configuration { this._givenConfiguration = isObject(givenConfig) ? givenConfig : {}; this._checkLocalServiceContext(); this._gatherLocalConfiguration(); - }; + } /** * The _checkLocalServiceContext function is responsible for attempting to - * source the _serviceContext objects values from runtime configuration and the - * environment. First the function will check the env for known service context - * names, if these are not set then it will defer to the _givenConfiguration - * property if it is set on the instance. The function will check env variables - * `GAE_MODULE_NAME` and `GAE_MODULE_VERSION` for `_serviceContext.service` and + * source the _serviceContext objects values from runtime configuration and + * the environment. First the function will check the env for known service + * context names, if these are not set then it will defer to the + * _givenConfiguration property if it is set on the instance. The function + * will check env variables `GAE_MODULE_NAME` and `GAE_MODULE_VERSION` for + * `_serviceContext.service` and * `_serviceContext.version` respectively. If these are not set the - * `_serviceContext` properties will be left at default unless the given runtime - * configuration supplies any values as substitutes. + * `_serviceContext` properties will be left at default unless the given + * runtime configuration supplies any values as substitutes. * @memberof Configuration * @private * @function _checkLocalServiceContext @@ -238,25 +238,28 @@ export class Configuration { if (isObject(this._givenConfiguration.serviceContext)) { if (isString(this._givenConfiguration.serviceContext!.service)) { - this._serviceContext.service = this._givenConfiguration.serviceContext!.service!; + this._serviceContext.service = + this._givenConfiguration.serviceContext!.service!; } else if (has(this._givenConfiguration.serviceContext, 'service')) { throw new Error('config.serviceContext.service must be a string'); } if (isString(this._givenConfiguration.serviceContext!.version)) { - this._serviceContext.version = this._givenConfiguration.serviceContext!.version; + this._serviceContext.version = + this._givenConfiguration.serviceContext!.version; } else if (has(this._givenConfiguration.serviceContext, 'version')) { throw new Error('config.serviceContext.version must be a string'); } } - }; + } /** * The _gatherLocalConfiguration function is responsible for determining * directly determing whether the properties `reportUncaughtExceptions` and - * `key`, which can be optionally supplied in the runtime configuration, should - * be merged into the instance. This function also calls several specialized - * environmental variable checkers which not only check for the optional runtime - * configuration supplied values but also the processes environmental values. + * `key`, which can be optionally supplied in the runtime configuration, + * should be merged into the instance. This function also calls several + * specialized environmental variable checkers which not only check for the + * optional runtime configuration supplied values but also the processes + * environmental values. * @memberof Configuration * @private * @function _gatherLocalConfiguration @@ -266,22 +269,19 @@ export class Configuration { if (this._givenConfiguration.ignoreEnvironmentCheck === true) { this._shouldReportErrorsToAPI = true; } else if ( - has(this._givenConfiguration, 'ignoreEnvironmentCheck') && - !isBoolean(this._givenConfiguration.ignoreEnvironmentCheck) - ) { + has(this._givenConfiguration, 'ignoreEnvironmentCheck') && + !isBoolean(this._givenConfiguration.ignoreEnvironmentCheck)) { throw new Error('config.ignoreEnvironmentCheck must be a boolean'); } else { this._shouldReportErrorsToAPI = env.NODE_ENV === 'production'; } if (!this._shouldReportErrorsToAPI) { - this._logger.warn( - [ - 'Stackdriver error reporting client has not been configured to send', - 'errors, please check the NODE_ENV environment variable and make sure it', - 'is set to "production" or the ignoreEnvironmentCheck property is set to', - 'true in the runtime configuration object', - ].join(' ') - ); + this._logger.warn([ + 'Stackdriver error reporting client has not been configured to send', + 'errors, please check the NODE_ENV environment variable and make sure it', + 'is set to "production" or the ignoreEnvironmentCheck property is set to', + 'true in the runtime configuration object', + ].join(' ')); } if (isString(this._givenConfiguration.key)) { this._key = this._givenConfiguration.key!; @@ -299,26 +299,27 @@ export class Configuration { throw new Error('config.credentials must be a valid credentials object'); } if (isBoolean(this._givenConfiguration.reportUnhandledRejections)) { - this._reportUnhandledRejections = this._givenConfiguration.reportUnhandledRejections!; + this._reportUnhandledRejections = + this._givenConfiguration.reportUnhandledRejections!; } else if (has(this._givenConfiguration, 'reportUnhandledRejections')) { throw new Error('config.reportUnhandledRejections must be a boolean'); } - }; + } /** * The _checkLocalProjectId function is responsible for determing whether the * _projectId property was set by the metadata service and whether or not the * _projectId property should/can be set with a environmental or runtime * configuration variable. If, upon execution of the _checkLocalProjectId - * function, the _projectId property has already been set to a string then it is - * assumed that this property has been set with the metadata services response. - * The metadata value for the project id always take precedence over any other - * locally configured project id value. Given that the metadata service did not - * set the project id this function will defer next to the value set in the - * environment named `GCLOUD_PROJECT` if it is set and of type string. If this - * environmental variable is not set the function will defer to the - * _givenConfiguration property if it is of type object and has a string - * property named projectId. If none of these conditions are met then the - * _projectId property will be left at its default value. + * function, the _projectId property has already been set to a string then it + * is assumed that this property has been set with the metadata services + * response. The metadata value for the project id always take precedence over + * any other locally configured project id value. Given that the metadata + * service did not set the project id this function will defer next to the + * value set in the environment named `GCLOUD_PROJECT` if it is set and of + * type string. If this environmental variable is not set the function will + * defer to the _givenConfiguration property if it is of type object and has a + * string property named projectId. If none of these conditions are met then + * the _projectId property will be left at its default value. * @memberof Configuration * @private * @function _checkLocalProjectId @@ -339,7 +340,7 @@ export class Configuration { } } return this._projectId; - }; + } /** * Returns the _shouldReportErrorsToAPI property on the instance. * @memberof Configuration @@ -349,7 +350,7 @@ export class Configuration { */ getShouldReportErrorsToAPI() { return this._shouldReportErrorsToAPI; - }; + } /** * Returns the _projectId property on the instance. * @memberof Configuration @@ -359,7 +360,7 @@ export class Configuration { */ getProjectId() { return this._checkLocalProjectId(); - }; + } /** * Returns the _key property on the instance. * @memberof Configuration @@ -369,7 +370,7 @@ export class Configuration { */ getKey() { return this._key; - }; + } /** * Returns the keyFilename property on the instance. * @memberof Configuration @@ -379,7 +380,7 @@ export class Configuration { */ getKeyFilename() { return this.keyFilename; - }; + } /** * Returns the credentials property on the instance. * @memberof Configuration @@ -389,7 +390,7 @@ export class Configuration { */ getCredentials() { return this.credentials; - }; + } /** * Returns the _serviceContext property on the instance. * @memberof Configuration @@ -399,7 +400,7 @@ export class Configuration { */ getServiceContext() { return this._serviceContext; - }; + } /** * Returns the _reportUnhandledRejections property on the instance. * @memberof Configuration @@ -409,5 +410,5 @@ export class Configuration { */ getReportUnhandledRejections() { return this._reportUnhandledRejections; - }; + } } diff --git a/handwritten/error-reporting/src/google-apis/auth-client.ts b/handwritten/error-reporting/src/google-apis/auth-client.ts index af83b0f0646..2c205179077 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.ts +++ b/handwritten/error-reporting/src/google-apis/auth-client.ts @@ -74,7 +74,7 @@ export class RequestHandler extends common.Service { */ static manufactureQueryString(key: string|null) { if (isString(key)) { - return {key: key}; + return {key}; } return null; } @@ -100,57 +100,49 @@ export class RequestHandler extends common.Service { // If an API key is provided, do not try to authenticate. const tryAuthenticate = !config.getKey(); super( - { - packageJson: pkg, - baseUrl: API, - scopes: SCOPES, - projectId: pid !== null ? pid : undefined, - projectIdRequired: true, - customEndpoint: !tryAuthenticate, - }, - // TODO: Fix the type incompatibilities that require this cast - config as common.ServiceAuthenticationConfig - ); + { + packageJson: pkg, + baseUrl: API, + scopes: SCOPES, + projectId: pid !== null ? pid : undefined, + projectIdRequired: true, + customEndpoint: !tryAuthenticate, + }, + // TODO: Fix the type incompatibilities that require this cast + config as common.ServiceAuthenticationConfig); this._config = config; this._logger = logger; const that = this; if (tryAuthenticate) { - this.authClient.getToken(function(err: Error) { + this.authClient.getToken((err: Error) => { if (err) { - that._logger.error( - [ - 'Unable to find credential information on instance. This library', - 'will be unable to communicate with the Stackdriver API to save', - 'errors. Message: ' + err.message, - ].join(' ') - ); + that._logger.error([ + 'Unable to find credential information on instance. This library', + 'will be unable to communicate with the Stackdriver API to save', + 'errors. Message: ' + err.message, + ].join(' ')); } }); } else { this.request( - { - uri: 'events:report', - qs: RequestHandler.manufactureQueryString(this._config.getKey()), - method: 'POST', - json: {}, - }, - (err, body, response) => { - if ( - err && - err.message !== 'Message cannot be empty.' && - response && response.statusCode === 400 - ) { - this._logger.error( - [ - 'Encountered an error while attempting to validate the provided', - 'API key', - ].join(' '), - err - ); - } - } - ); + { + uri: 'events:report', + qs: RequestHandler.manufactureQueryString(this._config.getKey()), + method: 'POST', + json: {}, + }, + (err, body, response) => { + if (err && err.message !== 'Message cannot be empty.' && response && + response.statusCode === 400) { + this._logger.error( + [ + 'Encountered an error while attempting to validate the provided', + 'API key', + ].join(' '), + err); + } + }); that._logger.info('API key provided; skipping OAuth2 token request.'); } } @@ -166,42 +158,39 @@ export class RequestHandler extends common.Service { * @returns {Undefined} - does not return anything * @instance */ - sendError(errorMessage: ErrorMessage, userCb?: (err: Error|null, response: http.ServerResponse|null, body: any) => void) { + sendError( + errorMessage: ErrorMessage, + userCb?: + (err: Error|null, response: http.ServerResponse|null, + body: {}) => void) { const cb: Function = (isFunction(userCb) ? userCb : RequestHandler.noOp)!; if (this._config.getShouldReportErrorsToAPI()) { this.request( - { - uri: 'events:report', - qs: RequestHandler.manufactureQueryString(this._config.getKey()), - method: 'POST', - json: errorMessage, - }, - (err, body, response) => { - if (err) { - this._logger.error( - [ - 'Encountered an error while attempting to transmit an error to', - 'the Stackdriver Error Reporting API.', - ].join(' '), - err - ); - } - cb(err, response, body); - } - ); + { + uri: 'events:report', + qs: RequestHandler.manufactureQueryString(this._config.getKey()), + method: 'POST', + json: errorMessage, + }, + (err, body, response) => { + if (err) { + this._logger.error( + [ + 'Encountered an error while attempting to transmit an error to', + 'the Stackdriver Error Reporting API.', + ].join(' '), + err); + } + cb(err, response, body); + }); } else { - cb( - new Error( - [ - 'Stackdriver error reporting client has not been configured to send', - 'errors, please check the NODE_ENV environment variable and make sure', - 'it is set to "production" or set the ignoreEnvironmentCheck property', - 'to true in the runtime configuration object', - ].join(' ') - ), - null, - null - ); + cb(new Error([ + 'Stackdriver error reporting client has not been configured to send', + 'errors, please check the NODE_ENV environment variable and make sure', + 'it is set to "production" or set the ignoreEnvironmentCheck property', + 'to true in the runtime configuration object', + ].join(' ')), + null, null); } } } diff --git a/handwritten/error-reporting/src/index.ts b/handwritten/error-reporting/src/index.ts index acf06c8fcbd..cff209536bf 100644 --- a/handwritten/error-reporting/src/index.ts +++ b/handwritten/error-reporting/src/index.ts @@ -18,26 +18,26 @@ * @module error-reporting */ +import {Logger} from '@google-cloud/common'; +import * as e from 'express'; +import * as h from 'hapi'; +import {ServerResponse} from 'http'; +import * as r from 'restify'; + +import {ErrorMessage} from './classes/error-message'; import {Configuration, ConfigurationOptions} from './configuration'; import {RequestHandler as AuthClient} from './google-apis/auth-client'; -import {Logger} from '@google-cloud/common'; +import {makeExpressHandler as express} from './interfaces/express'; +import {makeHapiPlugin as hapi} from './interfaces/hapi'; // Begin error reporting interfaces import {koaErrorHandler as koa} from './interfaces/koa'; -import {makeHapiPlugin as hapi} from './interfaces/hapi'; import * as manual from './interfaces/manual'; -import {makeExpressHandler as express} from './interfaces/express'; -import {handlerSetup as restify} from './interfaces/restify'; +import {Callback} from './interfaces/manual'; import * as messageBuilder from './interfaces/message-builder'; +import {handlerSetup as restify} from './interfaces/restify'; import {createLogger} from './logger'; - -import {ErrorMessage} from './classes/error-message'; import {Request} from './request-extractors/manual'; -import {Callback} from './interfaces/manual'; -import {ServerResponse} from 'http'; -import * as h from 'hapi'; -import * as e from 'express'; -import * as r from 'restify'; /** * @typedef ConfigurationOptions @@ -100,11 +100,14 @@ export class Errors { private _logger: Logger; private _config: Configuration; private _client: AuthClient; - report: (err: {}, request?: Request, additionalMessage?: string|{}, callback?: Callback|{}|string) => ErrorMessage; + report: + (err: {}, request?: Request, additionalMessage?: string|{}, + callback?: Callback|{}|string) => ErrorMessage; event: () => ErrorMessage; - hapi: {register: (server: h.Server, options: {}, next: Function) => void }; + hapi: {register: (server: h.Server, options: {}, next: Function) => void}; express: (err: {}, req: e.Request, res: e.Response, next: Function) => void; - restify: (client: AuthClient, config: Configuration, server: r.Server) => void; + restify: + (client: AuthClient, config: Configuration, server: r.Server) => void; koa: (next: Function) => Iterable; constructor(initConfiguration: ConfigurationOptions) { @@ -118,14 +121,12 @@ export class Errors { if (this._config.getReportUnhandledRejections()) { const that = this; - process.on('unhandledRejection', function(reason) { + process.on('unhandledRejection', (reason) => { that._logger.warn( - 'UnhandledPromiseRejectionWarning: ' + - 'Unhandled promise rejection: ' + - reason + + 'UnhandledPromiseRejectionWarning: ' + + 'Unhandled promise rejection: ' + reason + '. This rejection has been reported to the ' + - 'Google Cloud Platform error-reporting console.' - ); + 'Google Cloud Platform error-reporting console.'); that.report(reason); }); } diff --git a/handwritten/error-reporting/src/interfaces/express.ts b/handwritten/error-reporting/src/interfaces/express.ts index a53d66df163..9c2803b356b 100644 --- a/handwritten/error-reporting/src/interfaces/express.ts +++ b/handwritten/error-reporting/src/interfaces/express.ts @@ -35,7 +35,8 @@ import * as express from 'express'; * @returns {expressErrorHandler} - a function that can be used as an express * error handling middleware. */ -export function makeExpressHandler(client: RequestHandler, config: Configuration) { +export function makeExpressHandler( + client: RequestHandler, config: Configuration) { /** * The Express Error Handler function is an interface for the error handler * stack into the Express architecture. @@ -47,7 +48,8 @@ export function makeExpressHandler(client: RequestHandler, config: Configuration * @param {Function} next - an Express continuation callback * @returns {ErrorMessage} - Returns the ErrorMessage instance */ - function expressErrorHandler(err: {}, req: express.Request, res: express.Response, next: Function) { + function expressErrorHandler( + err: {}, req: express.Request, res: express.Response, next: Function) { let ctxService = ''; let ctxVersion: string|undefined = ''; @@ -57,8 +59,9 @@ export function makeExpressHandler(client: RequestHandler, config: Configuration } const em = new ErrorMessage() - .consumeRequestInformation(expressRequestInformationExtractor(req, res)) - .setServiceContext(ctxService, ctxVersion); + .consumeRequestInformation( + expressRequestInformationExtractor(req, res)) + .setServiceContext(ctxService, ctxVersion); populateErrorMessage(err, em); diff --git a/handwritten/error-reporting/src/interfaces/hapi.ts b/handwritten/error-reporting/src/interfaces/hapi.ts index 3bbfa2db2c1..30532d005b9 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.ts +++ b/handwritten/error-reporting/src/interfaces/hapi.ts @@ -46,9 +46,10 @@ function hapiErrorHandler(req: hapi.Request, err: {}, config: Configuration) { version = config.getServiceContext().version; } - const em = new ErrorMessage() - .consumeRequestInformation(hapiRequestInformationExtractor(req)) - .setServiceContext(service, version); + const em = + new ErrorMessage() + .consumeRequestInformation(hapiRequestInformationExtractor(req)) + .setServiceContext(service, version); populateErrorMessage(err, em); @@ -77,29 +78,25 @@ export function makeHapiPlugin(client: RequestHandler, config: Configuration) { * plugin * @returns {Undefined} - returns the execution of the next callback */ - function hapiRegisterFunction(server: hapi.Server, options: {}, next: Function) { + function hapiRegisterFunction( + server: hapi.Server, options: {}, next: Function) { if (isObject(server)) { if (isFunction(server.on)) { - server.on('request-error', function(req, err) { + server.on('request-error', (req, err) => { client.sendError(hapiErrorHandler(req, err, config)); }); } if (isFunction(server.ext)) { - server.ext('onPreResponse', function(request, reply) { - if ( - isObject(request) && - isObject(request.response) && - // TODO: Handle the case when `request.response` is null - request.response!.isBoom - ) { - const em = hapiErrorHandler( - request, + server.ext('onPreResponse', (request, reply) => { + if (isObject(request) && isObject(request.response) && // TODO: Handle the case when `request.response` is null - // TODO: Handle the type conflict that requires a cast to string - new Error(request.response!.message as {} as string), - config - ); + request.response!.isBoom) { + const em = hapiErrorHandler( + request, + // TODO: Handle the case when `request.response` is null + // TODO: Handle the type conflict that requires a cast to string + new Error(request.response!.message as {} as string), config); client.sendError(em); } @@ -117,7 +114,7 @@ export function makeHapiPlugin(client: RequestHandler, config: Configuration) { const hapiPlugin = {register: hapiRegisterFunction}; - (hapiPlugin.register as any).attributes = { + (hapiPlugin.register as {} as {attributes: {}}).attributes = { name: packageJson.name, version: packageJson.version, }; diff --git a/handwritten/error-reporting/src/interfaces/koa.ts b/handwritten/error-reporting/src/interfaces/koa.ts index fef39dc3b4c..696d08be6cc 100644 --- a/handwritten/error-reporting/src/interfaces/koa.ts +++ b/handwritten/error-reporting/src/interfaces/koa.ts @@ -14,12 +14,13 @@ * limitations under the License. */ +import {Request, Response} from 'koa'; + import {ErrorMessage} from '../classes/error-message'; -import {koaRequestInformationExtractor} from '../request-extractors/koa'; +import {Configuration} from '../configuration'; +import {RequestHandler} from '../google-apis/auth-client'; import {populateErrorMessage} from '../populate-error-message'; -import { RequestHandler } from '../google-apis/auth-client'; -import { Configuration } from '../configuration'; -import { Request, Response } from 'koa'; +import {koaRequestInformationExtractor} from '../request-extractors/koa'; /** * The koaErrorHandler should be placed at the beginning of the koa middleware @@ -41,17 +42,17 @@ export function koaErrorHandler(client: RequestHandler, config: Configuration) { * @param {Function} next - the result of the request handlers to yield * @returns {Undefined} does not return anything */ - return function*(this: {request: Request; response: Response;}, next: Function) { + return function*( + this: {request: Request; response: Response;}, next: Function) { const svc = config.getServiceContext(); try { yield next; } catch (err) { const em = new ErrorMessage() - .consumeRequestInformation( - koaRequestInformationExtractor(this.request, this.response) - ) - .setServiceContext(svc.service, svc.version); + .consumeRequestInformation(koaRequestInformationExtractor( + this.request, this.response)) + .setServiceContext(svc.service, svc.version); populateErrorMessage(err, em); diff --git a/handwritten/error-reporting/src/interfaces/manual.ts b/handwritten/error-reporting/src/interfaces/manual.ts index 5089b950659..4840e199412 100644 --- a/handwritten/error-reporting/src/interfaces/manual.ts +++ b/handwritten/error-reporting/src/interfaces/manual.ts @@ -22,13 +22,14 @@ const isFunction = (is as {} as {fn: Function}).fn; import {ErrorMessage} from '../classes/error-message'; import {manualRequestInformationExtractor} from '../request-extractors/manual'; import {populateErrorMessage} from '../populate-error-message'; -import { RequestHandler } from '../google-apis/auth-client'; -import { Configuration } from '../configuration'; -import { Logger } from '@google-cloud/common'; +import {RequestHandler} from '../google-apis/auth-client'; +import {Configuration} from '../configuration'; +import {Logger} from '@google-cloud/common'; import * as http from 'http'; import {Request} from '../request-extractors/manual'; -export type Callback = (err: Error|null, response: http.ServerResponse|null, body: any) => void; +export type Callback = + (err: Error|null, response: http.ServerResponse|null, body: {}) => void; /** * The handler setup function serves to produce a bound instance of the @@ -44,7 +45,8 @@ export type Callback = (err: Error|null, response: http.ServerResponse|null, bod * @returns {reportManualError} - a bound version of the reportManualError * function */ -export function handlerSetup(client: RequestHandler, config: Configuration, logger: Logger) { +export function handlerSetup( + client: RequestHandler, config: Configuration, logger: Logger) { /** * The interface for manually reporting errors to the Google Error API in * application code. @@ -62,7 +64,9 @@ export function handlerSetup(client: RequestHandler, config: Configuration, logg * @returns {ErrorMessage} - returns the error message created through with * the parameters given. */ - function reportManualError(err: {}, request?: Request, additionalMessage?: string|{}, callback?: Callback|{}|string) { + function reportManualError( + err: {}, request?: Request, additionalMessage?: string|{}, + callback?: Callback|{}|string) { let em; if (isString(request)) { // no request given @@ -85,34 +89,33 @@ export function handlerSetup(client: RequestHandler, config: Configuration, logg // The API expects the error to contain a stack trace. Thus we // append the stack trace of the point where the error was constructed. // See the `message-builder.js` file for more details. - if ((err as any)._autoGeneratedStackTrace) { - err.setMessage(err.message + '\n' + (err as any)._autoGeneratedStackTrace); + const stackErr = err as ErrorMessage & {_autoGeneratedStackTrace: string}; + if (stackErr._autoGeneratedStackTrace) { + err.setMessage(err.message + '\n' + stackErr._autoGeneratedStackTrace); // Delete the property so that if the ErrorMessage is reported a second // time, the stack trace is not appended a second time. Also, the API // will not accept the ErrorMessage if it has additional properties. - delete (err as any)._autoGeneratedStackTrace; + delete stackErr._autoGeneratedStackTrace; } else { logger.warn( - 'Encountered a manually constructed error with message "' + - err.message + - '" but without a construction site ' + + 'Encountered a manually constructed error with message "' + + err.message + '" but without a construction site ' + 'stack trace. This error might not be visible in the ' + - 'error reporting console.' - ); + 'error reporting console.'); } em = err; } else { em = new ErrorMessage(); em.setServiceContext( - config.getServiceContext().service, - config.getServiceContext().version - ); + config.getServiceContext().service, + config.getServiceContext().version); populateErrorMessage(err, em); } if (isObject(request)) { // TODO: Address this explicit cast - em.consumeRequestInformation(manualRequestInformationExtractor(request as Request)); + em.consumeRequestInformation( + manualRequestInformationExtractor(request as Request)); } if (isString(additionalMessage)) { diff --git a/handwritten/error-reporting/src/interfaces/message-builder.ts b/handwritten/error-reporting/src/interfaces/message-builder.ts index d77e4037b48..2988fafc52d 100644 --- a/handwritten/error-reporting/src/interfaces/message-builder.ts +++ b/handwritten/error-reporting/src/interfaces/message-builder.ts @@ -14,9 +14,9 @@ * limitations under the License. */ -import {ErrorMessage} from '../classes/error-message'; import {buildStackTrace} from '../build-stack-trace'; -import { Configuration } from '../configuration'; +import {ErrorMessage} from '../classes/error-message'; +import {Configuration} from '../configuration'; /** * The handler setup function serves to produce a bound instance of the @@ -48,10 +48,9 @@ export function handlerSetup(config: Configuration) { const cleanedStack = buildStackTrace(''); const em = new ErrorMessage().setServiceContext( - config.getServiceContext().service, - config.getServiceContext().version - ); - (em as any)._autoGeneratedStackTrace = cleanedStack; + config.getServiceContext().service, config.getServiceContext().version); + (em as {} as {_autoGeneratedStackTrace: string})._autoGeneratedStackTrace = + cleanedStack; return em; } diff --git a/handwritten/error-reporting/src/interfaces/restify.ts b/handwritten/error-reporting/src/interfaces/restify.ts index 4882acdb5a7..582eb8b7988 100644 --- a/handwritten/error-reporting/src/interfaces/restify.ts +++ b/handwritten/error-reporting/src/interfaces/restify.ts @@ -20,8 +20,8 @@ const isFunction = is.function; import {ErrorMessage} from '../classes/error-message'; import * as expressRequestInformationExtractor from '../request-extractors/express'; import {populateErrorMessage} from '../populate-error-message'; -import { RequestHandler } from '../google-apis/auth-client'; -import { Configuration } from '../configuration'; +import {RequestHandler} from '../google-apis/auth-client'; +import {Configuration} from '../configuration'; import * as restify from 'restify'; import * as express from 'express'; @@ -39,7 +39,8 @@ import * as express from 'express'; * @param {ErrorMessage} - the error message instance container * @returns {Undefined} - does not return anything */ -function restifyErrorHandler(client: RequestHandler, config: Configuration, err: {}, em: ErrorMessage) { +function restifyErrorHandler( + client: RequestHandler, config: Configuration, err: {}, em: ErrorMessage) { const svc = config.getServiceContext(); em.setServiceContext(svc.service, svc.version); @@ -63,19 +64,19 @@ function restifyErrorHandler(client: RequestHandler, config: Configuration, err: * @param {Object} res - the restify response * @returns {Undefined} - does not return anything */ -function restifyRequestFinishHandler(client: RequestHandler, config: Configuration, req: restify.Request, res: restify.Response) { +function restifyRequestFinishHandler( + client: RequestHandler, config: Configuration, req: restify.Request, + res: restify.Response) { let em; // TODO: Address the fact that `_body` does not exist in `res` - if ( - (res as {} as {_body: {}})._body instanceof Error || - (res.statusCode > 309 && res.statusCode < 512) - ) { + if ((res as {} as {_body: {}})._body instanceof Error || + (res.statusCode > 309 && res.statusCode < 512)) { em = new ErrorMessage().consumeRequestInformation( - // TODO: Address the type conflict with `req` and `res` and the types - // expected for `expressRequestInformationExtractor` - expressRequestInformationExtractor.expressRequestInformationExtractor(req as {} as express.Request, res as {} as express.Response) - ); + // TODO: Address the type conflict with `req` and `res` and the types + // expected for `expressRequestInformationExtractor` + expressRequestInformationExtractor.expressRequestInformationExtractor( + req as {} as express.Request, res as {} as express.Response)); restifyErrorHandler(client, config, (res as {} as {_body: {}})._body, em); } @@ -99,17 +100,20 @@ function restifyRequestFinishHandler(client: RequestHandler, config: Configurati * downstream request handlers * @returns {Any} - the result of the next function */ -function restifyRequestHandler(client: RequestHandler, config: Configuration, req: restify.Request, res: restify.Response, next: Function) { +function restifyRequestHandler( + client: RequestHandler, config: Configuration, req: restify.Request, + res: restify.Response, next: Function) { // TODO: Address the fact that a cast is needed to use `listener` let listener = {}; if (isObject(res) && isFunction(res.on) && isFunction(res.removeListener)) { - listener = function() { + listener = () => { restifyRequestFinishHandler(client, config, req, res); - res.removeListener('finish', listener as {} as (...args: {}[]) => void); + res.removeListener( + 'finish', listener as {} as (...args: Array<{}>) => void); }; - res.on('finish', listener as {} as (...args: {}[]) => void); + res.on('finish', listener as {} as (...args: Array<{}>) => void); } return next(); @@ -132,11 +136,12 @@ function restifyRequestHandler(client: RequestHandler, config: Configuration, re * @param {Object} server - the restify server instance * @returns {Function} - the actual request error handler */ -function serverErrorHandler(client: RequestHandler, config: Configuration, server: restify.Server) { - server.on('uncaughtException', function(req, res, reqConfig, err) { +function serverErrorHandler( + client: RequestHandler, config: Configuration, server: restify.Server) { + server.on('uncaughtException', (req, res, reqConfig, err) => { const em = new ErrorMessage().consumeRequestInformation( - expressRequestInformationExtractor.expressRequestInformationExtractor(req, res) - ); + expressRequestInformationExtractor.expressRequestInformationExtractor( + req, res)); restifyErrorHandler(client, config, err, em); }); diff --git a/handwritten/error-reporting/src/logger.ts b/handwritten/error-reporting/src/logger.ts index ecffea67e0e..29378ab97a0 100644 --- a/handwritten/error-reporting/src/logger.ts +++ b/handwritten/error-reporting/src/logger.ts @@ -49,11 +49,9 @@ export function createLogger(initConfiguration: ConfigurationOptions) { if (has(process.env, 'GCLOUD_ERRORS_LOGLEVEL')) { // Cast env string as integer level = - logger.LEVELS[~~process.env.GCLOUD_ERRORS_LOGLEVEL!] || DEFAULT_LEVEL; + logger.LEVELS[~~process.env.GCLOUD_ERRORS_LOGLEVEL!] || DEFAULT_LEVEL; } else if ( - isObject(initConfiguration) && - has(initConfiguration, 'logLevel') - ) { + isObject(initConfiguration) && has(initConfiguration, 'logLevel')) { if (isString(initConfiguration.logLevel)) { // Cast string as integer level = logger.LEVELS[~~initConfiguration.logLevel!] || DEFAULT_LEVEL; @@ -61,10 +59,9 @@ export function createLogger(initConfiguration: ConfigurationOptions) { level = logger.LEVELS[initConfiguration.logLevel!] || DEFAULT_LEVEL; } else { throw new Error( - 'config.logLevel must be a number or decimal ' + - 'representation of a number in string form' - ); + 'config.logLevel must be a number or decimal ' + + 'representation of a number in string form'); } } - return logger({level: level, tag: packageJson.name}); + return logger({level, tag: packageJson.name}); } diff --git a/handwritten/error-reporting/src/populate-error-message.ts b/handwritten/error-reporting/src/populate-error-message.ts index 3829929f19e..f27d8aaf0ec 100644 --- a/handwritten/error-reporting/src/populate-error-message.ts +++ b/handwritten/error-reporting/src/populate-error-message.ts @@ -27,10 +27,7 @@ export interface PopulatedObject { filePath?: string; lineNumber?: number; functionName?: string; - serviceContext?: { - service?: string; - version?: string; - }; + serviceContext?: {service?: string; version?: string;}; } /** @@ -69,7 +66,8 @@ export function populateErrorMessage(ob: {}, em: ErrorMessage) { * error information marshaled into * @returns {Undefined} - does not return anything */ -function populateFromError(err: Error & PopulatedObject, errorMessage: ErrorMessage) { +function populateFromError( + err: Error&PopulatedObject, errorMessage: ErrorMessage) { errorMessage.setMessage(err.stack!); if (has(err, 'user')) { @@ -78,9 +76,7 @@ function populateFromError(err: Error & PopulatedObject, errorMessage: ErrorMess if (has(err, 'serviceContext') && isObject(err.serviceContext)) { errorMessage.setServiceContext( - err.serviceContext!.service!, - err.serviceContext!.version - ); + err.serviceContext!.service!, err.serviceContext!.version); } } @@ -133,8 +129,6 @@ function populateFromObject(ob: PopulatedObject, errorMessage: ErrorMessage) { if (has(ob, 'serviceContext') && isObject(ob.serviceContext)) { errorMessage.setServiceContext( - ob.serviceContext!.service!, - ob.serviceContext!.version - ); + ob.serviceContext!.service!, ob.serviceContext!.version); } } diff --git a/handwritten/error-reporting/src/request-extractors/express.ts b/handwritten/error-reporting/src/request-extractors/express.ts index 66031e7bd1e..084e82dec65 100644 --- a/handwritten/error-reporting/src/request-extractors/express.ts +++ b/handwritten/error-reporting/src/request-extractors/express.ts @@ -53,20 +53,20 @@ function extractRemoteAddressFromRequest(req: express.Request) { * @returns {RequestInformationContainer} - an object containing the request * information in a standardized format */ -export function expressRequestInformationExtractor(req: express.Request, res: express.Response) { +export function expressRequestInformationExtractor( + req: express.Request, res: express.Response) { const returnObject = new RequestInformationContainer(); if (!isObject(req) || !isFunction(req.header) || !isObject(res)) { return returnObject; } - returnObject - .setMethod(req.method) - .setUrl(req.url) - .setUserAgent(req.header('user-agent')) - .setReferrer(req.header('referrer')) - .setStatusCode(res.statusCode) - .setRemoteAddress(extractRemoteAddressFromRequest(req)); + returnObject.setMethod(req.method) + .setUrl(req.url) + .setUserAgent(req.header('user-agent')) + .setReferrer(req.header('referrer')) + .setStatusCode(res.statusCode) + .setRemoteAddress(extractRemoteAddressFromRequest(req)); return returnObject; } diff --git a/handwritten/error-reporting/src/request-extractors/hapi.ts b/handwritten/error-reporting/src/request-extractors/hapi.ts index 0e46ce9bed6..9ab1f4b762c 100644 --- a/handwritten/error-reporting/src/request-extractors/hapi.ts +++ b/handwritten/error-reporting/src/request-extractors/hapi.ts @@ -35,17 +35,12 @@ import * as hapi from 'hapi'; function attemptToExtractStatusCode(req: hapi.Request) { // TODO: Handle the cases where `req.response` and `req.response.output` // are `null` in this function - if ( - has(req, 'response') && - isObject(req.response) && - has(req.response, 'statusCode') - ) { + if (has(req, 'response') && isObject(req.response) && + has(req.response, 'statusCode')) { return req.response!.statusCode; } else if ( - has(req, 'response') && - isObject(req.response) && - isObject(req.response!.output) - ) { + has(req, 'response') && isObject(req.response) && + isObject(req.response!.output)) { return req.response!.output!.statusCode; } @@ -85,23 +80,19 @@ function extractRemoteAddressFromRequest(req: hapi.Request) { export function hapiRequestInformationExtractor(req: hapi.Request) { const returnObject = new RequestInformationContainer(); - if ( - !isObject(req) || - !isObject(req.headers) || - isFunction(req) || - isArray(req) - ) { + if (!isObject(req) || !isObject(req.headers) || isFunction(req) || + isArray(req)) { return returnObject; } returnObject - .setMethod(req.method) - // TODO: Address the type conflict that requires a cast to string - .setUrl(req.url as {} as string) - .setUserAgent(req.headers['user-agent']) - .setReferrer(req.headers.referrer) - .setStatusCode(attemptToExtractStatusCode(req)) - .setRemoteAddress(extractRemoteAddressFromRequest(req)); + .setMethod(req.method) + // TODO: Address the type conflict that requires a cast to string + .setUrl(req.url as {} as string) + .setUserAgent(req.headers['user-agent']) + .setReferrer(req.headers.referrer) + .setStatusCode(attemptToExtractStatusCode(req)) + .setRemoteAddress(extractRemoteAddressFromRequest(req)); return returnObject; } diff --git a/handwritten/error-reporting/src/request-extractors/koa.ts b/handwritten/error-reporting/src/request-extractors/koa.ts index 24633559e17..8caef8aa276 100644 --- a/handwritten/error-reporting/src/request-extractors/koa.ts +++ b/handwritten/error-reporting/src/request-extractors/koa.ts @@ -31,28 +31,21 @@ import * as koa from 'koa'; * @returns {RequestInformationContainer} - returns a request information * container instance that may be in its initial state */ -export function koaRequestInformationExtractor(req: koa.Request, res: koa.Response) { +export function koaRequestInformationExtractor( + req: koa.Request, res: koa.Response) { const returnObject = new RequestInformationContainer(); - if ( - !isObject(req) || - !isObject(res) || - isFunction(req) || - isFunction(res) || - isArray(req) || - isArray(res) || - !isObject(req.headers) - ) { + if (!isObject(req) || !isObject(res) || isFunction(req) || isFunction(res) || + isArray(req) || isArray(res) || !isObject(req.headers)) { return returnObject; } - returnObject - .setMethod(req.method) - .setUrl(req.url) - .setUserAgent(req.headers['user-agent']) - .setReferrer(req.headers.referrer) - .setStatusCode(res.status) - .setRemoteAddress(req.ip); + returnObject.setMethod(req.method) + .setUrl(req.url) + .setUserAgent(req.headers['user-agent']) + .setReferrer(req.headers.referrer) + .setStatusCode(res.status) + .setRemoteAddress(req.ip); return returnObject; } diff --git a/handwritten/error-reporting/system-test/error-reporting.js b/handwritten/error-reporting/system-test/error-reporting.js index b3875a6c8db..891a3015840 100644 --- a/handwritten/error-reporting/system-test/error-reporting.js +++ b/handwritten/error-reporting/system-test/error-reporting.js @@ -18,7 +18,8 @@ var assert = require('assert'); var nock = require('nock'); -var RequestHandler = require('../src/google-apis/auth-client.js').RequestHandler; +var RequestHandler = + require('../src/google-apis/auth-client.js').RequestHandler; var ErrorsApiTransport = require('../utils/errors-api-transport.js'); var ErrorMessage = require('../src/classes/error-message.js').ErrorMessage; var Configuration = require('../test/fixtures/configuration.js'); @@ -147,21 +148,16 @@ describe('Request/Response lifecycle mocking', function() { }); beforeEach(function() { - env - .setProjectId() - .setKeyFilename() - .setProduction(); - fakeService = nock( - 'https://clouderrorreporting.googleapis.com/v1beta1/projects/' + - process.env.GCLOUD_PROJECT - ) - .persist() - .post('/events:report'); + env.setProjectId().setKeyFilename().setProduction(); + fakeService = + nock( + 'https://clouderrorreporting.googleapis.com/v1beta1/projects/' + + process.env.GCLOUD_PROJECT) + .persist() + .post('/events:report'); logger = createLogger({logLevel: 5}); client = new RequestHandler( - new Configuration({ignoreEnvironmentCheck: true}, logger), - logger - ); + new Configuration({ignoreEnvironmentCheck: true}, logger), logger); }); afterEach(function() { @@ -199,41 +195,31 @@ describe('Request/Response lifecycle mocking', function() { }); }); - it( - 'Should provide the key as a query string on outgoing requests when ' + - 'using an API key', - function(done) { - env - .sterilizeProcess() - .setProjectId() - .setProduction(); - var key = env.apiKey; - var logger = createLogger({logLevel: 5}); - var client = new RequestHandler( - new Configuration( - {key: key, ignoreEnvironmentCheck: true}, - logger - ), - logger - ); - fakeService.query({key: key}).reply(200, function(uri) { - assert(uri.indexOf('key=' + key) > -1); - return {}; - }); - client.sendError(errorMessage, function() { - done(); - }); - } - ); - - it('Should still execute the request with a callback-less invocation', function( - done - ) { - fakeService.reply(200, function() { - done(); - }); - client.sendError(errorMessage); - }); + it('Should provide the key as a query string on outgoing requests when ' + + 'using an API key', + function(done) { + env.sterilizeProcess().setProjectId().setProduction(); + var key = env.apiKey; + var logger = createLogger({logLevel: 5}); + var client = new RequestHandler( + new Configuration({key: key, ignoreEnvironmentCheck: true}, logger), + logger); + fakeService.query({key: key}).reply(200, function(uri) { + assert(uri.indexOf('key=' + key) > -1); + return {}; + }); + client.sendError(errorMessage, function() { + done(); + }); + }); + + it('Should still execute the request with a callback-less invocation', + function(done) { + fakeService.reply(200, function() { + done(); + }); + client.sendError(errorMessage); + }); }); describe('Client creation', function() { @@ -243,115 +229,87 @@ describe('Client creation', function() { env.sterilizeProcess(); }); - it( - 'Should not throw on initialization when using only project id as a ' + - 'runtime argument', - function(done) { - env.sterilizeProcess().setKeyFilename(); - var logger = createLogger({logLevel: 5}); - var cfg = new Configuration( - { - projectId: env.injected().projectId, - ignoreEnvironmentCheck: true, - }, - logger - ); - this.timeout(10000); - assert.doesNotThrow(function() { - new RequestHandler(cfg, logger).sendError(errorMessage, function( - err, - response, - body - ) { - assert.strictEqual(err, null); - assert.strictEqual(response.statusCode, 200); - assert(isObject(body) && isEmpty(body)); - done(); - }); - }); - } - ); - - it( - 'Should not throw on initialization when using only project id as an ' + - 'env variable', - function(done) { - env - .sterilizeProcess() - .setProjectId() - .setKeyFilename(); - var logger = createLogger({logLevel: 5}); - var cfg = new Configuration({ignoreEnvironmentCheck: true}, logger); - this.timeout(10000); - assert.doesNotThrow(function() { - new RequestHandler(cfg, logger).sendError(errorMessage, function( - err, - response, - body - ) { - assert.strictEqual(err, null); - assert.strictEqual(response.statusCode, 200); - assert(isObject(body) && isEmpty(body)); - done(); - }); - }); - } - ); - - it( - 'Should not throw on initialization when using only project number as ' + - 'a runtime argument', - function(done) { - env.sterilizeProcess().setKeyFilename(); - var logger = createLogger({logLevel: 5}); - var cfg = new Configuration( - { - projectId: parseInt(env.injected().projectNumber), - ignoreEnvironmentCheck: true, - }, - logger - ); - this.timeout(10000); - assert.doesNotThrow(function() { - new RequestHandler(cfg, logger).sendError(errorMessage, function( - err, - response, - body - ) { - assert.strictEqual(err, null); - assert.strictEqual(response.statusCode, 200); - assert(isObject(body) && isEmpty(body)); - done(); - }); - }); - } - ); - - it( - 'Should not throw on initialization when using only project number as ' + - 'an env variable', - function(done) { - env - .sterilizeProcess() - .setKeyFilename() - .setProjectNumber(); - var logger = createLogger({logLevel: 5}); - var cfg = new Configuration({ignoreEnvironmentCheck: true}, logger); - this.timeout(10000); - assert.doesNotThrow(function() { - new RequestHandler(cfg, logger).sendError(errorMessage, function( - err, - response, - body - ) { - assert.strictEqual(err, null); - assert.strictEqual(response.statusCode, 200); - assert(isObject(body) && isEmpty(body)); - done(); - }); - }); - } - ); + it('Should not throw on initialization when using only project id as a ' + + 'runtime argument', + function(done) { + env.sterilizeProcess().setKeyFilename(); + var logger = createLogger({logLevel: 5}); + var cfg = new Configuration( + { + projectId: env.injected().projectId, + ignoreEnvironmentCheck: true, + }, + logger); + this.timeout(10000); + assert.doesNotThrow(function() { + new RequestHandler(cfg, logger) + .sendError(errorMessage, function(err, response, body) { + assert.strictEqual(err, null); + assert.strictEqual(response.statusCode, 200); + assert(isObject(body) && isEmpty(body)); + done(); + }); + }); + }); + + it('Should not throw on initialization when using only project id as an ' + + 'env variable', + function(done) { + env.sterilizeProcess().setProjectId().setKeyFilename(); + var logger = createLogger({logLevel: 5}); + var cfg = new Configuration({ignoreEnvironmentCheck: true}, logger); + this.timeout(10000); + assert.doesNotThrow(function() { + new RequestHandler(cfg, logger) + .sendError(errorMessage, function(err, response, body) { + assert.strictEqual(err, null); + assert.strictEqual(response.statusCode, 200); + assert(isObject(body) && isEmpty(body)); + done(); + }); + }); + }); + + it('Should not throw on initialization when using only project number as ' + + 'a runtime argument', + function(done) { + env.sterilizeProcess().setKeyFilename(); + var logger = createLogger({logLevel: 5}); + var cfg = new Configuration( + { + projectId: parseInt(env.injected().projectNumber), + ignoreEnvironmentCheck: true, + }, + logger); + this.timeout(10000); + assert.doesNotThrow(function() { + new RequestHandler(cfg, logger) + .sendError(errorMessage, function(err, response, body) { + assert.strictEqual(err, null); + assert.strictEqual(response.statusCode, 200); + assert(isObject(body) && isEmpty(body)); + done(); + }); + }); + }); + + it('Should not throw on initialization when using only project number as ' + + 'an env variable', + function(done) { + env.sterilizeProcess().setKeyFilename().setProjectNumber(); + var logger = createLogger({logLevel: 5}); + var cfg = new Configuration({ignoreEnvironmentCheck: true}, logger); + this.timeout(10000); + assert.doesNotThrow(function() { + new RequestHandler(cfg, logger) + .sendError(errorMessage, function(err, response, body) { + assert.strictEqual(err, null); + assert.strictEqual(response.statusCode, 200); + assert(isObject(body) && isEmpty(body)); + done(); + }); + }); + }); }); describe('Expected Behavior', function() { @@ -369,37 +327,30 @@ describe('Expected Behavior', function() { env.sterilizeProcess(); }); - it('Should callback with an error with a configuration to not report errors', function( - done - ) { - env - .sterilizeProcess() - .setKeyFilename() - .setProjectId(); - process.env.NODE_ENV = 'null'; - var logger = createLogger({logLevel: 5}); - var client = new RequestHandler( - new Configuration(undefined, logger), - logger - ); - client.sendError({}, function(err, response) { - assert(err instanceof Error); - assert.strictEqual(err.message, ERROR_STRING); - assert.strictEqual(response, null); - done(); - }); - }); + it('Should callback with an error with a configuration to not report errors', + function(done) { + env.sterilizeProcess().setKeyFilename().setProjectId(); + process.env.NODE_ENV = 'null'; + var logger = createLogger({logLevel: 5}); + var client = + new RequestHandler(new Configuration(undefined, logger), logger); + client.sendError({}, function(err, response) { + assert(err instanceof Error); + assert.strictEqual(err.message, ERROR_STRING); + assert.strictEqual(response, null); + done(); + }); + }); it('Should succeed in its request given a valid project id', function(done) { env.sterilizeProcess(); var logger = createLogger({logLevel: 5}); var cfg = new Configuration( - { - projectId: env.injected().projectId, - ignoreEnvironmentCheck: true, - }, - logger - ); + { + projectId: env.injected().projectId, + ignoreEnvironmentCheck: true, + }, + logger); var client = new RequestHandler(cfg, logger); client.sendError(em, function(err, response, body) { @@ -411,69 +362,65 @@ describe('Expected Behavior', function() { }); }); - it('Should succeed in its request given a valid project number', function( - done - ) { - env.sterilizeProcess(); - var logger = createLogger({logLevel: 5}); - var cfg = new Configuration( - { - projectId: parseInt(env.injected().projectNumber), - ignoreEnvironmentCheck: true, - }, - logger - ); - var client = new RequestHandler(cfg, logger); - client.sendError(em, function(err, response, body) { - assert.strictEqual(err, null); - assert(isObject(body)); - assert(isEmpty(body)); - assert.strictEqual(response.statusCode, 200); - done(); - }); - }); + it('Should succeed in its request given a valid project number', + function(done) { + env.sterilizeProcess(); + var logger = createLogger({logLevel: 5}); + var cfg = new Configuration( + { + projectId: parseInt(env.injected().projectNumber), + ignoreEnvironmentCheck: true, + }, + logger); + var client = new RequestHandler(cfg, logger); + client.sendError(em, function(err, response, body) { + assert.strictEqual(err, null); + assert(isObject(body)); + assert(isEmpty(body)); + assert.strictEqual(response.statusCode, 200); + done(); + }); + }); }); describe('Error Reporting API', function() { - [ - { - name: 'when a valid API key is given', - getKey: () => env.apiKey, - message: 'Message cannot be empty.', - statusCode: 400 - }, - { - name: 'when an empty API key is given', - getKey: () => '', - message: 'The request is missing a valid API key.', - // TODO: Determine if 403 is the correct expected status code. - // Prior to the code migration, the expected status code - // was 400. However, the service is now reporting 403. - statusCode: 403 - }, - { - name: 'when an invalid API key is given', - getKey: () => env.apiKey.slice(1) + env.apiKey[0], - message: 'API key not valid. Please pass a valid API key.', - statusCode: 400 - }, + [{ + name: 'when a valid API key is given', + getKey: () => env.apiKey, + message: 'Message cannot be empty.', + statusCode: 400 + }, + { + name: 'when an empty API key is given', + getKey: () => '', + message: 'The request is missing a valid API key.', + // TODO: Determine if 403 is the correct expected status code. + // Prior to the code migration, the expected status code + // was 400. However, the service is now reporting 403. + statusCode: 403 + }, + { + name: 'when an invalid API key is given', + getKey: () => env.apiKey.slice(1) + env.apiKey[0], + message: 'API key not valid. Please pass a valid API key.', + statusCode: 400 + }, ].forEach(function(testCase) { it(`should return an expected message ${testCase.name}`, function(done) { this.timeout(30000); const API = 'https://clouderrorreporting.googleapis.com/v1beta1'; const key = testCase.getKey(); request.post( - { - url: `${API}/projects/${env.projectId}/events:report?key=${key}`, - json: {}, - }, - (err, response, body) => { - assert.ok(!err && body.error); - assert.strictEqual(response.statusCode, testCase.statusCode); - assert.strictEqual(body.error.message, testCase.message); - done(); - } - ); + { + url: `${API}/projects/${env.projectId}/events:report?key=${key}`, + json: {}, + }, + (err, response, body) => { + assert.ok(!err && body.error); + assert.strictEqual(response.statusCode, testCase.statusCode); + assert.strictEqual(body.error.message, testCase.message); + done(); + }); }); }); }); @@ -513,15 +460,14 @@ describe('error-reporting', function() { function reinitialize(extraConfig) { process.removeAllListeners('unhandledRejection'); var config = Object.assign( - { - ignoreEnvironmentCheck: true, - serviceContext: { - service: SERVICE, - version: VERSION, + { + ignoreEnvironmentCheck: true, + serviceContext: { + service: SERVICE, + version: VERSION, + }, }, - }, - extraConfig || {} - ); + extraConfig || {}); const Errors = require('../src/index.js').Errors; errors = new Errors(config); transport = new ErrorsApiTransport(errors._config, errors._logger); @@ -549,13 +495,11 @@ describe('error-reporting', function() { var matchedErrors = groups.filter(function(errItem) { return ( - errItem && - errItem.representative && - errItem.representative.serviceContext && - errItem.representative.serviceContext.service === SERVICE && - errItem.representative.serviceContext.version === VERSION && - messageTest(errItem.representative.message) - ); + errItem && errItem.representative && + errItem.representative.serviceContext && + errItem.representative.serviceContext.service === SERVICE && + errItem.representative.serviceContext.version === VERSION && + messageTest(errItem.representative.message)); }); cb(matchedErrors); @@ -607,102 +551,64 @@ describe('error-reporting', function() { // As such, each test is set to fail due to a timeout only if sufficiently // more than TIMEOUT ms has elapsed to avoid test fragility. - it('Should correctly publish an error that is an Error object', function verifyErrors( - done - ) { - this.timeout(TIMEOUT * 2); - var errorId = buildName('with-error-constructor'); - var errOb = (function expectedTopOfStack() { - return new Error(errorId); - })(); - verifyReporting( - errOb, - function(message) { - return message.startsWith('Error: ' + errorId + '\n'); - }, - TIMEOUT, - done - ); - }); + it('Should correctly publish an error that is an Error object', + function verifyErrors(done) { + this.timeout(TIMEOUT * 2); + var errorId = buildName('with-error-constructor'); + var errOb = (function expectedTopOfStack() { + return new Error(errorId); + })(); + verifyReporting(errOb, function(message) { + return message.startsWith('Error: ' + errorId + '\n'); + }, TIMEOUT, done); + }); it('Should correctly publish an error that is a string', function(done) { this.timeout(TIMEOUT * 2); var errorId = buildName('with-string'); - verifyReporting( - errorId, - function(message) { - return message.startsWith(errorId + '\n'); - }, - TIMEOUT, - done - ); + verifyReporting(errorId, function(message) { + return message.startsWith(errorId + '\n'); + }, TIMEOUT, done); }); it('Should correctly publish an error that is undefined', function(done) { this.timeout(TIMEOUT * 2); - verifyReporting( - undefined, - function(message) { - return message.startsWith('undefined\n'); - }, - TIMEOUT, - done - ); + verifyReporting(undefined, function(message) { + return message.startsWith('undefined\n'); + }, TIMEOUT, done); }); it('Should correctly publish an error that is null', function(done) { this.timeout(TIMEOUT * 2); - verifyReporting( - null, - function(message) { - return message.startsWith('null\n'); - }, - TIMEOUT, - done - ); + verifyReporting(null, function(message) { + return message.startsWith('null\n'); + }, TIMEOUT, done); }); - it('Should correctly publish an error that is a plain object', function( - done - ) { - this.timeout(TIMEOUT * 2); - verifyReporting( - {someKey: 'someValue'}, - function(message) { - return message.startsWith('[object Object]\n'); - }, - TIMEOUT, - done - ); - }); + it('Should correctly publish an error that is a plain object', + function(done) { + this.timeout(TIMEOUT * 2); + verifyReporting({someKey: 'someValue'}, function(message) { + return message.startsWith('[object Object]\n'); + }, TIMEOUT, done); + }); it('Should correctly publish an error that is a number', function(done) { this.timeout(TIMEOUT * 2); var num = new Date().getTime(); - verifyReporting( - num, - function(message) { - return message.startsWith('' + num + '\n'); - }, - TIMEOUT, - done - ); + verifyReporting(num, function(message) { + return message.startsWith('' + num + '\n'); + }, TIMEOUT, done); }); - it('Should correctly publish an error that is of an unknown type', function( - done - ) { - this.timeout(TIMEOUT * 2); - var bool = true; - verifyReporting( - bool, - function(message) { - return message.startsWith('true\n'); - }, - TIMEOUT, - done - ); - }); + it('Should correctly publish an error that is of an unknown type', + function(done) { + this.timeout(TIMEOUT * 2); + var bool = true; + verifyReporting(bool, function(message) { + return message.startsWith('true\n'); + }, TIMEOUT, done); + }); it('Should correctly publish errors using an error builder', function(done) { this.timeout(TIMEOUT * 2); @@ -719,22 +625,16 @@ describe('error-reporting', function() { })(); })(); (function callingSiteFunction() { - verifyReporting( - errOb, - function(message) { - // Verify that the stack trace of the constructed error - // uses the stack trace at the point where the error was constructed - // and not the stack trace at the point where the `report` method - // was called. - return ( + verifyReporting(errOb, function(message) { + // Verify that the stack trace of the constructed error + // uses the stack trace at the point where the error was constructed + // and not the stack trace at the point where the `report` method + // was called. + return ( message.startsWith(errorId) && message.indexOf('callingSiteFunction') === -1 && - message.indexOf('definitionSiteFunction') !== -1 - ); - }, - TIMEOUT, - done - ); + message.indexOf('definitionSiteFunction') !== -1); + }, TIMEOUT, done); })(); }); @@ -751,20 +651,14 @@ describe('error-reporting', function() { })(); var rejectText = 'Error: ' + rejectValue; setImmediate(function() { - var expected = - 'UnhandledPromiseRejectionWarning: Unhandled ' + - 'promise rejection: ' + - rejectText + - '. This rejection has been reported to the ' + - 'Google Cloud Platform error-reporting console.'; + var expected = 'UnhandledPromiseRejectionWarning: Unhandled ' + + 'promise rejection: ' + rejectText + + '. This rejection has been reported to the ' + + 'Google Cloud Platform error-reporting console.'; assert.notStrictEqual(logOutput.indexOf(expected), -1); - verifyServerResponse( - function(message) { - return message.startsWith(rejectText); - }, - TIMEOUT, - done - ); + verifyServerResponse(function(message) { + return message.startsWith(rejectText); + }, TIMEOUT, done); }); }); @@ -776,26 +670,23 @@ describe('error-reporting', function() { Promise.reject(rejectValue); })(); setImmediate(function() { - var notExpected = - 'UnhandledPromiseRejectionWarning: Unhandled ' + - 'promise rejection: ' + - rejectValue + - '. This rejection has been reported to the error-reporting console.'; + var notExpected = 'UnhandledPromiseRejectionWarning: Unhandled ' + + 'promise rejection: ' + rejectValue + + '. This rejection has been reported to the error-reporting console.'; assert.strictEqual(logOutput.indexOf(notExpected), -1); // Get all groups that that start with the rejection value and hence all // of the groups corresponding to the above rejection (Since the // buildName() creates a string unique enough to single out only the // above rejection.) and verify that there are no such groups reported. verifyAllGroups( - function(message) { - return message.startsWith(rejectValue); - }, - TIMEOUT, - function(matchedErrors) { - assert.strictEqual(matchedErrors.length, 0); - done(); - } - ); + function(message) { + return message.startsWith(rejectValue); + }, + TIMEOUT, + function(matchedErrors) { + assert.strictEqual(matchedErrors.length, 0); + done(); + }); }); }); }); diff --git a/handwritten/error-reporting/test/test-servers/express_scaffold_server.js b/handwritten/error-reporting/test/test-servers/express_scaffold_server.js index 3fc56198212..82a6962107b 100644 --- a/handwritten/error-reporting/test/test-servers/express_scaffold_server.js +++ b/handwritten/error-reporting/test/test-servers/express_scaffold_server.js @@ -77,26 +77,23 @@ function throwUncaughtError() { function reportManualError() { log('Reporting a manual error..'); errorHandler.report( - new Error('This is a manually reported error'), - null, - null, - function(err) { - if (err) { - log(WARNING_HEADER); - log('Got an error in sending error information to the API'); - log(err); - log(EXCLAMATION_LN); - } else { - log(EXCLAMATION_LN); - log('Successfully sent error information to the API'); - log(EXCLAMATION_LN); - } + new Error('This is a manually reported error'), null, null, + function(err) { + if (err) { + log(WARNING_HEADER); + log('Got an error in sending error information to the API'); + log(err); + log(EXCLAMATION_LN); + } else { + log(EXCLAMATION_LN); + log('Successfully sent error information to the API'); + log(EXCLAMATION_LN); + } - if (process.env.THROW_ON_STARTUP) { - throwUncaughtError(); - } - } - ); + if (process.env.THROW_ON_STARTUP) { + throwUncaughtError(); + } + }); } log('reporting a manual error first'); errorHandler.report(new Error('This is a test'), err => { diff --git a/handwritten/error-reporting/test/test-servers/koa_scaffold_server.js b/handwritten/error-reporting/test/test-servers/koa_scaffold_server.js index 00ba9404801..9b28bb5068d 100644 --- a/handwritten/error-reporting/test/test-servers/koa_scaffold_server.js +++ b/handwritten/error-reporting/test/test-servers/koa_scaffold_server.js @@ -26,7 +26,7 @@ var app = koa(); app.use(errorHandler.koa); app.use(function*(next) { - //This will set status and message + // This will set status and message this.throw('Error Message', 500); yield next; }); diff --git a/handwritten/error-reporting/test/test-servers/manual_scaffold_server.js b/handwritten/error-reporting/test/test-servers/manual_scaffold_server.js index 454da38c871..8d9fd299018 100644 --- a/handwritten/error-reporting/test/test-servers/manual_scaffold_server.js +++ b/handwritten/error-reporting/test/test-servers/manual_scaffold_server.js @@ -19,10 +19,5 @@ const errors = require('../../src/index.js')(); errors.report('Sample test string', err => { // eslint-disable-next-line no-console console.log( - 'Callback from report:\n', - '\tError: ', - err, - '\n', - '\tResponse Body:' - ); + 'Callback from report:\n', '\tError: ', err, '\n', '\tResponse Body:'); }); diff --git a/handwritten/error-reporting/test/unit/classes/error-message.js b/handwritten/error-reporting/test/unit/classes/error-message.js index 33eb86167c3..b03a47f7f13 100644 --- a/handwritten/error-reporting/test/unit/classes/error-message.js +++ b/handwritten/error-reporting/test/unit/classes/error-message.js @@ -17,7 +17,8 @@ // jshint ignore: start var assert = require('assert'); -var ErrorMessage = require('../../../src/classes/error-message.js').ErrorMessage; +var ErrorMessage = + require('../../../src/classes/error-message.js').ErrorMessage; describe('Instantiating a new ErrorMessage', function() { var em; @@ -74,113 +75,97 @@ describe('Fuzzing against setServiceContext', function() { it('Should set the value for service context', function() { em.setServiceContext(AFFIRMATIVE_TEST_VALUE, AFFIRMATIVE_TEST_VALUE); assert.deepEqual( - em.serviceContext, - { - service: AFFIRMATIVE_TEST_VALUE, - version: AFFIRMATIVE_TEST_VALUE, - }, - [ - 'In the affirmative case the value should be settable to a valid string', - 'and by setting this value this should mutate the instance', - ].join(' ') - ); + em.serviceContext, { + service: AFFIRMATIVE_TEST_VALUE, + version: AFFIRMATIVE_TEST_VALUE, + }, + [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ')); }); it('Should set the default values', function() { em.setServiceContext(DEFAULT_TEST_VALUE, DEFAULT_TEST_VALUE); assert.deepEqual( - em.serviceContext, - { - service: DEFAULT_TEST_VALUE, - version: DEFAULT_TEST_VALUE, - }, - [ - 'In resetting to default valid values the instance should reflect the', - 'value update', - ].join(' ') - ); + em.serviceContext, { + service: DEFAULT_TEST_VALUE, + version: DEFAULT_TEST_VALUE, + }, + [ + 'In resetting to default valid values the instance should reflect the', + 'value update', + ].join(' ')); }); it('Should still set version with affirmative value', function() { em.setServiceContext(null, AFFIRMATIVE_TEST_VALUE); assert.deepEqual( - em.serviceContext, - { - service: DEFAULT_SERVICE_VALUE, - version: AFFIRMATIVE_TEST_VALUE, - }, - [ - 'Providing only a valid value to the second argument of', - 'setServiceContext should set the service property as an empty string', - 'but set the version property to the affirmative value.', - ].join(' ') - ); + em.serviceContext, { + service: DEFAULT_SERVICE_VALUE, + version: AFFIRMATIVE_TEST_VALUE, + }, + [ + 'Providing only a valid value to the second argument of', + 'setServiceContext should set the service property as an empty string', + 'but set the version property to the affirmative value.', + ].join(' ')); }); it('Should still set service with affirmative value', function() { em.setServiceContext(AFFIRMATIVE_TEST_VALUE, null); assert.deepEqual( - em.serviceContext, - { - service: AFFIRMATIVE_TEST_VALUE, - version: DEFAULT_VERSION_VALUE, - }, - [ - 'Providing only a valid value to the first argument of', - 'setServiceContext should set the version property as an empty string', - 'but set the service property to the affirmative value.', - ].join(' ') - ); + em.serviceContext, { + service: AFFIRMATIVE_TEST_VALUE, + version: DEFAULT_VERSION_VALUE, + }, + [ + 'Providing only a valid value to the first argument of', + 'setServiceContext should set the version property as an empty string', + 'but set the service property to the affirmative value.', + ].join(' ')); }); it('Should set default values on both', function() { em.setServiceContext(null, null); assert.deepEqual( - em.serviceContext, - { - service: DEFAULT_SERVICE_VALUE, - version: DEFAULT_VERSION_VALUE, - }, - [ - 'Providing null as the value to both arguments should set both', - 'properties as empty strings.', - ].join(' ') - ); + em.serviceContext, { + service: DEFAULT_SERVICE_VALUE, + version: DEFAULT_VERSION_VALUE, + }, + [ + 'Providing null as the value to both arguments should set both', + 'properties as empty strings.', + ].join(' ')); }); it('Should set default values on both', function() { em.setServiceContext(2, 1.3); assert.deepEqual( - em.serviceContext, - { - service: DEFAULT_SERVICE_VALUE, - version: DEFAULT_VERSION_VALUE, - }, - [ - 'Providing numbers as the value to both arguments should set both', - 'properties as empty strings.', - ].join(' ') - ); + em.serviceContext, { + service: DEFAULT_SERVICE_VALUE, + version: DEFAULT_VERSION_VALUE, + }, + [ + 'Providing numbers as the value to both arguments should set both', + 'properties as empty strings.', + ].join(' ')); }); it('Should set as default', function() { em.setServiceContext({test: 'true'}, []); assert.deepEqual( - em.serviceContext, - { - service: DEFAULT_SERVICE_VALUE, - version: DEFAULT_VERSION_VALUE, - }, - [ - 'Providing arrays or objects as the value to both arguments', - 'should set both properties as empty strings.', - ].join(' ') - ); + em.serviceContext, { + service: DEFAULT_SERVICE_VALUE, + version: DEFAULT_VERSION_VALUE, + }, + [ + 'Providing arrays or objects as the value to both arguments', + 'should set both properties as empty strings.', + ].join(' ')); }); it('Should set as default', function() { em.setServiceContext(); assert.deepEqual( - em.serviceContext, - { - service: DEFAULT_SERVICE_VALUE, - version: DEFAULT_VERSION_VALUE, - }, - 'Providing no arguments should set both properties as empty strings' - ); + em.serviceContext, { + service: DEFAULT_SERVICE_VALUE, + version: DEFAULT_VERSION_VALUE, + }, + 'Providing no arguments should set both properties as empty strings'); }); }); @@ -194,23 +179,17 @@ describe('Fuzzing against setMessage', function() { it('Should set the message', function() { em.setMessage(AFFIRMATIVE_TEST_VALUE); - assert( - em.message === AFFIRMATIVE_TEST_VALUE, - [ - 'In the affirmative case the value should be settable to a valid string', - 'and by setting this value this should mutate the instance', - ].join(' ') - ); + assert(em.message === AFFIRMATIVE_TEST_VALUE, [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ')); }); it('Should default', function() { em.setMessage(); - assert( - em.message === NEGATIVE_TEST_VALUE, - [ - 'By providing no argument (undefined) to setMessage the property', - 'message should be set to an empty string on the instance', - ].join(' ') - ); + assert(em.message === NEGATIVE_TEST_VALUE, [ + 'By providing no argument (undefined) to setMessage the property', + 'message should be set to an empty string on the instance', + ].join(' ')); }); }); @@ -223,23 +202,17 @@ describe('Fuzzing against setHttpMethod', function() { }); it('Should set the method', function() { em.setHttpMethod(AFFIRMATIVE_TEST_VALUE); - assert( - em.context.httpRequest.method === AFFIRMATIVE_TEST_VALUE, - [ - 'In the affirmative case the value should be settable to a valid string', - 'and by setting this value this should mutate the instance', - ].join(' ') - ); + assert(em.context.httpRequest.method === AFFIRMATIVE_TEST_VALUE, [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ')); }); it('Should default', function() { em.setHttpMethod(); - assert( - em.context.httpRequest.method === NEGATIVE_TEST_VALUE, - [ - 'By providing no argument (undefined) to setHttpMethod the property', - 'message should be set to an empty string on the instance', - ].join(' ') - ); + assert(em.context.httpRequest.method === NEGATIVE_TEST_VALUE, [ + 'By providing no argument (undefined) to setHttpMethod the property', + 'message should be set to an empty string on the instance', + ].join(' ')); }); }); @@ -252,23 +225,17 @@ describe('Fuzzing against setUrl', function() { }); it('Should set url', function() { em.setUrl(AFFIRMATIVE_TEST_VALUE); - assert( - em.context.httpRequest.url === AFFIRMATIVE_TEST_VALUE, - [ - 'In the affirmative case the value should be settable to a valid string', - 'and by setting this value this should mutate the instance', - ].join(' ') - ); + assert(em.context.httpRequest.url === AFFIRMATIVE_TEST_VALUE, [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ')); }); it('Should default', function() { em.setUrl(); - assert( - em.context.httpRequest.url === NEGATIVE_TEST_VALUE, - [ - 'By providing no argument (undefined) to setUrl the property', - 'message should be set to an empty string on the instance', - ].join(' ') - ); + assert(em.context.httpRequest.url === NEGATIVE_TEST_VALUE, [ + 'By providing no argument (undefined) to setUrl the property', + 'message should be set to an empty string on the instance', + ].join(' ')); }); }); @@ -281,23 +248,17 @@ describe('Fuzzing against setUserAgent', function() { }); it('Should set userAgent', function() { em.setUserAgent(AFFIRMATIVE_TEST_VALUE); - assert( - em.context.httpRequest.userAgent === AFFIRMATIVE_TEST_VALUE, - [ - 'In the affirmative case the value should be settable to a valid string', - 'and by setting this value this should mutate the instance', - ].join(' ') - ); + assert(em.context.httpRequest.userAgent === AFFIRMATIVE_TEST_VALUE, [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ')); }); it('Should default', function() { em.setUserAgent(); - assert( - em.context.httpRequest.userAgent === NEGATIVE_TEST_VALUE, - [ - 'By providing no argument (undefined) to setUserAgent the property', - 'message should be set to an empty string on the instance', - ].join(' ') - ); + assert(em.context.httpRequest.userAgent === NEGATIVE_TEST_VALUE, [ + 'By providing no argument (undefined) to setUserAgent the property', + 'message should be set to an empty string on the instance', + ].join(' ')); }); }); @@ -310,23 +271,17 @@ describe('Fuzzing against setReferrer', function() { }); it('Should set referrer', function() { em.setReferrer(AFFIRMATIVE_TEST_VALUE); - assert( - em.context.httpRequest.referrer === AFFIRMATIVE_TEST_VALUE, - [ - 'In the affirmative case the value should be settable to a valid string', - 'and by setting this value this should mutate the instance', - ].join(' ') - ); + assert(em.context.httpRequest.referrer === AFFIRMATIVE_TEST_VALUE, [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ')); }); it('Should default', function() { em.setReferrer(); - assert( - em.context.httpRequest.referrer === NEGATIVE_TEST_VALUE, - [ - 'By providing no argument (undefined) to setReferrer the property', - 'message should be set to an empty string on the instance', - ].join(' ') - ); + assert(em.context.httpRequest.referrer === NEGATIVE_TEST_VALUE, [ + 'By providing no argument (undefined) to setReferrer the property', + 'message should be set to an empty string on the instance', + ].join(' ')); }); }); @@ -339,23 +294,17 @@ describe('Fuzzing against setResponseStatusCode', function() { }); it('Should set responseStatusCode', function() { em.setResponseStatusCode(AFFIRMATIVE_TEST_VALUE); - assert( - em.context.httpRequest.responseStatusCode === AFFIRMATIVE_TEST_VALUE, - [ - 'In the affirmative case the value should be settable to a valid string', - 'and by setting this value this should mutate the instance', - ].join(' ') - ); + assert(em.context.httpRequest.responseStatusCode === AFFIRMATIVE_TEST_VALUE, [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ')); }); it('Should default', function() { em.setResponseStatusCode(); - assert( - em.context.httpRequest.responseStatusCode === NEGATIVE_TEST_VALUE, - [ - 'By providing no argument (undefined) to setResponseStatusCode the property', - 'message should be set to an empty string on the instance', - ].join(' ') - ); + assert(em.context.httpRequest.responseStatusCode === NEGATIVE_TEST_VALUE, [ + 'By providing no argument (undefined) to setResponseStatusCode the property', + 'message should be set to an empty string on the instance', + ].join(' ')); }); }); @@ -368,23 +317,17 @@ describe('Fuzzing against setRemoteIp', function() { }); it('Should set remoteIp', function() { em.setRemoteIp(AFFIRMATIVE_TEST_VALUE); - assert( - em.context.httpRequest.remoteIp === AFFIRMATIVE_TEST_VALUE, - [ - 'In the affirmative case the value should be settable to a valid string', - 'and by setting this value this should mutate the instance', - ].join(' ') - ); + assert(em.context.httpRequest.remoteIp === AFFIRMATIVE_TEST_VALUE, [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ')); }); it('Should default', function() { em.setRemoteIp(); - assert( - em.context.httpRequest.remoteIp === NEGATIVE_TEST_VALUE, - [ - 'By providing no argument (undefined) to setRemoteIp the property', - 'message should be set to an empty string on the instance', - ].join(' ') - ); + assert(em.context.httpRequest.remoteIp === NEGATIVE_TEST_VALUE, [ + 'By providing no argument (undefined) to setRemoteIp the property', + 'message should be set to an empty string on the instance', + ].join(' ')); }); }); @@ -397,23 +340,17 @@ describe('Fuzzing against setUser', function() { }); it('Should set user', function() { em.setUser(AFFIRMATIVE_TEST_VALUE); - assert( - em.context.user === AFFIRMATIVE_TEST_VALUE, - [ - 'In the affirmative case the value should be settable to a valid string', - 'and by setting this value this should mutate the instance', - ].join(' ') - ); + assert(em.context.user === AFFIRMATIVE_TEST_VALUE, [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ')); }); it('Should default', function() { em.setUser(); - assert( - em.context.user === NEGATIVE_TEST_VALUE, - [ - 'By providing no argument (undefined) to setUser the property', - 'user should be set to an empty string on the instance', - ].join(' ') - ); + assert(em.context.user === NEGATIVE_TEST_VALUE, [ + 'By providing no argument (undefined) to setUser the property', + 'user should be set to an empty string on the instance', + ].join(' ')); }); }); @@ -426,23 +363,17 @@ describe('Fuzzing against setFilePath', function() { }); it('Should set filePath', function() { em.setFilePath(AFFIRMATIVE_TEST_VALUE); - assert( - em.context.reportLocation.filePath === AFFIRMATIVE_TEST_VALUE, - [ - 'In the affirmative case the value should be settable to a valid string', - 'and by setting this value this should mutate the instance', - ].join(' ') - ); + assert(em.context.reportLocation.filePath === AFFIRMATIVE_TEST_VALUE, [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ')); }); it('Should default', function() { em.setFilePath(); - assert( - em.context.reportLocation.filePath === NEGATIVE_TEST_VALUE, - [ - 'By providing no argument (undefined) to setFilePath the property', - 'filePath should be set to an empty string on the instance', - ].join(' ') - ); + assert(em.context.reportLocation.filePath === NEGATIVE_TEST_VALUE, [ + 'By providing no argument (undefined) to setFilePath the property', + 'filePath should be set to an empty string on the instance', + ].join(' ')); }); }); @@ -455,23 +386,17 @@ describe('Fuzzing against setLineNumber', function() { }); it('Should set lineNumber', function() { em.setLineNumber(AFFIRMATIVE_TEST_VALUE); - assert( - em.context.reportLocation.lineNumber === AFFIRMATIVE_TEST_VALUE, - [ - 'In the affirmative case the value should be settable to a valid string', - 'and by setting this value this should mutate the instance', - ].join(' ') - ); + assert(em.context.reportLocation.lineNumber === AFFIRMATIVE_TEST_VALUE, [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ')); }); it('Should default', function() { em.setLineNumber(); - assert( - em.context.reportLocation.lineNumber === NEGATIVE_TEST_VALUE, - [ - 'By providing no argument (undefined) to setLineNumber the property', - 'lineNumber should be set to an empty string on the instance', - ].join(' ') - ); + assert(em.context.reportLocation.lineNumber === NEGATIVE_TEST_VALUE, [ + 'By providing no argument (undefined) to setLineNumber the property', + 'lineNumber should be set to an empty string on the instance', + ].join(' ')); }); }); @@ -484,23 +409,17 @@ describe('Fuzzing against setFunctionName', function() { }); it('Should set functionName', function() { em.setFunctionName(AFFIRMATIVE_TEST_VALUE); - assert( - em.context.reportLocation.functionName === AFFIRMATIVE_TEST_VALUE, - [ - 'In the affirmative case the value should be settable to a valid string', - 'and by setting this value this should mutate the instance', - ].join(' ') - ); + assert(em.context.reportLocation.functionName === AFFIRMATIVE_TEST_VALUE, [ + 'In the affirmative case the value should be settable to a valid string', + 'and by setting this value this should mutate the instance', + ].join(' ')); }); it('Should default', function() { em.setFunctionName(); - assert( - em.context.reportLocation.functionName === NEGATIVE_TEST_VALUE, - [ - 'By providing no argument (undefined) to setFunctionName the property', - 'functionName should be set to an empty string on the instance', - ].join(' ') - ); + assert(em.context.reportLocation.functionName === NEGATIVE_TEST_VALUE, [ + 'By providing no argument (undefined) to setFunctionName the property', + 'functionName should be set to an empty string on the instance', + ].join(' ')); }); }); @@ -529,154 +448,97 @@ describe('Fuzzing against consumeRequestInformation', function() { }; it('Should consume the stubbed request object', function() { em.consumeRequestInformation(AFFIRMATIVE_TEST_VALUE); - assert( - em.context.httpRequest.method === A_VALID_STRING, - [ - 'The error messages method, given a valid string, should be', - 'set to that value', - ].join(' ') - ); - assert( - em.context.httpRequest.url === A_VALID_STRING, - [ - 'The error messages url, given a valid string, should be', - 'set to that value', - ].join(' ') - ); - assert( - em.context.httpRequest.userAgent === A_VALID_STRING, - [ - 'The error messages userAgent, given a valid string, should be', - 'set to that value', - ].join(' ') - ); - assert( - em.context.httpRequest.referrer === A_VALID_STRING, - [ - 'The error messages referrer, given a valid string, should be', - 'set to that value', - ].join(' ') - ); - assert( - em.context.httpRequest.responseStatusCode === A_VALID_NUMBER, - [ - 'The error messages responseStatusCode, given a valid number, should be', - 'set to that value', - ].join(' ') - ); - assert( - em.context.httpRequest.remoteIp === A_VALID_STRING, - [ - 'The error messages remoteAddress, given a valid string, should be', - 'set to that value', - ].join(' ') - ); + assert(em.context.httpRequest.method === A_VALID_STRING, [ + 'The error messages method, given a valid string, should be', + 'set to that value', + ].join(' ')); + assert(em.context.httpRequest.url === A_VALID_STRING, [ + 'The error messages url, given a valid string, should be', + 'set to that value', + ].join(' ')); + assert(em.context.httpRequest.userAgent === A_VALID_STRING, [ + 'The error messages userAgent, given a valid string, should be', + 'set to that value', + ].join(' ')); + assert(em.context.httpRequest.referrer === A_VALID_STRING, [ + 'The error messages referrer, given a valid string, should be', + 'set to that value', + ].join(' ')); + assert(em.context.httpRequest.responseStatusCode === A_VALID_NUMBER, [ + 'The error messages responseStatusCode, given a valid number, should be', + 'set to that value', + ].join(' ')); + assert(em.context.httpRequest.remoteIp === A_VALID_STRING, [ + 'The error messages remoteAddress, given a valid string, should be', + 'set to that value', + ].join(' ')); }); it('Should default when consuming a malformed request object', function() { em.consumeRequestInformation(null); - assert( - em.context.httpRequest.method === A_VALID_STRING, - [ - 'The error messages method, given an invalid type a the top-level', - 'should remain untouched', - ].join(' ') - ); - assert( - em.context.httpRequest.url === A_VALID_STRING, - [ - 'The error messages url, given an invalid type a the top-level', - 'should remain untouched', - ].join(' ') - ); - assert( - em.context.httpRequest.userAgent === A_VALID_STRING, - [ - 'The error messages userAgent, given an invalid type a the top-level', - 'should remain untouched', - ].join(' ') - ); - assert( - em.context.httpRequest.referrer === A_VALID_STRING, - [ - 'The error messages referrer, given an invalid type a the top-level', - 'should remain untouched', - ].join(' ') - ); - assert( - em.context.httpRequest.responseStatusCode === A_VALID_NUMBER, - [ - 'The error messages responseStatusCode, given an invalid type a the top-level', - 'should remain untouched', - ].join(' ') - ); - assert( - em.context.httpRequest.remoteIp === A_VALID_STRING, - [ - 'The error messages remoteAddress, given an invalid type a the top-level', - 'should remain untouched', - ].join(' ') - ); + assert(em.context.httpRequest.method === A_VALID_STRING, [ + 'The error messages method, given an invalid type a the top-level', + 'should remain untouched', + ].join(' ')); + assert(em.context.httpRequest.url === A_VALID_STRING, [ + 'The error messages url, given an invalid type a the top-level', + 'should remain untouched', + ].join(' ')); + assert(em.context.httpRequest.userAgent === A_VALID_STRING, [ + 'The error messages userAgent, given an invalid type a the top-level', + 'should remain untouched', + ].join(' ')); + assert(em.context.httpRequest.referrer === A_VALID_STRING, [ + 'The error messages referrer, given an invalid type a the top-level', + 'should remain untouched', + ].join(' ')); + assert(em.context.httpRequest.responseStatusCode === A_VALID_NUMBER, [ + 'The error messages responseStatusCode, given an invalid type a the top-level', + 'should remain untouched', + ].join(' ')); + assert(em.context.httpRequest.remoteIp === A_VALID_STRING, [ + 'The error messages remoteAddress, given an invalid type a the top-level', + 'should remain untouched', + ].join(' ')); }); it('Should default when consuming mistyped response object properties', function() { em.consumeRequestInformation(NEGATIVE_TEST_VALUE); - assert( - em.context.httpRequest.method === NEGATIVE_STRING_CASE, - [ - 'The error messages method, given an invalid input should default to', - 'the negative value', - ].join(' ') - ); - assert( - em.context.httpRequest.url === NEGATIVE_STRING_CASE, - [ - 'The error messages url, given an invalid input should default to', - 'the negative value', - ].join(' ') - ); - assert( - em.context.httpRequest.userAgent === NEGATIVE_STRING_CASE, - [ - 'The error messages userAgent, ggiven an invalid input should default to', - 'the negative value', - ].join(' ') - ); - assert( - em.context.httpRequest.referrer === NEGATIVE_STRING_CASE, - [ - 'The error messages referrer, given an invalid input should default to', - 'the negative value', - ].join(' ') - ); - assert( - em.context.httpRequest.responseStatusCode === NEGATIVE_NUMBER_CASE, - [ - 'The error messages responseStatusCode, given an invalid input should default to', - 'the negative value', - ].join(' ') - ); - assert( - em.context.httpRequest.remoteIp === NEGATIVE_STRING_CASE, - [ - 'The error messages remoteAddress, given an invalid input should default to', - 'the negative value', - ].join(' ') - ); - }); - it('Should return the instance on calling consumeRequestInformation', function() { - assert( - em.consumeRequestInformation(AFFIRMATIVE_TEST_VALUE) instanceof - ErrorMessage, - [ - 'Calling consumeRequestInformation with valid input should return', - 'the ErrorMessage instance', - ].join(' ') - ); - assert( - em.consumeRequestInformation() instanceof ErrorMessage, - [ - 'Calling consumeRequestInformation with invalid input should return', - 'the ErrorMessage instance', - ].join(' ') - ); - }); + assert(em.context.httpRequest.method === NEGATIVE_STRING_CASE, [ + 'The error messages method, given an invalid input should default to', + 'the negative value', + ].join(' ')); + assert(em.context.httpRequest.url === NEGATIVE_STRING_CASE, [ + 'The error messages url, given an invalid input should default to', + 'the negative value', + ].join(' ')); + assert(em.context.httpRequest.userAgent === NEGATIVE_STRING_CASE, [ + 'The error messages userAgent, ggiven an invalid input should default to', + 'the negative value', + ].join(' ')); + assert(em.context.httpRequest.referrer === NEGATIVE_STRING_CASE, [ + 'The error messages referrer, given an invalid input should default to', + 'the negative value', + ].join(' ')); + assert(em.context.httpRequest.responseStatusCode === NEGATIVE_NUMBER_CASE, [ + 'The error messages responseStatusCode, given an invalid input should default to', + 'the negative value', + ].join(' ')); + assert(em.context.httpRequest.remoteIp === NEGATIVE_STRING_CASE, [ + 'The error messages remoteAddress, given an invalid input should default to', + 'the negative value', + ].join(' ')); + }); + it('Should return the instance on calling consumeRequestInformation', + function() { + assert( + em.consumeRequestInformation(AFFIRMATIVE_TEST_VALUE) instanceof + ErrorMessage, + [ + 'Calling consumeRequestInformation with valid input should return', + 'the ErrorMessage instance', + ].join(' ')); + assert(em.consumeRequestInformation() instanceof ErrorMessage, [ + 'Calling consumeRequestInformation with invalid input should return', + 'the ErrorMessage instance', + ].join(' ')); + }); }); diff --git a/handwritten/error-reporting/test/unit/classes/request-information-container.js b/handwritten/error-reporting/test/unit/classes/request-information-container.js index 4389fc8155c..eb57561d41e 100644 --- a/handwritten/error-reporting/test/unit/classes/request-information-container.js +++ b/handwritten/error-reporting/test/unit/classes/request-information-container.js @@ -17,7 +17,8 @@ 'use strict'; var assert = require('assert'); -var RequestInformationContainer = require('../../../src/classes/request-information-container.js'); +var RequestInformationContainer = + require('../../../src/classes/request-information-container.js'); var Fuzzer = require('../../../utils/fuzzer.js'); describe('RequestInformationContainer', function() { diff --git a/handwritten/error-reporting/test/unit/configuration.js b/handwritten/error-reporting/test/unit/configuration.js index 134f406e317..39f32ef7b78 100644 --- a/handwritten/error-reporting/test/unit/configuration.js +++ b/handwritten/error-reporting/test/unit/configuration.js @@ -47,10 +47,7 @@ function restoreEnv() { process.env.GAE_MODULE_VERSION = env.GAE_MODULE_VERSION; } function createDeadMetadataService() { - return nock(METADATA_URL) - .get('/project-id') - .times(1) - .reply(500); + return nock(METADATA_URL).get('/project-id').times(1).reply(500); } describe('Configuration class', function() { @@ -66,13 +63,10 @@ describe('Configuration class', function() { describe('fuzzing the constructor', function() { it('Should return default values', function() { var c; - f.fuzzFunctionForTypes( - function(givenConfigFuzz) { - c = new Configuration(givenConfigFuzz, logger); - assert.deepEqual(c._givenConfiguration, {}); - }, - ['object'] - ); + f.fuzzFunctionForTypes(function(givenConfigFuzz) { + c = new Configuration(givenConfigFuzz, logger); + assert.deepEqual(c._givenConfiguration, {}); + }, ['object']); }); }); describe('valid config and default values', function() { @@ -155,11 +149,12 @@ describe('Configuration class', function() { new Configuration({reportUnhandledRejections: 'INVALID'}, logger); }); }); - it('Should not throw given an empty object for serviceContext', function() { - assert.doesNotThrow(function() { - new Configuration({serviceContext: {}}, logger); - }); - }); + it('Should not throw given an empty object for serviceContext', + function() { + assert.doesNotThrow(function() { + new Configuration({serviceContext: {}}, logger); + }); + }); }); }); }); @@ -301,12 +296,11 @@ describe('Configuration class', function() { var key = '1337-api-key'; before(function() { c = new Configuration( - { - key: key, - projectId: projectId, - }, - logger - ); + { + key: key, + projectId: projectId, + }, + logger); }); it('Should assign', function() { assert.strictEqual(c.getKey(), key); @@ -322,9 +316,7 @@ describe('Configuration class', function() { }); it('Should assign', function() { assert.strictEqual( - c.getReportUnhandledRejections(), - reportRejections - ); + c.getReportUnhandledRejections(), reportRejections); }); }); }); diff --git a/handwritten/error-reporting/test/unit/google-apis/auth-client.js b/handwritten/error-reporting/test/unit/google-apis/auth-client.js index ea257f37c43..f5cec3d1175 100644 --- a/handwritten/error-reporting/test/unit/google-apis/auth-client.js +++ b/handwritten/error-reporting/test/unit/google-apis/auth-client.js @@ -33,10 +33,10 @@ function verifyReportedMessage(config1, errToReturn, expectedLogs) { } var RequestHandler = proxyquire('../../../src/google-apis/auth-client.js', { - '@google-cloud/common': { - Service: ServiceStub, - }, - }).RequestHandler; + '@google-cloud/common': { + Service: ServiceStub, + }, + }).RequestHandler; var logs = {}; var logger = { @@ -73,17 +73,16 @@ describe('RequestHandler', function() { var config = {ignoreEnvironmentCheck: true}; var message = 'Test Error'; verifyReportedMessage(config, new Error(message), { - error: - 'Unable to find credential information on instance. This ' + - 'library will be unable to communicate with the Stackdriver API to ' + - 'save errors. Message: ' + - message, + error: 'Unable to find credential information on instance. This ' + + 'library will be unable to communicate with the Stackdriver API to ' + + 'save errors. Message: ' + message, }); }); - it('should not issue a warning if it can communicate with the API', function() { - var config = {ignoreEnvironmentCheck: true}; - verifyReportedMessage(config, null, {}); - verifyReportedMessage(config, undefined, {}); - }); + it('should not issue a warning if it can communicate with the API', + function() { + var config = {ignoreEnvironmentCheck: true}; + verifyReportedMessage(config, null, {}); + verifyReportedMessage(config, undefined, {}); + }); }); diff --git a/handwritten/error-reporting/test/unit/interfaces/express.js b/handwritten/error-reporting/test/unit/interfaces/express.js index 06ad0de5be6..4e723a6541e 100644 --- a/handwritten/error-reporting/test/unit/interfaces/express.js +++ b/handwritten/error-reporting/test/unit/interfaces/express.js @@ -18,8 +18,10 @@ var assert = require('assert'); var merge = require('lodash.merge'); -var expressInterface = require('../../../src/interfaces/express.js').makeExpressHandler; -var ErrorMessage = require('../../../src/classes/error-message.js').ErrorMessage; +var expressInterface = + require('../../../src/interfaces/express.js').makeExpressHandler; +var ErrorMessage = + require('../../../src/classes/error-message.js').ErrorMessage; var Fuzzer = require('../../../utils/fuzzer.js'); var Configuration = require('../../fixtures/configuration.js'); var createLogger = require('../../../src/logger.js').createLogger; @@ -38,14 +40,13 @@ describe('expressInterface', function() { }); describe('Intended behaviour', function() { var stubbedConfig = new Configuration( - { - serviceContext: { - service: 'a_test_service', - version: 'a_version', + { + serviceContext: { + service: 'a_test_service', + version: 'a_version', + }, }, - }, - createLogger({logLevel: 4}) - ); + createLogger({logLevel: 4})); stubbedConfig.lacksCredentials = function() { return false; }; @@ -59,17 +60,14 @@ describe('expressInterface', function() { it('Should return the error message', function() { var res = validBoundHandler(testError, null, null, null); assert.deepEqual( - res, - merge( - new ErrorMessage() - .setMessage(testError.stack) - .setServiceContext( - stubbedConfig._serviceContext.service, - stubbedConfig._serviceContext.version - ), - {eventTime: res.eventTime} - ) - ); + res, + merge( + new ErrorMessage() + .setMessage(testError.stack) + .setServiceContext( + stubbedConfig._serviceContext.service, + stubbedConfig._serviceContext.version), + {eventTime: res.eventTime})); }); describe('Calling back to express builtins', function() { it('Should callback to next', function(done) { diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.js b/handwritten/error-reporting/test/unit/interfaces/hapi.js index 0bc1c663240..d90ae889453 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.js +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.js @@ -22,7 +22,8 @@ var isFunction = is.fn; var isObject = is.object; var assert = require('assert'); var hapiInterface = require('../../../src/interfaces/hapi.js').makeHapiPlugin; -var ErrorMessage = require('../../../src/classes/error-message.js').ErrorMessage; +var ErrorMessage = + require('../../../src/classes/error-message.js').ErrorMessage; var Fuzzer = require('../../../utils/fuzzer.js'); var EventEmitter = require('events').EventEmitter; var Configuration = require('../../fixtures/configuration.js'); @@ -53,22 +54,22 @@ describe('Hapi interface', function() { it('plugin should have a register function property', function() { assert(has(plugin, 'register') && isFunction(plugin.register)); }); - it("the plugin's register property should have an attributes property", function() { - assert( - has(plugin.register, 'attributes') && - isObject(plugin.register.attributes) - ); - }); - it("the plugin's attribute property should have a name property", function() { - assert(has(plugin.register.attributes, 'name')); - assert.strictEqual( - plugin.register.attributes.name, - '@google-cloud/error-reporting' - ); - }); - it("the plugin's attribute property should have a version property", function() { - assert(has(plugin.register.attributes, 'version')); - }); + it('the plugin\'s register property should have an attributes property', + function() { + assert( + has(plugin.register, 'attributes') && + isObject(plugin.register.attributes)); + }); + it('the plugin\'s attribute property should have a name property', + function() { + assert(has(plugin.register.attributes, 'name')); + assert.strictEqual( + plugin.register.attributes.name, '@google-cloud/error-reporting'); + }); + it('the plugin\'s attribute property should have a version property', + function() { + assert(has(plugin.register.attributes, 'version')); + }); }); describe('hapiRegisterFunction behaviour', function() { var fakeServer; @@ -79,9 +80,8 @@ describe('Hapi interface', function() { var fakeClient = { sendError: function(errMsg) { assert( - errMsg instanceof ErrorMessage, - 'should be an instance of Error message' - ); + errMsg instanceof ErrorMessage, + 'should be an instance of Error message'); }, }; var plugin = hapiInterface(fakeClient, { @@ -123,37 +123,31 @@ describe('Hapi interface', function() { afterEach(function() { fakeServer.removeAllListeners(); }); - it('Should call continue when a boom is emitted if reply is an object', function( - done - ) { - plugin.register(fakeServer, null, function() {}); - fakeServer.emit( - EVENT, - {response: {isBoom: true}}, - { - continue: function() { - // The continue function should be called - done(); - }, - } - ); - }); - it('Should call continue when a boom is emitted if reply is a function', function( - done - ) { - // Manually testing has shown that in actual usage the `reply` object - // provided to listeners of the `onPreResponse` event can be a function - // that has a `continue` property that is a function. - // If `reply.continue()` is not invoked in this situation, the Hapi - // app will become unresponsive. - plugin.register(fakeServer, null, function() {}); - var reply = function() {}; - reply.continue = function() { - // The continue function should be called - done(); - }; - fakeServer.emit(EVENT, {response: {isBoom: true}}, reply); - }); + it('Should call continue when a boom is emitted if reply is an object', + function(done) { + plugin.register(fakeServer, null, function() {}); + fakeServer.emit(EVENT, {response: {isBoom: true}}, { + continue: function() { + // The continue function should be called + done(); + }, + }); + }); + it('Should call continue when a boom is emitted if reply is a function', + function(done) { + // Manually testing has shown that in actual usage the `reply` object + // provided to listeners of the `onPreResponse` event can be a function + // that has a `continue` property that is a function. + // If `reply.continue()` is not invoked in this situation, the Hapi + // app will become unresponsive. + plugin.register(fakeServer, null, function() {}); + var reply = function() {}; + reply.continue = function() { + // The continue function should be called + done(); + }; + fakeServer.emit(EVENT, {response: {isBoom: true}}, reply); + }); it('Should call sendError when a boom is received', function(done) { var fakeClient = { sendError: function(err) { @@ -171,10 +165,7 @@ describe('Hapi interface', function() { done(); }); fakeServer.emit( - EVENT, - {response: {isBoom: true}}, - {continue: function() {}} - ); + EVENT, {response: {isBoom: true}}, {continue: function() {}}); }); }); }); diff --git a/handwritten/error-reporting/test/unit/interfaces/manual.js b/handwritten/error-reporting/test/unit/interfaces/manual.js index 6e4cd45fb6d..b7a24e4ddef 100644 --- a/handwritten/error-reporting/test/unit/interfaces/manual.js +++ b/handwritten/error-reporting/test/unit/interfaces/manual.js @@ -23,7 +23,8 @@ var config = new Configuration({}); config.lacksCredentials = function() { return false; }; -var ErrorMessage = require('../../../src/classes/error-message.js').ErrorMessage; +var ErrorMessage = + require('../../../src/classes/error-message.js').ErrorMessage; // var nock = require('nock'); describe('Manual handler', function() { @@ -47,12 +48,11 @@ describe('Manual handler', function() { // tests do not have construction site information to verify that if // that information is not available, the user is issued a warning. assert.strictEqual( - message, - 'Encountered a manually constructed error ' + - 'with message "builder test" but without a construction site stack ' + - 'trace. This error might not be visible in the error reporting ' + - 'console.' - ); + message, + 'Encountered a manually constructed error ' + + 'with message "builder test" but without a construction site stack ' + + 'trace. This error might not be visible in the error reporting ' + + 'console.'); }, }); describe('Report invocation behaviour', function() { @@ -91,10 +91,7 @@ describe('Manual handler', function() { done(); }); assert.strictEqual( - r.message, - 'wrench', - 'additional message should replace' - ); + r.message, 'wrench', 'additional message should replace'); }); it('Should allow a full array of optional arguments', function(done) { var r = report('donkey', {method: 'FETCH'}, 'cart', function() { @@ -113,32 +110,22 @@ describe('Manual handler', function() { done(); }); assert( - r.message.match(/ticky/) && !r.message.match(/TACKEY/), - 'original message should be preserved' - ); + r.message.match(/ticky/) && !r.message.match(/TACKEY/), + 'original message should be preserved'); assert.strictEqual(r.context.httpRequest.method, 'TACKEY'); }); it('Should ignore arguments', function(done) { - var r = report( - 'hockey', - function() { - done(); - }, - 'field' - ); + var r = report('hockey', function() { + done(); + }, 'field'); assert( - r.message.match('hockey') && !r.message.match('field'), - 'string after callback should be ignored' - ); + r.message.match('hockey') && !r.message.match('field'), + 'string after callback should be ignored'); }); it('Should ignore arguments', function(done) { - var r = report( - 'passkey', - function() { - done(); - }, - {method: 'HONK'} - ); + var r = report('passkey', function() { + done(); + }, {method: 'HONK'}); assert.notEqual(r.context.httpRequest.method, 'HONK'); }); it('Should allow null arguments as placeholders', function(done) { @@ -164,9 +151,8 @@ describe('Manual handler', function() { done(); }); assert( - r.message.match(/Mickey/) && !r.message.match(/SNIFF/), - 'string error should propagate' - ); + r.message.match(/Mickey/) && !r.message.match(/SNIFF/), + 'string error should propagate'); assert.strictEqual(r.context.httpRequest.method, 'SNIFF'); }); }); @@ -176,43 +162,32 @@ describe('Manual handler', function() { var msg = 'builder test'; var r = report(new ErrorMessage().setMessage(msg)); assert( - r.message.startsWith(msg), - 'string message should propagate from error message inst' - ); + r.message.startsWith(msg), + 'string message should propagate from error message inst'); }); it('Should accept builder and request as arguments', function() { var msg = 'builder test'; var oldReq = {method: 'GET'}; var newReq = {method: 'POST'}; var r = report( - new ErrorMessage().setMessage(msg).consumeRequestInformation(oldReq), - newReq - ); + new ErrorMessage().setMessage(msg).consumeRequestInformation(oldReq), + newReq); assert( - r.message.startsWith(msg), - 'string message should propagate from error message inst' - ); - assert.strictEqual( - r.context.httpRequest.method, - newReq.method, - [ - 'request argument supplied at report invocation should propagte and', - 'if supplied, should overwrite any prexisting data in the field.', - ].join('\n') - ); + r.message.startsWith(msg), + 'string message should propagate from error message inst'); + assert.strictEqual(r.context.httpRequest.method, newReq.method, [ + 'request argument supplied at report invocation should propagte and', + 'if supplied, should overwrite any prexisting data in the field.', + ].join('\n')); }); it('Should accept message and additional message params as', function() { var oldMsg = 'builder test'; var newMsg = 'analysis'; var r = report(new ErrorMessage().setMessage(oldMsg), newMsg); - assert.strictEqual( - r.message, - newMsg, - [ - 'message supplied at report invocation should propagte and, if', - 'supplied, should overwrite any prexisting data in the message field.', - ].join('\n') - ); + assert.strictEqual(r.message, newMsg, [ + 'message supplied at report invocation should propagte and, if', + 'supplied, should overwrite any prexisting data in the message field.', + ].join('\n')); }); it('Should accept message and callback function', function(done) { var oldMsg = 'builder test'; diff --git a/handwritten/error-reporting/test/unit/interfaces/restify.js b/handwritten/error-reporting/test/unit/interfaces/restify.js index f5e1cd9d9a8..481a1238373 100644 --- a/handwritten/error-reporting/test/unit/interfaces/restify.js +++ b/handwritten/error-reporting/test/unit/interfaces/restify.js @@ -18,7 +18,8 @@ var EventEmitter = require('events').EventEmitter; var assert = require('assert'); -var restifyInterface = require('../../../src/interfaces/restify.js').handlerSetup; +var restifyInterface = + require('../../../src/interfaces/restify.js').handlerSetup; // node v0.12 compatibility if (!EventEmitter.prototype.listenerCount) { @@ -38,19 +39,15 @@ describe('restifyInterface', function() { it('Should attach one listener after instantiation', function() { var ee = new EventEmitter(); assert.strictEqual( - ee.listenerCount(UNCAUGHT_EVENT), - 0, - 'Listeners on event should be zero' - ); + ee.listenerCount(UNCAUGHT_EVENT), 0, + 'Listeners on event should be zero'); // return the bound function which the user will actually interface with var errorHandlerInstance = restifyInterface(null, null); // execute the handler the user will use with the stubbed server instance errorHandlerInstance(ee); assert.strictEqual( - ee.listenerCount(UNCAUGHT_EVENT), - 1, - 'Listeners on event should now be one' - ); + ee.listenerCount(UNCAUGHT_EVENT), 1, + 'Listeners on event should now be one'); }); }); describe('Request handler lifecycle events', function() { diff --git a/handwritten/error-reporting/test/unit/logger.js b/handwritten/error-reporting/test/unit/logger.js index 3d07f1604f0..466158d0903 100644 --- a/handwritten/error-reporting/test/unit/logger.js +++ b/handwritten/error-reporting/test/unit/logger.js @@ -37,15 +37,13 @@ describe('logger', function() { }); it('Should not throw given logLevel as a number', function() { assert.doesNotThrow( - createLogger.bind(null, {logLevel: 3}), - createLogger({logLevel: 3}) - ); + createLogger.bind(null, {logLevel: 3}), + createLogger({logLevel: 3})); }); it('Should not throw given logLevel as a string', function() { assert.doesNotThrow( - createLogger.bind(null, {logLevel: '3'}), - createLogger({logLevel: 3}) - ); + createLogger.bind(null, {logLevel: '3'}), + createLogger({logLevel: 3})); }); it('Should not throw given an env variable to use', function() { process.env.GCLOUD_ERRORS_LOGLEVEL = 4; @@ -80,17 +78,13 @@ describe('logger', function() { var logger = createLogger(); logger.warn('test warning message'); assert.strictEqual( - text, - 'WARN:@google-cloud/error-reporting: test warning message' - ); + text, 'WARN:@google-cloud/error-reporting: test warning message'); }); it('Should print ERROR logs by default', function() { var logger = createLogger(); logger.error('test error message'); assert.strictEqual( - text, - 'ERROR:@google-cloud/error-reporting: test error message' - ); + text, 'ERROR:@google-cloud/error-reporting: test error message'); }); }); }); diff --git a/handwritten/error-reporting/test/unit/populate-error-message.js b/handwritten/error-reporting/test/unit/populate-error-message.js index 14979a1de8b..0164fe54de3 100644 --- a/handwritten/error-reporting/test/unit/populate-error-message.js +++ b/handwritten/error-reporting/test/unit/populate-error-message.js @@ -19,7 +19,8 @@ var assert = require('assert'); var ErrorMessage = require('../../src/classes/error-message.js').ErrorMessage; -var populateErrorMessage = require('../../src/populate-error-message.js').populateErrorMessage; +var populateErrorMessage = + require('../../src/populate-error-message.js').populateErrorMessage; var TEST_USER_INVALID = 12; var TEST_MESSAGE = 'This is a test'; @@ -72,226 +73,202 @@ describe('populate-error-message', function() { it('Should not throw given an object of invalid form', function() { assert.doesNotThrow( - populateErrorMessage.bind(null, adversarialObjectInput, em) - ); + populateErrorMessage.bind(null, adversarialObjectInput, em)); assert.doesNotThrow( - populateErrorMessage.bind(null, adversarialObjectInputTwo, em) - ); + populateErrorMessage.bind(null, adversarialObjectInputTwo, em)); }); - it('Message Field: Should set the message as the stack given an Error', function() { - var err = new Error(TEST_MESSAGE); - populateErrorMessage(err, em); - assert.deepEqual( - em.message, - err.stack, - 'Given a valid message the ' + - 'error message should absorb the error stack as the message' - ); - }); - - it('Message Field: Should set the field given valid input given an object', function() { - var err = {}; - var MESSAGE = 'test'; - err = {message: MESSAGE}; - populateErrorMessage(err, em); - assert.strictEqual(em.message, MESSAGE); - }); - - it( - 'Message Field: Should default the field given lack-of input given ' + - 'an object', - function() { - var err = {}; - populateErrorMessage(err, em); - assert(em.message.startsWith('[object Object]')); - } - ); - - it('User Field: Should set the field given valid input given an Error', function() { - var err = new Error(); - var TEST_USER_VALID = 'TEST_USER'; - err.user = TEST_USER_VALID; - populateErrorMessage(err, em); - assert.strictEqual(em.context.user, TEST_USER_VALID); - }); - - it('User Field: Should default the field given invalid input given an Error', function() { - var err = new Error(); - err.user = TEST_USER_INVALID; - populateErrorMessage(err, em); - assert.strictEqual(em.context.user, ''); - }); - - it('User Field: Should set the field given valid input given an object', function() { - var err = {}; - var USER = 'test'; - err.user = USER; - populateErrorMessage(err, em); - assert.strictEqual(em.context.user, USER); - }); - - it( - 'User Field: Should default the field given lack-of input given an ' + - 'object', - function() { - var err = {}; - populateErrorMessage(err, em); - assert.strictEqual(em.context.user, ''); - } - ); - - it( - 'ServiceContext Field: Should set the field given valid input given ' + - 'an Error', - function() { - var err = new Error(); - var TEST_SERVICE_VALID = {service: 'test', version: 'test'}; - err.serviceContext = TEST_SERVICE_VALID; - populateErrorMessage(err, em); - assert.deepEqual(err.serviceContext, TEST_SERVICE_VALID); - } - ); - - it( - 'ServiceContext Field: Should default the field given invalid input ' + - 'given an Error', - function() { - var err = new Error(); - var TEST_SERVICE_INVALID = 12; - err.serviceContext = TEST_SERVICE_INVALID; - populateErrorMessage(err, em); - assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); - } - ); - - it( - 'ServiceContext Field: Should default the field if not given input ' + - 'given an Error', - function() { - var err = new Error(); - populateErrorMessage(err, em); - assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); - } - ); - - it( - 'ServiceContext Field: Should set the field given valid input given an ' + - 'object', - function() { - var err = {}; - var TEST_SERVICE_VALID = {service: 'test', version: 'test'}; - err.serviceContext = TEST_SERVICE_VALID; - populateErrorMessage(err, em); - assert.deepEqual(em.serviceContext, TEST_SERVICE_VALID); - } - ); - - it( - 'ServiceContext Field: Should default the field given invalid input ' + - 'given an object', - function() { - var err = {}; - var TEST_SERVICE_INVALID = 12; - err.serviceContext = TEST_SERVICE_INVALID; - populateErrorMessage(err, em); - assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); - } - ); - - it( - 'ServiceContext Field: Should default the field given lack-of input ' + - 'given an object', - function() { - var err = {}; - populateErrorMessage(err, em); - assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); - } - ); - - it( - 'Report location Field: Should default the field if given invalid input ' + - 'given an Error', - function() { - var TEST_STACK_INVALID_CONTENTS = { - filePath: null, - lineNumber: '2', - functionName: {}, - }; - var err = new Error(); - err.stack = TEST_STACK_INVALID_CONTENTS; - populateErrorMessage(err, em); - assert.deepEqual(em.context.reportLocation, TEST_STACK_DEFAULT); - } - ); - - it( - 'Report location Field: Should default field if not given a valid type ' + - 'given an Error', - function() { - var err = new Error(); - var TEST_STACK_INVALID_TYPE = []; - err.stack = TEST_STACK_INVALID_TYPE; - populateErrorMessage(err, em); - assert.deepEqual(em.context.reportLocation, TEST_STACK_DEFAULT); - } - ); - - it('FilePath Field: Should set the field given valid input given an object', function() { - var err = {}; - var PATH = 'test'; - err.filePath = PATH; - populateErrorMessage(err, em); - assert.strictEqual(em.context.reportLocation.filePath, PATH); - }); - - it( - 'FilePath Field: Should default the field given lack-of input given ' + - 'an object', - function() { - var err = {}; - populateErrorMessage(err, em); - assert.strictEqual(em.context.reportLocation.filePath, ''); - } - ); - - it('LineNumber Field: Should set the field given valid input given an object', function() { - var err = {}; - var LINE_NUMBER = 10; - err.lineNumber = LINE_NUMBER; - populateErrorMessage(err, em); - assert.strictEqual(em.context.reportLocation.lineNumber, LINE_NUMBER); - }); - - it( - 'LineNumber Field: Should default the field given lack-of input given ' + - 'an object', - function() { - var err = {}; - populateErrorMessage(err, em); - assert.strictEqual(em.context.reportLocation.lineNumber, 0); - } - ); - - it( - 'FunctionName Field: Should set the field given valid input given ' + - 'an object', - function() { - var err = {}; - var FUNCTION_NAME = 'test'; - err.functionName = FUNCTION_NAME; - populateErrorMessage(err, em); - assert.strictEqual(em.context.reportLocation.functionName, FUNCTION_NAME); - } - ); - - it( - 'FunctionName Field: Should default the field given lack-of input given ' + - 'an object', - function() { - var err = {}; - populateErrorMessage(err, em); - assert.strictEqual(em.context.reportLocation.functionName, ''); - } - ); + it('Message Field: Should set the message as the stack given an Error', + function() { + var err = new Error(TEST_MESSAGE); + populateErrorMessage(err, em); + assert.deepEqual( + em.message, err.stack, + 'Given a valid message the ' + + 'error message should absorb the error stack as the message'); + }); + + it('Message Field: Should set the field given valid input given an object', + function() { + var err = {}; + var MESSAGE = 'test'; + err = {message: MESSAGE}; + populateErrorMessage(err, em); + assert.strictEqual(em.message, MESSAGE); + }); + + it('Message Field: Should default the field given lack-of input given ' + + 'an object', + function() { + var err = {}; + populateErrorMessage(err, em); + assert(em.message.startsWith('[object Object]')); + }); + + it('User Field: Should set the field given valid input given an Error', + function() { + var err = new Error(); + var TEST_USER_VALID = 'TEST_USER'; + err.user = TEST_USER_VALID; + populateErrorMessage(err, em); + assert.strictEqual(em.context.user, TEST_USER_VALID); + }); + + it('User Field: Should default the field given invalid input given an Error', + function() { + var err = new Error(); + err.user = TEST_USER_INVALID; + populateErrorMessage(err, em); + assert.strictEqual(em.context.user, ''); + }); + + it('User Field: Should set the field given valid input given an object', + function() { + var err = {}; + var USER = 'test'; + err.user = USER; + populateErrorMessage(err, em); + assert.strictEqual(em.context.user, USER); + }); + + it('User Field: Should default the field given lack-of input given an ' + + 'object', + function() { + var err = {}; + populateErrorMessage(err, em); + assert.strictEqual(em.context.user, ''); + }); + + it('ServiceContext Field: Should set the field given valid input given ' + + 'an Error', + function() { + var err = new Error(); + var TEST_SERVICE_VALID = {service: 'test', version: 'test'}; + err.serviceContext = TEST_SERVICE_VALID; + populateErrorMessage(err, em); + assert.deepEqual(err.serviceContext, TEST_SERVICE_VALID); + }); + + it('ServiceContext Field: Should default the field given invalid input ' + + 'given an Error', + function() { + var err = new Error(); + var TEST_SERVICE_INVALID = 12; + err.serviceContext = TEST_SERVICE_INVALID; + populateErrorMessage(err, em); + assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); + }); + + it('ServiceContext Field: Should default the field if not given input ' + + 'given an Error', + function() { + var err = new Error(); + populateErrorMessage(err, em); + assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); + }); + + it('ServiceContext Field: Should set the field given valid input given an ' + + 'object', + function() { + var err = {}; + var TEST_SERVICE_VALID = {service: 'test', version: 'test'}; + err.serviceContext = TEST_SERVICE_VALID; + populateErrorMessage(err, em); + assert.deepEqual(em.serviceContext, TEST_SERVICE_VALID); + }); + + it('ServiceContext Field: Should default the field given invalid input ' + + 'given an object', + function() { + var err = {}; + var TEST_SERVICE_INVALID = 12; + err.serviceContext = TEST_SERVICE_INVALID; + populateErrorMessage(err, em); + assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); + }); + + it('ServiceContext Field: Should default the field given lack-of input ' + + 'given an object', + function() { + var err = {}; + populateErrorMessage(err, em); + assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); + }); + + it('Report location Field: Should default the field if given invalid input ' + + 'given an Error', + function() { + var TEST_STACK_INVALID_CONTENTS = { + filePath: null, + lineNumber: '2', + functionName: {}, + }; + var err = new Error(); + err.stack = TEST_STACK_INVALID_CONTENTS; + populateErrorMessage(err, em); + assert.deepEqual(em.context.reportLocation, TEST_STACK_DEFAULT); + }); + + it('Report location Field: Should default field if not given a valid type ' + + 'given an Error', + function() { + var err = new Error(); + var TEST_STACK_INVALID_TYPE = []; + err.stack = TEST_STACK_INVALID_TYPE; + populateErrorMessage(err, em); + assert.deepEqual(em.context.reportLocation, TEST_STACK_DEFAULT); + }); + + it('FilePath Field: Should set the field given valid input given an object', + function() { + var err = {}; + var PATH = 'test'; + err.filePath = PATH; + populateErrorMessage(err, em); + assert.strictEqual(em.context.reportLocation.filePath, PATH); + }); + + it('FilePath Field: Should default the field given lack-of input given ' + + 'an object', + function() { + var err = {}; + populateErrorMessage(err, em); + assert.strictEqual(em.context.reportLocation.filePath, ''); + }); + + it('LineNumber Field: Should set the field given valid input given an object', + function() { + var err = {}; + var LINE_NUMBER = 10; + err.lineNumber = LINE_NUMBER; + populateErrorMessage(err, em); + assert.strictEqual(em.context.reportLocation.lineNumber, LINE_NUMBER); + }); + + it('LineNumber Field: Should default the field given lack-of input given ' + + 'an object', + function() { + var err = {}; + populateErrorMessage(err, em); + assert.strictEqual(em.context.reportLocation.lineNumber, 0); + }); + + it('FunctionName Field: Should set the field given valid input given ' + + 'an object', + function() { + var err = {}; + var FUNCTION_NAME = 'test'; + err.functionName = FUNCTION_NAME; + populateErrorMessage(err, em); + assert.strictEqual( + em.context.reportLocation.functionName, FUNCTION_NAME); + }); + + it('FunctionName Field: Should default the field given lack-of input given ' + + 'an object', + function() { + var err = {}; + populateErrorMessage(err, em); + assert.strictEqual(em.context.reportLocation.functionName, ''); + }); }); diff --git a/handwritten/error-reporting/test/unit/request-extractors/express.js b/handwritten/error-reporting/test/unit/request-extractors/express.js index 424771ca153..b68461b5549 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/express.js +++ b/handwritten/error-reporting/test/unit/request-extractors/express.js @@ -17,7 +17,9 @@ 'use strict'; var assert = require('assert'); -var expressRequestInformationExtractor = require('../../../src/request-extractors/express.js').expressRequestInformationExtractor; +var expressRequestInformationExtractor = + require('../../../src/request-extractors/express.js') + .expressRequestInformationExtractor; var Fuzzer = require('../../../utils/fuzzer.js'); var extend = require('extend'); @@ -39,10 +41,7 @@ describe('Behaviour under varying input', function() { assert.deepEqual(value, DEFAULT_RETURN_VALUE); }; f.fuzzFunctionForTypes( - expressRequestInformationExtractor, - ['object', 'object'], - cbFn - ); + expressRequestInformationExtractor, ['object', 'object'], cbFn); }); it('Should return valid request object given valid input', function() { var FULL_REQ_DERIVATION_VALUE = { @@ -116,46 +115,30 @@ describe('Behaviour under varying input', function() { return lrn; }; var tmpOutput = expressRequestInformationExtractor( - headerFactory(FULL_REQ_DERIVATION_VALUE), - FULL_RES_DERIVATION_VALUE - ); - assert.deepEqual( - tmpOutput, - FULL_REQ_EXPECTED_VALUE, - [ - 'Given a valid object input for the request parameter and an', - "'x-forwarded-for' parameter the request extractor should return", - "the expected full req output and the 'x-forwarded-for' value", - "as the value for the 'remoteAddress' property.", - ].join(' ') - ); + headerFactory(FULL_REQ_DERIVATION_VALUE), FULL_RES_DERIVATION_VALUE); + assert.deepEqual(tmpOutput, FULL_REQ_EXPECTED_VALUE, [ + 'Given a valid object input for the request parameter and an', + '\'x-forwarded-for\' parameter the request extractor should return', + 'the expected full req output and the \'x-forwarded-for\' value', + 'as the value for the \'remoteAddress\' property.', + ].join(' ')); tmpOutput = expressRequestInformationExtractor( - headerFactory(PARTIAL_REQ_DERIVATION_VALUE), - PARTIAL_RES_DERIVATION_VALUE - ); - assert.deepEqual( - tmpOutput, - PARTIAL_REQ_EXPECTED_VALUE, - [ - 'Given a valid object input for the request parameter but sans an', - "'x-forwarded-for' parameter the request extractor should return", - 'the expected parital req output and the remoteAddress value', - "as the value for the 'remoteAddress' property.", - ].join(' ') - ); + headerFactory(PARTIAL_REQ_DERIVATION_VALUE), + PARTIAL_RES_DERIVATION_VALUE); + assert.deepEqual(tmpOutput, PARTIAL_REQ_EXPECTED_VALUE, [ + 'Given a valid object input for the request parameter but sans an', + '\'x-forwarded-for\' parameter the request extractor should return', + 'the expected parital req output and the remoteAddress value', + 'as the value for the \'remoteAddress\' property.', + ].join(' ')); tmpOutput = expressRequestInformationExtractor( - headerFactory(ANOTHER_PARTIAL_REQ_DERIVATION_VALUE), - ANOTHER_PARTIAL_RES_DERIVATION_VALUE - ); - assert.deepEqual( - tmpOutput, - ANOTHER_PARTIAL_REQ_EXPECTED_VALUE, - [ - 'Given a valid object input for the request parameter but sans an', - "'x-forwarded-for' parameter or a remoteAddress parameter", - 'the request extractor should return an empty string', - "as the value for the 'remoteAddress' property.", - ].join(' ') - ); + headerFactory(ANOTHER_PARTIAL_REQ_DERIVATION_VALUE), + ANOTHER_PARTIAL_RES_DERIVATION_VALUE); + assert.deepEqual(tmpOutput, ANOTHER_PARTIAL_REQ_EXPECTED_VALUE, [ + 'Given a valid object input for the request parameter but sans an', + '\'x-forwarded-for\' parameter or a remoteAddress parameter', + 'the request extractor should return an empty string', + 'as the value for the \'remoteAddress\' property.', + ].join(' ')); }); }); diff --git a/handwritten/error-reporting/test/unit/request-extractors/hapi.js b/handwritten/error-reporting/test/unit/request-extractors/hapi.js index b1f28c1dac7..ef751489a8c 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/hapi.js +++ b/handwritten/error-reporting/test/unit/request-extractors/hapi.js @@ -17,7 +17,9 @@ 'use strict'; var assert = require('assert'); -var hapiRequestInformationExtractor = require('../../../src/request-extractors/hapi.js').hapiRequestInformationExtractor; +var hapiRequestInformationExtractor = + require('../../../src/request-extractors/hapi.js') + .hapiRequestInformationExtractor; var Fuzzer = require('../../../utils/fuzzer.js'); describe('hapiRequestInformationExtractor behaviour', function() { @@ -104,21 +106,18 @@ describe('hapiRequestInformationExtractor behaviour', function() { }; it('Should produce the full request input', function() { assert.deepEqual( - hapiRequestInformationExtractor(FULL_REQ_DERIVATION_VALUE), - FULL_REQ_EXPECTED_VALUE - ); + hapiRequestInformationExtractor(FULL_REQ_DERIVATION_VALUE), + FULL_REQ_EXPECTED_VALUE); }); it('Should produce the partial request input', function() { assert.deepEqual( - hapiRequestInformationExtractor(PARTIAL_REQ_DERIVATION_VALUE), - PARTIAL_REQ_EXPECTED_VALUE - ); + hapiRequestInformationExtractor(PARTIAL_REQ_DERIVATION_VALUE), + PARTIAL_REQ_EXPECTED_VALUE); }); it('Should produce the second partial request input', function() { assert.deepEqual( - hapiRequestInformationExtractor(ANOTHER_PARTIAL_REQ_DERIVATION_VALUE), - ANOTHER_PARTIAL_REQ_EXPECTED_VALUE - ); + hapiRequestInformationExtractor(ANOTHER_PARTIAL_REQ_DERIVATION_VALUE), + ANOTHER_PARTIAL_REQ_EXPECTED_VALUE); }); }); }); diff --git a/handwritten/error-reporting/test/unit/request-extractors/koa.js b/handwritten/error-reporting/test/unit/request-extractors/koa.js index b30fb8892bd..b4ea8625fc6 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/koa.js +++ b/handwritten/error-reporting/test/unit/request-extractors/koa.js @@ -17,7 +17,9 @@ 'use strict'; var assert = require('assert'); -var koaRequestInformationExtractor = require('../../../src/request-extractors/koa.js').koaRequestInformationExtractor; +var koaRequestInformationExtractor = + require('../../../src/request-extractors/koa.js') + .koaRequestInformationExtractor; var Fuzzer = require('../../../utils/fuzzer.js'); describe('koaRequestInformationExtractor', function() { @@ -36,10 +38,7 @@ describe('koaRequestInformationExtractor', function() { assert.deepEqual(value, DEFAULT_RETURN_VALUE); }; f.fuzzFunctionForTypes( - koaRequestInformationExtractor, - ['object', 'object'], - cbFn - ); + koaRequestInformationExtractor, ['object', 'object'], cbFn); }); }); describe('Behaviour under valid input', function() { @@ -65,12 +64,9 @@ describe('koaRequestInformationExtractor', function() { statusCode: 200, }; assert.deepEqual( - koaRequestInformationExtractor( - FULL_REQ_DERIVATION_VALUE, - FULL_RES_DERIVATION_VALUE - ), - FULL_REQ_EXPECTED_VALUE - ); + koaRequestInformationExtractor( + FULL_REQ_DERIVATION_VALUE, FULL_RES_DERIVATION_VALUE), + FULL_REQ_EXPECTED_VALUE); }); }); }); diff --git a/handwritten/error-reporting/test/unit/request-extractors/manual.js b/handwritten/error-reporting/test/unit/request-extractors/manual.js index b83275f0543..520878881c3 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/manual.js +++ b/handwritten/error-reporting/test/unit/request-extractors/manual.js @@ -19,7 +19,9 @@ var assert = require('assert'); var omit = require('lodash.omit'); var extend = require('extend'); -var manualRequestInformationExtractor = require('../../../src/request-extractors/manual.js').manualRequestInformationExtractor; +var manualRequestInformationExtractor = + require('../../../src/request-extractors/manual.js') + .manualRequestInformationExtractor; var Fuzzer = require('../../../utils/fuzzer.js'); describe('manualRequestInformationExtractor', function() { @@ -38,10 +40,7 @@ describe('manualRequestInformationExtractor', function() { assert.deepEqual(value, DEFAULT_RETURN_VALUE); }; f.fuzzFunctionForTypes( - manualRequestInformationExtractor, - ['object'], - cbFn - ); + manualRequestInformationExtractor, ['object'], cbFn); }); }); describe('Behaviour given valid input', function() { @@ -55,63 +54,50 @@ describe('manualRequestInformationExtractor', function() { }; it('Should return expected output', function() { assert.deepEqual( - manualRequestInformationExtractor(FULL_VALID_INPUT), - FULL_VALID_INPUT, - [ - 'Given a full valid input object these values should be reflected by', - 'the output of the request extraction', - ].join(' ') - ); + manualRequestInformationExtractor(FULL_VALID_INPUT), FULL_VALID_INPUT, + [ + 'Given a full valid input object these values should be reflected by', + 'the output of the request extraction', + ].join(' ')); assert.deepEqual( - manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'method')), - extend({}, FULL_VALID_INPUT, {method: ''}), - [ - 'Given a full valid input object sans the method property values', - 'should be reflected by the output of the request extraction', - ].join(' ') - ); + manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'method')), + extend({}, FULL_VALID_INPUT, {method: ''}), [ + 'Given a full valid input object sans the method property values', + 'should be reflected by the output of the request extraction', + ].join(' ')); assert.deepEqual( - manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'url')), - extend({}, FULL_VALID_INPUT, {url: ''}), - [ - 'Given a valid input sans the url property these values should be', - 'reflected by the output of the request extraction', - ] - ); + manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'url')), + extend({}, FULL_VALID_INPUT, {url: ''}), [ + 'Given a valid input sans the url property these values should be', + 'reflected by the output of the request extraction', + ]); assert.deepEqual( - manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'userAgent')), - extend({}, FULL_VALID_INPUT, {userAgent: ''}), - [ - 'Given a full valid input sans the userAgent property these values', - 'should be reflected by the output of the request extraction', - ] - ); + manualRequestInformationExtractor( + omit(FULL_VALID_INPUT, 'userAgent')), + extend({}, FULL_VALID_INPUT, {userAgent: ''}), [ + 'Given a full valid input sans the userAgent property these values', + 'should be reflected by the output of the request extraction', + ]); assert.deepEqual( - manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'referrer')), - extend({}, FULL_VALID_INPUT, {referrer: ''}), - [ - 'Given a full valid input sans the referrer property these values', - 'should be reflected by the output of the request extraction', - ] - ); + manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'referrer')), + extend({}, FULL_VALID_INPUT, {referrer: ''}), [ + 'Given a full valid input sans the referrer property these values', + 'should be reflected by the output of the request extraction', + ]); assert.deepEqual( - manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'statusCode')), - extend({}, FULL_VALID_INPUT, {statusCode: 0}), - [ - 'Given a full valid input sans the statusCode property these values', - 'should be reflected by the output of the request extraction', - ] - ); + manualRequestInformationExtractor( + omit(FULL_VALID_INPUT, 'statusCode')), + extend({}, FULL_VALID_INPUT, {statusCode: 0}), [ + 'Given a full valid input sans the statusCode property these values', + 'should be reflected by the output of the request extraction', + ]); assert.deepEqual( - manualRequestInformationExtractor( - omit(FULL_VALID_INPUT, 'remoteAddress') - ), - extend({}, FULL_VALID_INPUT, {remoteAddress: ''}), - [ - 'Given a valid input sans the remoteAddress property these values', - 'should be reflected by the output of the request extraction', - ] - ); + manualRequestInformationExtractor( + omit(FULL_VALID_INPUT, 'remoteAddress')), + extend({}, FULL_VALID_INPUT, {remoteAddress: ''}), [ + 'Given a valid input sans the remoteAddress property these values', + 'should be reflected by the output of the request extraction', + ]); }); }); }); diff --git a/handwritten/error-reporting/test/unit/service-configuration.js b/handwritten/error-reporting/test/unit/service-configuration.js index 5cfea253ebe..f1e7c76e275 100644 --- a/handwritten/error-reporting/test/unit/service-configuration.js +++ b/handwritten/error-reporting/test/unit/service-configuration.js @@ -41,20 +41,18 @@ function sterilizeEnv() { } function setEnv(serviceName, serviceVersion, moduleName, mv, fn) { assign( - process.env, - omitBy( - { - GAE_SERVICE: serviceName, - GAE_VERSION: serviceVersion, - GAE_MODULE_NAME: moduleName, - GAE_MODULE_VERSION: mv, - FUNCTION_NAME: fn, - }, - function(val) { - return !isString(val); - } - ) - ); + process.env, + omitBy( + { + GAE_SERVICE: serviceName, + GAE_VERSION: serviceVersion, + GAE_MODULE_NAME: moduleName, + GAE_MODULE_VERSION: mv, + FUNCTION_NAME: fn, + }, + function(val) { + return !isString(val); + })); } function restoreEnv() { assign(process.env, env); @@ -67,215 +65,172 @@ describe('Testing service configuration', function() { after(function() { restoreEnv(); }); - it( - 'A Configuration uses the function name as the service name on GCF ' + - 'if the service name is not given in the given config', - function() { - setEnv( - 'someModuleName', - '1.0', - 'InvalidName', - 'InvalidVersion', - 'someFunction' - ); - var c = new Configuration({}, logger); - assert.deepEqual(c.getServiceContext().service, 'someFunction'); - // FUNCTION_NAME is set and the user didn't specify a version, and so - // the version should not be defined - assert.deepEqual(c.getServiceContext().version, undefined); - } - ); - it( - 'A Configuration uses the function name as the service name on GCF ' + - 'if the service name is not given in the given config ' + - 'even if the GAE_SERVICE was not set', - function() { - setEnv(null, '1.0', null, 'InvalidVersion', 'someFunction'); - var c = new Configuration({}, logger); - assert.deepEqual(c.getServiceContext().service, 'someFunction'); - // The user didn't specify a version and FUNCTION_NAME is defined, and - // so the version should not be defined - assert.deepEqual(c.getServiceContext().version, undefined); - } - ); - it( - 'A Configuration uses the GAE_SERVICE env value as the service name ' + - 'if the FUNCTION_NAME env variable is not set and the given config ' + - 'does not specify the service name', - function() { - setEnv('someModuleName', '1.0', 'InvalidName', 'InvalidVersion', null); - var c = new Configuration({}, logger); - assert.deepEqual(c.getServiceContext().service, 'someModuleName'); - // The user didn't specify a version, and FUNCTION_NAME is not defined, - // and so use the GAE_MODULE_VERSION - assert.deepEqual(c.getServiceContext().version, '1.0'); - } - ); - it( - 'A Configuration uses the service name in the given config if it ' + - 'was specified and both the GAE_SERVICE and FUNCTION_NAME ' + - 'env vars are set', - function() { - setEnv( - 'someModuleName', - '1.0', - 'InvalidName', - 'InvalidVersion', - 'someFunction' - ); - var c = new Configuration( - { - serviceContext: { - service: 'customService', - }, - }, - logger - ); - assert.deepEqual(c.getServiceContext().service, 'customService'); - // The user didn't specify a version, but FUNCTION_NAME is defined, and - // so the version should not be defined - assert.deepEqual(c.getServiceContext().version, undefined); - } - ); - it( - 'A Configuration uses the service name and version in the given config' + - 'they were both specified and both the GAE_SERVICE and FUNCTION_NAME ' + - 'env vars are set', - function() { - setEnv( - 'someModuleName', - '1.0', - 'InvalidName', - 'InvalidVersion', - 'someFunction' - ); - var c = new Configuration( - { - serviceContext: { - service: 'customService', - version: '2.0', - }, - }, - logger - ); - assert.deepEqual(c.getServiceContext().service, 'customService'); - // The user specified version should be used - assert.deepEqual(c.getServiceContext().version, '2.0'); - } - ); - it( - 'A Configuration uses the service name in the given config if it ' + - 'was specified and only the GAE_SERVICE env var is set', - function() { - setEnv('someModuleName', '1.0', 'InvalidName', 'InvalidVersion', null); - var c = new Configuration( - { - serviceContext: { - service: 'customService', - }, - }, - logger - ); - assert.deepEqual(c.getServiceContext().service, 'customService'); - // The user didn't specify a version and FUNCTION_NAME is not defined - // and so the GAE_MODULE_VERSION should be used - assert.deepEqual(c.getServiceContext().version, '1.0'); - } - ); - it( - 'A Configuration uses the service name and version in the given config ' + - 'they were both specified and only the GAE_SERVICE env var is set', - function() { - setEnv('someModuleName', '1.0', 'InvalidName', 'InvalidVersion', null); - var c = new Configuration( - { - serviceContext: { - service: 'customService', - version: '2.0', - }, - }, - logger - ); - assert.deepEqual(c.getServiceContext().service, 'customService'); - // The user specified version should be used - assert.deepEqual(c.getServiceContext().version, '2.0'); - } - ); - it( - 'A Configuration uses the service name in the given config if it ' + - 'was specified and only the FUNCTION_NAME env var is set', - function() { - setEnv(null, '1.0', null, 'InvalidVersion', 'someFunction'); - var c = new Configuration( - { - serviceContext: { - service: 'customService', - }, - }, - logger - ); - assert.deepEqual(c.getServiceContext().service, 'customService'); - // The user didn't specify a version and thus because FUNCTION_NAME is - // defined the version should not be defined - assert.deepEqual(c.getServiceContext().version, undefined); - } - ); - it( - 'A Configuration uses the service name and version in the given config ' + - 'if they were both specified and only the FUNCTION_NAME env var is set', - function() { - setEnv(null, '1.0', null, 'InvalidVersion', 'someFunction'); - var c = new Configuration( - { - serviceContext: { - service: 'customService', - version: '2.0', - }, - }, - logger - ); - assert.strictEqual(c.getServiceContext().service, 'customService'); - // The user specified version should be used - assert.strictEqual(c.getServiceContext().version, '2.0'); - } - ); - it( - 'A Configuration uses the service name "node" and no version if ' + - 'GAE_SERVICE is not set, FUNCTION_NAME is not set, and the user has ' + - 'not specified a service name or version', - function() { - var c = new Configuration({}, logger); - assert.strictEqual(c.getServiceContext().service, 'node'); - assert.strictEqual(c.getServiceContext().version, undefined); - } - ); - it( - 'A Configuration uses the service name "node" and no version if ' + - 'GAE_SERVICE is not set, FUNCTION_NAME is not set, and the user has ' + - 'not specified a service name or version even if GAE_VERSION has ' + - 'been set', - function() { - setEnv(null, 'InvalidVersion', null, 'InvalidVersion', null); - var c = new Configuration({}, logger); - assert.strictEqual(c.getServiceContext().service, 'node'); - assert.strictEqual(c.getServiceContext().version, undefined); - } - ); - it( - 'A Configuration uses the service name "node" and the user specified ' + - 'version if GAE_SERVICE is not set, FUNCTION_NAME is not set, and the ' + - 'user has not specified a service name but has specified a version', - function() { - var c = new Configuration( - { - serviceContext: { - version: '2.0', - }, - }, - logger - ); - assert.deepEqual(c.getServiceContext().service, 'node'); - assert.deepEqual(c.getServiceContext().version, '2.0'); - } - ); + it('A Configuration uses the function name as the service name on GCF ' + + 'if the service name is not given in the given config', + function() { + setEnv( + 'someModuleName', '1.0', 'InvalidName', 'InvalidVersion', + 'someFunction'); + var c = new Configuration({}, logger); + assert.deepEqual(c.getServiceContext().service, 'someFunction'); + // FUNCTION_NAME is set and the user didn't specify a version, and so + // the version should not be defined + assert.deepEqual(c.getServiceContext().version, undefined); + }); + it('A Configuration uses the function name as the service name on GCF ' + + 'if the service name is not given in the given config ' + + 'even if the GAE_SERVICE was not set', + function() { + setEnv(null, '1.0', null, 'InvalidVersion', 'someFunction'); + var c = new Configuration({}, logger); + assert.deepEqual(c.getServiceContext().service, 'someFunction'); + // The user didn't specify a version and FUNCTION_NAME is defined, and + // so the version should not be defined + assert.deepEqual(c.getServiceContext().version, undefined); + }); + it('A Configuration uses the GAE_SERVICE env value as the service name ' + + 'if the FUNCTION_NAME env variable is not set and the given config ' + + 'does not specify the service name', + function() { + setEnv('someModuleName', '1.0', 'InvalidName', 'InvalidVersion', null); + var c = new Configuration({}, logger); + assert.deepEqual(c.getServiceContext().service, 'someModuleName'); + // The user didn't specify a version, and FUNCTION_NAME is not defined, + // and so use the GAE_MODULE_VERSION + assert.deepEqual(c.getServiceContext().version, '1.0'); + }); + it('A Configuration uses the service name in the given config if it ' + + 'was specified and both the GAE_SERVICE and FUNCTION_NAME ' + + 'env vars are set', + function() { + setEnv( + 'someModuleName', '1.0', 'InvalidName', 'InvalidVersion', + 'someFunction'); + var c = new Configuration( + { + serviceContext: { + service: 'customService', + }, + }, + logger); + assert.deepEqual(c.getServiceContext().service, 'customService'); + // The user didn't specify a version, but FUNCTION_NAME is defined, and + // so the version should not be defined + assert.deepEqual(c.getServiceContext().version, undefined); + }); + it('A Configuration uses the service name and version in the given config' + + 'they were both specified and both the GAE_SERVICE and FUNCTION_NAME ' + + 'env vars are set', + function() { + setEnv( + 'someModuleName', '1.0', 'InvalidName', 'InvalidVersion', + 'someFunction'); + var c = new Configuration( + { + serviceContext: { + service: 'customService', + version: '2.0', + }, + }, + logger); + assert.deepEqual(c.getServiceContext().service, 'customService'); + // The user specified version should be used + assert.deepEqual(c.getServiceContext().version, '2.0'); + }); + it('A Configuration uses the service name in the given config if it ' + + 'was specified and only the GAE_SERVICE env var is set', + function() { + setEnv('someModuleName', '1.0', 'InvalidName', 'InvalidVersion', null); + var c = new Configuration( + { + serviceContext: { + service: 'customService', + }, + }, + logger); + assert.deepEqual(c.getServiceContext().service, 'customService'); + // The user didn't specify a version and FUNCTION_NAME is not defined + // and so the GAE_MODULE_VERSION should be used + assert.deepEqual(c.getServiceContext().version, '1.0'); + }); + it('A Configuration uses the service name and version in the given config ' + + 'they were both specified and only the GAE_SERVICE env var is set', + function() { + setEnv('someModuleName', '1.0', 'InvalidName', 'InvalidVersion', null); + var c = new Configuration( + { + serviceContext: { + service: 'customService', + version: '2.0', + }, + }, + logger); + assert.deepEqual(c.getServiceContext().service, 'customService'); + // The user specified version should be used + assert.deepEqual(c.getServiceContext().version, '2.0'); + }); + it('A Configuration uses the service name in the given config if it ' + + 'was specified and only the FUNCTION_NAME env var is set', + function() { + setEnv(null, '1.0', null, 'InvalidVersion', 'someFunction'); + var c = new Configuration( + { + serviceContext: { + service: 'customService', + }, + }, + logger); + assert.deepEqual(c.getServiceContext().service, 'customService'); + // The user didn't specify a version and thus because FUNCTION_NAME is + // defined the version should not be defined + assert.deepEqual(c.getServiceContext().version, undefined); + }); + it('A Configuration uses the service name and version in the given config ' + + 'if they were both specified and only the FUNCTION_NAME env var is set', + function() { + setEnv(null, '1.0', null, 'InvalidVersion', 'someFunction'); + var c = new Configuration( + { + serviceContext: { + service: 'customService', + version: '2.0', + }, + }, + logger); + assert.strictEqual(c.getServiceContext().service, 'customService'); + // The user specified version should be used + assert.strictEqual(c.getServiceContext().version, '2.0'); + }); + it('A Configuration uses the service name "node" and no version if ' + + 'GAE_SERVICE is not set, FUNCTION_NAME is not set, and the user has ' + + 'not specified a service name or version', + function() { + var c = new Configuration({}, logger); + assert.strictEqual(c.getServiceContext().service, 'node'); + assert.strictEqual(c.getServiceContext().version, undefined); + }); + it('A Configuration uses the service name "node" and no version if ' + + 'GAE_SERVICE is not set, FUNCTION_NAME is not set, and the user has ' + + 'not specified a service name or version even if GAE_VERSION has ' + + 'been set', + function() { + setEnv(null, 'InvalidVersion', null, 'InvalidVersion', null); + var c = new Configuration({}, logger); + assert.strictEqual(c.getServiceContext().service, 'node'); + assert.strictEqual(c.getServiceContext().version, undefined); + }); + it('A Configuration uses the service name "node" and the user specified ' + + 'version if GAE_SERVICE is not set, FUNCTION_NAME is not set, and the ' + + 'user has not specified a service name but has specified a version', + function() { + var c = new Configuration( + { + serviceContext: { + version: '2.0', + }, + }, + logger); + assert.deepEqual(c.getServiceContext().service, 'node'); + assert.deepEqual(c.getServiceContext().version, '2.0'); + }); }); From cc02f7338998c7da2e3ffc7c4cf12d5c95583326 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Thu, 11 Jan 2018 13:12:52 -0800 Subject: [PATCH 051/527] chore: fix the samples tests (#39) BREAKING CHANGE: This change renames the `Errors` class to `ErrorReporting`. --- handwritten/error-reporting/src/index.ts | 6 +++--- handwritten/error-reporting/system-test/error-reporting.js | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/handwritten/error-reporting/src/index.ts b/handwritten/error-reporting/src/index.ts index cff209536bf..4e71790a840 100644 --- a/handwritten/error-reporting/src/index.ts +++ b/handwritten/error-reporting/src/index.ts @@ -96,7 +96,7 @@ import {Request} from './request-extractors/manual'; * @param {ConfigurationOptions} initConfiguration - The desired project/error * reporting configuration. */ -export class Errors { +export class ErrorReporting { private _logger: Logger; private _config: Configuration; private _client: AuthClient; @@ -111,8 +111,8 @@ export class Errors { koa: (next: Function) => Iterable; constructor(initConfiguration: ConfigurationOptions) { - if (!(this instanceof Errors)) { - return new Errors(initConfiguration); + if (!(this instanceof ErrorReporting)) { + return new ErrorReporting(initConfiguration); } this._logger = createLogger(initConfiguration); diff --git a/handwritten/error-reporting/system-test/error-reporting.js b/handwritten/error-reporting/system-test/error-reporting.js index 891a3015840..2b35b56497d 100644 --- a/handwritten/error-reporting/system-test/error-reporting.js +++ b/handwritten/error-reporting/system-test/error-reporting.js @@ -468,8 +468,8 @@ describe('error-reporting', function() { }, }, extraConfig || {}); - const Errors = require('../src/index.js').Errors; - errors = new Errors(config); + const ErrorReporting = require('../src/index.js').ErrorReporting; + errors = new ErrorReporting(config); transport = new ErrorsApiTransport(errors._config, errors._logger); } From 2c25aac494dedc63ae639e84112dcc9645a5a7ef Mon Sep 17 00:00:00 2001 From: Jinwoo Lee Date: Thu, 11 Jan 2018 14:05:40 -0800 Subject: [PATCH 052/527] chore: license check in posttest (#26) `log-driver` is whitelisted. --- handwritten/error-reporting/js-green-licenses.json | 5 +++++ handwritten/error-reporting/package.json | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 handwritten/error-reporting/js-green-licenses.json diff --git a/handwritten/error-reporting/js-green-licenses.json b/handwritten/error-reporting/js-green-licenses.json new file mode 100644 index 00000000000..b3f7a519b23 --- /dev/null +++ b/handwritten/error-reporting/js-green-licenses.json @@ -0,0 +1,5 @@ +{ + "packageWhitelist": [ + "log-driver" // https://github.com/googleapis/nodejs-common/issues/16 + ] +} diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 1b6e5c148f8..936b09fb80f 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -47,7 +47,8 @@ "fix": "gts fix", "prepare": "npm run compile", "pretest": "npm run compile", - "posttest": "npm run check" + "posttest": "npm run check && npm run license-check", + "license-check": "jsgl --local ." }, "dependencies": { "@google-cloud/common": "^0.15.1", @@ -78,6 +79,7 @@ "hapi": "^17.1.1", "ink-docstrap": "^1.3.0", "intelli-espower-loader": "^1.0.1", + "js-green-licenses": "^0.2.1", "jscs": "^3.0.7", "jsdoc": "^3.5.5", "jshint": "^2.9.2", From c9fc984e167feac99ba25fc4e2ed5d0944e6541e Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Wed, 17 Jan 2018 12:55:01 -0800 Subject: [PATCH 053/527] chore(package): update js-green-licenses to version 0.4.0 (#47) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 936b09fb80f..eab136ffff4 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -79,7 +79,7 @@ "hapi": "^17.1.1", "ink-docstrap": "^1.3.0", "intelli-espower-loader": "^1.0.1", - "js-green-licenses": "^0.2.1", + "js-green-licenses": "^0.4.0", "jscs": "^3.0.7", "jsdoc": "^3.5.5", "jshint": "^2.9.2", From 40300ce20d14db51a822a815b790d3adfa011a9b Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Wed, 24 Jan 2018 10:22:26 -0800 Subject: [PATCH 054/527] chore(package): update mocha to version 5.0.0 (#48) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index eab136ffff4..575d33a24d9 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -94,7 +94,7 @@ "lodash.pick": "^4.4.0", "lodash.random": "^3.2.0", "lodash.without": "^4.4.0", - "mocha": "^4.0.1", + "mocha": "^5.0.0", "nock": "^9.0.0", "nyc": "^11.3.0", "power-assert": "^1.4.4", From b068480b5abae73eb416715f8dd7c23b539f650d Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Mon, 5 Feb 2018 05:53:12 -0800 Subject: [PATCH 055/527] chore(package): update eslint-plugin-node to version 6.0.0 (#53) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 575d33a24d9..33bb980abed 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -72,7 +72,7 @@ "codecov": "^3.0.0", "eslint": "^4.9.0", "eslint-config-prettier": "^2.6.0", - "eslint-plugin-node": "^5.2.1", + "eslint-plugin-node": "^6.0.0", "eslint-plugin-prettier": "^2.3.1", "express": "^4.13.4", "gts": "^0.5.3", From e9dcdfcc4865044d8b678a4cd2da22c52e59acc3 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Tue, 6 Feb 2018 18:56:47 -0800 Subject: [PATCH 056/527] fix(package): update @google-cloud/common to version 0.16.0 (#54) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 33bb980abed..9b73feac371 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -51,7 +51,7 @@ "license-check": "jsgl --local ." }, "dependencies": { - "@google-cloud/common": "^0.15.1", + "@google-cloud/common": "^0.16.0", "extend": "^3.0.0", "is": "^3.2.0", "lodash.has": "^4.5.2" From 08b59a5db26aa8791e6539b568edcddc9349a9a3 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Tue, 6 Feb 2018 18:57:14 -0800 Subject: [PATCH 057/527] chore(package): update @types/node to version 9.4.0 (#52) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 9b73feac371..8feda32b739 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -64,7 +64,7 @@ "@types/koa": "^2.0.43", "@types/lodash.has": "^4.5.3", "@types/mocha": "^2.2.45", - "@types/node": "^8.5.2", + "@types/node": "^9.4.0", "@types/request": "^2.0.9", "@types/restify": "^5.0.6", "async": "^2.6.0", From 32ae9d95bb6095b481444a0ebe4ba0accb63b596 Mon Sep 17 00:00:00 2001 From: Alexander Fenster Date: Thu, 22 Feb 2018 16:10:05 -0800 Subject: [PATCH 058/527] chore: removing node7 job from CircleCI (#65) * chore: removing node7 job from CircleCI * chore: rename reference --- .../error-reporting/.circleci/config.yml | 71 ++++++------------- 1 file changed, 21 insertions(+), 50 deletions(-) diff --git a/handwritten/error-reporting/.circleci/config.yml b/handwritten/error-reporting/.circleci/config.yml index 488611cde18..64c69a5c4db 100644 --- a/handwritten/error-reporting/.circleci/config.yml +++ b/handwritten/error-reporting/.circleci/config.yml @@ -1,7 +1,5 @@ ---- -# "Include" for unit tests definition. -unit_tests: &unit_tests - steps: +unit_tests: + steps: &unit_tests - checkout - run: name: Install modules and dependencies. @@ -9,13 +7,7 @@ unit_tests: &unit_tests - run: name: Run unit tests. command: npm test -# TODO: Re-enable after the translation to Typescript is complete -# - run: -# name: Submit coverage data to codecov. -# command: node_modules/.bin/codecov -# when: always - -version: 2.0 +version: 2 workflows: version: 2 tests: @@ -28,10 +20,6 @@ workflows: filters: tags: only: /.*/ - - node7: - filters: - tags: - only: /.*/ - node8: filters: tags: @@ -44,7 +32,6 @@ workflows: requires: - node4 - node6 - - node7 - node8 - node9 filters: @@ -54,7 +41,6 @@ workflows: requires: - node4 - node6 - - node7 - node8 - node9 filters: @@ -68,7 +54,7 @@ workflows: branches: only: master tags: - only: /^v[\d.]+$/ + only: '/^v[\d.]+$/' - sample_tests: requires: - lint @@ -77,7 +63,7 @@ workflows: branches: only: master tags: - only: /^v[\d.]+$/ + only: '/^v[\d.]+$/' - publish_npm: requires: - system_tests @@ -86,12 +72,11 @@ workflows: branches: ignore: /.*/ tags: - only: /^v[\d.]+$/ - + only: '/^v[\d.]+$/' jobs: node4: docker: - - image: node:4 + - image: 'node:4' steps: - checkout - run: @@ -100,31 +85,21 @@ jobs: - run: name: Run unit tests. command: npm test -# TODO: Re-enable after the translation to Typescript is complete -# - run: -# name: Submit coverage data to codecov. -# command: node_modules/.bin/codecov -# when: always node6: docker: - - image: node:6 - <<: *unit_tests - node7: - docker: - - image: node:7 - <<: *unit_tests + - image: 'node:6' + steps: *unit_tests node8: docker: - - image: node:8 - <<: *unit_tests + - image: 'node:8' + steps: *unit_tests node9: docker: - - image: node:9 - <<: *unit_tests - + - image: 'node:9' + steps: *unit_tests lint: docker: - - image: node:8 + - image: 'node:8' steps: - checkout - run: @@ -142,10 +117,9 @@ jobs: - run: name: Run linting. command: npm run lint - docs: docker: - - image: node:8 + - image: 'node:8' steps: - checkout - run: @@ -154,10 +128,9 @@ jobs: - run: name: Build documentation. command: npm run docs - sample_tests: docker: - - image: node:8 + - image: 'node:8' steps: - checkout - run: @@ -189,10 +162,9 @@ jobs: command: rm .circleci/key.json when: always working_directory: /var/error-reporting/ - system_tests: docker: - - image: node:8 + - image: 'node:8' steps: - checkout - run: @@ -215,15 +187,14 @@ jobs: command: rm .circleci/key.json when: always working_directory: /var/error-reporting/ - publish_npm: docker: - - image: node:8 + - image: 'node:8' steps: - checkout - run: name: Set NPM authentication. - command: echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc + command: 'echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc' - run: - name: Publish the module to npm. - command: npm publish + name: Publish the module to npm. + command: npm publish From 7c49cdab684c9dcbc367e0339e8041833268fe45 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Fri, 9 Mar 2018 13:56:30 -0800 Subject: [PATCH 059/527] chore(package): update js-green-licenses to version 0.5.0 (#70) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 8feda32b739..aaf279139d5 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -79,7 +79,7 @@ "hapi": "^17.1.1", "ink-docstrap": "^1.3.0", "intelli-espower-loader": "^1.0.1", - "js-green-licenses": "^0.4.0", + "js-green-licenses": "^0.5.0", "jscs": "^3.0.7", "jsdoc": "^3.5.5", "jshint": "^2.9.2", From be329cbdf5266f1aaa8907413d5b63989b59fa4e Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Mon, 12 Mar 2018 09:44:08 -0700 Subject: [PATCH 060/527] feat: add installation tests (#60) The installation tests verify that types are correctly exported by this library so that it can be used in TypeScript projects. Updates have been made to ensure types are exported correctly. --- handwritten/error-reporting/.gitignore | 2 + .../error-reporting/js-green-licenses.json | 3 +- handwritten/error-reporting/package.json | 20 +- .../error-reporting/src/configuration.ts | 10 +- .../src/google-apis/auth-client.ts | 10 +- handwritten/error-reporting/src/index.ts | 7 +- .../error-reporting/src/interfaces/manual.ts | 4 +- handwritten/error-reporting/src/logger.ts | 10 +- handwritten/error-reporting/src/types.d.ts | 117 ++++++----- .../system-test/test-install.ts | 196 ++++++++++++++++++ .../error-reporting/system-test/utils.ts | 87 ++++++++ .../test/unit/google-apis/auth-client.js | 16 +- handwritten/error-reporting/tsconfig.json | 8 +- 13 files changed, 403 insertions(+), 87 deletions(-) create mode 100644 handwritten/error-reporting/system-test/test-install.ts create mode 100644 handwritten/error-reporting/system-test/utils.ts diff --git a/handwritten/error-reporting/.gitignore b/handwritten/error-reporting/.gitignore index 3f7d83f8f42..8de6c0c9b9c 100644 --- a/handwritten/error-reporting/.gitignore +++ b/handwritten/error-reporting/.gitignore @@ -1,8 +1,10 @@ **/*.log **/node_modules .coverage +.DS_Store .nyc_output docs/ +google-cloud-error-reporting-*.tgz out/ system-test/secrets.js system-test/*key.json diff --git a/handwritten/error-reporting/js-green-licenses.json b/handwritten/error-reporting/js-green-licenses.json index b3f7a519b23..91bfa55c96d 100644 --- a/handwritten/error-reporting/js-green-licenses.json +++ b/handwritten/error-reporting/js-green-licenses.json @@ -1,5 +1,6 @@ { "packageWhitelist": [ - "log-driver" // https://github.com/googleapis/nodejs-common/issues/16 + "log-driver", // https://github.com/googleapis/nodejs-common/issues/16 + "escape-regexp-component" // https://github.com/googleapis/nodejs-error-reporting/issues/63 ] } diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index aaf279139d5..5ae43573fd5 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -9,6 +9,7 @@ }, "repository": "googleapis/nodejs-error-reporting", "main": "./build/src/index.js", + "types": "./build/src/index.d.ts", "nyc": { "exclude": [ "./build/utils/fuzzer.js" @@ -44,6 +45,7 @@ "check": "gts check", "clean": "gts clean", "compile": "tsc -p .", + "postcompile": "cpy src/types.d.ts build/src/ && cpy 'utils/**/*.*' build --parents && cpy 'test/**/*.*' build --parents", "fix": "gts fix", "prepare": "npm run compile", "pretest": "npm run compile", @@ -51,32 +53,41 @@ "license-check": "jsgl --local ." }, "dependencies": { - "@google-cloud/common": "^0.16.0", + "express": "^4.13.4", "extend": "^3.0.0", + "hapi": "^17.1.1", "is": "^3.2.0", - "lodash.has": "^4.5.2" + "lodash.has": "^4.5.2", + "restify": "^6.3.4" }, "devDependencies": { + "@google-cloud/common": "^0.16.0", "@google-cloud/nodejs-repo-tools": "^2.0.11", "@types/express": "^4.11.0", + "@types/glob": "^5.0.35", "@types/hapi": "^16.1.11", "@types/is": "0.0.18", "@types/koa": "^2.0.43", "@types/lodash.has": "^4.5.3", "@types/mocha": "^2.2.45", + "@types/ncp": "^2.0.1", "@types/node": "^9.4.0", + "@types/once": "^1.4.0", + "@types/pify": "^3.0.0", "@types/request": "^2.0.9", "@types/restify": "^5.0.6", + "@types/rimraf": "^2.0.2", + "@types/tmp": "0.0.33", "async": "^2.6.0", "body-parser": "^1.15.1", "codecov": "^3.0.0", + "cpy-cli": "^1.0.1", "eslint": "^4.9.0", "eslint-config-prettier": "^2.6.0", "eslint-plugin-node": "^6.0.0", "eslint-plugin-prettier": "^2.3.1", - "express": "^4.13.4", + "glob": "^7.1.2", "gts": "^0.5.3", - "hapi": "^17.1.1", "ink-docstrap": "^1.3.0", "intelli-espower-loader": "^1.0.1", "js-green-licenses": "^0.5.0", @@ -100,7 +111,6 @@ "power-assert": "^1.4.4", "prettier": "^1.7.4", "proxyquire": "^1.7.11", - "restify": "^6.3.4", "typescript": "~2.6.2" } } diff --git a/handwritten/error-reporting/src/configuration.ts b/handwritten/error-reporting/src/configuration.ts index 6578753d6ea..48373d965fc 100644 --- a/handwritten/error-reporting/src/configuration.ts +++ b/handwritten/error-reporting/src/configuration.ts @@ -22,7 +22,8 @@ const isBoolean = is.boolean; const isString = is.string; const isNumber = is.number; -import {Logger} from '@google-cloud/common'; +import * as types from './types'; +const Logger: types.Logger = require('@google-cloud/common').Logger; export interface ConfigurationOptions { projectId?: string; @@ -62,7 +63,7 @@ export interface ServiceContext { * been initialized. */ export class Configuration { - _logger: Logger; + _logger: types.Logger; _shouldReportErrorsToAPI: boolean; _projectId: string|null; _key: string|null; @@ -72,7 +73,8 @@ export class Configuration { _reportUnhandledRejections: boolean; _givenConfiguration: ConfigurationOptions; - constructor(givenConfig: ConfigurationOptions, logger: Logger) { + constructor( + givenConfig: ConfigurationOptions|undefined, logger: types.Logger) { /** * The _logger property caches the logger instance created at the top-level * for configuration logging purposes. @@ -182,7 +184,7 @@ export class Configuration { * @type {Object|Null} * @defaultvalue null */ - this._givenConfiguration = isObject(givenConfig) ? givenConfig : {}; + this._givenConfiguration = isObject(givenConfig) ? givenConfig! : {}; this._checkLocalServiceContext(); this._gatherLocalConfiguration(); } diff --git a/handwritten/error-reporting/src/google-apis/auth-client.ts b/handwritten/error-reporting/src/google-apis/auth-client.ts index 2c205179077..fae70d5b48d 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.ts +++ b/handwritten/error-reporting/src/google-apis/auth-client.ts @@ -15,7 +15,8 @@ */ /*jshint unused:false*/ -import * as common from '@google-cloud/common'; +import * as types from '../types'; +export const common: types.Common = require('@google-cloud/common'); const pkg = require('../../../package.json'); import * as is from 'is'; // TODO: Address the error where `is` does not have a `fn` property @@ -59,9 +60,8 @@ const API = 'https://clouderrorreporting.googleapis.com/v1beta1'; */ export class RequestHandler extends common.Service { private _config: Configuration; - private _logger: common.Logger; + private _logger: types.Logger; // TODO: Make this more precise - private authClient: {getToken: (err: {}) => void;}; /** * Returns a query-string request object if a string key is given, otherwise @@ -95,7 +95,7 @@ export class RequestHandler extends common.Service { * @param {Configuration} config - an instance of the Configuration class * @param {Logger} logger - an instance of logger */ - constructor(config: Configuration, logger: common.Logger) { + constructor(config: Configuration, logger: types.Logger) { const pid = config.getProjectId(); // If an API key is provided, do not try to authenticate. const tryAuthenticate = !config.getKey(); @@ -109,7 +109,7 @@ export class RequestHandler extends common.Service { customEndpoint: !tryAuthenticate, }, // TODO: Fix the type incompatibilities that require this cast - config as common.ServiceAuthenticationConfig); + config as types.ServiceAuthenticationConfig); this._config = config; this._logger = logger; diff --git a/handwritten/error-reporting/src/index.ts b/handwritten/error-reporting/src/index.ts index 4e71790a840..82cfed250d7 100644 --- a/handwritten/error-reporting/src/index.ts +++ b/handwritten/error-reporting/src/index.ts @@ -18,7 +18,8 @@ * @module error-reporting */ -import {Logger} from '@google-cloud/common'; +import * as types from './types'; +const Logger: types.Logger = require('@google-cloud/common').Logger; import * as e from 'express'; import * as h from 'hapi'; import {ServerResponse} from 'http'; @@ -97,7 +98,7 @@ import {Request} from './request-extractors/manual'; * reporting configuration. */ export class ErrorReporting { - private _logger: Logger; + private _logger: types.Logger; private _config: Configuration; private _client: AuthClient; report: @@ -110,7 +111,7 @@ export class ErrorReporting { (client: AuthClient, config: Configuration, server: r.Server) => void; koa: (next: Function) => Iterable; - constructor(initConfiguration: ConfigurationOptions) { + constructor(initConfiguration?: ConfigurationOptions) { if (!(this instanceof ErrorReporting)) { return new ErrorReporting(initConfiguration); } diff --git a/handwritten/error-reporting/src/interfaces/manual.ts b/handwritten/error-reporting/src/interfaces/manual.ts index 4840e199412..de403a220cc 100644 --- a/handwritten/error-reporting/src/interfaces/manual.ts +++ b/handwritten/error-reporting/src/interfaces/manual.ts @@ -24,7 +24,7 @@ import {manualRequestInformationExtractor} from '../request-extractors/manual'; import {populateErrorMessage} from '../populate-error-message'; import {RequestHandler} from '../google-apis/auth-client'; import {Configuration} from '../configuration'; -import {Logger} from '@google-cloud/common'; +import * as types from '../types'; import * as http from 'http'; import {Request} from '../request-extractors/manual'; @@ -46,7 +46,7 @@ export type Callback = * function */ export function handlerSetup( - client: RequestHandler, config: Configuration, logger: Logger) { + client: RequestHandler, config: Configuration, logger: types.Logger) { /** * The interface for manually reporting errors to the Google Error API in * application code. diff --git a/handwritten/error-reporting/src/logger.ts b/handwritten/error-reporting/src/logger.ts index 29378ab97a0..a77ca768e0e 100644 --- a/handwritten/error-reporting/src/logger.ts +++ b/handwritten/error-reporting/src/logger.ts @@ -42,7 +42,7 @@ import {ConfigurationOptions} from './configuration'; * @returns {Object} - returns an instance of the logger created with the given/ * default options */ -export function createLogger(initConfiguration: ConfigurationOptions) { +export function createLogger(initConfiguration?: ConfigurationOptions) { // Default to log level: warn (2) const DEFAULT_LEVEL = logger.LEVELS[2]; let level = DEFAULT_LEVEL; @@ -52,11 +52,11 @@ export function createLogger(initConfiguration: ConfigurationOptions) { logger.LEVELS[~~process.env.GCLOUD_ERRORS_LOGLEVEL!] || DEFAULT_LEVEL; } else if ( isObject(initConfiguration) && has(initConfiguration, 'logLevel')) { - if (isString(initConfiguration.logLevel)) { + if (isString(initConfiguration!.logLevel)) { // Cast string as integer - level = logger.LEVELS[~~initConfiguration.logLevel!] || DEFAULT_LEVEL; - } else if (isNumber(initConfiguration.logLevel)) { - level = logger.LEVELS[initConfiguration.logLevel!] || DEFAULT_LEVEL; + level = logger.LEVELS[~~initConfiguration!.logLevel!] || DEFAULT_LEVEL; + } else if (isNumber(initConfiguration!.logLevel)) { + level = logger.LEVELS[initConfiguration!.logLevel!] || DEFAULT_LEVEL; } else { throw new Error( 'config.logLevel must be a number or decimal ' + diff --git a/handwritten/error-reporting/src/types.d.ts b/handwritten/error-reporting/src/types.d.ts index 9ddac444280..cd5acdcd1b6 100644 --- a/handwritten/error-reporting/src/types.d.ts +++ b/handwritten/error-reporting/src/types.d.ts @@ -1,56 +1,75 @@ +/** + * Copyright 2018 Google LLC. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ -declare module '@google-cloud/common' { - import * as request from 'request'; +import * as request from 'request'; - type LogFunction = (message: any, ...args: any[]) => void; +export interface Common { + Service: Service; + logger: Logger; +} - export interface Logger { - error: LogFunction; - warn: LogFunction; - info: LogFunction; - debug: LogFunction; - silly: LogFunction; - } +export type LogFunction = (message: any, ...args: any[]) => void; - export interface LoggerOptions { - level?: string; - levels?: string[]; - tag?: string; - } +export interface Logger { + error: LogFunction; + warn: LogFunction; + info: LogFunction; + debug: LogFunction; + silly: LogFunction; +} - export const logger: { - (options?: LoggerOptions | string): Logger; - LEVELS: string[]; - }; +export interface LoggerOptions { + level?: string; + levels?: string[]; + tag?: string; +} + +export interface logger { + (options?: LoggerOptions | string): Logger; + LEVELS: string[]; +} - export class Service { - constructor(config: ServiceConfig, options: ServiceAuthenticationConfig); - request(options: request.Options, - cb: ( - err: Error | null, - body: any, - response: request.RequestResponse - ) => void): void; - } - - export interface ServiceConfig { - packageJson?: any; - projectIdRequired?: boolean; - baseUrl?: string; - scopes?: string[]; - // TODO: `auth-client.ts` assumes that `projectId` and `customEndpoint` - // are properties of `ServiceConfig`. Determine if it is. - projectId?: string; - customEndpoint?: boolean; - } - - export interface ServiceAuthenticationConfig { - projectId?: string; - keyFilename?: string; - email?: string; - credentials?: { - client_email?: string; - private_key?: string; - }; - } +export interface Service { + new(config: ServiceConfig, options: ServiceAuthenticationConfig): Service; + authClient: {getToken: (err: {}) => void;}; + request(options: request.Options, + cb: ( + err: Error | null, + body: any, + response: request.RequestResponse + ) => void): void; +} + +export interface ServiceConfig { + packageJson?: any; + projectIdRequired?: boolean; + baseUrl?: string; + scopes?: string[]; + // TODO: `auth-client.ts` assumes that `projectId` and `customEndpoint` + // are properties of `ServiceConfig`. Determine if it is. + projectId?: string; + customEndpoint?: boolean; +} + +export interface ServiceAuthenticationConfig { + projectId?: string; + keyFilename?: string; + email?: string; + credentials?: { + client_email?: string; + private_key?: string; + }; } diff --git a/handwritten/error-reporting/system-test/test-install.ts b/handwritten/error-reporting/system-test/test-install.ts new file mode 100644 index 00000000000..1a65bcb4f90 --- /dev/null +++ b/handwritten/error-reporting/system-test/test-install.ts @@ -0,0 +1,196 @@ +/** + * Copyright 2018 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import * as assert from 'assert'; +import * as path from 'path'; + +import {globP, mkdirP, ncpP, rimrafP, spawnP, tmpDirP, writeFileP} from './utils'; + +const INDEX_TS = 'index.ts'; +const INDEX_JS = 'index.js'; + +const TS_CODE_ARRAY: CodeSample[] = [ + { + code: `import * as errorReporting from '@google-cloud/error-reporting'; +new errorReporting.ErrorReporting();`, + description: 'imports the module using * syntax' + }, + { + code: `import {ErrorReporting} from '@google-cloud/error-reporting'; +new ErrorReporting();`, + description: 'imports the module with {} syntax' + }, + { + code: `import {ErrorReporting} from '@google-cloud/error-reporting'; +new ErrorReporting({ + serviceContext: { + service: 'some service' + } +});`, + description: 'imports the module and starts with a partial `serviceContext`' + }, + { + code: `import {ErrorReporting} from '@google-cloud/error-reporting'; +new ErrorReporting({ + projectId: 'some-project', + serviceContext: { + service: 'Some service', + version: 'Some version' + } +});`, + description: + 'imports the module and starts with a complete `serviceContext`' + } +]; + +const JS_CODE_ARRAY: CodeSample[] = [ + { + code: + `const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; +new ErrorReporting();`, + description: 'requires the module using Node 4+ syntax' + }, + { + code: + `const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; +new ErrorReporting({ + serviceContext: { + service: 'some service' + } +});`, + description: + 'requires the module and starts with a partial `serviceContext`' + }, + { + code: + `const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; +new ErrorReporting({ + projectId: 'some-project', + serviceContext: { + service: 'Some service', + version: 'Some version' + } +});`, + description: + 'requires the module and starts with a complete `serviceContext`' + } +]; + +const TIMEOUT_MS = 2 * 60 * 1000; + +const DEBUG = false; +function log(txt: string): void { + if (DEBUG) { + console.log(txt); + } +} + +const stdio = DEBUG ? 'inherit' : 'ignore'; + +interface CodeSample { + code: string; + description: string; +} + +describe('Installation', () => { + let installDir: string|undefined; + before(async () => { + const tgz = await globP(`${process.cwd()}/*.tgz`); + assert.deepStrictEqual( + tgz.length, 0, + `Expected zero tgz files in the current working directory before ` + + `running the test but found files: ${tgz.map(file => { + const parts = file.split(path.sep); + return parts[parts.length - 1]; + })}`); + }); + + beforeEach(async function() { + this.timeout(TIMEOUT_MS); + // This script assumes that you don't already have a TGZ file + // in your current working directory. + installDir = await tmpDirP(); + log(`Using installation directory: ${installDir}`); + await spawnP('npm', ['install'], {stdio}, log); + await spawnP('npm', ['run', 'compile'], {stdio}, log); + await spawnP('npm', ['pack'], {stdio}, log); + const tgz = await globP(`${process.cwd()}/*.tgz`); + if (tgz.length !== 1) { + throw new Error( + `Expected 1 tgz file in current directory, but found ${tgz.length}`); + } + await spawnP('npm', ['init', '-y'], {cwd: installDir, stdio}, log); + await spawnP( + 'npm', ['install', 'typescript', '@types/node', tgz[0]], + {cwd: installDir, stdio}, log); + }); + + afterEach(async function() { + this.timeout(TIMEOUT_MS); + if (installDir) { + await rimrafP(installDir); + } + }); + + describe('When used with Typescript code', () => { + TS_CODE_ARRAY.forEach((sample) => { + it(`should install and work with code that ${sample.description}`, + async function() { + this.timeout(TIMEOUT_MS); + assert(installDir); + const srcDir = path.join(installDir!, 'src'); + await mkdirP(srcDir); + await spawnP( + 'npm', ['install', '--save', 'winston'], + {cwd: installDir, stdio}, log); + await spawnP( + 'npm', ['install', '--save-dev', '@types/winston'], + {cwd: installDir, stdio}, log); + await writeFileP(path.join(srcDir, INDEX_TS), sample.code, 'utf-8'); + await spawnP( + 'npm', ['install', '--save-dev', 'gts', 'typescript@2.x'], + {cwd: installDir, stdio}, log); + await spawnP( + 'gts', ['init', '--yes'], {cwd: installDir, stdio}, log); + await spawnP( + 'npm', ['run', 'compile'], {cwd: installDir, stdio}, log); + const buildDir = path.join(installDir!, 'build'); + await spawnP( + 'node', [path.join(buildDir, 'src', INDEX_JS)], + {cwd: installDir, stdio}, log); + }); + }); + }); + + describe('When used with Javascript code', () => { + JS_CODE_ARRAY.forEach((sample) => { + it(`should install and work with code that ${sample.description}`, + async function() { + this.timeout(TIMEOUT_MS); + assert(installDir); + await spawnP( + 'npm', ['install', '--save', 'winston'], + {cwd: installDir, stdio}, log); + await spawnP( + 'npm', ['install', '--save-dev', '@types/winston'], + {cwd: installDir, stdio}, log); + await writeFileP( + path.join(installDir!, INDEX_JS), sample.code, 'utf-8'); + await spawnP('node', [INDEX_JS], {cwd: installDir, stdio}, log); + }); + }); + }); +}); diff --git a/handwritten/error-reporting/system-test/utils.ts b/handwritten/error-reporting/system-test/utils.ts new file mode 100644 index 00000000000..994672c8baf --- /dev/null +++ b/handwritten/error-reporting/system-test/utils.ts @@ -0,0 +1,87 @@ +/** + * Copyright 2018 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import {ChildProcess, fork, ForkOptions, spawn, SpawnOptions} from 'child_process'; +import {mkdir, readFile, stat, Stats, writeFile} from 'fs'; +import * as glob from 'glob'; +import {ncp} from 'ncp'; +import * as once from 'once'; +import * as path from 'path'; +import * as pify from 'pify'; +import * as rimraf from 'rimraf'; +import * as tmp from 'tmp'; + +export const BUILD_DIRECTORY = 'build'; + +export const globP: (pattern: string) => Promise = pify(glob); +export const ncpP: (src: string, dest: string) => Promise = pify(ncp); +export const readFileP: (path: string, encoding?: string) => + Promise = pify(readFile); +export const writeFileP: (path: string, data: string, encoding?: string) => + Promise = pify(writeFile); +export const statP: (path: string) => Promise = pify(stat); +export const tmpDirP: () => Promise = pify(tmp.dir); +export const rimrafP: (f: string) => Promise = pify(rimraf); +export const mkdirP: (path: string, mode?: number) => Promise = + pify(mkdir); + +export function nodule(nodule: string) { + return path.relative(BUILD_DIRECTORY, `node_modules/${nodule}`); +} + +export function existsP(path: string): Promise { + return statP(path).then( + () => Promise.resolve(true), () => Promise.resolve(false)); +} + +function promisifyChildProcess(childProcess: ChildProcess): Promise { + return new Promise((resolve, reject) => { + const exit = (err?: Error) => once(() => err ? reject(err) : resolve())(); + childProcess.on('error', exit); + childProcess.on('close', (code) => { + if (code === 0) { + exit(); + } else { + exit( + new Error(`Process ${childProcess.pid} exited with code ${code}.`)); + } + }); + }); +} + +export function spawnP( + command: string, args?: string[], options?: SpawnOptions, + log?: (text: string) => void): Promise { + const stringifiedCommand = + `\`${command}${args ? (' ' + args.join(' ')) : ''}\``; + if (log) { + log(`> Running: ${stringifiedCommand}`); + } + return promisifyChildProcess(spawn( + command, args, Object.assign({stdio: 'inherit', shell: true}, options))); +} + +export function forkP( + moduleName: string, args?: string[], options?: ForkOptions, + log?: (text: string) => void): Promise { + const stringifiedCommand = + `\`${moduleName}${args ? (' ' + args.join(' ')) : ''}\``; + if (log) { + log(`> Running: ${stringifiedCommand}`); + } + return promisifyChildProcess( + fork(moduleName, args, Object.assign({stdio: 'inherit'}, options))); +} diff --git a/handwritten/error-reporting/test/unit/google-apis/auth-client.js b/handwritten/error-reporting/test/unit/google-apis/auth-client.js index f5cec3d1175..42558b7d655 100644 --- a/handwritten/error-reporting/test/unit/google-apis/auth-client.js +++ b/handwritten/error-reporting/test/unit/google-apis/auth-client.js @@ -21,15 +21,13 @@ var proxyquire = require('proxyquire'); var Configuration = require('../../../src/configuration.js').Configuration; function verifyReportedMessage(config1, errToReturn, expectedLogs) { - class ServiceStub { - constructor() { - this.authClient = { - getToken: function(cb) { - cb(errToReturn); - }, - }; - this.request = function() {}; - } + function ServiceStub() { + this.authClient = { + getToken: function(cb) { + cb(errToReturn); + }, + }; + this.request = function() {}; } var RequestHandler = proxyquire('../../../src/google-apis/auth-client.js', { diff --git a/handwritten/error-reporting/tsconfig.json b/handwritten/error-reporting/tsconfig.json index 0c250f020b8..653109b2671 100644 --- a/handwritten/error-reporting/tsconfig.json +++ b/handwritten/error-reporting/tsconfig.json @@ -2,9 +2,7 @@ "extends": "./node_modules/gts/tsconfig-google.json", "compilerOptions": { "rootDir": ".", - "outDir": "build", - "declaration": false, - "allowJs": true + "outDir": "build" }, "include": [ "src/*.ts", @@ -16,7 +14,9 @@ "test/*.js", "test/**/*.js", "system-test/*.js", - "system-test/**/*.js" + "system-test/**/*.js", + "system-test/*.ts", + "system-test/**/*.ts" ], "exclude": [ "node_modules" From 85e35b7104d76985770d0067414237b51ec16d10 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Mon, 12 Mar 2018 09:53:06 -0700 Subject: [PATCH 061/527] chore(package): update proxyquire to version 2.0.0 (#69) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 5ae43573fd5..ff94f45fe38 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -110,7 +110,7 @@ "nyc": "^11.3.0", "power-assert": "^1.4.4", "prettier": "^1.7.4", - "proxyquire": "^1.7.11", + "proxyquire": "^2.0.0", "typescript": "~2.6.2" } } From 9b09933f0db227a9ee384bd1b3ec2d97aa0cce4b Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Mon, 12 Mar 2018 13:49:27 -0700 Subject: [PATCH 062/527] chore: unignore package-lock.json and yarn.lock (#72) --- handwritten/error-reporting/.gitignore | 2 - handwritten/error-reporting/package-lock.json | 11942 ++++++++++++++++ handwritten/error-reporting/yarn.lock | 6998 +++++++++ 3 files changed, 18940 insertions(+), 2 deletions(-) create mode 100644 handwritten/error-reporting/package-lock.json create mode 100644 handwritten/error-reporting/yarn.lock diff --git a/handwritten/error-reporting/.gitignore b/handwritten/error-reporting/.gitignore index 8de6c0c9b9c..9e73b0fa34f 100644 --- a/handwritten/error-reporting/.gitignore +++ b/handwritten/error-reporting/.gitignore @@ -8,6 +8,4 @@ google-cloud-error-reporting-*.tgz out/ system-test/secrets.js system-test/*key.json -*.lock -*-lock.js* build diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json new file mode 100644 index 00000000000..a7fcbe24101 --- /dev/null +++ b/handwritten/error-reporting/package-lock.json @@ -0,0 +1,11942 @@ +{ + "name": "@google-cloud/error-reporting", + "version": "0.2.2", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@ava/babel-plugin-throws-helper": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@ava/babel-plugin-throws-helper/-/babel-plugin-throws-helper-2.0.0.tgz", + "integrity": "sha1-L8H+PCEacQcaTsp7j3r1hCzRrnw=", + "dev": true + }, + "@ava/babel-preset-stage-4": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@ava/babel-preset-stage-4/-/babel-preset-stage-4-1.1.0.tgz", + "integrity": "sha512-oWqTnIGXW3k72UFidXzW0ONlO7hnO9x02S/QReJ7NBGeiBH9cUHY9+EfV6C8PXC6YJH++WrliEq03wMSJGNZFg==", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-to-generator": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-exponentiation-operator": "6.24.1", + "package-hash": "1.2.0" + }, + "dependencies": { + "md5-hex": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", + "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", + "dev": true, + "requires": { + "md5-o-matic": "0.1.1" + } + }, + "package-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-1.2.0.tgz", + "integrity": "sha1-AD5WzVe3NqbtYRTMK4FUJnJ3DkQ=", + "dev": true, + "requires": { + "md5-hex": "1.3.0" + } + } + } + }, + "@ava/babel-preset-transform-test-files": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@ava/babel-preset-transform-test-files/-/babel-preset-transform-test-files-3.0.0.tgz", + "integrity": "sha1-ze0RlqjY2TgaUJJAq5LpGl7Aafc=", + "dev": true, + "requires": { + "@ava/babel-plugin-throws-helper": "2.0.0", + "babel-plugin-espower": "2.4.0" + } + }, + "@ava/write-file-atomic": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ava/write-file-atomic/-/write-file-atomic-2.2.0.tgz", + "integrity": "sha512-BTNB3nGbEfJT+69wuqXFr/bQH7Vr7ihx2xGOMNqPgDGhwspoZhiWumDDZNjBy7AScmqS5CELIOGtPVXESyrnDA==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" + } + }, + "@concordance/react": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@concordance/react/-/react-1.0.0.tgz", + "integrity": "sha512-htrsRaQX8Iixlsek8zQU7tE8wcsTQJ5UhZkSPEA8slCDAisKpC/2VgU/ucPn32M5/LjGGXRaUEKvEw1Wiuu4zQ==", + "dev": true, + "requires": { + "arrify": "1.0.1" + } + }, + "@google-cloud/common": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.16.1.tgz", + "integrity": "sha512-1sufDsSfgJ7fuBLq+ux8t3TlydMlyWl9kPZx2WdLINkGtf5RjvXX6EWYZiCMKe8flJ3oC0l95j5atN2uX5n3rg==", + "dev": true, + "requires": { + "array-uniq": "1.0.3", + "arrify": "1.0.1", + "concat-stream": "1.6.1", + "create-error-class": "3.0.2", + "duplexify": "3.5.4", + "ent": "2.2.0", + "extend": "3.0.1", + "google-auto-auth": "0.9.7", + "is": "3.2.1", + "log-driver": "1.2.5", + "methmeth": "1.1.0", + "modelo": "4.2.3", + "request": "2.85.0", + "retry-request": "3.3.1", + "split-array-stream": "1.0.3", + "stream-events": "1.0.2", + "string-format-obj": "1.1.1", + "through2": "2.0.3" + } + }, + "@google-cloud/nodejs-repo-tools": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@google-cloud/nodejs-repo-tools/-/nodejs-repo-tools-2.2.1.tgz", + "integrity": "sha512-H4RmocpcsmH3E95Al1b/LsgdbLSGAPILZQaP+dhUvIPJL7bUjyUCno5pCo9fcCIOPLA44E0pFW5kwGYS3v/1NA==", + "dev": true, + "requires": { + "ava": "0.25.0", + "colors": "1.1.2", + "fs-extra": "5.0.0", + "got": "8.2.0", + "handlebars": "4.0.11", + "lodash": "4.17.5", + "nyc": "11.4.1", + "proxyquire": "1.8.0", + "sinon": "4.3.0", + "string": "3.3.3", + "supertest": "3.0.0", + "yargs": "11.0.0", + "yargs-parser": "9.0.2" + }, + "dependencies": { + "proxyquire": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/proxyquire/-/proxyquire-1.8.0.tgz", + "integrity": "sha1-AtUUpb7ZhvBMuyCTrxZ0FTX3ntw=", + "dev": true, + "requires": { + "fill-keys": "1.0.2", + "module-not-found-error": "1.0.1", + "resolve": "1.1.7" + } + } + } + }, + "@ladjs/time-require": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@ladjs/time-require/-/time-require-0.1.4.tgz", + "integrity": "sha512-weIbJqTMfQ4r1YX85u54DKfjLZs2jwn1XZ6tIOP/pFgMwhIN5BAtaCp/1wn9DzyLsDR9tW0R2NIePcVJ45ivQQ==", + "dev": true, + "requires": { + "chalk": "0.4.0", + "date-time": "0.1.1", + "pretty-ms": "0.2.2", + "text-table": "0.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", + "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=", + "dev": true + }, + "chalk": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", + "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", + "dev": true, + "requires": { + "ansi-styles": "1.0.0", + "has-color": "0.1.7", + "strip-ansi": "0.1.1" + } + }, + "pretty-ms": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-0.2.2.tgz", + "integrity": "sha1-2oeaaC/zOjcBEEbxPWJ/Z8c7hPY=", + "dev": true, + "requires": { + "parse-ms": "0.1.2" + } + }, + "strip-ansi": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", + "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=", + "dev": true + } + } + }, + "@sindresorhus/is": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", + "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", + "dev": true + }, + "@sinonjs/formatio": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", + "integrity": "sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg==", + "dev": true, + "requires": { + "samsam": "1.3.0" + } + }, + "@types/accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", + "dev": true, + "requires": { + "@types/node": "9.4.7" + } + }, + "@types/body-parser": { + "version": "1.16.8", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.16.8.tgz", + "integrity": "sha512-BdN2PXxOFnTXFcyONPW6t0fHjz2fvRZHVMFpaS0wYr+Y8fWEaNOs4V8LEu/fpzQlMx+ahdndgTaGTwPC+J/EeA==", + "dev": true, + "requires": { + "@types/express": "4.11.1", + "@types/node": "9.4.7" + } + }, + "@types/boom": { + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/@types/boom/-/boom-4.3.10.tgz", + "integrity": "sha512-5iXMLKwCxW0FK0G4XgS5kn0VZQv31DhVAeB36YhxzFpWF4QKa6ZLn4XrziIK2j662p9Azs+lFpFrsuUzC8376g==", + "dev": true + }, + "@types/bunyan": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/@types/bunyan/-/bunyan-1.8.4.tgz", + "integrity": "sha512-bxOF3fsm69ezKxdcJ7Oo/PsZMOJ+JIV/QJO2IADfScmR3sLulR88dpSnz6+q+9JJ1kD7dXFFgUrGRSKHLkOX7w==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/node": "9.4.7" + } + }, + "@types/caseless": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.1.tgz", + "integrity": "sha512-FhlMa34NHp9K5MY1Uz8yb+ZvuX0pnvn3jScRSNAb75KHGB8d3rEU6hqMs3Z2vjuytcMfRg6c5CHMc3wtYyD2/A==", + "dev": true + }, + "@types/catbox": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/@types/catbox/-/catbox-7.1.6.tgz", + "integrity": "sha512-xcLIJdHkkqB6dyclgvFee8GjfeVYzTJAoFiOZlAnZ9R5mv/8VCnUuaQ4z/v3GrlKUL4j9YEbhOimtFawGBe4ng==", + "dev": true, + "requires": { + "@types/boom": "4.3.10" + } + }, + "@types/connect": { + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.31.tgz", + "integrity": "sha512-OPSxsP6XqA3984KWDUXq/u05Hu8VWa/2rUVlw/aDUOx87BptIep6xb3NdCxCpKLfLdjZcCE5jR+gouTul3gjdA==", + "dev": true, + "requires": { + "@types/node": "9.4.7" + } + }, + "@types/cookies": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.1.tgz", + "integrity": "sha512-ku6IvbucEyuC6i4zAVK/KnuzWNXdbFd1HkXlNLg/zhWDGTtQT5VhumiPruB/BHW34PWVFwyfwGftDQHfWNxu3Q==", + "dev": true, + "requires": { + "@types/connect": "3.4.31", + "@types/express": "4.11.1", + "@types/keygrip": "1.0.1", + "@types/node": "9.4.7" + } + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/express": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.11.1.tgz", + "integrity": "sha512-ttWle8cnPA5rAelauSWeWJimtY2RsUf2aspYZs7xPHiWgOlPn6nnUfBMtrkcnjFJuIHJF4gNOdVvpLK2Zmvh6g==", + "dev": true, + "requires": { + "@types/body-parser": "1.16.8", + "@types/express-serve-static-core": "4.11.1", + "@types/serve-static": "1.13.1" + } + }, + "@types/express-serve-static-core": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.11.1.tgz", + "integrity": "sha512-EehCl3tpuqiM8RUb+0255M8PhhSwTtLfmO7zBBdv0ay/VTd/zmrqDfQdZFsa5z/PVMbH2yCMZPXsnrImpATyIw==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/node": "9.4.7" + } + }, + "@types/form-data": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz", + "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", + "dev": true, + "requires": { + "@types/node": "9.4.7" + } + }, + "@types/glob": { + "version": "5.0.35", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", + "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", + "dev": true, + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.4.7" + } + }, + "@types/hapi": { + "version": "16.1.14", + "resolved": "https://registry.npmjs.org/@types/hapi/-/hapi-16.1.14.tgz", + "integrity": "sha512-VeWocvlYrFINg4ZloxSPkg9qtd9aHMkH1Lt4bPqguSLSTrd51D67tcz8+crhsWsClViTylB6deRatxZzOnly7g==", + "dev": true, + "requires": { + "@types/boom": "4.3.10", + "@types/catbox": "7.1.6", + "@types/events": "1.2.0", + "@types/joi": "13.0.5", + "@types/mimos": "3.0.1", + "@types/node": "9.4.7", + "@types/podium": "1.0.0", + "@types/shot": "3.4.0" + } + }, + "@types/http-assert": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.2.2.tgz", + "integrity": "sha512-x1553BFcgBVOD6y3tC/2SOVcNaf6b9eH3BvqniAZZwmHWYhyr8ffXTYygQC/hQxNI4Yfc3q0gGUvyiAHV4tRNg==", + "dev": true + }, + "@types/is": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/@types/is/-/is-0.0.18.tgz", + "integrity": "sha512-A7PSzJyDwKbkJ3kvM0gfs9daFyiCwvrSmzA5ToFW1rporicAKgrpZsZJifQQob/QvMwEbwi3zF2o/Lw8K3frxw==", + "dev": true + }, + "@types/joi": { + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@types/joi/-/joi-13.0.5.tgz", + "integrity": "sha512-xhGKDKk8qEK35GFYIkpQXdS03PnL+1eXt8VOHnuvuMOjNCztmTpqiDk2vlDy3GbSctSTBJCkY0PXkaRVJpl2xA==", + "dev": true + }, + "@types/keygrip": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.1.tgz", + "integrity": "sha1-/1QEYtL7TQqIRBzq8n0oewHD2Hg=", + "dev": true + }, + "@types/koa": { + "version": "2.0.44", + "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.0.44.tgz", + "integrity": "sha512-xOg6XLJdKmYriExAF0pV+HYhzftNJbpxplJgjyCwEM2LNLQPMgW4uSHXjgsqSPKsaAgM8CiR31vIeocRibFSjw==", + "dev": true, + "requires": { + "@types/accepts": "1.3.5", + "@types/cookies": "0.7.1", + "@types/events": "1.2.0", + "@types/http-assert": "1.2.2", + "@types/keygrip": "1.0.1", + "@types/koa-compose": "3.2.2", + "@types/node": "9.4.7" + } + }, + "@types/koa-compose": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.2.tgz", + "integrity": "sha1-3BBuAAu/kqOskA91bfRzRIh+6Ec=", + "dev": true + }, + "@types/lodash": { + "version": "4.14.104", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.104.tgz", + "integrity": "sha512-ufQcVg4daO8xQ5kopxRHanqFdL4AI7ondQkV+2f+7mz3gvp0LkBx2zBRC6hfs3T87mzQFmf5Fck7Fi145Ul6NQ==", + "dev": true + }, + "@types/lodash.has": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/@types/lodash.has/-/lodash.has-4.5.3.tgz", + "integrity": "sha512-McmKJoXdSxMYIQzVWKSEGrHnTwJ1ErqXvsTQjFeGEhBmypgCjuANDSqxl4LKaKcoF4mNxMqSzH7wP4yQ0deLeQ==", + "dev": true, + "requires": { + "@types/lodash": "4.14.104" + } + }, + "@types/mime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.0.tgz", + "integrity": "sha512-A2TAGbTFdBw9azHbpVd+/FkdW2T6msN1uct1O9bH3vTerEHKZhTXJUQXy+hNq1B0RagfU8U+KBdqiZpxjhOUQA==", + "dev": true + }, + "@types/mime-db": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/@types/mime-db/-/mime-db-1.27.0.tgz", + "integrity": "sha1-m8AUof0f30dknBpUxt15ZrgoR5I=", + "dev": true + }, + "@types/mimos": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mimos/-/mimos-3.0.1.tgz", + "integrity": "sha512-MATIRH4VMIJki8lcYUZdNQEHuAG7iQ1FWwoLgxV+4fUOly2xZYdhHtGgvQyWiTeJqq2tZbE0nOOgZD6pR0FpNQ==", + "dev": true, + "requires": { + "@types/mime-db": "1.27.0" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/mocha": { + "version": "2.2.48", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-2.2.48.tgz", + "integrity": "sha512-nlK/iyETgafGli8Zh9zJVCTicvU3iajSkRwOh3Hhiva598CMqNJ4NcVCGMTGKpGpTYj/9R8RLzS9NAykSSCqGw==", + "dev": true + }, + "@types/ncp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/ncp/-/ncp-2.0.1.tgz", + "integrity": "sha512-TeiJ7uvv/92ugSqZ0v9l0eNXzutlki0aK+R1K5bfA5SYUil46ITlxLW4iNTCf55P4L5weCmaOdtxGeGWvudwPg==", + "dev": true, + "requires": { + "@types/node": "9.4.7" + } + }, + "@types/node": { + "version": "9.4.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.7.tgz", + "integrity": "sha512-4Ba90mWNx8ddbafuyGGwjkZMigi+AWfYLSDCpovwsE63ia8w93r3oJ8PIAQc3y8U+XHcnMOHPIzNe3o438Ywcw==", + "dev": true + }, + "@types/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@types/once/-/once-1.4.0.tgz", + "integrity": "sha512-cnEvTAVVRqF6OQg/4SLnbxQ0slZJHqZQDve5BzGhcIQtuMpPv8T5QNS2cBPa/W0jTxciqwn7bmJAIGe/bOJ5Kw==", + "dev": true + }, + "@types/pify": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/pify/-/pify-3.0.1.tgz", + "integrity": "sha512-YinwZzicw0EexL6vRwRmELXkkzHdEePXejx7rbVMTMfAqtlT+/9lhRfcXEsuU+Jnl5Vdp0znzxKifPZUC6duFw==", + "dev": true + }, + "@types/podium": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/podium/-/podium-1.0.0.tgz", + "integrity": "sha1-v6ohUb4rHWEJzGn3+qnawsujuyA=", + "dev": true + }, + "@types/request": { + "version": "2.47.0", + "resolved": "https://registry.npmjs.org/@types/request/-/request-2.47.0.tgz", + "integrity": "sha512-/KXM5oev+nNCLIgBjkwbk8VqxmzI56woD4VUxn95O+YeQ8hJzcSmIZ1IN3WexiqBb6srzDo2bdMbsXxgXNkz5Q==", + "dev": true, + "requires": { + "@types/caseless": "0.12.1", + "@types/form-data": "2.2.1", + "@types/node": "9.4.7", + "@types/tough-cookie": "2.3.2" + } + }, + "@types/restify": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@types/restify/-/restify-5.0.7.tgz", + "integrity": "sha512-0bcMA32Ys6nOQnD4QD6vDvfJg7nx5Dbd+oItNFAad3lwnanm0CqxSZpPQVgVMdD4Vrq/dY7yTaEUwsXOFci2iw==", + "dev": true, + "requires": { + "@types/bunyan": "1.8.4", + "@types/node": "9.4.7", + "@types/spdy": "3.4.4" + } + }, + "@types/rimraf": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/rimraf/-/rimraf-2.0.2.tgz", + "integrity": "sha512-Hm/bnWq0TCy7jmjeN5bKYij9vw5GrDFWME4IuxV08278NtU/VdGbzsBohcCUJ7+QMqmUq5hpRKB39HeQWJjztQ==", + "dev": true, + "requires": { + "@types/glob": "5.0.35", + "@types/node": "9.4.7" + } + }, + "@types/serve-static": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.1.tgz", + "integrity": "sha512-jDMH+3BQPtvqZVIcsH700Dfi8Q3MIcEx16g/VdxjoqiGR/NntekB10xdBpirMKnPe9z2C5cBmL0vte0YttOr3Q==", + "dev": true, + "requires": { + "@types/express-serve-static-core": "4.11.1", + "@types/mime": "2.0.0" + } + }, + "@types/shot": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@types/shot/-/shot-3.4.0.tgz", + "integrity": "sha1-RZR3xRh9Pr0wNmCrCZ5+ng87ZW8=", + "dev": true, + "requires": { + "@types/node": "9.4.7" + } + }, + "@types/spdy": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@types/spdy/-/spdy-3.4.4.tgz", + "integrity": "sha512-N9LBlbVRRYq6HgYpPkqQc3a9HJ/iEtVZToW6xlTtJiMhmRJ7jJdV7TaZQJw/Ve/1ePUsQiCTDc4JMuzzag94GA==", + "dev": true, + "requires": { + "@types/node": "9.4.7" + } + }, + "@types/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha1-EHPEvIJHVK49EM+riKsCN7qWTk0=", + "dev": true + }, + "@types/tough-cookie": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.2.tgz", + "integrity": "sha512-vOVmaruQG5EatOU/jM6yU2uCp3Lz6mK1P5Ztu4iJjfM4SVHU9XYktPUQtKlIXuahqXHdEyUarMrBEwg5Cwu+bA==", + "dev": true + }, + "JSV": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz", + "integrity": "sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c=", + "dev": true + }, + "accept": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/accept/-/accept-3.0.2.tgz", + "integrity": "sha512-bghLXFkCOsC1Y2TZ51etWfKDs6q249SAoHTZVfzWWdlZxoij+mgkj9AmUJWQpDY48TfnrTDIe43Xem4zdMe7mQ==", + "requires": { + "boom": "7.2.0", + "hoek": "5.0.3" + } + }, + "accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "requires": { + "mime-types": "2.1.18", + "negotiator": "0.6.1" + } + }, + "acorn": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz", + "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==", + "dev": true + }, + "acorn-es7-plugin": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/acorn-es7-plugin/-/acorn-es7-plugin-1.1.7.tgz", + "integrity": "sha1-8u4fMiipDurRJF+asZIusucdM2s=", + "dev": true + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "requires": { + "acorn": "3.3.0" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + } + } + }, + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "dev": true + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ammo": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ammo/-/ammo-3.0.0.tgz", + "integrity": "sha512-6yoz9MXYV9sgCHrwprHWPxBaJ9/roQRfXzS//4JCNgKfPYcghFNwJQKBt6vWOoSGGRHsP6qsLJ+xtKStKJWdLQ==", + "requires": { + "boom": "6.0.0", + "hoek": "5.0.3" + }, + "dependencies": { + "boom": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-6.0.0.tgz", + "integrity": "sha512-LYLa8BmiiOWjvxTMVh73lcZzd2E5yczrKvxAny1UuzO2tkarLrw4tdp3rdfmus3+YfKcZP0vRSM3Obh+fGK6eA==", + "requires": { + "hoek": "5.0.3" + } + } + } + }, + "ansi-align": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "dev": true, + "requires": { + "string-width": "2.1.1" + } + }, + "ansi-escapes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz", + "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", + "dev": true + }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "requires": { + "micromatch": "2.3.11", + "normalize-path": "2.1.1" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "1.0.3" + } + }, + "argv": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz", + "integrity": "sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas=", + "dev": true + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "1.1.0" + } + }, + "arr-exclude": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/arr-exclude/-/arr-exclude-1.0.0.tgz", + "integrity": "sha1-38fC5VKicHI8zaBM8xKMjL/lxjE=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", + "dev": true + }, + "array-filter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", + "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=", + "dev": true + }, + "array-find": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", + "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "1.0.3" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true + }, + "async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "dev": true, + "requires": { + "lodash": "4.17.5" + } + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "auto-bind": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-1.2.0.tgz", + "integrity": "sha512-Zw7pZp7tztvKnWWtoII4AmqH5a2PV3ZN5F0BPRTGcc1kpRm4b6QXQnPU7Znbl6BfPfqOVOV29g4JeMqZQaqqOA==", + "dev": true + }, + "ava": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/ava/-/ava-0.25.0.tgz", + "integrity": "sha512-4lGNJCf6xL8SvsKVEKxEE46se7JAUIAZoKHw9itTQuwcsydhpAMkBs5gOOiWiwt0JKNIuXWc2/r4r8ZdcNrBEw==", + "dev": true, + "requires": { + "@ava/babel-preset-stage-4": "1.1.0", + "@ava/babel-preset-transform-test-files": "3.0.0", + "@ava/write-file-atomic": "2.2.0", + "@concordance/react": "1.0.0", + "@ladjs/time-require": "0.1.4", + "ansi-escapes": "3.0.0", + "ansi-styles": "3.2.1", + "arr-flatten": "1.1.0", + "array-union": "1.0.2", + "array-uniq": "1.0.3", + "arrify": "1.0.1", + "auto-bind": "1.2.0", + "ava-init": "0.2.1", + "babel-core": "6.26.0", + "babel-generator": "6.26.1", + "babel-plugin-syntax-object-rest-spread": "6.13.0", + "bluebird": "3.5.1", + "caching-transform": "1.0.1", + "chalk": "2.3.2", + "chokidar": "1.7.0", + "clean-stack": "1.3.0", + "clean-yaml-object": "0.1.0", + "cli-cursor": "2.1.0", + "cli-spinners": "1.1.0", + "cli-truncate": "1.1.0", + "co-with-promise": "4.6.0", + "code-excerpt": "2.1.1", + "common-path-prefix": "1.0.0", + "concordance": "3.0.0", + "convert-source-map": "1.5.1", + "core-assert": "0.2.1", + "currently-unhandled": "0.4.1", + "debug": "3.1.0", + "dot-prop": "4.2.0", + "empower-core": "0.6.2", + "equal-length": "1.0.1", + "figures": "2.0.0", + "find-cache-dir": "1.0.0", + "fn-name": "2.0.1", + "get-port": "3.2.0", + "globby": "6.1.0", + "has-flag": "2.0.0", + "hullabaloo-config-manager": "1.1.1", + "ignore-by-default": "1.0.1", + "import-local": "0.1.1", + "indent-string": "3.2.0", + "is-ci": "1.1.0", + "is-generator-fn": "1.0.0", + "is-obj": "1.0.1", + "is-observable": "1.1.0", + "is-promise": "2.1.0", + "last-line-stream": "1.0.0", + "lodash.clonedeepwith": "4.5.0", + "lodash.debounce": "4.0.8", + "lodash.difference": "4.5.0", + "lodash.flatten": "4.4.0", + "loud-rejection": "1.6.0", + "make-dir": "1.2.0", + "matcher": "1.1.0", + "md5-hex": "2.0.0", + "meow": "3.7.0", + "ms": "2.0.0", + "multimatch": "2.1.0", + "observable-to-promise": "0.5.0", + "option-chain": "1.0.0", + "package-hash": "2.0.0", + "pkg-conf": "2.1.0", + "plur": "2.1.2", + "pretty-ms": "3.1.0", + "require-precompiled": "0.1.0", + "resolve-cwd": "2.0.0", + "safe-buffer": "5.1.1", + "semver": "5.5.0", + "slash": "1.0.0", + "source-map-support": "0.5.3", + "stack-utils": "1.0.1", + "strip-ansi": "4.0.0", + "strip-bom-buf": "1.0.0", + "supertap": "1.0.0", + "supports-color": "5.3.0", + "trim-off-newlines": "1.0.1", + "unique-temp-dir": "1.0.0", + "update-notifier": "2.3.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "ava-init": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ava-init/-/ava-init-0.2.1.tgz", + "integrity": "sha512-lXwK5LM+2g1euDRqW1mcSX/tqzY1QU7EjKpqayFPPtNRmbSYZ8RzPO5tqluTToijmtjp2M+pNpVdbcHssC4glg==", + "dev": true, + "requires": { + "arr-exclude": "1.0.0", + "execa": "0.7.0", + "has-yarn": "1.0.0", + "read-pkg-up": "2.0.0", + "write-pkg": "3.1.0" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "dev": true + }, + "axios": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz", + "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=", + "dev": true, + "requires": { + "follow-redirects": "1.4.1", + "is-buffer": "1.1.6" + } + }, + "b64": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/b64/-/b64-4.0.0.tgz", + "integrity": "sha512-EhmUQodKB0sdzPPrbIWbGqA5cQeTWxYrAgNeeT1rLZWtD3tbNTnphz8J4vkXI3cPgBNlXBjzEbzDzq0Nwi4f9A==" + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "babel-core": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", + "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.1", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.5.1", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.5", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + } + } + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "dev": true, + "requires": { + "babel-helper-explode-assignable-expression": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.5" + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-espower": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/babel-plugin-espower/-/babel-plugin-espower-2.4.0.tgz", + "integrity": "sha512-/+SRpy7pKgTI28oEHfn1wkuM5QFAdRq8WNsOOih1dVrdV6A/WbNbRZyl0eX5eyDgtb0lOE27PeDFuCX2j8OxVg==", + "dev": true, + "requires": { + "babel-generator": "6.26.1", + "babylon": "6.18.0", + "call-matcher": "1.0.1", + "core-js": "2.5.3", + "espower-location-detector": "1.0.0", + "espurify": "1.7.0", + "estraverse": "4.2.0" + } + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", + "dev": true + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", + "dev": true + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", + "dev": true + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", + "dev": true + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", + "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", + "dev": true, + "requires": { + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "dev": true, + "requires": { + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true, + "requires": { + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true, + "requires": { + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "regexpu-core": "2.0.0" + } + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "dev": true, + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", + "babel-plugin-syntax-exponentiation-operator": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "dev": true, + "requires": { + "babel-core": "6.26.0", + "babel-runtime": "6.26.0", + "core-js": "2.5.3", + "home-or-tmp": "2.0.0", + "lodash": "4.17.5", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" + }, + "dependencies": { + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "0.5.7" + } + } + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.5" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.3", + "lodash": "4.17.5" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base64url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64url/-/base64url-2.0.0.tgz", + "integrity": "sha1-6sFuA+oUOO/5Qj1puqNiYu0fcLs=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "big-time": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/big-time/-/big-time-2.0.0.tgz", + "integrity": "sha512-OXsmBxlRLwUc65MLta2EOyMTLcjZQkxHkJ81lVPeyVqZag8zhUfKRYIbF3E/IW/LWR8kf8a1GlRYkBXKVGqJOw==" + }, + "binary-extensions": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", + "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", + "dev": true + }, + "bluebird": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", + "dev": true + }, + "body-parser": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", + "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "requires": { + "bytes": "3.0.0", + "content-type": "1.0.4", + "debug": "2.6.9", + "depd": "1.1.2", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "on-finished": "2.3.0", + "qs": "6.5.1", + "raw-body": "2.3.2", + "type-is": "1.6.16" + } + }, + "boom": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", + "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "requires": { + "hoek": "5.0.3" + } + }, + "bounce": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/bounce/-/bounce-1.2.0.tgz", + "integrity": "sha512-8syCGe8B2/WC53118/F/tFy5aW00j+eaGPXmAUP7iBhxc+EBZZxS1vKelWyBCH6IqojgS2t1gF0glH30qAJKEw==", + "requires": { + "boom": "7.2.0", + "hoek": "5.0.3" + } + }, + "boxen": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", + "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "dev": true, + "requires": { + "ansi-align": "2.0.0", + "camelcase": "4.1.0", + "chalk": "2.3.2", + "cli-boxes": "1.0.0", + "string-width": "2.1.1", + "term-size": "1.2.0", + "widest-line": "2.0.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "buf-compare": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buf-compare/-/buf-compare-1.0.1.tgz", + "integrity": "sha1-/vKNqLgROgoNtEMLC2Rntpcws0o=", + "dev": true + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true + }, + "bunyan": { + "version": "1.8.12", + "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.12.tgz", + "integrity": "sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=", + "requires": { + "dtrace-provider": "0.8.6", + "moment": "2.21.0", + "mv": "2.1.1", + "safe-json-stringify": "1.1.0" + } + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "cacheable-request": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", + "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", + "dev": true, + "requires": { + "clone-response": "1.0.2", + "get-stream": "3.0.0", + "http-cache-semantics": "3.8.1", + "keyv": "3.0.0", + "lowercase-keys": "1.0.0", + "normalize-url": "2.0.1", + "responselike": "1.0.2" + } + }, + "caching-transform": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", + "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", + "dev": true, + "requires": { + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" + }, + "dependencies": { + "md5-hex": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", + "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", + "dev": true, + "requires": { + "md5-o-matic": "0.1.1" + } + }, + "write-file-atomic": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", + "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" + } + } + } + }, + "call": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/call/-/call-5.0.1.tgz", + "integrity": "sha512-ollfFPSshiuYLp7AsrmpkQJ/PxCi6AzV81rCjBwWhyF2QGyUY/vPDMzoh4aUcWyucheRglG2LaS5qkIEfLRh6A==", + "requires": { + "boom": "7.2.0", + "hoek": "5.0.3" + } + }, + "call-matcher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-matcher/-/call-matcher-1.0.1.tgz", + "integrity": "sha1-UTTQd5hPcSpU2tPL9i3ijc5BbKg=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "deep-equal": "1.0.1", + "espurify": "1.7.0", + "estraverse": "4.2.0" + } + }, + "call-signature": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/call-signature/-/call-signature-0.0.2.tgz", + "integrity": "sha1-qEq8glpV70yysCi9dOIFpluaSZY=", + "dev": true + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true, + "requires": { + "callsites": "0.2.0" + } + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "2.1.1", + "map-obj": "1.0.1" + } + }, + "capture-stack-trace": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", + "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "catbox": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/catbox/-/catbox-10.0.2.tgz", + "integrity": "sha512-cTQTQeKMhWHU0lX8CADE3g1koGJu+AlcWFzAjMX/8P+XbkScGYw3tJsQpe2Oh8q68vOQbOLacz9k+6V/F3Z9DA==", + "requires": { + "boom": "7.2.0", + "bounce": "1.2.0", + "hoek": "5.0.3", + "joi": "13.1.2" + } + }, + "catbox-memory": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/catbox-memory/-/catbox-memory-3.1.1.tgz", + "integrity": "sha512-fl6TI/uneeUb9NGClKWZWkpCZQrkPmuVz/Jaqqb15vqW6KGfJ/vMP/ZMp8VgAkyTrrRvFHbFcS67sbU7EkvbhQ==", + "requires": { + "big-time": "2.0.0", + "boom": "7.2.0", + "hoek": "5.0.3" + } + }, + "catharsis": { + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.9.tgz", + "integrity": "sha1-mMyJDKZS3S7w5ws3klMQ/56Q/Is=", + "dev": true, + "requires": { + "underscore-contrib": "0.3.0" + } + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "optional": true, + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + } + }, + "chai": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", + "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", + "dev": true, + "requires": { + "assertion-error": "1.1.0", + "check-error": "1.0.2", + "deep-eql": "3.0.1", + "get-func-name": "2.0.0", + "pathval": "1.1.0", + "type-detect": "4.0.8" + }, + "dependencies": { + "pathval": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "dev": true + } + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "requires": { + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.1.3", + "glob-parent": "2.0.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" + } + }, + "ci-info": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.2.tgz", + "integrity": "sha512-uTGIPNx/nSpBdsF6xnseRXLLtfr9VLqkz8ZqHXr3Y7b6SftyRxBGjwMtJj1OhNbmlc1wZzLNAlAcvyIiE8a6ZA==", + "dev": true + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "dev": true + }, + "clang-format": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.2.tgz", + "integrity": "sha512-6X9u1JBMak/9VbC0IZajEDvp19/PbjCanbRO3Z2xsluypQtbPPAGDvGGovLOWoUpXIvJH9vJExmzlqWvwItZxA==", + "dev": true, + "requires": { + "async": "1.5.2", + "glob": "7.1.2", + "resolve": "1.1.7" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "clean-stack": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-1.3.0.tgz", + "integrity": "sha1-noIVAa6XmYbEax1m0tQy2y/UrjE=", + "dev": true + }, + "clean-yaml-object": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz", + "integrity": "sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g=", + "dev": true + }, + "cli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", + "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", + "dev": true, + "requires": { + "exit": "0.1.2", + "glob": "7.1.2" + } + }, + "cli-boxes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "2.0.0" + } + }, + "cli-spinners": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.1.0.tgz", + "integrity": "sha1-8YR7FohE2RemceudFH499JfJDQY=", + "dev": true + }, + "cli-table": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", + "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", + "dev": true, + "requires": { + "colors": "1.0.3" + }, + "dependencies": { + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + } + } + }, + "cli-truncate": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-1.1.0.tgz", + "integrity": "sha512-bAtZo0u82gCfaAGfSNxUdTI9mNyza7D8w4CVCcaOsy7sgwDzvx6ekr6cuWJqY3UGzgnQ1+4wgENup5eIhgxEYA==", + "dev": true, + "requires": { + "slice-ansi": "1.0.0", + "string-width": "2.1.1" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "optional": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true, + "optional": true + } + } + }, + "clone-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.0.tgz", + "integrity": "sha1-6uCiQT9VwJQvgYwin+/OhF1/Oxw=", + "requires": { + "is-regexp": "1.0.0", + "is-supported-regexp-flag": "1.0.0" + } + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "1.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "co-with-promise": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co-with-promise/-/co-with-promise-4.6.0.tgz", + "integrity": "sha1-QT59tvWJOmC5Qs9JLEvsk9tBWrc=", + "dev": true, + "requires": { + "pinkie-promise": "1.0.0" + } + }, + "code-excerpt": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-2.1.1.tgz", + "integrity": "sha512-tJLhH3EpFm/1x7heIW0hemXJTUU5EWl2V0EIX558jp05Mt1U6DVryCgkp3l37cxqs+DNbNgxG43SkwJXpQ14Jw==", + "dev": true, + "requires": { + "convert-to-spaces": "1.0.2" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "codecov": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.0.0.tgz", + "integrity": "sha1-wnO4xPEpRXI+jcnSWAPYk0Pl8o4=", + "dev": true, + "requires": { + "argv": "0.0.2", + "request": "2.81.0", + "urlgrey": "0.4.4" + }, + "dependencies": { + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "dev": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "requires": { + "boom": "2.10.1" + } + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.6", + "mime-types": "2.1.18" + } + }, + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "dev": true + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "dev": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "dev": true + }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "dev": true + }, + "request": { + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "dev": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.6", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.18", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.4", + "tunnel-agent": "0.6.0", + "uuid": "3.2.1" + } + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "requires": { + "hoek": "2.16.3" + } + } + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true + }, + "combined-stream": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "dev": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "commander": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.0.tgz", + "integrity": "sha512-7B1ilBwtYSbetCgTY1NJFg+gVpestg0fdA1MhC1Vs4ssyfSXnCAjFr+QcQM9/RedXC0EaUx1sG8Smgw2VfgKEg==", + "dev": true + }, + "comment-parser": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-0.3.2.tgz", + "integrity": "sha1-PAPwd2uGo239mgosl8YwfzMggv4=", + "dev": true, + "requires": { + "readable-stream": "2.3.5" + } + }, + "common-path-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-1.0.0.tgz", + "integrity": "sha1-zVL28HEuC6q5fW+XModPIvR3UsA=", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-gslSSJx03QKa59cIKqeJO9HQ/WZMotvYJCuaUULrLpjj8oG40kV2Z+gz82pVxlTkOADi4PJxQPPfhl1ELYrrXw==", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.5", + "typedarray": "0.0.6" + } + }, + "concordance": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/concordance/-/concordance-3.0.0.tgz", + "integrity": "sha512-CZBzJ3/l5QJjlZM20WY7+5GP5pMTw+1UEbThcpMw8/rojsi5sBCiD8ZbBLtD+jYpRGAkwuKuqk108c154V9eyQ==", + "dev": true, + "requires": { + "date-time": "2.1.0", + "esutils": "2.0.2", + "fast-diff": "1.1.2", + "function-name-support": "0.2.0", + "js-string-escape": "1.0.1", + "lodash.clonedeep": "4.5.0", + "lodash.flattendeep": "4.4.0", + "lodash.merge": "4.6.1", + "md5-hex": "2.0.0", + "semver": "5.5.0", + "well-known-symbols": "1.0.0" + }, + "dependencies": { + "date-time": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/date-time/-/date-time-2.1.0.tgz", + "integrity": "sha512-/9+C44X7lot0IeiyfgJmETtRMhBidBYM2QFFIkGa0U1k+hSyY87Nw7PY3eDqpvCBm7I3WCSfPeZskW/YYq6m4g==", + "dev": true, + "requires": { + "time-zone": "1.0.0" + } + } + } + }, + "configstore": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.1.tgz", + "integrity": "sha512-5oNkD/L++l0O6xGXxb1EWS7SivtjfGQlRyxJsYgE0Z495/L81e2h4/d3r969hoPXuFItzNOKMtsXgYG4c7dYvw==", + "dev": true, + "requires": { + "dot-prop": "4.2.0", + "graceful-fs": "4.1.11", + "make-dir": "1.2.0", + "unique-string": "1.0.0", + "write-file-atomic": "2.3.0", + "xdg-basedir": "3.0.0" + } + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, + "requires": { + "date-now": "0.1.4" + } + }, + "content": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/content/-/content-4.0.4.tgz", + "integrity": "sha512-h0r6/VHlhrLVFrTj612v5EPwqyMs3L79Uf4vEw0zFmywodU8TveiIuINp0//3/GRnAWrQbgSnazSosNkyAeVNA==", + "requires": { + "boom": "7.2.0" + } + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "dev": true + }, + "convert-to-spaces": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-1.0.2.tgz", + "integrity": "sha1-fj5Iu+bZl7FBfdyihoIEtNPYVxU=", + "dev": true + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "cookiejar": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.1.tgz", + "integrity": "sha1-Qa1XsbVVlR7BcUEqgZQrHoIA00o=", + "dev": true + }, + "cookies": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.7.1.tgz", + "integrity": "sha1-fIphX1SBxhq58WyDNzG8uPZjuZs=", + "dev": true, + "requires": { + "depd": "1.1.2", + "keygrip": "1.0.2" + } + }, + "core-assert": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/core-assert/-/core-assert-0.2.1.tgz", + "integrity": "sha1-+F4s+b/tKPdzzIs/pcW2m9wC/j8=", + "dev": true, + "requires": { + "buf-compare": "1.0.1", + "is-error": "2.2.1" + } + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cp-file": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-3.2.0.tgz", + "integrity": "sha1-b4NhYlRiTwrViqSqjQdvAmvn4Yg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "mkdirp": "0.5.1", + "nested-error-stacks": "1.0.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "readable-stream": "2.3.5" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "2.0.4" + } + } + } + }, + "cpy": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cpy/-/cpy-4.0.1.tgz", + "integrity": "sha1-tnJn66LzlgugalphrJQDNCKDNCQ=", + "dev": true, + "requires": { + "cp-file": "3.2.0", + "globby": "4.1.0", + "meow": "3.7.0", + "nested-error-stacks": "1.0.2", + "object-assign": "4.1.1", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "dev": true, + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "globby": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-4.1.0.tgz", + "integrity": "sha1-CA9UVJ7BuCpsYOYx/ILhIR2+lfg=", + "dev": true, + "requires": { + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "6.0.4", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "2.0.4" + } + } + } + }, + "cpy-cli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cpy-cli/-/cpy-cli-1.0.1.tgz", + "integrity": "sha1-Z/taSi3sKMqKv/N13kuecfanVhw=", + "dev": true, + "requires": { + "cpy": "4.0.1", + "meow": "3.7.0" + } + }, + "create-error-class": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "dev": true, + "requires": { + "capture-stack-trace": "1.0.0" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "4.1.2", + "shebang-command": "1.2.0", + "which": "1.3.0" + } + }, + "cryptiles": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-4.1.1.tgz", + "integrity": "sha512-YuQUPbcOmaZsdvxJZ25DCA1W+lLIRoPJKBDKin+St1RCYEERSfoe1d25B1MvWNHN3e8SpFSVsqYvEUjp8J9H2w==", + "requires": { + "boom": "7.2.0" + } + }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "dev": true + }, + "cst": { + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/cst/-/cst-0.4.10.tgz", + "integrity": "sha512-U5ETe1IOjq2h56ZcBE3oe9rT7XryCH6IKgPMv0L7sSk6w29yR3p5egCK0T3BDNHHV95OoUBgXsqiVG+3a900Ag==", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babylon": "6.18.0", + "source-map-support": "0.4.18" + }, + "dependencies": { + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "0.5.7" + } + } + } + }, + "csv": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/csv/-/csv-1.2.1.tgz", + "integrity": "sha1-UjHt/BxxUlEuxFeBB2p6l/9SXAw=", + "requires": { + "csv-generate": "1.1.2", + "csv-parse": "1.3.3", + "csv-stringify": "1.1.2", + "stream-transform": "0.2.2" + } + }, + "csv-generate": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-1.1.2.tgz", + "integrity": "sha1-7GsA7a7W5ZrZwgWC9MNk4osUYkA=" + }, + "csv-parse": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-1.3.3.tgz", + "integrity": "sha1-0c/YdDwvhJoKuy/VRNtWaV0ZpJA=" + }, + "csv-stringify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-1.1.2.tgz", + "integrity": "sha1-d6QVJlgbzjOA8SsA18W7rHDIK1g=", + "requires": { + "lodash.get": "4.4.2" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "1.0.2" + } + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "dev": true, + "requires": { + "es5-ext": "0.10.40" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "1.0.0" + } + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "date-time": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/date-time/-/date-time-0.1.1.tgz", + "integrity": "sha1-7S9tk9l5DOL9ZtW1/z7dW7y/Owc=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "dev": true, + "requires": { + "decamelize": "1.2.0", + "map-obj": "1.0.1" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "1.0.0" + } + }, + "deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", + "dev": true + }, + "deep-extend": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-properties": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "dev": true, + "requires": { + "foreach": "2.0.5", + "object-keys": "1.0.11" + } + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "5.0.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.0", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "rimraf": "2.4.5" + }, + "dependencies": { + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "2.0.4" + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "detect-node": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz", + "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=" + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "diff-match-patch": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.0.tgz", + "integrity": "sha1-HMPIOkkNZ/ldkeOfatHy4Ia2MEg=", + "dev": true + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "2.0.2" + } + }, + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "dev": true, + "requires": { + "domelementtype": "1.1.3", + "entities": "1.1.1" + }, + "dependencies": { + "domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", + "dev": true + } + } + }, + "domelementtype": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", + "dev": true + }, + "domhandler": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", + "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=", + "dev": true, + "requires": { + "domelementtype": "1.3.0" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "requires": { + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" + } + }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "dev": true, + "requires": { + "is-obj": "1.0.1" + } + }, + "dtrace-provider": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.6.tgz", + "integrity": "sha1-QooiOv4DQl0s1tY0f99AxmkDVj0=", + "optional": true, + "requires": { + "nan": "2.9.2" + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "duplexify": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.4.tgz", + "integrity": "sha512-JzYSLYMhoVVBe8+mbHQ4KgpvHpm0DZpJuL8PY93Vyv1fW7jYJ90LoXa1di/CVbJM+TgMs91rbDapE/RNIfnJsA==", + "dev": true, + "requires": { + "end-of-stream": "1.4.1", + "inherits": "2.0.3", + "readable-stream": "2.3.5", + "stream-shift": "1.0.0" + } + }, + "eastasianwidth": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.1.1.tgz", + "integrity": "sha1-RNZW3p2kFWlEZzNTZfsxR7hXK3w=", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "ecdsa-sig-formatter": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.9.tgz", + "integrity": "sha1-S8kmJ07Dtau1AW5+HWCSGsJisqE=", + "dev": true, + "requires": { + "base64url": "2.0.0", + "safe-buffer": "5.1.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "empower": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/empower/-/empower-1.2.3.tgz", + "integrity": "sha1-bw2nNEf07dg4/sXGAxOoi6XLhSs=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "empower-core": "0.6.2" + } + }, + "empower-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/empower-assert/-/empower-assert-1.0.1.tgz", + "integrity": "sha1-MeMQq8BluqfDoEh+a+W7zGXzwd4=", + "dev": true, + "requires": { + "estraverse": "4.2.0" + } + }, + "empower-core": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/empower-core/-/empower-core-0.6.2.tgz", + "integrity": "sha1-Wt71ZgiOMfuoC6CjbfR9cJQWkUQ=", + "dev": true, + "requires": { + "call-signature": "0.0.2", + "core-js": "2.5.3" + } + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "1.4.0" + } + }, + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "dev": true + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", + "dev": true + }, + "equal-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/equal-length/-/equal-length-1.0.1.tgz", + "integrity": "sha1-IcoRLUirJLTh5//A5TOdMf38J0w=", + "dev": true + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "dev": true, + "requires": { + "is-arrayish": "0.2.1" + } + }, + "error-inject": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/error-inject/-/error-inject-1.0.0.tgz", + "integrity": "sha1-4rPZG1Su1nLzCdlQ0VSFD6EdTzc=", + "dev": true + }, + "es5-ext": { + "version": "0.10.40", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.40.tgz", + "integrity": "sha512-S9Fh3oya5OOvYSNGvPZJ+vyrs6VYpe1IXPowVe3N1OhaiwVaGlwfn3Zf5P5klYcWOA0toIwYQW8XEv/QqhdHvQ==", + "dev": true, + "requires": { + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1" + } + }, + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.40", + "es6-symbol": "3.1.1" + } + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.40", + "es6-iterator": "2.0.3", + "es6-set": "0.1.5", + "es6-symbol": "3.1.1", + "event-emitter": "0.3.5" + } + }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.40", + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1", + "event-emitter": "0.3.5" + } + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.40" + } + }, + "es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.40", + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1" + } + }, + "escallmatch": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/escallmatch/-/escallmatch-1.5.0.tgz", + "integrity": "sha1-UAmdhugJGwkt+N37w/mm+wWgJNA=", + "dev": true, + "requires": { + "call-matcher": "1.0.1", + "esprima": "2.7.3" + }, + "dependencies": { + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + } + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-regexp-component": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/escape-regexp-component/-/escape-regexp-component-1.0.2.tgz", + "integrity": "sha1-nGO20LJf8qiMOtvRjFthrMO5+qI=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", + "dev": true, + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.6.1" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } + }, + "escope": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", + "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "dev": true, + "requires": { + "es6-map": "0.1.5", + "es6-weak-map": "2.0.2", + "esrecurse": "4.2.1", + "estraverse": "4.2.0" + } + }, + "eslint": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", + "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", + "dev": true, + "requires": { + "ajv": "5.5.2", + "babel-code-frame": "6.26.0", + "chalk": "2.3.2", + "concat-stream": "1.6.1", + "cross-spawn": "5.1.0", + "debug": "3.1.0", + "doctrine": "2.1.0", + "eslint-scope": "3.7.1", + "eslint-visitor-keys": "1.0.0", + "espree": "3.5.4", + "esquery": "1.0.0", + "esutils": "2.0.2", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.2", + "globals": "11.3.0", + "ignore": "3.3.7", + "imurmurhash": "0.1.4", + "inquirer": "3.3.0", + "is-resolvable": "1.1.0", + "js-yaml": "3.11.0", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.5", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.0", + "require-uncached": "1.0.3", + "semver": "5.5.0", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", + "table": "4.0.2", + "text-table": "0.2.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "globals": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.3.0.tgz", + "integrity": "sha512-kkpcKNlmQan9Z5ZmgqKH/SMbSmjxQ7QjyNqfXVc8VJcoBV2UEg+sxQD15GQofGRh2hfpwUb70VC31DR7Rq5Hdw==", + "dev": true + } + } + }, + "eslint-config-prettier": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-2.9.0.tgz", + "integrity": "sha512-ag8YEyBXsm3nmOv1Hz991VtNNDMRa+MNy8cY47Pl4bw6iuzqKbJajXdqUpiw13STdLLrznxgm1hj9NhxeOYq0A==", + "dev": true, + "requires": { + "get-stdin": "5.0.1" + }, + "dependencies": { + "get-stdin": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", + "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=", + "dev": true + } + } + }, + "eslint-plugin-node": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", + "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", + "dev": true, + "requires": { + "ignore": "3.3.7", + "minimatch": "3.0.4", + "resolve": "1.5.0", + "semver": "5.5.0" + }, + "dependencies": { + "resolve": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + } + } + }, + "eslint-plugin-prettier": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.0.tgz", + "integrity": "sha512-floiaI4F7hRkTrFe8V2ItOK97QYrX75DjmdzmVITZoAP6Cn06oEDPQRsO6MlHEP/u2SxI3xQ52Kpjw6j5WGfeQ==", + "dev": true, + "requires": { + "fast-diff": "1.1.2", + "jest-docblock": "21.2.0" + } + }, + "eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "dev": true, + "requires": { + "esrecurse": "4.2.1", + "estraverse": "4.2.0" + } + }, + "eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", + "dev": true + }, + "espower": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/espower/-/espower-2.1.0.tgz", + "integrity": "sha1-zh7bPZhwKEH99ZbRy46FvcSujkg=", + "dev": true, + "requires": { + "array-find": "1.0.0", + "escallmatch": "1.5.0", + "escodegen": "1.9.1", + "escope": "3.6.0", + "espower-location-detector": "1.0.0", + "espurify": "1.7.0", + "estraverse": "4.2.0", + "source-map": "0.5.7", + "type-name": "2.0.2", + "xtend": "4.0.1" + } + }, + "espower-loader": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/espower-loader/-/espower-loader-1.2.2.tgz", + "integrity": "sha1-7bRsPFmga6yOpzppXIblxaC8gto=", + "dev": true, + "requires": { + "convert-source-map": "1.5.1", + "espower-source": "2.2.0", + "minimatch": "3.0.4", + "source-map-support": "0.4.18", + "xtend": "4.0.1" + }, + "dependencies": { + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "0.5.7" + } + } + } + }, + "espower-location-detector": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/espower-location-detector/-/espower-location-detector-1.0.0.tgz", + "integrity": "sha1-oXt+zFnTDheeK+9z+0E3cEyzMbU=", + "dev": true, + "requires": { + "is-url": "1.2.2", + "path-is-absolute": "1.0.1", + "source-map": "0.5.7", + "xtend": "4.0.1" + } + }, + "espower-source": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/espower-source/-/espower-source-2.2.0.tgz", + "integrity": "sha1-fgBSVa5HtcE2RIZEs/PYAtUD91I=", + "dev": true, + "requires": { + "acorn": "5.5.3", + "acorn-es7-plugin": "1.1.7", + "convert-source-map": "1.5.1", + "empower-assert": "1.0.1", + "escodegen": "1.9.1", + "espower": "2.1.0", + "estraverse": "4.2.0", + "merge-estraverse-visitors": "1.0.0", + "multi-stage-sourcemap": "0.2.1", + "path-is-absolute": "1.0.1", + "xtend": "4.0.1" + } + }, + "espree": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "dev": true, + "requires": { + "acorn": "5.5.3", + "acorn-jsx": "3.0.1" + } + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "espurify": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/espurify/-/espurify-1.7.0.tgz", + "integrity": "sha1-HFz2y8zDLm9jk4C9T5kfq5up0iY=", + "dev": true, + "requires": { + "core-js": "2.5.3" + } + }, + "esquery": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", + "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", + "dev": true, + "requires": { + "estraverse": "4.2.0" + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "4.2.0" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.40" + } + }, + "ewma": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ewma/-/ewma-2.0.1.tgz", + "integrity": "sha512-MYYK17A76cuuyvkR7MnqLW4iFYPEi5Isl2qb8rXiWpLiwFS9dxW/rncuNnjjgSENuVqZQkIuR4+DChVL4g1lnw==", + "requires": { + "assert-plus": "1.0.0" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "0.1.1" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "2.2.3" + } + }, + "express": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz", + "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", + "requires": { + "accepts": "1.3.5", + "array-flatten": "1.1.1", + "body-parser": "1.18.2", + "content-disposition": "0.5.2", + "content-type": "1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "1.1.2", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", + "finalhandler": "1.1.1", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "1.1.2", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "2.0.3", + "qs": "6.5.1", + "range-parser": "1.2.0", + "safe-buffer": "5.1.1", + "send": "0.16.2", + "serve-static": "1.13.2", + "setprototypeof": "1.1.0", + "statuses": "1.4.0", + "type-is": "1.6.16", + "utils-merge": "1.0.1", + "vary": "1.1.2" + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + }, + "external-editor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz", + "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==", + "dev": true, + "requires": { + "chardet": "0.4.2", + "iconv-lite": "0.4.19", + "tmp": "0.0.33" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "fast-diff": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz", + "integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "1.0.5" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "requires": { + "flat-cache": "1.3.0", + "object-assign": "4.1.1" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fill-keys": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fill-keys/-/fill-keys-1.0.2.tgz", + "integrity": "sha1-mo+jb06K1jTjv2tPPIiCVRRS6yA=", + "dev": true, + "requires": { + "is-object": "1.0.1", + "merge-descriptors": "1.0.1" + } + }, + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "dev": true, + "requires": { + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" + } + }, + "finalhandler": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.4.0", + "unpipe": "1.0.0" + } + }, + "find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "dev": true, + "requires": { + "commondir": "1.0.1", + "make-dir": "1.2.0", + "pkg-dir": "2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "2.0.0" + } + }, + "flat-cache": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", + "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", + "dev": true, + "requires": { + "circular-json": "0.3.3", + "del": "2.2.2", + "graceful-fs": "4.1.11", + "write": "0.2.1" + } + }, + "fn-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fn-name/-/fn-name-2.0.1.tgz", + "integrity": "sha1-UhTXU3pNBqSjAcDMJi/rhBiAAuc=", + "dev": true + }, + "follow-redirects": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.4.1.tgz", + "integrity": "sha512-uxYePVPogtya1ktGnAAXOacnbIuRMB4dkvqeNz2qTtTQsuzSfbDolV+wMMKxAmCx0bLgAKLbBOkjItMbbkR1vg==", + "dev": true, + "requires": { + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "1.0.2" + } + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "dev": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.6", + "mime-types": "2.1.18" + } + }, + "formidable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.0.tgz", + "integrity": "sha512-hr9aT30rAi7kf8Q2aaTpSP7xGMhlJ+MdrUDVZs3rxbD3L/K46A86s2VY7qC2D2kGYGBtiT/3j6wTx1eeUq5xAQ==" + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.5" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", + "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", + "dev": true, + "optional": true, + "requires": { + "nan": "2.9.2", + "node-pre-gyp": "0.6.39" + }, + "dependencies": { + "abbrev": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", + "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", + "dev": true, + "optional": true + }, + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "dev": true, + "optional": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "aproba": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", + "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "dev": true, + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.2.9" + } + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true, + "optional": true + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true, + "optional": true + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "dev": true, + "optional": true + }, + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "brace-expansion": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", + "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", + "dev": true, + "requires": { + "balanced-match": "0.4.2", + "concat-map": "0.0.1" + } + }, + "buffer-shims": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true, + "optional": true + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "dev": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "requires": { + "boom": "2.10.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "optional": true + } + } + }, + "debug": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", + "dev": true, + "optional": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.2.tgz", + "integrity": "sha1-ca1dIEvxempsqPRQxhRUBm70YeE=", + "dev": true, + "optional": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "dev": true, + "optional": true + }, + "extsprintf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, + "optional": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.15" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" + } + }, + "fstream-ignore": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", + "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", + "dev": true, + "optional": true, + "requires": { + "fstream": "1.0.11", + "inherits": "2.0.3", + "minimatch": "3.0.4" + } + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "optional": true, + "requires": { + "aproba": "1.1.1", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "optional": true + } + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "dev": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "dev": true, + "optional": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true, + "optional": true + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.0", + "sshpk": "1.13.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true, + "optional": true + }, + "jodid25519": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", + "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true, + "optional": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, + "optional": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true, + "optional": true + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true, + "optional": true + }, + "jsprim": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", + "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "optional": true + } + } + }, + "mime-db": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", + "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=", + "dev": true + }, + "mime-types": { + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", + "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", + "dev": true, + "requires": { + "mime-db": "1.27.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true, + "optional": true + }, + "node-pre-gyp": { + "version": "0.6.39", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", + "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", + "dev": true, + "optional": true, + "requires": { + "detect-libc": "1.0.2", + "hawk": "3.1.3", + "mkdirp": "0.5.1", + "nopt": "4.0.1", + "npmlog": "4.1.0", + "rc": "1.2.1", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.3.0", + "tar": "2.2.1", + "tar-pack": "3.4.0" + } + }, + "nopt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "dev": true, + "optional": true, + "requires": { + "abbrev": "1.1.0", + "osenv": "0.1.4" + } + }, + "npmlog": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", + "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "dev": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true, + "optional": true + }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", + "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", + "dev": true, + "optional": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", + "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", + "dev": true, + "requires": { + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "1.0.1", + "util-deprecate": "1.0.2" + } + }, + "request": { + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "dev": true, + "optional": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.15", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.0.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.0.1" + } + }, + "rimraf": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "dev": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", + "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", + "dev": true + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true, + "optional": true + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "sshpk": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", + "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", + "dev": true, + "optional": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jodid25519": "1.0.2", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "optional": true + } + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", + "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", + "dev": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "optional": true + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "dev": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "tar-pack": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz", + "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=", + "dev": true, + "optional": true, + "requires": { + "debug": "2.6.8", + "fstream": "1.0.11", + "fstream-ignore": "1.0.5", + "once": "1.4.0", + "readable-stream": "2.2.9", + "rimraf": "2.6.1", + "tar": "2.2.1", + "uid-number": "0.0.6" + } + }, + "tough-cookie": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "dev": true, + "optional": true, + "requires": { + "punycode": "1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + }, + "uid-number": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", + "dev": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "uuid": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", + "dev": true, + "optional": true + }, + "verror": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", + "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", + "dev": true, + "optional": true, + "requires": { + "extsprintf": "1.0.2" + } + }, + "wide-align": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "dev": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } + }, + "function-name-support": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/function-name-support/-/function-name-support-0.2.0.tgz", + "integrity": "sha1-VdO/qm6v1QWlD5vIH99XVkoLsHE=", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "gcp-metadata": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.6.3.tgz", + "integrity": "sha512-MSmczZctbz91AxCvqp9GHBoZOSbJKAICV7Ow/AIWSJZRrRchUd5NL1b2P4OfP+4m490BEUPhhARfpHdqCxuCvg==", + "dev": true, + "requires": { + "axios": "0.18.0", + "extend": "3.0.1", + "retry-axios": "0.3.2" + } + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "dev": true + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true + }, + "get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "1.0.0" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "2.0.0", + "is-glob": "2.0.1" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "2.0.1" + } + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "dev": true, + "requires": { + "ini": "1.3.5" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "1.0.2", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "2.0.4" + } + } + } + }, + "google-auth-library": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-1.3.1.tgz", + "integrity": "sha512-NcAzFY+ScalfjmFTHnCXInuivtbIfib9irJ5H8AHONy3eA56YW1Tu5X1dtbjw5TNBgP+BMu+nIrglJsAlfZ/Hg==", + "dev": true, + "requires": { + "axios": "0.18.0", + "gcp-metadata": "0.6.3", + "gtoken": "2.1.1", + "jws": "3.1.4", + "lodash.isstring": "4.0.1", + "lru-cache": "4.1.2", + "retry-axios": "0.3.2" + } + }, + "google-auto-auth": { + "version": "0.9.7", + "resolved": "https://registry.npmjs.org/google-auto-auth/-/google-auto-auth-0.9.7.tgz", + "integrity": "sha512-Nro7aIFrL2NP0G7PoGrJqXGMZj8AjdBOcbZXRRm/8T3w08NUHIiNN3dxpuUYzDsZizslH+c8e+7HXL8vh3JXTQ==", + "dev": true, + "requires": { + "async": "2.6.0", + "gcp-metadata": "0.6.3", + "google-auth-library": "1.3.1", + "request": "2.85.0" + } + }, + "google-p12-pem": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-1.0.2.tgz", + "integrity": "sha512-+EuKr4CLlGsnXx4XIJIVkcKYrsa2xkAmCvxRhX2HsazJzUBAJ35wARGeApHUn4nNfPD03Vl057FskNr20VaCyg==", + "dev": true, + "requires": { + "node-forge": "0.7.4", + "pify": "3.0.0" + } + }, + "got": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/got/-/got-8.2.0.tgz", + "integrity": "sha512-giadqJpXIwjY+ZsuWys8p2yjZGhOHiU4hiJHjS/oeCxw1u8vANQz3zPlrxW2Zw/siCXsSMI3hvzWGcnFyujyAg==", + "dev": true, + "requires": { + "@sindresorhus/is": "0.7.0", + "cacheable-request": "2.1.4", + "decompress-response": "3.3.0", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "into-stream": "3.1.0", + "is-retry-allowed": "1.1.0", + "isurl": "1.0.0", + "lowercase-keys": "1.0.0", + "mimic-response": "1.0.0", + "p-cancelable": "0.3.0", + "p-timeout": "2.0.1", + "pify": "3.0.0", + "safe-buffer": "5.1.1", + "timed-out": "4.0.1", + "url-parse-lax": "3.0.0", + "url-to-options": "1.0.1" + }, + "dependencies": { + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "2.0.0" + } + } + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", + "dev": true + }, + "growl": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", + "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==", + "dev": true + }, + "gtoken": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-2.1.1.tgz", + "integrity": "sha512-9wUP0Gb06lEJxX0w/w+n5Ghxh+/To0rbZSRCOu4Pih2sSDYXJwV4T7q6MPLW31cuKz0wqFQ60mW9nIKc8IgoyA==", + "dev": true, + "requires": { + "axios": "0.18.0", + "google-p12-pem": "1.0.2", + "jws": "3.1.4", + "mime": "2.2.0", + "pify": "3.0.0" + }, + "dependencies": { + "mime": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.2.0.tgz", + "integrity": "sha512-0Qz9uF1ATtl8RKJG4VRfOymh7PyEor6NbrI/61lRfuRe4vx9SNATrvAeTj2EWVRKjEQGskrzWkJBBY5NbaVHIA==", + "dev": true + } + } + }, + "gts": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/gts/-/gts-0.5.4.tgz", + "integrity": "sha512-bDxE/NvHu+v0uW0qbUMYClrGCi81Ug4Wa7BsV/yUtdEh67C3K56BiqAk8yBOttLH1k4XYks+7QSJy7XOf3vaQw==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "clang-format": "1.2.2", + "inquirer": "3.3.0", + "meow": "4.0.0", + "pify": "3.0.0", + "rimraf": "2.6.2", + "tslint": "5.9.1", + "update-notifier": "2.3.0", + "write-file-atomic": "2.3.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "camelcase-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", + "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", + "dev": true, + "requires": { + "camelcase": "4.1.0", + "map-obj": "2.0.0", + "quick-lru": "1.1.0" + } + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" + } + }, + "map-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", + "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", + "dev": true + }, + "meow": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.0.tgz", + "integrity": "sha512-Me/kel335m6vMKmEmA6c87Z6DUFW3JqkINRnxkbC+A/PUm0D5Fl2dEBQrPKnqCL9Te/CIa1MUt/0InMJhuC/sw==", + "dev": true, + "requires": { + "camelcase-keys": "4.2.0", + "decamelize-keys": "1.1.0", + "loud-rejection": "1.6.0", + "minimist": "1.2.0", + "minimist-options": "3.0.2", + "normalize-package-data": "2.4.0", + "read-pkg-up": "3.0.0", + "redent": "2.0.0", + "trim-newlines": "2.0.0" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "1.3.1", + "json-parse-better-errors": "1.0.1" + } + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "3.0.0" + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "4.0.0", + "normalize-package-data": "2.4.0", + "path-type": "3.0.0" + } + }, + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "read-pkg": "3.0.0" + } + }, + "redent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", + "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", + "dev": true, + "requires": { + "indent-string": "3.2.0", + "strip-indent": "2.0.0" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "7.1.2" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "trim-newlines": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", + "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", + "dev": true + } + } + }, + "handle-thing": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", + "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=" + }, + "handlebars": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "dev": true, + "requires": { + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "hapi": { + "version": "17.2.2", + "resolved": "https://registry.npmjs.org/hapi/-/hapi-17.2.2.tgz", + "integrity": "sha512-LFEpibG2iIggfN/5M+EDeTzNUN/JNxUjH6WSpn4+uz2/Aj+Pd6ElxyCOrKAh4/hdh+6gKWYnGBZt03LJ66TYTA==", + "requires": { + "accept": "3.0.2", + "ammo": "3.0.0", + "boom": "7.2.0", + "bounce": "1.2.0", + "call": "5.0.1", + "catbox": "10.0.2", + "catbox-memory": "3.1.1", + "heavy": "6.1.0", + "hoek": "5.0.3", + "joi": "13.1.2", + "mimos": "4.0.0", + "podium": "3.1.2", + "shot": "4.0.5", + "statehood": "6.0.5", + "subtext": "6.0.7", + "teamwork": "3.0.1", + "topo": "3.0.0" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "dev": true, + "requires": { + "ajv": "5.5.2", + "har-schema": "2.0.0" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-color": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", + "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=", + "dev": true + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", + "dev": true + }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "dev": true, + "requires": { + "has-symbol-support-x": "1.4.2" + } + }, + "has-yarn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-1.0.0.tgz", + "integrity": "sha1-ieJdtgS3Jcj1l2//Ct3JIbgopac=", + "dev": true + }, + "hawk": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", + "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", + "dev": true, + "requires": { + "boom": "4.3.1", + "cryptiles": "3.1.2", + "hoek": "4.2.1", + "sntp": "2.1.0" + }, + "dependencies": { + "boom": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", + "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", + "dev": true, + "requires": { + "hoek": "4.2.1" + } + }, + "cryptiles": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", + "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", + "dev": true, + "requires": { + "boom": "5.2.0" + }, + "dependencies": { + "boom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "dev": true, + "requires": { + "hoek": "4.2.1" + } + } + } + }, + "hoek": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==", + "dev": true + } + } + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true + }, + "heavy": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/heavy/-/heavy-6.1.0.tgz", + "integrity": "sha512-TKS9DC9NOTGulHQI31Lx+bmeWmNOstbJbGMiN3pX6bF+Zc2GKSpbbym4oasNnB6yPGkqJ9TQXXYDGohqNSJRxA==", + "requires": { + "boom": "7.2.0", + "hoek": "5.0.3", + "joi": "13.1.2" + } + }, + "hoek": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "hosted-git-info": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", + "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", + "dev": true + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "requires": { + "inherits": "2.0.3", + "obuf": "1.1.2", + "readable-stream": "2.3.5", + "wbuf": "1.7.3" + } + }, + "htmlparser2": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", + "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", + "dev": true, + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.4.1", + "domutils": "1.7.0", + "entities": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.3.5" + } + }, + "http-assert": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.3.0.tgz", + "integrity": "sha1-oxpc+IyHPsu1eWkH1NbxMujAHko=", + "dev": true, + "requires": { + "deep-equal": "1.0.1", + "http-errors": "1.6.2" + } + }, + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "dev": true + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.4.0" + }, + "dependencies": { + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "hullabaloo-config-manager": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/hullabaloo-config-manager/-/hullabaloo-config-manager-1.1.1.tgz", + "integrity": "sha512-ztKnkZV0TmxnumCDHHgLGNiDnotu4EHCp9YMkznWuo4uTtCyJ+cu+RNcxUeXYKTllpvLFWnbfWry09yzszgg+A==", + "dev": true, + "requires": { + "dot-prop": "4.2.0", + "es6-error": "4.1.1", + "graceful-fs": "4.1.11", + "indent-string": "3.2.0", + "json5": "0.5.1", + "lodash.clonedeep": "4.5.0", + "lodash.clonedeepwith": "4.5.0", + "lodash.isequal": "4.5.0", + "lodash.merge": "4.6.1", + "md5-hex": "2.0.0", + "package-hash": "2.0.0", + "pkg-dir": "2.0.0", + "resolve-from": "3.0.0", + "safe-buffer": "5.1.1" + } + }, + "i": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/i/-/i-0.3.6.tgz", + "integrity": "sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0=", + "dev": true + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" + }, + "ignore": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", + "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", + "dev": true + }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, + "import-local": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-0.1.1.tgz", + "integrity": "sha1-sReVcqrNwRxqkQCftDDbyrX2aKg=", + "dev": true, + "requires": { + "pkg-dir": "2.0.0", + "resolve-cwd": "2.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherit": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/inherit/-/inherit-2.2.6.tgz", + "integrity": "sha1-8WFLBshUToEo5CKchjR9tzrZeI0=", + "dev": true + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "ink-docstrap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/ink-docstrap/-/ink-docstrap-1.3.2.tgz", + "integrity": "sha512-STx5orGQU1gfrkoI/fMU7lX6CSP7LBGO10gXNgOZhwKhUqbtNjCkYSewJtNnLmWP1tAGN6oyEpG1HFPw5vpa5Q==", + "dev": true, + "requires": { + "moment": "2.21.0", + "sanitize-html": "1.18.2" + } + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "dev": true, + "requires": { + "ansi-escapes": "3.0.0", + "chalk": "2.3.2", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.1.0", + "figures": "2.0.0", + "lodash": "4.17.5", + "mute-stream": "0.0.7", + "run-async": "2.3.0", + "rx-lite": "4.0.8", + "rx-lite-aggregates": "4.0.8", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" + } + }, + "intelli-espower-loader": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/intelli-espower-loader/-/intelli-espower-loader-1.0.1.tgz", + "integrity": "sha1-LHsDFGvB1GvyENCgOXxckatMorA=", + "dev": true, + "requires": { + "espower-loader": "1.2.2" + } + }, + "into-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", + "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", + "dev": true, + "requires": { + "from2": "2.3.0", + "p-is-promise": "1.1.0" + } + }, + "invariant": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.3.tgz", + "integrity": "sha512-7Z5PPegwDTyjbaeCnV0efcyS6vdKAU51kpEmS7QFib3P4822l8ICYyMn7qvJnc+WzLoDsuI9gPMKbJ8pCu8XtA==", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "ipaddr.js": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.6.0.tgz", + "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs=" + }, + "iron": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/iron/-/iron-5.0.4.tgz", + "integrity": "sha512-7iQ5/xFMIYaNt9g2oiNiWdhrOTdRUMFaWENUd0KghxwPUhrIH8DUY8FEyLNTTzf75jaII+jMexLdY/2HfV61RQ==", + "requires": { + "boom": "7.2.0", + "cryptiles": "4.1.1", + "hoek": "5.0.3" + } + }, + "irregular-plurals": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-1.4.0.tgz", + "integrity": "sha1-LKmwM2UREYVUEvFr5dd8YqRYp2Y=", + "dev": true + }, + "is": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is/-/is-3.2.1.tgz", + "integrity": "sha1-0Kwq1V63sL7JJqUmb2xmKqqD3KU=" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "1.11.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-ci": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz", + "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", + "dev": true, + "requires": { + "ci-info": "1.1.2" + } + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "2.0.0" + } + }, + "is-error": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-error/-/is-error-2.2.1.tgz", + "integrity": "sha1-aEqW2EB2V3yY9M20DG0mpRI78Zw=", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-generator-fn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-1.0.0.tgz", + "integrity": "sha1-lp1J4bszKfa7fwkIm+JleLLd1Go=", + "dev": true + }, + "is-generator-function": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.7.tgz", + "integrity": "sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw==", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "dev": true, + "requires": { + "global-dirs": "0.1.1", + "is-path-inside": "1.0.1" + } + }, + "is-npm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", + "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", + "dev": true + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, + "is-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", + "dev": true + }, + "is-observable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", + "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", + "dev": true, + "requires": { + "symbol-observable": "1.2.0" + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", + "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "dev": true, + "requires": { + "is-path-inside": "1.0.1" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "1.0.2" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", + "dev": true + }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-stream-ended": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.3.tgz", + "integrity": "sha1-oEc7Jnx1ZjVIa+7cfjNE5UnRUqw=", + "dev": true + }, + "is-supported-regexp-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.0.tgz", + "integrity": "sha1-i1IMhfrnolM4LUsCZS4EVXbhO7g=" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-url": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz", + "integrity": "sha1-SYkFpZO/R8wtnn9zg3K792lsfyY=", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isemail": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.1.1.tgz", + "integrity": "sha512-mVjAjvdPkpwXW61agT2E9AkGoegZO7SdJGCezWwxnETL58f5KwJ4vSVAMBUL5idL6rTlYAIGkX3n4suiviMLNw==", + "requires": { + "punycode": "2.1.0" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "dev": true, + "requires": { + "has-to-string-tag-x": "1.4.1", + "is-object": "1.0.1" + } + }, + "jest-docblock": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz", + "integrity": "sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw==", + "dev": true + }, + "joi": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-13.1.2.tgz", + "integrity": "sha512-bZZSQYW5lPXenOfENvgCBPb9+H6E6MeNWcMtikI04fKphj5tvFL9TOb+H2apJzbCrRw/jebjTH8z6IHLpBytGg==", + "requires": { + "hoek": "5.0.3", + "isemail": "3.1.1", + "topo": "3.0.0" + } + }, + "js-green-licenses": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/js-green-licenses/-/js-green-licenses-0.5.0.tgz", + "integrity": "sha512-HM/SKwAl1R0y9kkBili6GqKc31ZnjzY7JHC2uO9bAHJNRmY5c/s+2cETyaqX0kBD8gX8QVhS4dJjRtY1nAwb4w==", + "dev": true, + "requires": { + "argparse": "1.0.10", + "axios": "0.18.0", + "npm-package-arg": "6.0.0", + "package-json": "4.0.1", + "pify": "3.0.0", + "spdx-correct": "3.0.0", + "spdx-satisfies": "4.0.0", + "strip-json-comments": "2.0.1" + } + }, + "js-string-escape": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", + "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "js-yaml": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz", + "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", + "dev": true, + "requires": { + "argparse": "1.0.10", + "esprima": "4.0.0" + } + }, + "js2xmlparser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-3.0.0.tgz", + "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", + "dev": true, + "requires": { + "xmlcreate": "1.0.2" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "optional": true + }, + "jscs": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/jscs/-/jscs-3.0.7.tgz", + "integrity": "sha1-cUG03/W4bjLQ6Z12S4NnZ8MNIBo=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "cli-table": "0.3.1", + "commander": "2.9.0", + "cst": "0.4.10", + "estraverse": "4.2.0", + "exit": "0.1.2", + "glob": "5.0.15", + "htmlparser2": "3.8.3", + "js-yaml": "3.4.6", + "jscs-jsdoc": "2.0.0", + "jscs-preset-wikimedia": "1.0.0", + "jsonlint": "1.6.3", + "lodash": "3.10.1", + "minimatch": "3.0.4", + "natural-compare": "1.2.2", + "pathval": "0.1.1", + "prompt": "0.2.14", + "reserved-words": "0.1.2", + "resolve": "1.1.7", + "strip-bom": "2.0.0", + "strip-json-comments": "1.0.4", + "to-double-quotes": "2.0.0", + "to-single-quotes": "2.0.1", + "vow": "0.4.17", + "vow-fs": "0.3.6", + "xmlbuilder": "3.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", + "dev": true, + "requires": { + "graceful-readlink": "1.0.1" + } + }, + "domhandler": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", + "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", + "dev": true, + "requires": { + "domelementtype": "1.3.0" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" + } + }, + "entities": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", + "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", + "dev": true + }, + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + }, + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true, + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "htmlparser2": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", + "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", + "dev": true, + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.3.0", + "domutils": "1.5.1", + "entities": "1.0.0", + "readable-stream": "1.1.14" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "js-yaml": { + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.4.6.tgz", + "integrity": "sha1-a+GyP2JJ9T0pM3D9TRqqY84bTrA=", + "dev": true, + "requires": { + "argparse": "1.0.10", + "esprima": "2.7.3", + "inherit": "2.2.6" + } + }, + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true + }, + "natural-compare": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.2.2.tgz", + "integrity": "sha1-H5bWDjFBysG20FZTzg2urHY69qo=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } + }, + "strip-json-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", + "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "jscs-jsdoc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jscs-jsdoc/-/jscs-jsdoc-2.0.0.tgz", + "integrity": "sha1-9T684CmqMSW9iCkLpQ1k1FEKSHE=", + "dev": true, + "requires": { + "comment-parser": "0.3.2", + "jsdoctypeparser": "1.2.0" + } + }, + "jscs-preset-wikimedia": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jscs-preset-wikimedia/-/jscs-preset-wikimedia-1.0.0.tgz", + "integrity": "sha1-//VjNCA4/C6IJre7cwnDrjQG/H4=", + "dev": true + }, + "jsdoc": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.5.5.tgz", + "integrity": "sha512-6PxB65TAU4WO0Wzyr/4/YhlGovXl0EVYfpKbpSroSj0qBxT4/xod/l40Opkm38dRHRdQgdeY836M0uVnJQG7kg==", + "dev": true, + "requires": { + "babylon": "7.0.0-beta.19", + "bluebird": "3.5.1", + "catharsis": "0.8.9", + "escape-string-regexp": "1.0.5", + "js2xmlparser": "3.0.0", + "klaw": "2.0.0", + "marked": "0.3.17", + "mkdirp": "0.5.1", + "requizzle": "0.2.1", + "strip-json-comments": "2.0.1", + "taffydb": "2.6.2", + "underscore": "1.8.3" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.19", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.19.tgz", + "integrity": "sha512-Vg0C9s/REX6/WIXN37UKpv5ZhRi6A4pjHlpkE34+8/a6c2W1Q692n3hmc+SZG5lKRnaExLUbxtJ1SVT+KaCQ/A==", + "dev": true + }, + "underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", + "dev": true + } + } + }, + "jsdoctypeparser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-1.2.0.tgz", + "integrity": "sha1-597cFToRhJ/8UUEUSuhqfvDCU5I=", + "dev": true, + "requires": { + "lodash": "3.10.1" + }, + "dependencies": { + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true + } + } + }, + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + }, + "jshint": { + "version": "2.9.5", + "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.5.tgz", + "integrity": "sha1-HnJSkVzmgbQIJ+4UJIxG006apiw=", + "dev": true, + "requires": { + "cli": "1.0.1", + "console-browserify": "1.1.0", + "exit": "0.1.2", + "htmlparser2": "3.8.3", + "lodash": "3.7.0", + "minimatch": "3.0.4", + "shelljs": "0.3.0", + "strip-json-comments": "1.0.4" + }, + "dependencies": { + "domhandler": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", + "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", + "dev": true, + "requires": { + "domelementtype": "1.3.0" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" + } + }, + "entities": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", + "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", + "dev": true + }, + "htmlparser2": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", + "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", + "dev": true, + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.3.0", + "domutils": "1.5.1", + "entities": "1.0.0", + "readable-stream": "1.1.14" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "lodash": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz", + "integrity": "sha1-Nni9irmVBXwHreg27S7wh9qBHUU=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "strip-json-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", + "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", + "dev": true + } + } + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz", + "integrity": "sha512-xyQpxeWWMKyJps9CuGJYeng6ssI5bpqS9ltQpdVQ90t4ql6NdnxFKh95JcRt2cun/DjMVNrdjniLPuMA69xmCw==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, + "jsonlint": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/jsonlint/-/jsonlint-1.6.3.tgz", + "integrity": "sha512-jMVTMzP+7gU/IyC6hvKyWpUU8tmTkK5b3BPNuMI9U8Sit+YAWLlZwB6Y6YrdCxfg2kNz05p3XY3Bmm4m26Nv3A==", + "dev": true, + "requires": { + "JSV": "4.0.2", + "nomnom": "1.8.1" + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "just-extend": { + "version": "1.1.27", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-1.1.27.tgz", + "integrity": "sha512-mJVp13Ix6gFo3SBAy9U/kL+oeZqzlYYYLQBwXVBlVzIsZwBqGREnOro24oC/8s8aox+rJhtZ2DiQof++IrkA+g==", + "dev": true + }, + "jwa": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.5.tgz", + "integrity": "sha1-oFUs4CIHQs1S4VN3SjKQXDDnVuU=", + "dev": true, + "requires": { + "base64url": "2.0.0", + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.9", + "safe-buffer": "5.1.1" + } + }, + "jws": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.4.tgz", + "integrity": "sha1-+ei5M46KhHJ31kRLFGT2GIDgUKI=", + "dev": true, + "requires": { + "base64url": "2.0.0", + "jwa": "1.1.5", + "safe-buffer": "5.1.1" + } + }, + "keygrip": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.0.2.tgz", + "integrity": "sha1-rTKXxVcGneqLz+ek+kkbdcXd65E=", + "dev": true + }, + "keyv": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", + "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + }, + "klaw": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-2.0.0.tgz", + "integrity": "sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "koa": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/koa/-/koa-2.5.0.tgz", + "integrity": "sha512-UkrbMW2mRNfoW/4I20knJEjtPAWCV3Iw6f4XdnPWjHsCN8iTeSh0eSutrYdL0fGF/G9on2eQ30EEQif0MarGJA==", + "dev": true, + "requires": { + "accepts": "1.3.5", + "content-disposition": "0.5.2", + "content-type": "1.0.4", + "cookies": "0.7.1", + "debug": "2.6.9", + "delegates": "1.0.0", + "depd": "1.1.2", + "destroy": "1.0.4", + "error-inject": "1.0.0", + "escape-html": "1.0.3", + "fresh": "0.5.2", + "http-assert": "1.3.0", + "http-errors": "1.6.2", + "is-generator-function": "1.0.7", + "koa-compose": "4.0.0", + "koa-convert": "1.2.0", + "koa-is-json": "1.0.0", + "mime-types": "2.1.18", + "on-finished": "2.3.0", + "only": "0.0.2", + "parseurl": "1.3.2", + "statuses": "1.4.0", + "type-is": "1.6.16", + "vary": "1.1.2" + } + }, + "koa-compose": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.0.0.tgz", + "integrity": "sha1-KAClE9nDYe8NY4UrA45Pby1adzw=", + "dev": true + }, + "koa-convert": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-1.2.0.tgz", + "integrity": "sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA=", + "dev": true, + "requires": { + "co": "4.6.0", + "koa-compose": "3.2.1" + }, + "dependencies": { + "koa-compose": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-3.2.1.tgz", + "integrity": "sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec=", + "dev": true, + "requires": { + "any-promise": "1.3.0" + } + } + } + }, + "koa-is-json": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/koa-is-json/-/koa-is-json-1.0.0.tgz", + "integrity": "sha1-JzwH7c3Ljfaiwat9We52SRRR7BQ=", + "dev": true + }, + "last-line-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/last-line-stream/-/last-line-stream-1.0.0.tgz", + "integrity": "sha1-0bZNafhv8kry0EiDos7uFFIKVgA=", + "dev": true, + "requires": { + "through2": "2.0.3" + } + }, + "latest-version": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "dev": true, + "requires": { + "package-json": "4.0.1" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true, + "optional": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "1.0.0" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" + }, + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "lodash.clonedeepwith": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeepwith/-/lodash.clonedeepwith-4.5.0.tgz", + "integrity": "sha1-buMFc6A6GmDWcKYu8zwQzxr9vdQ=", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, + "lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", + "dev": true + }, + "lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=", + "dev": true + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", + "dev": true + }, + "lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", + "dev": true + }, + "lodash.foreach": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", + "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=", + "dev": true + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, + "lodash.has": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/lodash.has/-/lodash.has-4.5.2.tgz", + "integrity": "sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI=" + }, + "lodash.indexof": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/lodash.indexof/-/lodash.indexof-4.0.5.tgz", + "integrity": "sha1-U3FK3Czd1u2HY4+JOqm2wk4x7zw=", + "dev": true + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", + "dev": true + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", + "dev": true + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", + "dev": true + }, + "lodash.maxby": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.maxby/-/lodash.maxby-4.6.0.tgz", + "integrity": "sha1-CCJABo88eiJ6oAqDgOTzjPB4bj0=", + "dev": true + }, + "lodash.merge": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.1.tgz", + "integrity": "sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ==", + "dev": true + }, + "lodash.mergewith": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", + "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==", + "dev": true + }, + "lodash.omit": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", + "integrity": "sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=", + "dev": true + }, + "lodash.omitby": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.omitby/-/lodash.omitby-4.6.0.tgz", + "integrity": "sha1-XBX/R1StVVAWtTwEExHo8HkgR5E=", + "dev": true + }, + "lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", + "dev": true + }, + "lodash.random": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.random/-/lodash.random-3.2.0.tgz", + "integrity": "sha1-luJOdjMzGZEw0sni/Vf5FwPMJi0=", + "dev": true + }, + "lodash.without": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.without/-/lodash.without-4.4.0.tgz", + "integrity": "sha1-PNRXSgC2e643OpS3SHcmQFB7eqw=", + "dev": true + }, + "log-driver": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz", + "integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=", + "dev": true + }, + "lolex": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.3.2.tgz", + "integrity": "sha512-A5pN2tkFj7H0dGIAM6MFvHKMJcPnjZsOMvR7ujCjfgW5TbV6H9vb1PgxLtHvjqNZTHsUolz+6/WEO0N1xNx2ng==", + "dev": true + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" + } + }, + "lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", + "dev": true + }, + "lru-cache": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz", + "integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==", + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "make-dir": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.2.0.tgz", + "integrity": "sha512-aNUAa4UMg/UougV25bbrU4ZaaKNjJ/3/xnvg/twpmKROPdKZPZ9wGgI0opdZzO8q/zUFawoUuixuOv33eZ61Iw==", + "dev": true, + "requires": { + "pify": "3.0.0" + } + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "marked": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.17.tgz", + "integrity": "sha512-+AKbNsjZl6jFfLPwHhWmGTqE009wTKn3RTmn9K8oUKHrX/abPJjtcRtXpYB/FFrwPJRUA86LX/de3T0knkPCmQ==", + "dev": true + }, + "matcher": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-1.1.0.tgz", + "integrity": "sha512-aZGv6JBTHqfqAd09jmAlbKnAICTfIvb5Z8gXVxPB5WZtFfHMaAMdACL7tQflD2V+6/8KNcY8s6DYtWLgpJP5lA==", + "dev": true, + "requires": { + "escape-string-regexp": "1.0.5" + } + }, + "md5-hex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-2.0.0.tgz", + "integrity": "sha1-0FiOnxx0lUSS7NJKwKxs6ZfZLjM=", + "dev": true, + "requires": { + "md5-o-matic": "0.1.1" + } + }, + "md5-o-matic": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", + "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true, + "requires": { + "mimic-fn": "1.2.0" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "2.0.4" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } + } + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "merge-estraverse-visitors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/merge-estraverse-visitors/-/merge-estraverse-visitors-1.0.0.tgz", + "integrity": "sha1-65aDOLXe1c7tgs7AMH3sui2OqZQ=", + "dev": true, + "requires": { + "estraverse": "4.2.0" + } + }, + "methmeth": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/methmeth/-/methmeth-1.1.0.tgz", + "integrity": "sha1-6AomYY5S9cQiKGG7dIUQvRDikIk=", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" + } + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + }, + "mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" + }, + "mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "requires": { + "mime-db": "1.33.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "mimic-response": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.0.tgz", + "integrity": "sha1-3z02Uqc/3ta5sLJBRub9BSNTRY4=", + "dev": true + }, + "mimos": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimos/-/mimos-4.0.0.tgz", + "integrity": "sha512-JvlvRLqGIlk+AYypWrbrDmhsM+6JVx/xBM5S3AMwTBz1trPCEoPN/swO2L4Wu653fL7oJdgk8DMQyG/Gq3JkZg==", + "requires": { + "hoek": "5.0.3", + "mime-db": "1.33.0" + } + }, + "minimalistic-assert": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", + "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "minimist-options": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", + "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", + "dev": true, + "requires": { + "arrify": "1.0.1", + "is-plain-obj": "1.1.0" + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + } + }, + "mocha": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.0.4.tgz", + "integrity": "sha512-nMOpAPFosU1B4Ix1jdhx5e3q7XO55ic5a8cgYvW27CequcEY+BabS0kUVL1Cw1V5PuVHZWeNRWFLmEPexo79VA==", + "dev": true, + "requires": { + "browser-stdout": "1.3.1", + "commander": "2.11.0", + "debug": "3.1.0", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.3", + "he": "1.1.1", + "mkdirp": "0.5.1", + "supports-color": "4.4.0" + }, + "dependencies": { + "commander": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "supports-color": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", + "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "modelo": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/modelo/-/modelo-4.2.3.tgz", + "integrity": "sha512-9DITV2YEMcw7XojdfvGl3gDD8J9QjZTJ7ZOUuSAkP+F3T6rDbzMJuPktxptsdHYEvZcmXrCD3LMOhdSAEq6zKA==", + "dev": true + }, + "module-not-found-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/module-not-found-error/-/module-not-found-error-1.0.1.tgz", + "integrity": "sha1-z4tP9PKWQGdNbN0CsOO8UjwrvcA=", + "dev": true + }, + "moment": { + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.21.0.tgz", + "integrity": "sha512-TCZ36BjURTeFTM/CwRcViQlfkMvL1/vFISuNLO5GkcVm1+QHfbSiNqZuWeMFjj1/3+uAjXswgRk30j1kkLYJBQ==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "multi-stage-sourcemap": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/multi-stage-sourcemap/-/multi-stage-sourcemap-0.2.1.tgz", + "integrity": "sha1-sJ/IWG6qF/gdV1xK0C4Pej9rEQU=", + "dev": true, + "requires": { + "source-map": "0.1.43" + }, + "dependencies": { + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "multimatch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", + "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", + "dev": true, + "requires": { + "array-differ": "1.0.0", + "array-union": "1.0.2", + "arrify": "1.0.1", + "minimatch": "3.0.4" + } + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "mv": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", + "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=", + "optional": true, + "requires": { + "mkdirp": "0.5.1", + "ncp": "2.0.0", + "rimraf": "2.4.5" + } + }, + "nan": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.9.2.tgz", + "integrity": "sha512-ltW65co7f3PQWBDbqVvaU1WtFJUsNW7sWWm4HINhbMQIyVyzIeyZ8toX5TC5eeooE6piZoaEh4cZkueSKG3KYw==", + "optional": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "ncp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", + "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=", + "optional": true + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + }, + "nested-error-stacks": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz", + "integrity": "sha1-GfYZWRUZ8JZ2mlupqG5u7sgjw88=", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "nigel": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/nigel/-/nigel-3.0.0.tgz", + "integrity": "sha512-ufFVFCe1zS/pfIQzQNa5uJxB8v8IcVTUn1zyPvQwb4CQGRxxBfdQPSXpEnI6ZzIwbV5L+GuAoRhYgcVSvTO7fA==", + "requires": { + "hoek": "5.0.3", + "vise": "3.0.0" + } + }, + "nise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/nise/-/nise-1.3.0.tgz", + "integrity": "sha512-U+Krdzhsw4losPP/Rij5UGTLQgS9gaWmXdRIbZQIQWVsUGDBo+N0m9mrY9CCEnmwssgswwydxLJUZtFfouC0gA==", + "dev": true, + "requires": { + "@sinonjs/formatio": "2.0.0", + "just-extend": "1.1.27", + "lolex": "2.3.2", + "path-to-regexp": "1.7.0", + "text-encoding": "0.6.4" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "path-to-regexp": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", + "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", + "dev": true, + "requires": { + "isarray": "0.0.1" + } + } + } + }, + "nock": { + "version": "9.2.3", + "resolved": "https://registry.npmjs.org/nock/-/nock-9.2.3.tgz", + "integrity": "sha512-4XYNSJDJ/PvNoH+cCRWcGOOFsq3jtZdNTRIlPIBA7CopGWJO56m5OaPEjjJ3WddxNYfe5HL9sQQAtMt8oyR9AA==", + "dev": true, + "requires": { + "chai": "4.1.2", + "debug": "3.1.0", + "deep-equal": "1.0.1", + "json-stringify-safe": "5.0.1", + "lodash": "4.17.5", + "mkdirp": "0.5.1", + "propagate": "1.0.0", + "qs": "6.5.1", + "semver": "5.5.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "node-forge": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.4.tgz", + "integrity": "sha512-8Df0906+tq/omxuCZD6PqhPaQDYuyJ1d+VITgxoIA8zvQd1ru+nMJcDChHH324MWitIgbVkAkQoGEEVJNpn/PA==", + "dev": true + }, + "nomnom": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz", + "integrity": "sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=", + "dev": true, + "requires": { + "chalk": "0.4.0", + "underscore": "1.6.0" + }, + "dependencies": { + "ansi-styles": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", + "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=", + "dev": true + }, + "chalk": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", + "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", + "dev": true, + "requires": { + "ansi-styles": "1.0.0", + "has-color": "0.1.7", + "strip-ansi": "0.1.1" + } + }, + "strip-ansi": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", + "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=", + "dev": true + } + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "2.6.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "1.1.0" + } + }, + "normalize-url": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", + "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", + "dev": true, + "requires": { + "prepend-http": "2.0.0", + "query-string": "5.1.0", + "sort-keys": "2.0.0" + }, + "dependencies": { + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + } + } + }, + "npm-package-arg": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.0.0.tgz", + "integrity": "sha512-hwC7g81KLgRmchv9ol6f3Fx4Yyc9ARX5X5niDHVILgpuvf08JRIgOZcEfpFXli3BgESoTrkauqorXm6UbvSgSg==", + "dev": true, + "requires": { + "hosted-git-info": "2.6.0", + "osenv": "0.1.5", + "semver": "5.5.0", + "validate-npm-package-name": "3.0.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "2.0.1" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "nyc": { + "version": "11.4.1", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.4.1.tgz", + "integrity": "sha512-5eCZpvaksFVjP2rt1r60cfXmt3MUtsQDw8bAzNqNEr4WLvUMLgiVENMf/B9bE9YAX0mGVvaGA3v9IS9ekNqB1Q==", + "dev": true, + "requires": { + "archy": "1.0.0", + "arrify": "1.0.1", + "caching-transform": "1.0.1", + "convert-source-map": "1.5.1", + "debug-log": "1.0.1", + "default-require-extensions": "1.0.0", + "find-cache-dir": "0.1.1", + "find-up": "2.1.0", + "foreground-child": "1.5.6", + "glob": "7.1.2", + "istanbul-lib-coverage": "1.1.1", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "1.9.1", + "istanbul-lib-report": "1.1.2", + "istanbul-lib-source-maps": "1.2.2", + "istanbul-reports": "1.1.3", + "md5-hex": "1.3.0", + "merge-source-map": "1.0.4", + "micromatch": "2.3.11", + "mkdirp": "0.5.1", + "resolve-from": "2.0.0", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "spawn-wrap": "1.4.2", + "test-exclude": "4.1.1", + "yargs": "10.0.3", + "yargs-parser": "8.0.0" + }, + "dependencies": { + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "append-transform": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "dev": true, + "requires": { + "default-require-extensions": "1.0.0" + } + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "1.1.0" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", + "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.4", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" + } + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "caching-transform": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", + "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", + "dev": true, + "requires": { + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" + } + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true, + "optional": true + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "optional": true, + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "optional": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true, + "optional": true + } + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "cross-spawn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "dev": true, + "requires": { + "lru-cache": "4.1.1", + "which": "1.3.0" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "debug-log": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", + "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", + "dev": true + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "default-require-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "dev": true, + "requires": { + "strip-bom": "2.0.0" + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "dev": true, + "requires": { + "is-arrayish": "0.2.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.3.0" + } + } + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "0.1.1" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "2.2.3" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "dev": true, + "requires": { + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" + } + }, + "find-cache-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "dev": true, + "requires": { + "commondir": "1.0.1", + "mkdirp": "0.5.1", + "pkg-dir": "1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "2.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "1.0.2" + } + }, + "foreground-child": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "dev": true, + "requires": { + "cross-spawn": "4.0.2", + "signal-exit": "3.0.2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "2.0.0", + "is-glob": "2.0.1" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "2.0.1" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "handlebars": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "dev": true, + "requires": { + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "hosted-git-info": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "istanbul-lib-coverage": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz", + "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==", + "dev": true + }, + "istanbul-lib-hook": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", + "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", + "dev": true, + "requires": { + "append-transform": "0.4.0" + } + }, + "istanbul-lib-instrument": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz", + "integrity": "sha512-RQmXeQ7sphar7k7O1wTNzVczF9igKpaeGQAG9qR2L+BS4DCJNTI9nytRmIVYevwO0bbq+2CXvJmYDuz0gMrywA==", + "dev": true, + "requires": { + "babel-generator": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "istanbul-lib-coverage": "1.1.1", + "semver": "5.4.1" + } + }, + "istanbul-lib-report": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz", + "integrity": "sha512-UTv4VGx+HZivJQwAo1wnRwe1KTvFpfi/NYwN7DcsrdzMXwpRT/Yb6r4SBPoHWj4VuQPakR32g4PUUeyKkdDkBA==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "1.1.1", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" + }, + "dependencies": { + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz", + "integrity": "sha512-8BfdqSfEdtip7/wo1RnrvLpHVEd8zMZEDmOFEnpC6dg0vXflHt9nvoAyQUzig2uMSXfF2OBEYBV3CVjIL9JvaQ==", + "dev": true, + "requires": { + "debug": "3.1.0", + "istanbul-lib-coverage": "1.1.1", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "istanbul-reports": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.3.tgz", + "integrity": "sha512-ZEelkHh8hrZNI5xDaKwPMFwDsUf5wIEI2bXAFGp1e6deR2mnEKBPhLJEgr4ZBt8Gi6Mj38E/C8kcy9XLggVO2Q==", + "dev": true, + "requires": { + "handlebars": "4.0.11" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true, + "optional": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "1.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "lru-cache": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "dev": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "md5-hex": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", + "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", + "dev": true, + "requires": { + "md5-o-matic": "0.1.1" + } + }, + "md5-o-matic": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", + "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=", + "dev": true + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true, + "requires": { + "mimic-fn": "1.1.0" + } + }, + "merge-source-map": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", + "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=", + "dev": true, + "requires": { + "source-map": "0.5.7" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" + } + }, + "mimic-fn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", + "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "2.5.0", + "is-builtin-module": "1.0.0", + "semver": "5.4.1", + "validate-npm-package-license": "3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "1.1.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "2.0.1" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "0.1.5", + "is-extendable": "0.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.3" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", + "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", + "dev": true + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "1.1.0" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "1.3.1" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "2.0.4" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "dev": true, + "requires": { + "find-up": "1.1.2" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + } + } + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "randomatic": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + } + } + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "0.1.3" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "resolve-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", + "dev": true + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "optional": true, + "requires": { + "align-text": "0.1.4" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "7.1.2" + } + }, + "semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "spawn-wrap": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", + "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", + "dev": true, + "requires": { + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.0" + } + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "dev": true, + "requires": { + "spdx-license-ids": "1.2.2" + } + }, + "spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "dev": true + }, + "spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "test-exclude": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz", + "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==", + "dev": true, + "requires": { + "arrify": "1.0.1", + "micromatch": "2.3.11", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "optional": true, + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "optional": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true, + "optional": true + }, + "validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "dev": true, + "requires": { + "spdx-correct": "1.0.2", + "spdx-expression-parse": "1.0.4" + } + }, + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "dev": true, + "requires": { + "isexe": "2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true, + "optional": true + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write-file-atomic": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", + "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.0.3.tgz", + "integrity": "sha512-DqBpQ8NAUX4GyPP/ijDGHsJya4tYqLQrjPr95HNsr1YwL3+daCfvBwg7+gIC6IdJhR2kATh3hb61vjzMWEtjdw==", + "dev": true, + "requires": { + "cliui": "3.2.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "8.0.0" + }, + "dependencies": { + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + } + } + }, + "yargs-parser": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.0.0.tgz", + "integrity": "sha1-IdR2Mw5agieaS4gTRb8GYQLiGcY=", + "dev": true, + "requires": { + "camelcase": "4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + } + } + } + } + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-keys": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", + "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", + "dev": true + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "0.1.5", + "is-extendable": "0.1.1" + } + }, + "observable-to-promise": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/observable-to-promise/-/observable-to-promise-0.5.0.tgz", + "integrity": "sha1-yCjw8NxH6fhq+KSXfF1VB2znqR8=", + "dev": true, + "requires": { + "is-observable": "0.2.0", + "symbol-observable": "1.2.0" + }, + "dependencies": { + "is-observable": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-0.2.0.tgz", + "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=", + "dev": true, + "requires": { + "symbol-observable": "0.2.4" + }, + "dependencies": { + "symbol-observable": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-0.2.4.tgz", + "integrity": "sha1-lag9smGG1q9+ehjb2XYKL4bQj0A=", + "dev": true + } + } + } + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1.0.2" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "1.2.0" + } + }, + "only": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", + "integrity": "sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=", + "dev": true + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.3" + } + }, + "option-chain": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/option-chain/-/option-chain-1.0.0.tgz", + "integrity": "sha1-k41zvU4Xg/lI00AjZEraI2aeMPI=", + "dev": true + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "requires": { + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" + }, + "dependencies": { + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + } + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-is-promise": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", + "dev": true + }, + "p-limit": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", + "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "dev": true, + "requires": { + "p-try": "1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "1.2.0" + } + }, + "p-timeout": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", + "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", + "dev": true, + "requires": { + "p-finally": "1.0.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "package-hash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-2.0.0.tgz", + "integrity": "sha1-eK4ybIngWk2BO2hgGXevBcANKg0=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "lodash.flattendeep": "4.4.0", + "md5-hex": "2.0.0", + "release-zalgo": "1.0.0" + } + }, + "package-json": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "dev": true, + "requires": { + "got": "6.7.1", + "registry-auth-token": "3.3.2", + "registry-url": "3.1.0", + "semver": "5.5.0" + }, + "dependencies": { + "got": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "dev": true, + "requires": { + "create-error-class": "3.0.2", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "is-redirect": "1.0.0", + "is-retry-allowed": "1.1.0", + "is-stream": "1.1.0", + "lowercase-keys": "1.0.0", + "safe-buffer": "5.1.1", + "timed-out": "4.0.1", + "unzip-response": "2.0.1", + "url-parse-lax": "1.0.0" + } + } + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "1.3.1" + } + }, + "parse-ms": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-0.1.2.tgz", + "integrity": "sha1-3T+iXtbC78e93hKtm0bBY6opIk4=", + "dev": true + }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "pathval": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-0.1.1.tgz", + "integrity": "sha1-CPkRzcqczllCiA2ngXvAtyO2bYI=", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "pez": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pez/-/pez-4.0.1.tgz", + "integrity": "sha512-0c/SoW5MY7lPdc5U1Q/ixyjLZbluGWJonHVmn4mKwSq7vgO9+a9WzoCopHubIwkot6Q+fevNVElaA+1M9SqHrA==", + "requires": { + "b64": "4.0.0", + "boom": "7.2.0", + "content": "4.0.4", + "hoek": "5.0.3", + "nigel": "3.0.0" + } + }, + "pidusage": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-1.2.0.tgz", + "integrity": "sha512-OGo+iSOk44HRJ8q15AyG570UYxcm5u+R99DI8Khu8P3tKGkVu5EZX4ywHglWSTMNNXQ274oeGpYrvFEhDIFGPg==" + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "pinkie": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-1.0.0.tgz", + "integrity": "sha1-Wkfyi6EBXQIBvae/DzWOR77Ix+Q=", + "dev": true + }, + "pinkie-promise": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-1.0.0.tgz", + "integrity": "sha1-0dpn9UglY7t89X8oauKCLs+/NnA=", + "dev": true, + "requires": { + "pinkie": "1.0.0" + } + }, + "pkg-conf": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", + "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "load-json-file": "4.0.0" + }, + "dependencies": { + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "1.3.1", + "json-parse-better-errors": "1.0.1" + } + } + } + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "2.1.0" + } + }, + "pkginfo": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz", + "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=", + "dev": true + }, + "plur": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/plur/-/plur-2.1.2.tgz", + "integrity": "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo=", + "dev": true, + "requires": { + "irregular-plurals": "1.4.0" + } + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", + "dev": true + }, + "podium": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/podium/-/podium-3.1.2.tgz", + "integrity": "sha512-18VrjJAduIdPv7d9zWsfmKxTj3cQTYC5Pv5gtKxcWujYBpGbV+mhNSPYhlHW5xeWoazYyKfB9FEsPT12r5rY1A==", + "requires": { + "hoek": "5.0.3", + "joi": "13.1.2" + } + }, + "postcss": { + "version": "6.0.19", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", + "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "source-map": "0.6.1", + "supports-color": "5.3.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "power-assert": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/power-assert/-/power-assert-1.4.4.tgz", + "integrity": "sha1-kpXqdDcZb1pgH95CDwQmMRhtdRc=", + "dev": true, + "requires": { + "define-properties": "1.1.2", + "empower": "1.2.3", + "power-assert-formatter": "1.4.1", + "universal-deep-strict-equal": "1.2.2", + "xtend": "4.0.1" + } + }, + "power-assert-context-formatter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/power-assert-context-formatter/-/power-assert-context-formatter-1.1.1.tgz", + "integrity": "sha1-7bo1LT7YpgMRTWZyZazOYNaJzN8=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "power-assert-context-traversal": "1.1.1" + } + }, + "power-assert-context-reducer-ast": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/power-assert-context-reducer-ast/-/power-assert-context-reducer-ast-1.1.2.tgz", + "integrity": "sha1-SEqZ4m9Jc/+IMuXFzHVnAuYJQXQ=", + "dev": true, + "requires": { + "acorn": "4.0.13", + "acorn-es7-plugin": "1.1.7", + "core-js": "2.5.3", + "espurify": "1.7.0", + "estraverse": "4.2.0" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true + } + } + }, + "power-assert-context-traversal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/power-assert-context-traversal/-/power-assert-context-traversal-1.1.1.tgz", + "integrity": "sha1-iMq8oNE7Y1nwfT0+ivppkmRXftk=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "estraverse": "4.2.0" + } + }, + "power-assert-formatter": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/power-assert-formatter/-/power-assert-formatter-1.4.1.tgz", + "integrity": "sha1-XcEl7VCj37HdomwZNH879Y7CiEo=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "power-assert-context-formatter": "1.1.1", + "power-assert-context-reducer-ast": "1.1.2", + "power-assert-renderer-assertion": "1.1.1", + "power-assert-renderer-comparison": "1.1.1", + "power-assert-renderer-diagram": "1.1.2", + "power-assert-renderer-file": "1.1.1" + } + }, + "power-assert-renderer-assertion": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/power-assert-renderer-assertion/-/power-assert-renderer-assertion-1.1.1.tgz", + "integrity": "sha1-y/wOd+AIao+Wrz8djme57n4ozpg=", + "dev": true, + "requires": { + "power-assert-renderer-base": "1.1.1", + "power-assert-util-string-width": "1.1.1" + } + }, + "power-assert-renderer-base": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/power-assert-renderer-base/-/power-assert-renderer-base-1.1.1.tgz", + "integrity": "sha1-lqZQxv0F7hvB9mtUrWFELIs/Y+s=", + "dev": true + }, + "power-assert-renderer-comparison": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/power-assert-renderer-comparison/-/power-assert-renderer-comparison-1.1.1.tgz", + "integrity": "sha1-10Odl9hRVr5OMKAPL7WnJRTOPAg=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "diff-match-patch": "1.0.0", + "power-assert-renderer-base": "1.1.1", + "stringifier": "1.3.0", + "type-name": "2.0.2" + } + }, + "power-assert-renderer-diagram": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/power-assert-renderer-diagram/-/power-assert-renderer-diagram-1.1.2.tgz", + "integrity": "sha1-ZV+PcRk1qbbVQbhjJ2VHF8Y3qYY=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "power-assert-renderer-base": "1.1.1", + "power-assert-util-string-width": "1.1.1", + "stringifier": "1.3.0" + } + }, + "power-assert-renderer-file": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/power-assert-renderer-file/-/power-assert-renderer-file-1.1.1.tgz", + "integrity": "sha1-o34rvReMys0E5427eckv40kzxec=", + "dev": true, + "requires": { + "power-assert-renderer-base": "1.1.1" + } + }, + "power-assert-util-string-width": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/power-assert-util-string-width/-/power-assert-util-string-width-1.1.1.tgz", + "integrity": "sha1-vmWet5N/3S5smncmjar2S9W3xZI=", + "dev": true, + "requires": { + "eastasianwidth": "0.1.1" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "prettier": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.11.1.tgz", + "integrity": "sha512-T/KD65Ot0PB97xTrG8afQ46x3oiVhnfGjGESSI9NWYcG92+OUPZKkwHqGWXH2t9jK1crnQjubECW0FuOth+hxw==", + "dev": true + }, + "pretty-ms": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-3.1.0.tgz", + "integrity": "sha1-6crJx2v27lL+lC3ZxsQhMVOxKIE=", + "dev": true, + "requires": { + "parse-ms": "1.0.1", + "plur": "2.1.2" + }, + "dependencies": { + "parse-ms": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-1.0.1.tgz", + "integrity": "sha1-VjRtR0nXjyNDDKDHE4UK75GqNh0=", + "dev": true + } + } + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + }, + "progress": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", + "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", + "dev": true + }, + "prompt": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/prompt/-/prompt-0.2.14.tgz", + "integrity": "sha1-V3VPZPVD/XsIRXB8gY7OYY8F/9w=", + "dev": true, + "requires": { + "pkginfo": "0.4.1", + "read": "1.0.7", + "revalidator": "0.1.8", + "utile": "0.2.1", + "winston": "0.8.3" + } + }, + "propagate": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-1.0.0.tgz", + "integrity": "sha1-AMLa7t2iDofjeCs0Stuhzd1q1wk=", + "dev": true + }, + "proxy-addr": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz", + "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", + "requires": { + "forwarded": "0.1.2", + "ipaddr.js": "1.6.0" + } + }, + "proxyquire": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/proxyquire/-/proxyquire-2.0.0.tgz", + "integrity": "sha512-TO9TAIz0mpa+SKddXsgCFatoe/KmHvoNVj2jDMC1kXE6kKn7/4CRpxvQ+0wAK9sbMT2FVO89qItlvnZMcFbJ2Q==", + "dev": true, + "requires": { + "fill-keys": "1.0.2", + "module-not-found-error": "1.0.1", + "resolve": "1.1.7" + } + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=" + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + }, + "query-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.0.tgz", + "integrity": "sha512-F3DkxxlY0AqD/rwe4YAwjRE2HjOkKW7TxsuteyrS/Jbwrxw887PqYBL4sWUJ9D/V1hmFns0SCD6FDyvlwo9RCQ==", + "dev": true, + "requires": { + "decode-uri-component": "0.2.0", + "object-assign": "4.1.1", + "strict-uri-encode": "1.1.0" + } + }, + "quick-lru": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", + "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", + "dev": true + }, + "randomatic": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + }, + "raw-body": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "unpipe": "1.0.0" + } + }, + "rc": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.5.tgz", + "integrity": "sha1-J1zWh/bjs2zHVrqibf7oCnkDAf0=", + "dev": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "dev": true, + "requires": { + "mute-stream": "0.0.7" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.0.0" + } + }, + "readable-stream": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz", + "integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } + }, + "readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.5", + "set-immediate-shim": "1.0.1" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "2.1.0", + "strip-indent": "1.0.1" + }, + "dependencies": { + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + } + } + }, + "regenerate": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", + "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "0.1.3" + } + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true, + "requires": { + "regenerate": "1.3.3", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" + } + }, + "registry-auth-token": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", + "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "dev": true, + "requires": { + "rc": "1.2.5", + "safe-buffer": "5.1.1" + } + }, + "registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "dev": true, + "requires": { + "rc": "1.2.5" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "0.5.0" + } + }, + "release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "dev": true, + "requires": { + "es6-error": "4.1.1" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "request": { + "version": "2.85.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.85.0.tgz", + "integrity": "sha512-8H7Ehijd4js+s6wuVPLjwORxD4zeuyjYugprdOXlPSqaApmL/QOy+EB/beICHVCHkGMKNh5rvihb5ov+IDw4mg==", + "dev": true, + "requires": { + "aws-sign2": "0.7.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.6", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.3.2", + "har-validator": "5.0.3", + "hawk": "6.0.2", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.18", + "oauth-sign": "0.8.2", + "performance-now": "2.1.0", + "qs": "6.5.1", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.4", + "tunnel-agent": "0.6.0", + "uuid": "3.2.1" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "require-precompiled": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/require-precompiled/-/require-precompiled-0.1.0.tgz", + "integrity": "sha1-WhtS63Dr7UPrmC6XTIWrWVceVvo=", + "dev": true + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true, + "requires": { + "caller-path": "0.1.0", + "resolve-from": "1.0.1" + }, + "dependencies": { + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true + } + } + }, + "requizzle": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.1.tgz", + "integrity": "sha1-aUPDUwxNmn5G8c3dUcFY/GcM294=", + "dev": true, + "requires": { + "underscore": "1.6.0" + } + }, + "reserved-words": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/reserved-words/-/reserved-words-0.1.2.tgz", + "integrity": "sha1-AKCUD5jNUBrqqsMWQR2a3FKzGrE=", + "dev": true + }, + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "3.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "1.0.0" + } + }, + "restify": { + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/restify/-/restify-6.3.4.tgz", + "integrity": "sha512-kYmXwCtj7gJ6e7vMwTjkFkygMTdcxwbJGJ+JXdsREMLx0h23mVBwLpyi2tqgI6DE1S0Al7//y7gbLXP79RqKaw==", + "requires": { + "assert-plus": "1.0.0", + "bunyan": "1.8.12", + "clone-regexp": "1.0.0", + "csv": "1.2.1", + "dtrace-provider": "0.8.6", + "escape-regexp-component": "1.0.2", + "ewma": "2.0.1", + "formidable": "1.2.0", + "http-signature": "1.2.0", + "lodash": "4.17.5", + "lru-cache": "4.1.2", + "mime": "1.4.1", + "negotiator": "0.6.1", + "once": "1.4.0", + "pidusage": "1.2.0", + "qs": "6.5.1", + "restify-errors": "5.0.0", + "semver": "5.5.0", + "spdy": "3.4.7", + "uuid": "3.2.1", + "vasync": "1.6.4", + "verror": "1.10.0" + } + }, + "restify-errors": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/restify-errors/-/restify-errors-5.0.0.tgz", + "integrity": "sha512-+vby9Kxf7qlzvbZSTIEGkIixkeHG+pVCl34dk6eKnL+ua4pCezpdLT/1/eabzPZb65ADrgoc04jeWrrF1E1pvQ==", + "requires": { + "assert-plus": "1.0.0", + "lodash": "4.17.5", + "safe-json-stringify": "1.1.0", + "verror": "1.10.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "2.0.1", + "signal-exit": "3.0.2" + } + }, + "retry-axios": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/retry-axios/-/retry-axios-0.3.2.tgz", + "integrity": "sha512-jp4YlI0qyDFfXiXGhkCOliBN1G7fRH03Nqy8YdShzGqbY5/9S2x/IR6C88ls2DFkbWuL3ASkP7QD3pVrNpPgwQ==", + "dev": true + }, + "retry-request": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-3.3.1.tgz", + "integrity": "sha512-PjAmtWIxjNj4Co/6FRtBl8afRP3CxrrIAnUzb1dzydfROd+6xt7xAebFeskgQgkfFf8NmzrXIoaB3HxmswXyxw==", + "dev": true, + "requires": { + "request": "2.85.0", + "through2": "2.0.3" + } + }, + "revalidator": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz", + "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=", + "dev": true + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "optional": true, + "requires": { + "align-text": "0.1.4" + } + }, + "rimraf": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", + "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=", + "requires": { + "glob": "6.0.4" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + } + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "2.1.0" + } + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "dev": true + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true, + "requires": { + "rx-lite": "4.0.8" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "safe-json-stringify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.1.0.tgz", + "integrity": "sha512-EzBtUaFH9bHYPc69wqjp0efJI/DPNHdFbGE3uIMn4sVbO0zx8vZ8cG4WKxQfOpUOKsQyGBiT2mTqnCw+6nLswA==", + "optional": true + }, + "samsam": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz", + "integrity": "sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg==", + "dev": true + }, + "sanitize-html": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.18.2.tgz", + "integrity": "sha512-52ThA+Z7h6BnvpSVbURwChl10XZrps5q7ytjTwWcIe9bmJwnVP6cpEVK2NvDOUhGupoqAvNbUz3cpnJDp4+/pg==", + "dev": true, + "requires": { + "chalk": "2.3.2", + "htmlparser2": "3.9.2", + "lodash.clonedeep": "4.5.0", + "lodash.escaperegexp": "4.1.2", + "lodash.isplainobject": "4.0.6", + "lodash.isstring": "4.0.1", + "lodash.mergewith": "4.6.1", + "postcss": "6.0.19", + "srcset": "1.0.0", + "xtend": "4.0.1" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" + }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + }, + "semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "dev": true, + "requires": { + "semver": "5.5.0" + } + }, + "send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "requires": { + "debug": "2.6.9", + "depd": "1.1.2", + "destroy": "1.0.4", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", + "fresh": "0.5.2", + "http-errors": "1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.4.0" + } + }, + "serialize-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", + "integrity": "sha1-ULZ51WNc34Rme9yOWa9OW4HV9go=", + "dev": true + }, + "serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "requires": { + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "parseurl": "1.3.2", + "send": "0.16.2" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "shelljs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", + "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=", + "dev": true + }, + "shot": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/shot/-/shot-4.0.5.tgz", + "integrity": "sha1-x+dFXRHWD2ts08Q+FaO0McF+VWY=", + "requires": { + "hoek": "5.0.3", + "joi": "13.1.2" + } + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "sinon": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-4.3.0.tgz", + "integrity": "sha512-pmf05hFgEZUS52AGJcsVjOjqAyJW2yo14cOwVYvzCyw7+inv06YXkLyW75WG6X6p951lzkoKh51L2sNbR9CDvw==", + "dev": true, + "requires": { + "@sinonjs/formatio": "2.0.0", + "diff": "3.5.0", + "lodash.get": "4.4.2", + "lolex": "2.3.2", + "nise": "1.3.0", + "supports-color": "5.3.0", + "type-detect": "4.0.8" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0" + } + }, + "slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "dev": true + }, + "sntp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", + "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", + "dev": true, + "requires": { + "hoek": "4.2.1" + }, + "dependencies": { + "hoek": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==", + "dev": true + } + } + }, + "sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", + "dev": true, + "requires": { + "is-plain-obj": "1.1.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-support": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.3.tgz", + "integrity": "sha512-eKkTgWYeBOQqFGXRfKabMFdnWepo51vWqEdoeikaEPFiJC7MCU5j2h4+6Q8npkZTeLGbSyecZvRxiSoWl3rh+w==", + "dev": true, + "requires": { + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "spdx-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/spdx-compare/-/spdx-compare-1.0.0.tgz", + "integrity": "sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==", + "dev": true, + "requires": { + "array-find-index": "1.0.2", + "spdx-expression-parse": "3.0.0", + "spdx-ranges": "2.0.0" + } + }, + "spdx-correct": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "dev": true, + "requires": { + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", + "dev": true + }, + "spdx-ranges": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spdx-ranges/-/spdx-ranges-2.0.0.tgz", + "integrity": "sha512-AUUXLfqkwD7GlzZkXv8ePPCpPjeVWI9xJCfysL8re/uKb6H10umMnC7bFRsHmLJan4fslUtekAgpHlSgLc/7mA==", + "dev": true + }, + "spdx-satisfies": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdx-satisfies/-/spdx-satisfies-4.0.0.tgz", + "integrity": "sha512-OcARj6U1OuVv98SVrRqgrR30sVocONtoPpnX8Xz4vXNrFVedqtbgkA+0KmQoXIQ2xjfltPPRVIMeNzKEFLWWKQ==", + "dev": true, + "requires": { + "spdx-compare": "1.0.0", + "spdx-expression-parse": "3.0.0", + "spdx-ranges": "2.0.0" + } + }, + "spdy": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", + "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", + "requires": { + "debug": "2.6.9", + "handle-thing": "1.2.5", + "http-deceiver": "1.2.7", + "safe-buffer": "5.1.1", + "select-hose": "2.0.0", + "spdy-transport": "2.0.20" + } + }, + "spdy-transport": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.0.20.tgz", + "integrity": "sha1-c15yBUxIayNU/onnAiVgBKOazk0=", + "requires": { + "debug": "2.6.9", + "detect-node": "2.0.3", + "hpack.js": "2.1.6", + "obuf": "1.1.2", + "readable-stream": "2.3.5", + "safe-buffer": "5.1.1", + "wbuf": "1.7.3" + } + }, + "split-array-stream": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/split-array-stream/-/split-array-stream-1.0.3.tgz", + "integrity": "sha1-0rdajl4Ngk1S/eyLgiWDncLjXfo=", + "dev": true, + "requires": { + "async": "2.6.0", + "is-stream-ended": "0.1.3" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "srcset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/srcset/-/srcset-1.0.0.tgz", + "integrity": "sha1-pWad4StC87HV6D7QPHEEb8SPQe8=", + "dev": true, + "requires": { + "array-uniq": "1.0.3", + "number-is-nan": "1.0.1" + } + }, + "sshpk": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + } + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "stack-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz", + "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=", + "dev": true + }, + "statehood": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/statehood/-/statehood-6.0.5.tgz", + "integrity": "sha512-HPa8qT5sGTBVn1Fc9czBYR1oo7gBaay3ysnb04cvcF80YrDIV7880KpjmMj54j7CrFuQFfgMRb44QCRxRmAdTg==", + "requires": { + "boom": "7.2.0", + "bounce": "1.2.0", + "cryptiles": "4.1.1", + "hoek": "5.0.3", + "iron": "5.0.4", + "joi": "13.1.2" + } + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + }, + "stream-events": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.2.tgz", + "integrity": "sha1-q/OfZsCJCk63lbyNXoWbJhW1kLI=", + "dev": true, + "requires": { + "stubs": "3.0.0" + } + }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "dev": true + }, + "stream-transform": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-0.2.2.tgz", + "integrity": "sha1-dYZ0h/SVKPi/HYJJllh1PQLfeDg=" + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, + "string": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/string/-/string-3.3.3.tgz", + "integrity": "sha1-XqIRzZLSKOGEKUmQpsyXs2anfLA=", + "dev": true + }, + "string-format-obj": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string-format-obj/-/string-format-obj-1.1.1.tgz", + "integrity": "sha512-Mm+sROy+pHJmx0P/0Bs1uxIX6UhGJGj6xDGQZ5zh9v/SZRmLGevp+p0VJxV7lirrkAmQ2mvva/gHKpnF/pTb+Q==", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "5.1.1" + } + }, + "stringifier": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/stringifier/-/stringifier-1.3.0.tgz", + "integrity": "sha1-3vGDQvaTPbDy2/yaoCF1tEjBeVk=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "traverse": "0.6.6", + "type-name": "2.0.2" + } + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + } + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-bom-buf": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz", + "integrity": "sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=", + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "4.0.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "stubs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", + "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=", + "dev": true + }, + "subtext": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/subtext/-/subtext-6.0.7.tgz", + "integrity": "sha512-IcJUvRjeR+NB437Iq+LORFNJW4L6Knqkj3oQrBrkdhIaS2VKJvx/9aYEq7vi+PEx5/OuehOL/40SkSZotLi/MA==", + "requires": { + "boom": "7.2.0", + "content": "4.0.4", + "hoek": "5.0.3", + "pez": "4.0.1", + "wreck": "14.0.2" + } + }, + "superagent": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.2.tgz", + "integrity": "sha512-gVH4QfYHcY3P0f/BZzavLreHW3T1v7hG9B+hpMQotGQqurOvhv87GcMCd6LWySmBuf+BDR44TQd0aISjVHLeNQ==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "cookiejar": "2.1.1", + "debug": "3.1.0", + "extend": "3.0.1", + "form-data": "2.3.2", + "formidable": "1.2.0", + "methods": "1.1.2", + "mime": "1.4.1", + "qs": "6.5.1", + "readable-stream": "2.3.5" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "supertap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supertap/-/supertap-1.0.0.tgz", + "integrity": "sha512-HZJ3geIMPgVwKk2VsmO5YHqnnJYl6bV5A9JW2uzqV43WmpgliNEYbuvukfor7URpaqpxuw3CfZ3ONdVbZjCgIA==", + "dev": true, + "requires": { + "arrify": "1.0.1", + "indent-string": "3.2.0", + "js-yaml": "3.11.0", + "serialize-error": "2.1.0", + "strip-ansi": "4.0.0" + } + }, + "supertest": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-3.0.0.tgz", + "integrity": "sha1-jUu2j9GDDuBwM7HFpamkAhyWUpY=", + "dev": true, + "requires": { + "methods": "1.1.2", + "superagent": "3.8.2" + } + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + }, + "dependencies": { + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + } + } + }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true + }, + "table": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "dev": true, + "requires": { + "ajv": "5.5.2", + "ajv-keywords": "2.1.1", + "chalk": "2.3.2", + "lodash": "4.17.5", + "slice-ansi": "1.0.0", + "string-width": "2.1.1" + } + }, + "taffydb": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", + "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=", + "dev": true + }, + "teamwork": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/teamwork/-/teamwork-3.0.1.tgz", + "integrity": "sha512-hEkJIpDOfOYe9NYaLFk00zQbzZeKNCY8T2pRH3I13Y1mJwxaSQ6NEsjY5rCp+11ezCiZpWGoGFTbOuhg4qKevQ==" + }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "dev": true, + "requires": { + "execa": "0.7.0" + } + }, + "text-encoding": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", + "integrity": "sha1-45mpgiV6J22uQou5KEXLcb3CbRk=", + "dev": true + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "requires": { + "readable-stream": "2.3.5", + "xtend": "4.0.1" + } + }, + "time-zone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz", + "integrity": "sha1-mcW/VZWJZq9tBtg73zgA3IL67F0=", + "dev": true + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "1.0.2" + } + }, + "to-double-quotes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-double-quotes/-/to-double-quotes-2.0.0.tgz", + "integrity": "sha1-qvIx1vqUiUn4GTAburRITYWI5Kc=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-single-quotes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/to-single-quotes/-/to-single-quotes-2.0.1.tgz", + "integrity": "sha1-fMKRUfD18sQZRvEZ9ZMv5VQXASU=", + "dev": true + }, + "topo": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.0.tgz", + "integrity": "sha512-Tlu1fGlR90iCdIPURqPiufqAlCZYzLjHYVVbcFWDMcX7+tK8hdZWAfsMrD/pBul9jqHHwFjNdf1WaxA9vTRRhw==", + "requires": { + "hoek": "5.0.3" + } + }, + "tough-cookie": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "dev": true, + "requires": { + "punycode": "1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "traverse": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", + "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", + "dev": true + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "trim-off-newlines": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz", + "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "tslib": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", + "dev": true + }, + "tslint": { + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.9.1.tgz", + "integrity": "sha1-ElX4ej/1frCw4fDmEKi0dIBGya4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "builtin-modules": "1.1.1", + "chalk": "2.3.2", + "commander": "2.15.0", + "diff": "3.5.0", + "glob": "7.1.2", + "js-yaml": "3.11.0", + "minimatch": "3.0.4", + "resolve": "1.5.0", + "semver": "5.5.0", + "tslib": "1.9.0", + "tsutils": "2.22.2" + }, + "dependencies": { + "resolve": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + } + } + }, + "tsutils": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.22.2.tgz", + "integrity": "sha512-u06FUSulCJ+Y8a2ftuqZN6kIGqdP2yJjUPEngXqmdPND4UQfb04igcotH+dw+IFr417yP6muCLE8/5/Qlfnx0w==", + "dev": true, + "requires": { + "tslib": "1.9.0" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "type-is": { + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "2.1.18" + } + }, + "type-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/type-name/-/type-name-2.0.2.tgz", + "integrity": "sha1-7+fUEj2KxSr/9/QMfk3sUmYAj7Q=", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typescript": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.6.2.tgz", + "integrity": "sha1-PFtv1/beCRQmkCfwPAlGdY92c6Q=", + "dev": true + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "optional": true, + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true, + "optional": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "optional": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true, + "optional": true + }, + "uid2": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz", + "integrity": "sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I=", + "dev": true + }, + "underscore": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", + "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", + "dev": true + }, + "underscore-contrib": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/underscore-contrib/-/underscore-contrib-0.3.0.tgz", + "integrity": "sha1-ZltmwkeD+PorGMn4y7Dix9SMJsc=", + "dev": true, + "requires": { + "underscore": "1.6.0" + } + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "dev": true, + "requires": { + "crypto-random-string": "1.0.0" + } + }, + "unique-temp-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz", + "integrity": "sha1-bc6VsmgcoAPuv7MEpBX5y6vMU4U=", + "dev": true, + "requires": { + "mkdirp": "0.5.1", + "os-tmpdir": "1.0.2", + "uid2": "0.0.3" + } + }, + "universal-deep-strict-equal": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/universal-deep-strict-equal/-/universal-deep-strict-equal-1.2.2.tgz", + "integrity": "sha1-DaSsL3PP95JMgfpN4BjKViyisKc=", + "dev": true, + "requires": { + "array-filter": "1.0.0", + "indexof": "0.0.1", + "object-keys": "1.0.11" + } + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unzip-response": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", + "dev": true + }, + "update-notifier": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.3.0.tgz", + "integrity": "sha1-TognpruRUUCrCTVZ1wFOPruDdFE=", + "dev": true, + "requires": { + "boxen": "1.3.0", + "chalk": "2.3.2", + "configstore": "3.1.1", + "import-lazy": "2.1.0", + "is-installed-globally": "0.1.0", + "is-npm": "1.0.0", + "latest-version": "3.1.0", + "semver-diff": "2.1.0", + "xdg-basedir": "3.0.0" + } + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "dev": true, + "requires": { + "prepend-http": "1.0.4" + } + }, + "url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", + "dev": true + }, + "urlgrey": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-0.4.4.tgz", + "integrity": "sha1-iS/pWWCAXoVRnxzUOJ8stMu3ZS8=", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "utile": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz", + "integrity": "sha1-kwyI6ZCY1iIINMNWy9mncFItkNc=", + "dev": true, + "requires": { + "async": "0.2.10", + "deep-equal": "1.0.1", + "i": "0.3.6", + "mkdirp": "0.5.1", + "ncp": "0.4.2", + "rimraf": "2.4.5" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "dev": true + }, + "ncp": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz", + "integrity": "sha1-q8xsvT7C7Spyn/bnwfqPAXhKhXQ=", + "dev": true + } + } + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", + "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==" + }, + "validate-npm-package-license": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", + "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", + "dev": true, + "requires": { + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" + } + }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "requires": { + "builtins": "1.0.3" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "vasync": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/vasync/-/vasync-1.6.4.tgz", + "integrity": "sha1-3+k2Fq0OeugBszKp2Iv8XNyOHR8=", + "requires": { + "verror": "1.6.0" + }, + "dependencies": { + "extsprintf": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.2.0.tgz", + "integrity": "sha1-WtlGwi9bMrp/jNdCZxHG6KP8JSk=" + }, + "verror": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.6.0.tgz", + "integrity": "sha1-fROyex+swuLakEBetepuW90lLqU=", + "requires": { + "extsprintf": "1.2.0" + } + } + } + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + } + }, + "vise": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vise/-/vise-3.0.0.tgz", + "integrity": "sha512-kBFZLmiL1Vm3rHXphkhvvAcsjgeQXRrOFCbJb0I50YZZP4HGRNH+xGzK3matIMcpbsfr3I02u9odj4oCD0TWgA==", + "requires": { + "hoek": "5.0.3" + } + }, + "vow": { + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/vow/-/vow-0.4.17.tgz", + "integrity": "sha512-A3/9bWFqf6gT0jLR4/+bT+IPTe1mQf+tdsW6+WI5geP9smAp8Kbbu4R6QQCDKZN/8TSCqTlXVQm12QliB4rHfg==", + "dev": true + }, + "vow-fs": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/vow-fs/-/vow-fs-0.3.6.tgz", + "integrity": "sha1-LUxZviLivyYY3fWXq0uqkjvnIA0=", + "dev": true, + "requires": { + "glob": "7.1.2", + "uuid": "2.0.3", + "vow": "0.4.17", + "vow-queue": "0.4.3" + }, + "dependencies": { + "uuid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", + "dev": true + } + } + }, + "vow-queue": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/vow-queue/-/vow-queue-0.4.3.tgz", + "integrity": "sha512-/poAKDTFL3zYbeQg7cl4BGcfP4sGgXKrHnRFSKj97dteUFu8oyXMwIcdwu8NSx/RmPGIuYx1Bik/y5vU4H/VKw==", + "dev": true, + "requires": { + "vow": "0.4.17" + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "requires": { + "minimalistic-assert": "1.0.0" + } + }, + "well-known-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-1.0.0.tgz", + "integrity": "sha1-c8eK6Bp3Jqj6WY4ogIAcixYiVRg=", + "dev": true + }, + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "dev": true, + "requires": { + "isexe": "2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "widest-line": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz", + "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", + "dev": true, + "requires": { + "string-width": "2.1.1" + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true, + "optional": true + }, + "winston": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz", + "integrity": "sha1-ZLar9M0Brcrv1QCTk7HY6L7BnbA=", + "dev": true, + "requires": { + "async": "0.2.10", + "colors": "0.6.2", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "pkginfo": "0.3.1", + "stack-trace": "0.0.10" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "dev": true + }, + "colors": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=", + "dev": true + }, + "pkginfo": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", + "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=", + "dev": true + } + } + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "wreck": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/wreck/-/wreck-14.0.2.tgz", + "integrity": "sha512-QCm3omWNJUseqrSzwX2QZi1rBbmCfbFHJAXputLLyZ37VSiFnSYQB0ms/mPnSvrlIu7GVm89Y/gBNhSY26uVIQ==", + "requires": { + "boom": "7.2.0", + "hoek": "5.0.3" + } + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "requires": { + "mkdirp": "0.5.1" + } + }, + "write-file-atomic": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", + "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "signal-exit": "3.0.2" + } + }, + "write-json-file": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-2.3.0.tgz", + "integrity": "sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=", + "dev": true, + "requires": { + "detect-indent": "5.0.0", + "graceful-fs": "4.1.11", + "make-dir": "1.2.0", + "pify": "3.0.0", + "sort-keys": "2.0.0", + "write-file-atomic": "2.3.0" + }, + "dependencies": { + "detect-indent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", + "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=", + "dev": true + } + } + }, + "write-pkg": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-3.1.0.tgz", + "integrity": "sha1-AwqZlMyZk9JbTnWp8aGSNgcpHOk=", + "dev": true, + "requires": { + "sort-keys": "2.0.0", + "write-json-file": "2.3.0" + } + }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", + "dev": true + }, + "xmlbuilder": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-3.1.0.tgz", + "integrity": "sha1-LIaIjy1OrehQ+jjKf3Ij9yCVFuE=", + "dev": true, + "requires": { + "lodash": "3.10.1" + }, + "dependencies": { + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true + } + } + }, + "xmlcreate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-1.0.2.tgz", + "integrity": "sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8=", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yargs": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.0.0.tgz", + "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", + "dev": true, + "requires": { + "cliui": "4.0.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "9.0.2" + }, + "dependencies": { + "cliui": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.0.0.tgz", + "integrity": "sha512-nY3W5Gu2racvdDk//ELReY+dHjb9PlIcVDFXP72nVIhq2Gy3LuVXYwJoPVudwQnv1shtohpgkdCKT2YaKY0CKw==", + "dev": true, + "requires": { + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" + } + } + } + }, + "yargs-parser": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", + "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "dev": true, + "requires": { + "camelcase": "4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + } + } + } + } +} diff --git a/handwritten/error-reporting/yarn.lock b/handwritten/error-reporting/yarn.lock new file mode 100644 index 00000000000..bf7bffa34b0 --- /dev/null +++ b/handwritten/error-reporting/yarn.lock @@ -0,0 +1,6998 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ava/babel-plugin-throws-helper@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@ava/babel-plugin-throws-helper/-/babel-plugin-throws-helper-2.0.0.tgz#2fc1fe3c211a71071a4eca7b8f7af5842cd1ae7c" + +"@ava/babel-preset-stage-4@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@ava/babel-preset-stage-4/-/babel-preset-stage-4-1.1.0.tgz#ae60be881a0babf7d35f52aba770d1f6194f76bd" + dependencies: + babel-plugin-check-es2015-constants "^6.8.0" + babel-plugin-syntax-trailing-function-commas "^6.20.0" + babel-plugin-transform-async-to-generator "^6.16.0" + babel-plugin-transform-es2015-destructuring "^6.19.0" + babel-plugin-transform-es2015-function-name "^6.9.0" + babel-plugin-transform-es2015-modules-commonjs "^6.18.0" + babel-plugin-transform-es2015-parameters "^6.21.0" + babel-plugin-transform-es2015-spread "^6.8.0" + babel-plugin-transform-es2015-sticky-regex "^6.8.0" + babel-plugin-transform-es2015-unicode-regex "^6.11.0" + babel-plugin-transform-exponentiation-operator "^6.8.0" + package-hash "^1.2.0" + +"@ava/babel-preset-transform-test-files@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@ava/babel-preset-transform-test-files/-/babel-preset-transform-test-files-3.0.0.tgz#cded1196a8d8d9381a509240ab92e91a5ec069f7" + dependencies: + "@ava/babel-plugin-throws-helper" "^2.0.0" + babel-plugin-espower "^2.3.2" + +"@ava/write-file-atomic@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@ava/write-file-atomic/-/write-file-atomic-2.2.0.tgz#d625046f3495f1f5e372135f473909684b429247" + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + slide "^1.1.5" + +"@concordance/react@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@concordance/react/-/react-1.0.0.tgz#fcf3cad020e5121bfd1c61d05bc3516aac25f734" + dependencies: + arrify "^1.0.1" + +"@google-cloud/common@^0.16.0": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@google-cloud/common/-/common-0.16.1.tgz#e1f9fc49553362997e1fbff737444f1b460ded78" + dependencies: + array-uniq "^1.0.3" + arrify "^1.0.1" + concat-stream "^1.6.0" + create-error-class "^3.0.2" + duplexify "^3.5.0" + ent "^2.2.0" + extend "^3.0.1" + google-auto-auth "^0.9.0" + is "^3.2.0" + log-driver "1.2.5" + methmeth "^1.1.0" + modelo "^4.2.0" + request "^2.79.0" + retry-request "^3.0.0" + split-array-stream "^1.0.0" + stream-events "^1.0.1" + string-format-obj "^1.1.0" + through2 "^2.0.3" + +"@google-cloud/nodejs-repo-tools@^2.0.11": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@google-cloud/nodejs-repo-tools/-/nodejs-repo-tools-2.2.1.tgz#bb4ad26a86897d84d4f4bd63b11daf7bd4361df7" + dependencies: + ava "0.25.0" + colors "1.1.2" + fs-extra "5.0.0" + got "8.2.0" + handlebars "4.0.11" + lodash "4.17.5" + nyc "11.4.1" + proxyquire "1.8.0" + sinon "4.3.0" + string "3.3.3" + supertest "3.0.0" + yargs "11.0.0" + yargs-parser "9.0.2" + +"@ladjs/time-require@^0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@ladjs/time-require/-/time-require-0.1.4.tgz#5c615d75fd647ddd5de9cf6922649558856b21a1" + dependencies: + chalk "^0.4.0" + date-time "^0.1.1" + pretty-ms "^0.2.1" + text-table "^0.2.0" + +"@sindresorhus/is@^0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" + +"@sinonjs/formatio@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-2.0.0.tgz#84db7e9eb5531df18a8c5e0bfb6e449e55e654b2" + dependencies: + samsam "1.3.0" + +"@types/accepts@*": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" + dependencies: + "@types/node" "*" + +"@types/body-parser@*": + version "1.16.8" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.16.8.tgz#687ec34140624a3bec2b1a8ea9268478ae8f3be3" + dependencies: + "@types/express" "*" + "@types/node" "*" + +"@types/boom@^4": + version "4.3.10" + resolved "https://registry.yarnpkg.com/@types/boom/-/boom-4.3.10.tgz#39dad8c0614c26b91ef016a57d7eee4ffe4f8a25" + +"@types/bunyan@*": + version "1.8.4" + resolved "https://registry.yarnpkg.com/@types/bunyan/-/bunyan-1.8.4.tgz#69c11adc7b50538d45fb68d9ae39d062b9432f38" + dependencies: + "@types/events" "*" + "@types/node" "*" + +"@types/caseless@*": + version "0.12.1" + resolved "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.1.tgz#9794c69c8385d0192acc471a540d1f8e0d16218a" + +"@types/catbox@^7": + version "7.1.6" + resolved "https://registry.yarnpkg.com/@types/catbox/-/catbox-7.1.6.tgz#be44e3cf3137b4c7997998ec60628709d5db904a" + dependencies: + "@types/boom" "^4" + +"@types/connect@*": + version "3.4.31" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.31.tgz#1f92d6b117ecc05076c49ecd024f7976e528bad9" + dependencies: + "@types/node" "*" + +"@types/cookies@*": + version "0.7.1" + resolved "https://registry.yarnpkg.com/@types/cookies/-/cookies-0.7.1.tgz#f9f204bd6767d389eea3b87609e30c090c77a540" + dependencies: + "@types/connect" "*" + "@types/express" "*" + "@types/keygrip" "*" + "@types/node" "*" + +"@types/events@*": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@types/events/-/events-1.2.0.tgz#81a6731ce4df43619e5c8c945383b3e62a89ea86" + +"@types/express-serve-static-core@*": + version "4.11.1" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.11.1.tgz#f6f7212382d59b19d696677bcaa48a37280f5d45" + dependencies: + "@types/events" "*" + "@types/node" "*" + +"@types/express@*", "@types/express@^4.11.0": + version "4.11.1" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.11.1.tgz#f99663b3ab32d04cb11db612ef5dd7933f75465b" + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "*" + "@types/serve-static" "*" + +"@types/form-data@*": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@types/form-data/-/form-data-2.2.1.tgz#ee2b3b8eaa11c0938289953606b745b738c54b1e" + dependencies: + "@types/node" "*" + +"@types/glob@*", "@types/glob@^5.0.35": + version "5.0.35" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-5.0.35.tgz#1ae151c802cece940443b5ac246925c85189f32a" + dependencies: + "@types/events" "*" + "@types/minimatch" "*" + "@types/node" "*" + +"@types/hapi@^16.1.11": + version "16.1.14" + resolved "https://registry.yarnpkg.com/@types/hapi/-/hapi-16.1.14.tgz#cdda84296fc08c02526301f88964fa74ab9090a6" + dependencies: + "@types/boom" "^4" + "@types/catbox" "^7" + "@types/events" "*" + "@types/joi" "*" + "@types/mimos" "*" + "@types/node" "*" + "@types/podium" "*" + "@types/shot" "*" + +"@types/http-assert@*": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@types/http-assert/-/http-assert-1.2.2.tgz#17dfe5a82184a8898935d96fe2eaedd37d22d9a4" + +"@types/is@0.0.18": + version "0.0.18" + resolved "https://registry.yarnpkg.com/@types/is/-/is-0.0.18.tgz#7d0c575f935109be88c47dc0ea3c5075f81cf3c7" + +"@types/joi@*": + version "13.0.5" + resolved "https://registry.yarnpkg.com/@types/joi/-/joi-13.0.5.tgz#50829402204e8fec8ee287eeb37d79fbff34913c" + +"@types/keygrip@*": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.1.tgz#ff540462d2fb4d0a88441ceaf27d287b01c3d878" + +"@types/koa-compose@*": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@types/koa-compose/-/koa-compose-3.2.2.tgz#dc106e000bbf92a3ac900f756df47344887ee847" + +"@types/koa@^2.0.43": + version "2.0.44" + resolved "https://registry.yarnpkg.com/@types/koa/-/koa-2.0.44.tgz#4d972a3dec4d6eb89bd3c16775de26305d1c51a6" + dependencies: + "@types/accepts" "*" + "@types/cookies" "*" + "@types/events" "*" + "@types/http-assert" "*" + "@types/keygrip" "*" + "@types/koa-compose" "*" + "@types/node" "*" + +"@types/lodash.has@^4.5.3": + version "4.5.3" + resolved "https://registry.yarnpkg.com/@types/lodash.has/-/lodash.has-4.5.3.tgz#79f219a63493454350d860b1e905dfe5d9b1d1e3" + dependencies: + "@types/lodash" "*" + +"@types/lodash@*": + version "4.14.104" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.104.tgz#53ee2357fa2e6e68379341d92eb2ecea4b11bb80" + +"@types/mime-db@*": + version "1.27.0" + resolved "https://registry.yarnpkg.com/@types/mime-db/-/mime-db-1.27.0.tgz#9bc014a1fd1fdf47649c1a54c6dd7966b8284792" + +"@types/mime@*": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.0.tgz#5a7306e367c539b9f6543499de8dd519fac37a8b" + +"@types/mimos@*": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/mimos/-/mimos-3.0.1.tgz#59d96abe1c9e487e7463fe41e8d86d76b57a441a" + dependencies: + "@types/mime-db" "*" + +"@types/minimatch@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + +"@types/mocha@^2.2.45": + version "2.2.48" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-2.2.48.tgz#3523b126a0b049482e1c3c11877460f76622ffab" + +"@types/ncp@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/ncp/-/ncp-2.0.1.tgz#749432511f6ad747d04e98837b18cca9045567fb" + dependencies: + "@types/node" "*" + +"@types/node@*", "@types/node@^9.4.0": + version "9.4.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-9.4.7.tgz#57d81cd98719df2c9de118f2d5f3b1120dcd7275" + +"@types/once@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@types/once/-/once-1.4.0.tgz#7bfe3d99a0951f3141bac2617c9827525788b8f5" + +"@types/pify@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/pify/-/pify-3.0.1.tgz#6c45127d0279a9518b0ef48971ec95b91dcb5f47" + +"@types/podium@*": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/podium/-/podium-1.0.0.tgz#bfaa2151be2b1d6109cc69f7faa9dac2cba3bb20" + +"@types/request@^2.0.9": + version "2.47.0" + resolved "https://registry.yarnpkg.com/@types/request/-/request-2.47.0.tgz#76a666cee4cb85dcffea6cd4645227926d9e114e" + dependencies: + "@types/caseless" "*" + "@types/form-data" "*" + "@types/node" "*" + "@types/tough-cookie" "*" + +"@types/restify@^5.0.6": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@types/restify/-/restify-5.0.7.tgz#09b736ad96af04814f9501b7b50e84dabcd77228" + dependencies: + "@types/bunyan" "*" + "@types/node" "*" + "@types/spdy" "*" + +"@types/rimraf@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-2.0.2.tgz#7f0fc3cf0ff0ad2a99bb723ae1764f30acaf8b6e" + dependencies: + "@types/glob" "*" + "@types/node" "*" + +"@types/serve-static@*": + version "1.13.1" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.1.tgz#1d2801fa635d274cd97d4ec07e26b21b44127492" + dependencies: + "@types/express-serve-static-core" "*" + "@types/mime" "*" + +"@types/shot@*": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@types/shot/-/shot-3.4.0.tgz#459477c5187d3ebd303660ab099e7e9e0f3b656f" + dependencies: + "@types/node" "*" + +"@types/spdy@*": + version "3.4.4" + resolved "https://registry.yarnpkg.com/@types/spdy/-/spdy-3.4.4.tgz#3282fd4ad8c4603aa49f7017dd520a08a345b2bc" + dependencies: + "@types/node" "*" + +"@types/tmp@0.0.33": + version "0.0.33" + resolved "https://registry.yarnpkg.com/@types/tmp/-/tmp-0.0.33.tgz#1073c4bc824754ae3d10cfab88ab0237ba964e4d" + +"@types/tough-cookie@*": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-2.3.2.tgz#e0d481d8bb282ad8a8c9e100ceb72c995fb5e709" + +JSV@^4.0.x: + version "4.0.2" + resolved "https://registry.yarnpkg.com/JSV/-/JSV-4.0.2.tgz#d077f6825571f82132f9dffaed587b4029feff57" + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + +accept@3.x.x: + version "3.0.2" + resolved "https://registry.yarnpkg.com/accept/-/accept-3.0.2.tgz#83e41cec7e1149f3fd474880423873db6c6cc9ac" + dependencies: + boom "7.x.x" + hoek "5.x.x" + +accepts@^1.2.2, accepts@~1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" + dependencies: + mime-types "~2.1.18" + negotiator "0.6.1" + +acorn-es7-plugin@^1.0.10, acorn-es7-plugin@^1.0.12: + version "1.1.7" + resolved "https://registry.yarnpkg.com/acorn-es7-plugin/-/acorn-es7-plugin-1.1.7.tgz#f2ee1f3228a90eead1245f9ab1922eb2e71d336b" + +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + dependencies: + acorn "^3.0.4" + +acorn@^3.0.4: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + +acorn@^4.0.0: + version "4.0.13" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" + +acorn@^5.0.0, acorn@^5.5.0: + version "5.5.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" + +ajv-keywords@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" + +ajv@^4.9.1: + version "4.11.8" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +ajv@^5.1.0, ajv@^5.2.3, ajv@^5.3.0: + version "5.5.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.3.0" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + +ammo@3.x.x: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ammo/-/ammo-3.0.0.tgz#30f322f70a0904eaee1788f4d26c5be1d72da181" + dependencies: + boom "6.x.x" + hoek "5.x.x" + +ansi-align@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" + dependencies: + string-width "^2.0.0" + +ansi-escapes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +ansi-styles@^3.1.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + dependencies: + color-convert "^1.9.0" + +ansi-styles@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" + +any-promise@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + +anymatch@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" + dependencies: + micromatch "^2.1.5" + normalize-path "^2.0.0" + +append-transform@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" + dependencies: + default-require-extensions "^1.0.0" + +aproba@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + +archy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + +are-we-there-yet@~1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.2, argparse@^1.0.7, argparse@^1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + dependencies: + sprintf-js "~1.0.2" + +argv@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/argv/-/argv-0.0.2.tgz#ecbd16f8949b157183711b1bda334f37840185ab" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + +arr-exclude@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/arr-exclude/-/arr-exclude-1.0.0.tgz#dfc7c2e552a270723ccda04cf3128c8cbfe5c631" + +arr-flatten@^1.0.1, arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + +array-differ@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" + +array-filter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83" + +array-find-index@^1.0.1, array-find-index@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + +array-find@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-find/-/array-find-1.0.0.tgz#6c8e286d11ed768327f8e62ecee87353ca3e78b8" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1, array-uniq@^1.0.2, array-uniq@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + +arrify@^1.0.0, arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + +asn1@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assert-plus@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + +assertion-error@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + +async@0.2.x, async@~0.2.9: + version "0.2.10" + resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" + +async@^1.4.0, async@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + +async@^2.3.0, async@^2.4.0, async@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" + dependencies: + lodash "^4.14.0" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +atob@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.0.3.tgz#19c7a760473774468f20b2d2d03372ad7d4cbf5d" + +auto-bind@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/auto-bind/-/auto-bind-1.2.0.tgz#8b7e318aad53d43ba8a8ecaf0066d85d5f798cd6" + +ava-init@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/ava-init/-/ava-init-0.2.1.tgz#75ac4c8553326290d2866e63b62fa7035684bd58" + dependencies: + arr-exclude "^1.0.0" + execa "^0.7.0" + has-yarn "^1.0.0" + read-pkg-up "^2.0.0" + write-pkg "^3.1.0" + +ava@0.25.0: + version "0.25.0" + resolved "https://registry.yarnpkg.com/ava/-/ava-0.25.0.tgz#8ac87780514f96a6fd42e1306eaa0752ce3a407f" + dependencies: + "@ava/babel-preset-stage-4" "^1.1.0" + "@ava/babel-preset-transform-test-files" "^3.0.0" + "@ava/write-file-atomic" "^2.2.0" + "@concordance/react" "^1.0.0" + "@ladjs/time-require" "^0.1.4" + ansi-escapes "^3.0.0" + ansi-styles "^3.1.0" + arr-flatten "^1.0.1" + array-union "^1.0.1" + array-uniq "^1.0.2" + arrify "^1.0.0" + auto-bind "^1.1.0" + ava-init "^0.2.0" + babel-core "^6.17.0" + babel-generator "^6.26.0" + babel-plugin-syntax-object-rest-spread "^6.13.0" + bluebird "^3.0.0" + caching-transform "^1.0.0" + chalk "^2.0.1" + chokidar "^1.4.2" + clean-stack "^1.1.1" + clean-yaml-object "^0.1.0" + cli-cursor "^2.1.0" + cli-spinners "^1.0.0" + cli-truncate "^1.0.0" + co-with-promise "^4.6.0" + code-excerpt "^2.1.1" + common-path-prefix "^1.0.0" + concordance "^3.0.0" + convert-source-map "^1.5.1" + core-assert "^0.2.0" + currently-unhandled "^0.4.1" + debug "^3.0.1" + dot-prop "^4.1.0" + empower-core "^0.6.1" + equal-length "^1.0.0" + figures "^2.0.0" + find-cache-dir "^1.0.0" + fn-name "^2.0.0" + get-port "^3.0.0" + globby "^6.0.0" + has-flag "^2.0.0" + hullabaloo-config-manager "^1.1.0" + ignore-by-default "^1.0.0" + import-local "^0.1.1" + indent-string "^3.0.0" + is-ci "^1.0.7" + is-generator-fn "^1.0.0" + is-obj "^1.0.0" + is-observable "^1.0.0" + is-promise "^2.1.0" + last-line-stream "^1.0.0" + lodash.clonedeepwith "^4.5.0" + lodash.debounce "^4.0.3" + lodash.difference "^4.3.0" + lodash.flatten "^4.2.0" + loud-rejection "^1.2.0" + make-dir "^1.0.0" + matcher "^1.0.0" + md5-hex "^2.0.0" + meow "^3.7.0" + ms "^2.0.0" + multimatch "^2.1.0" + observable-to-promise "^0.5.0" + option-chain "^1.0.0" + package-hash "^2.0.0" + pkg-conf "^2.0.0" + plur "^2.0.0" + pretty-ms "^3.0.0" + require-precompiled "^0.1.0" + resolve-cwd "^2.0.0" + safe-buffer "^5.1.1" + semver "^5.4.1" + slash "^1.0.0" + source-map-support "^0.5.0" + stack-utils "^1.0.1" + strip-ansi "^4.0.0" + strip-bom-buf "^1.0.0" + supertap "^1.0.0" + supports-color "^5.0.0" + trim-off-newlines "^1.0.1" + unique-temp-dir "^1.0.0" + update-notifier "^2.3.0" + +aws-sign2@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + +aws4@^1.2.1, aws4@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" + +axios@^0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.0.tgz#32d53e4851efdc0a11993b6cd000789d70c05102" + dependencies: + follow-redirects "^1.3.0" + is-buffer "^1.1.5" + +b64@4.x.x: + version "4.0.0" + resolved "https://registry.yarnpkg.com/b64/-/b64-4.0.0.tgz#c37f587f0a383c7019e821120e8c3f58f0d22772" + +babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@^6.17.0, babel-core@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.0" + debug "^2.6.8" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.7" + slash "^1.0.0" + source-map "^0.5.6" + +babel-generator@^6.1.0, babel-generator@^6.18.0, babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + +babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" + dependencies: + babel-helper-explode-assignable-expression "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-call-delegate@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-explode-assignable-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" + dependencies: + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-get-function-arity@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-hoist-variables@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-regex@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" + dependencies: + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-remap-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-check-es2015-constants@^6.8.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-espower@^2.3.2: + version "2.4.0" + resolved "https://registry.yarnpkg.com/babel-plugin-espower/-/babel-plugin-espower-2.4.0.tgz#9f92c080e9adfe73f69baed7ab3e24f649009373" + dependencies: + babel-generator "^6.1.0" + babylon "^6.1.0" + call-matcher "^1.0.0" + core-js "^2.0.0" + espower-location-detector "^1.0.0" + espurify "^1.6.0" + estraverse "^4.1.1" + +babel-plugin-syntax-async-functions@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + +babel-plugin-syntax-exponentiation-operator@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" + +babel-plugin-syntax-object-rest-spread@^6.13.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + +babel-plugin-syntax-trailing-function-commas@^6.20.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" + +babel-plugin-transform-async-to-generator@^6.16.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-functions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-destructuring@^6.19.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-function-name@^6.9.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-modules-commonjs@^6.18.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" + dependencies: + babel-plugin-transform-strict-mode "^6.24.1" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-types "^6.26.0" + +babel-plugin-transform-es2015-parameters@^6.21.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" + dependencies: + babel-helper-call-delegate "^6.24.1" + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-spread@^6.8.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-sticky-regex@^6.8.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-unicode-regex@^6.11.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + regexpu-core "^2.0.0" + +babel-plugin-transform-exponentiation-operator@^6.8.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" + dependencies: + babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" + babel-plugin-syntax-exponentiation-operator "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + +babel-runtime@^6.22.0, babel-runtime@^6.26.0, babel-runtime@^6.9.2: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.18.0, babel-traverse@^6.24.1, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.18.0, babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@7.0.0-beta.19: + version "7.0.0-beta.19" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.19.tgz#e928c7e807e970e0536b078ab3e0c48f9e052503" + +babylon@^6.1.0, babylon@^6.18.0, babylon@^6.8.1: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + +base64url@2.0.0, base64url@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/base64url/-/base64url-2.0.0.tgz#eac16e03ea1438eff9423d69baa36262ed1f70bb" + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +bcrypt-pbkdf@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" + dependencies: + tweetnacl "^0.14.3" + +big-time@2.x.x: + version "2.0.0" + resolved "https://registry.yarnpkg.com/big-time/-/big-time-2.0.0.tgz#70193b60faff72c96ed52331b555490e604d7ccc" + +binary-extensions@^1.0.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" + +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + dependencies: + inherits "~2.0.0" + +bluebird@^3.0.0, bluebird@~3.5.0: + version "3.5.1" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" + +body-parser@1.18.2, body-parser@^1.15.1: + version "1.18.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" + dependencies: + bytes "3.0.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.1" + http-errors "~1.6.2" + iconv-lite "0.4.19" + on-finished "~2.3.0" + qs "6.5.1" + raw-body "2.3.2" + type-is "~1.6.15" + +boom@2.x.x: + version "2.10.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + dependencies: + hoek "2.x.x" + +boom@4.x.x: + version "4.3.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" + dependencies: + hoek "4.x.x" + +boom@5.x.x: + version "5.2.0" + resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" + dependencies: + hoek "4.x.x" + +boom@6.x.x: + version "6.0.0" + resolved "https://registry.yarnpkg.com/boom/-/boom-6.0.0.tgz#9b36c52a12afab3f0e55536131b7fd5021aad0cc" + dependencies: + hoek "5.x.x" + +boom@7.x.x: + version "7.2.0" + resolved "https://registry.yarnpkg.com/boom/-/boom-7.2.0.tgz#2bff24a55565767fde869ec808317eb10c48e966" + dependencies: + hoek "5.x.x" + +bounce@1.x.x: + version "1.2.0" + resolved "https://registry.yarnpkg.com/bounce/-/bounce-1.2.0.tgz#e3bac68c73fd256e38096551efc09f504873c8c8" + dependencies: + boom "7.x.x" + hoek "5.x.x" + +boxen@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" + dependencies: + ansi-align "^2.0.0" + camelcase "^4.0.0" + chalk "^2.0.1" + cli-boxes "^1.0.0" + string-width "^2.0.0" + term-size "^1.2.0" + widest-line "^2.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +braces@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.1.tgz#7086c913b4e5a08dbe37ac0ee6a2500c4ba691bb" + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + define-property "^1.0.0" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + kind-of "^6.0.2" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + +buf-compare@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buf-compare/-/buf-compare-1.0.1.tgz#fef28da8b8113a0a0db4430b0b6467b69730b34a" + +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + +builtin-modules@^1.0.0, builtin-modules@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + +builtins@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + +bunyan@^1.8.12: + version "1.8.12" + resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.12.tgz#f150f0f6748abdd72aeae84f04403be2ef113797" + optionalDependencies: + dtrace-provider "~0.8" + moment "^2.10.6" + mv "~2" + safe-json-stringify "~1" + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cacheable-request@^2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" + dependencies: + clone-response "1.0.2" + get-stream "3.0.0" + http-cache-semantics "3.8.1" + keyv "3.0.0" + lowercase-keys "1.0.0" + normalize-url "2.0.1" + responselike "1.0.2" + +caching-transform@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-1.0.1.tgz#6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1" + dependencies: + md5-hex "^1.2.0" + mkdirp "^0.5.1" + write-file-atomic "^1.1.4" + +call-matcher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-matcher/-/call-matcher-1.0.1.tgz#5134d077984f712a54dad3cbf62de28dce416ca8" + dependencies: + core-js "^2.0.0" + deep-equal "^1.0.0" + espurify "^1.6.0" + estraverse "^4.0.0" + +call-signature@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/call-signature/-/call-signature-0.0.2.tgz#a84abc825a55ef4cb2b028bd74e205a65b9a4996" + +call@5.x.x: + version "5.0.1" + resolved "https://registry.yarnpkg.com/call/-/call-5.0.1.tgz#ac1b5c106d9edc2a17af2a4a4f74dd4f0c06e910" + dependencies: + boom "7.x.x" + hoek "5.x.x" + +caller-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + dependencies: + callsites "^0.2.0" + +callsites@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase-keys@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" + dependencies: + camelcase "^4.1.0" + map-obj "^2.0.0" + quick-lru "^1.0.0" + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + +camelcase@^4.0.0, camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + +capture-stack-trace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + +catbox-memory@3.x.x: + version "3.1.1" + resolved "https://registry.yarnpkg.com/catbox-memory/-/catbox-memory-3.1.1.tgz#4f398835a3d8f5992c31ddee24378467498a9c9a" + dependencies: + big-time "2.x.x" + boom "7.x.x" + hoek "5.x.x" + +catbox@10.x.x: + version "10.0.2" + resolved "https://registry.yarnpkg.com/catbox/-/catbox-10.0.2.tgz#e6ac1f35102d1a9bd07915b82e508d12b50a8bfa" + dependencies: + boom "7.x.x" + bounce "1.x.x" + hoek "5.x.x" + joi "13.x.x" + +catharsis@~0.8.9: + version "0.8.9" + resolved "https://registry.yarnpkg.com/catharsis/-/catharsis-0.8.9.tgz#98cc890ca652dd2ef0e70b37925310ff9e90fc8b" + dependencies: + underscore-contrib "~0.3.0" + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chai@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c" + dependencies: + assertion-error "^1.0.1" + check-error "^1.0.1" + deep-eql "^3.0.0" + get-func-name "^2.0.0" + pathval "^1.0.0" + type-detect "^4.0.0" + +chalk@^0.4.0, chalk@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" + dependencies: + ansi-styles "~1.0.0" + has-color "~0.1.0" + strip-ansi "~0.1.0" + +chalk@^1.1.3, chalk@~1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.2.tgz#250dc96b07491bfd601e648d66ddf5f60c7a5c65" + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chardet@^0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" + +check-error@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + +chokidar@^1.4.2: + version "1.7.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + +ci-info@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.2.tgz#03561259db48d0474c8bdc90f5b47b068b6bbfb4" + +circular-json@^0.3.1: + version "0.3.3" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" + +clang-format@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/clang-format/-/clang-format-1.2.2.tgz#a7277a03fce9aa4e387ddaa83b60d99dab115737" + dependencies: + async "^1.5.2" + glob "^7.0.0" + resolve "^1.1.6" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clean-stack@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-1.3.0.tgz#9e821501ae979986c46b1d66d2d432db2fd4ae31" + +clean-yaml-object@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz#63fb110dc2ce1a84dc21f6d9334876d010ae8b68" + +cli-boxes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + dependencies: + restore-cursor "^2.0.0" + +cli-spinners@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.1.0.tgz#f1847b168844d917a671eb9d147e3df497c90d06" + +cli-table@~0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" + dependencies: + colors "1.0.3" + +cli-truncate@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-1.1.0.tgz#2b2dfd83c53cfd3572b87fc4d430a808afb04086" + dependencies: + slice-ansi "^1.0.0" + string-width "^2.0.0" + +cli-width@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + +cli@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cli/-/cli-1.0.1.tgz#22817534f24bfa4950c34d532d48ecbc621b8c14" + dependencies: + exit "0.1.2" + glob "^7.1.1" + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +cliui@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.0.0.tgz#743d4650e05f36d1ed2575b59638d87322bfbbcc" + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" + +clone-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-regexp/-/clone-regexp-1.0.0.tgz#eae0a2413f55c0942f818c229fefce845d7f3b1c" + dependencies: + is-regexp "^1.0.0" + is-supported-regexp-flag "^1.0.0" + +clone-response@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + dependencies: + mimic-response "^1.0.0" + +co-with-promise@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co-with-promise/-/co-with-promise-4.6.0.tgz#413e7db6f5893a60b942cf492c4bec93db415ab7" + dependencies: + pinkie-promise "^1.0.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +code-excerpt@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/code-excerpt/-/code-excerpt-2.1.1.tgz#5fe3057bfbb71a5f300f659ef2cc0a47651ba77c" + dependencies: + convert-to-spaces "^1.0.1" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + +codecov@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/codecov/-/codecov-3.0.0.tgz#c273b8c4f12945723e8dc9d25803d89343e5f28e" + dependencies: + argv "0.0.2" + request "2.81.0" + urlgrey "0.4.4" + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" + dependencies: + color-name "^1.1.1" + +color-name@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + +colors@0.6.x: + version "0.6.2" + resolved "https://registry.yarnpkg.com/colors/-/colors-0.6.2.tgz#2423fe6678ac0c5dae8852e5d0e5be08c997abcc" + +colors@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" + +colors@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + +combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" + dependencies: + delayed-stream "~1.0.0" + +commander@2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" + +commander@^2.12.1: + version "2.15.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.0.tgz#ad2a23a1c3b036e392469b8012cec6b33b4c1322" + +commander@~2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + dependencies: + graceful-readlink ">= 1.0.0" + +comment-parser@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-0.3.2.tgz#3c03f0776b86a36dfd9a0a2c97c6307f332082fe" + dependencies: + readable-stream "^2.0.4" + +common-path-prefix@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-1.0.0.tgz#cd52f6f0712e0baab97d6f9732874f22f47752c0" + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + +component-emitter@^1.2.0, component-emitter@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +concat-stream@^1.6.0: + version "1.6.1" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.1.tgz#261b8f518301f1d834e36342b9fea095d2620a26" + dependencies: + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +concordance@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/concordance/-/concordance-3.0.0.tgz#b2286af54405fc995fc7345b0b106d8dd073cb29" + dependencies: + date-time "^2.1.0" + esutils "^2.0.2" + fast-diff "^1.1.1" + function-name-support "^0.2.0" + js-string-escape "^1.0.1" + lodash.clonedeep "^4.5.0" + lodash.flattendeep "^4.4.0" + lodash.merge "^4.6.0" + md5-hex "^2.0.0" + semver "^5.3.0" + well-known-symbols "^1.0.0" + +configstore@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.1.tgz#094ee662ab83fad9917678de114faaea8fcdca90" + dependencies: + dot-prop "^4.1.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + unique-string "^1.0.0" + write-file-atomic "^2.0.0" + xdg-basedir "^3.0.0" + +console-browserify@1.1.x: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + dependencies: + date-now "^0.1.4" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +content-disposition@0.5.2, content-disposition@~0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + +content-type@^1.0.0, content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + +content@4.x.x: + version "4.0.4" + resolved "https://registry.yarnpkg.com/content/-/content-4.0.4.tgz#2941609c89593ed2e1504d72c9a28e9516f163e0" + dependencies: + boom "7.x.x" + +convert-source-map@^1.1.0, convert-source-map@^1.1.1, convert-source-map@^1.3.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" + +convert-to-spaces@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/convert-to-spaces/-/convert-to-spaces-1.0.2.tgz#7e3e48bbe6d997b1417ddca2868204b4d3d85715" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + +cookiejar@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.1.tgz#41ad57b1b555951ec171412a81942b1e8200d34a" + +cookies@~0.7.0: + version "0.7.1" + resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.7.1.tgz#7c8a615f5481c61ab9f16c833731bcb8f663b99b" + dependencies: + depd "~1.1.1" + keygrip "~1.0.2" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + +core-assert@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/core-assert/-/core-assert-0.2.1.tgz#f85e2cf9bfed28f773cc8b3fa5c5b69bdc02fe3f" + dependencies: + buf-compare "^1.0.0" + is-error "^2.2.0" + +core-js@^2.0.0, core-js@^2.4.0, core-js@^2.5.0: + version "2.5.3" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.3.tgz#8acc38345824f16d8365b7c9b4259168e8ed603e" + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +cp-file@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-3.2.0.tgz#6f83616254624f0ad58aa4aa8d076f026be7e188" + dependencies: + graceful-fs "^4.1.2" + mkdirp "^0.5.0" + nested-error-stacks "^1.0.1" + object-assign "^4.0.1" + pify "^2.3.0" + pinkie-promise "^2.0.0" + readable-stream "^2.1.4" + +cpy-cli@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cpy-cli/-/cpy-cli-1.0.1.tgz#67fb5a4a2dec28ca8abff375de4b9e71f6a7561c" + dependencies: + cpy "^4.0.0" + meow "^3.6.0" + +cpy@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cpy/-/cpy-4.0.1.tgz#b67267eba2f3960ba06a5a61ac94033422833424" + dependencies: + cp-file "^3.1.0" + globby "^4.0.0" + meow "^3.6.0" + nested-error-stacks "^1.0.0" + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + +create-error-class@^3.0.0, create-error-class@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + dependencies: + capture-stack-trace "^1.0.0" + +cross-spawn@^4: + version "4.0.2" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + +cross-spawn@^5.0.1, cross-spawn@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cryptiles@2.x.x: + version "2.0.5" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + dependencies: + boom "2.x.x" + +cryptiles@3.x.x: + version "3.1.2" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" + dependencies: + boom "5.x.x" + +cryptiles@4.x.x: + version "4.1.1" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-4.1.1.tgz#169256b9df9fe3c73f8085c99e30b32247d4ab46" + dependencies: + boom "7.x.x" + +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + +cst@^0.4.3: + version "0.4.10" + resolved "https://registry.yarnpkg.com/cst/-/cst-0.4.10.tgz#9c05c825290a762f0a85c0aabb8c0fe035ae8516" + dependencies: + babel-runtime "^6.9.2" + babylon "^6.8.1" + source-map-support "^0.4.0" + +csv-generate@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/csv-generate/-/csv-generate-1.1.2.tgz#ec6b00edaed6e59ad9c20582f4c364e28b146240" + +csv-parse@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-1.3.3.tgz#d1cfd8743c2f849a0abb2fd544db56695d19a490" + +csv-stringify@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/csv-stringify/-/csv-stringify-1.1.2.tgz#77a41526581bce3380f12b00d7c5bbac70c82b58" + dependencies: + lodash.get "~4.4.2" + +csv@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/csv/-/csv-1.2.1.tgz#5231edfc1c7152512ec45781076a7a97ff525c0c" + dependencies: + csv-generate "^1.1.2" + csv-parse "^1.3.3" + csv-stringify "^1.1.2" + stream-transform "^0.2.2" + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + dependencies: + array-find-index "^1.0.1" + +cycle@1.0.x: + version "1.0.3" + resolved "https://registry.yarnpkg.com/cycle/-/cycle-1.0.3.tgz#21e80b2be8580f98b468f379430662b046c34ad2" + +d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + dependencies: + es5-ext "^0.10.9" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + +date-time@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/date-time/-/date-time-0.1.1.tgz#ed2f6d93d9790ce2fd66d5b5ff3edd5bbcbf3b07" + +date-time@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/date-time/-/date-time-2.1.0.tgz#0286d1b4c769633b3ca13e1e62558d2dbdc2eba2" + dependencies: + time-zone "^1.0.0" + +debug-log@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" + +debug@*, debug@3.1.0, debug@^3.0.1, debug@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + dependencies: + ms "2.0.0" + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + dependencies: + ms "2.0.0" + +decamelize-keys@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" + dependencies: + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.0.0, decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + dependencies: + mimic-response "^1.0.0" + +deep-eql@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + dependencies: + type-detect "^4.0.0" + +deep-equal@*, deep-equal@^1.0.0, deep-equal@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + +deep-extend@~0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + +default-require-extensions@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" + dependencies: + strip-bom "^2.0.0" + +define-properties@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" + dependencies: + foreach "^2.0.5" + object-keys "^1.0.8" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +del@^2.0.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" + dependencies: + globby "^5.0.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + rimraf "^2.2.8" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + +depd@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" + +depd@^1.1.0, depd@~1.1.1, depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + +destroy@^1.0.3, destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + +detect-indent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" + +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + +detect-node@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127" + +diff-match-patch@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.0.tgz#1cc3c83a490d67f95d91e39f6ad1f2e086b63048" + +diff@3.5.0, diff@^3.1.0, diff@^3.2.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + dependencies: + esutils "^2.0.2" + +dom-serializer@0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" + dependencies: + domelementtype "~1.1.1" + entities "~1.1.1" + +domelementtype@1, domelementtype@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" + +domelementtype@~1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" + +domhandler@2.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738" + dependencies: + domelementtype "1" + +domhandler@^2.3.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.1.tgz#892e47000a99be55bbf3774ffea0561d8879c259" + dependencies: + domelementtype "1" + +domutils@1.5: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^1.5.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + dependencies: + dom-serializer "0" + domelementtype "1" + +dot-prop@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + dependencies: + is-obj "^1.0.0" + +dtrace-provider@^0.8.1, dtrace-provider@~0.8: + version "0.8.6" + resolved "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.8.6.tgz#428a223afe03425d2cd6d6347fdf40c66903563d" + dependencies: + nan "^2.3.3" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + +duplexify@^3.5.0: + version "3.5.4" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.4.tgz#4bb46c1796eabebeec4ca9a2e66b808cb7a3d8b4" + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +eastasianwidth@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.1.1.tgz#44d656de9da415694467335365fb3147b8572b7c" + +ecc-jsbn@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + dependencies: + jsbn "~0.1.0" + +ecdsa-sig-formatter@1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.9.tgz#4bc926274ec3b5abb5016e7e1d60921ac262b2a1" + dependencies: + base64url "^2.0.0" + safe-buffer "^5.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + +empower-assert@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/empower-assert/-/empower-assert-1.0.1.tgz#31e310abc065baa7c3a0487e6be5bbcc65f3c1de" + dependencies: + estraverse "^4.2.0" + +empower-core@^0.6.1, empower-core@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/empower-core/-/empower-core-0.6.2.tgz#5adef566088e31fba80ba0a36df47d7094169144" + dependencies: + call-signature "0.0.2" + core-js "^2.0.0" + +empower@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/empower/-/empower-1.2.3.tgz#6f0da73447f4edd838fec5c60313a88ba5cb852b" + dependencies: + core-js "^2.0.0" + empower-core "^0.6.2" + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + +end-of-stream@^1.0.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + dependencies: + once "^1.4.0" + +ent@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" + +entities@1.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.0.0.tgz#b2987aa3821347fcde642b24fdfc9e4fb712bf26" + +entities@^1.1.1, entities@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" + +equal-length@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/equal-length/-/equal-length-1.0.1.tgz#21ca112d48ab24b4e1e7ffc0e5339d31fdfc274c" + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" + dependencies: + is-arrayish "^0.2.1" + +error-inject@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/error-inject/-/error-inject-1.0.0.tgz#e2b3d91b54aed672f309d950d154850fa11d4f37" + +es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.40" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.40.tgz#ab3d2179b943008c5e9ef241beb25ef41424c774" + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.1" + +es6-error@^4.0.1, es6-error@^4.0.2: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + +es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-map@^0.1.3: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + +es6-set@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-symbol "3.1.1" + event-emitter "~0.3.5" + +es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + dependencies: + d "1" + es5-ext "~0.10.14" + +es6-weak-map@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" + dependencies: + d "1" + es5-ext "^0.10.14" + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + +escallmatch@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/escallmatch/-/escallmatch-1.5.0.tgz#50099d86e8091b092df8ddfbc3f9a6fb05a024d0" + dependencies: + call-matcher "^1.0.0" + esprima "^2.0.0" + +escape-html@~1.0.1, escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + +escape-regexp-component@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/escape-regexp-component/-/escape-regexp-component-1.0.2.tgz#9c63b6d0b25ff2a88c3adbd18c5b61acc3b9faa2" + +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.4, escape-string-regexp@^1.0.5, escape-string-regexp@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +escodegen@^1.6.1, escodegen@^1.7.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.1.tgz#dbae17ef96c8e4bedb1356f4504fa4cc2f7cb7e2" + dependencies: + esprima "^3.1.3" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +escope@^3.3.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-config-prettier@^2.6.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-2.9.0.tgz#5ecd65174d486c22dff389fe036febf502d468a3" + dependencies: + get-stdin "^5.0.1" + +eslint-plugin-node@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz#bf19642298064379315d7a4b2a75937376fa05e4" + dependencies: + ignore "^3.3.6" + minimatch "^3.0.4" + resolve "^1.3.3" + semver "^5.4.1" + +eslint-plugin-prettier@^2.3.1: + version "2.6.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.0.tgz#33e4e228bdb06142d03c560ce04ec23f6c767dd7" + dependencies: + fast-diff "^1.1.1" + jest-docblock "^21.0.0" + +eslint-scope@^3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-visitor-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" + +eslint@^4.9.0: + version "4.18.2" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.18.2.tgz#0f81267ad1012e7d2051e186a9004cc2267b8d45" + dependencies: + ajv "^5.3.0" + babel-code-frame "^6.22.0" + chalk "^2.1.0" + concat-stream "^1.6.0" + cross-spawn "^5.1.0" + debug "^3.1.0" + doctrine "^2.1.0" + eslint-scope "^3.7.1" + eslint-visitor-keys "^1.0.0" + espree "^3.5.2" + esquery "^1.0.0" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + functional-red-black-tree "^1.0.1" + glob "^7.1.2" + globals "^11.0.1" + ignore "^3.3.3" + imurmurhash "^0.1.4" + inquirer "^3.0.6" + is-resolvable "^1.0.0" + js-yaml "^3.9.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.4" + minimatch "^3.0.2" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.2" + pluralize "^7.0.0" + progress "^2.0.0" + require-uncached "^1.0.3" + semver "^5.3.0" + strip-ansi "^4.0.0" + strip-json-comments "~2.0.1" + table "4.0.2" + text-table "~0.2.0" + +espower-loader@^1.0.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/espower-loader/-/espower-loader-1.2.2.tgz#edb46c3c59a06bac8ea73a695c86e5c5a0bc82da" + dependencies: + convert-source-map "^1.1.0" + espower-source "^2.0.0" + minimatch "^3.0.0" + source-map-support "^0.4.0" + xtend "^4.0.0" + +espower-location-detector@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/espower-location-detector/-/espower-location-detector-1.0.0.tgz#a17b7ecc59d30e179e2bef73fb4137704cb331b5" + dependencies: + is-url "^1.2.1" + path-is-absolute "^1.0.0" + source-map "^0.5.0" + xtend "^4.0.0" + +espower-source@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/espower-source/-/espower-source-2.2.0.tgz#7e005255ae47b5c136448644b3f3d802d503f752" + dependencies: + acorn "^5.0.0" + acorn-es7-plugin "^1.0.10" + convert-source-map "^1.1.1" + empower-assert "^1.0.0" + escodegen "^1.6.1" + espower "^2.0.0" + estraverse "^4.0.0" + merge-estraverse-visitors "^1.0.0" + multi-stage-sourcemap "^0.2.1" + path-is-absolute "^1.0.0" + xtend "^4.0.0" + +espower@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/espower/-/espower-2.1.0.tgz#ce1edb3d98702841fdf596d1cb8e85bdc4ae8e48" + dependencies: + array-find "^1.0.0" + escallmatch "^1.5.0" + escodegen "^1.7.0" + escope "^3.3.0" + espower-location-detector "^1.0.0" + espurify "^1.3.0" + estraverse "^4.1.0" + source-map "^0.5.0" + type-name "^2.0.0" + xtend "^4.0.0" + +espree@^3.5.2: + version "3.5.4" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" + dependencies: + acorn "^5.5.0" + acorn-jsx "^3.0.0" + +esprima@^2.0.0, esprima@^2.6.0: + version "2.7.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + +esprima@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + +esprima@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" + +espurify@^1.3.0, espurify@^1.6.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/espurify/-/espurify-1.7.0.tgz#1c5cf6cbccc32e6f639380bd4f991fab9ba9d226" + dependencies: + core-js "^2.0.0" + +esquery@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" + dependencies: + estraverse "^4.0.0" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + dependencies: + estraverse "^4.1.0" + +estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + +event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + dependencies: + d "1" + es5-ext "~0.10.14" + +ewma@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ewma/-/ewma-2.0.1.tgz#9876c1c491ac5733c8666001a3961a04c97cf1e8" + dependencies: + assert-plus "^1.0.0" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +exit@0.1.2, exit@0.1.x, exit@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +express@^4.13.4: + version "4.16.3" + resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" + dependencies: + accepts "~1.3.5" + array-flatten "1.1.1" + body-parser "1.18.2" + content-disposition "0.5.2" + content-type "~1.0.4" + cookie "0.3.1" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.1.1" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.2" + path-to-regexp "0.1.7" + proxy-addr "~2.0.3" + qs "6.5.1" + range-parser "~1.2.0" + safe-buffer "5.1.1" + send "0.16.2" + serve-static "1.13.2" + setprototypeof "1.1.0" + statuses "~1.4.0" + type-is "~1.6.16" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.0, extend@^3.0.1, extend@~3.0.0, extend@~3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" + +external-editor@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.1.0.tgz#3d026a21b7f95b5726387d4200ac160d372c3b48" + dependencies: + chardet "^0.4.0" + iconv-lite "^0.4.17" + tmp "^0.0.33" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + 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.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extsprintf@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.2.0.tgz#5ad946c22f5b32ba7f8cd7426711c6e8a3fc2529" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + +eyes@0.1.x: + version "0.1.8" + resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" + +fast-deep-equal@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" + +fast-diff@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154" + +fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + +fill-keys@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/fill-keys/-/fill-keys-1.0.2.tgz#9a8fa36f4e8ad634e3bf6b4f3c8882551452eb20" + dependencies: + is-object "~1.0.1" + merge-descriptors "~1.0.0" + +fill-range@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +finalhandler@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.2" + statuses "~1.4.0" + unpipe "~1.0.0" + +find-cache-dir@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" + dependencies: + commondir "^1.0.1" + mkdirp "^0.5.1" + pkg-dir "^1.0.0" + +find-cache-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" + dependencies: + commondir "^1.0.1" + make-dir "^1.0.0" + pkg-dir "^2.0.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + dependencies: + locate-path "^2.0.0" + +flat-cache@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" + dependencies: + circular-json "^0.3.1" + del "^2.0.2" + graceful-fs "^4.1.2" + write "^0.2.1" + +fn-name@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fn-name/-/fn-name-2.0.1.tgz#5214d7537a4d06a4a301c0cc262feb84188002e7" + +follow-redirects@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.4.1.tgz#d8120f4518190f55aac65bb6fc7b85fcd666d6aa" + dependencies: + debug "^3.1.0" + +for-in@^1.0.1, for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + dependencies: + for-in "^1.0.1" + +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + +foreground-child@^1.5.3, foreground-child@^1.5.6: + version "1.5.6" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9" + dependencies: + cross-spawn "^4" + signal-exit "^3.0.0" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + +form-data@^2.3.1, form-data@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" + dependencies: + asynckit "^0.4.0" + combined-stream "1.0.6" + mime-types "^2.1.12" + +form-data@~2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +formidable@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.0.tgz#ce291bfec67c176e282f891ece2c37de0c83ae84" + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2, fresh@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + +from2@^2.1.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-extra@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.39" + +fstream-ignore@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" + dependencies: + fstream "^1.0.0" + inherits "2" + minimatch "^3.0.0" + +fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: + version "1.0.11" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +function-name-support@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/function-name-support/-/function-name-support-0.2.0.tgz#55d3bfaa6eafd505a50f9bc81fdf57564a0bb071" + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +gcp-metadata@^0.6.0, gcp-metadata@^0.6.1: + version "0.6.3" + resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-0.6.3.tgz#4550c08859c528b370459bd77a7187ea0bdbc4ab" + dependencies: + axios "^0.18.0" + extend "^3.0.1" + retry-axios "0.3.2" + +get-caller-file@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" + +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + +get-port@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + +get-stdin@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" + +get-stream@3.0.0, get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + dependencies: + assert-plus "^1.0.0" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob@7.1.2, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1, glob@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^5.0.1: + version "5.0.15" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^6.0.1: + version "6.0.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-dirs@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + dependencies: + ini "^1.3.4" + +globals@^11.0.1: + version "11.3.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.3.0.tgz#e04fdb7b9796d8adac9c8f64c14837b2313378b0" + +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + +globby@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-4.1.0.tgz#080f54549ec1b82a6c60e631fc82e1211dbe95f8" + dependencies: + array-union "^1.0.1" + arrify "^1.0.0" + glob "^6.0.1" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globby@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" + dependencies: + array-union "^1.0.1" + arrify "^1.0.0" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globby@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +google-auth-library@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-1.3.1.tgz#a0456166c9538ee062c51b8e70765a5a0e13e757" + dependencies: + axios "^0.18.0" + gcp-metadata "^0.6.0" + gtoken "^2.1.0" + jws "^3.1.4" + lodash.isstring "^4.0.1" + lru-cache "^4.1.1" + retry-axios "^0.3.2" + +google-auto-auth@^0.9.0: + version "0.9.7" + resolved "https://registry.yarnpkg.com/google-auto-auth/-/google-auto-auth-0.9.7.tgz#70b357ec9ec8e2368cf89a659309a15a1472596b" + dependencies: + async "^2.3.0" + gcp-metadata "^0.6.1" + google-auth-library "^1.3.1" + request "^2.79.0" + +google-p12-pem@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-1.0.2.tgz#c8a3843504012283a0dbffc7430b7c753ecd4b07" + dependencies: + node-forge "^0.7.4" + pify "^3.0.0" + +got@8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/got/-/got-8.2.0.tgz#0d11a071d05046348a2f5c0a5fa047fb687fdfc6" + dependencies: + "@sindresorhus/is" "^0.7.0" + cacheable-request "^2.1.1" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + into-stream "^3.1.0" + is-retry-allowed "^1.1.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + mimic-response "^1.0.0" + p-cancelable "^0.3.0" + p-timeout "^2.0.1" + pify "^3.0.0" + safe-buffer "^5.1.1" + timed-out "^4.0.1" + url-parse-lax "^3.0.0" + url-to-options "^1.0.1" + +got@^6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" + dependencies: + create-error-class "^3.0.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + unzip-response "^2.0.1" + url-parse-lax "^1.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + +growl@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.3.tgz#1926ba90cf3edfe2adb4927f5880bc22c66c790f" + +gtoken@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-2.1.1.tgz#8a76e70bdb78c284c582b01deb8354de4b4bab98" + dependencies: + axios "^0.18.0" + google-p12-pem "^1.0.0" + jws "^3.1.4" + mime "^2.2.0" + pify "^3.0.0" + +gts@^0.5.3: + version "0.5.4" + resolved "https://registry.yarnpkg.com/gts/-/gts-0.5.4.tgz#40a8dfa53f019cac2c03f59da8d2a2608319a0bf" + dependencies: + chalk "^2.3.0" + clang-format "1.2.2" + inquirer "^3.2.1" + meow "^4.0.0" + pify "^3.0.0" + rimraf "^2.6.1" + tslint "^5.8.0" + update-notifier "^2.2.0" + write-file-atomic "^2.1.0" + +handle-thing@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" + +handlebars@4.0.11, handlebars@^4.0.3: + version "4.0.11" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc" + dependencies: + async "^1.4.0" + optimist "^0.6.1" + source-map "^0.4.4" + optionalDependencies: + uglify-js "^2.6" + +hapi@^17.1.1: + version "17.2.2" + resolved "https://registry.yarnpkg.com/hapi/-/hapi-17.2.2.tgz#c6c882d698a1a2a2a20e74a0b9f604cf10aac5a5" + dependencies: + accept "3.x.x" + ammo "3.x.x" + boom "7.x.x" + bounce "1.x.x" + call "5.x.x" + catbox "10.x.x" + catbox-memory "3.x.x" + heavy "6.x.x" + hoek "5.x.x" + joi "13.x.x" + mimos "4.x.x" + podium "3.x.x" + shot "4.x.x" + statehood "6.x.x" + subtext "6.x.x" + teamwork "3.x.x" + topo "3.x.x" + +har-schema@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + +har-validator@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" + dependencies: + ajv "^4.9.1" + har-schema "^1.0.5" + +har-validator@~5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" + dependencies: + ajv "^5.1.0" + har-schema "^2.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-color@~0.1.0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + +has-symbol-support-x@^1.4.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" + +has-to-string-tag-x@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" + dependencies: + has-symbol-support-x "^1.4.1" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has-yarn@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-1.0.0.tgz#89e25db604b725c8f5976fff0addc921b828a5a7" + +hawk@3.1.3, hawk@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + sntp "1.x.x" + +hawk@~6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" + dependencies: + boom "4.x.x" + cryptiles "3.x.x" + hoek "4.x.x" + sntp "2.x.x" + +he@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + +heavy@6.x.x: + version "6.1.0" + resolved "https://registry.yarnpkg.com/heavy/-/heavy-6.1.0.tgz#1bbfa43dc61dd4b543ede3ff87db8306b7967274" + dependencies: + boom "7.x.x" + hoek "5.x.x" + joi "13.x.x" + +hoek@2.x.x: + version "2.16.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + +hoek@4.x.x: + version "4.2.1" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" + +hoek@5.x.x: + version "5.0.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-5.0.3.tgz#b71d40d943d0a95da01956b547f83c4a5b4a34ac" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +hosted-git-info@^2.1.4, hosted-git-info@^2.5.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222" + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +htmlparser2@3.8.3, htmlparser2@3.8.x: + version "3.8.3" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.8.3.tgz#996c28b191516a8be86501a7d79757e5c70c1068" + dependencies: + domelementtype "1" + domhandler "2.3" + domutils "1.5" + entities "1.0" + readable-stream "1.1" + +htmlparser2@^3.9.0: + version "3.9.2" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" + dependencies: + domelementtype "^1.3.0" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^2.0.2" + +http-assert@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.3.0.tgz#a31a5cf88c873ecbb5796907d4d6f132e8c01e4a" + dependencies: + deep-equal "~1.0.1" + http-errors "~1.6.1" + +http-cache-semantics@3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + +http-errors@1.6.2, http-errors@^1.2.8, http-errors@~1.6.1, http-errors@~1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" + dependencies: + depd "1.1.1" + inherits "2.0.3" + setprototypeof "1.0.3" + statuses ">= 1.3.1 < 2" + +http-signature@^1.2.0, http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +http-signature@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" + dependencies: + assert-plus "^0.2.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +hullabaloo-config-manager@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/hullabaloo-config-manager/-/hullabaloo-config-manager-1.1.1.tgz#1d9117813129ad035fd9e8477eaf066911269fe3" + dependencies: + dot-prop "^4.1.0" + es6-error "^4.0.2" + graceful-fs "^4.1.11" + indent-string "^3.1.0" + json5 "^0.5.1" + lodash.clonedeep "^4.5.0" + lodash.clonedeepwith "^4.5.0" + lodash.isequal "^4.5.0" + lodash.merge "^4.6.0" + md5-hex "^2.0.0" + package-hash "^2.0.0" + pkg-dir "^2.0.0" + resolve-from "^3.0.0" + safe-buffer "^5.0.1" + +i@0.3.x: + version "0.3.6" + resolved "https://registry.yarnpkg.com/i/-/i-0.3.6.tgz#d96c92732076f072711b6b10fd7d4f65ad8ee23d" + +iconv-lite@0.4.19, iconv-lite@^0.4.17: + version "0.4.19" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" + +ignore-by-default@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" + +ignore@^3.3.3, ignore@^3.3.6: + version "3.3.7" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021" + +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + +import-local@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-0.1.1.tgz#b1179572aacdc11c6a91009fb430dbcab5f668a8" + dependencies: + pkg-dir "^2.0.0" + resolve-cwd "^2.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + dependencies: + repeating "^2.0.0" + +indent-string@^3.0.0, indent-string@^3.1.0, indent-string@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherit@^2.2.2: + version "2.2.6" + resolved "https://registry.yarnpkg.com/inherit/-/inherit-2.2.6.tgz#f1614b06c8544e8128e4229c86347db73ad9788d" + +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +ini@^1.3.4, ini@~1.3.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + +ink-docstrap@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/ink-docstrap/-/ink-docstrap-1.3.2.tgz#5923dc48c41c9bccb3a524d10f5924d343448900" + dependencies: + moment "^2.14.1" + sanitize-html "^1.13.0" + +inquirer@^3.0.6, inquirer@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.4" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx-lite "^4.0.8" + rx-lite-aggregates "^4.0.8" + string-width "^2.1.0" + strip-ansi "^4.0.0" + through "^2.3.6" + +intelli-espower-loader@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/intelli-espower-loader/-/intelli-espower-loader-1.0.1.tgz#2c7b03146bc1d46bf210d0a0397c5c91ab4ca2b0" + dependencies: + espower-loader "^1.0.0" + +into-stream@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" + dependencies: + from2 "^2.1.1" + p-is-promise "^1.1.0" + +invariant@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.3.tgz#1a827dfde7dcbd7c323f0ca826be8fa7c5e9d688" + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + +ipaddr.js@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b" + +iron@5.x.x: + version "5.0.4" + resolved "https://registry.yarnpkg.com/iron/-/iron-5.0.4.tgz#003ed822f656f07c2b62762815f5de3947326867" + dependencies: + boom "7.x.x" + cryptiles "4.x.x" + hoek "5.x.x" + +irregular-plurals@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-1.4.0.tgz#2ca9b033651111855412f16be5d77c62a458a766" + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + dependencies: + kind-of "^6.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + +is-builtin-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + dependencies: + builtin-modules "^1.0.0" + +is-ci@^1.0.7: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.1.0.tgz#247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5" + dependencies: + ci-info "^1.0.0" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + dependencies: + kind-of "^6.0.0" + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-error@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-error/-/is-error-2.2.1.tgz#684a96d84076577c98f4cdb40c6d26a5123bf19c" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + +is-generator-fn@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a" + +is-generator-function@^1.0.3: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.7.tgz#d2132e529bb0000a7f80794d4bdf5cd5e5813522" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-installed-globally@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" + dependencies: + global-dirs "^0.1.0" + is-path-inside "^1.0.0" + +is-npm@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + dependencies: + kind-of "^3.0.2" + +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + +is-object@^1.0.1, is-object@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" + +is-observable@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-0.2.0.tgz#b361311d83c6e5d726cabf5e250b0237106f5ae2" + dependencies: + symbol-observable "^0.2.2" + +is-observable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" + dependencies: + symbol-observable "^1.1.0" + +is-odd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24" + dependencies: + is-number "^4.0.0" + +is-path-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + +is-path-in-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" + dependencies: + is-path-inside "^1.0.0" + +is-path-inside@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + dependencies: + path-is-inside "^1.0.1" + +is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + dependencies: + isobject "^3.0.1" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + +is-redirect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + +is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" + +is-stream-ended@^0.1.0: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-stream-ended/-/is-stream-ended-0.1.3.tgz#a0473b267c756635486beedc7e3344e549d152ac" + +is-stream@^1.0.0, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +is-supported-regexp-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.0.tgz#8b520c85fae7a253382d4b02652e045576e13bb8" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +is-url@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.2.tgz#498905a593bf47cc2d9e7f738372bbf7696c7f26" + +is-utf8@^0.2.0, is-utf8@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + +is@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/is/-/is-3.2.1.tgz#d0ac2ad55eb7b0bec926a5266f6c662aaa83dca5" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + +isarray@1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isemail@3.x.x: + version "3.1.1" + resolved "https://registry.yarnpkg.com/isemail/-/isemail-3.1.1.tgz#e8450fe78ff1b48347db599122adcd0668bd92b5" + dependencies: + punycode "2.x.x" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + +isstream@0.1.x, isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +istanbul-lib-coverage@^1.1.1, istanbul-lib-coverage@^1.1.2, istanbul-lib-coverage@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz#f7d8f2e42b97e37fe796114cb0f9d68b5e3a4341" + +istanbul-lib-hook@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz#8538d970372cb3716d53e55523dd54b557a8d89b" + dependencies: + append-transform "^0.4.0" + +istanbul-lib-instrument@^1.9.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz#724b4b6caceba8692d3f1f9d0727e279c401af7b" + dependencies: + babel-generator "^6.18.0" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + babylon "^6.18.0" + istanbul-lib-coverage "^1.2.0" + semver "^5.3.0" + +istanbul-lib-report@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz#2df12188c0fa77990c0d2176d2d0ba3394188259" + dependencies: + istanbul-lib-coverage "^1.1.2" + mkdirp "^0.5.1" + path-parse "^1.0.5" + supports-color "^3.1.2" + +istanbul-lib-source-maps@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz#20fb54b14e14b3fb6edb6aca3571fd2143db44e6" + dependencies: + debug "^3.1.0" + istanbul-lib-coverage "^1.1.2" + mkdirp "^0.5.1" + rimraf "^2.6.1" + source-map "^0.5.3" + +istanbul-reports@^1.1.3: + version "1.3.0" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.3.0.tgz#2f322e81e1d9520767597dca3c20a0cce89a3554" + dependencies: + handlebars "^4.0.3" + +isurl@^1.0.0-alpha5: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" + dependencies: + has-to-string-tag-x "^1.2.0" + is-object "^1.0.1" + +jest-docblock@^21.0.0: + version "21.2.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.2.0.tgz#51529c3b30d5fd159da60c27ceedc195faf8d414" + +joi@13.x.x: + version "13.1.2" + resolved "https://registry.yarnpkg.com/joi/-/joi-13.1.2.tgz#b2db260323cc7f919fafa51e09e2275bd089a97e" + dependencies: + hoek "5.x.x" + isemail "3.x.x" + topo "3.x.x" + +js-green-licenses@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/js-green-licenses/-/js-green-licenses-0.5.0.tgz#4ec37c24f6082e9d4ca30a8430e6408063c8db6c" + dependencies: + argparse "^1.0.9" + axios "^0.18.0" + npm-package-arg "^6.0.0" + package-json "^4.0.1" + pify "^3.0.0" + spdx-correct "^3.0.0" + spdx-satisfies "^4.0.0" + strip-json-comments "^2.0.1" + +js-string-escape@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef" + +js-tokens@^3.0.0, js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + +js-yaml@^3.10.0, js-yaml@^3.7.0, js-yaml@^3.9.1: + version "3.11.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef" + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@~3.4.0: + version "3.4.6" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.4.6.tgz#6be1b23f6249f53d293370fd4d1aaa63ce1b4eb0" + dependencies: + argparse "^1.0.2" + esprima "^2.6.0" + inherit "^2.2.2" + +js2xmlparser@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-3.0.0.tgz#3fb60eaa089c5440f9319f51760ccd07e2499733" + dependencies: + xmlcreate "^1.0.1" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + +jscs-jsdoc@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/jscs-jsdoc/-/jscs-jsdoc-2.0.0.tgz#f53ebce029aa3125bd88290ba50d64d4510a4871" + dependencies: + comment-parser "^0.3.1" + jsdoctypeparser "~1.2.0" + +jscs-preset-wikimedia@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/jscs-preset-wikimedia/-/jscs-preset-wikimedia-1.0.0.tgz#fff563342038fc2e8826b7bb7309c3ae3406fc7e" + +jscs@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/jscs/-/jscs-3.0.7.tgz#7141b4dff5b86e32d0e99d764b836767c30d201a" + dependencies: + chalk "~1.1.0" + cli-table "~0.3.1" + commander "~2.9.0" + cst "^0.4.3" + estraverse "^4.1.0" + exit "~0.1.2" + glob "^5.0.1" + htmlparser2 "3.8.3" + js-yaml "~3.4.0" + jscs-jsdoc "^2.0.0" + jscs-preset-wikimedia "~1.0.0" + jsonlint "~1.6.2" + lodash "~3.10.0" + minimatch "~3.0.0" + natural-compare "~1.2.2" + pathval "~0.1.1" + prompt "~0.2.14" + reserved-words "^0.1.1" + resolve "^1.1.6" + strip-bom "^2.0.0" + strip-json-comments "~1.0.2" + to-double-quotes "^2.0.0" + to-single-quotes "^2.0.0" + vow "~0.4.8" + vow-fs "~0.3.4" + xmlbuilder "^3.1.0" + +jsdoc@^3.5.5: + version "3.5.5" + resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-3.5.5.tgz#484521b126e81904d632ff83ec9aaa096708fa4d" + dependencies: + babylon "7.0.0-beta.19" + bluebird "~3.5.0" + catharsis "~0.8.9" + escape-string-regexp "~1.0.5" + js2xmlparser "~3.0.0" + klaw "~2.0.0" + marked "~0.3.6" + mkdirp "~0.5.1" + requizzle "~0.2.1" + strip-json-comments "~2.0.1" + taffydb "2.6.2" + underscore "~1.8.3" + +jsdoctypeparser@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/jsdoctypeparser/-/jsdoctypeparser-1.2.0.tgz#e7dedc153a11849ffc5141144ae86a7ef0c25392" + dependencies: + lodash "^3.7.0" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + +jshint@^2.9.2: + version "2.9.5" + resolved "https://registry.yarnpkg.com/jshint/-/jshint-2.9.5.tgz#1e7252915ce681b40827ee14248c46d34e9aa62c" + dependencies: + cli "~1.0.0" + console-browserify "1.1.x" + exit "0.1.x" + htmlparser2 "3.8.x" + lodash "3.7.x" + minimatch "~3.0.2" + shelljs "0.3.x" + strip-json-comments "1.0.x" + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + +json-parse-better-errors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz#50183cd1b2d25275de069e9e71b467ac9eab973a" + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + +json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsonlint@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/jsonlint/-/jsonlint-1.6.3.tgz#cb5e31efc0b78291d0d862fbef05900adf212988" + dependencies: + JSV "^4.0.x" + nomnom "^1.5.x" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +just-extend@^1.1.27: + version "1.1.27" + resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-1.1.27.tgz#ec6e79410ff914e472652abfa0e603c03d60e905" + +jwa@^1.1.4: + version "1.1.5" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.1.5.tgz#a0552ce0220742cd52e153774a32905c30e756e5" + dependencies: + base64url "2.0.0" + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.9" + safe-buffer "^5.0.1" + +jws@^3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.1.4.tgz#f9e8b9338e8a847277d6444b1464f61880e050a2" + dependencies: + base64url "^2.0.0" + jwa "^1.1.4" + safe-buffer "^5.0.1" + +keygrip@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.0.2.tgz#ad3297c557069dea8bcfe7a4fa491b75c5ddeb91" + +keyv@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" + dependencies: + json-buffer "3.0.0" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + +klaw@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-2.0.0.tgz#59c128e0dc5ce410201151194eeb9cbf858650f6" + dependencies: + graceful-fs "^4.1.9" + +koa-compose@^3.0.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7" + dependencies: + any-promise "^1.1.0" + +koa-compose@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-4.0.0.tgz#2800a513d9c361ef0d63852b038e4f6f2d5a773c" + +koa-convert@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/koa-convert/-/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0" + dependencies: + co "^4.6.0" + koa-compose "^3.0.0" + +koa-is-json@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/koa-is-json/-/koa-is-json-1.0.0.tgz#273c07edcdcb8df6a2c1ab7d59ee76491451ec14" + +koa@^2.4.1: + version "2.5.0" + resolved "https://registry.yarnpkg.com/koa/-/koa-2.5.0.tgz#b0fbe1e195e43b27588a04fd0be0ddaeca2c154c" + dependencies: + accepts "^1.2.2" + content-disposition "~0.5.0" + content-type "^1.0.0" + cookies "~0.7.0" + debug "*" + delegates "^1.0.0" + depd "^1.1.0" + destroy "^1.0.3" + error-inject "~1.0.0" + escape-html "~1.0.1" + fresh "^0.5.2" + http-assert "^1.1.0" + http-errors "^1.2.8" + is-generator-function "^1.0.3" + koa-compose "^4.0.0" + koa-convert "^1.2.0" + koa-is-json "^1.0.0" + mime-types "^2.0.7" + on-finished "^2.1.0" + only "0.0.2" + parseurl "^1.3.0" + statuses "^1.2.0" + type-is "^1.5.5" + vary "^1.0.0" + +last-line-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/last-line-stream/-/last-line-stream-1.0.0.tgz#d1b64d69f86ff24af2d04883a2ceee14520a5600" + dependencies: + through2 "^2.0.0" + +latest-version@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" + dependencies: + package-json "^4.0.0" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + dependencies: + invert-kv "^1.0.0" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +lodash.assign@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" + +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + +lodash.clonedeepwith@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeepwith/-/lodash.clonedeepwith-4.5.0.tgz#6ee30573a03a1a60d670a62ef33c10cf1afdbdd4" + +lodash.debounce@^4.0.3: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + +lodash.difference@^4.3.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" + +lodash.escaperegexp@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" + +lodash.flatten@^4.2.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + +lodash.flattendeep@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" + +lodash.foreach@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" + +lodash.get@^4.4.2, lodash.get@~4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + +lodash.has@^4.5.2: + version "4.5.2" + resolved "https://registry.yarnpkg.com/lodash.has/-/lodash.has-4.5.2.tgz#d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862" + +lodash.indexof@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/lodash.indexof/-/lodash.indexof-4.0.5.tgz#53714adc2cddd6ed87638f893aa9b6c24e31ef3c" + +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + +lodash.maxby@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.maxby/-/lodash.maxby-4.6.0.tgz#082240068f3c7a227aa00a8380e4f38cf0786e3d" + +lodash.merge@^4.6.0: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54" + +lodash.mergewith@^4.6.0: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927" + +lodash.omit@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" + +lodash.omitby@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.omitby/-/lodash.omitby-4.6.0.tgz#5c15ff4754ad555016b53c041311e8f079204791" + +lodash.pick@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + +lodash.random@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.random/-/lodash.random-3.2.0.tgz#96e24e763333199130d2c9e2fd57f91703cc262d" + +lodash.without@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" + +lodash@3.7.x: + version "3.7.0" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.7.0.tgz#3678bd8ab995057c07ade836ed2ef087da811d45" + +lodash@4.17.5, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0: + version "4.17.5" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" + +lodash@^3.5.0, lodash@^3.7.0, lodash@~3.10.0: + version "3.10.1" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + +log-driver@1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.5.tgz#7ae4ec257302fd790d557cb10c97100d857b0056" + +lolex@^2.2.0, lolex@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.3.2.tgz#85f9450425103bf9e7a60668ea25dc43274ca807" + +longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + +loose-envify@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + dependencies: + js-tokens "^3.0.0" + +loud-rejection@^1.0.0, loud-rejection@^1.2.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lowercase-keys@1.0.0, lowercase-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" + +lru-cache@^4.0.1, lru-cache@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.2.tgz#45234b2e6e2f2b33da125624c4664929a0224c3f" + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +make-dir@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.2.0.tgz#6d6a49eead4aae296c53bbf3a1a008bd6c89469b" + dependencies: + pify "^3.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + +map-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + dependencies: + object-visit "^1.0.0" + +marked@~0.3.6: + version "0.3.17" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.17.tgz#607f06668b3c6b1246b28f13da76116ac1aa2d2b" + +matcher@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/matcher/-/matcher-1.1.0.tgz#4ad3a9cb6585186dc95cb8a08c7de936caed17ee" + dependencies: + escape-string-regexp "^1.0.4" + +md5-hex@^1.2.0, md5-hex@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4" + dependencies: + md5-o-matic "^0.1.1" + +md5-hex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-2.0.0.tgz#d0588e9f1c74954492ecd24ac0ac6ce997d92e33" + dependencies: + md5-o-matic "^0.1.1" + +md5-o-matic@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + dependencies: + mimic-fn "^1.0.0" + +meow@^3.6.0, meow@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +meow@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-4.0.0.tgz#fd5855dd008db5b92c552082db1c307cba20b29d" + dependencies: + camelcase-keys "^4.0.0" + decamelize-keys "^1.0.0" + loud-rejection "^1.0.0" + minimist "^1.1.3" + minimist-options "^3.0.1" + normalize-package-data "^2.3.4" + read-pkg-up "^3.0.0" + redent "^2.0.0" + trim-newlines "^2.0.0" + +merge-descriptors@1.0.1, merge-descriptors@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + +merge-estraverse-visitors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/merge-estraverse-visitors/-/merge-estraverse-visitors-1.0.0.tgz#eb968338b5ded5ceed82cec0307decba2d8ea994" + dependencies: + estraverse "^4.0.0" + +merge-source-map@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" + dependencies: + source-map "^0.6.1" + +methmeth@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/methmeth/-/methmeth-1.1.0.tgz#e80a26618e52f5c4222861bb748510bd10e29089" + +methods@^1.1.1, methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + +micromatch@^2.1.5, micromatch@^2.3.11: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +micromatch@^3.1.8: + version "3.1.9" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.9.tgz#15dc93175ae39e52e93087847096effc73efcf89" + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +mime-db@1.x.x, mime-db@~1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" + +mime-types@^2.0.7, mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.7: + version "2.1.18" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" + dependencies: + mime-db "~1.33.0" + +mime@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" + +mime@^1.4.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + +mime@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.2.0.tgz#161e541965551d3b549fa1114391e3a3d55b923b" + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + +mimic-response@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.0.tgz#df3d3652a73fded6b9b0b24146e6fd052353458e" + +mimos@4.x.x: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimos/-/mimos-4.0.0.tgz#76e3d27128431cb6482fd15b20475719ad626a5a" + dependencies: + hoek "5.x.x" + mime-db "1.x.x" + +minimalistic-assert@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" + +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.0, minimatch@~3.0.2: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist-options@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^1.1.3, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + +mixin-deep@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@0.5.1, mkdirp@0.x.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +mocha@^5.0.0: + version "5.0.4" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.0.4.tgz#6b7aa328472da1088e69d47e75925fd3a3bb63c6" + dependencies: + browser-stdout "1.3.1" + commander "2.11.0" + debug "3.1.0" + diff "3.5.0" + escape-string-regexp "1.0.5" + glob "7.1.2" + growl "1.10.3" + he "1.1.1" + mkdirp "0.5.1" + supports-color "4.4.0" + +modelo@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/modelo/-/modelo-4.2.3.tgz#b278588a4db87fc1e5107ae3a277c0876f38d894" + +module-not-found-error@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/module-not-found-error/-/module-not-found-error-1.0.1.tgz#cf8b4ff4f29640674d6cdd02b0e3bc523c2bbdc0" + +moment@^2.10.6, moment@^2.14.1: + version "2.21.0" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.21.0.tgz#2a114b51d2a6ec9e6d83cf803f838a878d8a023a" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +ms@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + +multi-stage-sourcemap@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/multi-stage-sourcemap/-/multi-stage-sourcemap-0.2.1.tgz#b09fc8586eaa17f81d575c4ad02e0f7a3f6b1105" + dependencies: + source-map "^0.1.34" + +multimatch@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" + dependencies: + array-differ "^1.0.0" + array-union "^1.0.1" + arrify "^1.0.0" + minimatch "^3.0.0" + +mute-stream@0.0.7, mute-stream@~0.0.4: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + +mv@~2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2" + dependencies: + mkdirp "~0.5.1" + ncp "~2.0.0" + rimraf "~2.4.0" + +nan@^2.3.0, nan@^2.3.3: + version "2.9.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.9.2.tgz#f564d75f5f8f36a6d9456cca7a6c4fe488ab7866" + +nanomatch@^1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.9.tgz#879f7150cb2dab7a471259066c104eee6e0fa7c2" + 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-odd "^2.0.0" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + +natural-compare@~1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.2.2.tgz#1f96d60e3141cac1b6d05653ce0daeac763af6aa" + +ncp@0.4.x: + version "0.4.2" + resolved "https://registry.yarnpkg.com/ncp/-/ncp-0.4.2.tgz#abcc6cbd3ec2ed2a729ff6e7c1fa8f01784a8574" + +ncp@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" + +negotiator@0.6.1, negotiator@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + +nested-error-stacks@^1.0.0, nested-error-stacks@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz#19f619591519f096769a5ba9a86e6eeec823c3cf" + dependencies: + inherits "~2.0.1" + +nigel@3.x.x: + version "3.0.0" + resolved "https://registry.yarnpkg.com/nigel/-/nigel-3.0.0.tgz#a6e3378a8a34281e75ba1641e886a415d4be93ad" + dependencies: + hoek "5.x.x" + vise "3.x.x" + +nise@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/nise/-/nise-1.3.0.tgz#7d6d506e64a0e37959495157f30a799c0436df72" + dependencies: + "@sinonjs/formatio" "^2.0.0" + just-extend "^1.1.27" + lolex "^2.3.2" + path-to-regexp "^1.7.0" + text-encoding "^0.6.4" + +nock@^9.0.0: + version "9.2.3" + resolved "https://registry.yarnpkg.com/nock/-/nock-9.2.3.tgz#39738087d6a0497d3a165fb352612b38a2f9b92f" + dependencies: + chai "^4.1.2" + debug "^3.1.0" + deep-equal "^1.0.0" + json-stringify-safe "^5.0.1" + lodash "^4.17.5" + mkdirp "^0.5.0" + propagate "^1.0.0" + qs "^6.5.1" + semver "^5.5.0" + +node-forge@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.4.tgz#8e6e9f563a1e32213aa7508cded22aa791dbf986" + +node-pre-gyp@^0.6.39: + version "0.6.39" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" + dependencies: + detect-libc "^1.0.2" + hawk "3.1.3" + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.0.2" + rc "^1.1.7" + request "2.81.0" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^2.2.1" + tar-pack "^3.4.0" + +nomnom@^1.5.x: + version "1.8.1" + resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7" + dependencies: + chalk "~0.4.0" + underscore "~1.6.0" + +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: + version "2.4.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" + dependencies: + hosted-git-info "^2.1.4" + is-builtin-module "^1.0.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.0.0, normalize-path@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-url@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" + dependencies: + prepend-http "^2.0.0" + query-string "^5.0.1" + sort-keys "^2.0.0" + +npm-package-arg@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.0.0.tgz#8cce04b49d3f9faec3f56b0fe5f4391aeb9d2fac" + dependencies: + hosted-git-info "^2.5.0" + osenv "^0.1.4" + semver "^5.4.1" + validate-npm-package-name "^3.0.0" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + dependencies: + path-key "^2.0.0" + +npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +nyc@11.4.1, nyc@^11.3.0: + version "11.4.1" + resolved "https://registry.yarnpkg.com/nyc/-/nyc-11.4.1.tgz#13fdf7e7ef22d027c61d174758f6978a68f4f5e5" + dependencies: + archy "^1.0.0" + arrify "^1.0.1" + caching-transform "^1.0.0" + convert-source-map "^1.3.0" + debug-log "^1.0.1" + default-require-extensions "^1.0.0" + find-cache-dir "^0.1.1" + find-up "^2.1.0" + foreground-child "^1.5.3" + glob "^7.0.6" + istanbul-lib-coverage "^1.1.1" + istanbul-lib-hook "^1.1.0" + istanbul-lib-instrument "^1.9.1" + istanbul-lib-report "^1.1.2" + istanbul-lib-source-maps "^1.2.2" + istanbul-reports "^1.1.3" + md5-hex "^1.2.0" + merge-source-map "^1.0.2" + micromatch "^2.3.11" + mkdirp "^0.5.0" + resolve-from "^2.0.0" + rimraf "^2.5.4" + signal-exit "^3.0.1" + spawn-wrap "^1.4.2" + test-exclude "^4.1.1" + yargs "^10.0.3" + yargs-parser "^8.0.0" + +oauth-sign@~0.8.1, oauth-sign@~0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + +object-assign@^4.0.1, object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-keys@^1.0.0, object-keys@^1.0.8: + version "1.0.11" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + dependencies: + isobject "^3.0.0" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + dependencies: + isobject "^3.0.1" + +observable-to-promise@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/observable-to-promise/-/observable-to-promise-0.5.0.tgz#c828f0f0dc47e9f86af8a4977c5d55076ce7a91f" + dependencies: + is-observable "^0.2.0" + symbol-observable "^1.0.4" + +obuf@^1.0.0, obuf@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + +on-finished@^2.1.0, on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + dependencies: + ee-first "1.1.1" + +once@^1.3.0, once@^1.3.3, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + dependencies: + mimic-fn "^1.0.0" + +only@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" + +optimist@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +option-chain@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/option-chain/-/option-chain-1.0.0.tgz#938d73bd4e1783f948d34023644ada23669e30f2" + +optionator@^0.8.1, optionator@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + +os-homedir@^1.0.0, os-homedir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-cancelable@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + +p-is-promise@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" + +p-limit@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c" + dependencies: + p-try "^1.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + dependencies: + p-limit "^1.1.0" + +p-timeout@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" + dependencies: + p-finally "^1.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + +package-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-1.2.0.tgz#003e56cd57b736a6ed6114cc2b81542672770e44" + dependencies: + md5-hex "^1.3.0" + +package-hash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-2.0.0.tgz#78ae326c89e05a4d813b68601977af05c00d2a0d" + dependencies: + graceful-fs "^4.1.11" + lodash.flattendeep "^4.4.0" + md5-hex "^2.0.0" + release-zalgo "^1.0.0" + +package-json@^4.0.0, package-json@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" + dependencies: + got "^6.7.1" + registry-auth-token "^3.0.1" + registry-url "^3.0.3" + semver "^5.1.0" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + dependencies: + error-ex "^1.2.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-ms@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-0.1.2.tgz#dd3fa25ed6c2efc7bdde12ad9b46c163aa29224e" + +parse-ms@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-1.0.1.tgz#56346d4749d78f23430ca0c713850aef91aa361d" + +parseurl@^1.3.0, parseurl@~1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-is-inside@^1.0.1, path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + +path-key@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + +path-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + +path-to-regexp@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" + dependencies: + isarray "0.0.1" + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + dependencies: + pify "^2.0.0" + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + dependencies: + pify "^3.0.0" + +pathval@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" + +pathval@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-0.1.1.tgz#08f911cdca9cce5942880da7817bc0b723b66d82" + +performance-now@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + +pez@4.x.x: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pez/-/pez-4.0.1.tgz#d698ecf9a146c9188d74abe5cef7b5cb71deb3b5" + dependencies: + b64 "4.x.x" + boom "7.x.x" + content "4.x.x" + hoek "5.x.x" + nigel "3.x.x" + +pidusage@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pidusage/-/pidusage-1.2.0.tgz#65ee96ace4e08a4cd3f9240996c85b367171ee92" + +pify@^2.0.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + +pinkie-promise@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-1.0.0.tgz#d1da67f5482563bb7cf57f286ae2822ecfbf3670" + dependencies: + pinkie "^1.0.0" + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + dependencies: + pinkie "^2.0.0" + +pinkie@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-1.0.0.tgz#5a47f28ba1015d0201bda7bf0f358e47bec8c7e4" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +pkg-conf@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.1.0.tgz#2126514ca6f2abfebd168596df18ba57867f0058" + dependencies: + find-up "^2.0.0" + load-json-file "^4.0.0" + +pkg-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + dependencies: + find-up "^1.0.0" + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + dependencies: + find-up "^2.1.0" + +pkginfo@0.3.x: + version "0.3.1" + resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.3.1.tgz#5b29f6a81f70717142e09e765bbeab97b4f81e21" + +pkginfo@0.x.x: + version "0.4.1" + resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.4.1.tgz#b5418ef0439de5425fc4995042dced14fb2a84ff" + +plur@^2.0.0, plur@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/plur/-/plur-2.1.2.tgz#7482452c1a0f508e3e344eaec312c91c29dc655a" + dependencies: + irregular-plurals "^1.0.0" + +pluralize@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" + +podium@3.x.x: + version "3.1.2" + resolved "https://registry.yarnpkg.com/podium/-/podium-3.1.2.tgz#b701429739cf6bdde6b3015ae6b48d400817ce9e" + dependencies: + hoek "5.x.x" + joi "13.x.x" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + +postcss@^6.0.14: + version "6.0.19" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.19.tgz#76a78386f670b9d9494a655bf23ac012effd1555" + dependencies: + chalk "^2.3.1" + source-map "^0.6.1" + supports-color "^5.2.0" + +power-assert-context-formatter@^1.0.7: + version "1.1.1" + resolved "https://registry.yarnpkg.com/power-assert-context-formatter/-/power-assert-context-formatter-1.1.1.tgz#edba352d3ed8a603114d667265acce60d689ccdf" + dependencies: + core-js "^2.0.0" + power-assert-context-traversal "^1.1.1" + +power-assert-context-reducer-ast@^1.0.7: + version "1.1.2" + resolved "https://registry.yarnpkg.com/power-assert-context-reducer-ast/-/power-assert-context-reducer-ast-1.1.2.tgz#484a99e26f4973ff8832e5c5cc756702e6094174" + dependencies: + acorn "^4.0.0" + acorn-es7-plugin "^1.0.12" + core-js "^2.0.0" + espurify "^1.6.0" + estraverse "^4.2.0" + +power-assert-context-traversal@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/power-assert-context-traversal/-/power-assert-context-traversal-1.1.1.tgz#88cabca0d13b6359f07d3d3e8afa699264577ed9" + dependencies: + core-js "^2.0.0" + estraverse "^4.1.0" + +power-assert-formatter@^1.3.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/power-assert-formatter/-/power-assert-formatter-1.4.1.tgz#5dc125ed50a3dfb1dda26c19347f3bf58ec2884a" + dependencies: + core-js "^2.0.0" + power-assert-context-formatter "^1.0.7" + power-assert-context-reducer-ast "^1.0.7" + power-assert-renderer-assertion "^1.0.7" + power-assert-renderer-comparison "^1.0.7" + power-assert-renderer-diagram "^1.0.7" + power-assert-renderer-file "^1.0.7" + +power-assert-renderer-assertion@^1.0.7: + version "1.1.1" + resolved "https://registry.yarnpkg.com/power-assert-renderer-assertion/-/power-assert-renderer-assertion-1.1.1.tgz#cbfc0e77e0086a8f96af3f1d8e67b9ee7e28ce98" + dependencies: + power-assert-renderer-base "^1.1.1" + power-assert-util-string-width "^1.1.1" + +power-assert-renderer-base@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/power-assert-renderer-base/-/power-assert-renderer-base-1.1.1.tgz#96a650c6fd05ee1bc1f66b54ad61442c8b3f63eb" + +power-assert-renderer-comparison@^1.0.7: + version "1.1.1" + resolved "https://registry.yarnpkg.com/power-assert-renderer-comparison/-/power-assert-renderer-comparison-1.1.1.tgz#d7439d97d85156be4e30a00f2fb5a72514ce3c08" + dependencies: + core-js "^2.0.0" + diff-match-patch "^1.0.0" + power-assert-renderer-base "^1.1.1" + stringifier "^1.3.0" + type-name "^2.0.1" + +power-assert-renderer-diagram@^1.0.7: + version "1.1.2" + resolved "https://registry.yarnpkg.com/power-assert-renderer-diagram/-/power-assert-renderer-diagram-1.1.2.tgz#655f8f711935a9b6d541b86327654717c637a986" + dependencies: + core-js "^2.0.0" + power-assert-renderer-base "^1.1.1" + power-assert-util-string-width "^1.1.1" + stringifier "^1.3.0" + +power-assert-renderer-file@^1.0.7: + version "1.1.1" + resolved "https://registry.yarnpkg.com/power-assert-renderer-file/-/power-assert-renderer-file-1.1.1.tgz#a37e2bbd178ccacd04e78dbb79c92fe34933c5e7" + dependencies: + power-assert-renderer-base "^1.1.1" + +power-assert-util-string-width@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/power-assert-util-string-width/-/power-assert-util-string-width-1.1.1.tgz#be659eb7937fdd2e6c9a77268daaf64bd5b7c592" + dependencies: + eastasianwidth "^0.1.1" + +power-assert@^1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/power-assert/-/power-assert-1.4.4.tgz#9295ea7437196f5a601fde420f042631186d7517" + dependencies: + define-properties "^1.1.2" + empower "^1.2.3" + power-assert-formatter "^1.3.1" + universal-deep-strict-equal "^1.2.1" + xtend "^4.0.0" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + +prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +prettier@^1.7.4: + version "1.11.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.11.1.tgz#61e43fc4cd44e68f2b0dfc2c38cd4bb0fccdcc75" + +pretty-ms@^0.2.1: + version "0.2.2" + resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-0.2.2.tgz#da879a682ff33a37011046f13d627f67c73b84f6" + dependencies: + parse-ms "^0.1.0" + +pretty-ms@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-3.1.0.tgz#e9cac9c76bf6ee52fe942dd9c6c4213153b12881" + dependencies: + parse-ms "^1.0.0" + plur "^2.1.2" + +private@^0.1.7: + version "0.1.8" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + +process-nextick-args@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + +progress@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" + +prompt@~0.2.14: + version "0.2.14" + resolved "https://registry.yarnpkg.com/prompt/-/prompt-0.2.14.tgz#57754f64f543fd7b0845707c818ece618f05ffdc" + dependencies: + pkginfo "0.x.x" + read "1.0.x" + revalidator "0.1.x" + utile "0.2.x" + winston "0.8.x" + +propagate@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/propagate/-/propagate-1.0.0.tgz#00c2daeedda20e87e3782b344adba1cddd6ad709" + +proxy-addr@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341" + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.6.0" + +proxyquire@1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/proxyquire/-/proxyquire-1.8.0.tgz#02d514a5bed986f04cbb2093af16741535f79edc" + dependencies: + fill-keys "^1.0.2" + module-not-found-error "^1.0.0" + resolve "~1.1.7" + +proxyquire@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/proxyquire/-/proxyquire-2.0.0.tgz#9803bf37b64d538b7ab05c53e839d1ab315905e3" + dependencies: + fill-keys "^1.0.2" + module-not-found-error "^1.0.0" + resolve "~1.1.7" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + +punycode@2.x.x: + version "2.1.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" + +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +qs@6.5.1, qs@^6.5.1, qs@~6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" + +qs@~6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + +query-string@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.0.tgz#9583b15fd1307f899e973ed418886426a9976469" + dependencies: + decode-uri-component "^0.2.0" + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +quick-lru@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" + +randomatic@^1.1.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +range-parser@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + +raw-body@2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" + dependencies: + bytes "3.0.0" + http-errors "1.6.2" + iconv-lite "0.4.19" + unpipe "1.0.0" + +rc@^1.0.1, rc@^1.1.6, rc@^1.1.7: + version "1.2.5" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.5.tgz#275cd687f6e3b36cc756baa26dfee80a790301fd" + dependencies: + deep-extend "~0.4.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + dependencies: + find-up "^2.0.0" + read-pkg "^3.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +read@1.0.x: + version "1.0.7" + resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" + dependencies: + mute-stream "~0.0.4" + +readable-stream@1.1: + version "1.1.13" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9: + version "2.3.5" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.5.tgz#b4f85003a938cbb6ecbce2a124fb1012bd1a838d" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.0.3" + util-deprecate "~1.0.1" + +readdirp@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" + dependencies: + graceful-fs "^4.1.2" + minimatch "^3.0.2" + readable-stream "^2.0.2" + set-immediate-shim "^1.0.1" + +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +redent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" + dependencies: + indent-string "^3.0.0" + strip-indent "^2.0.0" + +regenerate@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + +regex-cache@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + dependencies: + is-equal-shallow "^0.1.3" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexpu-core@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +registry-auth-token@^3.0.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20" + dependencies: + rc "^1.1.6" + safe-buffer "^5.0.1" + +registry-url@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + dependencies: + rc "^1.0.1" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + dependencies: + jsesc "~0.5.0" + +release-zalgo@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/release-zalgo/-/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730" + dependencies: + es6-error "^4.0.1" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + +repeat-string@^1.5.2, repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + +request@2.81.0: + version "2.81.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~4.2.1" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + performance-now "^0.2.0" + qs "~6.4.0" + safe-buffer "^5.0.1" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "^0.6.0" + uuid "^3.0.0" + +request@^2.79.0, request@^2.81.0: + version "2.85.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.85.0.tgz#5a03615a47c61420b3eb99b7dba204f83603e1fa" + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.6.0" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.1" + forever-agent "~0.6.1" + form-data "~2.3.1" + har-validator "~5.0.3" + hawk "~6.0.2" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.17" + oauth-sign "~0.8.2" + performance-now "^2.1.0" + qs "~6.5.1" + safe-buffer "^5.1.1" + stringstream "~0.0.5" + tough-cookie "~2.3.3" + tunnel-agent "^0.6.0" + uuid "^3.1.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + +require-precompiled@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/require-precompiled/-/require-precompiled-0.1.0.tgz#5a1b52eb70ebed43eb982e974c85ab59571e56fa" + +require-uncached@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + +requizzle@~0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/requizzle/-/requizzle-0.2.1.tgz#6943c3530c4d9a7e46f1cddd51c158fc670cdbde" + dependencies: + underscore "~1.6.0" + +reserved-words@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/reserved-words/-/reserved-words-0.1.2.tgz#00a0940f98cd501aeaaac316411d9adc52b31ab1" + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + dependencies: + resolve-from "^3.0.0" + +resolve-from@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + +resolve-from@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + +resolve@^1.1.6, resolve@^1.3.2, resolve@^1.3.3: + version "1.5.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36" + dependencies: + path-parse "^1.0.5" + +resolve@~1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + +responselike@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + dependencies: + lowercase-keys "^1.0.0" + +restify-errors@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/restify-errors/-/restify-errors-5.0.0.tgz#668717e100683eec6ce0d515f89ff1dbec254a8d" + dependencies: + assert-plus "^1.0.0" + lodash "^4.2.1" + verror "^1.8.1" + optionalDependencies: + safe-json-stringify "^1.0.3" + +restify@^6.3.4: + version "6.3.4" + resolved "https://registry.yarnpkg.com/restify/-/restify-6.3.4.tgz#097990b22ba40f02a074a7d4cb1c27690759e288" + dependencies: + assert-plus "^1.0.0" + bunyan "^1.8.12" + clone-regexp "^1.0.0" + csv "^1.1.1" + escape-regexp-component "^1.0.2" + ewma "^2.0.1" + formidable "^1.1.1" + http-signature "^1.2.0" + lodash "^4.17.4" + lru-cache "^4.1.1" + mime "^1.4.1" + negotiator "^0.6.1" + once "^1.4.0" + pidusage "^1.2.0" + qs "^6.5.1" + restify-errors "^5.0.0" + semver "^5.4.1" + spdy "^3.4.7" + uuid "^3.1.0" + vasync "^1.6.4" + verror "^1.10.0" + optionalDependencies: + dtrace-provider "^0.8.1" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + +retry-axios@0.3.2, retry-axios@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/retry-axios/-/retry-axios-0.3.2.tgz#5757c80f585b4cc4c4986aa2ffd47a60c6d35e13" + +retry-request@^3.0.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/retry-request/-/retry-request-3.3.1.tgz#fb71276235a617e97551e9be737ab5b91591fb9e" + dependencies: + request "^2.81.0" + through2 "^2.0.0" + +revalidator@0.1.x: + version "0.1.8" + resolved "https://registry.yarnpkg.com/revalidator/-/revalidator-0.1.8.tgz#fece61bfa0c1b52a206bd6b18198184bdd523a3b" + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + dependencies: + align-text "^0.1.1" + +rimraf@2, rimraf@2.x.x, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + dependencies: + glob "^7.0.5" + +rimraf@~2.4.0: + version "2.4.5" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da" + dependencies: + glob "^6.0.1" + +run-async@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + dependencies: + is-promise "^2.1.0" + +rx-lite-aggregates@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" + dependencies: + rx-lite "*" + +rx-lite@*, rx-lite@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" + +safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + +safe-json-stringify@^1.0.3, safe-json-stringify@~1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.1.0.tgz#bd2b6dad1ebafab3c24672a395527f01804b7e19" + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + dependencies: + ret "~0.1.10" + +samsam@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.3.0.tgz#8d1d9350e25622da30de3e44ba692b5221ab7c50" + +sanitize-html@^1.13.0: + version "1.18.2" + resolved "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-1.18.2.tgz#61877ba5a910327e42880a28803c2fbafa8e4642" + dependencies: + chalk "^2.3.0" + htmlparser2 "^3.9.0" + lodash.clonedeep "^4.5.0" + lodash.escaperegexp "^4.1.2" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.mergewith "^4.6.0" + postcss "^6.0.14" + srcset "^1.0.0" + xtend "^4.0.0" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + +semver-diff@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" + dependencies: + semver "^5.0.3" + +"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + +send@0.16.2: + version "0.16.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.6.2" + mime "1.4.1" + ms "2.0.0" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.4.0" + +serialize-error@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-2.1.0.tgz#50b679d5635cdf84667bdc8e59af4e5b81d5f60a" + +serve-static@1.13.2: + version "1.13.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.2" + send "0.16.2" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +set-immediate-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + +set-value@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.1" + to-object-path "^0.3.0" + +set-value@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setprototypeof@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + +shelljs@0.3.x: + version "0.3.0" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.3.0.tgz#3596e6307a781544f591f37da618360f31db57b1" + +shot@4.x.x: + version "4.0.5" + resolved "https://registry.yarnpkg.com/shot/-/shot-4.0.5.tgz#c7e7455d11d60f6b6cd3c43e15a3b431c17e5566" + dependencies: + hoek "5.x.x" + joi "13.x.x" + +signal-exit@^3.0.0, signal-exit@^3.0.1, signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +sinon@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-4.3.0.tgz#cec9b27d5f4e2c63c1a79c9dc1c05d34bb088234" + dependencies: + "@sinonjs/formatio" "^2.0.0" + diff "^3.1.0" + lodash.get "^4.4.2" + lolex "^2.2.0" + nise "^1.2.0" + supports-color "^5.1.0" + type-detect "^4.0.5" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + +slice-ansi@1.0.0, slice-ansi@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" + dependencies: + is-fullwidth-code-point "^2.0.0" + +slide@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +sntp@1.x.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + dependencies: + hoek "2.x.x" + +sntp@2.x.x: + version "2.1.0" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" + dependencies: + hoek "4.x.x" + +sort-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" + dependencies: + is-plain-obj "^1.0.0" + +source-map-resolve@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.1.tgz#7ad0f593f2281598e854df80f19aae4b92d7a11a" + dependencies: + atob "^2.0.0" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.4.0, source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + dependencies: + source-map "^0.5.6" + +source-map-support@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.3.tgz#2b3d5fff298cfa4d1afd7d4352d569e9a0158e76" + dependencies: + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + +source-map@^0.1.34: + version "0.1.43" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" + dependencies: + amdefine ">=0.0.4" + +source-map@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + dependencies: + amdefine ">=0.0.4" + +source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + +spawn-wrap@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.4.2.tgz#cff58e73a8224617b6561abdc32586ea0c82248c" + dependencies: + foreground-child "^1.5.6" + mkdirp "^0.5.0" + os-homedir "^1.0.1" + rimraf "^2.6.2" + signal-exit "^3.0.2" + which "^1.3.0" + +spdx-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/spdx-compare/-/spdx-compare-1.0.0.tgz#2c55f117362078d7409e6d7b08ce70a857cd3ed7" + dependencies: + array-find-index "^1.0.2" + spdx-expression-parse "^3.0.0" + spdx-ranges "^2.0.0" + +spdx-correct@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" + +spdx-ranges@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/spdx-ranges/-/spdx-ranges-2.0.0.tgz#257686798e5edb41d45c1aba3d3f1bb47af8d5ec" + +spdx-satisfies@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/spdx-satisfies/-/spdx-satisfies-4.0.0.tgz#ebc79eec88b68ac75618e2e5ee94fbc347587552" + dependencies: + spdx-compare "^1.0.0" + spdx-expression-parse "^3.0.0" + spdx-ranges "^2.0.0" + +spdy-transport@^2.0.18: + version "2.0.20" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.0.20.tgz#735e72054c486b2354fe89e702256004a39ace4d" + dependencies: + debug "^2.6.8" + detect-node "^2.0.3" + hpack.js "^2.1.6" + obuf "^1.1.1" + readable-stream "^2.2.9" + safe-buffer "^5.0.1" + wbuf "^1.7.2" + +spdy@^3.4.7: + version "3.4.7" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-3.4.7.tgz#42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc" + dependencies: + debug "^2.6.8" + handle-thing "^1.2.5" + http-deceiver "^1.2.7" + safe-buffer "^5.0.1" + select-hose "^2.0.0" + spdy-transport "^2.0.18" + +split-array-stream@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/split-array-stream/-/split-array-stream-1.0.3.tgz#d2b75a8e5e0d824d52fdec8b8225839dc2e35dfa" + dependencies: + async "^2.4.0" + is-stream-ended "^0.1.0" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +srcset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/srcset/-/srcset-1.0.0.tgz#a5669de12b42f3b1d5e83ed03c71046fc48f41ef" + dependencies: + array-uniq "^1.0.2" + number-is-nan "^1.0.0" + +sshpk@^1.7.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +stack-trace@0.0.x: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + +stack-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.1.tgz#d4f33ab54e8e38778b0ca5cfd3b3afb12db68620" + +statehood@6.x.x: + version "6.0.5" + resolved "https://registry.yarnpkg.com/statehood/-/statehood-6.0.5.tgz#bbcdcb3a43a6fb86f4bd04ed48a9309b6cfc1b18" + dependencies: + boom "7.x.x" + bounce "1.x.x" + cryptiles "4.x.x" + hoek "5.x.x" + iron "5.x.x" + joi "13.x.x" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.3.1 < 2", statuses@^1.2.0, statuses@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" + +stream-events@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/stream-events/-/stream-events-1.0.2.tgz#abf39f66c0890a4eb795bc8d5e859b2615b590b2" + dependencies: + stubs "^3.0.0" + +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + +stream-transform@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/stream-transform/-/stream-transform-0.2.2.tgz#75867487f49528f8bf1d82499658753d02df7838" + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + +string-format-obj@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string-format-obj/-/string-format-obj-1.1.1.tgz#c7612ca4e2ad923812a81db192dc291850aa1f65" + +string-width@^1.0.1, string-width@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string@3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/string/-/string-3.3.3.tgz#5ea211cd92d228e184294990a6cc97b366a77cb0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + +string_decoder@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" + dependencies: + safe-buffer "~5.1.0" + +stringifier@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/stringifier/-/stringifier-1.3.0.tgz#def18342f6933db0f2dbfc9aa02175b448c17959" + dependencies: + core-js "^2.0.0" + traverse "^0.6.6" + type-name "^2.0.1" + +stringstream@~0.0.4, stringstream@~0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" + +strip-bom-buf@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz#1cb45aaf57530f4caf86c7f75179d2c9a51dd572" + dependencies: + is-utf8 "^0.2.1" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + dependencies: + get-stdin "^4.0.1" + +strip-indent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" + +strip-json-comments@1.0.x, strip-json-comments@~1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" + +strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + +stubs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/stubs/-/stubs-3.0.0.tgz#e8d2ba1fa9c90570303c030b6900f7d5f89abe5b" + +subtext@6.x.x: + version "6.0.7" + resolved "https://registry.yarnpkg.com/subtext/-/subtext-6.0.7.tgz#8e40a67901a734d598142665c90e398369b885f9" + dependencies: + boom "7.x.x" + content "4.x.x" + hoek "5.x.x" + pez "4.x.x" + wreck "14.x.x" + +superagent@^3.0.0: + version "3.8.2" + resolved "https://registry.yarnpkg.com/superagent/-/superagent-3.8.2.tgz#e4a11b9d047f7d3efeb3bbe536d9ec0021d16403" + dependencies: + component-emitter "^1.2.0" + cookiejar "^2.1.0" + debug "^3.1.0" + extend "^3.0.0" + form-data "^2.3.1" + formidable "^1.1.1" + methods "^1.1.1" + mime "^1.4.1" + qs "^6.5.1" + readable-stream "^2.0.5" + +supertap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supertap/-/supertap-1.0.0.tgz#bd9751c7fafd68c68cf8222a29892206a119fa9e" + dependencies: + arrify "^1.0.1" + indent-string "^3.2.0" + js-yaml "^3.10.0" + serialize-error "^2.1.0" + strip-ansi "^4.0.0" + +supertest@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/supertest/-/supertest-3.0.0.tgz#8d4bb68fd1830ee07033b1c5a5a9a4021c965296" + dependencies: + methods "~1.1.2" + superagent "^3.0.0" + +supports-color@4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e" + dependencies: + has-flag "^2.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +supports-color@^3.1.2: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + dependencies: + has-flag "^1.0.0" + +supports-color@^5.0.0, supports-color@^5.1.0, supports-color@^5.2.0, supports-color@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.3.0.tgz#5b24ac15db80fa927cf5227a4a33fd3c4c7676c0" + dependencies: + has-flag "^3.0.0" + +symbol-observable@^0.2.2: + version "0.2.4" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-0.2.4.tgz#95a83db26186d6af7e7a18dbd9760a2f86d08f40" + +symbol-observable@^1.0.4, symbol-observable@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + +table@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" + dependencies: + ajv "^5.2.3" + ajv-keywords "^2.1.0" + chalk "^2.1.0" + lodash "^4.17.4" + slice-ansi "1.0.0" + string-width "^2.1.1" + +taffydb@2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/taffydb/-/taffydb-2.6.2.tgz#7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268" + +tar-pack@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" + dependencies: + debug "^2.2.0" + fstream "^1.0.10" + fstream-ignore "^1.0.5" + once "^1.3.3" + readable-stream "^2.1.4" + rimraf "^2.5.1" + tar "^2.2.1" + uid-number "^0.0.6" + +tar@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + dependencies: + block-stream "*" + fstream "^1.0.2" + inherits "2" + +teamwork@3.x.x: + version "3.0.1" + resolved "https://registry.yarnpkg.com/teamwork/-/teamwork-3.0.1.tgz#ff38c7161f41f8070b7813716eb6154036ece196" + +term-size@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + dependencies: + execa "^0.7.0" + +test-exclude@^4.1.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.1.tgz#dfa222f03480bca69207ca728b37d74b45f724fa" + dependencies: + arrify "^1.0.1" + micromatch "^3.1.8" + object-assign "^4.1.0" + read-pkg-up "^1.0.1" + require-main-filename "^1.0.1" + +text-encoding@^0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/text-encoding/-/text-encoding-0.6.4.tgz#e399a982257a276dae428bb92845cb71bdc26d19" + +text-table@^0.2.0, text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + +through2@^2.0.0, through2@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +time-zone@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/time-zone/-/time-zone-1.0.0.tgz#99c5bf55958966af6d06d83bdf3800dc82faec5d" + +timed-out@^4.0.0, timed-out@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + dependencies: + os-tmpdir "~1.0.2" + +to-double-quotes@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-double-quotes/-/to-double-quotes-2.0.0.tgz#aaf231d6fa948949f819301bbab4484d8588e4a7" + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +to-single-quotes@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/to-single-quotes/-/to-single-quotes-2.0.1.tgz#7cc29151f0f5f2c41946f119f5932fe554170125" + +topo@3.x.x: + version "3.0.0" + resolved "https://registry.yarnpkg.com/topo/-/topo-3.0.0.tgz#37e48c330efeac784538e0acd3e62ca5e231fe7a" + dependencies: + hoek "5.x.x" + +tough-cookie@~2.3.0, tough-cookie@~2.3.3: + version "2.3.4" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" + dependencies: + punycode "^1.4.1" + +traverse@^0.6.6: + version "0.6.6" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + +trim-newlines@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" + +trim-off-newlines@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + +tslib@^1.8.0, tslib@^1.8.1: + version "1.9.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8" + +tslint@^5.8.0: + version "5.9.1" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.9.1.tgz#1255f87a3ff57eb0b0e1f0e610a8b4748046c9ae" + dependencies: + babel-code-frame "^6.22.0" + builtin-modules "^1.1.1" + chalk "^2.3.0" + commander "^2.12.1" + diff "^3.2.0" + glob "^7.1.1" + js-yaml "^3.7.0" + minimatch "^3.0.4" + resolve "^1.3.2" + semver "^5.3.0" + tslib "^1.8.0" + tsutils "^2.12.1" + +tsutils@^2.12.1: + version "2.22.2" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.22.2.tgz#0b9f3d87aa3eb95bd32d26ce2b88aa329a657951" + dependencies: + tslib "^1.8.1" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + dependencies: + prelude-ls "~1.1.2" + +type-detect@^4.0.0, type-detect@^4.0.5: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + +type-is@^1.5.5, type-is@~1.6.15, type-is@~1.6.16: + version "1.6.16" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" + dependencies: + media-typer "0.3.0" + mime-types "~2.1.18" + +type-name@^2.0.0, type-name@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/type-name/-/type-name-2.0.2.tgz#efe7d4123d8ac52afff7f40c7e4dec5266008fb4" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + +typescript@~2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.6.2.tgz#3c5b6fd7f6de0914269027f03c0946758f7673a4" + +uglify-js@^2.6: + version "2.8.29" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" + dependencies: + source-map "~0.5.1" + yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + +uid-number@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + +uid2@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82" + +underscore-contrib@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/underscore-contrib/-/underscore-contrib-0.3.0.tgz#665b66c24783f8fa2b18c9f8cbb0e2c7d48c26c7" + dependencies: + underscore "1.6.0" + +underscore@1.6.0, underscore@~1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" + +underscore@~1.8.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" + +union-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^0.4.3" + +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + dependencies: + crypto-random-string "^1.0.0" + +unique-temp-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz#6dce95b2681ca003eebfb304a415f9cbabcc5385" + dependencies: + mkdirp "^0.5.1" + os-tmpdir "^1.0.1" + uid2 "0.0.3" + +universal-deep-strict-equal@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/universal-deep-strict-equal/-/universal-deep-strict-equal-1.2.2.tgz#0da4ac2f73cff7924c81fa4de018ca562ca2b0a7" + dependencies: + array-filter "^1.0.0" + indexof "0.0.1" + object-keys "^1.0.0" + +universalify@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +unzip-response@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + +update-notifier@^2.2.0, update-notifier@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.3.0.tgz#4e8827a6bb915140ab093559d7014e3ebb837451" + dependencies: + boxen "^1.2.1" + chalk "^2.0.1" + configstore "^3.0.0" + import-lazy "^2.1.0" + is-installed-globally "^0.1.0" + is-npm "^1.0.0" + latest-version "^3.0.0" + semver-diff "^2.0.0" + xdg-basedir "^3.0.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + dependencies: + prepend-http "^1.0.1" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + dependencies: + prepend-http "^2.0.0" + +url-to-options@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" + +urlgrey@0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/urlgrey/-/urlgrey-0.4.4.tgz#892fe95960805e85519f1cd4389f2cb4cbb7652f" + +use@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544" + dependencies: + kind-of "^6.0.2" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +utile@0.2.x: + version "0.2.1" + resolved "https://registry.yarnpkg.com/utile/-/utile-0.2.1.tgz#930c88e99098d6220834c356cbd9a770522d90d7" + dependencies: + async "~0.2.9" + deep-equal "*" + i "0.3.x" + mkdirp "0.x.x" + ncp "0.4.x" + rimraf "2.x.x" + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + +uuid@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" + +uuid@^3.0.0, uuid@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" + +validate-npm-package-license@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338" + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validate-npm-package-name@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + dependencies: + builtins "^1.0.3" + +vary@^1.0.0, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + +vasync@^1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/vasync/-/vasync-1.6.4.tgz#dfe93616ad0e7ae801b332a9d88bfc5cdc8e1d1f" + dependencies: + verror "1.6.0" + +verror@1.10.0, verror@^1.10.0, verror@^1.8.1: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +verror@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.6.0.tgz#7d13b27b1facc2e2da90405eb5ea6e5bdd252ea5" + dependencies: + extsprintf "1.2.0" + +vise@3.x.x: + version "3.0.0" + resolved "https://registry.yarnpkg.com/vise/-/vise-3.0.0.tgz#76ad14ab31669c50fbb0817bc0e72fedcbb3bf4c" + dependencies: + hoek "5.x.x" + +vow-fs@~0.3.4: + version "0.3.6" + resolved "https://registry.yarnpkg.com/vow-fs/-/vow-fs-0.3.6.tgz#2d4c59be22e2bf2618ddf597ab4baa923be7200d" + dependencies: + glob "^7.0.5" + uuid "^2.0.2" + vow "^0.4.7" + vow-queue "^0.4.1" + +vow-queue@^0.4.1: + version "0.4.3" + resolved "https://registry.yarnpkg.com/vow-queue/-/vow-queue-0.4.3.tgz#4ba8f64b56e9212c0dbe57f1405aeebd54cce78d" + dependencies: + vow "^0.4.17" + +vow@^0.4.17, vow@^0.4.7, vow@~0.4.8: + version "0.4.17" + resolved "https://registry.yarnpkg.com/vow/-/vow-0.4.17.tgz#b16e08fae58c52f3ebc6875f2441b26a92682904" + +wbuf@^1.1.0, wbuf@^1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + dependencies: + minimalistic-assert "^1.0.0" + +well-known-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/well-known-symbols/-/well-known-symbols-1.0.0.tgz#73c78ae81a7726a8fa598e2880801c8b16225518" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + +which@^1.2.9, which@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" + dependencies: + string-width "^1.0.2" + +widest-line@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.0.tgz#0142a4e8a243f8882c0233aa0e0281aa76152273" + dependencies: + string-width "^2.1.1" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + +winston@0.8.x: + version "0.8.3" + resolved "https://registry.yarnpkg.com/winston/-/winston-0.8.3.tgz#64b6abf4cd01adcaefd5009393b1d8e8bec19db0" + dependencies: + async "0.2.x" + colors "0.6.x" + cycle "1.0.x" + eyes "0.1.x" + isstream "0.1.x" + pkginfo "0.3.x" + stack-trace "0.0.x" + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +wreck@14.x.x: + version "14.0.2" + resolved "https://registry.yarnpkg.com/wreck/-/wreck-14.0.2.tgz#89c17a9061c745ed1c3aebcb66ea181dbaab454c" + dependencies: + boom "7.x.x" + hoek "5.x.x" + +write-file-atomic@^1.1.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + slide "^1.1.5" + +write-file-atomic@^2.0.0, write-file-atomic@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +write-json-file@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-2.3.0.tgz#2b64c8a33004d54b8698c76d585a77ceb61da32f" + dependencies: + detect-indent "^5.0.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + pify "^3.0.0" + sort-keys "^2.0.0" + write-file-atomic "^2.0.0" + +write-pkg@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-3.1.0.tgz#030a9994cc9993d25b4e75a9f1a1923607291ce9" + dependencies: + sort-keys "^2.0.0" + write-json-file "^2.2.0" + +write@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + dependencies: + mkdirp "^0.5.1" + +xdg-basedir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" + +xmlbuilder@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-3.1.0.tgz#2c86888f2d4eade850fa38ca7f7223f7209516e1" + dependencies: + lodash "^3.5.0" + +xmlcreate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-1.0.2.tgz#fa6bf762a60a413fb3dd8f4b03c5b269238d308f" + +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + +yargs-parser@9.0.2, yargs-parser@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" + dependencies: + camelcase "^4.1.0" + +yargs-parser@^8.0.0, yargs-parser@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950" + dependencies: + camelcase "^4.1.0" + +yargs@11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.0.0.tgz#c052931006c5eee74610e5fc0354bedfd08a201b" + dependencies: + cliui "^4.0.0" + decamelize "^1.1.1" + find-up "^2.1.0" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^9.0.2" + +yargs@^10.0.3: + version "10.1.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.1.2.tgz#454d074c2b16a51a43e2fb7807e4f9de69ccb5c5" + dependencies: + cliui "^4.0.0" + decamelize "^1.1.1" + find-up "^2.1.0" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^8.1.0" + +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" From 1faa35f53f9e722f350e9ca0a180988276edc3ae Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Mon, 19 Mar 2018 13:47:31 -0700 Subject: [PATCH 063/527] chore: update README to reflect the new API (#76) --- handwritten/error-reporting/README.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index bb161bcb242..79584377680 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -64,10 +64,18 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. ```javascript // Imports the Google Cloud client library - const ErrorReporting = require('@google-cloud/error-reporting'); + + // Node 6+ + const {ErrorReporting} = require('@google-cloud/error-reporting'); + + // Node 4+ + // const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; + + // Using ES6 style imports via TypeScript or Babel + // import {ErrorReporting} from '@google-cloud/error-reporting'; // Instantiates a client - const errors = ErrorReporting(); + const errors = new ErrorReporting(); // Reports a simple error errors.report('Something broke!'); From 5fe83580561ecb05551b55e28359d66e4efc4678 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Mon, 19 Mar 2018 14:00:59 -0700 Subject: [PATCH 064/527] chore: install tests print output on failure (#75) Previously the output of subprocesses would only be printed if `DEBUG` was set to `true` in the `test-install.ts` file. This is not helpful for tests that fail on CI. Now if tests pass then no process output is printed to the console. This makes it easy to see that the tests pass. However, if a test fails, the output of processes invoked in that test are automatically printed to the console to help determine the cause of the error. --- .../system-test/test-install.ts | 71 ++++++++++--------- .../error-reporting/system-test/utils.ts | 30 ++++---- 2 files changed, 51 insertions(+), 50 deletions(-) diff --git a/handwritten/error-reporting/system-test/test-install.ts b/handwritten/error-reporting/system-test/test-install.ts index 1a65bcb4f90..a9d3081f206 100644 --- a/handwritten/error-reporting/system-test/test-install.ts +++ b/handwritten/error-reporting/system-test/test-install.ts @@ -15,6 +15,7 @@ */ import * as assert from 'assert'; +import {SpawnOptions} from 'child_process'; import * as path from 'path'; import {globP, mkdirP, ncpP, rimrafP, spawnP, tmpDirP, writeFileP} from './utils'; @@ -91,22 +92,24 @@ new ErrorReporting({ const TIMEOUT_MS = 2 * 60 * 1000; -const DEBUG = false; -function log(txt: string): void { - if (DEBUG) { - console.log(txt); - } -} - -const stdio = DEBUG ? 'inherit' : 'ignore'; - interface CodeSample { code: string; description: string; } describe('Installation', () => { + let text = ''; let installDir: string|undefined; + + function log(txt: string): void { + text += txt; + } + + async function run( + cmd: string, args: string[], options?: SpawnOptions): Promise { + await spawnP(cmd, args, options, log); + } + before(async () => { const tgz = await globP(`${process.cwd()}/*.tgz`); assert.deepStrictEqual( @@ -120,22 +123,23 @@ describe('Installation', () => { beforeEach(async function() { this.timeout(TIMEOUT_MS); + text = ''; // This script assumes that you don't already have a TGZ file // in your current working directory. installDir = await tmpDirP(); log(`Using installation directory: ${installDir}`); - await spawnP('npm', ['install'], {stdio}, log); - await spawnP('npm', ['run', 'compile'], {stdio}, log); - await spawnP('npm', ['pack'], {stdio}, log); + await run('npm', ['install']); + await run('npm', ['run', 'compile']); + await run('npm', ['pack']); const tgz = await globP(`${process.cwd()}/*.tgz`); if (tgz.length !== 1) { throw new Error( `Expected 1 tgz file in current directory, but found ${tgz.length}`); } - await spawnP('npm', ['init', '-y'], {cwd: installDir, stdio}, log); - await spawnP( + await run('npm', ['init', '-y'], {cwd: installDir}); + await run( 'npm', ['install', 'typescript', '@types/node', tgz[0]], - {cwd: installDir, stdio}, log); + {cwd: installDir}); }); afterEach(async function() { @@ -143,6 +147,9 @@ describe('Installation', () => { if (installDir) { await rimrafP(installDir); } + if (this.currentTest.state === 'failed') { + console.log(text); + } }); describe('When used with Typescript code', () => { @@ -153,24 +160,21 @@ describe('Installation', () => { assert(installDir); const srcDir = path.join(installDir!, 'src'); await mkdirP(srcDir); - await spawnP( - 'npm', ['install', '--save', 'winston'], - {cwd: installDir, stdio}, log); - await spawnP( + await run( + 'npm', ['install', '--save', 'winston'], {cwd: installDir}); + await run( 'npm', ['install', '--save-dev', '@types/winston'], - {cwd: installDir, stdio}, log); + {cwd: installDir}); await writeFileP(path.join(srcDir, INDEX_TS), sample.code, 'utf-8'); - await spawnP( + await run( 'npm', ['install', '--save-dev', 'gts', 'typescript@2.x'], - {cwd: installDir, stdio}, log); - await spawnP( - 'gts', ['init', '--yes'], {cwd: installDir, stdio}, log); - await spawnP( - 'npm', ['run', 'compile'], {cwd: installDir, stdio}, log); + {cwd: installDir}); + await run('gts', ['init', '--yes'], {cwd: installDir}); + await run('npm', ['run', 'compile'], {cwd: installDir}); const buildDir = path.join(installDir!, 'build'); - await spawnP( + await run( 'node', [path.join(buildDir, 'src', INDEX_JS)], - {cwd: installDir, stdio}, log); + {cwd: installDir}); }); }); }); @@ -181,15 +185,14 @@ describe('Installation', () => { async function() { this.timeout(TIMEOUT_MS); assert(installDir); - await spawnP( - 'npm', ['install', '--save', 'winston'], - {cwd: installDir, stdio}, log); - await spawnP( + await run( + 'npm', ['install', '--save', 'winston'], {cwd: installDir}); + await run( 'npm', ['install', '--save-dev', '@types/winston'], - {cwd: installDir, stdio}, log); + {cwd: installDir}); await writeFileP( path.join(installDir!, INDEX_JS), sample.code, 'utf-8'); - await spawnP('node', [INDEX_JS], {cwd: installDir, stdio}, log); + await run('node', [INDEX_JS], {cwd: installDir}); }); }); }); diff --git a/handwritten/error-reporting/system-test/utils.ts b/handwritten/error-reporting/system-test/utils.ts index 994672c8baf..79f0c86c0dc 100644 --- a/handwritten/error-reporting/system-test/utils.ts +++ b/handwritten/error-reporting/system-test/utils.ts @@ -47,9 +47,17 @@ export function existsP(path: string): Promise { () => Promise.resolve(true), () => Promise.resolve(false)); } -function promisifyChildProcess(childProcess: ChildProcess): Promise { +function promisifyChildProcess( + childProcess: ChildProcess, log?: (text: string) => void): Promise { return new Promise((resolve, reject) => { const exit = (err?: Error) => once(() => err ? reject(err) : resolve())(); + const resLog = log ? log : (text: string) => {}; + childProcess.stdout.on('data', (txt) => { + resLog(txt.toString()); + }); + childProcess.stderr.on('data', (txt) => { + resLog(txt.toString()); + }); childProcess.on('error', exit); childProcess.on('close', (code) => { if (code === 0) { @@ -62,7 +70,7 @@ function promisifyChildProcess(childProcess: ChildProcess): Promise { }); } -export function spawnP( +export async function spawnP( command: string, args?: string[], options?: SpawnOptions, log?: (text: string) => void): Promise { const stringifiedCommand = @@ -70,18 +78,8 @@ export function spawnP( if (log) { log(`> Running: ${stringifiedCommand}`); } - return promisifyChildProcess(spawn( - command, args, Object.assign({stdio: 'inherit', shell: true}, options))); -} - -export function forkP( - moduleName: string, args?: string[], options?: ForkOptions, - log?: (text: string) => void): Promise { - const stringifiedCommand = - `\`${moduleName}${args ? (' ' + args.join(' ')) : ''}\``; - if (log) { - log(`> Running: ${stringifiedCommand}`); - } - return promisifyChildProcess( - fork(moduleName, args, Object.assign({stdio: 'inherit'}, options))); + await promisifyChildProcess( + spawn( + command, args, Object.assign({stdio: 'pipe', shell: true}, options)), + log); } From a3ab67b4a2c9cf6045dbe5b294c0477cf9ebc044 Mon Sep 17 00:00:00 2001 From: Alexander Fenster Date: Mon, 19 Mar 2018 18:30:16 -0700 Subject: [PATCH 065/527] chore: setup nighty build in CircleCI (#77) * chore: setup nighty build in CircleCI * chore: setup nighty build in CircleCI --- .../error-reporting/.circleci/config.yml | 44 +++++++----- .../.circleci/get_workflow_name.py | 67 +++++++++++++++++++ 2 files changed, 96 insertions(+), 15 deletions(-) create mode 100644 handwritten/error-reporting/.circleci/get_workflow_name.py diff --git a/handwritten/error-reporting/.circleci/config.yml b/handwritten/error-reporting/.circleci/config.yml index 64c69a5c4db..f944060c59b 100644 --- a/handwritten/error-reporting/.circleci/config.yml +++ b/handwritten/error-reporting/.circleci/config.yml @@ -1,17 +1,8 @@ -unit_tests: - steps: &unit_tests - - checkout - - run: - name: Install modules and dependencies. - command: npm install - - run: - name: Run unit tests. - command: npm test version: 2 workflows: version: 2 tests: - jobs: + jobs: &workflow_jobs - node4: filters: tags: @@ -73,35 +64,55 @@ workflows: ignore: /.*/ tags: only: '/^v[\d.]+$/' + nightly: + triggers: + - schedule: + cron: 0 7 * * * + filters: + branches: + only: master + jobs: *workflow_jobs jobs: node4: docker: - image: 'node:4' - steps: + steps: &unit_tests_steps - checkout + - run: &remove_package_lock + name: Remove package-lock.json if needed. + command: | + WORKFLOW_NAME=`python .circleci/get_workflow_name.py` + echo "Workflow name: $WORKFLOW_NAME" + if [ "$WORKFLOW_NAME" = "nightly" ]; then + echo "Nightly build detected, removing package-lock.json." + rm -f package-lock.json samples/package-lock.json + else + echo "Not a nightly build, skipping this step." + fi - run: name: Install modules and dependencies. - command: npm install --unsafe-perm + command: npm install - run: name: Run unit tests. command: npm test node6: docker: - image: 'node:6' - steps: *unit_tests + steps: *unit_tests_steps node8: docker: - image: 'node:8' - steps: *unit_tests + steps: *unit_tests_steps node9: docker: - image: 'node:9' - steps: *unit_tests + steps: *unit_tests_steps lint: docker: - image: 'node:8' steps: - checkout + - run: *remove_package_lock - run: name: Install modules and dependencies. command: | @@ -122,6 +133,7 @@ jobs: - image: 'node:8' steps: - checkout + - run: *remove_package_lock - run: name: Install modules and dependencies. command: npm install @@ -133,6 +145,7 @@ jobs: - image: 'node:8' steps: - checkout + - run: *remove_package_lock - run: name: Decrypt credentials. command: | @@ -167,6 +180,7 @@ jobs: - image: 'node:8' steps: - checkout + - run: *remove_package_lock - run: name: Decrypt credentials. command: | diff --git a/handwritten/error-reporting/.circleci/get_workflow_name.py b/handwritten/error-reporting/.circleci/get_workflow_name.py new file mode 100644 index 00000000000..ff6b58fd24f --- /dev/null +++ b/handwritten/error-reporting/.circleci/get_workflow_name.py @@ -0,0 +1,67 @@ +# Copyright 2018 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +""" +Get workflow name for the current build using CircleCI API. +Would be great if this information is available in one of +CircleCI environment variables, but it's not there. +https://circleci.ideas.aha.io/ideas/CCI-I-295 +""" + +import json +import os +import sys +import urllib2 + + +def main(): + try: + username = os.environ['CIRCLE_PROJECT_USERNAME'] + reponame = os.environ['CIRCLE_PROJECT_REPONAME'] + build_num = os.environ['CIRCLE_BUILD_NUM'] + except: + sys.stderr.write( + 'Looks like we are not inside CircleCI container. Exiting...\n') + return 1 + + try: + request = urllib2.Request( + "https://circleci.com/api/v1.1/project/github/%s/%s/%s" % + (username, reponame, build_num), + headers={"Accept": "application/json"}) + contents = urllib2.urlopen(request).read() + except: + sys.stderr.write('Cannot query CircleCI API. Exiting...\n') + return 1 + + try: + build_info = json.loads(contents) + except: + sys.stderr.write( + 'Cannot parse JSON received from CircleCI API. Exiting...\n') + return 1 + + try: + workflow_name = build_info['workflows']['workflow_name'] + except: + sys.stderr.write( + 'Cannot get workflow name from CircleCI build info. Exiting...\n') + return 1 + + print workflow_name + return 0 + + +retval = main() +exit(retval) From a99dce8b2d80002af367655fe007e74b189ae441 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Wed, 21 Mar 2018 13:57:55 -0700 Subject: [PATCH 066/527] fix: fix a failure in the installation tests (#74) --- handwritten/error-reporting/package-lock.json | 156 +++-------- handwritten/error-reporting/package.json | 2 +- handwritten/error-reporting/src/index.ts | 12 +- .../error-reporting/src/interfaces/express.ts | 12 +- .../error-reporting/src/interfaces/hapi.ts | 11 +- .../error-reporting/src/interfaces/koa.ts | 8 +- handwritten/error-reporting/src/types.d.ts | 13 +- .../system-test/test-install.ts | 260 ++++++++++++++++-- 8 files changed, 314 insertions(+), 160 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index a7fcbe24101..095ddeebb11 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -84,7 +84,6 @@ "version": "0.16.1", "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.16.1.tgz", "integrity": "sha512-1sufDsSfgJ7fuBLq+ux8t3TlydMlyWl9kPZx2WdLINkGtf5RjvXX6EWYZiCMKe8flJ3oC0l95j5atN2uX5n3rg==", - "dev": true, "requires": { "array-uniq": "1.0.3", "arrify": "1.0.1", @@ -591,7 +590,6 @@ "version": "5.5.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, "requires": { "co": "4.6.0", "fast-deep-equal": "1.1.0", @@ -764,8 +762,7 @@ "array-uniq": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" }, "array-unique": { "version": "0.2.1", @@ -776,8 +773,7 @@ "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" }, "asn1": { "version": "0.2.3", @@ -799,7 +795,6 @@ "version": "2.6.0", "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", - "dev": true, "requires": { "lodash": "4.17.5" } @@ -813,8 +808,7 @@ "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "auto-bind": { "version": "1.2.0", @@ -940,20 +934,17 @@ "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", - "dev": true + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" }, "axios": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz", "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=", - "dev": true, "requires": { "follow-redirects": "1.4.1", "is-buffer": "1.1.6" @@ -1421,8 +1412,7 @@ "base64url": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/base64url/-/base64url-2.0.0.tgz", - "integrity": "sha1-6sFuA+oUOO/5Qj1puqNiYu0fcLs=", - "dev": true + "integrity": "sha1-6sFuA+oUOO/5Qj1puqNiYu0fcLs=" }, "bcrypt-pbkdf": { "version": "1.0.1", @@ -1542,8 +1532,7 @@ "buffer-equal-constant-time": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=", - "dev": true + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" }, "builtin-modules": { "version": "1.1.1", @@ -1682,14 +1671,12 @@ "capture-stack-trace": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", - "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", - "dev": true + "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=" }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "catbox": { "version": "10.0.2", @@ -1943,8 +1930,7 @@ "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" }, "co-with-promise": { "version": "4.6.0", @@ -2155,7 +2141,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "dev": true, "requires": { "delayed-stream": "1.0.0" } @@ -2202,7 +2187,6 @@ "version": "1.6.1", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.1.tgz", "integrity": "sha512-gslSSJx03QKa59cIKqeJO9HQ/WZMotvYJCuaUULrLpjj8oG40kV2Z+gz82pVxlTkOADi4PJxQPPfhl1ELYrrXw==", - "dev": true, "requires": { "inherits": "2.0.3", "readable-stream": "2.3.5", @@ -2455,7 +2439,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", - "dev": true, "requires": { "capture-stack-trace": "1.0.0" } @@ -2711,8 +2694,7 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "delegates": { "version": "1.0.0", @@ -2836,7 +2818,6 @@ "version": "3.5.4", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.4.tgz", "integrity": "sha512-JzYSLYMhoVVBe8+mbHQ4KgpvHpm0DZpJuL8PY93Vyv1fW7jYJ90LoXa1di/CVbJM+TgMs91rbDapE/RNIfnJsA==", - "dev": true, "requires": { "end-of-stream": "1.4.1", "inherits": "2.0.3", @@ -2863,7 +2844,6 @@ "version": "1.0.9", "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.9.tgz", "integrity": "sha1-S8kmJ07Dtau1AW5+HWCSGsJisqE=", - "dev": true, "requires": { "base64url": "2.0.0", "safe-buffer": "5.1.1" @@ -2912,7 +2892,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, "requires": { "once": "1.4.0" } @@ -2920,8 +2899,7 @@ "ent": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", - "dev": true + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=" }, "entities": { "version": "1.1.1", @@ -3494,8 +3472,7 @@ "fast-deep-equal": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" }, "fast-diff": { "version": "1.1.2", @@ -3506,8 +3483,7 @@ "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" }, "fast-levenshtein": { "version": "2.0.6", @@ -3619,7 +3595,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.4.1.tgz", "integrity": "sha512-uxYePVPogtya1ktGnAAXOacnbIuRMB4dkvqeNz2qTtTQsuzSfbDolV+wMMKxAmCx0bLgAKLbBOkjItMbbkR1vg==", - "dev": true, "requires": { "debug": "3.1.0" }, @@ -3628,7 +3603,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -3659,14 +3633,12 @@ "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", - "dev": true, "requires": { "asynckit": "0.4.0", "combined-stream": "1.0.6", @@ -4749,7 +4721,6 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.6.3.tgz", "integrity": "sha512-MSmczZctbz91AxCvqp9GHBoZOSbJKAICV7Ow/AIWSJZRrRchUd5NL1b2P4OfP+4m490BEUPhhARfpHdqCxuCvg==", - "dev": true, "requires": { "axios": "0.18.0", "extend": "3.0.1", @@ -4882,7 +4853,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-1.3.1.tgz", "integrity": "sha512-NcAzFY+ScalfjmFTHnCXInuivtbIfib9irJ5H8AHONy3eA56YW1Tu5X1dtbjw5TNBgP+BMu+nIrglJsAlfZ/Hg==", - "dev": true, "requires": { "axios": "0.18.0", "gcp-metadata": "0.6.3", @@ -4897,7 +4867,6 @@ "version": "0.9.7", "resolved": "https://registry.npmjs.org/google-auto-auth/-/google-auto-auth-0.9.7.tgz", "integrity": "sha512-Nro7aIFrL2NP0G7PoGrJqXGMZj8AjdBOcbZXRRm/8T3w08NUHIiNN3dxpuUYzDsZizslH+c8e+7HXL8vh3JXTQ==", - "dev": true, "requires": { "async": "2.6.0", "gcp-metadata": "0.6.3", @@ -4909,7 +4878,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-1.0.2.tgz", "integrity": "sha512-+EuKr4CLlGsnXx4XIJIVkcKYrsa2xkAmCvxRhX2HsazJzUBAJ35wARGeApHUn4nNfPD03Vl057FskNr20VaCyg==", - "dev": true, "requires": { "node-forge": "0.7.4", "pify": "3.0.0" @@ -4979,7 +4947,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-2.1.1.tgz", "integrity": "sha512-9wUP0Gb06lEJxX0w/w+n5Ghxh+/To0rbZSRCOu4Pih2sSDYXJwV4T7q6MPLW31cuKz0wqFQ60mW9nIKc8IgoyA==", - "dev": true, "requires": { "axios": "0.18.0", "google-p12-pem": "1.0.2", @@ -4991,8 +4958,7 @@ "mime": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/mime/-/mime-2.2.0.tgz", - "integrity": "sha512-0Qz9uF1ATtl8RKJG4VRfOymh7PyEor6NbrI/61lRfuRe4vx9SNATrvAeTj2EWVRKjEQGskrzWkJBBY5NbaVHIA==", - "dev": true + "integrity": "sha512-0Qz9uF1ATtl8RKJG4VRfOymh7PyEor6NbrI/61lRfuRe4vx9SNATrvAeTj2EWVRKjEQGskrzWkJBBY5NbaVHIA==" } } }, @@ -5205,14 +5171,12 @@ "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "dev": true, "requires": { "ajv": "5.5.2", "har-schema": "2.0.0" @@ -5264,7 +5228,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", - "dev": true, "requires": { "boom": "4.3.1", "cryptiles": "3.1.2", @@ -5276,7 +5239,6 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", - "dev": true, "requires": { "hoek": "4.2.1" } @@ -5285,7 +5247,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", - "dev": true, "requires": { "boom": "5.2.0" }, @@ -5294,7 +5255,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", - "dev": true, "requires": { "hoek": "4.2.1" } @@ -5304,8 +5264,7 @@ "hoek": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", - "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==", - "dev": true + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" } } }, @@ -5640,8 +5599,7 @@ "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-builtin-module": { "version": "1.0.0", @@ -5856,8 +5814,7 @@ "is-stream-ended": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.3.tgz", - "integrity": "sha1-oEc7Jnx1ZjVIa+7cfjNE5UnRUqw=", - "dev": true + "integrity": "sha1-oEc7Jnx1ZjVIa+7cfjNE5UnRUqw=" }, "is-supported-regexp-flag": { "version": "1.0.0", @@ -5867,8 +5824,7 @@ "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-url": { "version": "1.2.2", @@ -5913,8 +5869,7 @@ "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "isurl": { "version": "1.0.0", @@ -6378,8 +6333,7 @@ "json-schema-traverse": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" }, "json-stable-stringify": { "version": "1.0.1", @@ -6399,8 +6353,7 @@ "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "json5": { "version": "0.5.1", @@ -6454,7 +6407,6 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.5.tgz", "integrity": "sha1-oFUs4CIHQs1S4VN3SjKQXDDnVuU=", - "dev": true, "requires": { "base64url": "2.0.0", "buffer-equal-constant-time": "1.0.1", @@ -6466,7 +6418,6 @@ "version": "3.1.4", "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.4.tgz", "integrity": "sha1-+ei5M46KhHJ31kRLFGT2GIDgUKI=", - "dev": true, "requires": { "base64url": "2.0.0", "jwa": "1.1.5", @@ -6735,8 +6686,7 @@ "lodash.isstring": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", - "dev": true + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" }, "lodash.maxby": { "version": "4.6.0", @@ -6789,8 +6739,7 @@ "log-driver": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz", - "integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=", - "dev": true + "integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=" }, "lolex": { "version": "2.3.2", @@ -7034,8 +6983,7 @@ "methmeth": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/methmeth/-/methmeth-1.1.0.tgz", - "integrity": "sha1-6AomYY5S9cQiKGG7dIUQvRDikIk=", - "dev": true + "integrity": "sha1-6AomYY5S9cQiKGG7dIUQvRDikIk=" }, "methods": { "version": "1.1.2", @@ -7185,8 +7133,7 @@ "modelo": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/modelo/-/modelo-4.2.3.tgz", - "integrity": "sha512-9DITV2YEMcw7XojdfvGl3gDD8J9QjZTJ7ZOUuSAkP+F3T6rDbzMJuPktxptsdHYEvZcmXrCD3LMOhdSAEq6zKA==", - "dev": true + "integrity": "sha512-9DITV2YEMcw7XojdfvGl3gDD8J9QjZTJ7ZOUuSAkP+F3T6rDbzMJuPktxptsdHYEvZcmXrCD3LMOhdSAEq6zKA==" }, "module-not-found-error": { "version": "1.0.1", @@ -7355,8 +7302,7 @@ "node-forge": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.4.tgz", - "integrity": "sha512-8Df0906+tq/omxuCZD6PqhPaQDYuyJ1d+VITgxoIA8zvQd1ru+nMJcDChHH324MWitIgbVkAkQoGEEVJNpn/PA==", - "dev": true + "integrity": "sha512-8Df0906+tq/omxuCZD6PqhPaQDYuyJ1d+VITgxoIA8zvQd1ru+nMJcDChHH324MWitIgbVkAkQoGEEVJNpn/PA==" }, "nomnom": { "version": "1.8.1", @@ -9264,8 +9210,7 @@ "oauth-sign": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "dev": true + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" }, "object-assign": { "version": "4.1.1", @@ -9613,8 +9558,7 @@ "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "pez": { "version": "4.0.1", @@ -9636,8 +9580,7 @@ "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" }, "pinkie": { "version": "1.0.0", @@ -10264,7 +10207,6 @@ "version": "2.85.0", "resolved": "https://registry.npmjs.org/request/-/request-2.85.0.tgz", "integrity": "sha512-8H7Ehijd4js+s6wuVPLjwORxD4zeuyjYugprdOXlPSqaApmL/QOy+EB/beICHVCHkGMKNh5rvihb5ov+IDw4mg==", - "dev": true, "requires": { "aws-sign2": "0.7.0", "aws4": "1.6.0", @@ -10424,14 +10366,12 @@ "retry-axios": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/retry-axios/-/retry-axios-0.3.2.tgz", - "integrity": "sha512-jp4YlI0qyDFfXiXGhkCOliBN1G7fRH03Nqy8YdShzGqbY5/9S2x/IR6C88ls2DFkbWuL3ASkP7QD3pVrNpPgwQ==", - "dev": true + "integrity": "sha512-jp4YlI0qyDFfXiXGhkCOliBN1G7fRH03Nqy8YdShzGqbY5/9S2x/IR6C88ls2DFkbWuL3ASkP7QD3pVrNpPgwQ==" }, "retry-request": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-3.3.1.tgz", "integrity": "sha512-PjAmtWIxjNj4Co/6FRtBl8afRP3CxrrIAnUzb1dzydfROd+6xt7xAebFeskgQgkfFf8NmzrXIoaB3HxmswXyxw==", - "dev": true, "requires": { "request": "2.85.0", "through2": "2.0.3" @@ -10683,7 +10623,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", - "dev": true, "requires": { "hoek": "4.2.1" }, @@ -10691,8 +10630,7 @@ "hoek": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", - "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==", - "dev": true + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" } } }, @@ -10819,7 +10757,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/split-array-stream/-/split-array-stream-1.0.3.tgz", "integrity": "sha1-0rdajl4Ngk1S/eyLgiWDncLjXfo=", - "dev": true, "requires": { "async": "2.6.0", "is-stream-ended": "0.1.3" @@ -10890,7 +10827,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.2.tgz", "integrity": "sha1-q/OfZsCJCk63lbyNXoWbJhW1kLI=", - "dev": true, "requires": { "stubs": "3.0.0" } @@ -10898,8 +10834,7 @@ "stream-shift": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" }, "stream-transform": { "version": "0.2.2", @@ -10921,8 +10856,7 @@ "string-format-obj": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string-format-obj/-/string-format-obj-1.1.1.tgz", - "integrity": "sha512-Mm+sROy+pHJmx0P/0Bs1uxIX6UhGJGj6xDGQZ5zh9v/SZRmLGevp+p0VJxV7lirrkAmQ2mvva/gHKpnF/pTb+Q==", - "dev": true + "integrity": "sha512-Mm+sROy+pHJmx0P/0Bs1uxIX6UhGJGj6xDGQZ5zh9v/SZRmLGevp+p0VJxV7lirrkAmQ2mvva/gHKpnF/pTb+Q==" }, "string-width": { "version": "2.1.1", @@ -10956,8 +10890,7 @@ "stringstream": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", - "dev": true + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" }, "strip-ansi": { "version": "4.0.0", @@ -11015,8 +10948,7 @@ "stubs": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", - "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=", - "dev": true + "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=" }, "subtext": { "version": "6.0.7", @@ -11161,7 +11093,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, "requires": { "readable-stream": "2.3.5", "xtend": "4.0.1" @@ -11218,7 +11149,6 @@ "version": "2.3.4", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", - "dev": true, "requires": { "punycode": "1.4.1" }, @@ -11226,8 +11156,7 @@ "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" } } }, @@ -11305,7 +11234,6 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, "requires": { "safe-buffer": "5.1.1" } @@ -11349,8 +11277,7 @@ "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "typescript": { "version": "2.6.2", @@ -11874,8 +11801,7 @@ "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" }, "y18n": { "version": "3.2.1", diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index ff94f45fe38..af5352ada8b 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -53,6 +53,7 @@ "license-check": "jsgl --local ." }, "dependencies": { + "@google-cloud/common": "^0.16.0", "express": "^4.13.4", "extend": "^3.0.0", "hapi": "^17.1.1", @@ -61,7 +62,6 @@ "restify": "^6.3.4" }, "devDependencies": { - "@google-cloud/common": "^0.16.0", "@google-cloud/nodejs-repo-tools": "^2.0.11", "@types/express": "^4.11.0", "@types/glob": "^5.0.35", diff --git a/handwritten/error-reporting/src/index.ts b/handwritten/error-reporting/src/index.ts index 82cfed250d7..52ce3fa15d5 100644 --- a/handwritten/error-reporting/src/index.ts +++ b/handwritten/error-reporting/src/index.ts @@ -40,6 +40,8 @@ import {handlerSetup as restify} from './interfaces/restify'; import {createLogger} from './logger'; import {Request} from './request-extractors/manual'; +export type RequestHandler = (req: {}, res: {}, next: {}) => {}; + /** * @typedef ConfigurationOptions * @type {Object} @@ -105,11 +107,11 @@ export class ErrorReporting { (err: {}, request?: Request, additionalMessage?: string|{}, callback?: Callback|{}|string) => ErrorMessage; event: () => ErrorMessage; - hapi: {register: (server: h.Server, options: {}, next: Function) => void}; - express: (err: {}, req: e.Request, res: e.Response, next: Function) => void; - restify: - (client: AuthClient, config: Configuration, server: r.Server) => void; - koa: (next: Function) => Iterable; + hapi: {register: (server: {}, options: {}, next: Function) => void}; + express: (err: {}, req: {}, res: {}, next: Function) => void; + restify: (server: {}) => RequestHandler | RequestHandler[]; + // tslint:disable-next-line:no-any + koa: (context: any, next: () => Promise<{}>) => {}; constructor(initConfiguration?: ConfigurationOptions) { if (!(this instanceof ErrorReporting)) { diff --git a/handwritten/error-reporting/src/interfaces/express.ts b/handwritten/error-reporting/src/interfaces/express.ts index 9c2803b356b..de97ed47ed9 100644 --- a/handwritten/error-reporting/src/interfaces/express.ts +++ b/handwritten/error-reporting/src/interfaces/express.ts @@ -48,8 +48,7 @@ export function makeExpressHandler( * @param {Function} next - an Express continuation callback * @returns {ErrorMessage} - Returns the ErrorMessage instance */ - function expressErrorHandler( - err: {}, req: express.Request, res: express.Response, next: Function) { + function expressErrorHandler(err: {}, req: {}, res: {}, next: Function) { let ctxService = ''; let ctxVersion: string|undefined = ''; @@ -58,10 +57,11 @@ export function makeExpressHandler( ctxVersion = config.getServiceContext().version; } - const em = new ErrorMessage() - .consumeRequestInformation( - expressRequestInformationExtractor(req, res)) - .setServiceContext(ctxService, ctxVersion); + const em = + new ErrorMessage() + .consumeRequestInformation(expressRequestInformationExtractor( + req as express.Request, res as express.Response)) + .setServiceContext(ctxService, ctxVersion); populateErrorMessage(err, em); diff --git a/handwritten/error-reporting/src/interfaces/hapi.ts b/handwritten/error-reporting/src/interfaces/hapi.ts index 30532d005b9..da42a7fe2a7 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.ts +++ b/handwritten/error-reporting/src/interfaces/hapi.ts @@ -78,17 +78,16 @@ export function makeHapiPlugin(client: RequestHandler, config: Configuration) { * plugin * @returns {Undefined} - returns the execution of the next callback */ - function hapiRegisterFunction( - server: hapi.Server, options: {}, next: Function) { + function hapiRegisterFunction(server: {}, options: {}, next: Function) { if (isObject(server)) { - if (isFunction(server.on)) { - server.on('request-error', (req, err) => { + if (isFunction((server as hapi.Server).on)) { + (server as hapi.Server).on('request-error', (req, err) => { client.sendError(hapiErrorHandler(req, err, config)); }); } - if (isFunction(server.ext)) { - server.ext('onPreResponse', (request, reply) => { + if (isFunction((server as hapi.Server).ext)) { + (server as hapi.Server).ext('onPreResponse', (request, reply) => { if (isObject(request) && isObject(request.response) && // TODO: Handle the case when `request.response` is null request.response!.isBoom) { diff --git a/handwritten/error-reporting/src/interfaces/koa.ts b/handwritten/error-reporting/src/interfaces/koa.ts index 696d08be6cc..2775b68b74f 100644 --- a/handwritten/error-reporting/src/interfaces/koa.ts +++ b/handwritten/error-reporting/src/interfaces/koa.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import {Request, Response} from 'koa'; +import {Middleware, Request, Response} from 'koa'; import {ErrorMessage} from '../classes/error-message'; import {Configuration} from '../configuration'; @@ -34,7 +34,8 @@ import {koaRequestInformationExtractor} from '../request-extractors/koa'; * @returns {Function} - The function used to catch errors yielded by downstream * request handlers. */ -export function koaErrorHandler(client: RequestHandler, config: Configuration) { +export function koaErrorHandler( + client: RequestHandler, config: Configuration): Middleware { /** * The actual error handler for the Koa plugin attempts to yield the results * of downstream request handlers and will attempt to catch errors emitted by @@ -42,8 +43,7 @@ export function koaErrorHandler(client: RequestHandler, config: Configuration) { * @param {Function} next - the result of the request handlers to yield * @returns {Undefined} does not return anything */ - return function*( - this: {request: Request; response: Response;}, next: Function) { + return function*(this: {request: Request; response: Response;}, next: {}) { const svc = config.getServiceContext(); try { diff --git a/handwritten/error-reporting/src/types.d.ts b/handwritten/error-reporting/src/types.d.ts index cd5acdcd1b6..f97f2f0712a 100644 --- a/handwritten/error-reporting/src/types.d.ts +++ b/handwritten/error-reporting/src/types.d.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as request from 'request'; + import * as http from 'http'; export interface Common { Service: Service; @@ -42,14 +42,21 @@ export interface logger { LEVELS: string[]; } +export interface Options { + uri: 'events:report'; + qs: { key: string|null} | null; + method: string; + json: {}; +} + export interface Service { new(config: ServiceConfig, options: ServiceAuthenticationConfig): Service; authClient: {getToken: (err: {}) => void;}; - request(options: request.Options, + request(options: Options, cb: ( err: Error | null, body: any, - response: request.RequestResponse + response: http.IncomingMessage ) => void): void; } diff --git a/handwritten/error-reporting/system-test/test-install.ts b/handwritten/error-reporting/system-test/test-install.ts index a9d3081f206..bd785ccc3db 100644 --- a/handwritten/error-reporting/system-test/test-install.ts +++ b/handwritten/error-reporting/system-test/test-install.ts @@ -27,12 +27,16 @@ const TS_CODE_ARRAY: CodeSample[] = [ { code: `import * as errorReporting from '@google-cloud/error-reporting'; new errorReporting.ErrorReporting();`, - description: 'imports the module using * syntax' + description: 'imports the module using * syntax', + dependencies: [], + devDependencies: [] }, { code: `import {ErrorReporting} from '@google-cloud/error-reporting'; new ErrorReporting();`, - description: 'imports the module with {} syntax' + description: 'imports the module with {} syntax', + dependencies: [], + devDependencies: [] }, { code: `import {ErrorReporting} from '@google-cloud/error-reporting'; @@ -41,7 +45,10 @@ new ErrorReporting({ service: 'some service' } });`, - description: 'imports the module and starts with a partial `serviceContext`' + description: + 'imports the module and starts with a partial `serviceContext`', + dependencies: [], + devDependencies: [] }, { code: `import {ErrorReporting} from '@google-cloud/error-reporting'; @@ -53,7 +60,100 @@ new ErrorReporting({ } });`, description: - 'imports the module and starts with a complete `serviceContext`' + 'imports the module and starts with a complete `serviceContext`', + dependencies: [], + devDependencies: [] + }, + { + code: `import * as express from 'express'; + +import {ErrorReporting} from '@google-cloud/error-reporting'; +const errors = new ErrorReporting(); + +const app = express(); + +app.get('/error', (req, res, next) => { + res.send('Something broke!'); + next(new Error('Custom error message')); +}); + +app.get('/exception', () => { + JSON.parse('{\"malformedJson\": true'); +}); + +app.use(errors.express); +`, + description: 'uses express', + dependencies: ['express'], + devDependencies: ['@types/express'] + }, + { + code: `import * as hapi from 'hapi'; + +import {ErrorReporting} from '@google-cloud/error-reporting'; +const errors = new ErrorReporting(); + +const server = new hapi.Server(); +server.connection({ port: 3000 }); + +server.route({ + method: 'GET', + path: '/error', + handler: (request, reply) => { + reply('Something broke!'); + throw new Error('Custom error message'); + } +}); + +server.register(errors.hapi); +`, + description: 'uses hapi16', + dependencies: ['hapi@16.6.3'], + devDependencies: ['@types/hapi@16.1.14'] + }, + { + code: `import * as Koa from 'koa'; + +import {ErrorReporting} from '@google-cloud/error-reporting'; +const errors = new ErrorReporting(); + +const app = new Koa(); + +app.use(errors.koa); + +app.use(function *(this: any): IterableIterator { + //This will set status and message + this.throw('Error Message', 500); +}); + +// response +app.use(function *(this: any): IterableIterator { + this.body = 'Hello World'; +}); +`, + description: 'uses koa', + dependencies: ['koa'], + devDependencies: ['@types/koa'] + }, + { + code: `import * as restify from 'restify'; + +import {ErrorReporting} from '@google-cloud/error-reporting'; +const errors = new ErrorReporting(); + +function respond(req: {}, res: {}, next: Function) { + next(new Error('this is a restify error')); +} + +const server = restify.createServer(); + +server.use(errors.restify(server)); +server.get('/hello/:name', respond); +server.head('/hello/:name', respond); +`, + description: 'uses restify', + dependencies: ['restify'], + devDependencies: ['@types/restify'] } ]; @@ -62,7 +162,9 @@ const JS_CODE_ARRAY: CodeSample[] = [ code: `const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; new ErrorReporting();`, - description: 'requires the module using Node 4+ syntax' + description: 'requires the module using Node 4+ syntax', + dependencies: [], + devDependencies: [] }, { code: @@ -73,7 +175,9 @@ new ErrorReporting({ } });`, description: - 'requires the module and starts with a partial `serviceContext`' + 'requires the module and starts with a partial `serviceContext`', + dependencies: [], + devDependencies: [] }, { code: @@ -86,7 +190,102 @@ new ErrorReporting({ } });`, description: - 'requires the module and starts with a complete `serviceContext`' + 'requires the module and starts with a complete `serviceContext`', + dependencies: [], + devDependencies: [] + }, + { + code: `const express = require('express'); + +const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; +const errors = ErrorReporting(); + +const app = express(); + +app.get('/error', (req, res, next) => { + res.send('Something broke!'); + next(new Error('Custom error message')); +}); + +app.get('/exception', () => { + JSON.parse('{\"malformedJson\": true'); +}); + +// Note that express error handling middleware should be attached after all +// the other routes and use() calls. See [express docs][express-error-docs]. +app.use(errors.express); +`, + description: 'uses express', + dependencies: ['express'], + devDependencies: [] + }, + { + code: `const hapi = require('hapi'); + +const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; +const errors = new ErrorReporting(); + +const server = new hapi.Server(); +server.connection({ port: 3000 }); + +server.route({ + method: 'GET', + path: '/error', + handler: (request, reply) => { + reply('Something broke!'); + throw new Error('Custom error message'); + } +}); + +server.register(errors.hapi); +`, + description: 'uses hapi16', + dependencies: ['hapi@16.6.3'], + devDependencies: [] + }, + { + code: `const Koa = require('koa'); + +const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; +const errors = new ErrorReporting(); + +const app = new Koa(); + +app.use(errors.koa); + +app.use(function *(next) { + //This will set status and message + this.throw('Error Message', 500); +}); + +// response +app.use(function *(){ + this.body = 'Hello World'; +}); +`, + description: 'uses koa', + dependencies: ['koa'], + devDependencies: [] + }, + { + code: `const restify = require('restify'); + +const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; +const errors = new ErrorReporting(); + +function respond(req, res, next) { + next(new Error('this is a restify error')); +} + +const server = restify.createServer(); + +server.use(errors.restify(server)); +server.get('/hello/:name', respond); +server.head('/hello/:name', respond); +`, + description: 'uses restify', + dependencies: ['restify'], + devDependencies: [] } ]; @@ -95,6 +294,9 @@ const TIMEOUT_MS = 2 * 60 * 1000; interface CodeSample { code: string; description: string; + dependencies: string[]; + devDependencies: string[]; + skip?: boolean; } describe('Installation', () => { @@ -154,21 +356,28 @@ describe('Installation', () => { describe('When used with Typescript code', () => { TS_CODE_ARRAY.forEach((sample) => { - it(`should install and work with code that ${sample.description}`, + const fn = sample.skip ? it.skip : it; + fn(`should install and work with code that ${sample.description}`, async function() { this.timeout(TIMEOUT_MS); assert(installDir); const srcDir = path.join(installDir!, 'src'); await mkdirP(srcDir); - await run( - 'npm', ['install', '--save', 'winston'], {cwd: installDir}); - await run( - 'npm', ['install', '--save-dev', '@types/winston'], - {cwd: installDir}); + await writeFileP(path.join(srcDir, INDEX_TS), sample.code, 'utf-8'); + + if (sample.dependencies.length > 0) { + await run( + 'npm', ['install', '--save'].concat(sample.dependencies), + {cwd: installDir}); + } + + const devDeps = + sample.devDependencies.concat(['gts', 'typescript@2.x']); await run( - 'npm', ['install', '--save-dev', 'gts', 'typescript@2.x'], + 'npm', ['install', '--save-dev'].concat(devDeps), {cwd: installDir}); + await run('gts', ['init', '--yes'], {cwd: installDir}); await run('npm', ['run', 'compile'], {cwd: installDir}); const buildDir = path.join(installDir!, 'build'); @@ -181,17 +390,28 @@ describe('Installation', () => { describe('When used with Javascript code', () => { JS_CODE_ARRAY.forEach((sample) => { - it(`should install and work with code that ${sample.description}`, + const fn = sample.skip ? it.skip : it; + fn(`should install and work with code that ${sample.description}`, async function() { this.timeout(TIMEOUT_MS); assert(installDir); - await run( - 'npm', ['install', '--save', 'winston'], {cwd: installDir}); - await run( - 'npm', ['install', '--save-dev', '@types/winston'], - {cwd: installDir}); + await writeFileP( path.join(installDir!, INDEX_JS), sample.code, 'utf-8'); + + if (sample.dependencies) { + await run( + 'npm', ['install', '--save'].concat(sample.dependencies), + {cwd: installDir}); + } + + if (sample.devDependencies) { + await run( + 'npm', + ['install', '--save-dev'].concat(sample.devDependencies), + {cwd: installDir}); + } + await run('node', [INDEX_JS], {cwd: installDir}); }); }); From f6a68fb1f5fe6c300f6f463a79ab33c7d032c931 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Thu, 22 Mar 2018 11:40:49 -0700 Subject: [PATCH 067/527] chore: rename test files to `*.ts` (#46) --- handwritten/error-reporting/package.json | 2 +- ...{error-reporting.js => error-reporting.ts} | 9 +++- .../{configuration.js => configuration.ts} | 2 +- ...ld-stack-trace.js => build-stack-trace.ts} | 0 .../{error-message.js => error-message.ts} | 0 ...er.js => request-information-container.ts} | 0 .../{configuration.js => configuration.ts} | 48 +++++++++---------- .../{auth-client.js => auth-client.ts} | 20 ++++---- .../interfaces/{express.js => express.ts} | 0 .../test/unit/interfaces/{hapi.js => hapi.ts} | 8 ++-- .../unit/interfaces/{manual.js => manual.ts} | 0 .../interfaces/{restify.js => restify.ts} | 0 .../test/unit/{logger.js => logger.ts} | 2 +- ...r-message.js => populate-error-message.ts} | 37 +++++++++----- .../{express.js => express.ts} | 0 .../request-extractors/{hapi.js => hapi.ts} | 0 .../request-extractors/{koa.js => koa.ts} | 0 .../{manual.js => manual.ts} | 0 ...figuration.js => service-configuration.ts} | 20 ++++---- handwritten/error-reporting/tsconfig.json | 12 ++--- 20 files changed, 91 insertions(+), 69 deletions(-) rename handwritten/error-reporting/system-test/{error-reporting.js => error-reporting.ts} (99%) rename handwritten/error-reporting/test/fixtures/{configuration.js => configuration.ts} (94%) rename handwritten/error-reporting/test/unit/{build-stack-trace.js => build-stack-trace.ts} (100%) rename handwritten/error-reporting/test/unit/classes/{error-message.js => error-message.ts} (100%) rename handwritten/error-reporting/test/unit/classes/{request-information-container.js => request-information-container.ts} (100%) rename handwritten/error-reporting/test/unit/{configuration.js => configuration.ts} (91%) rename handwritten/error-reporting/test/unit/google-apis/{auth-client.js => auth-client.ts} (90%) rename handwritten/error-reporting/test/unit/interfaces/{express.js => express.ts} (100%) rename handwritten/error-reporting/test/unit/interfaces/{hapi.js => hapi.ts} (97%) rename handwritten/error-reporting/test/unit/interfaces/{manual.js => manual.ts} (100%) rename handwritten/error-reporting/test/unit/interfaces/{restify.js => restify.ts} (100%) rename handwritten/error-reporting/test/unit/{logger.js => logger.ts} (98%) rename handwritten/error-reporting/test/unit/{populate-error-message.js => populate-error-message.ts} (91%) rename handwritten/error-reporting/test/unit/request-extractors/{express.js => express.ts} (100%) rename handwritten/error-reporting/test/unit/request-extractors/{hapi.js => hapi.ts} (100%) rename handwritten/error-reporting/test/unit/request-extractors/{koa.js => koa.ts} (100%) rename handwritten/error-reporting/test/unit/request-extractors/{manual.js => manual.ts} (100%) rename handwritten/error-reporting/test/unit/{service-configuration.js => service-configuration.ts} (96%) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index af5352ada8b..d75e3076850 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -42,7 +42,7 @@ "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", "test-no-cover": "repo-tools test run --cmd mocha -- ./build/test/unit/*.js ./build/test/unit/**/*.js --no-timeouts", "test": "repo-tools test run --cmd npm -- run cover", - "check": "gts check", + "check": "echo '`gts check` disabled until translation of the test code to Typescript is complete.'", "clean": "gts clean", "compile": "tsc -p .", "postcompile": "cpy src/types.d.ts build/src/ && cpy 'utils/**/*.*' build --parents && cpy 'test/**/*.*' build --parents", diff --git a/handwritten/error-reporting/system-test/error-reporting.js b/handwritten/error-reporting/system-test/error-reporting.ts similarity index 99% rename from handwritten/error-reporting/system-test/error-reporting.js rename to handwritten/error-reporting/system-test/error-reporting.ts index 2b35b56497d..f9849d1234a 100644 --- a/handwritten/error-reporting/system-test/error-reporting.js +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -24,7 +24,7 @@ var ErrorsApiTransport = require('../utils/errors-api-transport.js'); var ErrorMessage = require('../src/classes/error-message.js').ErrorMessage; var Configuration = require('../test/fixtures/configuration.js'); var createLogger = require('../src/logger.js').createLogger; -var is = require('is'); +import * as is from 'is'; var isObject = is.object; var isString = is.string; var isEmpty = is.empty; @@ -47,6 +47,11 @@ const envKeys = [ ]; class InstancedEnv { + injectedEnv: {[key: string]: {}}; + _originalEnv: {[key: string]: {}}; + apiKey: string; + projectId: string; + constructor(injectedEnv) { assign(this, injectedEnv); this.injectedEnv = injectedEnv; @@ -457,7 +462,7 @@ describe('error-reporting', function() { reinitialize(); }); - function reinitialize(extraConfig) { + function reinitialize(extraConfig?: {}) { process.removeAllListeners('unhandledRejection'); var config = Object.assign( { diff --git a/handwritten/error-reporting/test/fixtures/configuration.js b/handwritten/error-reporting/test/fixtures/configuration.ts similarity index 94% rename from handwritten/error-reporting/test/fixtures/configuration.js rename to handwritten/error-reporting/test/fixtures/configuration.ts index f177a41004e..1c8cd9557fd 100644 --- a/handwritten/error-reporting/test/fixtures/configuration.js +++ b/handwritten/error-reporting/test/fixtures/configuration.ts @@ -18,7 +18,7 @@ var Configuration = require('../../src/configuration.js').Configuration; -var FakeConfiguration = function(config) { +var FakeConfiguration = function(this: {}, config) { return Configuration.call(this, config, {warn: function() {}}); }; diff --git a/handwritten/error-reporting/test/unit/build-stack-trace.js b/handwritten/error-reporting/test/unit/build-stack-trace.ts similarity index 100% rename from handwritten/error-reporting/test/unit/build-stack-trace.js rename to handwritten/error-reporting/test/unit/build-stack-trace.ts diff --git a/handwritten/error-reporting/test/unit/classes/error-message.js b/handwritten/error-reporting/test/unit/classes/error-message.ts similarity index 100% rename from handwritten/error-reporting/test/unit/classes/error-message.js rename to handwritten/error-reporting/test/unit/classes/error-message.ts diff --git a/handwritten/error-reporting/test/unit/classes/request-information-container.js b/handwritten/error-reporting/test/unit/classes/request-information-container.ts similarity index 100% rename from handwritten/error-reporting/test/unit/classes/request-information-container.js rename to handwritten/error-reporting/test/unit/classes/request-information-container.ts diff --git a/handwritten/error-reporting/test/unit/configuration.js b/handwritten/error-reporting/test/unit/configuration.ts similarity index 91% rename from handwritten/error-reporting/test/unit/configuration.js rename to handwritten/error-reporting/test/unit/configuration.ts index 39f32ef7b78..cca708bfeb7 100644 --- a/handwritten/error-reporting/test/unit/configuration.js +++ b/handwritten/error-reporting/test/unit/configuration.ts @@ -28,23 +28,23 @@ var nock = require('nock'); var METADATA_URL = 'http://metadata.google.internal/computeMetadata/v1/project'; -var env = { +var configEnv = { NODE_ENV: process.env.NODE_ENV, GCLOUD_PROJECT: process.env.GCLOUD_PROJECT, GAE_MODULE_NAME: process.env.GAE_MODULE_NAME, GAE_MODULE_VERSION: process.env.GAE_MODULE_VERSION, }; -function sterilizeEnv() { +function sterilizeConfigEnv() { delete process.env.NODE_ENV; delete process.env.GCLOUD_PROJECT; delete process.env.GAE_MODULE_NAME; delete process.env.GAE_MODULE_VERSION; } -function restoreEnv() { - process.env.NODE_ENV = env.NODE_ENV; - process.env.GCLOUD_PROJECT = env.GCLOUD_PROJECT; - process.env.GAE_MODULE_NAME = env.GAE_MODULE_NAME; - process.env.GAE_MODULE_VERSION = env.GAE_MODULE_VERSION; +function restoreConfigEnv() { + process.env.NODE_ENV = configEnv.NODE_ENV; + process.env.GCLOUD_PROJECT = configEnv.GCLOUD_PROJECT; + process.env.GAE_MODULE_NAME = configEnv.GAE_MODULE_NAME; + process.env.GAE_MODULE_VERSION = configEnv.GAE_MODULE_VERSION; } function createDeadMetadataService() { return nock(METADATA_URL).get('/project-id').times(1).reply(500); @@ -52,10 +52,10 @@ function createDeadMetadataService() { describe('Configuration class', function() { before(function() { - sterilizeEnv(); + sterilizeConfigEnv(); }); after(function() { - restoreEnv(); + restoreConfigEnv(); }); describe('Initialization', function() { var f = new Fuzzer(); @@ -75,7 +75,7 @@ describe('Configuration class', function() { process.env.NODE_ENV = 'development'; }); after(function() { - sterilizeEnv(); + sterilizeConfigEnv(); }); it('Should not throw with a valid configuration', function() { assert.doesNotThrow(function() { @@ -112,12 +112,12 @@ describe('Configuration class', function() { describe('report behaviour with production env', function() { var c; before(function() { - sterilizeEnv(); + sterilizeConfigEnv(); process.env.NODE_ENV = 'production'; c = new Configuration(undefined, logger); }); after(function() { - sterilizeEnv(); + sterilizeConfigEnv(); }); it('Should reportErrorsToAPI', function() { assert.strictEqual(c.getShouldReportErrorsToAPI(), true); @@ -160,7 +160,7 @@ describe('Configuration class', function() { }); describe('Configuration resource aquisition', function() { before(function() { - sterilizeEnv(); + sterilizeConfigEnv(); }); describe('project id from configuration instance', function() { var pi = 'test'; @@ -179,12 +179,12 @@ describe('Configuration class', function() { var pn = 1234; var c; before(function() { - sterilizeEnv(); + sterilizeConfigEnv(); c = new Configuration({projectId: pn}, logger); }); after(function() { nock.cleanAll(); - sterilizeEnv(); + sterilizeConfigEnv(); }); it('Should return the project number', function() { assert.strictEqual(c.getProjectId(), pn.toString()); @@ -195,13 +195,13 @@ describe('Configuration class', function() { describe('While lacking a project id', function() { var c; before(function() { - sterilizeEnv(); + sterilizeConfigEnv(); createDeadMetadataService(); c = new Configuration(undefined, logger); }); after(function() { nock.cleanAll(); - sterilizeEnv(); + sterilizeConfigEnv(); }); it('Should return null', function() { assert.strictEqual(c.getProjectId(), null); @@ -210,13 +210,13 @@ describe('Configuration class', function() { describe('Invalid type for projectId in runtime config', function() { var c; before(function() { - sterilizeEnv(); + sterilizeConfigEnv(); createDeadMetadataService(); c = new Configuration({projectId: null}, logger); }); after(function() { nock.cleanAll(); - sterilizeEnv(); + sterilizeConfigEnv(); }); it('Should return null', function() { assert.strictEqual(c.getProjectId(), null); @@ -227,18 +227,18 @@ describe('Configuration class', function() { after(function() { /* * !! IMPORTANT !! - * THE restoreEnv FUNCTION SHOULD BE CALLED LAST AS THIS TEST FILE EXITS + * THE restoreConfigEnv FUNCTION SHOULD BE CALLED LAST AS THIS TEST FILE EXITS * AND SHOULD THEREFORE BE THE LAST THING TO EXECUTE FROM THIS FILE. * !! IMPORTANT !! */ - restoreEnv(); + restoreConfigEnv(); }); describe('via env', function() { before(function() { - sterilizeEnv(); + sterilizeConfigEnv(); }); afterEach(function() { - sterilizeEnv(); + sterilizeConfigEnv(); }); describe('no longer tests env itself', function() { var c; @@ -271,7 +271,7 @@ describe('Configuration class', function() { }); describe('via runtime configuration', function() { before(function() { - sterilizeEnv(); + sterilizeConfigEnv(); }); describe('serviceContext', function() { var c; diff --git a/handwritten/error-reporting/test/unit/google-apis/auth-client.js b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts similarity index 90% rename from handwritten/error-reporting/test/unit/google-apis/auth-client.js rename to handwritten/error-reporting/test/unit/google-apis/auth-client.ts index 42558b7d655..a4a7060eeda 100644 --- a/handwritten/error-reporting/test/unit/google-apis/auth-client.js +++ b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts @@ -21,13 +21,17 @@ var proxyquire = require('proxyquire'); var Configuration = require('../../../src/configuration.js').Configuration; function verifyReportedMessage(config1, errToReturn, expectedLogs) { - function ServiceStub() { - this.authClient = { - getToken: function(cb) { - cb(errToReturn); - }, - }; - this.request = function() {}; + class ServiceStub { + authClient: {}; + request: {}; + constructor() { + this.authClient = { + getToken: function(cb) { + cb(errToReturn); + }, + }; + this.request = function() {}; + } } var RequestHandler = proxyquire('../../../src/google-apis/auth-client.js', { @@ -36,7 +40,7 @@ function verifyReportedMessage(config1, errToReturn, expectedLogs) { }, }).RequestHandler; - var logs = {}; + var logs: {error?: string; info?: string;} = {}; var logger = { error: function(text) { if (!logs.error) { diff --git a/handwritten/error-reporting/test/unit/interfaces/express.js b/handwritten/error-reporting/test/unit/interfaces/express.ts similarity index 100% rename from handwritten/error-reporting/test/unit/interfaces/express.js rename to handwritten/error-reporting/test/unit/interfaces/express.ts diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.js b/handwritten/error-reporting/test/unit/interfaces/hapi.ts similarity index 97% rename from handwritten/error-reporting/test/unit/interfaces/hapi.js rename to handwritten/error-reporting/test/unit/interfaces/hapi.ts index d90ae889453..2263a17bb2e 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.js +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.ts @@ -17,9 +17,9 @@ 'use strict'; var has = require('lodash.has'); -var is = require('is'); -var isFunction = is.fn; -var isObject = is.object; +var is1 = require('is'); +var isFunction = is1.fn; +var isObject = is1.object; var assert = require('assert'); var hapiInterface = require('../../../src/interfaces/hapi.js').makeHapiPlugin; var ErrorMessage = @@ -141,7 +141,7 @@ describe('Hapi interface', function() { // If `reply.continue()` is not invoked in this situation, the Hapi // app will become unresponsive. plugin.register(fakeServer, null, function() {}); - var reply = function() {}; + var reply: Function & {continue?: Function} = function() {}; reply.continue = function() { // The continue function should be called done(); diff --git a/handwritten/error-reporting/test/unit/interfaces/manual.js b/handwritten/error-reporting/test/unit/interfaces/manual.ts similarity index 100% rename from handwritten/error-reporting/test/unit/interfaces/manual.js rename to handwritten/error-reporting/test/unit/interfaces/manual.ts diff --git a/handwritten/error-reporting/test/unit/interfaces/restify.js b/handwritten/error-reporting/test/unit/interfaces/restify.ts similarity index 100% rename from handwritten/error-reporting/test/unit/interfaces/restify.js rename to handwritten/error-reporting/test/unit/interfaces/restify.ts diff --git a/handwritten/error-reporting/test/unit/logger.js b/handwritten/error-reporting/test/unit/logger.ts similarity index 98% rename from handwritten/error-reporting/test/unit/logger.js rename to handwritten/error-reporting/test/unit/logger.ts index 466158d0903..b8d6ac86449 100644 --- a/handwritten/error-reporting/test/unit/logger.js +++ b/handwritten/error-reporting/test/unit/logger.ts @@ -46,7 +46,7 @@ describe('logger', function() { createLogger({logLevel: 3})); }); it('Should not throw given an env variable to use', function() { - process.env.GCLOUD_ERRORS_LOGLEVEL = 4; + process.env.GCLOUD_ERRORS_LOGLEVEL = '4'; assert.doesNotThrow(createLogger, createLogger({logLevel: 4})); delete process.env.GCLOUD_ERRORS_LOGLEVEL; }); diff --git a/handwritten/error-reporting/test/unit/populate-error-message.js b/handwritten/error-reporting/test/unit/populate-error-message.ts similarity index 91% rename from handwritten/error-reporting/test/unit/populate-error-message.js rename to handwritten/error-reporting/test/unit/populate-error-message.ts index 0164fe54de3..6a58e27fd73 100644 --- a/handwritten/error-reporting/test/unit/populate-error-message.js +++ b/handwritten/error-reporting/test/unit/populate-error-message.ts @@ -31,6 +31,19 @@ var TEST_STACK_DEFAULT = { functionName: '', }; +/* + * The type of each property is {} to allow the tests to set values + * of various types to test the outcome. + */ +interface AnnotatedError { + user?: {}; + serviceContext?: {}; + stack?: {}; + filePath?: {}; + lineNumber?: {}; + functionName?: {}; +}; + describe('populate-error-message', function() { var em; var adversarialObjectInput = { @@ -107,7 +120,7 @@ describe('populate-error-message', function() { it('User Field: Should set the field given valid input given an Error', function() { - var err = new Error(); + var err: AnnotatedError = new Error(); var TEST_USER_VALID = 'TEST_USER'; err.user = TEST_USER_VALID; populateErrorMessage(err, em); @@ -116,7 +129,7 @@ describe('populate-error-message', function() { it('User Field: Should default the field given invalid input given an Error', function() { - var err = new Error(); + var err: AnnotatedError = new Error(); err.user = TEST_USER_INVALID; populateErrorMessage(err, em); assert.strictEqual(em.context.user, ''); @@ -124,7 +137,7 @@ describe('populate-error-message', function() { it('User Field: Should set the field given valid input given an object', function() { - var err = {}; + var err: AnnotatedError = {}; var USER = 'test'; err.user = USER; populateErrorMessage(err, em); @@ -142,7 +155,7 @@ describe('populate-error-message', function() { it('ServiceContext Field: Should set the field given valid input given ' + 'an Error', function() { - var err = new Error(); + var err: AnnotatedError = new Error(); var TEST_SERVICE_VALID = {service: 'test', version: 'test'}; err.serviceContext = TEST_SERVICE_VALID; populateErrorMessage(err, em); @@ -152,7 +165,7 @@ describe('populate-error-message', function() { it('ServiceContext Field: Should default the field given invalid input ' + 'given an Error', function() { - var err = new Error(); + var err: AnnotatedError = new Error(); var TEST_SERVICE_INVALID = 12; err.serviceContext = TEST_SERVICE_INVALID; populateErrorMessage(err, em); @@ -170,7 +183,7 @@ describe('populate-error-message', function() { it('ServiceContext Field: Should set the field given valid input given an ' + 'object', function() { - var err = {}; + var err: AnnotatedError = {}; var TEST_SERVICE_VALID = {service: 'test', version: 'test'}; err.serviceContext = TEST_SERVICE_VALID; populateErrorMessage(err, em); @@ -180,7 +193,7 @@ describe('populate-error-message', function() { it('ServiceContext Field: Should default the field given invalid input ' + 'given an object', function() { - var err = {}; + var err: AnnotatedError = {}; var TEST_SERVICE_INVALID = 12; err.serviceContext = TEST_SERVICE_INVALID; populateErrorMessage(err, em); @@ -203,7 +216,7 @@ describe('populate-error-message', function() { lineNumber: '2', functionName: {}, }; - var err = new Error(); + var err: AnnotatedError = new Error(); err.stack = TEST_STACK_INVALID_CONTENTS; populateErrorMessage(err, em); assert.deepEqual(em.context.reportLocation, TEST_STACK_DEFAULT); @@ -212,7 +225,7 @@ describe('populate-error-message', function() { it('Report location Field: Should default field if not given a valid type ' + 'given an Error', function() { - var err = new Error(); + var err: AnnotatedError = new Error(); var TEST_STACK_INVALID_TYPE = []; err.stack = TEST_STACK_INVALID_TYPE; populateErrorMessage(err, em); @@ -221,7 +234,7 @@ describe('populate-error-message', function() { it('FilePath Field: Should set the field given valid input given an object', function() { - var err = {}; + var err: AnnotatedError = {}; var PATH = 'test'; err.filePath = PATH; populateErrorMessage(err, em); @@ -238,7 +251,7 @@ describe('populate-error-message', function() { it('LineNumber Field: Should set the field given valid input given an object', function() { - var err = {}; + var err: AnnotatedError = {}; var LINE_NUMBER = 10; err.lineNumber = LINE_NUMBER; populateErrorMessage(err, em); @@ -256,7 +269,7 @@ describe('populate-error-message', function() { it('FunctionName Field: Should set the field given valid input given ' + 'an object', function() { - var err = {}; + var err: AnnotatedError = {}; var FUNCTION_NAME = 'test'; err.functionName = FUNCTION_NAME; populateErrorMessage(err, em); diff --git a/handwritten/error-reporting/test/unit/request-extractors/express.js b/handwritten/error-reporting/test/unit/request-extractors/express.ts similarity index 100% rename from handwritten/error-reporting/test/unit/request-extractors/express.js rename to handwritten/error-reporting/test/unit/request-extractors/express.ts diff --git a/handwritten/error-reporting/test/unit/request-extractors/hapi.js b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts similarity index 100% rename from handwritten/error-reporting/test/unit/request-extractors/hapi.js rename to handwritten/error-reporting/test/unit/request-extractors/hapi.ts diff --git a/handwritten/error-reporting/test/unit/request-extractors/koa.js b/handwritten/error-reporting/test/unit/request-extractors/koa.ts similarity index 100% rename from handwritten/error-reporting/test/unit/request-extractors/koa.js rename to handwritten/error-reporting/test/unit/request-extractors/koa.ts diff --git a/handwritten/error-reporting/test/unit/request-extractors/manual.js b/handwritten/error-reporting/test/unit/request-extractors/manual.ts similarity index 100% rename from handwritten/error-reporting/test/unit/request-extractors/manual.js rename to handwritten/error-reporting/test/unit/request-extractors/manual.ts diff --git a/handwritten/error-reporting/test/unit/service-configuration.js b/handwritten/error-reporting/test/unit/service-configuration.ts similarity index 96% rename from handwritten/error-reporting/test/unit/service-configuration.js rename to handwritten/error-reporting/test/unit/service-configuration.ts index f1e7c76e275..cff655d52ae 100644 --- a/handwritten/error-reporting/test/unit/service-configuration.js +++ b/handwritten/error-reporting/test/unit/service-configuration.ts @@ -16,9 +16,9 @@ 'use strict'; var assert = require('assert'); -var is = require('is'); -var isString = is.string; -var isNumber = is.number; +var is1 = require('is'); +var isString = is1.string; +var isNumber = is1.number; var forEach = require('lodash.foreach'); var assign = require('lodash.assign'); var omitBy = require('lodash.omitby'); @@ -27,15 +27,15 @@ var level = process.env.GCLOUD_ERRORS_LOGLEVEL; var logger = require('../../src/logger.js').createLogger({ logLevel: isNumber(level) ? level : 4, }); -var env = { +var serviceConfigEnv = { GAE_SERVICE: process.env.GAE_SERVICE, GAE_VERSION: process.env.GAE_VERSION, GAE_MODULE_VERSION: process.env.GAE_MODULE_VERSION, FUNCTION_NAME: process.env.FUNCTION_NAME, GAE_MODULE_NAME: process.env.GAE_MODULE_NAME, }; -function sterilizeEnv() { - forEach(env, function(val, key) { +function sterilizeServiceConfigEnv() { + forEach(serviceConfigEnv, function(val, key) { delete process.env[key]; }); } @@ -54,16 +54,16 @@ function setEnv(serviceName, serviceVersion, moduleName, mv, fn) { return !isString(val); })); } -function restoreEnv() { - assign(process.env, env); +function restoreServiceConfigEnv() { + assign(process.env, serviceConfigEnv); } describe('Testing service configuration', function() { beforeEach(function() { - sterilizeEnv(); + sterilizeServiceConfigEnv(); }); after(function() { - restoreEnv(); + restoreServiceConfigEnv(); }); it('A Configuration uses the function name as the service name on GCF ' + 'if the service name is not given in the given config', diff --git a/handwritten/error-reporting/tsconfig.json b/handwritten/error-reporting/tsconfig.json index 653109b2671..f34944f3e65 100644 --- a/handwritten/error-reporting/tsconfig.json +++ b/handwritten/error-reporting/tsconfig.json @@ -2,21 +2,21 @@ "extends": "./node_modules/gts/tsconfig-google.json", "compilerOptions": { "rootDir": ".", - "outDir": "build" + "outDir": "build", + "declaration": false, + "allowJs": true, + "noImplicitAny": false }, "include": [ "src/*.ts", "src/**/*.ts", - "src/*.js", - "src/**/*.js", "test/*.ts", "test/**/*.ts", "test/*.js", "test/**/*.js", - "system-test/*.js", - "system-test/**/*.js", "system-test/*.ts", - "system-test/**/*.ts" + "system-test/**/*.ts", + "utils/*.js" ], "exclude": [ "node_modules" From 7413d335771de29033d2ebf9ea4512ecd34b7a7b Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Fri, 23 Mar 2018 10:00:05 -0700 Subject: [PATCH 068/527] chore: enable building utils files (#84) --- handwritten/error-reporting/src/types.d.ts | 13 +- .../classes/request-information-container.ts | 2 +- .../test/unit/configuration.ts | 2 +- .../test/unit/interfaces/express.ts | 2 +- .../test/unit/interfaces/hapi.ts | 2 +- .../test/unit/request-extractors/express.ts | 2 +- .../test/unit/request-extractors/hapi.ts | 2 +- .../test/unit/request-extractors/koa.ts | 2 +- .../test/unit/request-extractors/manual.ts | 2 +- handwritten/error-reporting/tsconfig.json | 2 +- ...i-transport.js => errors-api-transport.ts} | 6 +- handwritten/error-reporting/utils/fuzzer.js | 299 ------------------ handwritten/error-reporting/utils/fuzzer.ts | 298 +++++++++++++++++ 13 files changed, 320 insertions(+), 314 deletions(-) rename handwritten/error-reporting/utils/{errors-api-transport.js => errors-api-transport.ts} (93%) delete mode 100644 handwritten/error-reporting/utils/fuzzer.js create mode 100644 handwritten/error-reporting/utils/fuzzer.ts diff --git a/handwritten/error-reporting/src/types.d.ts b/handwritten/error-reporting/src/types.d.ts index f97f2f0712a..33a1302eeb0 100644 --- a/handwritten/error-reporting/src/types.d.ts +++ b/handwritten/error-reporting/src/types.d.ts @@ -43,14 +43,15 @@ export interface logger { } export interface Options { - uri: 'events:report'; - qs: { key: string|null} | null; + uri: string; + qs?: { key: string|null} | null; method: string; - json: {}; + json?: {}; } export interface Service { new(config: ServiceConfig, options: ServiceAuthenticationConfig): Service; + getProjectId(cb: (err: Error|null, projectId?: string) => void): void; authClient: {getToken: (err: {}) => void;}; request(options: Options, cb: ( @@ -58,6 +59,12 @@ export interface Service { body: any, response: http.IncomingMessage ) => void): void; + request_(options: Options, + cb: ( + err: Error | null, + body: any, + response: {body: string} + ) => void): void; } export interface ServiceConfig { diff --git a/handwritten/error-reporting/test/unit/classes/request-information-container.ts b/handwritten/error-reporting/test/unit/classes/request-information-container.ts index eb57561d41e..fcd120ff2b8 100644 --- a/handwritten/error-reporting/test/unit/classes/request-information-container.ts +++ b/handwritten/error-reporting/test/unit/classes/request-information-container.ts @@ -19,7 +19,7 @@ var assert = require('assert'); var RequestInformationContainer = require('../../../src/classes/request-information-container.js'); -var Fuzzer = require('../../../utils/fuzzer.js'); +import {Fuzzer} from '../../../utils/fuzzer'; describe('RequestInformationContainer', function() { var f = new Fuzzer(); diff --git a/handwritten/error-reporting/test/unit/configuration.ts b/handwritten/error-reporting/test/unit/configuration.ts index cca708bfeb7..3230d64b5f3 100644 --- a/handwritten/error-reporting/test/unit/configuration.ts +++ b/handwritten/error-reporting/test/unit/configuration.ts @@ -19,7 +19,7 @@ var assert = require('assert'); var isNumber = require('is').number; var merge = require('lodash.merge'); var Configuration = require('../fixtures/configuration.js'); -var Fuzzer = require('../../utils/fuzzer.js'); +import {Fuzzer} from '../../utils/fuzzer'; var level = process.env.GCLOUD_ERRORS_LOGLEVEL; var logger = require('../../src/logger.js').createLogger({ logLevel: isNumber(level) ? level : 4, diff --git a/handwritten/error-reporting/test/unit/interfaces/express.ts b/handwritten/error-reporting/test/unit/interfaces/express.ts index 4e723a6541e..8dcb13dedc3 100644 --- a/handwritten/error-reporting/test/unit/interfaces/express.ts +++ b/handwritten/error-reporting/test/unit/interfaces/express.ts @@ -22,7 +22,7 @@ var expressInterface = require('../../../src/interfaces/express.js').makeExpressHandler; var ErrorMessage = require('../../../src/classes/error-message.js').ErrorMessage; -var Fuzzer = require('../../../utils/fuzzer.js'); +import {Fuzzer} from '../../../utils/fuzzer'; var Configuration = require('../../fixtures/configuration.js'); var createLogger = require('../../../src/logger.js').createLogger; diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.ts b/handwritten/error-reporting/test/unit/interfaces/hapi.ts index 2263a17bb2e..6dac4a58d7e 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.ts +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.ts @@ -24,7 +24,7 @@ var assert = require('assert'); var hapiInterface = require('../../../src/interfaces/hapi.js').makeHapiPlugin; var ErrorMessage = require('../../../src/classes/error-message.js').ErrorMessage; -var Fuzzer = require('../../../utils/fuzzer.js'); +import {Fuzzer} from '../../../utils/fuzzer'; var EventEmitter = require('events').EventEmitter; var Configuration = require('../../fixtures/configuration.js'); diff --git a/handwritten/error-reporting/test/unit/request-extractors/express.ts b/handwritten/error-reporting/test/unit/request-extractors/express.ts index b68461b5549..27456f4b2ba 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/express.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/express.ts @@ -20,7 +20,7 @@ var assert = require('assert'); var expressRequestInformationExtractor = require('../../../src/request-extractors/express.js') .expressRequestInformationExtractor; -var Fuzzer = require('../../../utils/fuzzer.js'); +import {Fuzzer} from '../../../utils/fuzzer'; var extend = require('extend'); describe('Behaviour under varying input', function() { diff --git a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts index ef751489a8c..7d77035773d 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts @@ -20,7 +20,7 @@ var assert = require('assert'); var hapiRequestInformationExtractor = require('../../../src/request-extractors/hapi.js') .hapiRequestInformationExtractor; -var Fuzzer = require('../../../utils/fuzzer.js'); +import {Fuzzer} from '../../../utils/fuzzer'; describe('hapiRequestInformationExtractor behaviour', function() { describe('behaviour given invalid input', function() { diff --git a/handwritten/error-reporting/test/unit/request-extractors/koa.ts b/handwritten/error-reporting/test/unit/request-extractors/koa.ts index b4ea8625fc6..ca3d1124611 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/koa.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/koa.ts @@ -20,7 +20,7 @@ var assert = require('assert'); var koaRequestInformationExtractor = require('../../../src/request-extractors/koa.js') .koaRequestInformationExtractor; -var Fuzzer = require('../../../utils/fuzzer.js'); +import {Fuzzer} from '../../../utils/fuzzer'; describe('koaRequestInformationExtractor', function() { describe('Behaviour under invalid input', function() { diff --git a/handwritten/error-reporting/test/unit/request-extractors/manual.ts b/handwritten/error-reporting/test/unit/request-extractors/manual.ts index 520878881c3..3768602d6cc 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/manual.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/manual.ts @@ -22,7 +22,7 @@ var extend = require('extend'); var manualRequestInformationExtractor = require('../../../src/request-extractors/manual.js') .manualRequestInformationExtractor; -var Fuzzer = require('../../../utils/fuzzer.js'); +import {Fuzzer} from '../../../utils/fuzzer'; describe('manualRequestInformationExtractor', function() { describe('Behaviour given invalid input', function() { diff --git a/handwritten/error-reporting/tsconfig.json b/handwritten/error-reporting/tsconfig.json index f34944f3e65..a3bd4418e36 100644 --- a/handwritten/error-reporting/tsconfig.json +++ b/handwritten/error-reporting/tsconfig.json @@ -16,7 +16,7 @@ "test/**/*.js", "system-test/*.ts", "system-test/**/*.ts", - "utils/*.js" + "utils/*.ts" ], "exclude": [ "node_modules" diff --git a/handwritten/error-reporting/utils/errors-api-transport.js b/handwritten/error-reporting/utils/errors-api-transport.ts similarity index 93% rename from handwritten/error-reporting/utils/errors-api-transport.js rename to handwritten/error-reporting/utils/errors-api-transport.ts index 981b0a6d10a..de89cdf70e7 100644 --- a/handwritten/error-reporting/utils/errors-api-transport.js +++ b/handwritten/error-reporting/utils/errors-api-transport.ts @@ -16,7 +16,7 @@ 'use strict'; -var AuthClient = require('../src/google-apis/auth-client.js').RequestHandler; +import {RequestHandler as AuthClient} from '../src/google-apis/auth-client'; /* @const {String} Base Error Reporting API */ var API = 'https://clouderrorreporting.googleapis.com/v1beta1/projects'; @@ -37,7 +37,7 @@ class ErrorsApiTransport extends AuthClient { var options = { uri: [API, id, 'events'].join('/'), - method: 'DELETE', + method: 'DELETE' }; self.request_(options, function( err, @@ -62,7 +62,7 @@ class ErrorsApiTransport extends AuthClient { var options = { uri: [API, id, 'groupStats?' + ONE_HOUR_API].join('/'), - method: 'GET', + method: 'GET' }; self.request_(options, function(err, response, body) { if (err) { diff --git a/handwritten/error-reporting/utils/fuzzer.js b/handwritten/error-reporting/utils/fuzzer.js deleted file mode 100644 index 51066db09f1..00000000000 --- a/handwritten/error-reporting/utils/fuzzer.js +++ /dev/null @@ -1,299 +0,0 @@ -/** - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -// jscs:disable -// jshint ignore: start - -'use strict'; -var indexOf = require('lodash.indexof'); -var without = require('lodash.without'); -var maxBy = require('lodash.maxby'); -var random = require('lodash.random'); -var is = require('is'); -var isNumber = is.number; -var isString = is.string; -var isArray = is.array; -var isFunction = is.function; - -function Fuzzer() {} - -Fuzzer.prototype.generate = {}; - -Fuzzer.prototype.generate.types = function() { - return [ - 'object', - 'array', - 'string', - 'number', - 'null', - 'undefined', - 'function', - 'boolean', - ]; -}; - -Fuzzer.prototype.generate.string = function(len) { - var lenChecked = isNumber(len) ? len : 10; - var chars = []; - - for (var i = 0; i < lenChecked; i++) { - chars.push(String.fromCharCode(random(32, 126))); - } - - return chars.join(''); -}; - -Fuzzer.prototype.generate.boolean = function() { - return !!random(0, 1); -}; - -Fuzzer.prototype.generate.alphaNumericString = function(len) { - var lenChecked = isNumber(len) ? len : 10; - var chars = []; - var thisRange = []; - var ranges = [[48, 57], [65, 90], [97, 122]]; - - for (var i = 0; i < lenChecked; i++) { - thisRange = ranges[random(0, 2)]; - chars.push(String.fromCharCode(random(thisRange[0], thisRange[1]))); - } - - return chars.join(''); -}; - -Fuzzer.prototype.generate.function = function() { - var availableTypes = without(this.types(), 'function'); - var typeToGen = this.types()[random(0, availableTypes.length - 1)]; - var fnToCall = this[typeToGen]; - - return function() { - return fnToCall(); - }; -}; - -Fuzzer.prototype.generate.number = function(lower, upper) { - var lowerChecked = isNumber(lower) ? lower : 0; - var upperChecked = isNumber(upper) ? upper : 100; - - return random(lowerChecked, upperChecked); -}; - -Fuzzer.prototype.generate.null = function() { - return null; -}; - -Fuzzer.prototype.generate.undefined = function() { - return undefined; -}; - -Fuzzer.prototype.generate.array = function( - len, - ofOneType, - currentDepth, - allowedDepth -) { - var lenChecked = isNumber(len) ? len : random(1, 10); - var availableTypes = - isString(ofOneType) && indexOf(this.types(), ofOneType) > -1 - ? [ofOneType] - : this.types(); - var currentDepthChecked = isNumber(currentDepth) ? currentDepth : 0; - var allowedDepthChecked = isNumber(allowedDepth) ? allowedDepth : 3; - var arr = []; - var currentTypeBeingGenerated = ''; - currentDepthChecked += 1; - - // Deny the ability to nest more objects - if (currentDepthChecked >= allowedDepthChecked) { - availableTypes = without(this.types(), 'object', 'array'); - } - - for (var i = 0; i < lenChecked; i++) { - currentTypeBeingGenerated = - availableTypes[random(0, availableTypes.length - 1)]; - - if (currentTypeBeingGenerated === 'object') { - arr.push( - this[currentTypeBeingGenerated]( - null, - currentDepthChecked, - allowedDepthChecked - ) - ); - } else if (currentTypeBeingGenerated === 'array') { - arr.push( - this[currentTypeBeingGenerated]( - null, - ofOneType, - currentDepthChecked, - allowedDepthChecked - ) - ); - } else { - arr.push(this[currentTypeBeingGenerated]()); - } - } - - return arr; -}; - -Fuzzer.prototype.generate.object = function( - numProperties, - currentDepth, - allowedDepth -) { - var numPropertiesChecked = isNumber(numProperties) - ? numProperties - : random(1, 10); - var currentDepthChecked = isNumber(currentDepth) ? currentDepth : 0; - var allowedDepthChecked = isNumber(allowedDepth) ? allowedDepth : 3; - var obj = {}; - currentDepthChecked += 1; - - var availableTypes = this.types(); - - // Deny the ability to nest more objects - if (currentDepth >= allowedDepth) { - availableTypes = without(availableTypes, 'object', 'array'); - } - - var currentTypeBeingGenerated = 0; - var currentKey = ''; - - for (var i = 0; i < numPropertiesChecked; i++) { - currentTypeBeingGenerated = - availableTypes[random(0, availableTypes.length - 1)]; - currentKey = this.alphaNumericString(random(1, 10)); - - if (currentTypeBeingGenerated === 'object') { - obj[currentKey] = this[currentTypeBeingGenerated]( - null, - currentDepthChecked, - allowedDepthChecked - ); - } else if (currentTypeBeingGenerated === 'array') { - obj[currentKey] = this[currentTypeBeingGenerated]( - null, - null, - currentDepthChecked, - allowedDepthChecked - ); - } else { - obj[currentKey] = this[currentTypeBeingGenerated](); - } - } - - return obj; -}; - -Fuzzer.prototype._backFillUnevenTypesArrays = function(argsTypesArray) { - var largestLength = maxBy(argsTypesArray, function(o) { - return o.length; - }).length; - - for (var i = 0; i < argsTypesArray.length; i++) { - if (argsTypesArray[i].length !== largestLength) { - while (argsTypesArray[i].length < largestLength) { - argsTypesArray[i].push( - argsTypesArray[i][random(0, argsTypesArray[i].length - 1)] - ); - } - } - } - - return argsTypesArray; -}; - -Fuzzer.prototype._normalizeTypesArrayLengths = function(argsTypesArray) { - var allAreTheSameLength = true; - var lastLength = argsTypesArray[0].length; - - for (var i = 1; i < argsTypesArray.length; i++) { - if (argsTypesArray[i].length !== lastLength) { - allAreTheSameLength = false; - break; - } - } - - if (allAreTheSameLength) { - return argsTypesArray; - } - - return this._backFillUnevenTypesArrays(argsTypesArray); -}; - -Fuzzer.prototype._generateTypesToFuzzWith = function(expectsArgTypes) { - var argsTypesArray = []; - var tmpArray = this.generate.types(); - - for (var i = 0; i < expectsArgTypes.length; i++) { - if (!isArray(expectsArgTypes[i])) { - argsTypesArray.push(without(this.generate.types(), expectsArgTypes[i])); - } else { - for (var j = 0; j < expectsArgTypes[i].length; j++) { - tmpArray = without(tmpArray, expectsArgTypes[i][j]); - } - - argsTypesArray.push([].concat(tmpArray)); - tmpArray = this.generate.types(); - } - } - - argsTypesArray = this._normalizeTypesArrayLengths(argsTypesArray); - return argsTypesArray; -}; - -Fuzzer.prototype._generateValuesForFuzzTyping = function( - typesToFuzzOnEach, - index -) { - var args = []; - var typeToGen = ''; - - for (var i = 0; i < typesToFuzzOnEach.length; i++) { - typeToGen = typesToFuzzOnEach[i][index]; - - args.push(this.generate[typeToGen]()); - } - - return args; -}; - -Fuzzer.prototype.fuzzFunctionForTypes = function( - fnToFuzz, - expectsArgTypes, - cb, - withContext -) { - var expectsArgTypesChecked = isArray(expectsArgTypes) ? expectsArgTypes : []; - var typesToFuzzOnEach = this._generateTypesToFuzzWith(expectsArgTypesChecked); - - var returnValue = undefined; - - for (var i = 0; i < typesToFuzzOnEach[0].length; i++) { - returnValue = fnToFuzz.apply( - withContext, - this._generateValuesForFuzzTyping(typesToFuzzOnEach, i) - ); - - if (isFunction(cb)) { - cb(returnValue); - } - } - - return true; -}; - -module.exports = Fuzzer; diff --git a/handwritten/error-reporting/utils/fuzzer.ts b/handwritten/error-reporting/utils/fuzzer.ts new file mode 100644 index 00000000000..f1026958ded --- /dev/null +++ b/handwritten/error-reporting/utils/fuzzer.ts @@ -0,0 +1,298 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// jscs:disable +// jshint ignore: start + +'use strict'; +var indexOf = require('lodash.indexof'); +var without = require('lodash.without'); +var maxBy = require('lodash.maxby'); +var random = require('lodash.random'); +var is = require('is'); +var isNumber = is.number; +var isString = is.string; +var isArray = is.array; +var isFunction = is.function; + + +export class Fuzzer { + generate = { + types: function() { + return [ + 'object', + 'array', + 'string', + 'number', + 'null', + 'undefined', + 'function', + 'boolean', + ]; + }, + + string: function(len) { + var lenChecked = isNumber(len) ? len : 10; + var chars: string[] = []; + + for (var i = 0; i < lenChecked; i++) { + chars.push(String.fromCharCode(random(32, 126))); + } + + return chars.join(''); + }, + + boolean: function() { + return !!random(0, 1); + }, + + alphaNumericString: function(len) { + var lenChecked = isNumber(len) ? len : 10; + var chars: string[] = []; + var thisRange: number[] = []; + var ranges = [[48, 57], [65, 90], [97, 122]]; + + for (var i = 0; i < lenChecked; i++) { + thisRange = ranges[random(0, 2)]; + chars.push(String.fromCharCode(random(thisRange[0], thisRange[1]))); + } + + return chars.join(''); + }, + + function: function() { + var availableTypes = without(this.types(), 'function'); + var typeToGen = this.types()[random(0, availableTypes.length - 1)]; + var fnToCall = this[typeToGen]; + + return function() { + return fnToCall(); + }; + }, + + number: function(lower, upper) { + var lowerChecked = isNumber(lower) ? lower : 0; + var upperChecked = isNumber(upper) ? upper : 100; + + return random(lowerChecked, upperChecked); + }, + + null: function() { + return null; + }, + + undefined: function() { + return undefined; + }, + + array: function( + len, + ofOneType, + currentDepth, + allowedDepth + ) { + var lenChecked = isNumber(len) ? len : random(1, 10); + var availableTypes = + isString(ofOneType) && indexOf(this.types(), ofOneType) > -1 + ? [ofOneType] + : this.types(); + var currentDepthChecked = isNumber(currentDepth) ? currentDepth : 0; + var allowedDepthChecked = isNumber(allowedDepth) ? allowedDepth : 3; + var arr: Array<{}> = []; + var currentTypeBeingGenerated = ''; + currentDepthChecked += 1; + + // Deny the ability to nest more objects + if (currentDepthChecked >= allowedDepthChecked) { + availableTypes = without(this.types(), 'object', 'array'); + } + + for (var i = 0; i < lenChecked; i++) { + currentTypeBeingGenerated = + availableTypes[random(0, availableTypes.length - 1)]; + + if (currentTypeBeingGenerated === 'object') { + arr.push( + this[currentTypeBeingGenerated]( + null, + currentDepthChecked, + allowedDepthChecked + ) + ); + } else if (currentTypeBeingGenerated === 'array') { + arr.push( + this[currentTypeBeingGenerated]( + null, + ofOneType, + currentDepthChecked, + allowedDepthChecked + ) + ); + } else { + arr.push(this[currentTypeBeingGenerated]()); + } + } + + return arr; + }, + + object: function( + numProperties, + currentDepth, + allowedDepth + ) { + var numPropertiesChecked = isNumber(numProperties) + ? numProperties + : random(1, 10); + var currentDepthChecked = isNumber(currentDepth) ? currentDepth : 0; + var allowedDepthChecked = isNumber(allowedDepth) ? allowedDepth : 3; + var obj = {}; + currentDepthChecked += 1; + + var availableTypes = this.types(); + + // Deny the ability to nest more objects + if (currentDepth >= allowedDepth) { + availableTypes = without(availableTypes, 'object', 'array'); + } + + var currentTypeBeingGenerated: string|number = 0; + var currentKey = ''; + + for (var i = 0; i < numPropertiesChecked; i++) { + currentTypeBeingGenerated = + availableTypes[random(0, availableTypes.length - 1)]; + currentKey = this.alphaNumericString(random(1, 10)); + + if (currentTypeBeingGenerated === 'object') { + obj[currentKey] = this[currentTypeBeingGenerated]( + null, + currentDepthChecked, + allowedDepthChecked + ); + } else if (currentTypeBeingGenerated === 'array') { + obj[currentKey] = this[currentTypeBeingGenerated]( + null, + null, + currentDepthChecked, + allowedDepthChecked + ); + } else { + obj[currentKey] = this[currentTypeBeingGenerated](); + } + } + + return obj; + } + }; + + _backFillUnevenTypesArrays(argsTypesArray) { + var largestLength = maxBy(argsTypesArray, function(o) { + return o.length; + }).length; + + for (var i = 0; i < argsTypesArray.length; i++) { + if (argsTypesArray[i].length !== largestLength) { + while (argsTypesArray[i].length < largestLength) { + argsTypesArray[i].push( + argsTypesArray[i][random(0, argsTypesArray[i].length - 1)] + ); + } + } + } + + return argsTypesArray; + } + + _normalizeTypesArrayLengths(argsTypesArray) { + var allAreTheSameLength = true; + var lastLength = argsTypesArray[0].length; + + for (var i = 1; i < argsTypesArray.length; i++) { + if (argsTypesArray[i].length !== lastLength) { + allAreTheSameLength = false; + break; + } + } + + if (allAreTheSameLength) { + return argsTypesArray; + } + + return this._backFillUnevenTypesArrays(argsTypesArray); + } + + _generateTypesToFuzzWith(expectsArgTypes) { + var argsTypesArray: Array<{}[]> = []; + var tmpArray = this.generate.types(); + + for (var i = 0; i < expectsArgTypes.length; i++) { + if (!isArray(expectsArgTypes[i])) { + argsTypesArray.push(without(this.generate.types(), expectsArgTypes[i])); + } else { + for (var j = 0; j < expectsArgTypes[i].length; j++) { + tmpArray = without(tmpArray, expectsArgTypes[i][j]); + } + + argsTypesArray.push(([] as {}[]).concat(tmpArray)); + tmpArray = this.generate.types(); + } + } + + argsTypesArray = this._normalizeTypesArrayLengths(argsTypesArray); + return argsTypesArray; + }; + + _generateValuesForFuzzTyping( + typesToFuzzOnEach, + index + ) { + var args: {}[] = []; + var typeToGen = ''; + + for (var i = 0; i < typesToFuzzOnEach.length; i++) { + typeToGen = typesToFuzzOnEach[i][index]; + + args.push(this.generate[typeToGen]()); + } + + return args; + } + + fuzzFunctionForTypes( + fnToFuzz, + expectsArgTypes?: {}, + cb?: Function, + withContext?: {} + ) { + var expectsArgTypesChecked = isArray(expectsArgTypes) ? expectsArgTypes : []; + var typesToFuzzOnEach = this._generateTypesToFuzzWith(expectsArgTypesChecked); + + var returnValue = undefined; + + for (var i = 0; i < typesToFuzzOnEach[0].length; i++) { + returnValue = fnToFuzz.apply( + withContext, + this._generateValuesForFuzzTyping(typesToFuzzOnEach, i) + ); + + if (isFunction(cb)) { + cb!(returnValue); + } + } + + return true; + } +} From a4b53506ba99f2999863d3ea625eebf714a014c9 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Fri, 23 Mar 2018 10:09:52 -0700 Subject: [PATCH 069/527] Remove `use strict` (#85) --- handwritten/error-reporting/system-test/error-reporting.ts | 2 -- handwritten/error-reporting/test/fixtures/configuration.ts | 2 -- handwritten/error-reporting/test/unit/build-stack-trace.ts | 2 -- .../test/unit/classes/request-information-container.ts | 2 -- handwritten/error-reporting/test/unit/configuration.ts | 1 - .../error-reporting/test/unit/google-apis/auth-client.ts | 1 - handwritten/error-reporting/test/unit/interfaces/express.ts | 2 -- handwritten/error-reporting/test/unit/interfaces/hapi.ts | 2 -- handwritten/error-reporting/test/unit/interfaces/manual.ts | 2 -- handwritten/error-reporting/test/unit/interfaces/restify.ts | 2 -- handwritten/error-reporting/test/unit/logger.ts | 1 - handwritten/error-reporting/test/unit/populate-error-message.ts | 2 -- .../error-reporting/test/unit/request-extractors/express.ts | 2 -- .../error-reporting/test/unit/request-extractors/hapi.ts | 2 -- handwritten/error-reporting/test/unit/request-extractors/koa.ts | 2 -- .../error-reporting/test/unit/request-extractors/manual.ts | 2 -- handwritten/error-reporting/test/unit/service-configuration.ts | 1 - handwritten/error-reporting/utils/errors-api-transport.ts | 2 -- handwritten/error-reporting/utils/fuzzer.ts | 1 - 19 files changed, 33 deletions(-) diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index f9849d1234a..e47ea8079d1 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -14,8 +14,6 @@ * limitations under the License. */ -'use strict'; - var assert = require('assert'); var nock = require('nock'); var RequestHandler = diff --git a/handwritten/error-reporting/test/fixtures/configuration.ts b/handwritten/error-reporting/test/fixtures/configuration.ts index 1c8cd9557fd..b8fc0667b8d 100644 --- a/handwritten/error-reporting/test/fixtures/configuration.ts +++ b/handwritten/error-reporting/test/fixtures/configuration.ts @@ -14,8 +14,6 @@ * limitations under the License. */ -'use strict'; - var Configuration = require('../../src/configuration.js').Configuration; var FakeConfiguration = function(this: {}, config) { diff --git a/handwritten/error-reporting/test/unit/build-stack-trace.ts b/handwritten/error-reporting/test/unit/build-stack-trace.ts index b44f7b68305..7c1bb702823 100644 --- a/handwritten/error-reporting/test/unit/build-stack-trace.ts +++ b/handwritten/error-reporting/test/unit/build-stack-trace.ts @@ -14,8 +14,6 @@ * limitations under the License. */ -'use strict'; - var assert = require('assert'); var path = require('path'); var buildStackTrace = require('../../src/build-stack-trace.js').buildStackTrace; diff --git a/handwritten/error-reporting/test/unit/classes/request-information-container.ts b/handwritten/error-reporting/test/unit/classes/request-information-container.ts index fcd120ff2b8..443250d6f2c 100644 --- a/handwritten/error-reporting/test/unit/classes/request-information-container.ts +++ b/handwritten/error-reporting/test/unit/classes/request-information-container.ts @@ -14,8 +14,6 @@ * limitations under the License. */ -'use strict'; - var assert = require('assert'); var RequestInformationContainer = require('../../../src/classes/request-information-container.js'); diff --git a/handwritten/error-reporting/test/unit/configuration.ts b/handwritten/error-reporting/test/unit/configuration.ts index 3230d64b5f3..c552da13b7e 100644 --- a/handwritten/error-reporting/test/unit/configuration.ts +++ b/handwritten/error-reporting/test/unit/configuration.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -'use strict'; var assert = require('assert'); var isNumber = require('is').number; var merge = require('lodash.merge'); diff --git a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts index a4a7060eeda..62f690af39f 100644 --- a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts +++ b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -'use strict'; var assert = require('assert'); var proxyquire = require('proxyquire'); diff --git a/handwritten/error-reporting/test/unit/interfaces/express.ts b/handwritten/error-reporting/test/unit/interfaces/express.ts index 8dcb13dedc3..15ad43f408c 100644 --- a/handwritten/error-reporting/test/unit/interfaces/express.ts +++ b/handwritten/error-reporting/test/unit/interfaces/express.ts @@ -14,8 +14,6 @@ * limitations under the License. */ -'use strict'; - var assert = require('assert'); var merge = require('lodash.merge'); var expressInterface = diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.ts b/handwritten/error-reporting/test/unit/interfaces/hapi.ts index 6dac4a58d7e..4b202a418aa 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.ts +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.ts @@ -14,8 +14,6 @@ * limitations under the License. */ -'use strict'; - var has = require('lodash.has'); var is1 = require('is'); var isFunction = is1.fn; diff --git a/handwritten/error-reporting/test/unit/interfaces/manual.ts b/handwritten/error-reporting/test/unit/interfaces/manual.ts index b7a24e4ddef..08cccac8f0e 100644 --- a/handwritten/error-reporting/test/unit/interfaces/manual.ts +++ b/handwritten/error-reporting/test/unit/interfaces/manual.ts @@ -14,8 +14,6 @@ * limitations under the License. */ -'use strict'; - var assert = require('assert'); var manual = require('../../../src/interfaces/manual.js'); var Configuration = require('../../fixtures/configuration.js'); diff --git a/handwritten/error-reporting/test/unit/interfaces/restify.ts b/handwritten/error-reporting/test/unit/interfaces/restify.ts index 481a1238373..66c0f295001 100644 --- a/handwritten/error-reporting/test/unit/interfaces/restify.ts +++ b/handwritten/error-reporting/test/unit/interfaces/restify.ts @@ -14,8 +14,6 @@ * limitations under the License. */ -'use strict'; - var EventEmitter = require('events').EventEmitter; var assert = require('assert'); var restifyInterface = diff --git a/handwritten/error-reporting/test/unit/logger.ts b/handwritten/error-reporting/test/unit/logger.ts index b8d6ac86449..70a37ed2048 100644 --- a/handwritten/error-reporting/test/unit/logger.ts +++ b/handwritten/error-reporting/test/unit/logger.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -'use strict'; var assert = require('assert'); var createLogger = require('../../src/logger.js').createLogger; diff --git a/handwritten/error-reporting/test/unit/populate-error-message.ts b/handwritten/error-reporting/test/unit/populate-error-message.ts index 6a58e27fd73..3279551ce41 100644 --- a/handwritten/error-reporting/test/unit/populate-error-message.ts +++ b/handwritten/error-reporting/test/unit/populate-error-message.ts @@ -14,8 +14,6 @@ * limitations under the License. */ -'use strict'; - var assert = require('assert'); var ErrorMessage = require('../../src/classes/error-message.js').ErrorMessage; diff --git a/handwritten/error-reporting/test/unit/request-extractors/express.ts b/handwritten/error-reporting/test/unit/request-extractors/express.ts index 27456f4b2ba..19f544a0394 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/express.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/express.ts @@ -14,8 +14,6 @@ * limitations under the License. */ -'use strict'; - var assert = require('assert'); var expressRequestInformationExtractor = require('../../../src/request-extractors/express.js') diff --git a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts index 7d77035773d..ffa01e84262 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts @@ -14,8 +14,6 @@ * limitations under the License. */ -'use strict'; - var assert = require('assert'); var hapiRequestInformationExtractor = require('../../../src/request-extractors/hapi.js') diff --git a/handwritten/error-reporting/test/unit/request-extractors/koa.ts b/handwritten/error-reporting/test/unit/request-extractors/koa.ts index ca3d1124611..fcd76d7bb1b 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/koa.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/koa.ts @@ -14,8 +14,6 @@ * limitations under the License. */ -'use strict'; - var assert = require('assert'); var koaRequestInformationExtractor = require('../../../src/request-extractors/koa.js') diff --git a/handwritten/error-reporting/test/unit/request-extractors/manual.ts b/handwritten/error-reporting/test/unit/request-extractors/manual.ts index 3768602d6cc..7dd24aa61bd 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/manual.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/manual.ts @@ -14,8 +14,6 @@ * limitations under the License. */ -'use strict'; - var assert = require('assert'); var omit = require('lodash.omit'); var extend = require('extend'); diff --git a/handwritten/error-reporting/test/unit/service-configuration.ts b/handwritten/error-reporting/test/unit/service-configuration.ts index cff655d52ae..f03ce35a436 100644 --- a/handwritten/error-reporting/test/unit/service-configuration.ts +++ b/handwritten/error-reporting/test/unit/service-configuration.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -'use strict'; var assert = require('assert'); var is1 = require('is'); var isString = is1.string; diff --git a/handwritten/error-reporting/utils/errors-api-transport.ts b/handwritten/error-reporting/utils/errors-api-transport.ts index de89cdf70e7..70943806762 100644 --- a/handwritten/error-reporting/utils/errors-api-transport.ts +++ b/handwritten/error-reporting/utils/errors-api-transport.ts @@ -14,8 +14,6 @@ * limitations under the License. */ -'use strict'; - import {RequestHandler as AuthClient} from '../src/google-apis/auth-client'; /* @const {String} Base Error Reporting API */ diff --git a/handwritten/error-reporting/utils/fuzzer.ts b/handwritten/error-reporting/utils/fuzzer.ts index f1026958ded..885f054792b 100644 --- a/handwritten/error-reporting/utils/fuzzer.ts +++ b/handwritten/error-reporting/utils/fuzzer.ts @@ -16,7 +16,6 @@ // jscs:disable // jshint ignore: start -'use strict'; var indexOf = require('lodash.indexof'); var without = require('lodash.without'); var maxBy = require('lodash.maxby'); From 6eb0b610e275e70ead1b0a3b81d89ef96ff38707 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Fri, 23 Mar 2018 14:21:49 -0700 Subject: [PATCH 070/527] chore: update `error-reporting` to use import statements (#86) --- handwritten/error-reporting/package.json | 12 ++++- .../error-reporting/src/build-stack-trace.ts | 2 +- .../error-reporting/src/interfaces/manual.ts | 2 +- handwritten/error-reporting/src/logger.ts | 2 +- .../system-test/error-reporting.ts | 53 +++++++++---------- .../test/fixtures/configuration.ts | 15 +++--- .../test/unit/build-stack-trace.ts | 6 +-- .../test/unit/classes/error-message.ts | 16 +++--- .../classes/request-information-container.ts | 7 ++- .../test/unit/configuration.ts | 14 ++--- .../test/unit/google-apis/auth-client.ts | 9 ++-- .../test/unit/interfaces/express.ts | 29 +++++----- .../test/unit/interfaces/hapi.ts | 35 ++++++------ .../test/unit/interfaces/manual.ts | 26 ++++----- .../test/unit/interfaces/restify.ts | 21 ++++---- .../error-reporting/test/unit/logger.ts | 17 +++--- .../test/unit/populate-error-message.ts | 7 ++- .../test/unit/request-extractors/express.ts | 15 +++--- .../test/unit/request-extractors/hapi.ts | 13 +++-- .../test/unit/request-extractors/koa.ts | 9 ++-- .../test/unit/request-extractors/manual.ts | 20 ++++--- .../test/unit/service-configuration.ts | 19 +++---- .../utils/errors-api-transport.ts | 4 +- handwritten/error-reporting/utils/fuzzer.ts | 11 ++-- 24 files changed, 186 insertions(+), 178 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index d75e3076850..91a60dcb13e 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -55,15 +55,23 @@ "dependencies": { "@google-cloud/common": "^0.16.0", "express": "^4.13.4", + "express-serve-static-core": "^0.1.1", "extend": "^3.0.0", "hapi": "^17.1.1", "is": "^3.2.0", "lodash.has": "^4.5.2", - "restify": "^6.3.4" + "ncp": "^2.0.0", + "once": "^1.4.0", + "pify": "^3.0.0", + "request": "^2.85.0", + "restify": "^6.3.4", + "rimraf": "^2.6.2", + "tmp": "0.0.33" }, "devDependencies": { "@google-cloud/nodejs-repo-tools": "^2.0.11", "@types/express": "^4.11.0", + "@types/express-serve-static-core": "^4.11.1", "@types/glob": "^5.0.35", "@types/hapi": "^16.1.11", "@types/is": "0.0.18", @@ -73,7 +81,7 @@ "@types/ncp": "^2.0.1", "@types/node": "^9.4.0", "@types/once": "^1.4.0", - "@types/pify": "^3.0.0", + "@types/pify": "^3.0.1", "@types/request": "^2.0.9", "@types/restify": "^5.0.6", "@types/rimraf": "^2.0.2", diff --git a/handwritten/error-reporting/src/build-stack-trace.ts b/handwritten/error-reporting/src/build-stack-trace.ts index da5bc49d751..63bb24d6517 100644 --- a/handwritten/error-reporting/src/build-stack-trace.ts +++ b/handwritten/error-reporting/src/build-stack-trace.ts @@ -25,7 +25,7 @@ const SRC_ROOT = __dirname; * @returns {String} - A string representation of the stack trace at the point * where this method was invoked. */ -export function buildStackTrace(message: string) { +export function buildStackTrace(message?: string|null) { const target = {}; // Build a stack trace without the frames associated with `buildStackTrace`. // The stack is located at `target.stack`. diff --git a/handwritten/error-reporting/src/interfaces/manual.ts b/handwritten/error-reporting/src/interfaces/manual.ts index de403a220cc..90471b82f77 100644 --- a/handwritten/error-reporting/src/interfaces/manual.ts +++ b/handwritten/error-reporting/src/interfaces/manual.ts @@ -65,7 +65,7 @@ export function handlerSetup( * the parameters given. */ function reportManualError( - err: {}, request?: Request, additionalMessage?: string|{}, + err: {}, request?: Request|Callback|string, additionalMessage?: Callback|string|{}, callback?: Callback|{}|string) { let em; if (isString(request)) { diff --git a/handwritten/error-reporting/src/logger.ts b/handwritten/error-reporting/src/logger.ts index a77ca768e0e..d63f24a12c0 100644 --- a/handwritten/error-reporting/src/logger.ts +++ b/handwritten/error-reporting/src/logger.ts @@ -20,7 +20,7 @@ import * as is from 'is'; const isObject = is.object; const isString = is.string; const isNumber = is.number; -const logger = require('@google-cloud/common').logger; +import {logger} from '@google-cloud/common'; const packageJson = require('../../package.json'); import {ConfigurationOptions} from './configuration'; diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index e47ea8079d1..323a256a849 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -14,26 +14,26 @@ * limitations under the License. */ -var assert = require('assert'); -var nock = require('nock'); -var RequestHandler = - require('../src/google-apis/auth-client.js').RequestHandler; -var ErrorsApiTransport = require('../utils/errors-api-transport.js'); -var ErrorMessage = require('../src/classes/error-message.js').ErrorMessage; -var Configuration = require('../test/fixtures/configuration.js'); -var createLogger = require('../src/logger.js').createLogger; +import * as assert from 'assert'; +import * as nock from 'nock'; +import {RequestHandler} from '../src/google-apis/auth-client'; +import {ErrorsApiTransport} from '../utils/errors-api-transport'; +import {ErrorMessage} from '../src/classes/error-message'; +import {ErrorReporting} from '../src/index'; +import {FakeConfiguration as Configuration} from '../test/fixtures/configuration'; +import {createLogger} from '../src/logger'; import * as is from 'is'; var isObject = is.object; var isString = is.string; var isEmpty = is.empty; -var forEach = require('lodash.foreach'); -var assign = require('lodash.assign'); -var pick = require('lodash.pick'); -var omitBy = require('lodash.omitby'); +import * as forEach from 'lodash.foreach'; +import * as assign from 'lodash.assign'; +import * as pick from 'lodash.pick'; +import * as omitBy from 'lodash.omitby'; // eslint-disable-next-line node/no-extraneous-require -var request = require('request'); -var util = require('util'); -var path = require('path'); +import * as request from 'request'; +import * as util from 'util'; +import * as path from 'path'; const ERR_TOKEN = '_@google_STACKDRIVER_INTEGRATION_TEST_ERROR__'; const TIMEOUT = 30000; @@ -144,7 +144,7 @@ if (!shouldRun()) { describe('Request/Response lifecycle mocking', function() { var sampleError = new Error(ERR_TOKEN); - var errorMessage = new ErrorMessage().setMessage(sampleError); + var errorMessage = new ErrorMessage().setMessage(sampleError.message); var fakeService, client, logger; before(function() { env.sterilizeProcess(); @@ -227,7 +227,7 @@ describe('Request/Response lifecycle mocking', function() { describe('Client creation', function() { var sampleError = new Error(ERR_TOKEN); - var errorMessage = new ErrorMessage().setMessage(sampleError.stack); + var errorMessage = new ErrorMessage().setMessage(sampleError.stack!); after(function() { env.sterilizeProcess(); }); @@ -248,7 +248,7 @@ describe('Client creation', function() { new RequestHandler(cfg, logger) .sendError(errorMessage, function(err, response, body) { assert.strictEqual(err, null); - assert.strictEqual(response.statusCode, 200); + assert.strictEqual(response!.statusCode, 200); assert(isObject(body) && isEmpty(body)); done(); }); @@ -266,7 +266,7 @@ describe('Client creation', function() { new RequestHandler(cfg, logger) .sendError(errorMessage, function(err, response, body) { assert.strictEqual(err, null); - assert.strictEqual(response.statusCode, 200); + assert.strictEqual(response!.statusCode, 200); assert(isObject(body) && isEmpty(body)); done(); }); @@ -289,7 +289,7 @@ describe('Client creation', function() { new RequestHandler(cfg, logger) .sendError(errorMessage, function(err, response, body) { assert.strictEqual(err, null); - assert.strictEqual(response.statusCode, 200); + assert.strictEqual(response!.statusCode, 200); assert(isObject(body) && isEmpty(body)); done(); }); @@ -307,7 +307,7 @@ describe('Client creation', function() { new RequestHandler(cfg, logger) .sendError(errorMessage, function(err, response, body) { assert.strictEqual(err, null); - assert.strictEqual(response.statusCode, 200); + assert.strictEqual(response!.statusCode, 200); assert(isObject(body) && isEmpty(body)); done(); }); @@ -324,7 +324,7 @@ describe('Expected Behavior', function() { ].join(' '); var er = new Error(ERR_TOKEN); - var em = new ErrorMessage().setMessage(er.stack); + var em = new ErrorMessage().setMessage(er.stack!); after(function() { env.sterilizeProcess(); @@ -337,9 +337,9 @@ describe('Expected Behavior', function() { var logger = createLogger({logLevel: 5}); var client = new RequestHandler(new Configuration(undefined, logger), logger); - client.sendError({}, function(err, response) { + client.sendError({} as ErrorMessage, function(err, response) { assert(err instanceof Error); - assert.strictEqual(err.message, ERROR_STRING); + assert.strictEqual(err!.message, ERROR_STRING); assert.strictEqual(response, null); done(); }); @@ -360,7 +360,7 @@ describe('Expected Behavior', function() { assert.strictEqual(err, null); assert(isObject(body)); assert(isEmpty(body)); - assert.strictEqual(response.statusCode, 200); + assert.strictEqual(response!.statusCode, 200); done(); }); }); @@ -380,7 +380,7 @@ describe('Expected Behavior', function() { assert.strictEqual(err, null); assert(isObject(body)); assert(isEmpty(body)); - assert.strictEqual(response.statusCode, 200); + assert.strictEqual(response!.statusCode, 200); done(); }); }); @@ -471,7 +471,6 @@ describe('error-reporting', function() { }, }, extraConfig || {}); - const ErrorReporting = require('../src/index.js').ErrorReporting; errors = new ErrorReporting(config); transport = new ErrorsApiTransport(errors._config, errors._logger); } diff --git a/handwritten/error-reporting/test/fixtures/configuration.ts b/handwritten/error-reporting/test/fixtures/configuration.ts index b8fc0667b8d..bcc61a3e1e0 100644 --- a/handwritten/error-reporting/test/fixtures/configuration.ts +++ b/handwritten/error-reporting/test/fixtures/configuration.ts @@ -14,12 +14,11 @@ * limitations under the License. */ -var Configuration = require('../../src/configuration.js').Configuration; +import {Configuration} from '../../src/configuration'; +import { Logger } from '@google-cloud/common'; -var FakeConfiguration = function(this: {}, config) { - return Configuration.call(this, config, {warn: function() {}}); -}; - -FakeConfiguration.prototype = Object.create(Configuration.prototype); - -module.exports = FakeConfiguration; +export class FakeConfiguration extends Configuration { + constructor(config, logger?) { + super(config, logger || {warn: function() {}} as {} as Logger); + } +} diff --git a/handwritten/error-reporting/test/unit/build-stack-trace.ts b/handwritten/error-reporting/test/unit/build-stack-trace.ts index 7c1bb702823..5dd02139fad 100644 --- a/handwritten/error-reporting/test/unit/build-stack-trace.ts +++ b/handwritten/error-reporting/test/unit/build-stack-trace.ts @@ -14,9 +14,9 @@ * limitations under the License. */ -var assert = require('assert'); -var path = require('path'); -var buildStackTrace = require('../../src/build-stack-trace.js').buildStackTrace; +import * as assert from 'assert'; +import * as path from 'path'; +import {buildStackTrace} from '../../src/build-stack-trace'; const SRC_ROOT = path.join(__dirname, '..', '..', 'src'); diff --git a/handwritten/error-reporting/test/unit/classes/error-message.ts b/handwritten/error-reporting/test/unit/classes/error-message.ts index b03a47f7f13..c2dace9c159 100644 --- a/handwritten/error-reporting/test/unit/classes/error-message.ts +++ b/handwritten/error-reporting/test/unit/classes/error-message.ts @@ -16,9 +16,9 @@ // jscs:disable // jshint ignore: start -var assert = require('assert'); -var ErrorMessage = - require('../../../src/classes/error-message.js').ErrorMessage; +import * as assert from 'assert'; +import {ErrorMessage} from '../../../src/classes/error-message'; +import { RequestInformationContainer } from '../../../src/classes/request-information-container'; describe('Instantiating a new ErrorMessage', function() { var em; @@ -447,7 +447,7 @@ describe('Fuzzing against consumeRequestInformation', function() { remoteAddress: undefined, }; it('Should consume the stubbed request object', function() { - em.consumeRequestInformation(AFFIRMATIVE_TEST_VALUE); + em.consumeRequestInformation(AFFIRMATIVE_TEST_VALUE as RequestInformationContainer); assert(em.context.httpRequest.method === A_VALID_STRING, [ 'The error messages method, given a valid string, should be', 'set to that value', @@ -474,7 +474,7 @@ describe('Fuzzing against consumeRequestInformation', function() { ].join(' ')); }); it('Should default when consuming a malformed request object', function() { - em.consumeRequestInformation(null); + em.consumeRequestInformation(null!); assert(em.context.httpRequest.method === A_VALID_STRING, [ 'The error messages method, given an invalid type a the top-level', 'should remain untouched', @@ -501,7 +501,7 @@ describe('Fuzzing against consumeRequestInformation', function() { ].join(' ')); }); it('Should default when consuming mistyped response object properties', function() { - em.consumeRequestInformation(NEGATIVE_TEST_VALUE); + em.consumeRequestInformation(NEGATIVE_TEST_VALUE as {} as RequestInformationContainer); assert(em.context.httpRequest.method === NEGATIVE_STRING_CASE, [ 'The error messages method, given an invalid input should default to', 'the negative value', @@ -530,13 +530,13 @@ describe('Fuzzing against consumeRequestInformation', function() { it('Should return the instance on calling consumeRequestInformation', function() { assert( - em.consumeRequestInformation(AFFIRMATIVE_TEST_VALUE) instanceof + em.consumeRequestInformation(AFFIRMATIVE_TEST_VALUE as RequestInformationContainer) instanceof ErrorMessage, [ 'Calling consumeRequestInformation with valid input should return', 'the ErrorMessage instance', ].join(' ')); - assert(em.consumeRequestInformation() instanceof ErrorMessage, [ + assert(em.consumeRequestInformation(undefined!) instanceof ErrorMessage, [ 'Calling consumeRequestInformation with invalid input should return', 'the ErrorMessage instance', ].join(' ')); diff --git a/handwritten/error-reporting/test/unit/classes/request-information-container.ts b/handwritten/error-reporting/test/unit/classes/request-information-container.ts index 443250d6f2c..1492651a5de 100644 --- a/handwritten/error-reporting/test/unit/classes/request-information-container.ts +++ b/handwritten/error-reporting/test/unit/classes/request-information-container.ts @@ -14,16 +14,15 @@ * limitations under the License. */ -var assert = require('assert'); -var RequestInformationContainer = - require('../../../src/classes/request-information-container.js'); +import * as assert from 'assert'; +import {RequestInformationContainer} from '../../../src/classes/request-information-container'; import {Fuzzer} from '../../../utils/fuzzer'; describe('RequestInformationContainer', function() { var f = new Fuzzer(); var cbFn, ric; beforeEach(function() { - ric = new RequestInformationContainer.RequestInformationContainer(); + ric = new RequestInformationContainer(); }); describe('Fuzzing against RequestInformationContainer', function() { it('Should return the property as an empty string', function() { diff --git a/handwritten/error-reporting/test/unit/configuration.ts b/handwritten/error-reporting/test/unit/configuration.ts index c552da13b7e..cead372ff87 100644 --- a/handwritten/error-reporting/test/unit/configuration.ts +++ b/handwritten/error-reporting/test/unit/configuration.ts @@ -14,16 +14,18 @@ * limitations under the License. */ -var assert = require('assert'); -var isNumber = require('is').number; -var merge = require('lodash.merge'); -var Configuration = require('../fixtures/configuration.js'); +import * as assert from 'assert'; +import * as is from 'is'; +var isNumber = is.number; +import merge = require('lodash.merge'); +import {FakeConfiguration as Configuration} from '../fixtures/configuration'; import {Fuzzer} from '../../utils/fuzzer'; var level = process.env.GCLOUD_ERRORS_LOGLEVEL; -var logger = require('../../src/logger.js').createLogger({ +import {createLogger} from '../../src/logger'; +var logger = createLogger({ logLevel: isNumber(level) ? level : 4, }); -var nock = require('nock'); +import * as nock from 'nock'; var METADATA_URL = 'http://metadata.google.internal/computeMetadata/v1/project'; diff --git a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts index 62f690af39f..eee87e0f4ef 100644 --- a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts +++ b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts @@ -14,10 +14,11 @@ * limitations under the License. */ -var assert = require('assert'); -var proxyquire = require('proxyquire'); +import * as assert from 'assert'; +import * as proxyquire from 'proxyquire'; -var Configuration = require('../../../src/configuration.js').Configuration; +import {Configuration} from '../../../src/configuration'; +import { Logger } from '@google-cloud/common'; function verifyReportedMessage(config1, errToReturn, expectedLogs) { class ServiceStub { @@ -54,7 +55,7 @@ function verifyReportedMessage(config1, errToReturn, expectedLogs) { logs.info += text; }, }; - var config2 = new Configuration(config1, logger); + var config2 = new Configuration(config1, logger as Logger); new RequestHandler(config2, logger); assert.deepStrictEqual(logs, expectedLogs); } diff --git a/handwritten/error-reporting/test/unit/interfaces/express.ts b/handwritten/error-reporting/test/unit/interfaces/express.ts index 15ad43f408c..dc78ffbaf4c 100644 --- a/handwritten/error-reporting/test/unit/interfaces/express.ts +++ b/handwritten/error-reporting/test/unit/interfaces/express.ts @@ -14,15 +14,14 @@ * limitations under the License. */ -var assert = require('assert'); -var merge = require('lodash.merge'); -var expressInterface = - require('../../../src/interfaces/express.js').makeExpressHandler; -var ErrorMessage = - require('../../../src/classes/error-message.js').ErrorMessage; +import * as assert from 'assert'; +import * as merge from 'lodash.merge'; +import {makeExpressHandler as expressInterface} from '../../../src/interfaces/express'; +import {ErrorMessage} from '../../../src/classes/error-message'; import {Fuzzer} from '../../../utils/fuzzer'; -var Configuration = require('../../fixtures/configuration.js'); -var createLogger = require('../../../src/logger.js').createLogger; +import {FakeConfiguration as Configuration} from '../../fixtures/configuration'; +import {createLogger} from '../../../src/logger'; +import { RequestHandler } from '../../../src/google-apis/auth-client'; describe('expressInterface', function() { describe('Exception handling', function() { @@ -45,7 +44,7 @@ describe('expressInterface', function() { }, }, createLogger({logLevel: 4})); - stubbedConfig.lacksCredentials = function() { + (stubbedConfig as {} as {lacksCredentials: Function}).lacksCredentials = function() { return false; }; var client = { @@ -54,14 +53,14 @@ describe('expressInterface', function() { }, }; var testError = new Error('This is a test'); - var validBoundHandler = expressInterface(client, stubbedConfig); + var validBoundHandler = expressInterface(client as {} as RequestHandler, stubbedConfig); it('Should return the error message', function() { - var res = validBoundHandler(testError, null, null, null); + var res = validBoundHandler(testError, null!, null!, null!); assert.deepEqual( res, merge( new ErrorMessage() - .setMessage(testError.stack) + .setMessage(testError.stack!) .setServiceContext( stubbedConfig._serviceContext.service, stubbedConfig._serviceContext.version), @@ -72,7 +71,7 @@ describe('expressInterface', function() { var nextCb = function() { done(); }; - validBoundHandler(testError, null, null, nextCb); + validBoundHandler(testError, null!, null!, nextCb); }); it('Should callback to sendError', function(done) { var sendError = function() { @@ -81,8 +80,8 @@ describe('expressInterface', function() { var client = { sendError: sendError, }; - var handler = expressInterface(client, stubbedConfig); - handler(testError, null, null, function() { + var handler = expressInterface(client as {} as RequestHandler, stubbedConfig); + handler(testError, null!, null!, function() { return; }); }); diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.ts b/handwritten/error-reporting/test/unit/interfaces/hapi.ts index 4b202a418aa..9e6323a4f1a 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.ts +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.ts @@ -14,17 +14,18 @@ * limitations under the License. */ -var has = require('lodash.has'); -var is1 = require('is'); -var isFunction = is1.fn; -var isObject = is1.object; -var assert = require('assert'); -var hapiInterface = require('../../../src/interfaces/hapi.js').makeHapiPlugin; -var ErrorMessage = - require('../../../src/classes/error-message.js').ErrorMessage; +import has = require('lodash.has'); +import * as is from 'is'; +var isFunction = (is as {} as {fn: Function}).fn; +var isObject = is.object; +import * as assert from 'assert'; +import {makeHapiPlugin as hapiInterface} from '../../../src/interfaces/hapi'; +import {ErrorMessage} from '../../../src/classes/error-message'; import {Fuzzer} from '../../../utils/fuzzer'; -var EventEmitter = require('events').EventEmitter; -var Configuration = require('../../fixtures/configuration.js'); +import {EventEmitter} from 'events'; +import * as config from '../../../src/configuration'; +import { RequestHandler } from '../../../src/google-apis/auth-client'; +import {FakeConfiguration as Configuration} from '../../fixtures/configuration'; describe('Hapi interface', function() { describe('Fuzzing the setup handler', function() { @@ -44,7 +45,7 @@ describe('Hapi interface', function() { }; var plugin; beforeEach(function() { - plugin = hapiInterface(null, givenConfig); + plugin = hapiInterface(null!, givenConfig as {} as config.Configuration); }); it('should have plain object as plugin', function() { assert(isObject(plugin)); @@ -81,7 +82,7 @@ describe('Hapi interface', function() { errMsg instanceof ErrorMessage, 'should be an instance of Error message'); }, - }; + } as {} as RequestHandler; var plugin = hapiInterface(fakeClient, { lacksCredentials: function() { return false; @@ -92,14 +93,14 @@ describe('Hapi interface', function() { getServiceContext: function() { return {service: 'node'}; }, - }); - plugin.register(fakeServer, null, null, null); + } as {} as config.Configuration); + plugin.register(fakeServer, null!, null!); fakeServer.emit('request-error'); }); }); describe('Behaviour around the request/response lifecycle', function() { var EVENT = 'onPreResponse'; - var fakeClient = {sendError: function() {}}; + var fakeClient = {sendError: function() {}} as {} as RequestHandler; var fakeServer, config, plugin; before(function() { config = new Configuration({ @@ -152,9 +153,9 @@ describe('Hapi interface', function() { assert(err instanceof ErrorMessage); done(); }, - }; + } as {} as RequestHandler; var plugin = hapiInterface(fakeClient, config); - plugin.register(fakeServer, null, function() {}); + plugin.register(fakeServer, null!, function() {}); fakeServer.emit('onPreResponse', {response: {isBoom: true}}); }); it('Should call next when completing a request', function(done) { diff --git a/handwritten/error-reporting/test/unit/interfaces/manual.ts b/handwritten/error-reporting/test/unit/interfaces/manual.ts index 08cccac8f0e..879d09460fc 100644 --- a/handwritten/error-reporting/test/unit/interfaces/manual.ts +++ b/handwritten/error-reporting/test/unit/interfaces/manual.ts @@ -14,28 +14,30 @@ * limitations under the License. */ -var assert = require('assert'); -var manual = require('../../../src/interfaces/manual.js'); -var Configuration = require('../../fixtures/configuration.js'); +import * as assert from 'assert'; +import * as manual from '../../../src/interfaces/manual'; +import {FakeConfiguration as Configuration} from '../../fixtures/configuration'; var config = new Configuration({}); -config.lacksCredentials = function() { +(config as {} as {lacksCredentials: Function}).lacksCredentials = function() { return false; }; -var ErrorMessage = - require('../../../src/classes/error-message.js').ErrorMessage; +import {ErrorMessage} from '../../../src/classes/error-message'; +import { RequestHandler } from '../../../src/google-apis/auth-client'; +import { Logger } from '@google-cloud/common'; +import { RequestInformationContainer } from '../../../src/classes/request-information-container'; // var nock = require('nock'); describe('Manual handler', function() { // nock.disableNetConnect(); // Mocked client - var client = { + var client: RequestHandler = { sendError: function(e, cb) { // immediately callback if (cb) { setImmediate(cb); } }, - }; + } as {} as RequestHandler; var report = manual.handlerSetup(client, config, { warn: function(message) { // The use of `report` in this class should issue the following warning @@ -52,10 +54,10 @@ describe('Manual handler', function() { 'trace. This error might not be visible in the error reporting ' + 'console.'); }, - }); + } as Logger); describe('Report invocation behaviour', function() { it('Should allow argument-less invocation', function() { - var r = report(); + var r = report(null!); assert(r instanceof ErrorMessage, 'should be an inst of ErrorMessage'); }); it('Should allow single string', function() { @@ -127,7 +129,7 @@ describe('Manual handler', function() { assert.notEqual(r.context.httpRequest.method, 'HONK'); }); it('Should allow null arguments as placeholders', function(done) { - var r = report('pokey', null, null, function() { + var r = report('pokey', null!, null!, function() { done(); }); assert(r.message.match(/pokey/), 'string error should propagate'); @@ -168,7 +170,7 @@ describe('Manual handler', function() { var oldReq = {method: 'GET'}; var newReq = {method: 'POST'}; var r = report( - new ErrorMessage().setMessage(msg).consumeRequestInformation(oldReq), + new ErrorMessage().setMessage(msg).consumeRequestInformation(oldReq as RequestInformationContainer), newReq); assert( r.message.startsWith(msg), diff --git a/handwritten/error-reporting/test/unit/interfaces/restify.ts b/handwritten/error-reporting/test/unit/interfaces/restify.ts index 66c0f295001..d5bd2b9cde8 100644 --- a/handwritten/error-reporting/test/unit/interfaces/restify.ts +++ b/handwritten/error-reporting/test/unit/interfaces/restify.ts @@ -14,10 +14,11 @@ * limitations under the License. */ -var EventEmitter = require('events').EventEmitter; -var assert = require('assert'); -var restifyInterface = - require('../../../src/interfaces/restify.js').handlerSetup; +import {EventEmitter} from 'events'; +import * as assert from 'assert'; +import {handlerSetup as restifyInterface} from '../../../src/interfaces/restify'; +import { RequestHandler } from '../../../src/google-apis/auth-client'; +import { Configuration } from '../../../src/configuration'; // node v0.12 compatibility if (!EventEmitter.prototype.listenerCount) { @@ -40,7 +41,7 @@ describe('restifyInterface', function() { ee.listenerCount(UNCAUGHT_EVENT), 0, 'Listeners on event should be zero'); // return the bound function which the user will actually interface with - var errorHandlerInstance = restifyInterface(null, null); + var errorHandlerInstance = restifyInterface(null!, null!); // execute the handler the user will use with the stubbed server instance errorHandlerInstance(ee); assert.strictEqual( @@ -50,7 +51,7 @@ describe('restifyInterface', function() { }); describe('Request handler lifecycle events', function() { var ee = new EventEmitter(); - var errorHandlerInstance = restifyInterface(null, null); + var errorHandlerInstance = restifyInterface(null!, null!); var requestHandlerInstance = errorHandlerInstance(ee); describe('default path on invalid input', function() { it('Should not throw', function() { @@ -63,7 +64,7 @@ describe('restifyInterface', function() { ee.removeAllListeners(); var req = new EventEmitter(); var res = new EventEmitter(); - res.statusCode = 200; + (res as {} as {statusCode: number}).statusCode = 200; it('Should have 0 listeners on the finish event', function() { assert.strictEqual(res.listenerCount(FINISH), 0); }); @@ -102,12 +103,12 @@ describe('restifyInterface', function() { getVersion: function() { return '1'; }, - }; - var errorHandlerInstance = restifyInterface(client, config); + } as {} as Configuration; + var errorHandlerInstance = restifyInterface(client as {} as RequestHandler, config); var requestHandlerInstance = errorHandlerInstance(ee); var req = new EventEmitter(); var res = new EventEmitter(); - res.statusCode = 500; + (res as {} as {statusCode: number}).statusCode = 500; it('Should have 0 Listeners on the finish event', function() { assert.strictEqual(res.listenerCount(FINISH), 0); }); diff --git a/handwritten/error-reporting/test/unit/logger.ts b/handwritten/error-reporting/test/unit/logger.ts index 70a37ed2048..242526868c6 100644 --- a/handwritten/error-reporting/test/unit/logger.ts +++ b/handwritten/error-reporting/test/unit/logger.ts @@ -14,8 +14,8 @@ * limitations under the License. */ -var assert = require('assert'); -var createLogger = require('../../src/logger.js').createLogger; +import * as assert from 'assert'; +import {createLogger} from '../../src/logger'; describe('logger', function() { describe('Initialization', function() { @@ -29,24 +29,27 @@ describe('logger', function() { }); describe('Exception handling', function() { it('Should not throw given undefined', function() { - assert.doesNotThrow(createLogger, createLogger()); + assert.doesNotThrow(createLogger, + createLogger() as {} as (err: Error) => boolean); }); it('Should not throw given an empty object', function() { - assert.doesNotThrow(createLogger.bind(null, {}), createLogger()); + assert.doesNotThrow(createLogger.bind(null, {}), + createLogger() as {} as (err: Error) => boolean); }); it('Should not throw given logLevel as a number', function() { assert.doesNotThrow( createLogger.bind(null, {logLevel: 3}), - createLogger({logLevel: 3})); + createLogger({logLevel: 3}) as {} as (err: Error) => boolean); }); it('Should not throw given logLevel as a string', function() { assert.doesNotThrow( createLogger.bind(null, {logLevel: '3'}), - createLogger({logLevel: 3})); + createLogger({logLevel: 3}) as {} as (err: Error) => boolean); }); it('Should not throw given an env variable to use', function() { process.env.GCLOUD_ERRORS_LOGLEVEL = '4'; - assert.doesNotThrow(createLogger, createLogger({logLevel: 4})); + assert.doesNotThrow(createLogger, + createLogger({logLevel: 4}) as {} as (err: Error) => boolean); delete process.env.GCLOUD_ERRORS_LOGLEVEL; }); it('Should thow given logLevel as null', function() { diff --git a/handwritten/error-reporting/test/unit/populate-error-message.ts b/handwritten/error-reporting/test/unit/populate-error-message.ts index 3279551ce41..4896369b93a 100644 --- a/handwritten/error-reporting/test/unit/populate-error-message.ts +++ b/handwritten/error-reporting/test/unit/populate-error-message.ts @@ -14,11 +14,10 @@ * limitations under the License. */ -var assert = require('assert'); +import * as assert from 'assert'; -var ErrorMessage = require('../../src/classes/error-message.js').ErrorMessage; -var populateErrorMessage = - require('../../src/populate-error-message.js').populateErrorMessage; +import {ErrorMessage} from '../../src/classes/error-message'; +import {populateErrorMessage} from '../../src/populate-error-message'; var TEST_USER_INVALID = 12; var TEST_MESSAGE = 'This is a test'; diff --git a/handwritten/error-reporting/test/unit/request-extractors/express.ts b/handwritten/error-reporting/test/unit/request-extractors/express.ts index 19f544a0394..806ce3a81c6 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/express.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/express.ts @@ -14,12 +14,11 @@ * limitations under the License. */ -var assert = require('assert'); -var expressRequestInformationExtractor = - require('../../../src/request-extractors/express.js') - .expressRequestInformationExtractor; +import * as assert from 'assert'; +import {expressRequestInformationExtractor} from '../../../src/request-extractors/express'; import {Fuzzer} from '../../../utils/fuzzer'; -var extend = require('extend'); +import * as extend from 'extend'; +import { Response } from 'express-serve-static-core'; describe('Behaviour under varying input', function() { var f; @@ -113,7 +112,7 @@ describe('Behaviour under varying input', function() { return lrn; }; var tmpOutput = expressRequestInformationExtractor( - headerFactory(FULL_REQ_DERIVATION_VALUE), FULL_RES_DERIVATION_VALUE); + headerFactory(FULL_REQ_DERIVATION_VALUE), FULL_RES_DERIVATION_VALUE as Response); assert.deepEqual(tmpOutput, FULL_REQ_EXPECTED_VALUE, [ 'Given a valid object input for the request parameter and an', '\'x-forwarded-for\' parameter the request extractor should return', @@ -122,7 +121,7 @@ describe('Behaviour under varying input', function() { ].join(' ')); tmpOutput = expressRequestInformationExtractor( headerFactory(PARTIAL_REQ_DERIVATION_VALUE), - PARTIAL_RES_DERIVATION_VALUE); + PARTIAL_RES_DERIVATION_VALUE as Response); assert.deepEqual(tmpOutput, PARTIAL_REQ_EXPECTED_VALUE, [ 'Given a valid object input for the request parameter but sans an', '\'x-forwarded-for\' parameter the request extractor should return', @@ -131,7 +130,7 @@ describe('Behaviour under varying input', function() { ].join(' ')); tmpOutput = expressRequestInformationExtractor( headerFactory(ANOTHER_PARTIAL_REQ_DERIVATION_VALUE), - ANOTHER_PARTIAL_RES_DERIVATION_VALUE); + ANOTHER_PARTIAL_RES_DERIVATION_VALUE as Response); assert.deepEqual(tmpOutput, ANOTHER_PARTIAL_REQ_EXPECTED_VALUE, [ 'Given a valid object input for the request parameter but sans an', '\'x-forwarded-for\' parameter or a remoteAddress parameter', diff --git a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts index ffa01e84262..5e6a9f25562 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts @@ -14,11 +14,10 @@ * limitations under the License. */ -var assert = require('assert'); -var hapiRequestInformationExtractor = - require('../../../src/request-extractors/hapi.js') - .hapiRequestInformationExtractor; +import * as assert from 'assert'; +import {hapiRequestInformationExtractor} from '../../../src/request-extractors/hapi'; import {Fuzzer} from '../../../utils/fuzzer'; +import * as hapi from 'hapi'; describe('hapiRequestInformationExtractor behaviour', function() { describe('behaviour given invalid input', function() { @@ -104,17 +103,17 @@ describe('hapiRequestInformationExtractor behaviour', function() { }; it('Should produce the full request input', function() { assert.deepEqual( - hapiRequestInformationExtractor(FULL_REQ_DERIVATION_VALUE), + hapiRequestInformationExtractor(FULL_REQ_DERIVATION_VALUE as {} as hapi.Request), FULL_REQ_EXPECTED_VALUE); }); it('Should produce the partial request input', function() { assert.deepEqual( - hapiRequestInformationExtractor(PARTIAL_REQ_DERIVATION_VALUE), + hapiRequestInformationExtractor(PARTIAL_REQ_DERIVATION_VALUE as {} as hapi.Request), PARTIAL_REQ_EXPECTED_VALUE); }); it('Should produce the second partial request input', function() { assert.deepEqual( - hapiRequestInformationExtractor(ANOTHER_PARTIAL_REQ_DERIVATION_VALUE), + hapiRequestInformationExtractor(ANOTHER_PARTIAL_REQ_DERIVATION_VALUE as {} as hapi.Request), ANOTHER_PARTIAL_REQ_EXPECTED_VALUE); }); }); diff --git a/handwritten/error-reporting/test/unit/request-extractors/koa.ts b/handwritten/error-reporting/test/unit/request-extractors/koa.ts index fcd76d7bb1b..8bac587d2e8 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/koa.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/koa.ts @@ -14,11 +14,10 @@ * limitations under the License. */ -var assert = require('assert'); -var koaRequestInformationExtractor = - require('../../../src/request-extractors/koa.js') - .koaRequestInformationExtractor; +import * as assert from 'assert'; +import {koaRequestInformationExtractor} from '../../../src/request-extractors/koa'; import {Fuzzer} from '../../../utils/fuzzer'; +import { Request, Response } from 'koa'; describe('koaRequestInformationExtractor', function() { describe('Behaviour under invalid input', function() { @@ -63,7 +62,7 @@ describe('koaRequestInformationExtractor', function() { }; assert.deepEqual( koaRequestInformationExtractor( - FULL_REQ_DERIVATION_VALUE, FULL_RES_DERIVATION_VALUE), + FULL_REQ_DERIVATION_VALUE as Request, FULL_RES_DERIVATION_VALUE as Response), FULL_REQ_EXPECTED_VALUE); }); }); diff --git a/handwritten/error-reporting/test/unit/request-extractors/manual.ts b/handwritten/error-reporting/test/unit/request-extractors/manual.ts index 7dd24aa61bd..66fe55115ee 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/manual.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/manual.ts @@ -14,12 +14,10 @@ * limitations under the License. */ -var assert = require('assert'); -var omit = require('lodash.omit'); -var extend = require('extend'); -var manualRequestInformationExtractor = - require('../../../src/request-extractors/manual.js') - .manualRequestInformationExtractor; +import * as assert from 'assert'; +import * as omit from 'lodash.omit'; +import * as extend from 'extend'; +import {manualRequestInformationExtractor} from '../../../src/request-extractors/manual'; import {Fuzzer} from '../../../utils/fuzzer'; describe('manualRequestInformationExtractor', function() { @@ -68,34 +66,34 @@ describe('manualRequestInformationExtractor', function() { extend({}, FULL_VALID_INPUT, {url: ''}), [ 'Given a valid input sans the url property these values should be', 'reflected by the output of the request extraction', - ]); + ].join('')); assert.deepEqual( manualRequestInformationExtractor( omit(FULL_VALID_INPUT, 'userAgent')), extend({}, FULL_VALID_INPUT, {userAgent: ''}), [ 'Given a full valid input sans the userAgent property these values', 'should be reflected by the output of the request extraction', - ]); + ].join('')); assert.deepEqual( manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'referrer')), extend({}, FULL_VALID_INPUT, {referrer: ''}), [ 'Given a full valid input sans the referrer property these values', 'should be reflected by the output of the request extraction', - ]); + ].join('')); assert.deepEqual( manualRequestInformationExtractor( omit(FULL_VALID_INPUT, 'statusCode')), extend({}, FULL_VALID_INPUT, {statusCode: 0}), [ 'Given a full valid input sans the statusCode property these values', 'should be reflected by the output of the request extraction', - ]); + ].join('')); assert.deepEqual( manualRequestInformationExtractor( omit(FULL_VALID_INPUT, 'remoteAddress')), extend({}, FULL_VALID_INPUT, {remoteAddress: ''}), [ 'Given a valid input sans the remoteAddress property these values', 'should be reflected by the output of the request extraction', - ]); + ].join('')); }); }); }); diff --git a/handwritten/error-reporting/test/unit/service-configuration.ts b/handwritten/error-reporting/test/unit/service-configuration.ts index f03ce35a436..31674034362 100644 --- a/handwritten/error-reporting/test/unit/service-configuration.ts +++ b/handwritten/error-reporting/test/unit/service-configuration.ts @@ -14,16 +14,17 @@ * limitations under the License. */ -var assert = require('assert'); -var is1 = require('is'); -var isString = is1.string; -var isNumber = is1.number; -var forEach = require('lodash.foreach'); -var assign = require('lodash.assign'); -var omitBy = require('lodash.omitby'); -var Configuration = require('../fixtures/configuration.js'); +import * as assert from 'assert'; +import * as is from 'is'; +var isString = is.string; +var isNumber = is.number; +import forEach = require('lodash.foreach'); +import assign = require('lodash.assign'); +import omitBy = require('lodash.omitby'); +import {FakeConfiguration as Configuration} from '../fixtures/configuration'; var level = process.env.GCLOUD_ERRORS_LOGLEVEL; -var logger = require('../../src/logger.js').createLogger({ +import {createLogger} from '../../src/logger'; +var logger = createLogger({ logLevel: isNumber(level) ? level : 4, }); var serviceConfigEnv = { diff --git a/handwritten/error-reporting/utils/errors-api-transport.ts b/handwritten/error-reporting/utils/errors-api-transport.ts index 70943806762..967778770c5 100644 --- a/handwritten/error-reporting/utils/errors-api-transport.ts +++ b/handwritten/error-reporting/utils/errors-api-transport.ts @@ -21,7 +21,7 @@ var API = 'https://clouderrorreporting.googleapis.com/v1beta1/projects'; var ONE_HOUR_API = 'timeRange.period=PERIOD_1_HOUR'; -class ErrorsApiTransport extends AuthClient { +export class ErrorsApiTransport extends AuthClient { constructor(config, logger) { super(config, logger); } @@ -72,5 +72,3 @@ class ErrorsApiTransport extends AuthClient { }); } } - -module.exports = ErrorsApiTransport; diff --git a/handwritten/error-reporting/utils/fuzzer.ts b/handwritten/error-reporting/utils/fuzzer.ts index 885f054792b..47eae157964 100644 --- a/handwritten/error-reporting/utils/fuzzer.ts +++ b/handwritten/error-reporting/utils/fuzzer.ts @@ -16,11 +16,12 @@ // jscs:disable // jshint ignore: start -var indexOf = require('lodash.indexof'); -var without = require('lodash.without'); -var maxBy = require('lodash.maxby'); -var random = require('lodash.random'); -var is = require('is'); +import indexOf = require('lodash.indexof'); +import without = require('lodash.without'); +import maxBy = require('lodash.maxby'); +import random = require('lodash.random'); +import * as is from 'is'; + var isNumber = is.number; var isString = is.string; var isArray = is.array; From bd9f59125778e108eae37f00cadeb83a37ea467e Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Fri, 23 Mar 2018 14:51:53 -0700 Subject: [PATCH 071/527] chore: convert test servers to TypeScript (#87) --- ...old_server.js => express_scaffold_server.ts} | 2 -- ...affold_server.js => hapi_scaffold_server.ts} | 1 - ...caffold_server.js => koa_scaffold_server.ts} | 17 ++++++++--------- ...fold_server.js => manual_scaffold_server.ts} | 1 - ...old_server.js => restify_scaffold_server.ts} | 1 - handwritten/error-reporting/tsconfig.json | 4 ---- 6 files changed, 8 insertions(+), 18 deletions(-) rename handwritten/error-reporting/test/test-servers/{express_scaffold_server.js => express_scaffold_server.ts} (99%) rename handwritten/error-reporting/test/test-servers/{hapi_scaffold_server.js => hapi_scaffold_server.ts} (99%) rename handwritten/error-reporting/test/test-servers/{koa_scaffold_server.js => koa_scaffold_server.ts} (81%) rename handwritten/error-reporting/test/test-servers/{manual_scaffold_server.js => manual_scaffold_server.ts} (98%) rename handwritten/error-reporting/test/test-servers/{restify_scaffold_server.js => restify_scaffold_server.ts} (98%) diff --git a/handwritten/error-reporting/test/test-servers/express_scaffold_server.js b/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts similarity index 99% rename from handwritten/error-reporting/test/test-servers/express_scaffold_server.js rename to handwritten/error-reporting/test/test-servers/express_scaffold_server.ts index 82a6962107b..54ddf4bf09a 100644 --- a/handwritten/error-reporting/test/test-servers/express_scaffold_server.js +++ b/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts @@ -15,8 +15,6 @@ */ // jscs:disable requireEarlyReturn -'use strict'; - var WARNING_HEADER = '\n!! -WARNING-'; var EXCLAMATION_LN = '\n!!'; var has = require('lodash.has'); diff --git a/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.js b/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts similarity index 99% rename from handwritten/error-reporting/test/test-servers/hapi_scaffold_server.js rename to handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts index c5fb7fc121a..14b864bbff7 100644 --- a/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.js +++ b/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -'use strict'; var hapi = require('hapi'); var errorHandler = require('../../src/index.js')(); diff --git a/handwritten/error-reporting/test/test-servers/koa_scaffold_server.js b/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts similarity index 81% rename from handwritten/error-reporting/test/test-servers/koa_scaffold_server.js rename to handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts index 9b28bb5068d..95c9d593ee9 100644 --- a/handwritten/error-reporting/test/test-servers/koa_scaffold_server.js +++ b/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts @@ -15,7 +15,6 @@ */ // jscs doesn't understand koa.. // jscs:disable -'use strict'; var errorHandler = require('../../src/index.js')({ onUncaughtException: 'report', @@ -25,31 +24,31 @@ var app = koa(); app.use(errorHandler.koa); -app.use(function*(next) { +app.use(function*(this, next) { // This will set status and message this.throw('Error Message', 500); yield next; }); -app.use(function*(next) { - var start = new Date(); +app.use(function*(this, next) { + var start = new Date() as any; yield next; - var ms = new Date() - start; + var ms = new Date() as any - start; this.set('X-Response-Time', ms + 'ms'); }); // logger -app.use(function*(next) { - var start = new Date(); +app.use(function*(this, next) { + var start = new Date() as any; yield next; - var ms = new Date() - start; + var ms = new Date() as any - start; // eslint-disable-next-line no-console console.log('%s %s - %s', this.method, this.url, ms); }); // response -app.use(function*(next) { +app.use(function*(this, next) { this.body = 'Hello World'; yield next; }); diff --git a/handwritten/error-reporting/test/test-servers/manual_scaffold_server.js b/handwritten/error-reporting/test/test-servers/manual_scaffold_server.ts similarity index 98% rename from handwritten/error-reporting/test/test-servers/manual_scaffold_server.js rename to handwritten/error-reporting/test/test-servers/manual_scaffold_server.ts index 8d9fd299018..91abcf37445 100644 --- a/handwritten/error-reporting/test/test-servers/manual_scaffold_server.js +++ b/handwritten/error-reporting/test/test-servers/manual_scaffold_server.ts @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -'use strict'; const errors = require('../../src/index.js')(); errors.report('Sample test string', err => { diff --git a/handwritten/error-reporting/test/test-servers/restify_scaffold_server.js b/handwritten/error-reporting/test/test-servers/restify_scaffold_server.ts similarity index 98% rename from handwritten/error-reporting/test/test-servers/restify_scaffold_server.js rename to handwritten/error-reporting/test/test-servers/restify_scaffold_server.ts index 5d2c55f3c3a..56b839e7a8a 100644 --- a/handwritten/error-reporting/test/test-servers/restify_scaffold_server.js +++ b/handwritten/error-reporting/test/test-servers/restify_scaffold_server.ts @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -'use strict'; function respond(req, res, next) { next(new Error('this is a restify error')); diff --git a/handwritten/error-reporting/tsconfig.json b/handwritten/error-reporting/tsconfig.json index a3bd4418e36..40e62d9940a 100644 --- a/handwritten/error-reporting/tsconfig.json +++ b/handwritten/error-reporting/tsconfig.json @@ -3,8 +3,6 @@ "compilerOptions": { "rootDir": ".", "outDir": "build", - "declaration": false, - "allowJs": true, "noImplicitAny": false }, "include": [ @@ -12,8 +10,6 @@ "src/**/*.ts", "test/*.ts", "test/**/*.ts", - "test/*.js", - "test/**/*.js", "system-test/*.ts", "system-test/**/*.ts", "utils/*.ts" From 4c02bd8fa64a2955f7049a206462eba5212ced8f Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Tue, 27 Mar 2018 10:29:21 -0700 Subject: [PATCH 072/527] chore: replace `var` with `let` and `const` (#88) --- handwritten/error-reporting/README_OLD.md | 38 +++--- .../system-test/error-reporting.ts | 110 +++++++++--------- .../test-servers/express_scaffold_server.ts | 22 ++-- .../test/test-servers/hapi_scaffold_server.ts | 15 +-- .../test/test-servers/koa_scaffold_server.ts | 21 ++-- .../test-servers/manual_scaffold_server.ts | 5 +- .../test-servers/restify_scaffold_server.ts | 7 +- .../test/unit/build-stack-trace.ts | 4 +- .../test/unit/classes/error-message.ts | 94 +++++++-------- .../classes/request-information-container.ts | 8 +- .../test/unit/configuration.ts | 62 +++++----- .../test/unit/google-apis/auth-client.ts | 18 +-- .../test/unit/interfaces/express.ts | 20 ++-- .../test/unit/interfaces/hapi.ts | 28 ++--- .../test/unit/interfaces/manual.ts | 57 +++++---- .../test/unit/interfaces/restify.ts | 32 ++--- .../error-reporting/test/unit/logger.ts | 12 +- .../test/unit/populate-error-message.ts | 80 ++++++------- .../test/unit/request-extractors/express.ts | 30 ++--- .../test/unit/request-extractors/hapi.ts | 18 +-- .../test/unit/request-extractors/koa.ts | 12 +- .../test/unit/request-extractors/manual.ts | 8 +- .../test/unit/service-configuration.ts | 42 +++---- .../utils/errors-api-transport.ts | 12 +- handwritten/error-reporting/utils/fuzzer.ts | 96 +++++++-------- 25 files changed, 429 insertions(+), 422 deletions(-) diff --git a/handwritten/error-reporting/README_OLD.md b/handwritten/error-reporting/README_OLD.md index e8529aa573e..33364d9b185 100644 --- a/handwritten/error-reporting/README_OLD.md +++ b/handwritten/error-reporting/README_OLD.md @@ -48,7 +48,7 @@ runtime configuration object is set to `true`. See the [Configuration](#configu ```js // Require the library and initialize the error handler -var errors = require('@google-cloud/error-reporting')({ +const errors = require('@google-cloud/error-reporting')({ serviceContext: {service: 'my-service'} // not needed on Google Cloud }); @@ -76,7 +76,7 @@ Uncaught exceptions are not reported by default. *It is recommended to process Note that uncaught exceptions are not reported by default because to do so would require adding a listener to the `uncaughtException` event. Adding such a listener without knowledge of other `uncaughtException` listeners can cause interference between the event handlers or prevent the process from terminating cleanly. As such, it is necessary for `uncaughtException`s to be reported manually. ```js -var errors = require('@google-cloud/error-reporting')(); +const errors = require('@google-cloud/error-reporting')(); process.on('uncaughtException', (e) => { // Write the error to stderr. console.error(e); @@ -136,7 +136,7 @@ If your application is running outside of Google Cloud Platform, such as locally ```js // Require and start the agent with configuration options - var errors = require('@google-cloud/error-reporting')({ + const errors = require('@google-cloud/error-reporting')({ // The path to your key file: keyFilename: '/path/to/keyfile.json', @@ -154,7 +154,7 @@ You may use an API key in lieu of locally-stored credentials. Please see [this d Once you have obtained an API key, you may provide it as part of the Error Reporting instance configuration: ```js -var errors = require('@google-cloud/error-reporting')({ +const errors = require('@google-cloud/error-reporting')({ projectId: '{your project ID}', key: '{your api key}' }); @@ -171,7 +171,7 @@ We recommend using a file, environment variable, or another mechanism to store t The following code snippet lists all available configuration options. All configuration options are optional. ```js -var errors = require('@google-cloud/error-reporting')({ +const errors = require('@google-cloud/error-reporting')({ projectId: 'my-project-id', keyFilename: '/path/to/keyfile.json', credentials: require('./path/to/keyfile.json'), @@ -199,10 +199,10 @@ var errors = require('@google-cloud/error-reporting')({ ### Reporting Manually ```js -var errors = require('@google-cloud/error-reporting')(); +const errors = require('@google-cloud/error-reporting')(); // Use the error message builder to customize all fields ... -var errorEvt = errors.event() +const errorEvt = errors.event() .setMessage('My error message') .setUser('root@nexus'); errors.report(errorEvt, () => console.log('done!')); @@ -222,10 +222,10 @@ The stack trace associated with an error can be viewed in the error reporting co ### Using Express ```js -var express = require('express'); -var errors = require('@google-cloud/error-reporting')(); +const express = require('express'); +const errors = require('@google-cloud/error-reporting')(); -var app = express(); +const app = express(); app.get('/error', (req, res, next) => { res.send('Something broke!'); @@ -246,10 +246,10 @@ app.listen(3000); ### Using Hapi ```js -var hapi = require('hapi'); -var errors = require('@google-cloud/error-reporting')(); +const hapi = require('hapi'); +const errors = require('@google-cloud/error-reporting')(); -var server = new hapi.Server(); +const server = new hapi.Server(); server.connection({ port: 3000 }); server.start(); @@ -268,10 +268,10 @@ server.register(errors.hapi); ### Using Koa ```js -var Koa = require('koa'); -var errors = require('@google-cloud/error-reporting')(); +const Koa = require('koa'); +const errors = require('@google-cloud/error-reporting')(); -var app = new Koa(); +const app = new Koa(); app.use(errors.koa); @@ -291,14 +291,14 @@ app.listen(3000); ### Using Restify ```js -var restify = require('restify'); -var errors = require('@google-cloud/error-reporting')(); +const restify = require('restify'); +const errors = require('@google-cloud/error-reporting')(); function respond(req, res, next) { next(new Error('this is a restify error')); } -var server = restify.createServer(); +const server = restify.createServer(); server.use(errors.restify(server)); server.get('/hello/:name', respond); diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index 323a256a849..d53459b50f1 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -23,9 +23,9 @@ import {ErrorReporting} from '../src/index'; import {FakeConfiguration as Configuration} from '../test/fixtures/configuration'; import {createLogger} from '../src/logger'; import * as is from 'is'; -var isObject = is.object; -var isString = is.string; -var isEmpty = is.empty; +const isObject = is.object; +const isString = is.string; +const isEmpty = is.empty; import * as forEach from 'lodash.foreach'; import * as assign from 'lodash.assign'; import * as pick from 'lodash.pick'; @@ -112,7 +112,7 @@ const env = new InstancedEnv({ }); function shouldRun() { - var shouldRun = true; + let shouldRun = true; if (!isString(env.injected().projectId)) { console.log('The project id (projectId) was not set in the env'); shouldRun = false; @@ -143,9 +143,9 @@ if (!shouldRun()) { } describe('Request/Response lifecycle mocking', function() { - var sampleError = new Error(ERR_TOKEN); - var errorMessage = new ErrorMessage().setMessage(sampleError.message); - var fakeService, client, logger; + const sampleError = new Error(ERR_TOKEN); + const errorMessage = new ErrorMessage().setMessage(sampleError.message); + let fakeService, client, logger; before(function() { env.sterilizeProcess(); }); @@ -185,8 +185,8 @@ describe('Request/Response lifecycle mocking', function() { it('Should retry when receiving retryable errors', function(done) { this.timeout(25000); - var tries = 0; - var intendedTries = 4; + let tries = 0; + const intendedTries = 4; fakeService.reply(429, function() { tries += 1; console.log('Mock Server Received Request:', tries + '/' + intendedTries); @@ -202,9 +202,9 @@ describe('Request/Response lifecycle mocking', function() { 'using an API key', function(done) { env.sterilizeProcess().setProjectId().setProduction(); - var key = env.apiKey; - var logger = createLogger({logLevel: 5}); - var client = new RequestHandler( + const key = env.apiKey; + const logger = createLogger({logLevel: 5}); + const client = new RequestHandler( new Configuration({key: key, ignoreEnvironmentCheck: true}, logger), logger); fakeService.query({key: key}).reply(200, function(uri) { @@ -226,8 +226,8 @@ describe('Request/Response lifecycle mocking', function() { }); describe('Client creation', function() { - var sampleError = new Error(ERR_TOKEN); - var errorMessage = new ErrorMessage().setMessage(sampleError.stack!); + const sampleError = new Error(ERR_TOKEN); + const errorMessage = new ErrorMessage().setMessage(sampleError.stack!); after(function() { env.sterilizeProcess(); }); @@ -236,8 +236,8 @@ describe('Client creation', function() { 'runtime argument', function(done) { env.sterilizeProcess().setKeyFilename(); - var logger = createLogger({logLevel: 5}); - var cfg = new Configuration( + const logger = createLogger({logLevel: 5}); + const cfg = new Configuration( { projectId: env.injected().projectId, ignoreEnvironmentCheck: true, @@ -259,8 +259,8 @@ describe('Client creation', function() { 'env variable', function(done) { env.sterilizeProcess().setProjectId().setKeyFilename(); - var logger = createLogger({logLevel: 5}); - var cfg = new Configuration({ignoreEnvironmentCheck: true}, logger); + const logger = createLogger({logLevel: 5}); + const cfg = new Configuration({ignoreEnvironmentCheck: true}, logger); this.timeout(10000); assert.doesNotThrow(function() { new RequestHandler(cfg, logger) @@ -277,8 +277,8 @@ describe('Client creation', function() { 'a runtime argument', function(done) { env.sterilizeProcess().setKeyFilename(); - var logger = createLogger({logLevel: 5}); - var cfg = new Configuration( + const logger = createLogger({logLevel: 5}); + const cfg = new Configuration( { projectId: parseInt(env.injected().projectNumber), ignoreEnvironmentCheck: true, @@ -300,8 +300,8 @@ describe('Client creation', function() { 'an env variable', function(done) { env.sterilizeProcess().setKeyFilename().setProjectNumber(); - var logger = createLogger({logLevel: 5}); - var cfg = new Configuration({ignoreEnvironmentCheck: true}, logger); + const logger = createLogger({logLevel: 5}); + const cfg = new Configuration({ignoreEnvironmentCheck: true}, logger); this.timeout(10000); assert.doesNotThrow(function() { new RequestHandler(cfg, logger) @@ -316,15 +316,15 @@ describe('Client creation', function() { }); describe('Expected Behavior', function() { - var ERROR_STRING = [ + const ERROR_STRING = [ 'Stackdriver error reporting client has not been configured to send', 'errors, please check the NODE_ENV environment variable and make', 'sure it is set to "production" or set the ignoreEnvironmentCheck', 'property to true in the runtime configuration object', ].join(' '); - var er = new Error(ERR_TOKEN); - var em = new ErrorMessage().setMessage(er.stack!); + const er = new Error(ERR_TOKEN); + const em = new ErrorMessage().setMessage(er.stack!); after(function() { env.sterilizeProcess(); @@ -334,8 +334,8 @@ describe('Expected Behavior', function() { function(done) { env.sterilizeProcess().setKeyFilename().setProjectId(); process.env.NODE_ENV = 'null'; - var logger = createLogger({logLevel: 5}); - var client = + const logger = createLogger({logLevel: 5}); + const client = new RequestHandler(new Configuration(undefined, logger), logger); client.sendError({} as ErrorMessage, function(err, response) { assert(err instanceof Error); @@ -347,14 +347,14 @@ describe('Expected Behavior', function() { it('Should succeed in its request given a valid project id', function(done) { env.sterilizeProcess(); - var logger = createLogger({logLevel: 5}); - var cfg = new Configuration( + const logger = createLogger({logLevel: 5}); + const cfg = new Configuration( { projectId: env.injected().projectId, ignoreEnvironmentCheck: true, }, logger); - var client = new RequestHandler(cfg, logger); + const client = new RequestHandler(cfg, logger); client.sendError(em, function(err, response, body) { assert.strictEqual(err, null); @@ -368,14 +368,14 @@ describe('Expected Behavior', function() { it('Should succeed in its request given a valid project number', function(done) { env.sterilizeProcess(); - var logger = createLogger({logLevel: 5}); - var cfg = new Configuration( + const logger = createLogger({logLevel: 5}); + const cfg = new Configuration( { projectId: parseInt(env.injected().projectNumber), ignoreEnvironmentCheck: true, }, logger); - var client = new RequestHandler(cfg, logger); + const client = new RequestHandler(cfg, logger); client.sendError(em, function(err, response, body) { assert.strictEqual(err, null); assert(isObject(body)); @@ -439,10 +439,10 @@ describe('error-reporting', function() { const SERVICE = buildName('service-name'); const VERSION = buildName('service-version'); - var errors; - var transport; - var oldLogger; - var logOutput = ''; + let errors; + let transport; + let oldLogger; + let logOutput = ''; before(function() { // This test assumes that only the error-reporting library will be // adding listeners to the 'unhandledRejection' event. Thus we need to @@ -453,7 +453,7 @@ describe('error-reporting', function() { assert.strictEqual(process.listenerCount('unhandledRejection'), 0); oldLogger = console.log; console.log = function() { - var text = util.format.apply(null, arguments); + const text = util.format.apply(null, arguments); oldLogger(text); logOutput += text; }; @@ -462,7 +462,7 @@ describe('error-reporting', function() { function reinitialize(extraConfig?: {}) { process.removeAllListeners('unhandledRejection'); - var config = Object.assign( + const config = Object.assign( { ignoreEnvironmentCheck: true, serviceContext: { @@ -495,7 +495,7 @@ describe('error-reporting', function() { assert.ifError(err); assert.ok(groups); - var matchedErrors = groups.filter(function(errItem) { + const matchedErrors = groups.filter(function(errItem) { return ( errItem && errItem.representative && errItem.representative.serviceContext && @@ -513,10 +513,10 @@ describe('error-reporting', function() { verifyAllGroups(messageTest, timeout, function(matchedErrors) { // The error should have been reported exactly once assert.strictEqual(matchedErrors.length, 1); - var errItem = matchedErrors[0]; + const errItem = matchedErrors[0]; assert.ok(errItem); assert.equal(errItem.count, 1); - var rep = errItem.representative; + const rep = errItem.representative; assert.ok(rep); // Ensure the stack trace in the message does not contain any frames // specific to the error-reporting library. @@ -528,7 +528,7 @@ describe('error-reporting', function() { // This ensures that only the frames specific to the // error-reporting library are removed from the stack trace. assert.notStrictEqual(rep.message.indexOf('expectedTopOfStack'), -1); - var context = rep.serviceContext; + const context = rep.serviceContext; assert.ok(context); assert.strictEqual(context.service, SERVICE); assert.strictEqual(context.version, VERSION); @@ -556,8 +556,8 @@ describe('error-reporting', function() { it('Should correctly publish an error that is an Error object', function verifyErrors(done) { this.timeout(TIMEOUT * 2); - var errorId = buildName('with-error-constructor'); - var errOb = (function expectedTopOfStack() { + const errorId = buildName('with-error-constructor'); + const errOb = (function expectedTopOfStack() { return new Error(errorId); })(); verifyReporting(errOb, function(message) { @@ -567,7 +567,7 @@ describe('error-reporting', function() { it('Should correctly publish an error that is a string', function(done) { this.timeout(TIMEOUT * 2); - var errorId = buildName('with-string'); + const errorId = buildName('with-string'); verifyReporting(errorId, function(message) { return message.startsWith(errorId + '\n'); }, TIMEOUT, done); @@ -597,7 +597,7 @@ describe('error-reporting', function() { it('Should correctly publish an error that is a number', function(done) { this.timeout(TIMEOUT * 2); - var num = new Date().getTime(); + const num = new Date().getTime(); verifyReporting(num, function(message) { return message.startsWith('' + num + '\n'); }, TIMEOUT, done); @@ -606,7 +606,7 @@ describe('error-reporting', function() { it('Should correctly publish an error that is of an unknown type', function(done) { this.timeout(TIMEOUT * 2); - var bool = true; + const bool = true; verifyReporting(bool, function(message) { return message.startsWith('true\n'); }, TIMEOUT, done); @@ -614,14 +614,14 @@ describe('error-reporting', function() { it('Should correctly publish errors using an error builder', function(done) { this.timeout(TIMEOUT * 2); - var errorId = buildName('with-error-builder'); + const errorId = buildName('with-error-builder'); // Use an IIFE with the name `definitionSiteFunction` to use later to ensure // the stack trace of the point where the error message was constructed is // used. // Use an IIFE with the name `expectedTopOfStack` so that the test can // verify that the stack trace used does not contain any frames // specific to the error-reporting library. - var errOb = (function definitionSiteFunction() { + const errOb = (function definitionSiteFunction() { return (function expectedTopOfStack() { return errors.event().setMessage(errorId); })(); @@ -643,7 +643,7 @@ describe('error-reporting', function() { it('Should report unhandledRejections if enabled', function(done) { this.timeout(TIMEOUT * 2); reinitialize({reportUnhandledRejections: true}); - var rejectValue = buildName('promise-rejection'); + const rejectValue = buildName('promise-rejection'); (function expectedTopOfStack() { // An Error is used for the rejection value so that it's stack // contains the stack trace at the point the rejection occured and is @@ -651,9 +651,9 @@ describe('error-reporting', function() { // test can verify that the collected stack is correct. Promise.reject(new Error(rejectValue)); })(); - var rejectText = 'Error: ' + rejectValue; + const rejectText = 'Error: ' + rejectValue; setImmediate(function() { - var expected = 'UnhandledPromiseRejectionWarning: Unhandled ' + + const expected = 'UnhandledPromiseRejectionWarning: Unhandled ' + 'promise rejection: ' + rejectText + '. This rejection has been reported to the ' + 'Google Cloud Platform error-reporting console.'; @@ -667,12 +667,12 @@ describe('error-reporting', function() { it('Should not report unhandledRejections if disabled', function(done) { this.timeout(TIMEOUT * 2); reinitialize({reportUnhandledRejections: false}); - var rejectValue = buildName('promise-rejection'); + const rejectValue = buildName('promise-rejection'); (function expectedTopOfStack() { Promise.reject(rejectValue); })(); setImmediate(function() { - var notExpected = 'UnhandledPromiseRejectionWarning: Unhandled ' + + const notExpected = 'UnhandledPromiseRejectionWarning: Unhandled ' + 'promise rejection: ' + rejectValue + '. This rejection has been reported to the error-reporting console.'; assert.strictEqual(logOutput.indexOf(notExpected), -1); diff --git a/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts index 54ddf4bf09a..7d07a4239d0 100644 --- a/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts @@ -15,26 +15,26 @@ */ // jscs:disable requireEarlyReturn -var WARNING_HEADER = '\n!! -WARNING-'; -var EXCLAMATION_LN = '\n!!'; -var has = require('lodash.has'); -var express = require('express'); -var app = express(); -var errorHandler = require('../../src/index.js')({ +const WARNING_HEADER = '\n!! -WARNING-'; +const EXCLAMATION_LN = '\n!!'; +import has = require('lodash.has'); +import * as express from 'express'; +const app = express(); +const errorHandler = require('../../src/index.js')({ onUncaughtException: 'report', key: process.env.STUBBED_API_KEY, projectId: process.env.STUBBED_PROJECT_NUM, }); -var bodyParser = require('body-parser'); +const bodyParser = require('body-parser'); // eslint-disable-next-line no-console -var log = console.log; +const log = console.log; app.use(bodyParser.json()); app.post('/testErrorHandling', function(req, res, next) { if (has(req.body, 'test') && req.body.test !== true) { - return next(new Error('Error on Express Regular Error POST Route')); + return next!(new Error('Error on Express Regular Error POST Route')); } else { res.send('Success'); res.end(); @@ -58,11 +58,11 @@ app.get('/customError', function(req, res, next) { res.send('Success'); res.end(); - next(); + next!(); }); app.get('/getError', function(req, res, next) { - return next(new Error('Error on Express Regular Error GET Route')); + return next!(new Error('Error on Express Regular Error GET Route')); }); app.use(errorHandler.express); diff --git a/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts index 14b864bbff7..89001418bc6 100644 --- a/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts @@ -14,23 +14,24 @@ * limitations under the License. */ -var hapi = require('hapi'); -var errorHandler = require('../../src/index.js')(); +import * as hapi from 'hapi'; +import {ErrorReporting} from '../../src/index'; +const errorHandler = new ErrorReporting(); -var server = new hapi.Server(); +const server = new hapi.Server(); server.connection({port: 3000}); // eslint-disable-next-line no-console -var log = console.log; +const log = console.log; // eslint-disable-next-line no-console -var error = console.error; +const error = console.error; server.start(err => { if (err) { throw err; } - log('Server running at', server.info.uri); + log('Server running at', server.info!.uri); }); server.route({ @@ -51,7 +52,7 @@ server.route({ }, }); -server.register({register: errorHandler.hapi}, err => { +server.register({register: errorHandler.hapi} as {} as hapi.PluginFunction<{}>, err => { if (err) { error('There was an error in registering the plugin', err); } diff --git a/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts index 95c9d593ee9..e6403352720 100644 --- a/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts @@ -16,11 +16,14 @@ // jscs doesn't understand koa.. // jscs:disable -var errorHandler = require('../../src/index.js')({ +import {ErrorReporting} from '../../src'; +const errorHandler = new ErrorReporting({ + // TODO: Address the fact that this configuration + // option is now invalid. onUncaughtException: 'report', -}); -var koa = require('koa'); -var app = koa(); +} as {}); +import * as koa from 'koa'; +const app = (koa as Function)(); app.use(errorHandler.koa); @@ -31,18 +34,20 @@ app.use(function*(this, next) { }); app.use(function*(this, next) { - var start = new Date() as any; + // TODO: Address the fact that new Date() + // is used instead of Date.now() + const start = new Date() as any; yield next; - var ms = new Date() as any - start; + const ms = new Date() as any - start; this.set('X-Response-Time', ms + 'ms'); }); // logger app.use(function*(this, next) { - var start = new Date() as any; + const start = new Date() as any; yield next; - var ms = new Date() as any - start; + const ms = new Date() as any - start; // eslint-disable-next-line no-console console.log('%s %s - %s', this.method, this.url, ms); }); diff --git a/handwritten/error-reporting/test/test-servers/manual_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/manual_scaffold_server.ts index 91abcf37445..b7dd9faea76 100644 --- a/handwritten/error-reporting/test/test-servers/manual_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/manual_scaffold_server.ts @@ -14,8 +14,9 @@ * limitations under the License. */ -const errors = require('../../src/index.js')(); -errors.report('Sample test string', err => { +import {ErrorReporting} from '../../src/index'; +const errors = new ErrorReporting(); +(errors.report as Function)('Sample test string', err => { // eslint-disable-next-line no-console console.log( 'Callback from report:\n', '\tError: ', err, '\n', '\tResponse Body:'); diff --git a/handwritten/error-reporting/test/test-servers/restify_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/restify_scaffold_server.ts index 56b839e7a8a..a58118ad83a 100644 --- a/handwritten/error-reporting/test/test-servers/restify_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/restify_scaffold_server.ts @@ -18,10 +18,11 @@ function respond(req, res, next) { next(new Error('this is a restify error')); } -var restify = require('restify'); -var errorHandler = require('../../src/index.js')(); +import * as restify from 'restify'; +import {ErrorReporting} from '../../src/index'; +const errorHandler = new ErrorReporting(); -var server = restify.createServer(); +const server = restify.createServer(); server.use(errorHandler.restify(server)); server.get('/hello/:name', respond); diff --git a/handwritten/error-reporting/test/unit/build-stack-trace.ts b/handwritten/error-reporting/test/unit/build-stack-trace.ts index 5dd02139fad..8b84c127154 100644 --- a/handwritten/error-reporting/test/unit/build-stack-trace.ts +++ b/handwritten/error-reporting/test/unit/build-stack-trace.ts @@ -35,7 +35,7 @@ describe('build-stack-trace', function() { (function functionA() { (function functionB() { (function functionC() { - var stackTrace = buildStackTrace(); + const stackTrace = buildStackTrace(); assert(stackTrace); assert.strictEqual(stackTrace.indexOf(SRC_ROOT), -1); })(); @@ -47,7 +47,7 @@ describe('build-stack-trace', function() { (function functionA() { (function functionB() { (function functionC() { - var stackTrace = buildStackTrace(); + const stackTrace = buildStackTrace(); assert(stackTrace); assert.notStrictEqual(stackTrace.indexOf('functionA'), -1); assert.notStrictEqual(stackTrace.indexOf('functionB'), -1); diff --git a/handwritten/error-reporting/test/unit/classes/error-message.ts b/handwritten/error-reporting/test/unit/classes/error-message.ts index c2dace9c159..231c618b68a 100644 --- a/handwritten/error-reporting/test/unit/classes/error-message.ts +++ b/handwritten/error-reporting/test/unit/classes/error-message.ts @@ -21,7 +21,7 @@ import {ErrorMessage} from '../../../src/classes/error-message'; import { RequestInformationContainer } from '../../../src/classes/request-information-container'; describe('Instantiating a new ErrorMessage', function() { - var em; + let em; beforeEach(function() { em = new ErrorMessage(); }); @@ -52,7 +52,7 @@ describe('Instantiating a new ErrorMessage', function() { }); describe('Calling against setEventTimeToNow', function() { - var em; + let em; beforeEach(function() { em = new ErrorMessage(); }); @@ -63,11 +63,11 @@ describe('Calling against setEventTimeToNow', function() { }); describe('Fuzzing against setServiceContext', function() { - var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; - var DEFAULT_TEST_VALUE = 'DEFAULT'; - var DEFAULT_VERSION_VALUE = undefined; - var DEFAULT_SERVICE_VALUE = 'node'; - var em; + const AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; + const DEFAULT_TEST_VALUE = 'DEFAULT'; + const DEFAULT_VERSION_VALUE = undefined; + const DEFAULT_SERVICE_VALUE = 'node'; + let em; beforeEach(function() { em = new ErrorMessage(); }); @@ -170,12 +170,12 @@ describe('Fuzzing against setServiceContext', function() { }); describe('Fuzzing against setMessage', function() { - var em; + let em; beforeEach(function() { em = new ErrorMessage(); }); - var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; - var NEGATIVE_TEST_VALUE = ''; + const AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; + const NEGATIVE_TEST_VALUE = ''; it('Should set the message', function() { em.setMessage(AFFIRMATIVE_TEST_VALUE); @@ -194,9 +194,9 @@ describe('Fuzzing against setMessage', function() { }); describe('Fuzzing against setHttpMethod', function() { - var em; - var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; - var NEGATIVE_TEST_VALUE = ''; + let em; + const AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; + const NEGATIVE_TEST_VALUE = ''; beforeEach(function() { em = new ErrorMessage(); }); @@ -217,9 +217,9 @@ describe('Fuzzing against setHttpMethod', function() { }); describe('Fuzzing against setUrl', function() { - var em; - var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; - var NEGATIVE_TEST_VALUE = ''; + let em; + const AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; + const NEGATIVE_TEST_VALUE = ''; beforeEach(function() { em = new ErrorMessage(); }); @@ -240,9 +240,9 @@ describe('Fuzzing against setUrl', function() { }); describe('Fuzzing against setUserAgent', function() { - var em; - var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; - var NEGATIVE_TEST_VALUE = ''; + let em; + const AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; + const NEGATIVE_TEST_VALUE = ''; beforeEach(function() { em = new ErrorMessage(); }); @@ -263,9 +263,9 @@ describe('Fuzzing against setUserAgent', function() { }); describe('Fuzzing against setReferrer', function() { - var em; - var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; - var NEGATIVE_TEST_VALUE = ''; + let em; + const AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; + const NEGATIVE_TEST_VALUE = ''; beforeEach(function() { em = new ErrorMessage(); }); @@ -286,9 +286,9 @@ describe('Fuzzing against setReferrer', function() { }); describe('Fuzzing against setResponseStatusCode', function() { - var em; - var AFFIRMATIVE_TEST_VALUE = 200; - var NEGATIVE_TEST_VALUE = 0; + let em; + const AFFIRMATIVE_TEST_VALUE = 200; + const NEGATIVE_TEST_VALUE = 0; beforeEach(function() { em = new ErrorMessage(); }); @@ -309,9 +309,9 @@ describe('Fuzzing against setResponseStatusCode', function() { }); describe('Fuzzing against setRemoteIp', function() { - var em; - var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; - var NEGATIVE_TEST_VALUE = ''; + let em; + const AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; + const NEGATIVE_TEST_VALUE = ''; beforeEach(function() { em = new ErrorMessage(); }); @@ -332,9 +332,9 @@ describe('Fuzzing against setRemoteIp', function() { }); describe('Fuzzing against setUser', function() { - var em; - var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; - var NEGATIVE_TEST_VALUE = ''; + let em; + const AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; + const NEGATIVE_TEST_VALUE = ''; beforeEach(function() { em = new ErrorMessage(); }); @@ -355,9 +355,9 @@ describe('Fuzzing against setUser', function() { }); describe('Fuzzing against setFilePath', function() { - var em; - var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; - var NEGATIVE_TEST_VALUE = ''; + let em; + const AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; + const NEGATIVE_TEST_VALUE = ''; beforeEach(function() { em = new ErrorMessage(); }); @@ -378,9 +378,9 @@ describe('Fuzzing against setFilePath', function() { }); describe('Fuzzing against setLineNumber', function() { - var em; - var AFFIRMATIVE_TEST_VALUE = 27; - var NEGATIVE_TEST_VALUE = 0; + let em; + const AFFIRMATIVE_TEST_VALUE = 27; + const NEGATIVE_TEST_VALUE = 0; beforeEach(function() { em = new ErrorMessage(); }); @@ -401,9 +401,9 @@ describe('Fuzzing against setLineNumber', function() { }); describe('Fuzzing against setFunctionName', function() { - var em; - var AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; - var NEGATIVE_TEST_VALUE = ''; + let em; + const AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; + const NEGATIVE_TEST_VALUE = ''; beforeEach(function() { em = new ErrorMessage(); }); @@ -424,13 +424,13 @@ describe('Fuzzing against setFunctionName', function() { }); describe('Fuzzing against consumeRequestInformation', function() { - var em = new ErrorMessage(); - var A_VALID_STRING = 'A_VALID_STRING'; - var A_VALID_NUMBER = 201; - var NEGATIVE_STRING_CASE = ''; - var NEGATIVE_NUMBER_CASE = 0; + const em = new ErrorMessage(); + const A_VALID_STRING = 'A_VALID_STRING'; + const A_VALID_NUMBER = 201; + const NEGATIVE_STRING_CASE = ''; + const NEGATIVE_NUMBER_CASE = 0; - var AFFIRMATIVE_TEST_VALUE = { + const AFFIRMATIVE_TEST_VALUE = { method: A_VALID_STRING, url: A_VALID_STRING, userAgent: A_VALID_STRING, @@ -438,7 +438,7 @@ describe('Fuzzing against consumeRequestInformation', function() { statusCode: A_VALID_NUMBER, remoteAddress: A_VALID_STRING, }; - var NEGATIVE_TEST_VALUE = { + const NEGATIVE_TEST_VALUE = { method: null, url: A_VALID_NUMBER, userAgent: {}, diff --git a/handwritten/error-reporting/test/unit/classes/request-information-container.ts b/handwritten/error-reporting/test/unit/classes/request-information-container.ts index 1492651a5de..402dff2cb5a 100644 --- a/handwritten/error-reporting/test/unit/classes/request-information-container.ts +++ b/handwritten/error-reporting/test/unit/classes/request-information-container.ts @@ -19,8 +19,8 @@ import {RequestInformationContainer} from '../../../src/classes/request-informat import {Fuzzer} from '../../../utils/fuzzer'; describe('RequestInformationContainer', function() { - var f = new Fuzzer(); - var cbFn, ric; + const f = new Fuzzer(); + let cbFn, ric; beforeEach(function() { ric = new RequestInformationContainer(); }); @@ -63,8 +63,8 @@ describe('RequestInformationContainer', function() { }); }); describe('Fuzzing against for positive cases', function() { - var VALID_STRING_INPUT = 'valid'; - var VALID_NUMBER_INPUT = 500; + const VALID_STRING_INPUT = 'valid'; + const VALID_NUMBER_INPUT = 500; it('Should assign the value to the url property', function() { ric.setUrl(VALID_STRING_INPUT); assert.deepEqual(ric.url, VALID_STRING_INPUT); diff --git a/handwritten/error-reporting/test/unit/configuration.ts b/handwritten/error-reporting/test/unit/configuration.ts index cead372ff87..d7651d8d7f3 100644 --- a/handwritten/error-reporting/test/unit/configuration.ts +++ b/handwritten/error-reporting/test/unit/configuration.ts @@ -16,20 +16,20 @@ import * as assert from 'assert'; import * as is from 'is'; -var isNumber = is.number; +const isNumber = is.number; import merge = require('lodash.merge'); import {FakeConfiguration as Configuration} from '../fixtures/configuration'; import {Fuzzer} from '../../utils/fuzzer'; -var level = process.env.GCLOUD_ERRORS_LOGLEVEL; +const level = process.env.GCLOUD_ERRORS_LOGLEVEL; import {createLogger} from '../../src/logger'; -var logger = createLogger({ +const logger = createLogger({ logLevel: isNumber(level) ? level : 4, }); import * as nock from 'nock'; -var METADATA_URL = 'http://metadata.google.internal/computeMetadata/v1/project'; +const METADATA_URL = 'http://metadata.google.internal/computeMetadata/v1/project'; -var configEnv = { +const configEnv = { NODE_ENV: process.env.NODE_ENV, GCLOUD_PROJECT: process.env.GCLOUD_PROJECT, GAE_MODULE_NAME: process.env.GAE_MODULE_NAME, @@ -59,11 +59,11 @@ describe('Configuration class', function() { restoreConfigEnv(); }); describe('Initialization', function() { - var f = new Fuzzer(); - var stubConfig = {test: true}; + const f = new Fuzzer(); + const stubConfig = {test: true}; describe('fuzzing the constructor', function() { it('Should return default values', function() { - var c; + let c; f.fuzzFunctionForTypes(function(givenConfigFuzz) { c = new Configuration(givenConfigFuzz, logger); assert.deepEqual(c._givenConfiguration, {}); @@ -71,7 +71,7 @@ describe('Configuration class', function() { }); }); describe('valid config and default values', function() { - var c; + let c; before(function() { process.env.NODE_ENV = 'development'; }); @@ -103,15 +103,15 @@ describe('Configuration class', function() { }); }); describe('with ignoreEnvironmentCheck', function() { - var conf = merge({}, stubConfig, {ignoreEnvironmentCheck: true}); - var c = new Configuration(conf, logger); + const conf = merge({}, stubConfig, {ignoreEnvironmentCheck: true}); + const c = new Configuration(conf, logger); it('Should reportErrorsToAPI', function() { assert.strictEqual(c.getShouldReportErrorsToAPI(), true); }); }); describe('without ignoreEnvironmentCheck', function() { describe('report behaviour with production env', function() { - var c; + let c; before(function() { sterilizeConfigEnv(); process.env.NODE_ENV = 'production'; @@ -164,8 +164,8 @@ describe('Configuration class', function() { sterilizeConfigEnv(); }); describe('project id from configuration instance', function() { - var pi = 'test'; - var c; + const pi = 'test'; + let c; before(function() { c = new Configuration({projectId: pi}, logger); }); @@ -177,8 +177,8 @@ describe('Configuration class', function() { }); }); describe('project number from configuration instance', function() { - var pn = 1234; - var c; + const pn = 1234; + let c; before(function() { sterilizeConfigEnv(); c = new Configuration({projectId: pn}, logger); @@ -194,7 +194,7 @@ describe('Configuration class', function() { }); describe('Exception behaviour', function() { describe('While lacking a project id', function() { - var c; + let c; before(function() { sterilizeConfigEnv(); createDeadMetadataService(); @@ -209,7 +209,7 @@ describe('Configuration class', function() { }); }); describe('Invalid type for projectId in runtime config', function() { - var c; + let c; before(function() { sterilizeConfigEnv(); createDeadMetadataService(); @@ -242,8 +242,8 @@ describe('Configuration class', function() { sterilizeConfigEnv(); }); describe('no longer tests env itself', function() { - var c; - var projectId = 'test-xyz'; + let c; + const projectId = 'test-xyz'; before(function() { process.env.GCLOUD_PROJECT = projectId; c = new Configuration(undefined, logger); @@ -253,9 +253,9 @@ describe('Configuration class', function() { }); }); describe('serviceContext', function() { - var c; - var projectId = 'test-abc'; - var serviceContext = { + let c; + const projectId = 'test-abc'; + const serviceContext = { service: 'test', version: '1.x', }; @@ -275,9 +275,9 @@ describe('Configuration class', function() { sterilizeConfigEnv(); }); describe('serviceContext', function() { - var c; - var projectId = 'xyz123'; - var serviceContext = { + let c; + const projectId = 'xyz123'; + const serviceContext = { service: 'evaluation', version: '2.x', }; @@ -292,9 +292,9 @@ describe('Configuration class', function() { }); }); describe('api key', function() { - var c; - var projectId = '987abc'; - var key = '1337-api-key'; + let c; + const projectId = '987abc'; + const key = '1337-api-key'; before(function() { c = new Configuration( { @@ -308,8 +308,8 @@ describe('Configuration class', function() { }); }); describe('reportUnhandledRejections', function() { - var c; - var reportRejections = false; + let c; + const reportRejections = false; before(function() { c = new Configuration({ reportUnhandledRejections: reportRejections, diff --git a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts index eee87e0f4ef..9d8d6f803d0 100644 --- a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts +++ b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts @@ -34,14 +34,14 @@ function verifyReportedMessage(config1, errToReturn, expectedLogs) { } } - var RequestHandler = proxyquire('../../../src/google-apis/auth-client.js', { + const RequestHandler = proxyquire('../../../src/google-apis/auth-client.js', { '@google-cloud/common': { Service: ServiceStub, }, }).RequestHandler; - var logs: {error?: string; info?: string;} = {}; - var logger = { + const logs: {error?: string; info?: string;} = {}; + const logger = { error: function(text) { if (!logs.error) { logs.error = ''; @@ -55,25 +55,25 @@ function verifyReportedMessage(config1, errToReturn, expectedLogs) { logs.info += text; }, }; - var config2 = new Configuration(config1, logger as Logger); + const config2 = new Configuration(config1, logger as Logger); new RequestHandler(config2, logger); assert.deepStrictEqual(logs, expectedLogs); } describe('RequestHandler', function() { it('should not request OAuth2 token if key is provided', function() { - var config = { + const config = { ignoreEnvironmentCheck: true, key: 'key', }; - var message = 'Made OAuth2 Token Request'; + const message = 'Made OAuth2 Token Request'; verifyReportedMessage(config, new Error(message), { info: 'API key provided; skipping OAuth2 token request.', }); }); it('should issue a warning if it cannot communicate with the API', function() { - var config = {ignoreEnvironmentCheck: true}; - var message = 'Test Error'; + const config = {ignoreEnvironmentCheck: true}; + const message = 'Test Error'; verifyReportedMessage(config, new Error(message), { error: 'Unable to find credential information on instance. This ' + 'library will be unable to communicate with the Stackdriver API to ' + @@ -83,7 +83,7 @@ describe('RequestHandler', function() { it('should not issue a warning if it can communicate with the API', function() { - var config = {ignoreEnvironmentCheck: true}; + const config = {ignoreEnvironmentCheck: true}; verifyReportedMessage(config, null, {}); verifyReportedMessage(config, undefined, {}); }); diff --git a/handwritten/error-reporting/test/unit/interfaces/express.ts b/handwritten/error-reporting/test/unit/interfaces/express.ts index dc78ffbaf4c..a2cb38ba832 100644 --- a/handwritten/error-reporting/test/unit/interfaces/express.ts +++ b/handwritten/error-reporting/test/unit/interfaces/express.ts @@ -27,7 +27,7 @@ describe('expressInterface', function() { describe('Exception handling', function() { describe('Given invalid input', function() { it('Should not throw errors', function() { - var f = new Fuzzer(); + const f = new Fuzzer(); assert.doesNotThrow(function() { f.fuzzFunctionForTypes(expressInterface, ['object', 'object']); return; @@ -36,7 +36,7 @@ describe('expressInterface', function() { }); }); describe('Intended behaviour', function() { - var stubbedConfig = new Configuration( + const stubbedConfig = new Configuration( { serviceContext: { service: 'a_test_service', @@ -47,15 +47,15 @@ describe('expressInterface', function() { (stubbedConfig as {} as {lacksCredentials: Function}).lacksCredentials = function() { return false; }; - var client = { + const client = { sendError: function() { return; }, }; - var testError = new Error('This is a test'); - var validBoundHandler = expressInterface(client as {} as RequestHandler, stubbedConfig); + const testError = new Error('This is a test'); + const validBoundHandler = expressInterface(client as {} as RequestHandler, stubbedConfig); it('Should return the error message', function() { - var res = validBoundHandler(testError, null!, null!, null!); + const res = validBoundHandler(testError, null!, null!, null!); assert.deepEqual( res, merge( @@ -68,19 +68,19 @@ describe('expressInterface', function() { }); describe('Calling back to express builtins', function() { it('Should callback to next', function(done) { - var nextCb = function() { + const nextCb = function() { done(); }; validBoundHandler(testError, null!, null!, nextCb); }); it('Should callback to sendError', function(done) { - var sendError = function() { + const sendError = function() { done(); }; - var client = { + const client = { sendError: sendError, }; - var handler = expressInterface(client as {} as RequestHandler, stubbedConfig); + const handler = expressInterface(client as {} as RequestHandler, stubbedConfig); handler(testError, null!, null!, function() { return; }); diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.ts b/handwritten/error-reporting/test/unit/interfaces/hapi.ts index 9e6323a4f1a..cf07fc592df 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.ts +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.ts @@ -16,8 +16,8 @@ import has = require('lodash.has'); import * as is from 'is'; -var isFunction = (is as {} as {fn: Function}).fn; -var isObject = is.object; +const isFunction = (is as {} as {fn: Function}).fn; +const isObject = is.object; import * as assert from 'assert'; import {makeHapiPlugin as hapiInterface} from '../../../src/interfaces/hapi'; import {ErrorMessage} from '../../../src/classes/error-message'; @@ -30,7 +30,7 @@ import {FakeConfiguration as Configuration} from '../../fixtures/configuration'; describe('Hapi interface', function() { describe('Fuzzing the setup handler', function() { it('Should not throw when fuzzed with invalid types', function() { - var f = new Fuzzer(); + const f = new Fuzzer(); assert.doesNotThrow(function() { f.fuzzFunctionForTypes(hapiInterface, ['object', 'object']); return; @@ -38,12 +38,12 @@ describe('Hapi interface', function() { }); }); describe('Providing valid input to the setup handler', function() { - var givenConfig = { + const givenConfig = { getVersion: function() { return '1'; }, }; - var plugin; + let plugin; beforeEach(function() { plugin = hapiInterface(null!, givenConfig as {} as config.Configuration); }); @@ -71,19 +71,19 @@ describe('Hapi interface', function() { }); }); describe('hapiRegisterFunction behaviour', function() { - var fakeServer; + let fakeServer; beforeEach(function() { fakeServer = new EventEmitter(); }); it('Should call fn when the request-error event is emitted', function() { - var fakeClient = { + const fakeClient = { sendError: function(errMsg) { assert( errMsg instanceof ErrorMessage, 'should be an instance of Error message'); }, } as {} as RequestHandler; - var plugin = hapiInterface(fakeClient, { + const plugin = hapiInterface(fakeClient, { lacksCredentials: function() { return false; }, @@ -99,9 +99,9 @@ describe('Hapi interface', function() { }); }); describe('Behaviour around the request/response lifecycle', function() { - var EVENT = 'onPreResponse'; - var fakeClient = {sendError: function() {}} as {} as RequestHandler; - var fakeServer, config, plugin; + const EVENT = 'onPreResponse'; + const fakeClient = {sendError: function() {}} as {} as RequestHandler; + let fakeServer, config, plugin; before(function() { config = new Configuration({ projectId: 'xyz', @@ -140,7 +140,7 @@ describe('Hapi interface', function() { // If `reply.continue()` is not invoked in this situation, the Hapi // app will become unresponsive. plugin.register(fakeServer, null, function() {}); - var reply: Function & {continue?: Function} = function() {}; + const reply: Function & {continue?: Function} = function() {}; reply.continue = function() { // The continue function should be called done(); @@ -148,13 +148,13 @@ describe('Hapi interface', function() { fakeServer.emit(EVENT, {response: {isBoom: true}}, reply); }); it('Should call sendError when a boom is received', function(done) { - var fakeClient = { + const fakeClient = { sendError: function(err) { assert(err instanceof ErrorMessage); done(); }, } as {} as RequestHandler; - var plugin = hapiInterface(fakeClient, config); + const plugin = hapiInterface(fakeClient, config); plugin.register(fakeServer, null!, function() {}); fakeServer.emit('onPreResponse', {response: {isBoom: true}}); }); diff --git a/handwritten/error-reporting/test/unit/interfaces/manual.ts b/handwritten/error-reporting/test/unit/interfaces/manual.ts index 879d09460fc..4bb8829fb83 100644 --- a/handwritten/error-reporting/test/unit/interfaces/manual.ts +++ b/handwritten/error-reporting/test/unit/interfaces/manual.ts @@ -17,7 +17,7 @@ import * as assert from 'assert'; import * as manual from '../../../src/interfaces/manual'; import {FakeConfiguration as Configuration} from '../../fixtures/configuration'; -var config = new Configuration({}); +const config = new Configuration({}); (config as {} as {lacksCredentials: Function}).lacksCredentials = function() { return false; }; @@ -25,12 +25,11 @@ import {ErrorMessage} from '../../../src/classes/error-message'; import { RequestHandler } from '../../../src/google-apis/auth-client'; import { Logger } from '@google-cloud/common'; import { RequestInformationContainer } from '../../../src/classes/request-information-container'; -// var nock = require('nock'); describe('Manual handler', function() { // nock.disableNetConnect(); // Mocked client - var client: RequestHandler = { + const client: RequestHandler = { sendError: function(e, cb) { // immediately callback if (cb) { @@ -38,7 +37,7 @@ describe('Manual handler', function() { } }, } as {} as RequestHandler; - var report = manual.handlerSetup(client, config, { + const report = manual.handlerSetup(client, config, { warn: function(message) { // The use of `report` in this class should issue the following warning // becasue the `report` class is used directly and, as such, cannot @@ -57,21 +56,21 @@ describe('Manual handler', function() { } as Logger); describe('Report invocation behaviour', function() { it('Should allow argument-less invocation', function() { - var r = report(null!); + const r = report(null!); assert(r instanceof ErrorMessage, 'should be an inst of ErrorMessage'); }); it('Should allow single string', function() { - var r = report('doohickey'); + const r = report('doohickey'); assert(r instanceof ErrorMessage, 'should be an inst of ErrorMessage'); assert(r.message.match(/doohickey/), 'string error should propagate'); }); it('Should allow single inst of Error', function() { - var r = report(new Error('hokeypokey')); + const r = report(new Error('hokeypokey')); assert(r.message.match(/hokeypokey/)); }); it('Should allow a function as a malformed error input', function(done) { this.timeout(2000); - var r = report(function() { + const r = report(function() { assert(false, 'callback should not be called'); done(); }); @@ -81,32 +80,32 @@ describe('Manual handler', function() { }, 1000); }); it('Should callback to the supplied function', function(done) { - var r = report('malarkey', function() { + const r = report('malarkey', function() { done(); }); assert(r.message.match(/malarkey/), 'string error should propagate'); }); it('replace the error string with the additional message', function(done) { - var r = report('monkey', 'wrench', function() { + const r = report('monkey', 'wrench', function() { done(); }); assert.strictEqual( r.message, 'wrench', 'additional message should replace'); }); it('Should allow a full array of optional arguments', function(done) { - var r = report('donkey', {method: 'FETCH'}, 'cart', function() { + const r = report('donkey', {method: 'FETCH'}, 'cart', function() { done(); }); assert.strictEqual(r.message, 'cart', 'additional message replace'); assert.strictEqual(r.context.httpRequest.method, 'FETCH'); }); it('Should allow all optional arguments except the callback', function() { - var r = report('whiskey', {method: 'SIP'}, 'sour'); + const r = report('whiskey', {method: 'SIP'}, 'sour'); assert.strictEqual(r.message, 'sour', 'additional message replace'); assert.strictEqual(r.context.httpRequest.method, 'SIP'); }); it('Should allow a lack of additional message', function(done) { - var r = report('ticky', {method: 'TACKEY'}, function() { + const r = report('ticky', {method: 'TACKEY'}, function() { done(); }); assert( @@ -115,7 +114,7 @@ describe('Manual handler', function() { assert.strictEqual(r.context.httpRequest.method, 'TACKEY'); }); it('Should ignore arguments', function(done) { - var r = report('hockey', function() { + const r = report('hockey', function() { done(); }, 'field'); assert( @@ -123,31 +122,31 @@ describe('Manual handler', function() { 'string after callback should be ignored'); }); it('Should ignore arguments', function(done) { - var r = report('passkey', function() { + const r = report('passkey', function() { done(); }, {method: 'HONK'}); assert.notEqual(r.context.httpRequest.method, 'HONK'); }); it('Should allow null arguments as placeholders', function(done) { - var r = report('pokey', null!, null!, function() { + const r = report('pokey', null!, null!, function() { done(); }); assert(r.message.match(/pokey/), 'string error should propagate'); }); it('Should allow explicit undefined', function(done) { - var r = report('Turkey', undefined, undefined, function() { + const r = report('Turkey', undefined, undefined, function() { done(); }); assert(r.message.match(/Turkey/), 'string error should propagate'); }); it('Should allow request to be supplied as undefined', function(done) { - var r = report('turnkey', undefined, 'solution', function() { + const r = report('turnkey', undefined, 'solution', function() { done(); }); assert.strictEqual(r.message, 'solution', 'error should propagate'); }); it('Should allow additional message', function(done) { - var r = report('Mickey', {method: 'SNIFF'}, undefined, function() { + const r = report('Mickey', {method: 'SNIFF'}, undefined, function() { done(); }); assert( @@ -159,17 +158,17 @@ describe('Manual handler', function() { describe('Custom Payload Builder', function() { it('Should accept builder inst as only argument', function() { - var msg = 'builder test'; - var r = report(new ErrorMessage().setMessage(msg)); + const msg = 'builder test'; + const r = report(new ErrorMessage().setMessage(msg)); assert( r.message.startsWith(msg), 'string message should propagate from error message inst'); }); it('Should accept builder and request as arguments', function() { - var msg = 'builder test'; - var oldReq = {method: 'GET'}; - var newReq = {method: 'POST'}; - var r = report( + const msg = 'builder test'; + const oldReq = {method: 'GET'}; + const newReq = {method: 'POST'}; + const r = report( new ErrorMessage().setMessage(msg).consumeRequestInformation(oldReq as RequestInformationContainer), newReq); assert( @@ -181,16 +180,16 @@ describe('Manual handler', function() { ].join('\n')); }); it('Should accept message and additional message params as', function() { - var oldMsg = 'builder test'; - var newMsg = 'analysis'; - var r = report(new ErrorMessage().setMessage(oldMsg), newMsg); + const oldMsg = 'builder test'; + const newMsg = 'analysis'; + const r = report(new ErrorMessage().setMessage(oldMsg), newMsg); assert.strictEqual(r.message, newMsg, [ 'message supplied at report invocation should propagte and, if', 'supplied, should overwrite any prexisting data in the message field.', ].join('\n')); }); it('Should accept message and callback function', function(done) { - var oldMsg = 'builder test'; + const oldMsg = 'builder test'; report(new ErrorMessage().setMessage(oldMsg), function() { done(); }); diff --git a/handwritten/error-reporting/test/unit/interfaces/restify.ts b/handwritten/error-reporting/test/unit/interfaces/restify.ts index d5bd2b9cde8..ed46f8dfee9 100644 --- a/handwritten/error-reporting/test/unit/interfaces/restify.ts +++ b/handwritten/error-reporting/test/unit/interfaces/restify.ts @@ -29,19 +29,19 @@ if (!EventEmitter.prototype.listenerCount) { } describe('restifyInterface', function() { - var UNCAUGHT_EVENT = 'uncaughtException'; - var FINISH = 'finish'; - var noOp = function() { + const UNCAUGHT_EVENT = 'uncaughtException'; + const FINISH = 'finish'; + const noOp = function() { return; }; describe('Attachment to the uncaughtException event', function() { it('Should attach one listener after instantiation', function() { - var ee = new EventEmitter(); + const ee = new EventEmitter(); assert.strictEqual( ee.listenerCount(UNCAUGHT_EVENT), 0, 'Listeners on event should be zero'); // return the bound function which the user will actually interface with - var errorHandlerInstance = restifyInterface(null!, null!); + const errorHandlerInstance = restifyInterface(null!, null!); // execute the handler the user will use with the stubbed server instance errorHandlerInstance(ee); assert.strictEqual( @@ -50,9 +50,9 @@ describe('restifyInterface', function() { }); }); describe('Request handler lifecycle events', function() { - var ee = new EventEmitter(); - var errorHandlerInstance = restifyInterface(null!, null!); - var requestHandlerInstance = errorHandlerInstance(ee); + const ee = new EventEmitter(); + const errorHandlerInstance = restifyInterface(null!, null!); + const requestHandlerInstance = errorHandlerInstance(ee); describe('default path on invalid input', function() { it('Should not throw', function() { assert.doesNotThrow(function() { @@ -62,8 +62,8 @@ describe('restifyInterface', function() { }); describe('default path without req/res error', function() { ee.removeAllListeners(); - var req = new EventEmitter(); - var res = new EventEmitter(); + const req = new EventEmitter(); + const res = new EventEmitter(); (res as {} as {statusCode: number}).statusCode = 200; it('Should have 0 listeners on the finish event', function() { assert.strictEqual(res.listenerCount(FINISH), 0); @@ -84,12 +84,12 @@ describe('restifyInterface', function() { }); describe('default path with req/res error', function() { ee.removeAllListeners(); - var client = { + const client = { sendError: function() { assert(true, 'sendError should be called'); }, }; - var config = { + const config = { getServiceContext: function() { assert(true, 'getServiceContext should be called'); return { @@ -104,10 +104,10 @@ describe('restifyInterface', function() { return '1'; }, } as {} as Configuration; - var errorHandlerInstance = restifyInterface(client as {} as RequestHandler, config); - var requestHandlerInstance = errorHandlerInstance(ee); - var req = new EventEmitter(); - var res = new EventEmitter(); + const errorHandlerInstance = restifyInterface(client as {} as RequestHandler, config); + const requestHandlerInstance = errorHandlerInstance(ee); + const req = new EventEmitter(); + const res = new EventEmitter(); (res as {} as {statusCode: number}).statusCode = 500; it('Should have 0 Listeners on the finish event', function() { assert.strictEqual(res.listenerCount(FINISH), 0); diff --git a/handwritten/error-reporting/test/unit/logger.ts b/handwritten/error-reporting/test/unit/logger.ts index 242526868c6..8dd53453ee4 100644 --- a/handwritten/error-reporting/test/unit/logger.ts +++ b/handwritten/error-reporting/test/unit/logger.ts @@ -19,7 +19,7 @@ import {createLogger} from '../../src/logger'; describe('logger', function() { describe('Initialization', function() { - var oldEnv; + let oldEnv; before(function() { oldEnv = process.env.GCLOUD_ERRORS_LOGLEVEL; delete process.env.GCLOUD_ERRORS_LOGLEVEL; @@ -57,8 +57,8 @@ describe('logger', function() { }); }); describe('Default log level', function() { - var oldLog; - var text; + let oldLog; + let text; beforeEach(function() { // eslint-disable-next-line no-console oldLog = console.log; @@ -66,7 +66,7 @@ describe('logger', function() { // eslint-disable-next-line no-console console.log = function() { oldLog.apply(this, arguments); - for (var i = 0; i < arguments.length; i++) { + for (let i = 0; i < arguments.length; i++) { text += arguments[i]; } }; @@ -77,13 +77,13 @@ describe('logger', function() { console.log = oldLog; }); it('Should print WARN logs by default', function() { - var logger = createLogger(); + const logger = createLogger(); logger.warn('test warning message'); assert.strictEqual( text, 'WARN:@google-cloud/error-reporting: test warning message'); }); it('Should print ERROR logs by default', function() { - var logger = createLogger(); + const logger = createLogger(); logger.error('test error message'); assert.strictEqual( text, 'ERROR:@google-cloud/error-reporting: test error message'); diff --git a/handwritten/error-reporting/test/unit/populate-error-message.ts b/handwritten/error-reporting/test/unit/populate-error-message.ts index 4896369b93a..c2a2684819d 100644 --- a/handwritten/error-reporting/test/unit/populate-error-message.ts +++ b/handwritten/error-reporting/test/unit/populate-error-message.ts @@ -19,10 +19,10 @@ import * as assert from 'assert'; import {ErrorMessage} from '../../src/classes/error-message'; import {populateErrorMessage} from '../../src/populate-error-message'; -var TEST_USER_INVALID = 12; -var TEST_MESSAGE = 'This is a test'; -var TEST_SERVICE_DEFAULT = {service: 'node', version: undefined}; -var TEST_STACK_DEFAULT = { +const TEST_USER_INVALID = 12; +const TEST_MESSAGE = 'This is a test'; +const TEST_SERVICE_DEFAULT = {service: 'node', version: undefined}; +const TEST_STACK_DEFAULT = { filePath: '', lineNumber: 0, functionName: '', @@ -42,11 +42,11 @@ interface AnnotatedError { }; describe('populate-error-message', function() { - var em; - var adversarialObjectInput = { + let em; + const adversarialObjectInput = { stack: {}, }; - var adversarialObjectInputTwo = { + const adversarialObjectInputTwo = { stack: [], }; beforeEach(function() { @@ -90,7 +90,7 @@ describe('populate-error-message', function() { it('Message Field: Should set the message as the stack given an Error', function() { - var err = new Error(TEST_MESSAGE); + const err = new Error(TEST_MESSAGE); populateErrorMessage(err, em); assert.deepEqual( em.message, err.stack, @@ -100,8 +100,8 @@ describe('populate-error-message', function() { it('Message Field: Should set the field given valid input given an object', function() { - var err = {}; - var MESSAGE = 'test'; + let err = {}; + const MESSAGE = 'test'; err = {message: MESSAGE}; populateErrorMessage(err, em); assert.strictEqual(em.message, MESSAGE); @@ -110,15 +110,15 @@ describe('populate-error-message', function() { it('Message Field: Should default the field given lack-of input given ' + 'an object', function() { - var err = {}; + const err = {}; populateErrorMessage(err, em); assert(em.message.startsWith('[object Object]')); }); it('User Field: Should set the field given valid input given an Error', function() { - var err: AnnotatedError = new Error(); - var TEST_USER_VALID = 'TEST_USER'; + const err: AnnotatedError = new Error(); + const TEST_USER_VALID = 'TEST_USER'; err.user = TEST_USER_VALID; populateErrorMessage(err, em); assert.strictEqual(em.context.user, TEST_USER_VALID); @@ -126,7 +126,7 @@ describe('populate-error-message', function() { it('User Field: Should default the field given invalid input given an Error', function() { - var err: AnnotatedError = new Error(); + const err: AnnotatedError = new Error(); err.user = TEST_USER_INVALID; populateErrorMessage(err, em); assert.strictEqual(em.context.user, ''); @@ -134,8 +134,8 @@ describe('populate-error-message', function() { it('User Field: Should set the field given valid input given an object', function() { - var err: AnnotatedError = {}; - var USER = 'test'; + const err: AnnotatedError = {}; + const USER = 'test'; err.user = USER; populateErrorMessage(err, em); assert.strictEqual(em.context.user, USER); @@ -144,7 +144,7 @@ describe('populate-error-message', function() { it('User Field: Should default the field given lack-of input given an ' + 'object', function() { - var err = {}; + const err = {}; populateErrorMessage(err, em); assert.strictEqual(em.context.user, ''); }); @@ -152,8 +152,8 @@ describe('populate-error-message', function() { it('ServiceContext Field: Should set the field given valid input given ' + 'an Error', function() { - var err: AnnotatedError = new Error(); - var TEST_SERVICE_VALID = {service: 'test', version: 'test'}; + const err: AnnotatedError = new Error(); + const TEST_SERVICE_VALID = {service: 'test', version: 'test'}; err.serviceContext = TEST_SERVICE_VALID; populateErrorMessage(err, em); assert.deepEqual(err.serviceContext, TEST_SERVICE_VALID); @@ -162,8 +162,8 @@ describe('populate-error-message', function() { it('ServiceContext Field: Should default the field given invalid input ' + 'given an Error', function() { - var err: AnnotatedError = new Error(); - var TEST_SERVICE_INVALID = 12; + const err: AnnotatedError = new Error(); + const TEST_SERVICE_INVALID = 12; err.serviceContext = TEST_SERVICE_INVALID; populateErrorMessage(err, em); assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); @@ -172,7 +172,7 @@ describe('populate-error-message', function() { it('ServiceContext Field: Should default the field if not given input ' + 'given an Error', function() { - var err = new Error(); + const err = new Error(); populateErrorMessage(err, em); assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); }); @@ -180,8 +180,8 @@ describe('populate-error-message', function() { it('ServiceContext Field: Should set the field given valid input given an ' + 'object', function() { - var err: AnnotatedError = {}; - var TEST_SERVICE_VALID = {service: 'test', version: 'test'}; + const err: AnnotatedError = {}; + const TEST_SERVICE_VALID = {service: 'test', version: 'test'}; err.serviceContext = TEST_SERVICE_VALID; populateErrorMessage(err, em); assert.deepEqual(em.serviceContext, TEST_SERVICE_VALID); @@ -190,8 +190,8 @@ describe('populate-error-message', function() { it('ServiceContext Field: Should default the field given invalid input ' + 'given an object', function() { - var err: AnnotatedError = {}; - var TEST_SERVICE_INVALID = 12; + const err: AnnotatedError = {}; + const TEST_SERVICE_INVALID = 12; err.serviceContext = TEST_SERVICE_INVALID; populateErrorMessage(err, em); assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); @@ -200,7 +200,7 @@ describe('populate-error-message', function() { it('ServiceContext Field: Should default the field given lack-of input ' + 'given an object', function() { - var err = {}; + const err = {}; populateErrorMessage(err, em); assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); }); @@ -208,12 +208,12 @@ describe('populate-error-message', function() { it('Report location Field: Should default the field if given invalid input ' + 'given an Error', function() { - var TEST_STACK_INVALID_CONTENTS = { + const TEST_STACK_INVALID_CONTENTS = { filePath: null, lineNumber: '2', functionName: {}, }; - var err: AnnotatedError = new Error(); + const err: AnnotatedError = new Error(); err.stack = TEST_STACK_INVALID_CONTENTS; populateErrorMessage(err, em); assert.deepEqual(em.context.reportLocation, TEST_STACK_DEFAULT); @@ -222,8 +222,8 @@ describe('populate-error-message', function() { it('Report location Field: Should default field if not given a valid type ' + 'given an Error', function() { - var err: AnnotatedError = new Error(); - var TEST_STACK_INVALID_TYPE = []; + const err: AnnotatedError = new Error(); + const TEST_STACK_INVALID_TYPE = []; err.stack = TEST_STACK_INVALID_TYPE; populateErrorMessage(err, em); assert.deepEqual(em.context.reportLocation, TEST_STACK_DEFAULT); @@ -231,8 +231,8 @@ describe('populate-error-message', function() { it('FilePath Field: Should set the field given valid input given an object', function() { - var err: AnnotatedError = {}; - var PATH = 'test'; + const err: AnnotatedError = {}; + const PATH = 'test'; err.filePath = PATH; populateErrorMessage(err, em); assert.strictEqual(em.context.reportLocation.filePath, PATH); @@ -241,15 +241,15 @@ describe('populate-error-message', function() { it('FilePath Field: Should default the field given lack-of input given ' + 'an object', function() { - var err = {}; + const err = {}; populateErrorMessage(err, em); assert.strictEqual(em.context.reportLocation.filePath, ''); }); it('LineNumber Field: Should set the field given valid input given an object', function() { - var err: AnnotatedError = {}; - var LINE_NUMBER = 10; + const err: AnnotatedError = {}; + const LINE_NUMBER = 10; err.lineNumber = LINE_NUMBER; populateErrorMessage(err, em); assert.strictEqual(em.context.reportLocation.lineNumber, LINE_NUMBER); @@ -258,7 +258,7 @@ describe('populate-error-message', function() { it('LineNumber Field: Should default the field given lack-of input given ' + 'an object', function() { - var err = {}; + const err = {}; populateErrorMessage(err, em); assert.strictEqual(em.context.reportLocation.lineNumber, 0); }); @@ -266,8 +266,8 @@ describe('populate-error-message', function() { it('FunctionName Field: Should set the field given valid input given ' + 'an object', function() { - var err: AnnotatedError = {}; - var FUNCTION_NAME = 'test'; + const err: AnnotatedError = {}; + const FUNCTION_NAME = 'test'; err.functionName = FUNCTION_NAME; populateErrorMessage(err, em); assert.strictEqual( @@ -277,7 +277,7 @@ describe('populate-error-message', function() { it('FunctionName Field: Should default the field given lack-of input given ' + 'an object', function() { - var err = {}; + const err = {}; populateErrorMessage(err, em); assert.strictEqual(em.context.reportLocation.functionName, ''); }); diff --git a/handwritten/error-reporting/test/unit/request-extractors/express.ts b/handwritten/error-reporting/test/unit/request-extractors/express.ts index 806ce3a81c6..68d328e08a1 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/express.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/express.ts @@ -21,8 +21,8 @@ import * as extend from 'extend'; import { Response } from 'express-serve-static-core'; describe('Behaviour under varying input', function() { - var f; - var DEFAULT_RETURN_VALUE = { + let f; + const DEFAULT_RETURN_VALUE = { method: '', url: '', userAgent: '', @@ -34,14 +34,14 @@ describe('Behaviour under varying input', function() { f = new Fuzzer(); }); it('Should return a default value given invalid input', function() { - var cbFn = function(value) { + const cbFn = function(value) { assert.deepEqual(value, DEFAULT_RETURN_VALUE); }; f.fuzzFunctionForTypes( expressRequestInformationExtractor, ['object', 'object'], cbFn); }); it('Should return valid request object given valid input', function() { - var FULL_REQ_DERIVATION_VALUE = { + const FULL_REQ_DERIVATION_VALUE = { method: 'STUB_METHOD', url: 'www.TEST-URL.com', 'user-agent': 'Something like Mozilla', @@ -51,10 +51,10 @@ describe('Behaviour under varying input', function() { remoteAddress: '0.0.0.0', }, }; - var FULL_RES_DERIVATION_VALUE = { + const FULL_RES_DERIVATION_VALUE = { statusCode: 200, }; - var FULL_REQ_EXPECTED_VALUE = { + const FULL_REQ_EXPECTED_VALUE = { method: 'STUB_METHOD', url: 'www.TEST-URL.com', userAgent: 'Something like Mozilla', @@ -63,7 +63,7 @@ describe('Behaviour under varying input', function() { statusCode: 200, }; - var PARTIAL_REQ_DERIVATION_VALUE = { + const PARTIAL_REQ_DERIVATION_VALUE = { method: 'STUB_METHOD_#2', url: 'www.SUPER-TEST.com', 'user-agent': 'Something like Gecko', @@ -72,10 +72,10 @@ describe('Behaviour under varying input', function() { remoteAddress: '0.0.2.1', }, }; - var PARTIAL_RES_DERIVATION_VALUE = { + const PARTIAL_RES_DERIVATION_VALUE = { statusCode: 201, }; - var PARTIAL_REQ_EXPECTED_VALUE = { + const PARTIAL_REQ_EXPECTED_VALUE = { method: 'STUB_METHOD_#2', url: 'www.SUPER-TEST.com', userAgent: 'Something like Gecko', @@ -84,16 +84,16 @@ describe('Behaviour under varying input', function() { statusCode: 201, }; - var ANOTHER_PARTIAL_REQ_DERIVATION_VALUE = { + const ANOTHER_PARTIAL_REQ_DERIVATION_VALUE = { method: 'STUB_METHOD_#2', url: 'www.SUPER-TEST.com', 'user-agent': 'Something like Gecko', referrer: 'www.SUPER-ANOTHER-TEST.com', }; - var ANOTHER_PARTIAL_RES_DERIVATION_VALUE = { + const ANOTHER_PARTIAL_RES_DERIVATION_VALUE = { statusCode: 201, }; - var ANOTHER_PARTIAL_REQ_EXPECTED_VALUE = { + const ANOTHER_PARTIAL_REQ_EXPECTED_VALUE = { method: 'STUB_METHOD_#2', url: 'www.SUPER-TEST.com', userAgent: 'Something like Gecko', @@ -101,8 +101,8 @@ describe('Behaviour under varying input', function() { remoteAddress: '', statusCode: 201, }; - var headerFactory = function(toDeriveFrom) { - var lrn = extend({}, toDeriveFrom); + const headerFactory = function(toDeriveFrom) { + const lrn = extend({}, toDeriveFrom); lrn.header = function(toRet) { if (lrn.hasOwnProperty(toRet)) { return lrn[toRet]; @@ -111,7 +111,7 @@ describe('Behaviour under varying input', function() { }; return lrn; }; - var tmpOutput = expressRequestInformationExtractor( + let tmpOutput = expressRequestInformationExtractor( headerFactory(FULL_REQ_DERIVATION_VALUE), FULL_RES_DERIVATION_VALUE as Response); assert.deepEqual(tmpOutput, FULL_REQ_EXPECTED_VALUE, [ 'Given a valid object input for the request parameter and an', diff --git a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts index 5e6a9f25562..3eeda699bea 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts @@ -22,7 +22,7 @@ import * as hapi from 'hapi'; describe('hapiRequestInformationExtractor behaviour', function() { describe('behaviour given invalid input', function() { it('Should produce the default value', function() { - var DEFAULT_RETURN_VALUE = { + const DEFAULT_RETURN_VALUE = { method: '', url: '', userAgent: '', @@ -30,15 +30,15 @@ describe('hapiRequestInformationExtractor behaviour', function() { statusCode: 0, remoteAddress: '', }; - var f = new Fuzzer(); - var cbFn = function(value) { + const f = new Fuzzer(); + const cbFn = function(value) { assert.deepEqual(value, DEFAULT_RETURN_VALUE); }; f.fuzzFunctionForTypes(hapiRequestInformationExtractor, ['object'], cbFn); }); }); describe('behaviour given valid input', function() { - var FULL_REQ_DERIVATION_VALUE = { + const FULL_REQ_DERIVATION_VALUE = { method: 'STUB_METHOD', url: 'www.TEST-URL.com', info: { @@ -53,7 +53,7 @@ describe('hapiRequestInformationExtractor behaviour', function() { statusCode: 200, }, }; - var FULL_REQ_EXPECTED_VALUE = { + const FULL_REQ_EXPECTED_VALUE = { method: 'STUB_METHOD', url: 'www.TEST-URL.com', userAgent: 'Something like Mozilla', @@ -61,7 +61,7 @@ describe('hapiRequestInformationExtractor behaviour', function() { remoteAddress: '0.0.0.1', statusCode: 200, }; - var PARTIAL_REQ_DERIVATION_VALUE = { + const PARTIAL_REQ_DERIVATION_VALUE = { method: 'STUB_METHOD_#2', url: 'www.SUPER-TEST.com', info: { @@ -77,7 +77,7 @@ describe('hapiRequestInformationExtractor behaviour', function() { }, }, }; - var PARTIAL_REQ_EXPECTED_VALUE = { + const PARTIAL_REQ_EXPECTED_VALUE = { method: 'STUB_METHOD_#2', url: 'www.SUPER-TEST.com', userAgent: 'Something like Gecko', @@ -85,7 +85,7 @@ describe('hapiRequestInformationExtractor behaviour', function() { remoteAddress: '0.0.2.1', statusCode: 201, }; - var ANOTHER_PARTIAL_REQ_DERIVATION_VALUE = { + const ANOTHER_PARTIAL_REQ_DERIVATION_VALUE = { method: 'STUB_METHOD_#2', url: 'www.SUPER-TEST.com', headers: { @@ -93,7 +93,7 @@ describe('hapiRequestInformationExtractor behaviour', function() { referrer: 'www.SUPER-ANOTHER-TEST.com', }, }; - var ANOTHER_PARTIAL_REQ_EXPECTED_VALUE = { + const ANOTHER_PARTIAL_REQ_EXPECTED_VALUE = { method: 'STUB_METHOD_#2', url: 'www.SUPER-TEST.com', userAgent: 'Something like Gecko', diff --git a/handwritten/error-reporting/test/unit/request-extractors/koa.ts b/handwritten/error-reporting/test/unit/request-extractors/koa.ts index 8bac587d2e8..e5a87167fc3 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/koa.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/koa.ts @@ -22,7 +22,7 @@ import { Request, Response } from 'koa'; describe('koaRequestInformationExtractor', function() { describe('Behaviour under invalid input', function() { it('Should produce a default value', function() { - var DEFAULT_RETURN_VALUE = { + const DEFAULT_RETURN_VALUE = { method: '', url: '', userAgent: '', @@ -30,8 +30,8 @@ describe('koaRequestInformationExtractor', function() { statusCode: 0, remoteAddress: '', }; - var f = new Fuzzer(); - var cbFn = function(value) { + const f = new Fuzzer(); + const cbFn = function(value) { assert.deepEqual(value, DEFAULT_RETURN_VALUE); }; f.fuzzFunctionForTypes( @@ -40,7 +40,7 @@ describe('koaRequestInformationExtractor', function() { }); describe('Behaviour under valid input', function() { it('Should produce the expected value', function() { - var FULL_REQ_DERIVATION_VALUE = { + const FULL_REQ_DERIVATION_VALUE = { method: 'STUB_METHOD', url: 'www.TEST-URL.com', headers: { @@ -49,10 +49,10 @@ describe('koaRequestInformationExtractor', function() { }, ip: '0.0.0.0', }; - var FULL_RES_DERIVATION_VALUE = { + const FULL_RES_DERIVATION_VALUE = { status: 200, }; - var FULL_REQ_EXPECTED_VALUE = { + const FULL_REQ_EXPECTED_VALUE = { method: 'STUB_METHOD', url: 'www.TEST-URL.com', userAgent: 'Something like Mozilla', diff --git a/handwritten/error-reporting/test/unit/request-extractors/manual.ts b/handwritten/error-reporting/test/unit/request-extractors/manual.ts index 66fe55115ee..68d32b749e9 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/manual.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/manual.ts @@ -23,7 +23,7 @@ import {Fuzzer} from '../../../utils/fuzzer'; describe('manualRequestInformationExtractor', function() { describe('Behaviour given invalid input', function() { it('Should return default values', function() { - var DEFAULT_RETURN_VALUE = { + const DEFAULT_RETURN_VALUE = { method: '', url: '', userAgent: '', @@ -31,8 +31,8 @@ describe('manualRequestInformationExtractor', function() { statusCode: 0, remoteAddress: '', }; - var f = new Fuzzer(); - var cbFn = function(value) { + const f = new Fuzzer(); + const cbFn = function(value) { assert.deepEqual(value, DEFAULT_RETURN_VALUE); }; f.fuzzFunctionForTypes( @@ -40,7 +40,7 @@ describe('manualRequestInformationExtractor', function() { }); }); describe('Behaviour given valid input', function() { - var FULL_VALID_INPUT = { + const FULL_VALID_INPUT = { method: 'GET', url: 'http://0.0.0.0/myTestRoute', userAgent: 'Something like Gecko', diff --git a/handwritten/error-reporting/test/unit/service-configuration.ts b/handwritten/error-reporting/test/unit/service-configuration.ts index 31674034362..9ce3b9c43ff 100644 --- a/handwritten/error-reporting/test/unit/service-configuration.ts +++ b/handwritten/error-reporting/test/unit/service-configuration.ts @@ -16,18 +16,18 @@ import * as assert from 'assert'; import * as is from 'is'; -var isString = is.string; -var isNumber = is.number; +const isString = is.string; +const isNumber = is.number; import forEach = require('lodash.foreach'); import assign = require('lodash.assign'); import omitBy = require('lodash.omitby'); import {FakeConfiguration as Configuration} from '../fixtures/configuration'; -var level = process.env.GCLOUD_ERRORS_LOGLEVEL; +const level = process.env.GCLOUD_ERRORS_LOGLEVEL; import {createLogger} from '../../src/logger'; -var logger = createLogger({ +const logger = createLogger({ logLevel: isNumber(level) ? level : 4, }); -var serviceConfigEnv = { +const serviceConfigEnv = { GAE_SERVICE: process.env.GAE_SERVICE, GAE_VERSION: process.env.GAE_VERSION, GAE_MODULE_VERSION: process.env.GAE_MODULE_VERSION, @@ -71,7 +71,7 @@ describe('Testing service configuration', function() { setEnv( 'someModuleName', '1.0', 'InvalidName', 'InvalidVersion', 'someFunction'); - var c = new Configuration({}, logger); + const c = new Configuration({}, logger); assert.deepEqual(c.getServiceContext().service, 'someFunction'); // FUNCTION_NAME is set and the user didn't specify a version, and so // the version should not be defined @@ -82,7 +82,7 @@ describe('Testing service configuration', function() { 'even if the GAE_SERVICE was not set', function() { setEnv(null, '1.0', null, 'InvalidVersion', 'someFunction'); - var c = new Configuration({}, logger); + const c = new Configuration({}, logger); assert.deepEqual(c.getServiceContext().service, 'someFunction'); // The user didn't specify a version and FUNCTION_NAME is defined, and // so the version should not be defined @@ -93,7 +93,7 @@ describe('Testing service configuration', function() { 'does not specify the service name', function() { setEnv('someModuleName', '1.0', 'InvalidName', 'InvalidVersion', null); - var c = new Configuration({}, logger); + const c = new Configuration({}, logger); assert.deepEqual(c.getServiceContext().service, 'someModuleName'); // The user didn't specify a version, and FUNCTION_NAME is not defined, // and so use the GAE_MODULE_VERSION @@ -106,7 +106,7 @@ describe('Testing service configuration', function() { setEnv( 'someModuleName', '1.0', 'InvalidName', 'InvalidVersion', 'someFunction'); - var c = new Configuration( + const c = new Configuration( { serviceContext: { service: 'customService', @@ -125,7 +125,7 @@ describe('Testing service configuration', function() { setEnv( 'someModuleName', '1.0', 'InvalidName', 'InvalidVersion', 'someFunction'); - var c = new Configuration( + const c = new Configuration( { serviceContext: { service: 'customService', @@ -138,10 +138,10 @@ describe('Testing service configuration', function() { assert.deepEqual(c.getServiceContext().version, '2.0'); }); it('A Configuration uses the service name in the given config if it ' + - 'was specified and only the GAE_SERVICE env var is set', + 'was specified and only the GAE_SERVICE env const is set', function() { setEnv('someModuleName', '1.0', 'InvalidName', 'InvalidVersion', null); - var c = new Configuration( + const c = new Configuration( { serviceContext: { service: 'customService', @@ -154,10 +154,10 @@ describe('Testing service configuration', function() { assert.deepEqual(c.getServiceContext().version, '1.0'); }); it('A Configuration uses the service name and version in the given config ' + - 'they were both specified and only the GAE_SERVICE env var is set', + 'they were both specified and only the GAE_SERVICE env const is set', function() { setEnv('someModuleName', '1.0', 'InvalidName', 'InvalidVersion', null); - var c = new Configuration( + const c = new Configuration( { serviceContext: { service: 'customService', @@ -170,10 +170,10 @@ describe('Testing service configuration', function() { assert.deepEqual(c.getServiceContext().version, '2.0'); }); it('A Configuration uses the service name in the given config if it ' + - 'was specified and only the FUNCTION_NAME env var is set', + 'was specified and only the FUNCTION_NAME env const is set', function() { setEnv(null, '1.0', null, 'InvalidVersion', 'someFunction'); - var c = new Configuration( + const c = new Configuration( { serviceContext: { service: 'customService', @@ -186,10 +186,10 @@ describe('Testing service configuration', function() { assert.deepEqual(c.getServiceContext().version, undefined); }); it('A Configuration uses the service name and version in the given config ' + - 'if they were both specified and only the FUNCTION_NAME env var is set', + 'if they were both specified and only the FUNCTION_NAME env const is set', function() { setEnv(null, '1.0', null, 'InvalidVersion', 'someFunction'); - var c = new Configuration( + const c = new Configuration( { serviceContext: { service: 'customService', @@ -205,7 +205,7 @@ describe('Testing service configuration', function() { 'GAE_SERVICE is not set, FUNCTION_NAME is not set, and the user has ' + 'not specified a service name or version', function() { - var c = new Configuration({}, logger); + const c = new Configuration({}, logger); assert.strictEqual(c.getServiceContext().service, 'node'); assert.strictEqual(c.getServiceContext().version, undefined); }); @@ -215,7 +215,7 @@ describe('Testing service configuration', function() { 'been set', function() { setEnv(null, 'InvalidVersion', null, 'InvalidVersion', null); - var c = new Configuration({}, logger); + const c = new Configuration({}, logger); assert.strictEqual(c.getServiceContext().service, 'node'); assert.strictEqual(c.getServiceContext().version, undefined); }); @@ -223,7 +223,7 @@ describe('Testing service configuration', function() { 'version if GAE_SERVICE is not set, FUNCTION_NAME is not set, and the ' + 'user has not specified a service name but has specified a version', function() { - var c = new Configuration( + const c = new Configuration( { serviceContext: { version: '2.0', diff --git a/handwritten/error-reporting/utils/errors-api-transport.ts b/handwritten/error-reporting/utils/errors-api-transport.ts index 967778770c5..e359d4e9c5a 100644 --- a/handwritten/error-reporting/utils/errors-api-transport.ts +++ b/handwritten/error-reporting/utils/errors-api-transport.ts @@ -17,9 +17,9 @@ import {RequestHandler as AuthClient} from '../src/google-apis/auth-client'; /* @const {String} Base Error Reporting API */ -var API = 'https://clouderrorreporting.googleapis.com/v1beta1/projects'; +const API = 'https://clouderrorreporting.googleapis.com/v1beta1/projects'; -var ONE_HOUR_API = 'timeRange.period=PERIOD_1_HOUR'; +const ONE_HOUR_API = 'timeRange.period=PERIOD_1_HOUR'; export class ErrorsApiTransport extends AuthClient { constructor(config, logger) { @@ -27,13 +27,13 @@ export class ErrorsApiTransport extends AuthClient { } deleteAllEvents(cb) { - var self = this; + const self = this; self.getProjectId(function(err, id) { if (err) { return cb(err); } - var options = { + const options = { uri: [API, id, 'events'].join('/'), method: 'DELETE' }; @@ -52,13 +52,13 @@ export class ErrorsApiTransport extends AuthClient { } getAllGroups(cb) { - var self = this; + const self = this; self.getProjectId(function(err, id) { if (err) { return cb(err); } - var options = { + const options = { uri: [API, id, 'groupStats?' + ONE_HOUR_API].join('/'), method: 'GET' }; diff --git a/handwritten/error-reporting/utils/fuzzer.ts b/handwritten/error-reporting/utils/fuzzer.ts index 47eae157964..25f33f813c4 100644 --- a/handwritten/error-reporting/utils/fuzzer.ts +++ b/handwritten/error-reporting/utils/fuzzer.ts @@ -22,10 +22,10 @@ import maxBy = require('lodash.maxby'); import random = require('lodash.random'); import * as is from 'is'; -var isNumber = is.number; -var isString = is.string; -var isArray = is.array; -var isFunction = is.function; +const isNumber = is.number; +const isString = is.string; +const isArray = is.array; +const isFunction = is.function; export class Fuzzer { @@ -44,10 +44,10 @@ export class Fuzzer { }, string: function(len) { - var lenChecked = isNumber(len) ? len : 10; - var chars: string[] = []; + const lenChecked = isNumber(len) ? len : 10; + const chars: string[] = []; - for (var i = 0; i < lenChecked; i++) { + for (let i = 0; i < lenChecked; i++) { chars.push(String.fromCharCode(random(32, 126))); } @@ -59,12 +59,12 @@ export class Fuzzer { }, alphaNumericString: function(len) { - var lenChecked = isNumber(len) ? len : 10; - var chars: string[] = []; - var thisRange: number[] = []; - var ranges = [[48, 57], [65, 90], [97, 122]]; + const lenChecked = isNumber(len) ? len : 10; + const chars: string[] = []; + let thisRange: number[] = []; + const ranges = [[48, 57], [65, 90], [97, 122]]; - for (var i = 0; i < lenChecked; i++) { + for (let i = 0; i < lenChecked; i++) { thisRange = ranges[random(0, 2)]; chars.push(String.fromCharCode(random(thisRange[0], thisRange[1]))); } @@ -73,9 +73,9 @@ export class Fuzzer { }, function: function() { - var availableTypes = without(this.types(), 'function'); - var typeToGen = this.types()[random(0, availableTypes.length - 1)]; - var fnToCall = this[typeToGen]; + const availableTypes = without(this.types(), 'function'); + const typeToGen = this.types()[random(0, availableTypes.length - 1)]; + const fnToCall = this[typeToGen]; return function() { return fnToCall(); @@ -83,8 +83,8 @@ export class Fuzzer { }, number: function(lower, upper) { - var lowerChecked = isNumber(lower) ? lower : 0; - var upperChecked = isNumber(upper) ? upper : 100; + const lowerChecked = isNumber(lower) ? lower : 0; + const upperChecked = isNumber(upper) ? upper : 100; return random(lowerChecked, upperChecked); }, @@ -103,15 +103,15 @@ export class Fuzzer { currentDepth, allowedDepth ) { - var lenChecked = isNumber(len) ? len : random(1, 10); - var availableTypes = + const lenChecked = isNumber(len) ? len : random(1, 10); + let availableTypes = isString(ofOneType) && indexOf(this.types(), ofOneType) > -1 ? [ofOneType] : this.types(); - var currentDepthChecked = isNumber(currentDepth) ? currentDepth : 0; - var allowedDepthChecked = isNumber(allowedDepth) ? allowedDepth : 3; - var arr: Array<{}> = []; - var currentTypeBeingGenerated = ''; + let currentDepthChecked = isNumber(currentDepth) ? currentDepth : 0; + const allowedDepthChecked = isNumber(allowedDepth) ? allowedDepth : 3; + const arr: Array<{}> = []; + let currentTypeBeingGenerated = ''; currentDepthChecked += 1; // Deny the ability to nest more objects @@ -119,7 +119,7 @@ export class Fuzzer { availableTypes = without(this.types(), 'object', 'array'); } - for (var i = 0; i < lenChecked; i++) { + for (let i = 0; i < lenChecked; i++) { currentTypeBeingGenerated = availableTypes[random(0, availableTypes.length - 1)]; @@ -153,25 +153,25 @@ export class Fuzzer { currentDepth, allowedDepth ) { - var numPropertiesChecked = isNumber(numProperties) + const numPropertiesChecked = isNumber(numProperties) ? numProperties : random(1, 10); - var currentDepthChecked = isNumber(currentDepth) ? currentDepth : 0; - var allowedDepthChecked = isNumber(allowedDepth) ? allowedDepth : 3; - var obj = {}; + let currentDepthChecked = isNumber(currentDepth) ? currentDepth : 0; + const allowedDepthChecked = isNumber(allowedDepth) ? allowedDepth : 3; + const obj = {}; currentDepthChecked += 1; - var availableTypes = this.types(); + let availableTypes = this.types(); // Deny the ability to nest more objects if (currentDepth >= allowedDepth) { availableTypes = without(availableTypes, 'object', 'array'); } - var currentTypeBeingGenerated: string|number = 0; - var currentKey = ''; + let currentTypeBeingGenerated: string|number = 0; + let currentKey = ''; - for (var i = 0; i < numPropertiesChecked; i++) { + for (let i = 0; i < numPropertiesChecked; i++) { currentTypeBeingGenerated = availableTypes[random(0, availableTypes.length - 1)]; currentKey = this.alphaNumericString(random(1, 10)); @@ -199,11 +199,11 @@ export class Fuzzer { }; _backFillUnevenTypesArrays(argsTypesArray) { - var largestLength = maxBy(argsTypesArray, function(o) { + const largestLength = maxBy(argsTypesArray, function(o) { return o.length; }).length; - for (var i = 0; i < argsTypesArray.length; i++) { + for (let i = 0; i < argsTypesArray.length; i++) { if (argsTypesArray[i].length !== largestLength) { while (argsTypesArray[i].length < largestLength) { argsTypesArray[i].push( @@ -217,10 +217,10 @@ export class Fuzzer { } _normalizeTypesArrayLengths(argsTypesArray) { - var allAreTheSameLength = true; - var lastLength = argsTypesArray[0].length; + let allAreTheSameLength = true; + const lastLength = argsTypesArray[0].length; - for (var i = 1; i < argsTypesArray.length; i++) { + for (let i = 1; i < argsTypesArray.length; i++) { if (argsTypesArray[i].length !== lastLength) { allAreTheSameLength = false; break; @@ -235,14 +235,14 @@ export class Fuzzer { } _generateTypesToFuzzWith(expectsArgTypes) { - var argsTypesArray: Array<{}[]> = []; - var tmpArray = this.generate.types(); + let argsTypesArray: Array<{}[]> = []; + let tmpArray = this.generate.types(); - for (var i = 0; i < expectsArgTypes.length; i++) { + for (let i = 0; i < expectsArgTypes.length; i++) { if (!isArray(expectsArgTypes[i])) { argsTypesArray.push(without(this.generate.types(), expectsArgTypes[i])); } else { - for (var j = 0; j < expectsArgTypes[i].length; j++) { + for (let j = 0; j < expectsArgTypes[i].length; j++) { tmpArray = without(tmpArray, expectsArgTypes[i][j]); } @@ -259,10 +259,10 @@ export class Fuzzer { typesToFuzzOnEach, index ) { - var args: {}[] = []; - var typeToGen = ''; + const args: {}[] = []; + let typeToGen = ''; - for (var i = 0; i < typesToFuzzOnEach.length; i++) { + for (let i = 0; i < typesToFuzzOnEach.length; i++) { typeToGen = typesToFuzzOnEach[i][index]; args.push(this.generate[typeToGen]()); @@ -277,12 +277,12 @@ export class Fuzzer { cb?: Function, withContext?: {} ) { - var expectsArgTypesChecked = isArray(expectsArgTypes) ? expectsArgTypes : []; - var typesToFuzzOnEach = this._generateTypesToFuzzWith(expectsArgTypesChecked); + const expectsArgTypesChecked = isArray(expectsArgTypes) ? expectsArgTypes : []; + const typesToFuzzOnEach = this._generateTypesToFuzzWith(expectsArgTypesChecked); - var returnValue = undefined; + let returnValue = undefined; - for (var i = 0; i < typesToFuzzOnEach[0].length; i++) { + for (let i = 0; i < typesToFuzzOnEach[0].length; i++) { returnValue = fnToFuzz.apply( withContext, this._generateValuesForFuzzTyping(typesToFuzzOnEach, i) From 942a0bdec7182693350a96c7d2a2d677f3170c41 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Tue, 27 Mar 2018 13:55:16 -0700 Subject: [PATCH 073/527] chore(package): update @types/mocha to version 5.0.0 (#83) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 91a60dcb13e..f6b5482580c 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -77,7 +77,7 @@ "@types/is": "0.0.18", "@types/koa": "^2.0.43", "@types/lodash.has": "^4.5.3", - "@types/mocha": "^2.2.45", + "@types/mocha": "^5.0.0", "@types/ncp": "^2.0.1", "@types/node": "^9.4.0", "@types/once": "^1.4.0", From b3220cf9c17e18e0945378b28fa3f9973f8f48fa Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Tue, 27 Mar 2018 14:20:42 -0700 Subject: [PATCH 074/527] chore(package): update @types/is to version 0.0.19 (#91) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index f6b5482580c..639688da255 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -74,7 +74,7 @@ "@types/express-serve-static-core": "^4.11.1", "@types/glob": "^5.0.35", "@types/hapi": "^16.1.11", - "@types/is": "0.0.18", + "@types/is": "0.0.19", "@types/koa": "^2.0.43", "@types/lodash.has": "^4.5.3", "@types/mocha": "^5.0.0", From 36ffbc5e49d07b954c013fc31e1af3fe89c8be5f Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Tue, 27 Mar 2018 14:41:29 -0700 Subject: [PATCH 075/527] fix: fix express installation test (#92) The sample code had a compilation error. --- handwritten/error-reporting/system-test/test-install.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/system-test/test-install.ts b/handwritten/error-reporting/system-test/test-install.ts index bd785ccc3db..170f4f90423 100644 --- a/handwritten/error-reporting/system-test/test-install.ts +++ b/handwritten/error-reporting/system-test/test-install.ts @@ -74,7 +74,7 @@ const app = express(); app.get('/error', (req, res, next) => { res.send('Something broke!'); - next(new Error('Custom error message')); + next!(new Error('Custom error message')); }); app.get('/exception', () => { From 418ba6bcb1d412e2eda70d9fba29d3874f0d6754 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Tue, 27 Mar 2018 15:07:51 -0700 Subject: [PATCH 076/527] fix: potential fix of repo-tools permission error (#93) --- handwritten/error-reporting/package-lock.json | 5046 +++++++++++++---- handwritten/error-reporting/package.json | 12 +- 2 files changed, 3909 insertions(+), 1149 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index 095ddeebb11..d0533946d35 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -81,20 +81,20 @@ } }, "@google-cloud/common": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.16.1.tgz", - "integrity": "sha512-1sufDsSfgJ7fuBLq+ux8t3TlydMlyWl9kPZx2WdLINkGtf5RjvXX6EWYZiCMKe8flJ3oC0l95j5atN2uX5n3rg==", + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.16.2.tgz", + "integrity": "sha512-GrkaFoj0/oO36pNs4yLmaYhTujuA3i21FdQik99Fd/APix1uhf01VlpJY4lAteTDFLRNkRx6ydEh7OVvmeUHng==", "requires": { "array-uniq": "1.0.3", "arrify": "1.0.1", - "concat-stream": "1.6.1", + "concat-stream": "1.6.2", "create-error-class": "3.0.2", "duplexify": "3.5.4", "ent": "2.2.0", "extend": "3.0.1", "google-auto-auth": "0.9.7", "is": "3.2.1", - "log-driver": "1.2.5", + "log-driver": "1.2.7", "methmeth": "1.1.0", "modelo": "4.2.3", "request": "2.85.0", @@ -106,9 +106,9 @@ } }, "@google-cloud/nodejs-repo-tools": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@google-cloud/nodejs-repo-tools/-/nodejs-repo-tools-2.2.1.tgz", - "integrity": "sha512-H4RmocpcsmH3E95Al1b/LsgdbLSGAPILZQaP+dhUvIPJL7bUjyUCno5pCo9fcCIOPLA44E0pFW5kwGYS3v/1NA==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@google-cloud/nodejs-repo-tools/-/nodejs-repo-tools-2.2.5.tgz", + "integrity": "sha512-Z/MZWDU0vG4F3bWqbBm7Bn+ceiTyhOEQNtjCPEBOx2IfUJAWhrVLLXXJRhWtquE5KRmmJ5XRbCdy/DA5mWPX6g==", "dev": true, "requires": { "ava": "0.25.0", @@ -126,6 +126,1600 @@ "yargs-parser": "9.0.2" }, "dependencies": { + "nyc": { + "version": "11.4.1", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.4.1.tgz", + "integrity": "sha512-5eCZpvaksFVjP2rt1r60cfXmt3MUtsQDw8bAzNqNEr4WLvUMLgiVENMf/B9bE9YAX0mGVvaGA3v9IS9ekNqB1Q==", + "dev": true, + "requires": { + "archy": "1.0.0", + "arrify": "1.0.1", + "caching-transform": "1.0.1", + "convert-source-map": "1.5.1", + "debug-log": "1.0.1", + "default-require-extensions": "1.0.0", + "find-cache-dir": "0.1.1", + "find-up": "2.1.0", + "foreground-child": "1.5.6", + "glob": "7.1.2", + "istanbul-lib-coverage": "1.1.1", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "1.9.1", + "istanbul-lib-report": "1.1.2", + "istanbul-lib-source-maps": "1.2.2", + "istanbul-reports": "1.1.3", + "md5-hex": "1.3.0", + "merge-source-map": "1.0.4", + "micromatch": "2.3.11", + "mkdirp": "0.5.1", + "resolve-from": "2.0.0", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "spawn-wrap": "1.4.2", + "test-exclude": "4.1.1", + "yargs": "10.0.3", + "yargs-parser": "8.0.0" + }, + "dependencies": { + "align-text": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } + }, + "amdefine": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "bundled": true, + "dev": true + }, + "append-transform": { + "version": "0.4.0", + "bundled": true, + "dev": true, + "requires": { + "default-require-extensions": "1.0.0" + } + }, + "archy": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "arr-diff": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "arr-flatten": "1.1.0" + } + }, + "arr-flatten": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "array-unique": { + "version": "0.2.1", + "bundled": true, + "dev": true + }, + "arrify": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "async": { + "version": "1.5.2", + "bundled": true, + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "bundled": true, + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-generator": { + "version": "6.26.0", + "bundled": true, + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.4", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "bundled": true, + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "bundled": true, + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "6.26.0", + "bundled": true, + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "bundled": true, + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "bundled": true, + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "bundled": true, + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.8", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "1.8.5", + "bundled": true, + "dev": true, + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" + } + }, + "builtin-modules": { + "version": "1.1.1", + "bundled": true, + "dev": true + }, + "caching-transform": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" + } + }, + "camelcase": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true + }, + "center-align": { + "version": "0.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + } + }, + "chalk": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "requires": { + "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" + } + }, + "cliui": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "commondir": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "convert-source-map": { + "version": "1.5.1", + "bundled": true, + "dev": true + }, + "core-js": { + "version": "2.5.3", + "bundled": true, + "dev": true + }, + "cross-spawn": { + "version": "4.0.2", + "bundled": true, + "dev": true, + "requires": { + "lru-cache": "4.1.1", + "which": "1.3.0" + } + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "debug-log": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "decamelize": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "default-require-extensions": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "strip-bom": "2.0.0" + } + }, + "detect-indent": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "error-ex": { + "version": "1.3.1", + "bundled": true, + "dev": true, + "requires": { + "is-arrayish": "0.2.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "esutils": { + "version": "2.0.2", + "bundled": true, + "dev": true + }, + "execa": { + "version": "0.7.0", + "bundled": true, + "dev": true, + "requires": { + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "bundled": true, + "dev": true, + "requires": { + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.3.0" + } + } + } + }, + "expand-brackets": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "requires": { + "is-posix-bracket": "0.1.1" + } + }, + "expand-range": { + "version": "1.8.2", + "bundled": true, + "dev": true, + "requires": { + "fill-range": "2.2.3" + } + }, + "extglob": { + "version": "0.3.2", + "bundled": true, + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "filename-regex": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "fill-range": { + "version": "2.2.3", + "bundled": true, + "dev": true, + "requires": { + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" + } + }, + "find-cache-dir": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "requires": { + "commondir": "1.0.1", + "mkdirp": "0.5.1", + "pkg-dir": "1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "locate-path": "2.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "for-own": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "requires": { + "for-in": "1.0.2" + } + }, + "foreground-child": { + "version": "1.5.6", + "bundled": true, + "dev": true, + "requires": { + "cross-spawn": "4.0.2", + "signal-exit": "3.0.2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "get-caller-file": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "glob-base": { + "version": "0.3.0", + "bundled": true, + "dev": true, + "requires": { + "glob-parent": "2.0.0", + "is-glob": "2.0.1" + } + }, + "glob-parent": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-glob": "2.0.1" + } + }, + "globals": { + "version": "9.18.0", + "bundled": true, + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true, + "dev": true + }, + "handlebars": { + "version": "4.0.11", + "bundled": true, + "dev": true, + "requires": { + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "bundled": true, + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "has-ansi": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "hosted-git-info": { + "version": "2.5.0", + "bundled": true, + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "bundled": true, + "dev": true + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "invariant": { + "version": "2.2.2", + "bundled": true, + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "invert-kv": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "bundled": true, + "dev": true + }, + "is-buffer": { + "version": "1.1.6", + "bundled": true, + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-dotfile": { + "version": "1.0.3", + "bundled": true, + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "bundled": true, + "dev": true, + "requires": { + "is-primitive": "2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, + "is-extglob": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "is-number": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "bundled": true, + "dev": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isexe": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "isobject": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "istanbul-lib-coverage": { + "version": "1.1.1", + "bundled": true, + "dev": true + }, + "istanbul-lib-hook": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "append-transform": "0.4.0" + } + }, + "istanbul-lib-instrument": { + "version": "1.9.1", + "bundled": true, + "dev": true, + "requires": { + "babel-generator": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "istanbul-lib-coverage": "1.1.1", + "semver": "5.4.1" + } + }, + "istanbul-lib-report": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "requires": { + "istanbul-lib-coverage": "1.1.1", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" + }, + "dependencies": { + "supports-color": { + "version": "3.2.3", + "bundled": true, + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.2", + "bundled": true, + "dev": true, + "requires": { + "debug": "3.1.0", + "istanbul-lib-coverage": "1.1.1", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "istanbul-reports": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "requires": { + "handlebars": "4.0.11" + } + }, + "js-tokens": { + "version": "3.0.2", + "bundled": true, + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "bundled": true, + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + }, + "lazy-cache": { + "version": "1.0.4", + "bundled": true, + "dev": true, + "optional": true + }, + "lcid": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "invert-kv": "1.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "bundled": true, + "dev": true + } + } + }, + "lodash": { + "version": "4.17.4", + "bundled": true, + "dev": true + }, + "longest": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "bundled": true, + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "lru-cache": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "md5-hex": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "md5-o-matic": "0.1.1" + } + }, + "md5-o-matic": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, + "mem": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "mimic-fn": "1.1.0" + } + }, + "merge-source-map": { + "version": "1.0.4", + "bundled": true, + "dev": true, + "requires": { + "source-map": "0.5.7" + } + }, + "micromatch": { + "version": "2.3.11", + "bundled": true, + "dev": true, + "requires": { + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" + } + }, + "mimic-fn": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "normalize-package-data": { + "version": "2.4.0", + "bundled": true, + "dev": true, + "requires": { + "hosted-git-info": "2.5.0", + "is-builtin-module": "1.0.0", + "semver": "5.4.1", + "validate-npm-package-license": "3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "requires": { + "remove-trailing-separator": "1.1.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "path-key": "2.0.1" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true + }, + "object.omit": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "for-own": "0.1.5", + "is-extendable": "0.1.1" + } + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optimist": { + "version": "0.6.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.3" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "os-locale": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "p-finally": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "p-limit": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "p-locate": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-limit": "1.1.0" + } + }, + "parse-glob": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" + } + }, + "parse-json": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "requires": { + "error-ex": "1.3.1" + } + }, + "path-exists": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "path-key": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "path-type": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "pify": { + "version": "2.3.0", + "bundled": true, + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "bundled": true, + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "pinkie": "2.0.4" + } + }, + "pkg-dir": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "find-up": "1.1.2" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + } + } + }, + "preserve": { + "version": "0.2.0", + "bundled": true, + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "randomatic": { + "version": "1.1.7", + "bundled": true, + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "read-pkg": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + } + } + }, + "regenerator-runtime": { + "version": "0.11.1", + "bundled": true, + "dev": true + }, + "regex-cache": { + "version": "0.4.4", + "bundled": true, + "dev": true, + "requires": { + "is-equal-shallow": "0.1.3" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "repeat-element": { + "version": "1.1.2", + "bundled": true, + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "bundled": true, + "dev": true + }, + "repeating": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "require-directory": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "resolve-from": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "right-align": { + "version": "0.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "align-text": "0.1.4" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "dev": true, + "requires": { + "glob": "7.1.2" + } + }, + "semver": { + "version": "5.4.1", + "bundled": true, + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "shebang-regex": "1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true + }, + "slide": { + "version": "1.1.6", + "bundled": true, + "dev": true + }, + "source-map": { + "version": "0.5.7", + "bundled": true, + "dev": true + }, + "spawn-wrap": { + "version": "1.4.2", + "bundled": true, + "dev": true, + "requires": { + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.0" + } + }, + "spdx-correct": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "spdx-license-ids": "1.2.2" + } + }, + "spdx-expression-parse": { + "version": "1.0.4", + "bundled": true, + "dev": true + }, + "spdx-license-ids": { + "version": "1.2.2", + "bundled": true, + "dev": true + }, + "string-width": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-bom": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } + }, + "strip-eof": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "test-exclude": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "requires": { + "arrify": "1.0.1", + "micromatch": "2.3.11", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "bundled": true, + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "uglify-js": { + "version": "2.8.29", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "yargs": { + "version": "3.10.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "validate-npm-package-license": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "spdx-correct": "1.0.2", + "spdx-expression-parse": "1.0.4" + } + }, + "which": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "isexe": "2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "window-size": { + "version": "0.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "wordwrap": { + "version": "0.0.3", + "bundled": true, + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "write-file-atomic": { + "version": "1.3.4", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" + } + }, + "y18n": { + "version": "3.2.1", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "2.1.2", + "bundled": true, + "dev": true + }, + "yargs": { + "version": "10.0.3", + "bundled": true, + "dev": true, + "requires": { + "cliui": "3.2.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "8.0.0" + }, + "dependencies": { + "cliui": { + "version": "3.2.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + } + } + }, + "yargs-parser": { + "version": "8.0.0", + "bundled": true, + "dev": true, + "requires": { + "camelcase": "4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "bundled": true, + "dev": true + } + } + } + } + }, "proxyquire": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/proxyquire/-/proxyquire-1.8.0.tgz", @@ -193,7 +1787,7 @@ }, "@sinonjs/formatio": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", + "resolved": "http://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", "integrity": "sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg==", "dev": true, "requires": { @@ -206,7 +1800,7 @@ "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", "dev": true, "requires": { - "@types/node": "9.4.7" + "@types/node": "9.6.0" } }, "@types/body-parser": { @@ -216,7 +1810,7 @@ "dev": true, "requires": { "@types/express": "4.11.1", - "@types/node": "9.4.7" + "@types/node": "9.6.0" } }, "@types/boom": { @@ -232,7 +1826,7 @@ "dev": true, "requires": { "@types/events": "1.2.0", - "@types/node": "9.4.7" + "@types/node": "9.6.0" } }, "@types/caseless": { @@ -256,7 +1850,7 @@ "integrity": "sha512-OPSxsP6XqA3984KWDUXq/u05Hu8VWa/2rUVlw/aDUOx87BptIep6xb3NdCxCpKLfLdjZcCE5jR+gouTul3gjdA==", "dev": true, "requires": { - "@types/node": "9.4.7" + "@types/node": "9.6.0" } }, "@types/cookies": { @@ -268,7 +1862,7 @@ "@types/connect": "3.4.31", "@types/express": "4.11.1", "@types/keygrip": "1.0.1", - "@types/node": "9.4.7" + "@types/node": "9.6.0" } }, "@types/events": { @@ -295,7 +1889,7 @@ "dev": true, "requires": { "@types/events": "1.2.0", - "@types/node": "9.4.7" + "@types/node": "9.6.0" } }, "@types/form-data": { @@ -304,7 +1898,7 @@ "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", "dev": true, "requires": { - "@types/node": "9.4.7" + "@types/node": "9.6.0" } }, "@types/glob": { @@ -315,7 +1909,7 @@ "requires": { "@types/events": "1.2.0", "@types/minimatch": "3.0.3", - "@types/node": "9.4.7" + "@types/node": "9.6.0" } }, "@types/hapi": { @@ -327,9 +1921,9 @@ "@types/boom": "4.3.10", "@types/catbox": "7.1.6", "@types/events": "1.2.0", - "@types/joi": "13.0.5", + "@types/joi": "13.0.7", "@types/mimos": "3.0.1", - "@types/node": "9.4.7", + "@types/node": "9.6.0", "@types/podium": "1.0.0", "@types/shot": "3.4.0" } @@ -347,9 +1941,9 @@ "dev": true }, "@types/joi": { - "version": "13.0.5", - "resolved": "https://registry.npmjs.org/@types/joi/-/joi-13.0.5.tgz", - "integrity": "sha512-xhGKDKk8qEK35GFYIkpQXdS03PnL+1eXt8VOHnuvuMOjNCztmTpqiDk2vlDy3GbSctSTBJCkY0PXkaRVJpl2xA==", + "version": "13.0.7", + "resolved": "https://registry.npmjs.org/@types/joi/-/joi-13.0.7.tgz", + "integrity": "sha512-x7VMOrIfpqo0pMi5bIuRE+3RwMNlzE3HZLrEpebW2JmuQXeIX69/G8R90Ibs1i/gb1YvBoSlO4pMwH0VUmclGw==", "dev": true }, "@types/keygrip": { @@ -370,7 +1964,7 @@ "@types/http-assert": "1.2.2", "@types/keygrip": "1.0.1", "@types/koa-compose": "3.2.2", - "@types/node": "9.4.7" + "@types/node": "9.6.0" } }, "@types/koa-compose": { @@ -380,9 +1974,9 @@ "dev": true }, "@types/lodash": { - "version": "4.14.104", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.104.tgz", - "integrity": "sha512-ufQcVg4daO8xQ5kopxRHanqFdL4AI7ondQkV+2f+7mz3gvp0LkBx2zBRC6hfs3T87mzQFmf5Fck7Fi145Ul6NQ==", + "version": "4.14.106", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.106.tgz", + "integrity": "sha512-tOSvCVrvSqFZ4A/qrqqm6p37GZoawsZtoR0SJhlF7EonNZUgrn8FfT+RNQ11h+NUpMt6QVe36033f3qEKBwfWA==", "dev": true }, "@types/lodash.has": { @@ -391,7 +1985,7 @@ "integrity": "sha512-McmKJoXdSxMYIQzVWKSEGrHnTwJ1ErqXvsTQjFeGEhBmypgCjuANDSqxl4LKaKcoF4mNxMqSzH7wP4yQ0deLeQ==", "dev": true, "requires": { - "@types/lodash": "4.14.104" + "@types/lodash": "4.14.106" } }, "@types/mime": { @@ -433,13 +2027,13 @@ "integrity": "sha512-TeiJ7uvv/92ugSqZ0v9l0eNXzutlki0aK+R1K5bfA5SYUil46ITlxLW4iNTCf55P4L5weCmaOdtxGeGWvudwPg==", "dev": true, "requires": { - "@types/node": "9.4.7" + "@types/node": "9.6.0" } }, "@types/node": { - "version": "9.4.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.7.tgz", - "integrity": "sha512-4Ba90mWNx8ddbafuyGGwjkZMigi+AWfYLSDCpovwsE63ia8w93r3oJ8PIAQc3y8U+XHcnMOHPIzNe3o438Ywcw==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.0.tgz", + "integrity": "sha512-h3YZbOq2+ZoDFI1z8Zx0Ck/xRWkOESVaLdgLdd/c25mMQ1Y2CAkILu9ny5A15S5f32gGcQdaUIZ2jzYr8D7IFg==", "dev": true }, "@types/once": { @@ -468,7 +2062,7 @@ "requires": { "@types/caseless": "0.12.1", "@types/form-data": "2.2.1", - "@types/node": "9.4.7", + "@types/node": "9.6.0", "@types/tough-cookie": "2.3.2" } }, @@ -479,7 +2073,7 @@ "dev": true, "requires": { "@types/bunyan": "1.8.4", - "@types/node": "9.4.7", + "@types/node": "9.6.0", "@types/spdy": "3.4.4" } }, @@ -490,7 +2084,7 @@ "dev": true, "requires": { "@types/glob": "5.0.35", - "@types/node": "9.4.7" + "@types/node": "9.6.0" } }, "@types/serve-static": { @@ -509,7 +2103,7 @@ "integrity": "sha1-RZR3xRh9Pr0wNmCrCZ5+ng87ZW8=", "dev": true, "requires": { - "@types/node": "9.4.7" + "@types/node": "9.6.0" } }, "@types/spdy": { @@ -518,7 +2112,7 @@ "integrity": "sha512-N9LBlbVRRYq6HgYpPkqQc3a9HJ/iEtVZToW6xlTtJiMhmRJ7jJdV7TaZQJw/Ve/1ePUsQiCTDc4JMuzzag94GA==", "dev": true, "requires": { - "@types/node": "9.4.7" + "@types/node": "9.6.0" } }, "@types/tmp": { @@ -546,6 +2140,21 @@ "requires": { "boom": "7.2.0", "hoek": "5.0.3" + }, + "dependencies": { + "boom": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", + "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "requires": { + "hoek": "5.0.3" + } + }, + "hoek": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + } } }, "accepts": { @@ -636,6 +2245,11 @@ "requires": { "hoek": "5.0.3" } + }, + "hoek": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" } } }, @@ -649,9 +2263,9 @@ } }, "ansi-escapes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz", - "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", "dev": true }, "ansi-regex": { @@ -827,7 +2441,7 @@ "@ava/write-file-atomic": "2.2.0", "@concordance/react": "1.0.0", "@ladjs/time-require": "0.1.4", - "ansi-escapes": "3.0.0", + "ansi-escapes": "3.1.0", "ansi-styles": "3.2.1", "arr-flatten": "1.1.0", "array-union": "1.0.2", @@ -896,7 +2510,7 @@ "safe-buffer": "5.1.1", "semver": "5.5.0", "slash": "1.0.0", - "source-map-support": "0.5.3", + "source-map-support": "0.5.4", "stack-utils": "1.0.1", "strip-ansi": "4.0.0", "strip-bom-buf": "1.0.0", @@ -904,18 +2518,7 @@ "supports-color": "5.3.0", "trim-off-newlines": "1.0.1", "unique-temp-dir": "1.0.0", - "update-notifier": "2.3.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } + "update-notifier": "2.4.0" } }, "ava-init": { @@ -1027,6 +2630,17 @@ "private": "0.1.8", "slash": "1.0.0", "source-map": "0.5.7" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } } }, "babel-generator": { @@ -1181,7 +2795,7 @@ "babel-generator": "6.26.1", "babylon": "6.18.0", "call-matcher": "1.0.1", - "core-js": "2.5.3", + "core-js": "2.5.4", "espower-location-detector": "1.0.0", "espurify": "1.7.0", "estraverse": "4.2.0" @@ -1328,7 +2942,7 @@ "requires": { "babel-core": "6.26.0", "babel-runtime": "6.26.0", - "core-js": "2.5.3", + "core-js": "2.5.4", "home-or-tmp": "2.0.0", "lodash": "4.17.5", "mkdirp": "0.5.1", @@ -1352,7 +2966,7 @@ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.5.3", + "core-js": "2.5.4", "regenerator-runtime": "0.11.1" } }, @@ -1382,8 +2996,19 @@ "babylon": "6.18.0", "debug": "2.6.9", "globals": "9.18.0", - "invariant": "2.2.3", + "invariant": "2.2.4", "lodash": "4.17.5" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } } }, "babel-types": { @@ -1455,14 +3080,24 @@ "qs": "6.5.1", "raw-body": "2.3.2", "type-is": "1.6.16" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + } } }, "boom": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", - "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", + "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", "requires": { - "hoek": "5.0.3" + "hoek": "4.2.1" } }, "bounce": { @@ -1472,6 +3107,21 @@ "requires": { "boom": "7.2.0", "hoek": "5.0.3" + }, + "dependencies": { + "boom": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", + "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "requires": { + "hoek": "5.0.3" + } + }, + "hoek": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + } } }, "boxen": { @@ -1534,6 +3184,11 @@ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" }, + "buffer-from": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz", + "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==" + }, "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", @@ -1575,6 +3230,14 @@ "lowercase-keys": "1.0.0", "normalize-url": "2.0.1", "responselike": "1.0.2" + }, + "dependencies": { + "lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", + "dev": true + } } }, "caching-transform": { @@ -1617,6 +3280,21 @@ "requires": { "boom": "7.2.0", "hoek": "5.0.3" + }, + "dependencies": { + "boom": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", + "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "requires": { + "hoek": "5.0.3" + } + }, + "hoek": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + } } }, "call-matcher": { @@ -1625,7 +3303,7 @@ "integrity": "sha1-UTTQd5hPcSpU2tPL9i3ijc5BbKg=", "dev": true, "requires": { - "core-js": "2.5.3", + "core-js": "2.5.4", "deep-equal": "1.0.1", "espurify": "1.7.0", "estraverse": "4.2.0" @@ -1687,6 +3365,21 @@ "bounce": "1.2.0", "hoek": "5.0.3", "joi": "13.1.2" + }, + "dependencies": { + "boom": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", + "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "requires": { + "hoek": "5.0.3" + } + }, + "hoek": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + } } }, "catbox-memory": { @@ -1697,6 +3390,21 @@ "big-time": "2.0.0", "boom": "7.2.0", "hoek": "5.0.3" + }, + "dependencies": { + "boom": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", + "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "requires": { + "hoek": "5.0.3" + } + }, + "hoek": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + } } }, "catharsis": { @@ -1782,9 +3490,9 @@ } }, "ci-info": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.2.tgz", - "integrity": "sha512-uTGIPNx/nSpBdsF6xnseRXLLtfr9VLqkz8ZqHXr3Y7b6SftyRxBGjwMtJj1OhNbmlc1wZzLNAlAcvyIiE8a6ZA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz", + "integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==", "dev": true }, "circular-json": { @@ -1910,12 +3618,12 @@ } }, "clone-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.0.tgz", - "integrity": "sha1-6uCiQT9VwJQvgYwin+/OhF1/Oxw=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.1.tgz", + "integrity": "sha512-Fcij9IwRW27XedRIJnSOEupS7RVcXtObJXbcUOX93UCLqqOdRpkvzKywOOSizmEK/Is3S/RHX9dLdfo6R1Q1mw==", "requires": { "is-regexp": "1.0.0", - "is-supported-regexp-flag": "1.0.0" + "is-supported-regexp-flag": "1.0.1" } }, "clone-response": { @@ -2060,7 +3768,7 @@ "requires": { "assert-plus": "0.2.0", "jsprim": "1.4.1", - "sshpk": "1.13.1" + "sshpk": "1.14.1" } }, "performance-now": { @@ -2146,9 +3854,9 @@ } }, "commander": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.0.tgz", - "integrity": "sha512-7B1ilBwtYSbetCgTY1NJFg+gVpestg0fdA1MhC1Vs4ssyfSXnCAjFr+QcQM9/RedXC0EaUx1sG8Smgw2VfgKEg==", + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", "dev": true }, "comment-parser": { @@ -2184,10 +3892,11 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.1.tgz", - "integrity": "sha512-gslSSJx03QKa59cIKqeJO9HQ/WZMotvYJCuaUULrLpjj8oG40kV2Z+gz82pVxlTkOADi4PJxQPPfhl1ELYrrXw==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { + "buffer-from": "1.0.0", "inherits": "2.0.3", "readable-stream": "2.3.5", "typedarray": "0.0.6" @@ -2224,9 +3933,9 @@ } }, "configstore": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.1.tgz", - "integrity": "sha512-5oNkD/L++l0O6xGXxb1EWS7SivtjfGQlRyxJsYgE0Z495/L81e2h4/d3r969hoPXuFItzNOKMtsXgYG4c7dYvw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", + "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", "dev": true, "requires": { "dot-prop": "4.2.0", @@ -2252,6 +3961,21 @@ "integrity": "sha512-h0r6/VHlhrLVFrTj612v5EPwqyMs3L79Uf4vEw0zFmywodU8TveiIuINp0//3/GRnAWrQbgSnazSosNkyAeVNA==", "requires": { "boom": "7.2.0" + }, + "dependencies": { + "boom": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", + "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "requires": { + "hoek": "5.0.3" + } + }, + "hoek": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + } } }, "content-disposition": { @@ -2313,9 +4037,9 @@ } }, "core-js": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", - "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.4.tgz", + "integrity": "sha1-8si/GB8qgLkvNgEhQpzmOi8K6uA=", "dev": true }, "core-util-is": { @@ -2455,11 +4179,21 @@ } }, "cryptiles": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-4.1.1.tgz", - "integrity": "sha512-YuQUPbcOmaZsdvxJZ25DCA1W+lLIRoPJKBDKin+St1RCYEERSfoe1d25B1MvWNHN3e8SpFSVsqYvEUjp8J9H2w==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", + "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", "requires": { - "boom": "7.2.0" + "boom": "5.2.0" + }, + "dependencies": { + "boom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "requires": { + "hoek": "4.2.1" + } + } } }, "crypto-random-string": { @@ -2540,7 +4274,7 @@ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "dev": true, "requires": { - "es5-ext": "0.10.40" + "es5-ext": "0.10.41" } }, "dashdash": { @@ -2564,9 +4298,9 @@ "dev": true }, "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "requires": { "ms": "2.0.0" } @@ -2647,11 +4381,11 @@ "requires": { "globby": "5.0.0", "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.0", + "is-path-in-cwd": "1.0.1", "object-assign": "4.1.1", "pify": "2.3.0", "pinkie-promise": "2.0.1", - "rimraf": "2.4.5" + "rimraf": "2.6.2" }, "dependencies": { "globby": { @@ -2805,7 +4539,7 @@ "integrity": "sha1-QooiOv4DQl0s1tY0f99AxmkDVj0=", "optional": true, "requires": { - "nan": "2.9.2" + "nan": "2.10.0" } }, "duplexer3": { @@ -2860,7 +4594,7 @@ "integrity": "sha1-bw2nNEf07dg4/sXGAxOoi6XLhSs=", "dev": true, "requires": { - "core-js": "2.5.3", + "core-js": "2.5.4", "empower-core": "0.6.2" } }, @@ -2880,7 +4614,7 @@ "dev": true, "requires": { "call-signature": "0.0.2", - "core-js": "2.5.3" + "core-js": "2.5.4" } }, "encodeurl": { @@ -2929,13 +4663,14 @@ "dev": true }, "es5-ext": { - "version": "0.10.40", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.40.tgz", - "integrity": "sha512-S9Fh3oya5OOvYSNGvPZJ+vyrs6VYpe1IXPowVe3N1OhaiwVaGlwfn3Zf5P5klYcWOA0toIwYQW8XEv/QqhdHvQ==", + "version": "0.10.41", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.41.tgz", + "integrity": "sha512-MYK02wXfwTMie5TEJWPolgOsXEmz7wKCQaGzgmRjZOoV6VLG8I5dSv2bn6AOClXhK64gnSQTQ9W9MKvx87J4gw==", "dev": true, "requires": { "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" + "es6-symbol": "3.1.1", + "next-tick": "1.0.0" } }, "es6-error": { @@ -2951,7 +4686,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.40", + "es5-ext": "0.10.41", "es6-symbol": "3.1.1" } }, @@ -2962,7 +4697,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.40", + "es5-ext": "0.10.41", "es6-iterator": "2.0.3", "es6-set": "0.1.5", "es6-symbol": "3.1.1", @@ -2976,7 +4711,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.40", + "es5-ext": "0.10.41", "es6-iterator": "2.0.3", "es6-symbol": "3.1.1", "event-emitter": "0.3.5" @@ -2989,7 +4724,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.40" + "es5-ext": "0.10.41" } }, "es6-weak-map": { @@ -2999,7 +4734,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.40", + "es5-ext": "0.10.41", "es6-iterator": "2.0.3", "es6-symbol": "3.1.1" } @@ -3079,15 +4814,15 @@ } }, "eslint": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", - "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", + "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", "dev": true, "requires": { "ajv": "5.5.2", "babel-code-frame": "6.26.0", "chalk": "2.3.2", - "concat-stream": "1.6.1", + "concat-stream": "1.6.2", "cross-spawn": "5.1.0", "debug": "3.1.0", "doctrine": "2.1.0", @@ -3099,7 +4834,7 @@ "file-entry-cache": "2.0.0", "functional-red-black-tree": "1.0.1", "glob": "7.1.2", - "globals": "11.3.0", + "globals": "11.4.0", "ignore": "3.3.7", "imurmurhash": "0.1.4", "inquirer": "3.3.0", @@ -3115,6 +4850,7 @@ "path-is-inside": "1.0.2", "pluralize": "7.0.0", "progress": "2.0.0", + "regexpp": "1.0.1", "require-uncached": "1.0.3", "semver": "5.5.0", "strip-ansi": "4.0.0", @@ -3123,19 +4859,10 @@ "text-table": "0.2.0" }, "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, "globals": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.3.0.tgz", - "integrity": "sha512-kkpcKNlmQan9Z5ZmgqKH/SMbSmjxQ7QjyNqfXVc8VJcoBV2UEg+sxQD15GQofGRh2hfpwUb70VC31DR7Rq5Hdw==", + "version": "11.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.4.0.tgz", + "integrity": "sha512-Dyzmifil8n/TmSqYDEXbm+C8yitzJQqQIlJQLNRMwa+BOUJpRC19pyVeN12JAjt61xonvXjtff+hJruTRXn5HA==", "dev": true } } @@ -3165,14 +4892,14 @@ "requires": { "ignore": "3.3.7", "minimatch": "3.0.4", - "resolve": "1.5.0", + "resolve": "1.6.0", "semver": "5.5.0" }, "dependencies": { "resolve": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", - "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.6.0.tgz", + "integrity": "sha512-mw7JQNu5ExIkcw4LPih0owX/TZXjD/ZUF/ZQ/pDnkw3ZKhDcZZw5klmBlj6gVMwjQ3Pz5Jgu7F3d0jcDVuEWdw==", "dev": true, "requires": { "path-parse": "1.0.5" @@ -3254,7 +4981,7 @@ "integrity": "sha1-oXt+zFnTDheeK+9z+0E3cEyzMbU=", "dev": true, "requires": { - "is-url": "1.2.2", + "is-url": "1.2.4", "path-is-absolute": "1.0.1", "source-map": "0.5.7", "xtend": "4.0.1" @@ -3301,7 +5028,7 @@ "integrity": "sha1-HFz2y8zDLm9jk4C9T5kfq5up0iY=", "dev": true, "requires": { - "core-js": "2.5.3" + "core-js": "2.5.4" } }, "esquery": { @@ -3346,7 +5073,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.40" + "es5-ext": "0.10.41" } }, "ewma": { @@ -3431,8 +5158,23 @@ "type-is": "1.6.16", "utils-merge": "1.0.1", "vary": "1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + } } }, + "express-serve-static-core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/express-serve-static-core/-/express-serve-static-core-0.1.1.tgz", + "integrity": "sha1-IiNYESp5vJ++AIOCMujNLjEy7zc=" + }, "extend": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", @@ -3551,6 +5293,16 @@ "parseurl": "1.3.2", "statuses": "1.4.0", "unpipe": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + } } }, "find-cache-dir": { @@ -3597,16 +5349,6 @@ "integrity": "sha512-uxYePVPogtya1ktGnAAXOacnbIuRMB4dkvqeNz2qTtTQsuzSfbDolV+wMMKxAmCx0bLgAKLbBOkjItMbbkR1vg==", "requires": { "debug": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - } } }, "for-in": { @@ -3646,9 +5388,9 @@ } }, "formidable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.0.tgz", - "integrity": "sha512-hr9aT30rAi7kf8Q2aaTpSP7xGMhlJ+MdrUDVZs3rxbD3L/K46A86s2VY7qC2D2kGYGBtiT/3j6wTx1eeUq5xAQ==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz", + "integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==" }, "forwarded": { "version": "0.1.2", @@ -3684,8 +5426,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { "version": "1.1.3", @@ -3694,21 +5435,19 @@ "dev": true, "optional": true, "requires": { - "nan": "2.9.2", + "nan": "2.10.0", "node-pre-gyp": "0.6.39" }, "dependencies": { "abbrev": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", - "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", + "bundled": true, "dev": true, "optional": true }, "ajv": { "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -3718,21 +5457,18 @@ }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "bundled": true, "dev": true }, "aproba": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", - "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", + "bundled": true, "dev": true, "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -3742,49 +5478,42 @@ }, "asn1": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "bundled": true, "dev": true, "optional": true }, "assert-plus": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "bundled": true, "dev": true, "optional": true }, "asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "bundled": true, "dev": true, "optional": true }, "aws-sign2": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "bundled": true, "dev": true, "optional": true }, "aws4": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "bundled": true, "dev": true, "optional": true }, "balanced-match": { "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "bundled": true, "dev": true }, "bcrypt-pbkdf": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -3793,8 +5522,7 @@ }, "block-stream": { "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "bundled": true, "dev": true, "requires": { "inherits": "2.0.3" @@ -3802,8 +5530,7 @@ }, "boom": { "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "bundled": true, "dev": true, "requires": { "hoek": "2.16.3" @@ -3811,8 +5538,7 @@ }, "brace-expansion": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", - "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", + "bundled": true, "dev": true, "requires": { "balanced-match": "0.4.2", @@ -3821,34 +5547,29 @@ }, "buffer-shims": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=", + "bundled": true, "dev": true }, "caseless": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "bundled": true, "dev": true, "optional": true }, "co": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "bundled": true, "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "bundled": true, "dev": true }, "combined-stream": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "bundled": true, "dev": true, "requires": { "delayed-stream": "1.0.0" @@ -3856,26 +5577,22 @@ }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "bundled": true, "dev": true }, "console-control-strings": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "bundled": true, "dev": true }, "core-util-is": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "bundled": true, "dev": true }, "cryptiles": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "bundled": true, "dev": true, "requires": { "boom": "2.10.1" @@ -3883,8 +5600,7 @@ }, "dashdash": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -3893,8 +5609,7 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "dev": true, "optional": true } @@ -3902,8 +5617,7 @@ }, "debug": { "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -3912,35 +5626,30 @@ }, "deep-extend": { "version": "0.4.2", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", + "bundled": true, "dev": true, "optional": true }, "delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "bundled": true, "dev": true }, "delegates": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "bundled": true, "dev": true, "optional": true }, "detect-libc": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.2.tgz", - "integrity": "sha1-ca1dIEvxempsqPRQxhRUBm70YeE=", + "bundled": true, "dev": true, "optional": true }, "ecc-jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -3949,28 +5658,24 @@ }, "extend": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "bundled": true, "dev": true, "optional": true }, "extsprintf": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", + "bundled": true, "dev": true }, "forever-agent": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "bundled": true, "dev": true, "optional": true }, "form-data": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -3981,14 +5686,12 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "bundled": true, "dev": true }, "fstream": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -3999,8 +5702,7 @@ }, "fstream-ignore": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", - "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -4011,8 +5713,7 @@ }, "gauge": { "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -4028,8 +5729,7 @@ }, "getpass": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -4038,8 +5738,7 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "dev": true, "optional": true } @@ -4047,8 +5746,7 @@ }, "glob": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "bundled": true, "dev": true, "requires": { "fs.realpath": "1.0.0", @@ -4061,21 +5759,18 @@ }, "graceful-fs": { "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "bundled": true, "dev": true }, "har-schema": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "bundled": true, "dev": true, "optional": true }, "har-validator": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -4085,15 +5780,13 @@ }, "has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "bundled": true, "dev": true, "optional": true }, "hawk": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "bundled": true, "dev": true, "requires": { "boom": "2.10.1", @@ -4104,14 +5797,12 @@ }, "hoek": { "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "bundled": true, "dev": true }, "http-signature": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -4122,8 +5813,7 @@ }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "dev": true, "requires": { "once": "1.4.0", @@ -4132,21 +5822,18 @@ }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "bundled": true, "dev": true }, "ini": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "bundled": true, "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, "dev": true, "requires": { "number-is-nan": "1.0.1" @@ -4154,28 +5841,24 @@ }, "is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "bundled": true, "dev": true, "optional": true }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "bundled": true, "dev": true }, "isstream": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "bundled": true, "dev": true, "optional": true }, "jodid25519": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", - "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -4184,22 +5867,19 @@ }, "jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "bundled": true, "dev": true, "optional": true }, "json-schema": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "bundled": true, "dev": true, "optional": true }, "json-stable-stringify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -4208,22 +5888,19 @@ }, "json-stringify-safe": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "bundled": true, "dev": true, "optional": true }, "jsonify": { "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "bundled": true, "dev": true, "optional": true }, "jsprim": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -4235,8 +5912,7 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "dev": true, "optional": true } @@ -4244,14 +5920,12 @@ }, "mime-db": { "version": "1.27.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", - "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=", + "bundled": true, "dev": true }, "mime-types": { "version": "2.1.15", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", - "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", + "bundled": true, "dev": true, "requires": { "mime-db": "1.27.0" @@ -4259,8 +5933,7 @@ }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, "dev": true, "requires": { "brace-expansion": "1.1.7" @@ -4268,14 +5941,12 @@ }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "bundled": true, "dev": true }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "dev": true, "requires": { "minimist": "0.0.8" @@ -4283,15 +5954,13 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "bundled": true, "dev": true, "optional": true }, "node-pre-gyp": { "version": "0.6.39", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", - "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -4310,8 +5979,7 @@ }, "nopt": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -4321,8 +5989,7 @@ }, "npmlog": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", - "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -4334,28 +6001,24 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "bundled": true, "dev": true }, "oauth-sign": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "bundled": true, "dev": true, "optional": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "bundled": true, "dev": true, "optional": true }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "dev": true, "requires": { "wrappy": "1.0.2" @@ -4363,22 +6026,19 @@ }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "bundled": true, "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "bundled": true, "dev": true, "optional": true }, "osenv": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -4388,41 +6048,35 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "bundled": true, "dev": true }, "performance-now": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "bundled": true, "dev": true, "optional": true }, "process-nextick-args": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "bundled": true, "dev": true }, "punycode": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "bundled": true, "dev": true, "optional": true }, "qs": { "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "bundled": true, "dev": true, "optional": true }, "rc": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", - "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -4434,8 +6088,7 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "bundled": true, "dev": true, "optional": true } @@ -4443,8 +6096,7 @@ }, "readable-stream": { "version": "2.2.9", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", - "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", + "bundled": true, "dev": true, "requires": { "buffer-shims": "1.0.0", @@ -4458,8 +6110,7 @@ }, "request": { "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -4489,8 +6140,7 @@ }, "rimraf": { "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "bundled": true, "dev": true, "requires": { "glob": "7.1.2" @@ -4498,35 +6148,30 @@ }, "safe-buffer": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", + "bundled": true, "dev": true }, "semver": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "bundled": true, "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "bundled": true, "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "bundled": true, "dev": true, "optional": true }, "sntp": { "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "bundled": true, "dev": true, "requires": { "hoek": "2.16.3" @@ -4534,8 +6179,7 @@ }, "sshpk": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", - "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -4552,8 +6196,7 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "dev": true, "optional": true } @@ -4561,8 +6204,7 @@ }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "dev": true, "requires": { "code-point-at": "1.1.0", @@ -4572,8 +6214,7 @@ }, "string_decoder": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", - "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", + "bundled": true, "dev": true, "requires": { "safe-buffer": "5.0.1" @@ -4581,15 +6222,13 @@ }, "stringstream": { "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "bundled": true, "dev": true, "optional": true }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "2.1.1" @@ -4597,15 +6236,13 @@ }, "strip-json-comments": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "bundled": true, "dev": true, "optional": true }, "tar": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "bundled": true, "dev": true, "requires": { "block-stream": "0.0.9", @@ -4615,8 +6252,7 @@ }, "tar-pack": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz", - "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -4632,8 +6268,7 @@ }, "tough-cookie": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -4642,8 +6277,7 @@ }, "tunnel-agent": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -4652,35 +6286,30 @@ }, "tweetnacl": { "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "bundled": true, "dev": true, "optional": true }, "uid-number": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", + "bundled": true, "dev": true, "optional": true }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "bundled": true, "dev": true }, "uuid": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", - "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", + "bundled": true, "dev": true, "optional": true }, "verror": { "version": "1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -4689,8 +6318,7 @@ }, "wide-align": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -4699,8 +6327,7 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "bundled": true, "dev": true } } @@ -4769,7 +6396,6 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -4850,13 +6476,13 @@ } }, "google-auth-library": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-1.3.1.tgz", - "integrity": "sha512-NcAzFY+ScalfjmFTHnCXInuivtbIfib9irJ5H8AHONy3eA56YW1Tu5X1dtbjw5TNBgP+BMu+nIrglJsAlfZ/Hg==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-1.3.2.tgz", + "integrity": "sha512-aRz0om4Bs85uyR2Ousk3Gb8Nffx2Sr2RoKts1smg1MhRwrehE1aD1HC4RmprNt1HVJ88IDnQ8biJQ/aXjiIxlQ==", "requires": { "axios": "0.18.0", "gcp-metadata": "0.6.3", - "gtoken": "2.1.1", + "gtoken": "2.2.0", "jws": "3.1.4", "lodash.isstring": "4.0.1", "lru-cache": "4.1.2", @@ -4870,7 +6496,7 @@ "requires": { "async": "2.6.0", "gcp-metadata": "0.6.3", - "google-auth-library": "1.3.1", + "google-auth-library": "1.3.2", "request": "2.85.0" } }, @@ -4897,7 +6523,7 @@ "into-stream": "3.1.0", "is-retry-allowed": "1.1.0", "isurl": "1.0.0", - "lowercase-keys": "1.0.0", + "lowercase-keys": "1.0.1", "mimic-response": "1.0.0", "p-cancelable": "0.3.0", "p-timeout": "2.0.1", @@ -4944,22 +6570,15 @@ "dev": true }, "gtoken": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-2.1.1.tgz", - "integrity": "sha512-9wUP0Gb06lEJxX0w/w+n5Ghxh+/To0rbZSRCOu4Pih2sSDYXJwV4T7q6MPLW31cuKz0wqFQ60mW9nIKc8IgoyA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-2.2.0.tgz", + "integrity": "sha512-tvQs8B1z5+I1FzMPZnq/OCuxTWFOkvy7cUJcpNdBOK2L7yEtPZTVCPtZU181sSDF+isUPebSqFTNTkIejFASAQ==", "requires": { "axios": "0.18.0", "google-p12-pem": "1.0.2", "jws": "3.1.4", "mime": "2.2.0", "pify": "3.0.0" - }, - "dependencies": { - "mime": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.2.0.tgz", - "integrity": "sha512-0Qz9uF1ATtl8RKJG4VRfOymh7PyEor6NbrI/61lRfuRe4vx9SNATrvAeTj2EWVRKjEQGskrzWkJBBY5NbaVHIA==" - } } }, "gts": { @@ -4975,7 +6594,7 @@ "pify": "3.0.0", "rimraf": "2.6.2", "tslint": "5.9.1", - "update-notifier": "2.3.0", + "update-notifier": "2.4.0", "write-file-atomic": "2.3.0" }, "dependencies": { @@ -5087,15 +6706,6 @@ "strip-indent": "2.0.0" } }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "requires": { - "glob": "7.1.2" - } - }, "strip-indent": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", @@ -5145,9 +6755,9 @@ } }, "hapi": { - "version": "17.2.2", - "resolved": "https://registry.npmjs.org/hapi/-/hapi-17.2.2.tgz", - "integrity": "sha512-LFEpibG2iIggfN/5M+EDeTzNUN/JNxUjH6WSpn4+uz2/Aj+Pd6ElxyCOrKAh4/hdh+6gKWYnGBZt03LJ66TYTA==", + "version": "17.2.3", + "resolved": "https://registry.npmjs.org/hapi/-/hapi-17.2.3.tgz", + "integrity": "sha512-e3Jm2xoZotUgsGAV/NTgg1EOXDeZFwbGr8ruUv9yH/DGyGl+NydEBOR7o28N2YbUs8WhBgi+TSVFL+2vtAe9xQ==", "requires": { "accept": "3.0.2", "ammo": "3.0.0", @@ -5166,6 +6776,21 @@ "subtext": "6.0.7", "teamwork": "3.0.1", "topo": "3.0.0" + }, + "dependencies": { + "boom": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", + "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "requires": { + "hoek": "5.0.3" + } + }, + "hoek": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + } } }, "har-schema": { @@ -5233,39 +6858,6 @@ "cryptiles": "3.1.2", "hoek": "4.2.1", "sntp": "2.1.0" - }, - "dependencies": { - "boom": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", - "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", - "requires": { - "hoek": "4.2.1" - } - }, - "cryptiles": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", - "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", - "requires": { - "boom": "5.2.0" - }, - "dependencies": { - "boom": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", - "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", - "requires": { - "hoek": "4.2.1" - } - } - } - }, - "hoek": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", - "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" - } } }, "he": { @@ -5282,12 +6874,27 @@ "boom": "7.2.0", "hoek": "5.0.3", "joi": "13.1.2" + }, + "dependencies": { + "boom": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", + "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "requires": { + "hoek": "5.0.3" + } + }, + "hoek": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + } } }, "hoek": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" }, "home-or-tmp": { "version": "2.0.0", @@ -5381,7 +6988,7 @@ "requires": { "assert-plus": "1.0.0", "jsprim": "1.4.1", - "sshpk": "1.13.1" + "sshpk": "1.14.1" } }, "hullabaloo-config-manager": { @@ -5505,7 +7112,7 @@ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "dev": true, "requires": { - "ansi-escapes": "3.0.0", + "ansi-escapes": "3.1.0", "chalk": "2.3.2", "cli-cursor": "2.1.0", "cli-width": "2.2.0", @@ -5541,9 +7148,9 @@ } }, "invariant": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.3.tgz", - "integrity": "sha512-7Z5PPegwDTyjbaeCnV0efcyS6vdKAU51kpEmS7QFib3P4822l8ICYyMn7qvJnc+WzLoDsuI9gPMKbJ8pCu8XtA==", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "requires": { "loose-envify": "1.3.1" @@ -5568,6 +7175,29 @@ "boom": "7.2.0", "cryptiles": "4.1.1", "hoek": "5.0.3" + }, + "dependencies": { + "boom": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", + "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "requires": { + "hoek": "5.0.3" + } + }, + "cryptiles": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-4.1.1.tgz", + "integrity": "sha512-YuQUPbcOmaZsdvxJZ25DCA1W+lLIRoPJKBDKin+St1RCYEERSfoe1d25B1MvWNHN3e8SpFSVsqYvEUjp8J9H2w==", + "requires": { + "boom": "7.2.0" + } + }, + "hoek": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + } } }, "irregular-plurals": { @@ -5616,7 +7246,7 @@ "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", "dev": true, "requires": { - "ci-info": "1.1.2" + "ci-info": "1.1.3" } }, "is-dotfile": { @@ -5741,9 +7371,9 @@ "dev": true }, "is-path-in-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", - "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, "requires": { "is-path-inside": "1.0.1" @@ -5817,9 +7447,9 @@ "integrity": "sha1-oEc7Jnx1ZjVIa+7cfjNE5UnRUqw=" }, "is-supported-regexp-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.0.tgz", - "integrity": "sha1-i1IMhfrnolM4LUsCZS4EVXbhO7g=" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.1.tgz", + "integrity": "sha512-3vcJecUUrpgCqc/ca0aWeNu64UGgxcvO60K/Fkr1N6RSvfGCTU60UKN68JDmKokgba0rFFJs12EnzOQa14ubKQ==" }, "is-typedarray": { "version": "1.0.0", @@ -5827,9 +7457,9 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-url": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz", - "integrity": "sha1-SYkFpZO/R8wtnn9zg3K792lsfyY=", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", "dev": true }, "is-utf8": { @@ -5849,6 +7479,13 @@ "integrity": "sha512-mVjAjvdPkpwXW61agT2E9AkGoegZO7SdJGCezWwxnETL58f5KwJ4vSVAMBUL5idL6rTlYAIGkX3n4suiviMLNw==", "requires": { "punycode": "2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=" + } } }, "isexe": { @@ -5895,6 +7532,13 @@ "hoek": "5.0.3", "isemail": "3.1.1", "topo": "3.0.0" + }, + "dependencies": { + "hoek": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + } } }, "js-green-licenses": { @@ -6176,7 +7820,7 @@ "escape-string-regexp": "1.0.5", "js2xmlparser": "3.0.0", "klaw": "2.0.0", - "marked": "0.3.17", + "marked": "0.3.19", "mkdirp": "0.5.1", "requizzle": "0.2.1", "strip-json-comments": "2.0.1", @@ -6467,7 +8111,7 @@ "content-disposition": "0.5.2", "content-type": "1.0.4", "cookies": "0.7.1", - "debug": "2.6.9", + "debug": "3.1.0", "delegates": "1.0.0", "depd": "1.1.2", "destroy": "1.0.4", @@ -6737,9 +8381,9 @@ "dev": true }, "log-driver": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz", - "integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", + "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==" }, "lolex": { "version": "2.3.2", @@ -6773,9 +8417,9 @@ } }, "lowercase-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", "dev": true }, "lru-cache": { @@ -6803,9 +8447,9 @@ "dev": true }, "marked": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.17.tgz", - "integrity": "sha512-+AKbNsjZl6jFfLPwHhWmGTqE009wTKn3RTmn9K8oUKHrX/abPJjtcRtXpYB/FFrwPJRUA86LX/de3T0knkPCmQ==", + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.19.tgz", + "integrity": "sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==", "dev": true }, "matcher": { @@ -7012,9 +8656,9 @@ } }, "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.2.0.tgz", + "integrity": "sha512-0Qz9uF1ATtl8RKJG4VRfOymh7PyEor6NbrI/61lRfuRe4vx9SNATrvAeTj2EWVRKjEQGskrzWkJBBY5NbaVHIA==" }, "mime-db": { "version": "1.33.0", @@ -7048,6 +8692,13 @@ "requires": { "hoek": "5.0.3", "mime-db": "1.33.0" + }, + "dependencies": { + "hoek": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + } } }, "minimalistic-assert": { @@ -7087,9 +8738,9 @@ } }, "mocha": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.0.4.tgz", - "integrity": "sha512-nMOpAPFosU1B4Ix1jdhx5e3q7XO55ic5a8cgYvW27CequcEY+BabS0kUVL1Cw1V5PuVHZWeNRWFLmEPexo79VA==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.0.5.tgz", + "integrity": "sha512-3MM3UjZ5p8EJrYpG7s+29HAI9G7sTzKEe4+w37Dg0QP7qL4XGsV+Q2xet2cE37AqdgN1OtYQB6Vl98YiPV3PgA==", "dev": true, "requires": { "browser-stdout": "1.3.1", @@ -7110,15 +8761,6 @@ "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", "dev": true }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, "supports-color": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", @@ -7198,12 +8840,36 @@ "mkdirp": "0.5.1", "ncp": "2.0.0", "rimraf": "2.4.5" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "optional": true, + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "rimraf": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", + "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=", + "optional": true, + "requires": { + "glob": "6.0.4" + } + } } }, "nan": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.9.2.tgz", - "integrity": "sha512-ltW65co7f3PQWBDbqVvaU1WtFJUsNW7sWWm4HINhbMQIyVyzIeyZ8toX5TC5eeooE6piZoaEh4cZkueSKG3KYw==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", "optional": true }, "natural-compare": { @@ -7215,8 +8881,7 @@ "ncp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", - "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=", - "optional": true + "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=" }, "negotiator": { "version": "0.6.1", @@ -7232,6 +8897,12 @@ "inherits": "2.0.3" } }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, "nigel": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/nigel/-/nigel-3.0.0.tgz", @@ -7239,12 +8910,19 @@ "requires": { "hoek": "5.0.3", "vise": "3.0.0" + }, + "dependencies": { + "hoek": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + } } }, "nise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.3.0.tgz", - "integrity": "sha512-U+Krdzhsw4losPP/Rij5UGTLQgS9gaWmXdRIbZQIQWVsUGDBo+N0m9mrY9CCEnmwssgswwydxLJUZtFfouC0gA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/nise/-/nise-1.3.2.tgz", + "integrity": "sha512-KPKb+wvETBiwb4eTwtR/OsA2+iijXP+VnlSFYJo3EHjm2yjek1NWxHOUQat3i7xNLm1Bm18UA5j5Wor0yO2GtA==", "dev": true, "requires": { "@sinonjs/formatio": "2.0.0", @@ -7279,24 +8957,13 @@ "requires": { "chai": "4.1.2", "debug": "3.1.0", - "deep-equal": "1.0.1", - "json-stringify-safe": "5.0.1", - "lodash": "4.17.5", - "mkdirp": "0.5.1", - "propagate": "1.0.0", - "qs": "6.5.1", - "semver": "5.5.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } + "deep-equal": "1.0.1", + "json-stringify-safe": "5.0.1", + "lodash": "4.17.5", + "mkdirp": "0.5.1", + "propagate": "1.0.0", + "qs": "6.5.1", + "semver": "5.5.0" } }, "node-forge": { @@ -7367,7 +9034,7 @@ "dev": true, "requires": { "prepend-http": "2.0.0", - "query-string": "5.1.0", + "query-string": "5.1.1", "sort-keys": "2.0.0" }, "dependencies": { @@ -7407,9 +9074,9 @@ "dev": true }, "nyc": { - "version": "11.4.1", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.4.1.tgz", - "integrity": "sha512-5eCZpvaksFVjP2rt1r60cfXmt3MUtsQDw8bAzNqNEr4WLvUMLgiVENMf/B9bE9YAX0mGVvaGA3v9IS9ekNqB1Q==", + "version": "11.6.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.6.0.tgz", + "integrity": "sha512-ZaXCh0wmbk2aSBH2B5hZGGvK2s9aM8DIm2rVY+BG3Fx8tUS+bpJSswUVZqOD1YfCmnYRFSqgYJSr7UeeUcW0jg==", "dev": true, "requires": { "archy": "1.0.0", @@ -7422,29 +9089,28 @@ "find-up": "2.1.0", "foreground-child": "1.5.6", "glob": "7.1.2", - "istanbul-lib-coverage": "1.1.1", + "istanbul-lib-coverage": "1.2.0", "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "1.9.1", - "istanbul-lib-report": "1.1.2", - "istanbul-lib-source-maps": "1.2.2", - "istanbul-reports": "1.1.3", + "istanbul-lib-instrument": "1.10.1", + "istanbul-lib-report": "1.1.3", + "istanbul-lib-source-maps": "1.2.3", + "istanbul-reports": "1.3.0", "md5-hex": "1.3.0", - "merge-source-map": "1.0.4", + "merge-source-map": "1.1.0", "micromatch": "2.3.11", "mkdirp": "0.5.1", "resolve-from": "2.0.0", "rimraf": "2.6.2", "signal-exit": "3.0.2", "spawn-wrap": "1.4.2", - "test-exclude": "4.1.1", - "yargs": "10.0.3", - "yargs-parser": "8.0.0" + "test-exclude": "4.2.1", + "yargs": "11.1.0", + "yargs-parser": "8.1.0" }, "dependencies": { "align-text": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2", @@ -7454,26 +9120,22 @@ }, "amdefine": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "bundled": true, "dev": true }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "bundled": true, "dev": true }, "ansi-styles": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "bundled": true, "dev": true }, "append-transform": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "bundled": true, "dev": true, "requires": { "default-require-extensions": "1.0.0" @@ -7481,14 +9143,12 @@ }, "archy": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "bundled": true, "dev": true }, "arr-diff": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "bundled": true, "dev": true, "requires": { "arr-flatten": "1.1.0" @@ -7496,32 +9156,42 @@ }, "arr-flatten": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "bundled": true, + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "bundled": true, "dev": true }, "array-unique": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "bundled": true, "dev": true }, "arrify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "bundled": true, + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "bundled": true, "dev": true }, "async": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "bundled": true, + "dev": true + }, + "atob": { + "version": "2.0.3", + "bundled": true, "dev": true }, "babel-code-frame": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "bundled": true, "dev": true, "requires": { "chalk": "1.1.3", @@ -7530,9 +9200,8 @@ } }, "babel-generator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", - "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "version": "6.26.1", + "bundled": true, "dev": true, "requires": { "babel-messages": "6.23.0", @@ -7540,15 +9209,14 @@ "babel-types": "6.26.0", "detect-indent": "4.0.0", "jsesc": "1.3.0", - "lodash": "4.17.4", + "lodash": "4.17.5", "source-map": "0.5.7", "trim-right": "1.0.1" } }, "babel-messages": { "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "bundled": true, "dev": true, "requires": { "babel-runtime": "6.26.0" @@ -7556,8 +9224,7 @@ }, "babel-runtime": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "bundled": true, "dev": true, "requires": { "core-js": "2.5.3", @@ -7566,21 +9233,19 @@ }, "babel-template": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "bundled": true, "dev": true, "requires": { "babel-runtime": "6.26.0", "babel-traverse": "6.26.0", "babel-types": "6.26.0", "babylon": "6.18.0", - "lodash": "4.17.4" + "lodash": "4.17.5" } }, "babel-traverse": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "bundled": true, "dev": true, "requires": { "babel-code-frame": "6.26.0", @@ -7590,38 +9255,63 @@ "babylon": "6.18.0", "debug": "2.6.9", "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" + "invariant": "2.2.3", + "lodash": "4.17.5" } }, "babel-types": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "bundled": true, "dev": true, "requires": { "babel-runtime": "6.26.0", "esutils": "2.0.2", - "lodash": "4.17.4", + "lodash": "4.17.5", "to-fast-properties": "1.0.3" } }, "babylon": { "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "bundled": true, "dev": true }, "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "bundled": true, "dev": true }, + "base": { + "version": "0.11.2", + "bundled": true, + "dev": true, + "requires": { + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } + }, "brace-expansion": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "version": "1.1.11", + "bundled": true, "dev": true, "requires": { "balanced-match": "1.0.0", @@ -7630,8 +9320,7 @@ }, "braces": { "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "bundled": true, "dev": true, "requires": { "expand-range": "1.8.2", @@ -7641,14 +9330,35 @@ }, "builtin-modules": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "bundled": true, "dev": true }, + "cache-base": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "collection-visit": "1.0.0", + "component-emitter": "1.2.1", + "get-value": "2.0.6", + "has-value": "1.0.0", + "isobject": "3.0.1", + "set-value": "2.0.0", + "to-object-path": "0.3.0", + "union-value": "1.0.0", + "unset-value": "1.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } + }, "caching-transform": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", - "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", + "bundled": true, "dev": true, "requires": { "md5-hex": "1.3.0", @@ -7658,15 +9368,13 @@ }, "camelcase": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "bundled": true, "dev": true, "optional": true }, "center-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -7676,8 +9384,7 @@ }, "chalk": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "bundled": true, "dev": true, "requires": { "ansi-styles": "2.2.1", @@ -7687,10 +9394,86 @@ "supports-color": "2.0.0" } }, + "class-utils": { + "version": "0.3.6", + "bundled": true, + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "kind-of": { + "version": "5.1.0", + "bundled": true, + "dev": true + } + } + }, "cliui": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -7701,8 +9484,7 @@ "dependencies": { "wordwrap": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "bundled": true, "dev": true, "optional": true } @@ -7710,48 +9492,60 @@ }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "bundled": true, "dev": true }, + "collection-visit": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, "commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "bundled": true, + "dev": true + }, + "component-emitter": { + "version": "1.2.1", + "bundled": true, "dev": true }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "bundled": true, "dev": true }, "convert-source-map": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "bundled": true, + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "bundled": true, "dev": true }, "core-js": { "version": "2.5.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", - "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "bundled": true, "dev": true }, "cross-spawn": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.1", + "lru-cache": "4.1.2", "which": "1.3.0" } }, "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "bundled": true, "dev": true, "requires": { "ms": "2.0.0" @@ -7759,29 +9553,46 @@ }, "debug-log": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", - "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", + "bundled": true, "dev": true }, "decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "bundled": true, + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "bundled": true, "dev": true }, "default-require-extensions": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "bundled": true, "dev": true, "requires": { "strip-bom": "2.0.0" } }, + "define-property": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } + }, "detect-indent": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "bundled": true, "dev": true, "requires": { "repeating": "2.0.1" @@ -7789,8 +9600,7 @@ }, "error-ex": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "bundled": true, "dev": true, "requires": { "is-arrayish": "0.2.1" @@ -7798,20 +9608,17 @@ }, "escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "bundled": true, "dev": true }, "esutils": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "bundled": true, "dev": true }, "execa": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "bundled": true, "dev": true, "requires": { "cross-spawn": "5.1.0", @@ -7825,11 +9632,10 @@ "dependencies": { "cross-spawn": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.1", + "lru-cache": "4.1.2", "shebang-command": "1.2.0", "which": "1.3.0" } @@ -7838,8 +9644,7 @@ }, "expand-brackets": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "bundled": true, "dev": true, "requires": { "is-posix-bracket": "0.1.1" @@ -7847,17 +9652,34 @@ }, "expand-range": { "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "bundled": true, "dev": true, "requires": { "fill-range": "2.2.3" } }, + "extend-shallow": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, "extglob": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "bundled": true, "dev": true, "requires": { "is-extglob": "1.0.0" @@ -7865,14 +9687,12 @@ }, "filename-regex": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "bundled": true, "dev": true }, "fill-range": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "bundled": true, "dev": true, "requires": { "is-number": "2.1.0", @@ -7884,8 +9704,7 @@ }, "find-cache-dir": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "bundled": true, "dev": true, "requires": { "commondir": "1.0.1", @@ -7895,8 +9714,7 @@ }, "find-up": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "bundled": true, "dev": true, "requires": { "locate-path": "2.0.0" @@ -7904,14 +9722,12 @@ }, "for-in": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "bundled": true, "dev": true }, "for-own": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "bundled": true, "dev": true, "requires": { "for-in": "1.0.2" @@ -7919,36 +9735,44 @@ }, "foreground-child": { "version": "1.5.6", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", - "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "bundled": true, "dev": true, "requires": { "cross-spawn": "4.0.2", "signal-exit": "3.0.2" } }, + "fragment-cache": { + "version": "0.2.1", + "bundled": true, + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "bundled": true, "dev": true }, "get-caller-file": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "bundled": true, "dev": true }, "get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "bundled": true, + "dev": true + }, + "get-value": { + "version": "2.0.6", + "bundled": true, "dev": true }, "glob": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "bundled": true, "dev": true, "requires": { "fs.realpath": "1.0.0", @@ -7961,8 +9785,7 @@ }, "glob-base": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "bundled": true, "dev": true, "requires": { "glob-parent": "2.0.0", @@ -7971,8 +9794,7 @@ }, "glob-parent": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "bundled": true, "dev": true, "requires": { "is-glob": "2.0.1" @@ -7980,20 +9802,17 @@ }, "globals": { "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "bundled": true, "dev": true }, "graceful-fs": { "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "bundled": true, "dev": true }, "handlebars": { "version": "4.0.11", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", - "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "bundled": true, "dev": true, "requires": { "async": "1.5.2", @@ -8004,8 +9823,7 @@ "dependencies": { "source-map": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "bundled": true, "dev": true, "requires": { "amdefine": "1.0.1" @@ -8015,8 +9833,7 @@ }, "has-ansi": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "2.1.1" @@ -8024,26 +9841,76 @@ }, "has-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "bundled": true, "dev": true }, + "has-value": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } + }, + "has-values": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, "hosted-git-info": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", + "version": "2.6.0", + "bundled": true, "dev": true }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "bundled": true, "dev": true }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "dev": true, "requires": { "once": "1.4.0", @@ -8052,14 +9919,12 @@ }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "bundled": true, "dev": true }, "invariant": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "version": "2.2.3", + "bundled": true, "dev": true, "requires": { "loose-envify": "1.3.1" @@ -8067,41 +9932,82 @@ }, "invert-kv": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "bundled": true, "dev": true }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, "is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "bundled": true, "dev": true }, "is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "bundled": true, "dev": true }, "is-builtin-module": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "bundled": true, "dev": true, "requires": { "builtin-modules": "1.1.1" } }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, "is-dotfile": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "bundled": true, "dev": true }, "is-equal-shallow": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "bundled": true, "dev": true, "requires": { "is-primitive": "2.0.0" @@ -8109,38 +10015,30 @@ }, "is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "bundled": true, "dev": true }, "is-extglob": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "bundled": true, "dev": true }, "is-finite": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "bundled": true, "dev": true, "requires": { "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } + "version": "2.0.0", + "bundled": true, + "dev": true }, "is-glob": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "bundled": true, "dev": true, "requires": { "is-extglob": "1.0.0" @@ -8148,95 +10046,118 @@ }, "is-number": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" } }, + "is-odd": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "bundled": true, + "dev": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "bundled": true, + "dev": true, + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } + }, "is-posix-bracket": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "bundled": true, "dev": true }, "is-primitive": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "bundled": true, "dev": true }, "is-stream": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "bundled": true, "dev": true }, "is-utf8": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "bundled": true, + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "bundled": true, "dev": true }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "bundled": true, "dev": true }, "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "bundled": true, "dev": true }, "isobject": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "bundled": true, "dev": true, "requires": { "isarray": "1.0.0" } }, "istanbul-lib-coverage": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz", - "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==", + "version": "1.2.0", + "bundled": true, "dev": true }, "istanbul-lib-hook": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", - "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", + "bundled": true, "dev": true, "requires": { "append-transform": "0.4.0" } }, "istanbul-lib-instrument": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz", - "integrity": "sha512-RQmXeQ7sphar7k7O1wTNzVczF9igKpaeGQAG9qR2L+BS4DCJNTI9nytRmIVYevwO0bbq+2CXvJmYDuz0gMrywA==", + "version": "1.10.1", + "bundled": true, "dev": true, "requires": { - "babel-generator": "6.26.0", + "babel-generator": "6.26.1", "babel-template": "6.26.0", "babel-traverse": "6.26.0", "babel-types": "6.26.0", "babylon": "6.18.0", - "istanbul-lib-coverage": "1.1.1", - "semver": "5.4.1" + "istanbul-lib-coverage": "1.2.0", + "semver": "5.5.0" } }, "istanbul-lib-report": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz", - "integrity": "sha512-UTv4VGx+HZivJQwAo1wnRwe1KTvFpfi/NYwN7DcsrdzMXwpRT/Yb6r4SBPoHWj4VuQPakR32g4PUUeyKkdDkBA==", + "version": "1.1.3", + "bundled": true, "dev": true, "requires": { - "istanbul-lib-coverage": "1.1.1", + "istanbul-lib-coverage": "1.2.0", "mkdirp": "0.5.1", "path-parse": "1.0.5", "supports-color": "3.2.3" @@ -8244,8 +10165,7 @@ "dependencies": { "supports-color": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "bundled": true, "dev": true, "requires": { "has-flag": "1.0.0" @@ -8254,13 +10174,12 @@ } }, "istanbul-lib-source-maps": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz", - "integrity": "sha512-8BfdqSfEdtip7/wo1RnrvLpHVEd8zMZEDmOFEnpC6dg0vXflHt9nvoAyQUzig2uMSXfF2OBEYBV3CVjIL9JvaQ==", + "version": "1.2.3", + "bundled": true, "dev": true, "requires": { "debug": "3.1.0", - "istanbul-lib-coverage": "1.1.1", + "istanbul-lib-coverage": "1.2.0", "mkdirp": "0.5.1", "rimraf": "2.6.2", "source-map": "0.5.7" @@ -8268,8 +10187,7 @@ "dependencies": { "debug": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "bundled": true, "dev": true, "requires": { "ms": "2.0.0" @@ -8278,9 +10196,8 @@ } }, "istanbul-reports": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.3.tgz", - "integrity": "sha512-ZEelkHh8hrZNI5xDaKwPMFwDsUf5wIEI2bXAFGp1e6deR2mnEKBPhLJEgr4ZBt8Gi6Mj38E/C8kcy9XLggVO2Q==", + "version": "1.3.0", + "bundled": true, "dev": true, "requires": { "handlebars": "4.0.11" @@ -8288,20 +10205,17 @@ }, "js-tokens": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "bundled": true, "dev": true }, "jsesc": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "bundled": true, "dev": true }, "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -8309,15 +10223,13 @@ }, "lazy-cache": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "bundled": true, "dev": true, "optional": true }, "lcid": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "bundled": true, "dev": true, "requires": { "invert-kv": "1.0.0" @@ -8325,8 +10237,7 @@ }, "load-json-file": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -8338,8 +10249,7 @@ }, "locate-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "bundled": true, "dev": true, "requires": { "p-locate": "2.0.0", @@ -8348,47 +10258,54 @@ "dependencies": { "path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "bundled": true, "dev": true } } }, "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "version": "4.17.5", + "bundled": true, "dev": true }, "longest": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "bundled": true, "dev": true }, "loose-envify": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "bundled": true, "dev": true, "requires": { "js-tokens": "3.0.2" } }, "lru-cache": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", - "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "version": "4.1.2", + "bundled": true, "dev": true, "requires": { "pseudomap": "1.0.2", "yallist": "2.1.2" } }, + "map-cache": { + "version": "0.2.2", + "bundled": true, + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, "md5-hex": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", - "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", + "bundled": true, "dev": true, "requires": { "md5-o-matic": "0.1.1" @@ -8396,32 +10313,35 @@ }, "md5-o-matic": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", - "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=", + "bundled": true, "dev": true }, "mem": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "bundled": true, "dev": true, "requires": { - "mimic-fn": "1.1.0" + "mimic-fn": "1.2.0" } }, "merge-source-map": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", - "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=", + "version": "1.1.0", + "bundled": true, "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "bundled": true, + "dev": true + } } }, "micromatch": { "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "bundled": true, "dev": true, "requires": { "arr-diff": "2.0.0", @@ -8440,30 +10360,45 @@ } }, "mimic-fn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", - "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", + "version": "1.2.0", + "bundled": true, "dev": true }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "1.1.11" } }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "bundled": true, "dev": true }, + "mixin-deep": { + "version": "1.3.1", + "bundled": true, + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "dev": true, "requires": { "minimist": "0.0.8" @@ -8471,26 +10406,59 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "bundled": true, + "dev": true + }, + "nanomatch": { + "version": "1.2.9", + "bundled": true, + "dev": true, + "requires": { + "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-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "bundled": true, + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "bundled": true, + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } }, "normalize-package-data": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "bundled": true, "dev": true, "requires": { - "hosted-git-info": "2.5.0", + "hosted-git-info": "2.6.0", "is-builtin-module": "1.0.0", - "semver": "5.4.1", - "validate-npm-package-license": "3.0.1" + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" } }, "normalize-path": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "bundled": true, "dev": true, "requires": { "remove-trailing-separator": "1.1.0" @@ -8498,8 +10466,7 @@ }, "npm-run-path": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "bundled": true, "dev": true, "requires": { "path-key": "2.0.1" @@ -8507,30 +10474,109 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "bundled": true, "dev": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "bundled": true, "dev": true }, + "object-copy": { + "version": "0.1.0", + "bundled": true, + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "bundled": true, + "dev": true + } + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } + }, "object.omit": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "bundled": true, "dev": true, "requires": { "for-own": "0.1.5", "is-extendable": "0.1.1" } }, + "object.pick": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } + }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "dev": true, "requires": { "wrappy": "1.0.2" @@ -8538,8 +10584,7 @@ }, "optimist": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "bundled": true, "dev": true, "requires": { "minimist": "0.0.8", @@ -8548,14 +10593,12 @@ }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "bundled": true, "dev": true }, "os-locale": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "bundled": true, "dev": true, "requires": { "execa": "0.7.0", @@ -8565,29 +10608,33 @@ }, "p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "bundled": true, "dev": true }, "p-limit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", - "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", - "dev": true + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "p-try": "1.0.0" + } }, "p-locate": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "bundled": true, "dev": true, "requires": { - "p-limit": "1.1.0" + "p-limit": "1.2.0" } }, + "p-try": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, "parse-glob": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "bundled": true, "dev": true, "requires": { "glob-base": "0.3.0", @@ -8598,17 +10645,20 @@ }, "parse-json": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "bundled": true, "dev": true, "requires": { "error-ex": "1.3.1" } }, + "pascalcase": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, "path-exists": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "bundled": true, "dev": true, "requires": { "pinkie-promise": "2.0.1" @@ -8616,26 +10666,22 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "bundled": true, "dev": true }, "path-key": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "bundled": true, "dev": true }, "path-parse": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "bundled": true, "dev": true }, "path-type": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -8645,20 +10691,17 @@ }, "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "bundled": true, "dev": true }, "pinkie": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "bundled": true, "dev": true }, "pinkie-promise": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "bundled": true, "dev": true, "requires": { "pinkie": "2.0.4" @@ -8666,8 +10709,7 @@ }, "pkg-dir": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "bundled": true, "dev": true, "requires": { "find-up": "1.1.2" @@ -8675,8 +10717,7 @@ "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "bundled": true, "dev": true, "requires": { "path-exists": "2.1.0", @@ -8685,22 +10726,24 @@ } } }, + "posix-character-classes": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, "preserve": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "bundled": true, "dev": true }, "pseudomap": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "bundled": true, "dev": true }, "randomatic": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "bundled": true, "dev": true, "requires": { "is-number": "3.0.0", @@ -8709,8 +10752,7 @@ "dependencies": { "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -8718,8 +10760,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -8729,8 +10770,7 @@ }, "kind-of": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -8740,8 +10780,7 @@ }, "read-pkg": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "bundled": true, "dev": true, "requires": { "load-json-file": "1.1.0", @@ -8751,8 +10790,7 @@ }, "read-pkg-up": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "bundled": true, "dev": true, "requires": { "find-up": "1.1.2", @@ -8761,8 +10799,7 @@ "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "bundled": true, "dev": true, "requires": { "path-exists": "2.1.0", @@ -8773,41 +10810,44 @@ }, "regenerator-runtime": { "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "bundled": true, "dev": true }, "regex-cache": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "bundled": true, "dev": true, "requires": { "is-equal-shallow": "0.1.3" } }, + "regex-not": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, "remove-trailing-separator": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "bundled": true, "dev": true }, "repeat-element": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "bundled": true, "dev": true }, "repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "bundled": true, "dev": true }, "repeating": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "bundled": true, "dev": true, "requires": { "is-finite": "1.0.2" @@ -8815,26 +10855,32 @@ }, "require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "bundled": true, "dev": true }, "require-main-filename": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "bundled": true, "dev": true }, "resolve-from": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", + "bundled": true, + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "bundled": true, + "dev": true + }, + "ret": { + "version": "0.1.15", + "bundled": true, "dev": true }, "right-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -8843,29 +10889,54 @@ }, "rimraf": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "bundled": true, "dev": true, "requires": { "glob": "7.1.2" } }, + "safe-regex": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, "semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "version": "5.5.0", + "bundled": true, "dev": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "bundled": true, "dev": true }, + "set-value": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, "shebang-command": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "bundled": true, "dev": true, "requires": { "shebang-regex": "1.0.0" @@ -8873,67 +10944,280 @@ }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "bundled": true, "dev": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "bundled": true, "dev": true }, "slide": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "bundled": true, "dev": true }, + "snapdragon": { + "version": "0.8.2", + "bundled": true, + "dev": true, + "requires": { + "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.1", + "use": "3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "bundled": true, + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "bundled": true, + "dev": true + }, + "source-map-resolve": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "atob": "2.0.3", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "bundled": true, + "dev": true + }, + "spawn-wrap": { + "version": "1.4.2", + "bundled": true, + "dev": true, + "requires": { + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.0" + } + }, + "spdx-correct": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "bundled": true, "dev": true }, - "spawn-wrap": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", - "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", + "split-string": { + "version": "3.1.0", + "bundled": true, "dev": true, "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.0" + "extend-shallow": "3.0.2" } }, - "spdx-correct": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "static-extend": { + "version": "0.1.2", + "bundled": true, "dev": true, "requires": { - "spdx-license-ids": "1.2.2" + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "bundled": true, + "dev": true + } } }, - "spdx-expression-parse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", - "dev": true - }, - "spdx-license-ids": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", - "dev": true - }, "string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "bundled": true, "dev": true, "requires": { "is-fullwidth-code-point": "2.0.0", @@ -8942,20 +11226,12 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "bundled": true, "dev": true }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "3.0.0" @@ -8965,8 +11241,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "2.1.1" @@ -8974,8 +11249,7 @@ }, "strip-bom": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "bundled": true, "dev": true, "requires": { "is-utf8": "0.2.1" @@ -8983,89 +11257,444 @@ }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "bundled": true, "dev": true }, "supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "bundled": true, "dev": true }, "test-exclude": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz", - "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==", + "version": "4.2.1", + "bundled": true, "dev": true, "requires": { "arrify": "1.0.1", - "micromatch": "2.3.11", + "micromatch": "3.1.9", "object-assign": "4.1.1", "read-pkg-up": "1.0.1", "require-main-filename": "1.0.1" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "bundled": true, + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "bundled": true, + "dev": true + }, + "braces": { + "version": "2.3.1", + "bundled": true, + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "kind-of": "6.0.2", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "bundled": true, + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-descriptor": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "bundled": true, + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "bundled": true, + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + }, + "micromatch": { + "version": "3.1.9", + "bundled": true, + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.1", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + } + } } }, "to-fast-properties": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "bundled": true, "dev": true }, + "to-object-path": { + "version": "0.3.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "to-regex": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + } + } + }, "trim-right": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "bundled": true, "dev": true }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "uglify-js": { + "version": "2.8.29", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "yargs": { + "version": "3.10.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "union-value": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" + } + } + } + }, + "unset-value": { + "version": "1.0.0", + "bundled": true, "dev": true, - "optional": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "has-value": "0.3.1", + "isobject": "3.0.1" }, "dependencies": { - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "has-value": { + "version": "0.3.1", + "bundled": true, "dev": true, - "optional": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } } + }, + "has-values": { + "version": "0.1.4", + "bundled": true, + "dev": true + }, + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true } } }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "urix": { + "version": "0.1.0", + "bundled": true, + "dev": true + }, + "use": { + "version": "3.1.0", + "bundled": true, "dev": true, - "optional": true + "requires": { + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } }, "validate-npm-package-license": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "version": "3.0.3", + "bundled": true, "dev": true, "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "which": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "bundled": true, "dev": true, "requires": { "isexe": "2.0.0" @@ -9073,37 +11702,40 @@ }, "which-module": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "bundled": true, "dev": true }, "window-size": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "bundled": true, "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "bundled": true, "dev": true }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "bundled": true, "dev": true, "requires": { "string-width": "1.0.2", "strip-ansi": "3.0.1" }, "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "dev": true, "requires": { "code-point-at": "1.1.0", @@ -9115,14 +11747,12 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "bundled": true, "dev": true }, "write-file-atomic": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", - "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -9132,23 +11762,20 @@ }, "y18n": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "bundled": true, "dev": true }, "yallist": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "bundled": true, "dev": true }, "yargs": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.0.3.tgz", - "integrity": "sha512-DqBpQ8NAUX4GyPP/ijDGHsJya4tYqLQrjPr95HNsr1YwL3+daCfvBwg7+gIC6IdJhR2kATh3hb61vjzMWEtjdw==", + "version": "11.1.0", + "bundled": true, "dev": true, "requires": { - "cliui": "3.2.0", + "cliui": "4.0.0", "decamelize": "1.2.0", "find-up": "2.1.0", "get-caller-file": "1.0.2", @@ -9159,39 +11786,50 @@ "string-width": "2.1.1", "which-module": "2.0.0", "y18n": "3.2.1", - "yargs-parser": "8.0.0" + "yargs-parser": "9.0.2" }, "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "bundled": true, + "dev": true + }, "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "version": "4.0.0", + "bundled": true, "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", "wrap-ansi": "2.1.0" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - } + } + }, + "strip-ansi": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "yargs-parser": { + "version": "9.0.2", + "bundled": true, + "dev": true, + "requires": { + "camelcase": "4.1.0" } } } }, "yargs-parser": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.0.0.tgz", - "integrity": "sha1-IdR2Mw5agieaS4gTRb8GYQLiGcY=", + "version": "8.1.0", + "bundled": true, "dev": true, "requires": { "camelcase": "4.1.0" @@ -9199,8 +11837,7 @@ "dependencies": { "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "bundled": true, "dev": true } } @@ -9357,8 +11994,7 @@ "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "osenv": { "version": "0.1.5", @@ -9457,7 +12093,7 @@ "is-redirect": "1.0.0", "is-retry-allowed": "1.1.0", "is-stream": "1.1.0", - "lowercase-keys": "1.0.0", + "lowercase-keys": "1.0.1", "safe-buffer": "5.1.1", "timed-out": "4.0.1", "unzip-response": "2.0.1", @@ -9561,15 +12197,30 @@ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "pez": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pez/-/pez-4.0.1.tgz", - "integrity": "sha512-0c/SoW5MY7lPdc5U1Q/ixyjLZbluGWJonHVmn4mKwSq7vgO9+a9WzoCopHubIwkot6Q+fevNVElaA+1M9SqHrA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pez/-/pez-4.0.2.tgz", + "integrity": "sha512-HuPxmGxHsEFPWhdkwBs2gIrHhFqktIxMtudISTFN95RQ85ZZAOl8Ki6u3nnN/X8OUaGlIGldk/l8p2IR4/i76w==", "requires": { "b64": "4.0.0", "boom": "7.2.0", "content": "4.0.4", "hoek": "5.0.3", "nigel": "3.0.0" + }, + "dependencies": { + "boom": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", + "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "requires": { + "hoek": "5.0.3" + } + }, + "hoek": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + } } }, "pidusage": { @@ -9668,12 +12319,19 @@ "requires": { "hoek": "5.0.3", "joi": "13.1.2" + }, + "dependencies": { + "hoek": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + } } }, "postcss": { - "version": "6.0.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", - "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.21.tgz", + "integrity": "sha512-y/bKfbQz2Nn/QBC08bwvYUxEFOVGfPIUOTsJ2CK5inzlXW9SdYR1x4pEsG9blRAF/PX+wRNdOah+gx/hv4q7dw==", "dev": true, "requires": { "chalk": "2.3.2", @@ -9708,7 +12366,7 @@ "integrity": "sha1-7bo1LT7YpgMRTWZyZazOYNaJzN8=", "dev": true, "requires": { - "core-js": "2.5.3", + "core-js": "2.5.4", "power-assert-context-traversal": "1.1.1" } }, @@ -9720,7 +12378,7 @@ "requires": { "acorn": "4.0.13", "acorn-es7-plugin": "1.1.7", - "core-js": "2.5.3", + "core-js": "2.5.4", "espurify": "1.7.0", "estraverse": "4.2.0" }, @@ -9739,7 +12397,7 @@ "integrity": "sha1-iMq8oNE7Y1nwfT0+ivppkmRXftk=", "dev": true, "requires": { - "core-js": "2.5.3", + "core-js": "2.5.4", "estraverse": "4.2.0" } }, @@ -9749,7 +12407,7 @@ "integrity": "sha1-XcEl7VCj37HdomwZNH879Y7CiEo=", "dev": true, "requires": { - "core-js": "2.5.3", + "core-js": "2.5.4", "power-assert-context-formatter": "1.1.1", "power-assert-context-reducer-ast": "1.1.2", "power-assert-renderer-assertion": "1.1.1", @@ -9780,7 +12438,7 @@ "integrity": "sha1-10Odl9hRVr5OMKAPL7WnJRTOPAg=", "dev": true, "requires": { - "core-js": "2.5.3", + "core-js": "2.5.4", "diff-match-patch": "1.0.0", "power-assert-renderer-base": "1.1.1", "stringifier": "1.3.0", @@ -9793,7 +12451,7 @@ "integrity": "sha1-ZV+PcRk1qbbVQbhjJ2VHF8Y3qYY=", "dev": true, "requires": { - "core-js": "2.5.3", + "core-js": "2.5.4", "power-assert-renderer-base": "1.1.1", "power-assert-util-string-width": "1.1.1", "stringifier": "1.3.0" @@ -9905,14 +12563,25 @@ } }, "proxyquire": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/proxyquire/-/proxyquire-2.0.0.tgz", - "integrity": "sha512-TO9TAIz0mpa+SKddXsgCFatoe/KmHvoNVj2jDMC1kXE6kKn7/4CRpxvQ+0wAK9sbMT2FVO89qItlvnZMcFbJ2Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/proxyquire/-/proxyquire-2.0.1.tgz", + "integrity": "sha512-fQr3VQrbdzHrdaDn3XuisVoJlJNDJizHAvUXw9IuXRR8BpV2x0N7LsCxrpJkeKfPbNjiNU/V5vc008cI0TmzzQ==", "dev": true, "requires": { "fill-keys": "1.0.2", "module-not-found-error": "1.0.1", - "resolve": "1.1.7" + "resolve": "1.5.0" + }, + "dependencies": { + "resolve": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + } } }, "pseudomap": { @@ -9921,9 +12590,9 @@ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" }, "qs": { "version": "6.5.1", @@ -9931,9 +12600,9 @@ "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" }, "query-string": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.0.tgz", - "integrity": "sha512-F3DkxxlY0AqD/rwe4YAwjRE2HjOkKW7TxsuteyrS/Jbwrxw887PqYBL4sWUJ9D/V1hmFns0SCD6FDyvlwo9RCQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", "dev": true, "requires": { "decode-uri-component": "0.2.0", @@ -10005,9 +12674,9 @@ } }, "rc": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.5.tgz", - "integrity": "sha1-J1zWh/bjs2zHVrqibf7oCnkDAf0=", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.6.tgz", + "integrity": "sha1-6xiYnG1PTxYsOZ953dKfODVWgJI=", "dev": true, "requires": { "deep-extend": "0.4.2", @@ -10122,6 +12791,12 @@ "is-equal-shallow": "0.1.3" } }, + "regexpp": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.0.1.tgz", + "integrity": "sha512-8Ph721maXiOYSLtaDGKVmDn5wdsNaF6Px85qFNeMPQq0r8K5Y10tgP6YuR65Ws35n4DvzFcCxEnRNBIXQunzLw==", + "dev": true + }, "regexpu-core": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", @@ -10139,7 +12814,7 @@ "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", "dev": true, "requires": { - "rc": "1.2.5", + "rc": "1.2.6", "safe-buffer": "5.1.1" } }, @@ -10149,7 +12824,7 @@ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "dev": true, "requires": { - "rc": "1.2.5" + "rc": "1.2.6" } }, "regjsgen": { @@ -10310,26 +12985,26 @@ "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", "dev": true, "requires": { - "lowercase-keys": "1.0.0" + "lowercase-keys": "1.0.1" } }, "restify": { - "version": "6.3.4", - "resolved": "https://registry.npmjs.org/restify/-/restify-6.3.4.tgz", - "integrity": "sha512-kYmXwCtj7gJ6e7vMwTjkFkygMTdcxwbJGJ+JXdsREMLx0h23mVBwLpyi2tqgI6DE1S0Al7//y7gbLXP79RqKaw==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/restify/-/restify-6.4.0.tgz", + "integrity": "sha512-p92TXaSuvDWxpmHd7Y5ex1vjFifhNzNZQy99EOPynV/V75fJN5ybHv5mXTD+c1Ffo9fvRv2Yb1FLnfDMpaffPA==", "requires": { "assert-plus": "1.0.0", "bunyan": "1.8.12", - "clone-regexp": "1.0.0", + "clone-regexp": "1.0.1", "csv": "1.2.1", "dtrace-provider": "0.8.6", "escape-regexp-component": "1.0.2", "ewma": "2.0.1", - "formidable": "1.2.0", + "formidable": "1.2.1", "http-signature": "1.2.0", "lodash": "4.17.5", "lru-cache": "4.1.2", - "mime": "1.4.1", + "mime": "1.6.0", "negotiator": "0.6.1", "once": "1.4.0", "pidusage": "1.2.0", @@ -10340,6 +13015,13 @@ "uuid": "3.2.1", "vasync": "1.6.4", "verror": "1.10.0" + }, + "dependencies": { + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + } } }, "restify-errors": { @@ -10394,25 +13076,11 @@ } }, "rimraf": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", - "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "6.0.4" - }, - "dependencies": { - "glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", - "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - } + "glob": "7.1.2" } }, "run-async": { @@ -10469,7 +13137,7 @@ "lodash.isplainobject": "4.0.6", "lodash.isstring": "4.0.1", "lodash.mergewith": "4.6.1", - "postcss": "6.0.19", + "postcss": "6.0.21", "srcset": "1.0.0", "xtend": "4.0.1" } @@ -10511,6 +13179,21 @@ "on-finished": "2.3.0", "range-parser": "1.2.0", "statuses": "1.4.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + } } }, "serialize-error": { @@ -10575,6 +13258,13 @@ "requires": { "hoek": "5.0.3", "joi": "13.1.2" + }, + "dependencies": { + "hoek": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + } } }, "signal-exit": { @@ -10593,7 +13283,7 @@ "diff": "3.5.0", "lodash.get": "4.4.2", "lolex": "2.3.2", - "nise": "1.3.0", + "nise": "1.3.2", "supports-color": "5.3.0", "type-detect": "4.0.8" } @@ -10625,13 +13315,6 @@ "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", "requires": { "hoek": "4.2.1" - }, - "dependencies": { - "hoek": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", - "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" - } } }, "sort-keys": { @@ -10650,9 +13333,9 @@ "dev": true }, "source-map-support": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.3.tgz", - "integrity": "sha512-eKkTgWYeBOQqFGXRfKabMFdnWepo51vWqEdoeikaEPFiJC7MCU5j2h4+6Q8npkZTeLGbSyecZvRxiSoWl3rh+w==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.4.tgz", + "integrity": "sha512-PETSPG6BjY1AHs2t64vS2aqAgu6dMIMXJULWFBGbh2Gr8nVLbCFDo6i/RMMvviIQ2h1Z8+5gQhVKSn2je9nmdg==", "dev": true, "requires": { "source-map": "0.6.1" @@ -10736,13 +13419,23 @@ "http-deceiver": "1.2.7", "safe-buffer": "5.1.1", "select-hose": "2.0.0", - "spdy-transport": "2.0.20" + "spdy-transport": "2.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + } } }, "spdy-transport": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.0.20.tgz", - "integrity": "sha1-c15yBUxIayNU/onnAiVgBKOazk0=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.0.tgz", + "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", "requires": { "debug": "2.6.9", "detect-node": "2.0.3", @@ -10751,6 +13444,16 @@ "readable-stream": "2.3.5", "safe-buffer": "5.1.1", "wbuf": "1.7.3" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + } } }, "split-array-stream": { @@ -10779,9 +13482,9 @@ } }, "sshpk": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", - "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz", + "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=", "requires": { "asn1": "0.2.3", "assert-plus": "1.0.0", @@ -10816,6 +13519,29 @@ "hoek": "5.0.3", "iron": "5.0.4", "joi": "13.1.2" + }, + "dependencies": { + "boom": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", + "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "requires": { + "hoek": "5.0.3" + } + }, + "cryptiles": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-4.1.1.tgz", + "integrity": "sha512-YuQUPbcOmaZsdvxJZ25DCA1W+lLIRoPJKBDKin+St1RCYEERSfoe1d25B1MvWNHN3e8SpFSVsqYvEUjp8J9H2w==", + "requires": { + "boom": "7.2.0" + } + }, + "hoek": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + } } }, "statuses": { @@ -10882,7 +13608,7 @@ "integrity": "sha1-3vGDQvaTPbDy2/yaoCF1tEjBeVk=", "dev": true, "requires": { - "core-js": "2.5.3", + "core-js": "2.5.4", "traverse": "0.6.6", "type-name": "2.0.2" } @@ -10958,8 +13684,23 @@ "boom": "7.2.0", "content": "4.0.4", "hoek": "5.0.3", - "pez": "4.0.1", + "pez": "4.0.2", "wreck": "14.0.2" + }, + "dependencies": { + "boom": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", + "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "requires": { + "hoek": "5.0.3" + } + }, + "hoek": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + } } }, "superagent": { @@ -10973,21 +13714,18 @@ "debug": "3.1.0", "extend": "3.0.1", "form-data": "2.3.2", - "formidable": "1.2.0", + "formidable": "1.2.1", "methods": "1.1.2", - "mime": "1.4.1", + "mime": "1.6.0", "qs": "6.5.1", "readable-stream": "2.3.5" }, "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true } } }, @@ -11114,7 +13852,6 @@ "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, "requires": { "os-tmpdir": "1.0.2" } @@ -11143,6 +13880,13 @@ "integrity": "sha512-Tlu1fGlR90iCdIPURqPiufqAlCZYzLjHYVVbcFWDMcX7+tK8hdZWAfsMrD/pBul9jqHHwFjNdf1WaxA9vTRRhw==", "requires": { "hoek": "5.0.3" + }, + "dependencies": { + "hoek": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + } } }, "tough-cookie": { @@ -11151,13 +13895,6 @@ "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "requires": { "punycode": "1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } } }, "traverse": { @@ -11199,21 +13936,21 @@ "babel-code-frame": "6.26.0", "builtin-modules": "1.1.1", "chalk": "2.3.2", - "commander": "2.15.0", + "commander": "2.15.1", "diff": "3.5.0", "glob": "7.1.2", "js-yaml": "3.11.0", "minimatch": "3.0.4", - "resolve": "1.5.0", + "resolve": "1.6.0", "semver": "5.5.0", "tslib": "1.9.0", - "tsutils": "2.22.2" + "tsutils": "2.24.0" }, "dependencies": { "resolve": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", - "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.6.0.tgz", + "integrity": "sha512-mw7JQNu5ExIkcw4LPih0owX/TZXjD/ZUF/ZQ/pDnkw3ZKhDcZZw5klmBlj6gVMwjQ3Pz5Jgu7F3d0jcDVuEWdw==", "dev": true, "requires": { "path-parse": "1.0.5" @@ -11222,9 +13959,9 @@ } }, "tsutils": { - "version": "2.22.2", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.22.2.tgz", - "integrity": "sha512-u06FUSulCJ+Y8a2ftuqZN6kIGqdP2yJjUPEngXqmdPND4UQfb04igcotH+dw+IFr417yP6muCLE8/5/Qlfnx0w==", + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.24.0.tgz", + "integrity": "sha512-rOIkvoe17acR3r96IPnqwa1+Z7zx9AroEtEKl20IeExXtoWptqG/zb806cYOvdbQGcxh1eOaZQNruOQ716Edig==", "dev": true, "requires": { "tslib": "1.9.0" @@ -11396,15 +14133,16 @@ "dev": true }, "update-notifier": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.3.0.tgz", - "integrity": "sha1-TognpruRUUCrCTVZ1wFOPruDdFE=", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.4.0.tgz", + "integrity": "sha1-+bTHAPv9TsEsgRWHJYd31WPYyGY=", "dev": true, "requires": { "boxen": "1.3.0", "chalk": "2.3.2", - "configstore": "3.1.1", + "configstore": "3.1.2", "import-lazy": "2.1.0", + "is-ci": "1.1.0", "is-installed-globally": "0.1.0", "is-npm": "1.0.0", "latest-version": "3.1.0", @@ -11449,7 +14187,7 @@ "i": "0.3.6", "mkdirp": "0.5.1", "ncp": "0.4.2", - "rimraf": "2.4.5" + "rimraf": "2.6.2" }, "dependencies": { "async": { @@ -11539,6 +14277,13 @@ "integrity": "sha512-kBFZLmiL1Vm3rHXphkhvvAcsjgeQXRrOFCbJb0I50YZZP4HGRNH+xGzK3matIMcpbsfr3I02u9odj4oCD0TWgA==", "requires": { "hoek": "5.0.3" + }, + "dependencies": { + "hoek": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + } } }, "vow": { @@ -11715,6 +14460,21 @@ "requires": { "boom": "7.2.0", "hoek": "5.0.3" + }, + "dependencies": { + "boom": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", + "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "requires": { + "hoek": "5.0.3" + } + }, + "hoek": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + } } }, "write": { diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 639688da255..de401e059d5 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -31,17 +31,17 @@ "Tomoaki Abe " ], "scripts": { - "docs": "repo-tools exec -- jsdoc -c .jsdoc.js", - "generate-scaffolding": "repo-tools generate all && repo-tools generate lib_samples_readme -l samples/ --config ../.cloud-repo-tools.json", - "lint": "repo-tools lint --cmd eslint -- build/src/ samples/ build/system-test/ build/test/", - "prettier": "repo-tools exec -- prettier --write src/*.js src/*/*.js samples/*.js samples/*/*.js test/*.js test/*/*.js test/*/*/*.js system-test/*.js system-test/*/*.js", + "docs": "node node_modules/.bin/repo-tools exec -- jsdoc -c .jsdoc.js", + "generate-scaffolding": "node node_modules/.bin/repo-tools generate all && node node_modules/.bin/repo-tools generate lib_samples_readme -l samples/ --config ../.cloud-repo-tools.json", + "lint": "node node_modules/.bin/repo-tools lint --cmd eslint -- build/src/ samples/ build/system-test/ build/test/", + "prettier": "node node_modules/.bin/repo-tools exec -- prettier --write src/*.js src/*/*.js samples/*.js samples/*/*.js test/*.js test/*/*.js test/*/*/*.js system-test/*.js system-test/*/*.js", "presystem-test": "npm run compile", "system-test": "nyc --exclude=\"error-message.js\" mocha ./build/system-test/*.js", "cover": "nyc --exclude=\"fuzzer.js\" --reporter=lcov mocha --require intelli-espower-loader ./build/test/unit/*.js ./build/test/unit/**/*.js && nyc report", "presamples-test": "npm run compile", "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", - "test-no-cover": "repo-tools test run --cmd mocha -- ./build/test/unit/*.js ./build/test/unit/**/*.js --no-timeouts", - "test": "repo-tools test run --cmd npm -- run cover", + "test-no-cover": "node node_modules/.bin/repo-tools test run --cmd mocha -- ./build/test/unit/*.js ./build/test/unit/**/*.js --no-timeouts", + "test": "node node_modules/.bin/repo-tools test run --cmd npm -- run cover", "check": "echo '`gts check` disabled until translation of the test code to Typescript is complete.'", "clean": "gts clean", "compile": "tsc -p .", From 389d275483b231f7b1b13a3efea401a0829bb6d2 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Tue, 27 Mar 2018 15:24:35 -0700 Subject: [PATCH 077/527] chore: simplify `index.ts` (#80) --- handwritten/error-reporting/package-lock.json | 392 +++++++++++++----- handwritten/error-reporting/package.json | 26 +- handwritten/error-reporting/src/index.ts | 47 +-- .../error-reporting/src/interfaces/koa.ts | 2 +- 4 files changed, 315 insertions(+), 152 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index d0533946d35..54403c43b1b 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -1935,9 +1935,9 @@ "dev": true }, "@types/is": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/@types/is/-/is-0.0.18.tgz", - "integrity": "sha512-A7PSzJyDwKbkJ3kvM0gfs9daFyiCwvrSmzA5ToFW1rporicAKgrpZsZJifQQob/QvMwEbwi3zF2o/Lw8K3frxw==", + "version": "0.0.19", + "resolved": "https://registry.npmjs.org/@types/is/-/is-0.0.19.tgz", + "integrity": "sha512-OfsDEdzuxfkNXIlAd55eBFCag+I82Ex4jt5s4mOdVS1DHeXaB/zMdgbllTt62qRNCpdypkP36ROj4tUXJTvbZQ==", "dev": true }, "@types/joi": { @@ -2016,9 +2016,9 @@ "dev": true }, "@types/mocha": { - "version": "2.2.48", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-2.2.48.tgz", - "integrity": "sha512-nlK/iyETgafGli8Zh9zJVCTicvU3iajSkRwOh3Hhiva598CMqNJ4NcVCGMTGKpGpTYj/9R8RLzS9NAykSSCqGw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.0.0.tgz", + "integrity": "sha512-ZS0vBV7Jn5Z/Q4T3VXauEKMDCV8nWOtJJg90OsDylkYJiQwcWtKuLzohWzrthBkerUF7DLMmJcwOPEP0i/AOXw==", "dev": true }, "@types/ncp": { @@ -2137,6 +2137,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/accept/-/accept-3.0.2.tgz", "integrity": "sha512-bghLXFkCOsC1Y2TZ51etWfKDs6q249SAoHTZVfzWWdlZxoij+mgkj9AmUJWQpDY48TfnrTDIe43Xem4zdMe7mQ==", + "dev": true, "requires": { "boom": "7.2.0", "hoek": "5.0.3" @@ -2146,6 +2147,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "dev": true, "requires": { "hoek": "5.0.3" } @@ -2153,7 +2155,8 @@ "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", + "dev": true } } }, @@ -2161,6 +2164,7 @@ "version": "1.3.5", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "dev": true, "requires": { "mime-types": "2.1.18", "negotiator": "0.6.1" @@ -2233,6 +2237,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/ammo/-/ammo-3.0.0.tgz", "integrity": "sha512-6yoz9MXYV9sgCHrwprHWPxBaJ9/roQRfXzS//4JCNgKfPYcghFNwJQKBt6vWOoSGGRHsP6qsLJ+xtKStKJWdLQ==", + "dev": true, "requires": { "boom": "6.0.0", "hoek": "5.0.3" @@ -2242,6 +2247,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/boom/-/boom-6.0.0.tgz", "integrity": "sha512-LYLa8BmiiOWjvxTMVh73lcZzd2E5yczrKvxAny1UuzO2tkarLrw4tdp3rdfmus3+YfKcZP0vRSM3Obh+fGK6eA==", + "dev": true, "requires": { "hoek": "5.0.3" } @@ -2249,7 +2255,8 @@ "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", + "dev": true } } }, @@ -2362,7 +2369,8 @@ "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true }, "array-union": { "version": "1.0.2", @@ -2556,7 +2564,8 @@ "b64": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/b64/-/b64-4.0.0.tgz", - "integrity": "sha512-EhmUQodKB0sdzPPrbIWbGqA5cQeTWxYrAgNeeT1rLZWtD3tbNTnphz8J4vkXI3cPgBNlXBjzEbzDzq0Nwi4f9A==" + "integrity": "sha512-EhmUQodKB0sdzPPrbIWbGqA5cQeTWxYrAgNeeT1rLZWtD3tbNTnphz8J4vkXI3cPgBNlXBjzEbzDzq0Nwi4f9A==", + "dev": true }, "babel-code-frame": { "version": "6.26.0", @@ -3032,7 +3041,8 @@ "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true }, "base64url": { "version": "2.0.0", @@ -3051,7 +3061,8 @@ "big-time": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/big-time/-/big-time-2.0.0.tgz", - "integrity": "sha512-OXsmBxlRLwUc65MLta2EOyMTLcjZQkxHkJ81lVPeyVqZag8zhUfKRYIbF3E/IW/LWR8kf8a1GlRYkBXKVGqJOw==" + "integrity": "sha512-OXsmBxlRLwUc65MLta2EOyMTLcjZQkxHkJ81lVPeyVqZag8zhUfKRYIbF3E/IW/LWR8kf8a1GlRYkBXKVGqJOw==", + "dev": true }, "binary-extensions": { "version": "1.11.0", @@ -3069,6 +3080,7 @@ "version": "1.18.2", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "dev": true, "requires": { "bytes": "3.0.0", "content-type": "1.0.4", @@ -3086,6 +3098,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "requires": { "ms": "2.0.0" } @@ -3104,6 +3117,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/bounce/-/bounce-1.2.0.tgz", "integrity": "sha512-8syCGe8B2/WC53118/F/tFy5aW00j+eaGPXmAUP7iBhxc+EBZZxS1vKelWyBCH6IqojgS2t1gF0glH30qAJKEw==", + "dev": true, "requires": { "boom": "7.2.0", "hoek": "5.0.3" @@ -3113,6 +3127,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "dev": true, "requires": { "hoek": "5.0.3" } @@ -3120,7 +3135,8 @@ "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", + "dev": true } } }, @@ -3151,6 +3167,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -3205,6 +3222,7 @@ "version": "1.8.12", "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.12.tgz", "integrity": "sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=", + "dev": true, "requires": { "dtrace-provider": "0.8.6", "moment": "2.21.0", @@ -3215,7 +3233,8 @@ "bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true }, "cacheable-request": { "version": "2.1.4", @@ -3277,6 +3296,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/call/-/call-5.0.1.tgz", "integrity": "sha512-ollfFPSshiuYLp7AsrmpkQJ/PxCi6AzV81rCjBwWhyF2QGyUY/vPDMzoh4aUcWyucheRglG2LaS5qkIEfLRh6A==", + "dev": true, "requires": { "boom": "7.2.0", "hoek": "5.0.3" @@ -3286,6 +3306,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "dev": true, "requires": { "hoek": "5.0.3" } @@ -3293,7 +3314,8 @@ "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", + "dev": true } } }, @@ -3360,6 +3382,7 @@ "version": "10.0.2", "resolved": "https://registry.npmjs.org/catbox/-/catbox-10.0.2.tgz", "integrity": "sha512-cTQTQeKMhWHU0lX8CADE3g1koGJu+AlcWFzAjMX/8P+XbkScGYw3tJsQpe2Oh8q68vOQbOLacz9k+6V/F3Z9DA==", + "dev": true, "requires": { "boom": "7.2.0", "bounce": "1.2.0", @@ -3371,6 +3394,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "dev": true, "requires": { "hoek": "5.0.3" } @@ -3378,7 +3402,8 @@ "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", + "dev": true } } }, @@ -3386,6 +3411,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/catbox-memory/-/catbox-memory-3.1.1.tgz", "integrity": "sha512-fl6TI/uneeUb9NGClKWZWkpCZQrkPmuVz/Jaqqb15vqW6KGfJ/vMP/ZMp8VgAkyTrrRvFHbFcS67sbU7EkvbhQ==", + "dev": true, "requires": { "big-time": "2.0.0", "boom": "7.2.0", @@ -3396,6 +3422,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "dev": true, "requires": { "hoek": "5.0.3" } @@ -3403,7 +3430,8 @@ "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", + "dev": true } } }, @@ -3621,6 +3649,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.1.tgz", "integrity": "sha512-Fcij9IwRW27XedRIJnSOEupS7RVcXtObJXbcUOX93UCLqqOdRpkvzKywOOSizmEK/Is3S/RHX9dLdfo6R1Q1mw==", + "dev": true, "requires": { "is-regexp": "1.0.0", "is-supported-regexp-flag": "1.0.1" @@ -3889,7 +3918,8 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true }, "concat-stream": { "version": "1.6.2", @@ -3959,6 +3989,7 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/content/-/content-4.0.4.tgz", "integrity": "sha512-h0r6/VHlhrLVFrTj612v5EPwqyMs3L79Uf4vEw0zFmywodU8TveiIuINp0//3/GRnAWrQbgSnazSosNkyAeVNA==", + "dev": true, "requires": { "boom": "7.2.0" }, @@ -3967,6 +3998,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "dev": true, "requires": { "hoek": "5.0.3" } @@ -3974,19 +4006,22 @@ "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", + "dev": true } } }, "content-disposition": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", + "dev": true }, "content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true }, "convert-source-map": { "version": "1.5.1", @@ -4003,12 +4038,14 @@ "cookie": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true }, "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true }, "cookiejar": { "version": "2.1.1", @@ -4228,6 +4265,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/csv/-/csv-1.2.1.tgz", "integrity": "sha1-UjHt/BxxUlEuxFeBB2p6l/9SXAw=", + "dev": true, "requires": { "csv-generate": "1.1.2", "csv-parse": "1.3.3", @@ -4238,17 +4276,20 @@ "csv-generate": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-1.1.2.tgz", - "integrity": "sha1-7GsA7a7W5ZrZwgWC9MNk4osUYkA=" + "integrity": "sha1-7GsA7a7W5ZrZwgWC9MNk4osUYkA=", + "dev": true }, "csv-parse": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-1.3.3.tgz", - "integrity": "sha1-0c/YdDwvhJoKuy/VRNtWaV0ZpJA=" + "integrity": "sha1-0c/YdDwvhJoKuy/VRNtWaV0ZpJA=", + "dev": true }, "csv-stringify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-1.1.2.tgz", "integrity": "sha1-d6QVJlgbzjOA8SsA18W7rHDIK1g=", + "dev": true, "requires": { "lodash.get": "4.4.2" } @@ -4439,12 +4480,14 @@ "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true }, "destroy": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true }, "detect-indent": { "version": "4.0.0", @@ -4458,7 +4501,8 @@ "detect-node": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz", - "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=" + "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=", + "dev": true }, "diff": { "version": "3.5.0", @@ -4537,6 +4581,7 @@ "version": "0.8.6", "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.6.tgz", "integrity": "sha1-QooiOv4DQl0s1tY0f99AxmkDVj0=", + "dev": true, "optional": true, "requires": { "nan": "2.10.0" @@ -4586,7 +4631,8 @@ "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true }, "empower": { "version": "1.2.3", @@ -4620,7 +4666,8 @@ "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true }, "end-of-stream": { "version": "1.4.1", @@ -4760,12 +4807,14 @@ "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true }, "escape-regexp-component": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/escape-regexp-component/-/escape-regexp-component-1.0.2.tgz", - "integrity": "sha1-nGO20LJf8qiMOtvRjFthrMO5+qI=" + "integrity": "sha1-nGO20LJf8qiMOtvRjFthrMO5+qI=", + "dev": true }, "escape-string-regexp": { "version": "1.0.5", @@ -5064,7 +5113,8 @@ "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true }, "event-emitter": { "version": "0.3.5", @@ -5080,6 +5130,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/ewma/-/ewma-2.0.1.tgz", "integrity": "sha512-MYYK17A76cuuyvkR7MnqLW4iFYPEi5Isl2qb8rXiWpLiwFS9dxW/rncuNnjjgSENuVqZQkIuR4+DChVL4g1lnw==", + "dev": true, "requires": { "assert-plus": "1.0.0" } @@ -5127,6 +5178,7 @@ "version": "4.16.3", "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz", "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", + "dev": true, "requires": { "accepts": "1.3.5", "array-flatten": "1.1.1", @@ -5164,16 +5216,30 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "requires": { "ms": "2.0.0" } + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true } } }, "express-serve-static-core": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/express-serve-static-core/-/express-serve-static-core-0.1.1.tgz", - "integrity": "sha1-IiNYESp5vJ++AIOCMujNLjEy7zc=" + "integrity": "sha1-IiNYESp5vJ++AIOCMujNLjEy7zc=", + "dev": true }, "extend": { "version": "3.0.1", @@ -5285,6 +5351,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", + "dev": true, "requires": { "debug": "2.6.9", "encodeurl": "1.0.2", @@ -5299,6 +5366,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "requires": { "ms": "2.0.0" } @@ -5390,17 +5458,20 @@ "formidable": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz", - "integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==" + "integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==", + "dev": true }, "forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true }, "from2": { "version": "2.3.0", @@ -5426,7 +5497,8 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true }, "fsevents": { "version": "1.1.3", @@ -6396,6 +6468,7 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -6723,7 +6796,8 @@ "handle-thing": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", - "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=" + "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", + "dev": true }, "handlebars": { "version": "4.0.11", @@ -6758,6 +6832,7 @@ "version": "17.2.3", "resolved": "https://registry.npmjs.org/hapi/-/hapi-17.2.3.tgz", "integrity": "sha512-e3Jm2xoZotUgsGAV/NTgg1EOXDeZFwbGr8ruUv9yH/DGyGl+NydEBOR7o28N2YbUs8WhBgi+TSVFL+2vtAe9xQ==", + "dev": true, "requires": { "accept": "3.0.2", "ammo": "3.0.0", @@ -6782,6 +6857,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "dev": true, "requires": { "hoek": "5.0.3" } @@ -6789,7 +6865,8 @@ "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", + "dev": true } } }, @@ -6870,6 +6947,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/heavy/-/heavy-6.1.0.tgz", "integrity": "sha512-TKS9DC9NOTGulHQI31Lx+bmeWmNOstbJbGMiN3pX6bF+Zc2GKSpbbym4oasNnB6yPGkqJ9TQXXYDGohqNSJRxA==", + "dev": true, "requires": { "boom": "7.2.0", "hoek": "5.0.3", @@ -6880,6 +6958,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "dev": true, "requires": { "hoek": "5.0.3" } @@ -6887,7 +6966,8 @@ "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", + "dev": true } } }, @@ -6916,6 +6996,7 @@ "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, "requires": { "inherits": "2.0.3", "obuf": "1.1.2", @@ -6956,12 +7037,14 @@ "http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true }, "http-errors": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "dev": true, "requires": { "depd": "1.1.1", "inherits": "2.0.3", @@ -6972,12 +7055,8 @@ "depd": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" - }, - "setprototypeof": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", + "dev": true } } }, @@ -7022,7 +7101,8 @@ "iconv-lite": { "version": "0.4.19", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", + "dev": true }, "ignore": { "version": "3.3.7", @@ -7074,6 +7154,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -7165,12 +7246,14 @@ "ipaddr.js": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.6.0.tgz", - "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs=" + "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs=", + "dev": true }, "iron": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/iron/-/iron-5.0.4.tgz", "integrity": "sha512-7iQ5/xFMIYaNt9g2oiNiWdhrOTdRUMFaWENUd0KghxwPUhrIH8DUY8FEyLNTTzf75jaII+jMexLdY/2HfV61RQ==", + "dev": true, "requires": { "boom": "7.2.0", "cryptiles": "4.1.1", @@ -7181,6 +7264,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "dev": true, "requires": { "hoek": "5.0.3" } @@ -7189,6 +7273,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-4.1.1.tgz", "integrity": "sha512-YuQUPbcOmaZsdvxJZ25DCA1W+lLIRoPJKBDKin+St1RCYEERSfoe1d25B1MvWNHN3e8SpFSVsqYvEUjp8J9H2w==", + "dev": true, "requires": { "boom": "7.2.0" } @@ -7196,7 +7281,8 @@ "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", + "dev": true } } }, @@ -7421,7 +7507,8 @@ "is-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "dev": true }, "is-resolvable": { "version": "1.1.0", @@ -7449,7 +7536,8 @@ "is-supported-regexp-flag": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.1.tgz", - "integrity": "sha512-3vcJecUUrpgCqc/ca0aWeNu64UGgxcvO60K/Fkr1N6RSvfGCTU60UKN68JDmKokgba0rFFJs12EnzOQa14ubKQ==" + "integrity": "sha512-3vcJecUUrpgCqc/ca0aWeNu64UGgxcvO60K/Fkr1N6RSvfGCTU60UKN68JDmKokgba0rFFJs12EnzOQa14ubKQ==", + "dev": true }, "is-typedarray": { "version": "1.0.0", @@ -7477,6 +7565,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.1.1.tgz", "integrity": "sha512-mVjAjvdPkpwXW61agT2E9AkGoegZO7SdJGCezWwxnETL58f5KwJ4vSVAMBUL5idL6rTlYAIGkX3n4suiviMLNw==", + "dev": true, "requires": { "punycode": "2.1.0" }, @@ -7484,7 +7573,8 @@ "punycode": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=" + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true } } }, @@ -7528,6 +7618,7 @@ "version": "13.1.2", "resolved": "https://registry.npmjs.org/joi/-/joi-13.1.2.tgz", "integrity": "sha512-bZZSQYW5lPXenOfENvgCBPb9+H6E6MeNWcMtikI04fKphj5tvFL9TOb+H2apJzbCrRw/jebjTH8z6IHLpBytGg==", + "dev": true, "requires": { "hoek": "5.0.3", "isemail": "3.1.1", @@ -7537,7 +7628,8 @@ "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", + "dev": true } } }, @@ -8302,7 +8394,8 @@ "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true }, "lodash.has": { "version": "4.5.2", @@ -8479,7 +8572,8 @@ "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true }, "mem": { "version": "1.1.0", @@ -8613,7 +8707,8 @@ "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true }, "merge-estraverse-visitors": { "version": "1.0.0", @@ -8632,7 +8727,8 @@ "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true }, "micromatch": { "version": "2.3.11", @@ -8689,6 +8785,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/mimos/-/mimos-4.0.0.tgz", "integrity": "sha512-JvlvRLqGIlk+AYypWrbrDmhsM+6JVx/xBM5S3AMwTBz1trPCEoPN/swO2L4Wu653fL7oJdgk8DMQyG/Gq3JkZg==", + "dev": true, "requires": { "hoek": "5.0.3", "mime-db": "1.33.0" @@ -8697,19 +8794,22 @@ "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", + "dev": true } } }, "minimalistic-assert": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", - "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=" + "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", + "dev": true }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, "requires": { "brace-expansion": "1.1.11" } @@ -8717,7 +8817,8 @@ "minimist": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true }, "minimist-options": { "version": "3.0.2", @@ -8733,6 +8834,7 @@ "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, "requires": { "minimist": "0.0.8" } @@ -8786,7 +8888,8 @@ "moment": { "version": "2.21.0", "resolved": "https://registry.npmjs.org/moment/-/moment-2.21.0.tgz", - "integrity": "sha512-TCZ36BjURTeFTM/CwRcViQlfkMvL1/vFISuNLO5GkcVm1+QHfbSiNqZuWeMFjj1/3+uAjXswgRk30j1kkLYJBQ==" + "integrity": "sha512-TCZ36BjURTeFTM/CwRcViQlfkMvL1/vFISuNLO5GkcVm1+QHfbSiNqZuWeMFjj1/3+uAjXswgRk30j1kkLYJBQ==", + "dev": true }, "ms": { "version": "2.0.0", @@ -8835,6 +8938,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=", + "dev": true, "optional": true, "requires": { "mkdirp": "0.5.1", @@ -8846,6 +8950,7 @@ "version": "6.0.4", "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "dev": true, "optional": true, "requires": { "inflight": "1.0.6", @@ -8859,6 +8964,7 @@ "version": "2.4.5", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=", + "dev": true, "optional": true, "requires": { "glob": "6.0.4" @@ -8870,6 +8976,7 @@ "version": "2.10.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", + "dev": true, "optional": true }, "natural-compare": { @@ -8881,12 +8988,14 @@ "ncp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", - "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=" + "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=", + "dev": true }, "negotiator": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "dev": true }, "nested-error-stacks": { "version": "1.0.2", @@ -8907,6 +9016,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/nigel/-/nigel-3.0.0.tgz", "integrity": "sha512-ufFVFCe1zS/pfIQzQNa5uJxB8v8IcVTUn1zyPvQwb4CQGRxxBfdQPSXpEnI6ZzIwbV5L+GuAoRhYgcVSvTO7fA==", + "dev": true, "requires": { "hoek": "5.0.3", "vise": "3.0.0" @@ -8915,7 +9025,8 @@ "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", + "dev": true } } }, @@ -8930,23 +9041,6 @@ "lolex": "2.3.2", "path-to-regexp": "1.7.0", "text-encoding": "0.6.4" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "path-to-regexp": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", - "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", - "dev": true, - "requires": { - "isarray": "0.0.1" - } - } } }, "nock": { @@ -11903,12 +11997,14 @@ "obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, "requires": { "ee-first": "1.1.1" } @@ -11994,7 +12090,8 @@ "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true }, "osenv": { "version": "0.1.5", @@ -12132,7 +12229,8 @@ "parseurl": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", + "dev": true }, "path-exists": { "version": "3.0.0", @@ -12143,7 +12241,8 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true }, "path-is-inside": { "version": "1.0.2", @@ -12164,9 +12263,21 @@ "dev": true }, "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", + "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", + "dev": true, + "requires": { + "isarray": "0.0.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + } + } }, "path-type": { "version": "2.0.0", @@ -12200,6 +12311,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/pez/-/pez-4.0.2.tgz", "integrity": "sha512-HuPxmGxHsEFPWhdkwBs2gIrHhFqktIxMtudISTFN95RQ85ZZAOl8Ki6u3nnN/X8OUaGlIGldk/l8p2IR4/i76w==", + "dev": true, "requires": { "b64": "4.0.0", "boom": "7.2.0", @@ -12212,6 +12324,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "dev": true, "requires": { "hoek": "5.0.3" } @@ -12219,14 +12332,16 @@ "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", + "dev": true } } }, "pidusage": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-1.2.0.tgz", - "integrity": "sha512-OGo+iSOk44HRJ8q15AyG570UYxcm5u+R99DI8Khu8P3tKGkVu5EZX4ywHglWSTMNNXQ274oeGpYrvFEhDIFGPg==" + "integrity": "sha512-OGo+iSOk44HRJ8q15AyG570UYxcm5u+R99DI8Khu8P3tKGkVu5EZX4ywHglWSTMNNXQ274oeGpYrvFEhDIFGPg==", + "dev": true }, "pify": { "version": "3.0.0", @@ -12316,6 +12431,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/podium/-/podium-3.1.2.tgz", "integrity": "sha512-18VrjJAduIdPv7d9zWsfmKxTj3cQTYC5Pv5gtKxcWujYBpGbV+mhNSPYhlHW5xeWoazYyKfB9FEsPT12r5rY1A==", + "dev": true, "requires": { "hoek": "5.0.3", "joi": "13.1.2" @@ -12324,7 +12440,8 @@ "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", + "dev": true } } }, @@ -12557,6 +12674,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz", "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", + "dev": true, "requires": { "forwarded": "0.1.2", "ipaddr.js": "1.6.0" @@ -12660,12 +12778,14 @@ "range-parser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "dev": true }, "raw-body": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "dev": true, "requires": { "bytes": "3.0.0", "http-errors": "1.6.2", @@ -12992,6 +13112,7 @@ "version": "6.4.0", "resolved": "https://registry.npmjs.org/restify/-/restify-6.4.0.tgz", "integrity": "sha512-p92TXaSuvDWxpmHd7Y5ex1vjFifhNzNZQy99EOPynV/V75fJN5ybHv5mXTD+c1Ffo9fvRv2Yb1FLnfDMpaffPA==", + "dev": true, "requires": { "assert-plus": "1.0.0", "bunyan": "1.8.12", @@ -13020,7 +13141,8 @@ "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true } } }, @@ -13028,6 +13150,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/restify-errors/-/restify-errors-5.0.0.tgz", "integrity": "sha512-+vby9Kxf7qlzvbZSTIEGkIixkeHG+pVCl34dk6eKnL+ua4pCezpdLT/1/eabzPZb65ADrgoc04jeWrrF1E1pvQ==", + "dev": true, "requires": { "assert-plus": "1.0.0", "lodash": "4.17.5", @@ -13079,6 +13202,7 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, "requires": { "glob": "7.1.2" } @@ -13116,6 +13240,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.1.0.tgz", "integrity": "sha512-EzBtUaFH9bHYPc69wqjp0efJI/DPNHdFbGE3uIMn4sVbO0zx8vZ8cG4WKxQfOpUOKsQyGBiT2mTqnCw+6nLswA==", + "dev": true, "optional": true }, "samsam": { @@ -13145,12 +13270,14 @@ "select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true }, "semver": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true }, "semver-diff": { "version": "2.1.0", @@ -13165,6 +13292,7 @@ "version": "0.16.2", "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "dev": true, "requires": { "debug": "2.6.9", "depd": "1.1.2", @@ -13185,6 +13313,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "requires": { "ms": "2.0.0" } @@ -13192,7 +13321,8 @@ "mime": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true } } }, @@ -13206,6 +13336,7 @@ "version": "1.13.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "dev": true, "requires": { "encodeurl": "1.0.2", "escape-html": "1.0.3", @@ -13226,9 +13357,10 @@ "dev": true }, "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", + "dev": true }, "shebang-command": { "version": "1.2.0", @@ -13255,6 +13387,7 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/shot/-/shot-4.0.5.tgz", "integrity": "sha1-x+dFXRHWD2ts08Q+FaO0McF+VWY=", + "dev": true, "requires": { "hoek": "5.0.3", "joi": "13.1.2" @@ -13263,7 +13396,8 @@ "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", + "dev": true } } }, @@ -13413,6 +13547,7 @@ "version": "3.4.7", "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", + "dev": true, "requires": { "debug": "2.6.9", "handle-thing": "1.2.5", @@ -13426,6 +13561,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "requires": { "ms": "2.0.0" } @@ -13436,6 +13572,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.0.tgz", "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", + "dev": true, "requires": { "debug": "2.6.9", "detect-node": "2.0.3", @@ -13450,6 +13587,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "requires": { "ms": "2.0.0" } @@ -13512,6 +13650,7 @@ "version": "6.0.5", "resolved": "https://registry.npmjs.org/statehood/-/statehood-6.0.5.tgz", "integrity": "sha512-HPa8qT5sGTBVn1Fc9czBYR1oo7gBaay3ysnb04cvcF80YrDIV7880KpjmMj54j7CrFuQFfgMRb44QCRxRmAdTg==", + "dev": true, "requires": { "boom": "7.2.0", "bounce": "1.2.0", @@ -13525,6 +13664,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "dev": true, "requires": { "hoek": "5.0.3" } @@ -13533,6 +13673,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-4.1.1.tgz", "integrity": "sha512-YuQUPbcOmaZsdvxJZ25DCA1W+lLIRoPJKBDKin+St1RCYEERSfoe1d25B1MvWNHN3e8SpFSVsqYvEUjp8J9H2w==", + "dev": true, "requires": { "boom": "7.2.0" } @@ -13540,14 +13681,16 @@ "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", + "dev": true } } }, "statuses": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true }, "stream-events": { "version": "1.0.2", @@ -13565,7 +13708,8 @@ "stream-transform": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-0.2.2.tgz", - "integrity": "sha1-dYZ0h/SVKPi/HYJJllh1PQLfeDg=" + "integrity": "sha1-dYZ0h/SVKPi/HYJJllh1PQLfeDg=", + "dev": true }, "strict-uri-encode": { "version": "1.1.0", @@ -13680,6 +13824,7 @@ "version": "6.0.7", "resolved": "https://registry.npmjs.org/subtext/-/subtext-6.0.7.tgz", "integrity": "sha512-IcJUvRjeR+NB437Iq+LORFNJW4L6Knqkj3oQrBrkdhIaS2VKJvx/9aYEq7vi+PEx5/OuehOL/40SkSZotLi/MA==", + "dev": true, "requires": { "boom": "7.2.0", "content": "4.0.4", @@ -13692,6 +13837,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "dev": true, "requires": { "hoek": "5.0.3" } @@ -13699,7 +13845,8 @@ "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", + "dev": true } } }, @@ -13798,7 +13945,8 @@ "teamwork": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/teamwork/-/teamwork-3.0.1.tgz", - "integrity": "sha512-hEkJIpDOfOYe9NYaLFk00zQbzZeKNCY8T2pRH3I13Y1mJwxaSQ6NEsjY5rCp+11ezCiZpWGoGFTbOuhg4qKevQ==" + "integrity": "sha512-hEkJIpDOfOYe9NYaLFk00zQbzZeKNCY8T2pRH3I13Y1mJwxaSQ6NEsjY5rCp+11ezCiZpWGoGFTbOuhg4qKevQ==", + "dev": true }, "term-size": { "version": "1.2.0", @@ -13852,6 +14000,7 @@ "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, "requires": { "os-tmpdir": "1.0.2" } @@ -13878,6 +14027,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.0.tgz", "integrity": "sha512-Tlu1fGlR90iCdIPURqPiufqAlCZYzLjHYVVbcFWDMcX7+tK8hdZWAfsMrD/pBul9jqHHwFjNdf1WaxA9vTRRhw==", + "dev": true, "requires": { "hoek": "5.0.3" }, @@ -13885,7 +14035,8 @@ "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", + "dev": true } } }, @@ -14000,6 +14151,7 @@ "version": "1.6.16", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "dev": true, "requires": { "media-typer": "0.3.0", "mime-types": "2.1.18" @@ -14124,7 +14276,8 @@ "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true }, "unzip-response": { "version": "2.0.1", @@ -14207,7 +14360,8 @@ "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true }, "uuid": { "version": "3.2.1", @@ -14236,12 +14390,14 @@ "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true }, "vasync": { "version": "1.6.4", "resolved": "https://registry.npmjs.org/vasync/-/vasync-1.6.4.tgz", "integrity": "sha1-3+k2Fq0OeugBszKp2Iv8XNyOHR8=", + "dev": true, "requires": { "verror": "1.6.0" }, @@ -14249,12 +14405,14 @@ "extsprintf": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.2.0.tgz", - "integrity": "sha1-WtlGwi9bMrp/jNdCZxHG6KP8JSk=" + "integrity": "sha1-WtlGwi9bMrp/jNdCZxHG6KP8JSk=", + "dev": true }, "verror": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.6.0.tgz", "integrity": "sha1-fROyex+swuLakEBetepuW90lLqU=", + "dev": true, "requires": { "extsprintf": "1.2.0" } @@ -14275,6 +14433,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/vise/-/vise-3.0.0.tgz", "integrity": "sha512-kBFZLmiL1Vm3rHXphkhvvAcsjgeQXRrOFCbJb0I50YZZP4HGRNH+xGzK3matIMcpbsfr3I02u9odj4oCD0TWgA==", + "dev": true, "requires": { "hoek": "5.0.3" }, @@ -14282,7 +14441,8 @@ "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", + "dev": true } } }, @@ -14325,6 +14485,7 @@ "version": "1.7.3", "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, "requires": { "minimalistic-assert": "1.0.0" } @@ -14457,6 +14618,7 @@ "version": "14.0.2", "resolved": "https://registry.npmjs.org/wreck/-/wreck-14.0.2.tgz", "integrity": "sha512-QCm3omWNJUseqrSzwX2QZi1rBbmCfbFHJAXputLLyZ37VSiFnSYQB0ms/mPnSvrlIu7GVm89Y/gBNhSY26uVIQ==", + "dev": true, "requires": { "boom": "7.2.0", "hoek": "5.0.3" @@ -14466,6 +14628,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "dev": true, "requires": { "hoek": "5.0.3" } @@ -14473,7 +14636,8 @@ "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", + "dev": true } } }, diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index de401e059d5..7f039b1028a 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -54,19 +54,8 @@ }, "dependencies": { "@google-cloud/common": "^0.16.0", - "express": "^4.13.4", - "express-serve-static-core": "^0.1.1", - "extend": "^3.0.0", - "hapi": "^17.1.1", "is": "^3.2.0", - "lodash.has": "^4.5.2", - "ncp": "^2.0.0", - "once": "^1.4.0", - "pify": "^3.0.0", - "request": "^2.85.0", - "restify": "^6.3.4", - "rimraf": "^2.6.2", - "tmp": "0.0.33" + "lodash.has": "^4.5.2" }, "devDependencies": { "@google-cloud/nodejs-repo-tools": "^2.0.11", @@ -94,15 +83,19 @@ "eslint-config-prettier": "^2.6.0", "eslint-plugin-node": "^6.0.0", "eslint-plugin-prettier": "^2.3.1", + "express": "^4.13.4", + "express-serve-static-core": "^0.1.1", + "extend": "^3.0.0", "glob": "^7.1.2", "gts": "^0.5.3", + "hapi": "^17.1.1", "ink-docstrap": "^1.3.0", "intelli-espower-loader": "^1.0.1", "js-green-licenses": "^0.5.0", "jscs": "^3.0.7", "jsdoc": "^3.5.5", "jshint": "^2.9.2", - "koa": "^2.4.1", + "koa": "^2.5.0", "lodash.assign": "^4.2.0", "lodash.foreach": "^4.5.0", "lodash.indexof": "^4.0.5", @@ -114,11 +107,18 @@ "lodash.random": "^3.2.0", "lodash.without": "^4.4.0", "mocha": "^5.0.0", + "ncp": "^2.0.0", "nock": "^9.0.0", "nyc": "^11.3.0", + "once": "^1.4.0", + "pify": "^3.0.0", "power-assert": "^1.4.4", "prettier": "^1.7.4", "proxyquire": "^2.0.0", + "request": "^2.85.0", + "restify": "^6.3.4", + "rimraf": "^2.6.2", + "tmp": "0.0.33", "typescript": "~2.6.2" } } diff --git a/handwritten/error-reporting/src/index.ts b/handwritten/error-reporting/src/index.ts index 52ce3fa15d5..dcad9ad0aa9 100644 --- a/handwritten/error-reporting/src/index.ts +++ b/handwritten/error-reporting/src/index.ts @@ -20,27 +20,23 @@ import * as types from './types'; const Logger: types.Logger = require('@google-cloud/common').Logger; -import * as e from 'express'; -import * as h from 'hapi'; -import {ServerResponse} from 'http'; -import * as r from 'restify'; import {ErrorMessage} from './classes/error-message'; import {Configuration, ConfigurationOptions} from './configuration'; import {RequestHandler as AuthClient} from './google-apis/auth-client'; -import {makeExpressHandler as express} from './interfaces/express'; -import {makeHapiPlugin as hapi} from './interfaces/hapi'; +import {createLogger} from './logger'; + // Begin error reporting interfaces +import * as expressInterface from './interfaces/express'; +import * as hapiInterface from './interfaces/hapi'; +import * as koaInterface from './interfaces/koa'; +import * as manualInterface from './interfaces/manual'; +import * as messageBuilderInterface from './interfaces/message-builder'; +import * as restifyInterface from './interfaces/restify'; -import {koaErrorHandler as koa} from './interfaces/koa'; -import * as manual from './interfaces/manual'; -import {Callback} from './interfaces/manual'; -import * as messageBuilder from './interfaces/message-builder'; -import {handlerSetup as restify} from './interfaces/restify'; -import {createLogger} from './logger'; -import {Request} from './request-extractors/manual'; +import * as manualRequestExtractor from './request-extractors/manual'; -export type RequestHandler = (req: {}, res: {}, next: {}) => {}; +export type RestifyRequestHandler = (req: {}, res: {}, next: {}) => {}; /** * @typedef ConfigurationOptions @@ -104,14 +100,15 @@ export class ErrorReporting { private _config: Configuration; private _client: AuthClient; report: - (err: {}, request?: Request, additionalMessage?: string|{}, - callback?: Callback|{}|string) => ErrorMessage; + (err: {}, request?: manualRequestExtractor.Request, + additionalMessage?: string|{}, + callback?: manualInterface.Callback|{}|string) => ErrorMessage; event: () => ErrorMessage; hapi: {register: (server: {}, options: {}, next: Function) => void}; express: (err: {}, req: {}, res: {}, next: Function) => void; - restify: (server: {}) => RequestHandler | RequestHandler[]; + restify: (server: {}) => RestifyRequestHandler | RestifyRequestHandler[]; // tslint:disable-next-line:no-any - koa: (context: any, next: () => Promise<{}>) => {}; + koa: (context: any, next: {}) => IterableIterator<{}>; constructor(initConfiguration?: ConfigurationOptions) { if (!(this instanceof ErrorReporting)) { @@ -142,7 +139,8 @@ export class ErrorReporting { * console.log('done!'); * }); */ - this.report = manual.handlerSetup(this._client, this._config, this._logger); + this.report = + manualInterface.handlerSetup(this._client, this._config, this._logger); /** * @example @@ -155,7 +153,7 @@ export class ErrorReporting { * console.log('done!'); * }); */ - this.event = messageBuilder.handlerSetup(this._config); + this.event = messageBuilderInterface.handlerSetup(this._config); /** * @example @@ -166,7 +164,7 @@ export class ErrorReporting { * // AFTER ALL OTHER ROUTE HANDLERS * server.register({register: errors.hapi}); */ - this.hapi = hapi(this._client, this._config); + this.hapi = hapiInterface.makeHapiPlugin(this._client, this._config); /** * @example @@ -176,7 +174,8 @@ export class ErrorReporting { * app.use(errors.express); * app.listen(3000); */ - this.express = express(this._client, this._config); + this.express = + expressInterface.makeExpressHandler(this._client, this._config); /** * @example @@ -185,7 +184,7 @@ export class ErrorReporting { * // BEFORE ALL OTHER ROUTE HANDLERS * server.use(errors.restify(server)); */ - this.restify = restify(this._client, this._config); + this.restify = restifyInterface.handlerSetup(this._client, this._config); /** * @example @@ -194,6 +193,6 @@ export class ErrorReporting { * // BEFORE ALL OTHER ROUTE HANDLERS HANDLERS * app.use(errors.koa); */ - this.koa = koa(this._client, this._config); + this.koa = koaInterface.koaErrorHandler(this._client, this._config); } } diff --git a/handwritten/error-reporting/src/interfaces/koa.ts b/handwritten/error-reporting/src/interfaces/koa.ts index 2775b68b74f..712669f0086 100644 --- a/handwritten/error-reporting/src/interfaces/koa.ts +++ b/handwritten/error-reporting/src/interfaces/koa.ts @@ -35,7 +35,7 @@ import {koaRequestInformationExtractor} from '../request-extractors/koa'; * request handlers. */ export function koaErrorHandler( - client: RequestHandler, config: Configuration): Middleware { + client: RequestHandler, config: Configuration) { /** * The actual error handler for the Koa plugin attempts to yield the results * of downstream request handlers and will attempt to catch errors emitted by From c955d39553ef8f5ea9071574bbd88ba564c64d8e Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Tue, 27 Mar 2018 15:43:27 -0700 Subject: [PATCH 078/527] fix(package): update @google-cloud/common to version 0.17.0 (#82) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 7f039b1028a..5a78ad902df 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -53,7 +53,7 @@ "license-check": "jsgl --local ." }, "dependencies": { - "@google-cloud/common": "^0.16.0", + "@google-cloud/common": "^0.17.0", "is": "^3.2.0", "lodash.has": "^4.5.2" }, From 1075558c60f72db3ffd0a2f197411f578e09ab88 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Tue, 27 Mar 2018 19:02:06 -0700 Subject: [PATCH 079/527] chore: release v0.3.0 (#95) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 5a78ad902df..f3697f03e3b 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/error-reporting", "description": "Stackdriver Error Reporting Client Library for Node.js", - "version": "0.2.2", + "version": "0.3.0", "license": "Apache-2.0", "author": "Google Inc.", "engines": { From 2c766f589e958462654829e7e4bda45699c3d55e Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Wed, 28 Mar 2018 08:58:44 -0700 Subject: [PATCH 080/527] fix: fix the `build` dir missing from releases (#98) This was caused by the fact that `install` (and hence `compile`) was not called prior to publishing. As a result, the build directory was never created. --- handwritten/error-reporting/.circleci/config.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/handwritten/error-reporting/.circleci/config.yml b/handwritten/error-reporting/.circleci/config.yml index f944060c59b..986c5a703c0 100644 --- a/handwritten/error-reporting/.circleci/config.yml +++ b/handwritten/error-reporting/.circleci/config.yml @@ -209,6 +209,9 @@ jobs: - run: name: Set NPM authentication. command: 'echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc' + - run: + name: Install modules and dependencies. + command: npm install - run: name: Publish the module to npm. command: npm publish From a8b1bf5e91fd4b095f61d93e06a116f32389ff0a Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Wed, 28 Mar 2018 09:43:28 -0700 Subject: [PATCH 081/527] chore: release v0.3.1 (#99) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index f3697f03e3b..e9deb353101 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/error-reporting", "description": "Stackdriver Error Reporting Client Library for Node.js", - "version": "0.3.0", + "version": "0.3.1", "license": "Apache-2.0", "author": "Google Inc.", "engines": { From 559a1d9ca8953970e09e7d6201d4e42114a92624 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Wed, 28 Mar 2018 14:07:08 -0700 Subject: [PATCH 082/527] chore: run CI as non-root user (#100) --- .../error-reporting/.circleci/config.yml | 30 +++++++++++++++---- handwritten/error-reporting/package.json | 2 +- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/handwritten/error-reporting/.circleci/config.yml b/handwritten/error-reporting/.circleci/config.yml index 986c5a703c0..5f5cae61ce4 100644 --- a/handwritten/error-reporting/.circleci/config.yml +++ b/handwritten/error-reporting/.circleci/config.yml @@ -76,6 +76,7 @@ jobs: node4: docker: - image: 'node:4' + user: node steps: &unit_tests_steps - checkout - run: &remove_package_lock @@ -98,18 +99,22 @@ jobs: node6: docker: - image: 'node:6' + user: node steps: *unit_tests_steps node8: docker: - image: 'node:8' + user: node steps: *unit_tests_steps node9: docker: - image: 'node:9' + user: node steps: *unit_tests_steps lint: docker: - image: 'node:8' + user: node steps: - checkout - run: *remove_package_lock @@ -118,6 +123,8 @@ jobs: command: | npm install npm link + environment: + NPM_CONFIG_PREFIX: /home/node/.npm-global - run: name: Link the module being tested to the samples. command: | @@ -125,12 +132,17 @@ jobs: npm link @google-cloud/error-reporting npm install cd .. + environment: + NPM_CONFIG_PREFIX: /home/node/.npm-global - run: name: Run linting. command: npm run lint + environment: + NPM_CONFIG_PREFIX: /home/node/.npm-global docs: docker: - image: 'node:8' + user: node steps: - checkout - run: *remove_package_lock @@ -143,6 +155,7 @@ jobs: sample_tests: docker: - image: 'node:8' + user: node steps: - checkout - run: *remove_package_lock @@ -157,6 +170,8 @@ jobs: command: | npm install npm link + environment: + NPM_CONFIG_PREFIX: /home/node/.npm-global - run: name: Link the module being tested to the samples. command: | @@ -164,20 +179,24 @@ jobs: npm link @google-cloud/error-reporting npm install cd .. + environment: + NPM_CONFIG_PREFIX: /home/node/.npm-global - run: name: Run sample tests. command: npm run samples-test environment: GCLOUD_PROJECT: long-door-651 - GOOGLE_APPLICATION_CREDENTIALS: /var/error-reporting/.circleci/key.json + GOOGLE_APPLICATION_CREDENTIALS: /home/node/error-reporting/.circleci/key.json + NPM_CONFIG_PREFIX: /home/node/.npm-global - run: name: Remove unencrypted key. command: rm .circleci/key.json when: always - working_directory: /var/error-reporting/ + working_directory: /home/node/error-reporting/ system_tests: docker: - image: 'node:8' + user: node steps: - checkout - run: *remove_package_lock @@ -194,16 +213,17 @@ jobs: name: Run system tests. command: npm run system-test environment: - GOOGLE_APPLICATION_CREDENTIALS: /var/error-reporting/.circleci/key.json - GCLOUD_TESTS_KEY: /var/error-reporting/.circleci/key.json + GOOGLE_APPLICATION_CREDENTIALS: /home/node/error-reporting/.circleci/key.json + GCLOUD_TESTS_KEY: /home/node/error-reporting/.circleci/key.json - run: name: Remove unencrypted key. command: rm .circleci/key.json when: always - working_directory: /var/error-reporting/ + working_directory: /home/node/error-reporting/ publish_npm: docker: - image: 'node:8' + user: node steps: - checkout - run: diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index e9deb353101..c843a046834 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -33,7 +33,7 @@ "scripts": { "docs": "node node_modules/.bin/repo-tools exec -- jsdoc -c .jsdoc.js", "generate-scaffolding": "node node_modules/.bin/repo-tools generate all && node node_modules/.bin/repo-tools generate lib_samples_readme -l samples/ --config ../.cloud-repo-tools.json", - "lint": "node node_modules/.bin/repo-tools lint --cmd eslint -- build/src/ samples/ build/system-test/ build/test/", + "lint": "node node_modules/.bin/repo-tools lint --cmd eslint -- src/ samples/ system-test/ test/", "prettier": "node node_modules/.bin/repo-tools exec -- prettier --write src/*.js src/*/*.js samples/*.js samples/*/*.js test/*.js test/*/*.js test/*/*/*.js system-test/*.js system-test/*/*.js", "presystem-test": "npm run compile", "system-test": "nyc --exclude=\"error-message.js\" mocha ./build/system-test/*.js", From f98e062aa940a41bf614da24980e402f2cbaab2e Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Wed, 28 Mar 2018 14:21:29 -0700 Subject: [PATCH 083/527] chore: release v0.3.2 (#101) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index c843a046834..9a12e02f8f5 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/error-reporting", "description": "Stackdriver Error Reporting Client Library for Node.js", - "version": "0.3.1", + "version": "0.3.2", "license": "Apache-2.0", "author": "Google Inc.", "engines": { From a338171edcb6f14bdcd9aca24d8d9fbac7e43d92 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Thu, 29 Mar 2018 10:15:56 -0700 Subject: [PATCH 084/527] chore: update koa server to use `Date.now()` (#104) Fixes #90 --- .../test/test-servers/koa_scaffold_server.ts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts index e6403352720..fab7096b9d0 100644 --- a/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts @@ -34,20 +34,18 @@ app.use(function*(this, next) { }); app.use(function*(this, next) { - // TODO: Address the fact that new Date() - // is used instead of Date.now() - const start = new Date() as any; + const start = Date.now(); yield next; - const ms = new Date() as any - start; + const ms = Date.now() - start; this.set('X-Response-Time', ms + 'ms'); }); // logger app.use(function*(this, next) { - const start = new Date() as any; + const start = Date.now(); yield next; - const ms = new Date() as any - start; + const ms = Date.now() - start; // eslint-disable-next-line no-console console.log('%s %s - %s', this.method, this.url, ms); }); From 4a6ec089200a11af626323bd4ec2de8bf7dac9ae Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Fri, 30 Mar 2018 15:28:35 -0700 Subject: [PATCH 085/527] chore: re-enable `gts check` (#105) --- handwritten/error-reporting/package.json | 2 +- .../error-reporting/src/interfaces/koa.ts | 3 +- .../error-reporting/src/interfaces/manual.ts | 4 +- .../system-test/error-reporting.ts | 305 +++++++++--------- .../test/fixtures/configuration.ts | 5 +- .../test-servers/express_scaffold_server.ts | 13 +- .../test/test-servers/hapi_scaffold_server.ts | 15 +- .../test-servers/restify_scaffold_server.ts | 2 +- .../test/unit/build-stack-trace.ts | 10 +- .../test/unit/classes/error-message.ts | 170 +++++----- .../classes/request-information-container.ts | 44 +-- .../test/unit/configuration.ts | 184 ++++++----- .../test/unit/google-apis/auth-client.ts | 36 +-- .../test/unit/interfaces/express.ts | 50 +-- .../test/unit/interfaces/hapi.ts | 88 +++-- .../test/unit/interfaces/manual.ts | 102 +++--- .../test/unit/interfaces/restify.ts | 72 +++-- .../error-reporting/test/unit/logger.ts | 48 +-- .../test/unit/populate-error-message.ts | 71 ++-- .../test/unit/request-extractors/express.ts | 22 +- .../test/unit/request-extractors/hapi.ts | 28 +- .../test/unit/request-extractors/koa.ts | 18 +- .../test/unit/request-extractors/manual.ts | 15 +- .../test/unit/service-configuration.ts | 34 +- .../utils/errors-api-transport.ts | 31 +- handwritten/error-reporting/utils/fuzzer.ts | 116 +++---- 26 files changed, 741 insertions(+), 747 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 9a12e02f8f5..cebc8a6ddfc 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -42,7 +42,7 @@ "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", "test-no-cover": "node node_modules/.bin/repo-tools test run --cmd mocha -- ./build/test/unit/*.js ./build/test/unit/**/*.js --no-timeouts", "test": "node node_modules/.bin/repo-tools test run --cmd npm -- run cover", - "check": "echo '`gts check` disabled until translation of the test code to Typescript is complete.'", + "check": "gts check", "clean": "gts clean", "compile": "tsc -p .", "postcompile": "cpy src/types.d.ts build/src/ && cpy 'utils/**/*.*' build --parents && cpy 'test/**/*.*' build --parents", diff --git a/handwritten/error-reporting/src/interfaces/koa.ts b/handwritten/error-reporting/src/interfaces/koa.ts index 712669f0086..6d1425c5f03 100644 --- a/handwritten/error-reporting/src/interfaces/koa.ts +++ b/handwritten/error-reporting/src/interfaces/koa.ts @@ -34,8 +34,7 @@ import {koaRequestInformationExtractor} from '../request-extractors/koa'; * @returns {Function} - The function used to catch errors yielded by downstream * request handlers. */ -export function koaErrorHandler( - client: RequestHandler, config: Configuration) { +export function koaErrorHandler(client: RequestHandler, config: Configuration) { /** * The actual error handler for the Koa plugin attempts to yield the results * of downstream request handlers and will attempt to catch errors emitted by diff --git a/handwritten/error-reporting/src/interfaces/manual.ts b/handwritten/error-reporting/src/interfaces/manual.ts index 90471b82f77..3b439f4285f 100644 --- a/handwritten/error-reporting/src/interfaces/manual.ts +++ b/handwritten/error-reporting/src/interfaces/manual.ts @@ -65,8 +65,8 @@ export function handlerSetup( * the parameters given. */ function reportManualError( - err: {}, request?: Request|Callback|string, additionalMessage?: Callback|string|{}, - callback?: Callback|{}|string) { + err: {}, request?: Request|Callback|string, + additionalMessage?: Callback|string|{}, callback?: Callback|{}|string) { let em; if (isString(request)) { // no request given diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index d53459b50f1..5b681ca4803 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -15,14 +15,16 @@ */ import * as assert from 'assert'; +import * as is from 'is'; import * as nock from 'nock'; -import {RequestHandler} from '../src/google-apis/auth-client'; -import {ErrorsApiTransport} from '../utils/errors-api-transport'; + import {ErrorMessage} from '../src/classes/error-message'; +import {RequestHandler} from '../src/google-apis/auth-client'; import {ErrorReporting} from '../src/index'; -import {FakeConfiguration as Configuration} from '../test/fixtures/configuration'; import {createLogger} from '../src/logger'; -import * as is from 'is'; +import {FakeConfiguration as Configuration} from '../test/fixtures/configuration'; +import {ErrorsApiTransport} from '../utils/errors-api-transport'; + const isObject = is.object; const isString = is.string; const isEmpty = is.empty; @@ -142,15 +144,15 @@ if (!shouldRun()) { process.exit(1); } -describe('Request/Response lifecycle mocking', function() { +describe('Request/Response lifecycle mocking', () => { const sampleError = new Error(ERR_TOKEN); const errorMessage = new ErrorMessage().setMessage(sampleError.message); let fakeService, client, logger; - before(function() { + before(() => { env.sterilizeProcess(); }); - beforeEach(function() { + beforeEach(() => { env.setProjectId().setKeyFilename().setProduction(); fakeService = nock( @@ -163,18 +165,18 @@ describe('Request/Response lifecycle mocking', function() { new Configuration({ignoreEnvironmentCheck: true}, logger), logger); }); - afterEach(function() { + afterEach(() => { env.sterilizeProcess(); nock.cleanAll(); }); - after(function() { + after(() => { env.restoreProcessToOriginalState(); }); - it('Should fail when receiving non-retryable errors', function(done) { + it('Should fail when receiving non-retryable errors', function(this, done) { this.timeout(5000); - client.sendError({}, function(err, response) { + client.sendError({}, (err, response) => { assert(err instanceof Error); assert.strictEqual(err.message.toLowerCase(), 'message cannot be empty.'); assert(isObject(response)); @@ -183,16 +185,16 @@ describe('Request/Response lifecycle mocking', function() { }); }); - it('Should retry when receiving retryable errors', function(done) { + it('Should retry when receiving retryable errors', function(this, done) { this.timeout(25000); let tries = 0; const intendedTries = 4; - fakeService.reply(429, function() { + fakeService.reply(429, () => { tries += 1; console.log('Mock Server Received Request:', tries + '/' + intendedTries); return {error: 'Please try again later'}; }); - client.sendError(errorMessage, function() { + client.sendError(errorMessage, () => { assert.strictEqual(tries, intendedTries); done(); }); @@ -200,41 +202,41 @@ describe('Request/Response lifecycle mocking', function() { it('Should provide the key as a query string on outgoing requests when ' + 'using an API key', - function(done) { + done => { env.sterilizeProcess().setProjectId().setProduction(); const key = env.apiKey; const logger = createLogger({logLevel: 5}); const client = new RequestHandler( - new Configuration({key: key, ignoreEnvironmentCheck: true}, logger), + new Configuration({key, ignoreEnvironmentCheck: true}, logger), logger); - fakeService.query({key: key}).reply(200, function(uri) { + fakeService.query({key}).reply(200, uri => { assert(uri.indexOf('key=' + key) > -1); return {}; }); - client.sendError(errorMessage, function() { + client.sendError(errorMessage, () => { done(); }); }); it('Should still execute the request with a callback-less invocation', - function(done) { - fakeService.reply(200, function() { + done => { + fakeService.reply(200, () => { done(); }); client.sendError(errorMessage); }); }); -describe('Client creation', function() { +describe('Client creation', () => { const sampleError = new Error(ERR_TOKEN); const errorMessage = new ErrorMessage().setMessage(sampleError.stack!); - after(function() { + after(() => { env.sterilizeProcess(); }); it('Should not throw on initialization when using only project id as a ' + 'runtime argument', - function(done) { + function(this, done) { env.sterilizeProcess().setKeyFilename(); const logger = createLogger({logLevel: 5}); const cfg = new Configuration( @@ -244,9 +246,9 @@ describe('Client creation', function() { }, logger); this.timeout(10000); - assert.doesNotThrow(function() { + assert.doesNotThrow(() => { new RequestHandler(cfg, logger) - .sendError(errorMessage, function(err, response, body) { + .sendError(errorMessage, (err, response, body) => { assert.strictEqual(err, null); assert.strictEqual(response!.statusCode, 200); assert(isObject(body) && isEmpty(body)); @@ -257,14 +259,14 @@ describe('Client creation', function() { it('Should not throw on initialization when using only project id as an ' + 'env variable', - function(done) { + function(this, done) { env.sterilizeProcess().setProjectId().setKeyFilename(); const logger = createLogger({logLevel: 5}); const cfg = new Configuration({ignoreEnvironmentCheck: true}, logger); this.timeout(10000); - assert.doesNotThrow(function() { + assert.doesNotThrow(() => { new RequestHandler(cfg, logger) - .sendError(errorMessage, function(err, response, body) { + .sendError(errorMessage, (err, response, body) => { assert.strictEqual(err, null); assert.strictEqual(response!.statusCode, 200); assert(isObject(body) && isEmpty(body)); @@ -275,19 +277,19 @@ describe('Client creation', function() { it('Should not throw on initialization when using only project number as ' + 'a runtime argument', - function(done) { + function(this, done) { env.sterilizeProcess().setKeyFilename(); const logger = createLogger({logLevel: 5}); const cfg = new Configuration( { - projectId: parseInt(env.injected().projectNumber), + projectId: Number(env.injected().projectNumber), ignoreEnvironmentCheck: true, }, logger); this.timeout(10000); - assert.doesNotThrow(function() { + assert.doesNotThrow(() => { new RequestHandler(cfg, logger) - .sendError(errorMessage, function(err, response, body) { + .sendError(errorMessage, (err, response, body) => { assert.strictEqual(err, null); assert.strictEqual(response!.statusCode, 200); assert(isObject(body) && isEmpty(body)); @@ -298,14 +300,14 @@ describe('Client creation', function() { it('Should not throw on initialization when using only project number as ' + 'an env variable', - function(done) { + function(this, done) { env.sterilizeProcess().setKeyFilename().setProjectNumber(); const logger = createLogger({logLevel: 5}); const cfg = new Configuration({ignoreEnvironmentCheck: true}, logger); this.timeout(10000); - assert.doesNotThrow(function() { + assert.doesNotThrow(() => { new RequestHandler(cfg, logger) - .sendError(errorMessage, function(err, response, body) { + .sendError(errorMessage, (err, response, body) => { assert.strictEqual(err, null); assert.strictEqual(response!.statusCode, 200); assert(isObject(body) && isEmpty(body)); @@ -315,7 +317,7 @@ describe('Client creation', function() { }); }); -describe('Expected Behavior', function() { +describe('Expected Behavior', () => { const ERROR_STRING = [ 'Stackdriver error reporting client has not been configured to send', 'errors, please check the NODE_ENV environment variable and make', @@ -326,18 +328,18 @@ describe('Expected Behavior', function() { const er = new Error(ERR_TOKEN); const em = new ErrorMessage().setMessage(er.stack!); - after(function() { + after(() => { env.sterilizeProcess(); }); it('Should callback with an error with a configuration to not report errors', - function(done) { + done => { env.sterilizeProcess().setKeyFilename().setProjectId(); process.env.NODE_ENV = 'null'; const logger = createLogger({logLevel: 5}); const client = new RequestHandler(new Configuration(undefined, logger), logger); - client.sendError({} as ErrorMessage, function(err, response) { + client.sendError({} as ErrorMessage, (err, response) => { assert(err instanceof Error); assert.strictEqual(err!.message, ERROR_STRING); assert.strictEqual(response, null); @@ -345,7 +347,7 @@ describe('Expected Behavior', function() { }); }); - it('Should succeed in its request given a valid project id', function(done) { + it('Should succeed in its request given a valid project id', done => { env.sterilizeProcess(); const logger = createLogger({logLevel: 5}); const cfg = new Configuration( @@ -356,7 +358,7 @@ describe('Expected Behavior', function() { logger); const client = new RequestHandler(cfg, logger); - client.sendError(em, function(err, response, body) { + client.sendError(em, (err, response, body) => { assert.strictEqual(err, null); assert(isObject(body)); assert(isEmpty(body)); @@ -365,28 +367,27 @@ describe('Expected Behavior', function() { }); }); - it('Should succeed in its request given a valid project number', - function(done) { - env.sterilizeProcess(); - const logger = createLogger({logLevel: 5}); - const cfg = new Configuration( - { - projectId: parseInt(env.injected().projectNumber), - ignoreEnvironmentCheck: true, - }, - logger); - const client = new RequestHandler(cfg, logger); - client.sendError(em, function(err, response, body) { - assert.strictEqual(err, null); - assert(isObject(body)); - assert(isEmpty(body)); - assert.strictEqual(response!.statusCode, 200); - done(); - }); - }); + it('Should succeed in its request given a valid project number', done => { + env.sterilizeProcess(); + const logger = createLogger({logLevel: 5}); + const cfg = new Configuration( + { + projectId: Number(env.injected().projectNumber), + ignoreEnvironmentCheck: true, + }, + logger); + const client = new RequestHandler(cfg, logger); + client.sendError(em, (err, response, body) => { + assert.strictEqual(err, null); + assert(isObject(body)); + assert(isEmpty(body)); + assert.strictEqual(response!.statusCode, 200); + done(); + }); + }); }); -describe('Error Reporting API', function() { +describe('Error Reporting API', () => { [{ name: 'when a valid API key is given', getKey: () => env.apiKey, @@ -408,27 +409,28 @@ describe('Error Reporting API', function() { message: 'API key not valid. Please pass a valid API key.', statusCode: 400 }, - ].forEach(function(testCase) { - it(`should return an expected message ${testCase.name}`, function(done) { - this.timeout(30000); - const API = 'https://clouderrorreporting.googleapis.com/v1beta1'; - const key = testCase.getKey(); - request.post( - { - url: `${API}/projects/${env.projectId}/events:report?key=${key}`, - json: {}, - }, - (err, response, body) => { - assert.ok(!err && body.error); - assert.strictEqual(response.statusCode, testCase.statusCode); - assert.strictEqual(body.error.message, testCase.message); - done(); - }); - }); + ].forEach(testCase => { + it(`should return an expected message ${testCase.name}`, + function(this, done) { + this.timeout(30000); + const API = 'https://clouderrorreporting.googleapis.com/v1beta1'; + const key = testCase.getKey(); + request.post( + { + url: `${API}/projects/${env.projectId}/events:report?key=${key}`, + json: {}, + }, + (err, response, body) => { + assert.ok(!err && body.error); + assert.strictEqual(response.statusCode, testCase.statusCode); + assert.strictEqual(body.error.message, testCase.message); + done(); + }); + }); }); }); -describe('error-reporting', function() { +describe('error-reporting', () => { const SRC_ROOT = path.join(__dirname, '..', 'src'); const TIMESTAMP = Date.now(); const BASE_NAME = 'error-reporting-system-test'; @@ -443,7 +445,7 @@ describe('error-reporting', function() { let transport; let oldLogger; let logOutput = ''; - before(function() { + before(() => { // This test assumes that only the error-reporting library will be // adding listeners to the 'unhandledRejection' event. Thus we need to // make sure that no listeners for that event exist. If this check @@ -452,7 +454,7 @@ describe('error-reporting', function() { // interfering with existing listeners of the 'unhandledRejection' event. assert.strictEqual(process.listenerCount('unhandledRejection'), 0); oldLogger = console.log; - console.log = function() { + console.log = function(this) { const text = util.format.apply(null, arguments); oldLogger(text); logOutput += text; @@ -475,27 +477,27 @@ describe('error-reporting', function() { transport = new ErrorsApiTransport(errors._config, errors._logger); } - after(function(done) { + after(done => { console.log = oldLogger; if (transport) { - transport.deleteAllEvents(function(err) { + transport.deleteAllEvents(err => { assert.ifError(err); done(); }); } }); - afterEach(function() { + afterEach(() => { logOutput = ''; }); function verifyAllGroups(messageTest, timeout, cb) { - setTimeout(function() { - transport.getAllGroups(function(err, groups) { + setTimeout(() => { + transport.getAllGroups((err, groups) => { assert.ifError(err); assert.ok(groups); - const matchedErrors = groups.filter(function(errItem) { + const matchedErrors = groups.filter(errItem => { return ( errItem && errItem.representative && errItem.representative.serviceContext && @@ -510,7 +512,7 @@ describe('error-reporting', function() { } function verifyServerResponse(messageTest, timeout, cb) { - verifyAllGroups(messageTest, timeout, function(matchedErrors) { + verifyAllGroups(messageTest, timeout, matchedErrors => { // The error should have been reported exactly once assert.strictEqual(matchedErrors.length, 1); const errItem = matchedErrors[0]; @@ -538,7 +540,7 @@ describe('error-reporting', function() { function verifyReporting(errOb, messageTest, timeout, cb) { (function expectedTopOfStack() { - errors.report(errOb, function(err, response, body) { + errors.report(errOb, (err, response, body) => { assert.ifError(err); assert(isObject(response)); assert.deepEqual(body, {}); @@ -560,87 +562,90 @@ describe('error-reporting', function() { const errOb = (function expectedTopOfStack() { return new Error(errorId); })(); - verifyReporting(errOb, function(message) { + verifyReporting(errOb, message => { return message.startsWith('Error: ' + errorId + '\n'); }, TIMEOUT, done); }); - it('Should correctly publish an error that is a string', function(done) { - this.timeout(TIMEOUT * 2); - const errorId = buildName('with-string'); - verifyReporting(errorId, function(message) { - return message.startsWith(errorId + '\n'); - }, TIMEOUT, done); - }); + it('Should correctly publish an error that is a string', + function(this, done) { + this.timeout(TIMEOUT * 2); + const errorId = buildName('with-string'); + verifyReporting(errorId, message => { + return message.startsWith(errorId + '\n'); + }, TIMEOUT, done); + }); - it('Should correctly publish an error that is undefined', function(done) { - this.timeout(TIMEOUT * 2); - verifyReporting(undefined, function(message) { - return message.startsWith('undefined\n'); - }, TIMEOUT, done); - }); + it('Should correctly publish an error that is undefined', + function(this, done) { + this.timeout(TIMEOUT * 2); + verifyReporting(undefined, message => { + return message.startsWith('undefined\n'); + }, TIMEOUT, done); + }); - it('Should correctly publish an error that is null', function(done) { + it('Should correctly publish an error that is null', function(this, done) { this.timeout(TIMEOUT * 2); - verifyReporting(null, function(message) { + verifyReporting(null, message => { return message.startsWith('null\n'); }, TIMEOUT, done); }); it('Should correctly publish an error that is a plain object', - function(done) { + function(this, done) { this.timeout(TIMEOUT * 2); - verifyReporting({someKey: 'someValue'}, function(message) { + verifyReporting({someKey: 'someValue'}, message => { return message.startsWith('[object Object]\n'); }, TIMEOUT, done); }); - it('Should correctly publish an error that is a number', function(done) { - this.timeout(TIMEOUT * 2); - const num = new Date().getTime(); - verifyReporting(num, function(message) { - return message.startsWith('' + num + '\n'); - }, TIMEOUT, done); - }); + it('Should correctly publish an error that is a number', + function(this, done) { + this.timeout(TIMEOUT * 2); + const num = new Date().getTime(); + verifyReporting(num, message => { + return message.startsWith('' + num + '\n'); + }, TIMEOUT, done); + }); it('Should correctly publish an error that is of an unknown type', - function(done) { + function(this, done) { this.timeout(TIMEOUT * 2); const bool = true; - verifyReporting(bool, function(message) { + verifyReporting(bool, message => { return message.startsWith('true\n'); }, TIMEOUT, done); }); - it('Should correctly publish errors using an error builder', function(done) { - this.timeout(TIMEOUT * 2); - const errorId = buildName('with-error-builder'); - // Use an IIFE with the name `definitionSiteFunction` to use later to ensure - // the stack trace of the point where the error message was constructed is - // used. - // Use an IIFE with the name `expectedTopOfStack` so that the test can - // verify that the stack trace used does not contain any frames - // specific to the error-reporting library. - const errOb = (function definitionSiteFunction() { - return (function expectedTopOfStack() { - return errors.event().setMessage(errorId); - })(); - })(); - (function callingSiteFunction() { - verifyReporting(errOb, function(message) { - // Verify that the stack trace of the constructed error - // uses the stack trace at the point where the error was constructed - // and not the stack trace at the point where the `report` method - // was called. - return ( - message.startsWith(errorId) && - message.indexOf('callingSiteFunction') === -1 && - message.indexOf('definitionSiteFunction') !== -1); - }, TIMEOUT, done); - })(); - }); + it('Should correctly publish errors using an error builder', + function(this, done) { + this.timeout(TIMEOUT * 2); + const errorId = buildName('with-error-builder'); + // Use an IIFE with the name `definitionSiteFunction` to use later to + // ensure the stack trace of the point where the error message was + // constructed is used. Use an IIFE with the name `expectedTopOfStack` so + // that the test can verify that the stack trace used does not contain + // any frames specific to the error-reporting library. + const errOb = (function definitionSiteFunction() { + return (function expectedTopOfStack() { + return errors.event().setMessage(errorId); + })(); + })(); + (function callingSiteFunction() { + verifyReporting(errOb, message => { + // Verify that the stack trace of the constructed error + // uses the stack trace at the point where the error was constructed + // and not the stack trace at the point where the `report` method + // was called. + return ( + message.startsWith(errorId) && + message.indexOf('callingSiteFunction') === -1 && + message.indexOf('definitionSiteFunction') !== -1); + }, TIMEOUT, done); + })(); + }); - it('Should report unhandledRejections if enabled', function(done) { + it('Should report unhandledRejections if enabled', function(this, done) { this.timeout(TIMEOUT * 2); reinitialize({reportUnhandledRejections: true}); const rejectValue = buildName('promise-rejection'); @@ -652,26 +657,26 @@ describe('error-reporting', function() { Promise.reject(new Error(rejectValue)); })(); const rejectText = 'Error: ' + rejectValue; - setImmediate(function() { + setImmediate(() => { const expected = 'UnhandledPromiseRejectionWarning: Unhandled ' + 'promise rejection: ' + rejectText + '. This rejection has been reported to the ' + 'Google Cloud Platform error-reporting console.'; assert.notStrictEqual(logOutput.indexOf(expected), -1); - verifyServerResponse(function(message) { + verifyServerResponse(message => { return message.startsWith(rejectText); }, TIMEOUT, done); }); }); - it('Should not report unhandledRejections if disabled', function(done) { + it('Should not report unhandledRejections if disabled', function(this, done) { this.timeout(TIMEOUT * 2); reinitialize({reportUnhandledRejections: false}); const rejectValue = buildName('promise-rejection'); (function expectedTopOfStack() { Promise.reject(rejectValue); })(); - setImmediate(function() { + setImmediate(() => { const notExpected = 'UnhandledPromiseRejectionWarning: Unhandled ' + 'promise rejection: ' + rejectValue + '. This rejection has been reported to the error-reporting console.'; @@ -681,11 +686,11 @@ describe('error-reporting', function() { // buildName() creates a string unique enough to single out only the // above rejection.) and verify that there are no such groups reported. verifyAllGroups( - function(message) { + message => { return message.startsWith(rejectValue); }, TIMEOUT, - function(matchedErrors) { + matchedErrors => { assert.strictEqual(matchedErrors.length, 0); done(); }); diff --git a/handwritten/error-reporting/test/fixtures/configuration.ts b/handwritten/error-reporting/test/fixtures/configuration.ts index bcc61a3e1e0..91d062496d5 100644 --- a/handwritten/error-reporting/test/fixtures/configuration.ts +++ b/handwritten/error-reporting/test/fixtures/configuration.ts @@ -14,11 +14,12 @@ * limitations under the License. */ +import {Logger} from '@google-cloud/common'; + import {Configuration} from '../../src/configuration'; -import { Logger } from '@google-cloud/common'; export class FakeConfiguration extends Configuration { constructor(config, logger?) { - super(config, logger || {warn: function() {}} as {} as Logger); + super(config, logger || {warn() {}} as {} as Logger); } } diff --git a/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts index 7d07a4239d0..9dba1940776 100644 --- a/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts @@ -32,7 +32,7 @@ const log = console.log; app.use(bodyParser.json()); -app.post('/testErrorHandling', function(req, res, next) { +app.post('/testErrorHandling', (req, res, next) => { if (has(req.body, 'test') && req.body.test !== true) { return next!(new Error('Error on Express Regular Error POST Route')); } else { @@ -41,8 +41,8 @@ app.post('/testErrorHandling', function(req, res, next) { } }); -app.get('/customError', function(req, res, next) { - errorHandler.report('Error on Express Custom Error GET Route', function(err) { +app.get('/customError', (req, res, next) => { + errorHandler.report('Error on Express Custom Error GET Route', err => { if (err) { log(WARNING_HEADER); log('Error in sending custom get error to api'); @@ -61,7 +61,7 @@ app.get('/customError', function(req, res, next) { next!(); }); -app.get('/getError', function(req, res, next) { +app.get('/getError', (req, res, next) => { return next!(new Error('Error on Express Regular Error GET Route')); }); @@ -75,8 +75,7 @@ function throwUncaughtError() { function reportManualError() { log('Reporting a manual error..'); errorHandler.report( - new Error('This is a manually reported error'), null, null, - function(err) { + new Error('This is a manually reported error'), null, null, err => { if (err) { log(WARNING_HEADER); log('Got an error in sending error information to the API'); @@ -103,7 +102,7 @@ errorHandler.report(new Error('This is a test'), err => { } }); -app.listen(3000, function() { +app.listen(3000, () => { log('Scaffold Server has been started on port 3000'); reportManualError(); }); diff --git a/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts index 89001418bc6..0ef1d6012a8 100644 --- a/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts @@ -37,7 +37,7 @@ server.start(err => { server.route({ method: 'GET', path: '/get', - handler: function() { + handler() { log('Got a GET'); throw new Error('an error'); }, @@ -46,14 +46,15 @@ server.route({ server.route({ method: 'POST', path: '/post', - handler: function(request) { + handler(request) { log('Got a POST', request.payload); throw new Error('An error on the hapi post route'); }, }); -server.register({register: errorHandler.hapi} as {} as hapi.PluginFunction<{}>, err => { - if (err) { - error('There was an error in registering the plugin', err); - } -}); +server.register( + {register: errorHandler.hapi} as {} as hapi.PluginFunction<{}>, err => { + if (err) { + error('There was an error in registering the plugin', err); + } + }); diff --git a/handwritten/error-reporting/test/test-servers/restify_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/restify_scaffold_server.ts index a58118ad83a..1f4daceaf04 100644 --- a/handwritten/error-reporting/test/test-servers/restify_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/restify_scaffold_server.ts @@ -28,7 +28,7 @@ server.use(errorHandler.restify(server)); server.get('/hello/:name', respond); server.head('/hello/:name', respond); -server.listen(8080, function() { +server.listen(8080, () => { // eslint-disable-next-line no-console console.log('%s listening at %s', server.name, server.url); }); diff --git a/handwritten/error-reporting/test/unit/build-stack-trace.ts b/handwritten/error-reporting/test/unit/build-stack-trace.ts index 8b84c127154..fd26aad230d 100644 --- a/handwritten/error-reporting/test/unit/build-stack-trace.ts +++ b/handwritten/error-reporting/test/unit/build-stack-trace.ts @@ -20,18 +20,18 @@ import {buildStackTrace} from '../../src/build-stack-trace'; const SRC_ROOT = path.join(__dirname, '..', '..', 'src'); -describe('build-stack-trace', function() { - it('Should not have a message attached if none is given', function() { +describe('build-stack-trace', () => { + it('Should not have a message attached if none is given', () => { assert(buildStackTrace().startsWith(' at')); assert(!buildStackTrace(undefined).startsWith('undefined')); assert(!buildStackTrace(null).startsWith('null')); }); - it('Should attach a message if given', function() { + it('Should attach a message if given', () => { assert(buildStackTrace('Some Message').startsWith('Some Message\n')); }); - it('Should not contain error-reporting specific frames', function() { + it('Should not contain error-reporting specific frames', () => { (function functionA() { (function functionB() { (function functionC() { @@ -43,7 +43,7 @@ describe('build-stack-trace', function() { })(); }); - it('Should return the stack trace', function() { + it('Should return the stack trace', () => { (function functionA() { (function functionB() { (function functionC() { diff --git a/handwritten/error-reporting/test/unit/classes/error-message.ts b/handwritten/error-reporting/test/unit/classes/error-message.ts index 231c618b68a..8d99cbda644 100644 --- a/handwritten/error-reporting/test/unit/classes/error-message.ts +++ b/handwritten/error-reporting/test/unit/classes/error-message.ts @@ -18,21 +18,21 @@ import * as assert from 'assert'; import {ErrorMessage} from '../../../src/classes/error-message'; -import { RequestInformationContainer } from '../../../src/classes/request-information-container'; +import {RequestInformationContainer} from '../../../src/classes/request-information-container'; -describe('Instantiating a new ErrorMessage', function() { +describe('Instantiating a new ErrorMessage', () => { let em; - beforeEach(function() { + beforeEach(() => { em = new ErrorMessage(); }); - it('Should have a default service context', function() { + it('Should have a default service context', () => { assert.deepEqual(em.serviceContext, {service: 'node', version: undefined}); }); - it('Should have a default message', function() { + it('Should have a default message', () => { assert.strictEqual(em.message, ''); }); - it('Should have a default http context', function() { + it('Should have a default http context', () => { assert.deepEqual(em.context.httpRequest, { method: '', url: '', @@ -42,7 +42,7 @@ describe('Instantiating a new ErrorMessage', function() { remoteIp: '', }); }); - it('Should have a default reportLocation', function() { + it('Should have a default reportLocation', () => { assert.deepEqual(em.context.reportLocation, { filePath: '', lineNumber: 0, @@ -51,28 +51,28 @@ describe('Instantiating a new ErrorMessage', function() { }); }); -describe('Calling against setEventTimeToNow', function() { +describe('Calling against setEventTimeToNow', () => { let em; - beforeEach(function() { + beforeEach(() => { em = new ErrorMessage(); }); - it('Should set the eventTime property', function() { + it('Should set the eventTime property', () => { em.setEventTimeToNow(); assert(typeof em.eventTime === 'string'); }); }); -describe('Fuzzing against setServiceContext', function() { +describe('Fuzzing against setServiceContext', () => { const AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; const DEFAULT_TEST_VALUE = 'DEFAULT'; const DEFAULT_VERSION_VALUE = undefined; const DEFAULT_SERVICE_VALUE = 'node'; let em; - beforeEach(function() { + beforeEach(() => { em = new ErrorMessage(); }); - it('Should set the value for service context', function() { + it('Should set the value for service context', () => { em.setServiceContext(AFFIRMATIVE_TEST_VALUE, AFFIRMATIVE_TEST_VALUE); assert.deepEqual( em.serviceContext, { @@ -84,7 +84,7 @@ describe('Fuzzing against setServiceContext', function() { 'and by setting this value this should mutate the instance', ].join(' ')); }); - it('Should set the default values', function() { + it('Should set the default values', () => { em.setServiceContext(DEFAULT_TEST_VALUE, DEFAULT_TEST_VALUE); assert.deepEqual( em.serviceContext, { @@ -96,7 +96,7 @@ describe('Fuzzing against setServiceContext', function() { 'value update', ].join(' ')); }); - it('Should still set version with affirmative value', function() { + it('Should still set version with affirmative value', () => { em.setServiceContext(null, AFFIRMATIVE_TEST_VALUE); assert.deepEqual( em.serviceContext, { @@ -109,7 +109,7 @@ describe('Fuzzing against setServiceContext', function() { 'but set the version property to the affirmative value.', ].join(' ')); }); - it('Should still set service with affirmative value', function() { + it('Should still set service with affirmative value', () => { em.setServiceContext(AFFIRMATIVE_TEST_VALUE, null); assert.deepEqual( em.serviceContext, { @@ -122,7 +122,7 @@ describe('Fuzzing against setServiceContext', function() { 'but set the service property to the affirmative value.', ].join(' ')); }); - it('Should set default values on both', function() { + it('Should set default values on both', () => { em.setServiceContext(null, null); assert.deepEqual( em.serviceContext, { @@ -134,7 +134,7 @@ describe('Fuzzing against setServiceContext', function() { 'properties as empty strings.', ].join(' ')); }); - it('Should set default values on both', function() { + it('Should set default values on both', () => { em.setServiceContext(2, 1.3); assert.deepEqual( em.serviceContext, { @@ -146,7 +146,7 @@ describe('Fuzzing against setServiceContext', function() { 'properties as empty strings.', ].join(' ')); }); - it('Should set as default', function() { + it('Should set as default', () => { em.setServiceContext({test: 'true'}, []); assert.deepEqual( em.serviceContext, { @@ -158,7 +158,7 @@ describe('Fuzzing against setServiceContext', function() { 'should set both properties as empty strings.', ].join(' ')); }); - it('Should set as default', function() { + it('Should set as default', () => { em.setServiceContext(); assert.deepEqual( em.serviceContext, { @@ -169,22 +169,22 @@ describe('Fuzzing against setServiceContext', function() { }); }); -describe('Fuzzing against setMessage', function() { +describe('Fuzzing against setMessage', () => { let em; - beforeEach(function() { + beforeEach(() => { em = new ErrorMessage(); }); const AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; const NEGATIVE_TEST_VALUE = ''; - it('Should set the message', function() { + it('Should set the message', () => { em.setMessage(AFFIRMATIVE_TEST_VALUE); assert(em.message === AFFIRMATIVE_TEST_VALUE, [ 'In the affirmative case the value should be settable to a valid string', 'and by setting this value this should mutate the instance', ].join(' ')); }); - it('Should default', function() { + it('Should default', () => { em.setMessage(); assert(em.message === NEGATIVE_TEST_VALUE, [ 'By providing no argument (undefined) to setMessage the property', @@ -193,21 +193,21 @@ describe('Fuzzing against setMessage', function() { }); }); -describe('Fuzzing against setHttpMethod', function() { +describe('Fuzzing against setHttpMethod', () => { let em; const AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; const NEGATIVE_TEST_VALUE = ''; - beforeEach(function() { + beforeEach(() => { em = new ErrorMessage(); }); - it('Should set the method', function() { + it('Should set the method', () => { em.setHttpMethod(AFFIRMATIVE_TEST_VALUE); assert(em.context.httpRequest.method === AFFIRMATIVE_TEST_VALUE, [ 'In the affirmative case the value should be settable to a valid string', 'and by setting this value this should mutate the instance', ].join(' ')); }); - it('Should default', function() { + it('Should default', () => { em.setHttpMethod(); assert(em.context.httpRequest.method === NEGATIVE_TEST_VALUE, [ 'By providing no argument (undefined) to setHttpMethod the property', @@ -216,21 +216,21 @@ describe('Fuzzing against setHttpMethod', function() { }); }); -describe('Fuzzing against setUrl', function() { +describe('Fuzzing against setUrl', () => { let em; const AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; const NEGATIVE_TEST_VALUE = ''; - beforeEach(function() { + beforeEach(() => { em = new ErrorMessage(); }); - it('Should set url', function() { + it('Should set url', () => { em.setUrl(AFFIRMATIVE_TEST_VALUE); assert(em.context.httpRequest.url === AFFIRMATIVE_TEST_VALUE, [ 'In the affirmative case the value should be settable to a valid string', 'and by setting this value this should mutate the instance', ].join(' ')); }); - it('Should default', function() { + it('Should default', () => { em.setUrl(); assert(em.context.httpRequest.url === NEGATIVE_TEST_VALUE, [ 'By providing no argument (undefined) to setUrl the property', @@ -239,21 +239,21 @@ describe('Fuzzing against setUrl', function() { }); }); -describe('Fuzzing against setUserAgent', function() { +describe('Fuzzing against setUserAgent', () => { let em; const AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; const NEGATIVE_TEST_VALUE = ''; - beforeEach(function() { + beforeEach(() => { em = new ErrorMessage(); }); - it('Should set userAgent', function() { + it('Should set userAgent', () => { em.setUserAgent(AFFIRMATIVE_TEST_VALUE); assert(em.context.httpRequest.userAgent === AFFIRMATIVE_TEST_VALUE, [ 'In the affirmative case the value should be settable to a valid string', 'and by setting this value this should mutate the instance', ].join(' ')); }); - it('Should default', function() { + it('Should default', () => { em.setUserAgent(); assert(em.context.httpRequest.userAgent === NEGATIVE_TEST_VALUE, [ 'By providing no argument (undefined) to setUserAgent the property', @@ -262,21 +262,21 @@ describe('Fuzzing against setUserAgent', function() { }); }); -describe('Fuzzing against setReferrer', function() { +describe('Fuzzing against setReferrer', () => { let em; const AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; const NEGATIVE_TEST_VALUE = ''; - beforeEach(function() { + beforeEach(() => { em = new ErrorMessage(); }); - it('Should set referrer', function() { + it('Should set referrer', () => { em.setReferrer(AFFIRMATIVE_TEST_VALUE); assert(em.context.httpRequest.referrer === AFFIRMATIVE_TEST_VALUE, [ 'In the affirmative case the value should be settable to a valid string', 'and by setting this value this should mutate the instance', ].join(' ')); }); - it('Should default', function() { + it('Should default', () => { em.setReferrer(); assert(em.context.httpRequest.referrer === NEGATIVE_TEST_VALUE, [ 'By providing no argument (undefined) to setReferrer the property', @@ -285,21 +285,21 @@ describe('Fuzzing against setReferrer', function() { }); }); -describe('Fuzzing against setResponseStatusCode', function() { +describe('Fuzzing against setResponseStatusCode', () => { let em; const AFFIRMATIVE_TEST_VALUE = 200; const NEGATIVE_TEST_VALUE = 0; - beforeEach(function() { + beforeEach(() => { em = new ErrorMessage(); }); - it('Should set responseStatusCode', function() { + it('Should set responseStatusCode', () => { em.setResponseStatusCode(AFFIRMATIVE_TEST_VALUE); assert(em.context.httpRequest.responseStatusCode === AFFIRMATIVE_TEST_VALUE, [ 'In the affirmative case the value should be settable to a valid string', 'and by setting this value this should mutate the instance', ].join(' ')); }); - it('Should default', function() { + it('Should default', () => { em.setResponseStatusCode(); assert(em.context.httpRequest.responseStatusCode === NEGATIVE_TEST_VALUE, [ 'By providing no argument (undefined) to setResponseStatusCode the property', @@ -308,21 +308,21 @@ describe('Fuzzing against setResponseStatusCode', function() { }); }); -describe('Fuzzing against setRemoteIp', function() { +describe('Fuzzing against setRemoteIp', () => { let em; const AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; const NEGATIVE_TEST_VALUE = ''; - beforeEach(function() { + beforeEach(() => { em = new ErrorMessage(); }); - it('Should set remoteIp', function() { + it('Should set remoteIp', () => { em.setRemoteIp(AFFIRMATIVE_TEST_VALUE); assert(em.context.httpRequest.remoteIp === AFFIRMATIVE_TEST_VALUE, [ 'In the affirmative case the value should be settable to a valid string', 'and by setting this value this should mutate the instance', ].join(' ')); }); - it('Should default', function() { + it('Should default', () => { em.setRemoteIp(); assert(em.context.httpRequest.remoteIp === NEGATIVE_TEST_VALUE, [ 'By providing no argument (undefined) to setRemoteIp the property', @@ -331,21 +331,21 @@ describe('Fuzzing against setRemoteIp', function() { }); }); -describe('Fuzzing against setUser', function() { +describe('Fuzzing against setUser', () => { let em; const AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; const NEGATIVE_TEST_VALUE = ''; - beforeEach(function() { + beforeEach(() => { em = new ErrorMessage(); }); - it('Should set user', function() { + it('Should set user', () => { em.setUser(AFFIRMATIVE_TEST_VALUE); assert(em.context.user === AFFIRMATIVE_TEST_VALUE, [ 'In the affirmative case the value should be settable to a valid string', 'and by setting this value this should mutate the instance', ].join(' ')); }); - it('Should default', function() { + it('Should default', () => { em.setUser(); assert(em.context.user === NEGATIVE_TEST_VALUE, [ 'By providing no argument (undefined) to setUser the property', @@ -354,21 +354,21 @@ describe('Fuzzing against setUser', function() { }); }); -describe('Fuzzing against setFilePath', function() { +describe('Fuzzing against setFilePath', () => { let em; const AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; const NEGATIVE_TEST_VALUE = ''; - beforeEach(function() { + beforeEach(() => { em = new ErrorMessage(); }); - it('Should set filePath', function() { + it('Should set filePath', () => { em.setFilePath(AFFIRMATIVE_TEST_VALUE); assert(em.context.reportLocation.filePath === AFFIRMATIVE_TEST_VALUE, [ 'In the affirmative case the value should be settable to a valid string', 'and by setting this value this should mutate the instance', ].join(' ')); }); - it('Should default', function() { + it('Should default', () => { em.setFilePath(); assert(em.context.reportLocation.filePath === NEGATIVE_TEST_VALUE, [ 'By providing no argument (undefined) to setFilePath the property', @@ -377,21 +377,21 @@ describe('Fuzzing against setFilePath', function() { }); }); -describe('Fuzzing against setLineNumber', function() { +describe('Fuzzing against setLineNumber', () => { let em; const AFFIRMATIVE_TEST_VALUE = 27; const NEGATIVE_TEST_VALUE = 0; - beforeEach(function() { + beforeEach(() => { em = new ErrorMessage(); }); - it('Should set lineNumber', function() { + it('Should set lineNumber', () => { em.setLineNumber(AFFIRMATIVE_TEST_VALUE); assert(em.context.reportLocation.lineNumber === AFFIRMATIVE_TEST_VALUE, [ 'In the affirmative case the value should be settable to a valid string', 'and by setting this value this should mutate the instance', ].join(' ')); }); - it('Should default', function() { + it('Should default', () => { em.setLineNumber(); assert(em.context.reportLocation.lineNumber === NEGATIVE_TEST_VALUE, [ 'By providing no argument (undefined) to setLineNumber the property', @@ -400,21 +400,21 @@ describe('Fuzzing against setLineNumber', function() { }); }); -describe('Fuzzing against setFunctionName', function() { +describe('Fuzzing against setFunctionName', () => { let em; const AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; const NEGATIVE_TEST_VALUE = ''; - beforeEach(function() { + beforeEach(() => { em = new ErrorMessage(); }); - it('Should set functionName', function() { + it('Should set functionName', () => { em.setFunctionName(AFFIRMATIVE_TEST_VALUE); assert(em.context.reportLocation.functionName === AFFIRMATIVE_TEST_VALUE, [ 'In the affirmative case the value should be settable to a valid string', 'and by setting this value this should mutate the instance', ].join(' ')); }); - it('Should default', function() { + it('Should default', () => { em.setFunctionName(); assert(em.context.reportLocation.functionName === NEGATIVE_TEST_VALUE, [ 'By providing no argument (undefined) to setFunctionName the property', @@ -423,7 +423,7 @@ describe('Fuzzing against setFunctionName', function() { }); }); -describe('Fuzzing against consumeRequestInformation', function() { +describe('Fuzzing against consumeRequestInformation', () => { const em = new ErrorMessage(); const A_VALID_STRING = 'A_VALID_STRING'; const A_VALID_NUMBER = 201; @@ -446,8 +446,9 @@ describe('Fuzzing against consumeRequestInformation', function() { statusCode: A_VALID_STRING, remoteAddress: undefined, }; - it('Should consume the stubbed request object', function() { - em.consumeRequestInformation(AFFIRMATIVE_TEST_VALUE as RequestInformationContainer); + it('Should consume the stubbed request object', () => { + em.consumeRequestInformation( + AFFIRMATIVE_TEST_VALUE as RequestInformationContainer); assert(em.context.httpRequest.method === A_VALID_STRING, [ 'The error messages method, given a valid string, should be', 'set to that value', @@ -473,7 +474,7 @@ describe('Fuzzing against consumeRequestInformation', function() { 'set to that value', ].join(' ')); }); - it('Should default when consuming a malformed request object', function() { + it('Should default when consuming a malformed request object', () => { em.consumeRequestInformation(null!); assert(em.context.httpRequest.method === A_VALID_STRING, [ 'The error messages method, given an invalid type a the top-level', @@ -500,8 +501,9 @@ describe('Fuzzing against consumeRequestInformation', function() { 'should remain untouched', ].join(' ')); }); - it('Should default when consuming mistyped response object properties', function() { - em.consumeRequestInformation(NEGATIVE_TEST_VALUE as {} as RequestInformationContainer); + it('Should default when consuming mistyped response object properties', () => { + em.consumeRequestInformation( + NEGATIVE_TEST_VALUE as {} as RequestInformationContainer); assert(em.context.httpRequest.method === NEGATIVE_STRING_CASE, [ 'The error messages method, given an invalid input should default to', 'the negative value', @@ -527,18 +529,18 @@ describe('Fuzzing against consumeRequestInformation', function() { 'the negative value', ].join(' ')); }); - it('Should return the instance on calling consumeRequestInformation', - function() { - assert( - em.consumeRequestInformation(AFFIRMATIVE_TEST_VALUE as RequestInformationContainer) instanceof - ErrorMessage, - [ - 'Calling consumeRequestInformation with valid input should return', - 'the ErrorMessage instance', - ].join(' ')); - assert(em.consumeRequestInformation(undefined!) instanceof ErrorMessage, [ - 'Calling consumeRequestInformation with invalid input should return', - 'the ErrorMessage instance', - ].join(' ')); - }); + it('Should return the instance on calling consumeRequestInformation', () => { + assert( + em.consumeRequestInformation( + AFFIRMATIVE_TEST_VALUE as RequestInformationContainer) + instanceof ErrorMessage, + [ + 'Calling consumeRequestInformation with valid input should return', + 'the ErrorMessage instance', + ].join(' ')); + assert(em.consumeRequestInformation(undefined!) instanceof ErrorMessage, [ + 'Calling consumeRequestInformation with invalid input should return', + 'the ErrorMessage instance', + ].join(' ')); + }); }); diff --git a/handwritten/error-reporting/test/unit/classes/request-information-container.ts b/handwritten/error-reporting/test/unit/classes/request-information-container.ts index 402dff2cb5a..eb90ba6e7cd 100644 --- a/handwritten/error-reporting/test/unit/classes/request-information-container.ts +++ b/handwritten/error-reporting/test/unit/classes/request-information-container.ts @@ -18,74 +18,74 @@ import * as assert from 'assert'; import {RequestInformationContainer} from '../../../src/classes/request-information-container'; import {Fuzzer} from '../../../utils/fuzzer'; -describe('RequestInformationContainer', function() { +describe('RequestInformationContainer', () => { const f = new Fuzzer(); let cbFn, ric; - beforeEach(function() { + beforeEach(() => { ric = new RequestInformationContainer(); }); - describe('Fuzzing against RequestInformationContainer', function() { - it('Should return the property as an empty string', function() { - cbFn = function() { + describe('Fuzzing against RequestInformationContainer', () => { + it('Should return the property as an empty string', () => { + cbFn = () => { assert.deepEqual(ric.url, ''); }; f.fuzzFunctionForTypes(ric.setUrl, ['string'], cbFn, ric); }); - it('Should return the method property as an empty string', function() { - cbFn = function() { + it('Should return the method property as an empty string', () => { + cbFn = () => { assert.deepEqual(ric.method, ''); }; f.fuzzFunctionForTypes(ric.setMethod, ['string'], cbFn, ric); }); - it('Should return the referrer property as an empty string', function() { - cbFn = function() { + it('Should return the referrer property as an empty string', () => { + cbFn = () => { assert.deepEqual(ric.referrer, ''); }; f.fuzzFunctionForTypes(ric.setReferrer, ['string'], cbFn, ric); }); - it('Should return the userAgent property as an empty string', function() { - cbFn = function() { + it('Should return the userAgent property as an empty string', () => { + cbFn = () => { assert.deepEqual(ric.userAgent, ''); }; f.fuzzFunctionForTypes(ric.setUserAgent, ['string'], cbFn, ric); }); - it('Should return the property as an empty string', function() { - cbFn = function() { + it('Should return the property as an empty string', () => { + cbFn = () => { assert.deepEqual(ric.remoteAddress, ''); }; f.fuzzFunctionForTypes(ric.setRemoteAddress, ['string'], cbFn, ric); }); - it('Should return the default value for statusCode', function() { - cbFn = function() { + it('Should return the default value for statusCode', () => { + cbFn = () => { assert.strictEqual(ric.statusCode, 0); }; f.fuzzFunctionForTypes(ric.setStatusCode, ['number'], cbFn, ric); }); }); - describe('Fuzzing against for positive cases', function() { + describe('Fuzzing against for positive cases', () => { const VALID_STRING_INPUT = 'valid'; const VALID_NUMBER_INPUT = 500; - it('Should assign the value to the url property', function() { + it('Should assign the value to the url property', () => { ric.setUrl(VALID_STRING_INPUT); assert.deepEqual(ric.url, VALID_STRING_INPUT); }); - it('Should assign the value to the method property', function() { + it('Should assign the value to the method property', () => { ric.setMethod(VALID_STRING_INPUT); assert.deepEqual(ric.method, VALID_STRING_INPUT); }); - it('Should assign the value to the referrer property', function() { + it('Should assign the value to the referrer property', () => { ric.setReferrer(VALID_STRING_INPUT); assert.deepEqual(ric.referrer, VALID_STRING_INPUT); }); - it('Should assign the value to the userAgent property', function() { + it('Should assign the value to the userAgent property', () => { ric.setUserAgent(VALID_STRING_INPUT); assert.deepEqual(ric.userAgent, VALID_STRING_INPUT); }); - it('Should assign the value to remoteAddress property', function() { + it('Should assign the value to remoteAddress property', () => { ric.setRemoteAddress(VALID_STRING_INPUT); assert.deepEqual(ric.remoteAddress, VALID_STRING_INPUT); }); - it('Should assign the value to statusCode property', function() { + it('Should assign the value to statusCode property', () => { ric.setStatusCode(VALID_NUMBER_INPUT); assert.deepEqual(ric.statusCode, VALID_NUMBER_INPUT); }); diff --git a/handwritten/error-reporting/test/unit/configuration.ts b/handwritten/error-reporting/test/unit/configuration.ts index d7651d8d7f3..b0a07a7876e 100644 --- a/handwritten/error-reporting/test/unit/configuration.ts +++ b/handwritten/error-reporting/test/unit/configuration.ts @@ -27,7 +27,8 @@ const logger = createLogger({ }); import * as nock from 'nock'; -const METADATA_URL = 'http://metadata.google.internal/computeMetadata/v1/project'; +const METADATA_URL = + 'http://metadata.google.internal/computeMetadata/v1/project'; const configEnv = { NODE_ENV: process.env.NODE_ENV, @@ -51,271 +52,276 @@ function createDeadMetadataService() { return nock(METADATA_URL).get('/project-id').times(1).reply(500); } -describe('Configuration class', function() { - before(function() { +describe('Configuration class', () => { + before(() => { sterilizeConfigEnv(); }); - after(function() { + after(() => { restoreConfigEnv(); }); - describe('Initialization', function() { + describe('Initialization', () => { const f = new Fuzzer(); const stubConfig = {test: true}; - describe('fuzzing the constructor', function() { - it('Should return default values', function() { + describe('fuzzing the constructor', () => { + it('Should return default values', () => { let c; - f.fuzzFunctionForTypes(function(givenConfigFuzz) { + f.fuzzFunctionForTypes(givenConfigFuzz => { c = new Configuration(givenConfigFuzz, logger); assert.deepEqual(c._givenConfiguration, {}); }, ['object']); }); }); - describe('valid config and default values', function() { + describe('valid config and default values', () => { let c; - before(function() { + before(() => { process.env.NODE_ENV = 'development'; }); - after(function() { + after(() => { sterilizeConfigEnv(); }); - it('Should not throw with a valid configuration', function() { - assert.doesNotThrow(function() { + it('Should not throw with a valid configuration', () => { + assert.doesNotThrow(() => { c = new Configuration(stubConfig, logger); }); }); - it('Should have a property reflecting the config argument', function() { + it('Should have a property reflecting the config argument', () => { assert.deepEqual(c._givenConfiguration, stubConfig); }); - it('Should not have a project id', function() { + it('Should not have a project id', () => { assert.strictEqual(c._projectId, null); }); - it('Should not have a key', function() { + it('Should not have a key', () => { assert.strictEqual(c.getKey(), null); }); - it('Should have a default service context', function() { + it('Should have a default service context', () => { assert.deepEqual(c.getServiceContext(), { service: 'node', version: undefined, }); }); - it('Should specify to not report unhandledRejections', function() { + it('Should specify to not report unhandledRejections', () => { assert.strictEqual(c.getReportUnhandledRejections(), false); }); }); - describe('with ignoreEnvironmentCheck', function() { + describe('with ignoreEnvironmentCheck', () => { const conf = merge({}, stubConfig, {ignoreEnvironmentCheck: true}); const c = new Configuration(conf, logger); - it('Should reportErrorsToAPI', function() { + it('Should reportErrorsToAPI', () => { assert.strictEqual(c.getShouldReportErrorsToAPI(), true); }); }); - describe('without ignoreEnvironmentCheck', function() { - describe('report behaviour with production env', function() { + describe('without ignoreEnvironmentCheck', () => { + describe('report behaviour with production env', () => { let c; - before(function() { + before(() => { sterilizeConfigEnv(); process.env.NODE_ENV = 'production'; c = new Configuration(undefined, logger); }); - after(function() { + after(() => { sterilizeConfigEnv(); }); - it('Should reportErrorsToAPI', function() { + it('Should reportErrorsToAPI', () => { assert.strictEqual(c.getShouldReportErrorsToAPI(), true); }); }); - describe('exception behaviour', function() { - it('Should throw if invalid type for key', function() { - assert.throws(function() { + describe('exception behaviour', () => { + it('Should throw if invalid type for key', () => { + assert.throws(() => { + // tslint:disable-next-line:no-unused-expression new Configuration({key: null}, logger); }); }); - it('Should throw if invalid for ignoreEnvironmentCheck', function() { - assert.throws(function() { + it('Should throw if invalid for ignoreEnvironmentCheck', () => { + assert.throws(() => { + // tslint:disable-next-line:no-unused-expression new Configuration({ignoreEnvironmentCheck: null}, logger); }); }); - it('Should throw if invalid for serviceContext.service', function() { - assert.throws(function() { + it('Should throw if invalid for serviceContext.service', () => { + assert.throws(() => { + // tslint:disable-next-line:no-unused-expression new Configuration({serviceContext: {service: false}}, logger); }); }); - it('Should throw if invalid for serviceContext.version', function() { - assert.throws(function() { + it('Should throw if invalid for serviceContext.version', () => { + assert.throws(() => { + // tslint:disable-next-line:no-unused-expression new Configuration({serviceContext: {version: true}}, logger); }); }); - it('Should throw if invalid for reportUnhandledRejections', function() { - assert.throws(function() { + it('Should throw if invalid for reportUnhandledRejections', () => { + assert.throws(() => { + // tslint:disable-next-line:no-unused-expression new Configuration({reportUnhandledRejections: 'INVALID'}, logger); }); }); - it('Should not throw given an empty object for serviceContext', - function() { - assert.doesNotThrow(function() { - new Configuration({serviceContext: {}}, logger); - }); - }); + it('Should not throw given an empty object for serviceContext', () => { + assert.doesNotThrow(() => { + // tslint:disable-next-line:no-unused-expression + new Configuration({serviceContext: {}}, logger); + }); + }); }); }); }); - describe('Configuration resource aquisition', function() { - before(function() { + describe('Configuration resource aquisition', () => { + before(() => { sterilizeConfigEnv(); }); - describe('project id from configuration instance', function() { + describe('project id from configuration instance', () => { const pi = 'test'; let c; - before(function() { + before(() => { c = new Configuration({projectId: pi}, logger); }); - after(function() { + after(() => { nock.cleanAll(); }); - it('Should return the project id', function() { + it('Should return the project id', () => { assert.strictEqual(c.getProjectId(), pi); }); }); - describe('project number from configuration instance', function() { + describe('project number from configuration instance', () => { const pn = 1234; let c; - before(function() { + before(() => { sterilizeConfigEnv(); c = new Configuration({projectId: pn}, logger); }); - after(function() { + after(() => { nock.cleanAll(); sterilizeConfigEnv(); }); - it('Should return the project number', function() { + it('Should return the project number', () => { assert.strictEqual(c.getProjectId(), pn.toString()); }); }); }); - describe('Exception behaviour', function() { - describe('While lacking a project id', function() { + describe('Exception behaviour', () => { + describe('While lacking a project id', () => { let c; - before(function() { + before(() => { sterilizeConfigEnv(); createDeadMetadataService(); c = new Configuration(undefined, logger); }); - after(function() { + after(() => { nock.cleanAll(); sterilizeConfigEnv(); }); - it('Should return null', function() { + it('Should return null', () => { assert.strictEqual(c.getProjectId(), null); }); }); - describe('Invalid type for projectId in runtime config', function() { + describe('Invalid type for projectId in runtime config', () => { let c; - before(function() { + before(() => { sterilizeConfigEnv(); createDeadMetadataService(); c = new Configuration({projectId: null}, logger); }); - after(function() { + after(() => { nock.cleanAll(); sterilizeConfigEnv(); }); - it('Should return null', function() { + it('Should return null', () => { assert.strictEqual(c.getProjectId(), null); }); }); }); - describe('Resource aquisition', function() { - after(function() { + describe('Resource aquisition', () => { + after(() => { /* * !! IMPORTANT !! - * THE restoreConfigEnv FUNCTION SHOULD BE CALLED LAST AS THIS TEST FILE EXITS - * AND SHOULD THEREFORE BE THE LAST THING TO EXECUTE FROM THIS FILE. + * THE restoreConfigEnv FUNCTION SHOULD BE CALLED LAST AS THIS TEST FILE + * EXITS AND SHOULD THEREFORE BE THE LAST THING TO EXECUTE FROM THIS FILE. * !! IMPORTANT !! */ restoreConfigEnv(); }); - describe('via env', function() { - before(function() { + describe('via env', () => { + before(() => { sterilizeConfigEnv(); }); - afterEach(function() { + afterEach(() => { sterilizeConfigEnv(); }); - describe('no longer tests env itself', function() { + describe('no longer tests env itself', () => { let c; const projectId = 'test-xyz'; - before(function() { + before(() => { process.env.GCLOUD_PROJECT = projectId; c = new Configuration(undefined, logger); }); - it('Should assign', function() { + it('Should assign', () => { assert.strictEqual(c.getProjectId(), null); }); }); - describe('serviceContext', function() { + describe('serviceContext', () => { let c; const projectId = 'test-abc'; const serviceContext = { service: 'test', version: '1.x', }; - before(function() { + before(() => { process.env.GCLOUD_PROJECT = projectId; process.env.GAE_MODULE_NAME = serviceContext.service; process.env.GAE_MODULE_VERSION = serviceContext.version; c = new Configuration(undefined, logger); }); - it('Should assign', function() { + it('Should assign', () => { assert.deepEqual(c.getServiceContext(), serviceContext); }); }); }); - describe('via runtime configuration', function() { - before(function() { + describe('via runtime configuration', () => { + before(() => { sterilizeConfigEnv(); }); - describe('serviceContext', function() { + describe('serviceContext', () => { let c; const projectId = 'xyz123'; const serviceContext = { service: 'evaluation', version: '2.x', }; - before(function() { + before(() => { c = new Configuration({ - projectId: projectId, - serviceContext: serviceContext, + projectId, + serviceContext, }); }); - it('Should assign', function() { + it('Should assign', () => { assert.deepEqual(c.getServiceContext(), serviceContext); }); }); - describe('api key', function() { + describe('api key', () => { let c; const projectId = '987abc'; const key = '1337-api-key'; - before(function() { + before(() => { c = new Configuration( { - key: key, - projectId: projectId, + key, + projectId, }, logger); }); - it('Should assign', function() { + it('Should assign', () => { assert.strictEqual(c.getKey(), key); }); }); - describe('reportUnhandledRejections', function() { + describe('reportUnhandledRejections', () => { let c; const reportRejections = false; - before(function() { + before(() => { c = new Configuration({ reportUnhandledRejections: reportRejections, }); }); - it('Should assign', function() { + it('Should assign', () => { assert.strictEqual( c.getReportUnhandledRejections(), reportRejections); }); diff --git a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts index 9d8d6f803d0..7f9aed3ca27 100644 --- a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts +++ b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts @@ -14,11 +14,11 @@ * limitations under the License. */ +import {Logger} from '@google-cloud/common'; import * as assert from 'assert'; import * as proxyquire from 'proxyquire'; import {Configuration} from '../../../src/configuration'; -import { Logger } from '@google-cloud/common'; function verifyReportedMessage(config1, errToReturn, expectedLogs) { class ServiceStub { @@ -26,29 +26,29 @@ function verifyReportedMessage(config1, errToReturn, expectedLogs) { request: {}; constructor() { this.authClient = { - getToken: function(cb) { + getToken(cb) { cb(errToReturn); }, }; - this.request = function() {}; + this.request = () => {}; } } const RequestHandler = proxyquire('../../../src/google-apis/auth-client.js', { - '@google-cloud/common': { - Service: ServiceStub, - }, - }).RequestHandler; + '@google-cloud/common': { + Service: ServiceStub, + }, + }).RequestHandler; const logs: {error?: string; info?: string;} = {}; const logger = { - error: function(text) { + error(text) { if (!logs.error) { logs.error = ''; } logs.error += text; }, - info: function(text) { + info(text) { if (!logs.info) { logs.info = ''; } @@ -56,11 +56,12 @@ function verifyReportedMessage(config1, errToReturn, expectedLogs) { }, }; const config2 = new Configuration(config1, logger as Logger); + // tslint:disable-next-line:no-unused-expression new RequestHandler(config2, logger); assert.deepStrictEqual(logs, expectedLogs); } -describe('RequestHandler', function() { - it('should not request OAuth2 token if key is provided', function() { +describe('RequestHandler', () => { + it('should not request OAuth2 token if key is provided', () => { const config = { ignoreEnvironmentCheck: true, key: 'key', @@ -71,7 +72,7 @@ describe('RequestHandler', function() { }); }); - it('should issue a warning if it cannot communicate with the API', function() { + it('should issue a warning if it cannot communicate with the API', () => { const config = {ignoreEnvironmentCheck: true}; const message = 'Test Error'; verifyReportedMessage(config, new Error(message), { @@ -81,10 +82,9 @@ describe('RequestHandler', function() { }); }); - it('should not issue a warning if it can communicate with the API', - function() { - const config = {ignoreEnvironmentCheck: true}; - verifyReportedMessage(config, null, {}); - verifyReportedMessage(config, undefined, {}); - }); + it('should not issue a warning if it can communicate with the API', () => { + const config = {ignoreEnvironmentCheck: true}; + verifyReportedMessage(config, null, {}); + verifyReportedMessage(config, undefined, {}); + }); }); diff --git a/handwritten/error-reporting/test/unit/interfaces/express.ts b/handwritten/error-reporting/test/unit/interfaces/express.ts index a2cb38ba832..0cf554f6b70 100644 --- a/handwritten/error-reporting/test/unit/interfaces/express.ts +++ b/handwritten/error-reporting/test/unit/interfaces/express.ts @@ -16,26 +16,27 @@ import * as assert from 'assert'; import * as merge from 'lodash.merge'; -import {makeExpressHandler as expressInterface} from '../../../src/interfaces/express'; + import {ErrorMessage} from '../../../src/classes/error-message'; +import {RequestHandler} from '../../../src/google-apis/auth-client'; +import {makeExpressHandler as expressInterface} from '../../../src/interfaces/express'; +import {createLogger} from '../../../src/logger'; import {Fuzzer} from '../../../utils/fuzzer'; import {FakeConfiguration as Configuration} from '../../fixtures/configuration'; -import {createLogger} from '../../../src/logger'; -import { RequestHandler } from '../../../src/google-apis/auth-client'; -describe('expressInterface', function() { - describe('Exception handling', function() { - describe('Given invalid input', function() { - it('Should not throw errors', function() { +describe('expressInterface', () => { + describe('Exception handling', () => { + describe('Given invalid input', () => { + it('Should not throw errors', () => { const f = new Fuzzer(); - assert.doesNotThrow(function() { + assert.doesNotThrow(() => { f.fuzzFunctionForTypes(expressInterface, ['object', 'object']); return; }); }); }); }); - describe('Intended behaviour', function() { + describe('Intended behaviour', () => { const stubbedConfig = new Configuration( { serviceContext: { @@ -44,17 +45,19 @@ describe('expressInterface', function() { }, }, createLogger({logLevel: 4})); - (stubbedConfig as {} as {lacksCredentials: Function}).lacksCredentials = function() { - return false; - }; + (stubbedConfig as {} as {lacksCredentials: Function}).lacksCredentials = + () => { + return false; + }; const client = { - sendError: function() { + sendError() { return; }, }; const testError = new Error('This is a test'); - const validBoundHandler = expressInterface(client as {} as RequestHandler, stubbedConfig); - it('Should return the error message', function() { + const validBoundHandler = + expressInterface(client as {} as RequestHandler, stubbedConfig); + it('Should return the error message', () => { const res = validBoundHandler(testError, null!, null!, null!); assert.deepEqual( res, @@ -66,22 +69,23 @@ describe('expressInterface', function() { stubbedConfig._serviceContext.version), {eventTime: res.eventTime})); }); - describe('Calling back to express builtins', function() { - it('Should callback to next', function(done) { - const nextCb = function() { + describe('Calling back to express builtins', () => { + it('Should callback to next', done => { + const nextCb = () => { done(); }; validBoundHandler(testError, null!, null!, nextCb); }); - it('Should callback to sendError', function(done) { - const sendError = function() { + it('Should callback to sendError', done => { + const sendError = () => { done(); }; const client = { - sendError: sendError, + sendError, }; - const handler = expressInterface(client as {} as RequestHandler, stubbedConfig); - handler(testError, null!, null!, function() { + const handler = + expressInterface(client as {} as RequestHandler, stubbedConfig); + handler(testError, null!, null!, () => { return; }); }); diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.ts b/handwritten/error-reporting/test/unit/interfaces/hapi.ts index cf07fc592df..8fc9debf691 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.ts +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.ts @@ -24,73 +24,72 @@ import {ErrorMessage} from '../../../src/classes/error-message'; import {Fuzzer} from '../../../utils/fuzzer'; import {EventEmitter} from 'events'; import * as config from '../../../src/configuration'; -import { RequestHandler } from '../../../src/google-apis/auth-client'; +import {RequestHandler} from '../../../src/google-apis/auth-client'; import {FakeConfiguration as Configuration} from '../../fixtures/configuration'; -describe('Hapi interface', function() { - describe('Fuzzing the setup handler', function() { - it('Should not throw when fuzzed with invalid types', function() { +describe('Hapi interface', () => { + describe('Fuzzing the setup handler', () => { + it('Should not throw when fuzzed with invalid types', () => { const f = new Fuzzer(); - assert.doesNotThrow(function() { + assert.doesNotThrow(() => { f.fuzzFunctionForTypes(hapiInterface, ['object', 'object']); return; }); }); }); - describe('Providing valid input to the setup handler', function() { + describe('Providing valid input to the setup handler', () => { const givenConfig = { - getVersion: function() { + getVersion() { return '1'; }, }; let plugin; - beforeEach(function() { + beforeEach(() => { plugin = hapiInterface(null!, givenConfig as {} as config.Configuration); }); - it('should have plain object as plugin', function() { + it('should have plain object as plugin', () => { assert(isObject(plugin)); }); - it('plugin should have a register function property', function() { + it('plugin should have a register function property', () => { assert(has(plugin, 'register') && isFunction(plugin.register)); }); it('the plugin\'s register property should have an attributes property', - function() { + () => { assert( has(plugin.register, 'attributes') && isObject(plugin.register.attributes)); }); - it('the plugin\'s attribute property should have a name property', - function() { - assert(has(plugin.register.attributes, 'name')); - assert.strictEqual( - plugin.register.attributes.name, '@google-cloud/error-reporting'); - }); + it('the plugin\'s attribute property should have a name property', () => { + assert(has(plugin.register.attributes, 'name')); + assert.strictEqual( + plugin.register.attributes.name, '@google-cloud/error-reporting'); + }); it('the plugin\'s attribute property should have a version property', - function() { + () => { assert(has(plugin.register.attributes, 'version')); }); }); - describe('hapiRegisterFunction behaviour', function() { + describe('hapiRegisterFunction behaviour', () => { let fakeServer; - beforeEach(function() { + beforeEach(() => { fakeServer = new EventEmitter(); }); - it('Should call fn when the request-error event is emitted', function() { + it('Should call fn when the request-error event is emitted', () => { const fakeClient = { - sendError: function(errMsg) { + sendError(errMsg) { assert( errMsg instanceof ErrorMessage, 'should be an instance of Error message'); }, } as {} as RequestHandler; const plugin = hapiInterface(fakeClient, { - lacksCredentials: function() { + lacksCredentials() { return false; }, - getVersion: function() { + getVersion() { return '1'; }, - getServiceContext: function() { + getServiceContext() { return {service: 'node'}; }, } as {} as config.Configuration); @@ -98,11 +97,11 @@ describe('Hapi interface', function() { fakeServer.emit('request-error'); }); }); - describe('Behaviour around the request/response lifecycle', function() { + describe('Behaviour around the request/response lifecycle', () => { const EVENT = 'onPreResponse'; - const fakeClient = {sendError: function() {}} as {} as RequestHandler; + const fakeClient = {sendError() {}} as {} as RequestHandler; let fakeServer, config, plugin; - before(function() { + before(() => { config = new Configuration({ projectId: 'xyz', serviceContext: { @@ -110,61 +109,60 @@ describe('Hapi interface', function() { version: '1.x', }, }); - config.lacksCredentials = function() { + config.lacksCredentials = () => { return false; }; plugin = hapiInterface(fakeClient, config); }); - beforeEach(function() { + beforeEach(() => { fakeServer = new EventEmitter(); fakeServer.ext = fakeServer.on; }); - afterEach(function() { + afterEach(() => { fakeServer.removeAllListeners(); }); it('Should call continue when a boom is emitted if reply is an object', - function(done) { - plugin.register(fakeServer, null, function() {}); + done => { + plugin.register(fakeServer, null, () => {}); fakeServer.emit(EVENT, {response: {isBoom: true}}, { - continue: function() { + continue() { // The continue function should be called done(); }, }); }); it('Should call continue when a boom is emitted if reply is a function', - function(done) { + done => { // Manually testing has shown that in actual usage the `reply` object // provided to listeners of the `onPreResponse` event can be a function // that has a `continue` property that is a function. // If `reply.continue()` is not invoked in this situation, the Hapi // app will become unresponsive. - plugin.register(fakeServer, null, function() {}); - const reply: Function & {continue?: Function} = function() {}; - reply.continue = function() { + plugin.register(fakeServer, null, () => {}); + const reply: Function&{continue?: Function} = () => {}; + reply.continue = () => { // The continue function should be called done(); }; fakeServer.emit(EVENT, {response: {isBoom: true}}, reply); }); - it('Should call sendError when a boom is received', function(done) { + it('Should call sendError when a boom is received', done => { const fakeClient = { - sendError: function(err) { + sendError(err) { assert(err instanceof ErrorMessage); done(); }, } as {} as RequestHandler; const plugin = hapiInterface(fakeClient, config); - plugin.register(fakeServer, null!, function() {}); + plugin.register(fakeServer, null!, () => {}); fakeServer.emit('onPreResponse', {response: {isBoom: true}}); }); - it('Should call next when completing a request', function(done) { - plugin.register(fakeServer, null, function() { + it('Should call next when completing a request', done => { + plugin.register(fakeServer, null, () => { // The next function should be called done(); }); - fakeServer.emit( - EVENT, {response: {isBoom: true}}, {continue: function() {}}); + fakeServer.emit(EVENT, {response: {isBoom: true}}, {continue() {}}); }); }); }); diff --git a/handwritten/error-reporting/test/unit/interfaces/manual.ts b/handwritten/error-reporting/test/unit/interfaces/manual.ts index 4bb8829fb83..db0c5f07863 100644 --- a/handwritten/error-reporting/test/unit/interfaces/manual.ts +++ b/handwritten/error-reporting/test/unit/interfaces/manual.ts @@ -18,19 +18,19 @@ import * as assert from 'assert'; import * as manual from '../../../src/interfaces/manual'; import {FakeConfiguration as Configuration} from '../../fixtures/configuration'; const config = new Configuration({}); -(config as {} as {lacksCredentials: Function}).lacksCredentials = function() { +(config as {} as {lacksCredentials: Function}).lacksCredentials = () => { return false; }; import {ErrorMessage} from '../../../src/classes/error-message'; -import { RequestHandler } from '../../../src/google-apis/auth-client'; -import { Logger } from '@google-cloud/common'; -import { RequestInformationContainer } from '../../../src/classes/request-information-container'; +import {RequestHandler} from '../../../src/google-apis/auth-client'; +import {Logger} from '@google-cloud/common'; +import {RequestInformationContainer} from '../../../src/classes/request-information-container'; -describe('Manual handler', function() { +describe('Manual handler', () => { // nock.disableNetConnect(); // Mocked client const client: RequestHandler = { - sendError: function(e, cb) { + sendError(e, cb) { // immediately callback if (cb) { setImmediate(cb); @@ -38,7 +38,7 @@ describe('Manual handler', function() { }, } as {} as RequestHandler; const report = manual.handlerSetup(client, config, { - warn: function(message) { + warn(message) { // The use of `report` in this class should issue the following warning // becasue the `report` class is used directly and, as such, cannot // by itself have information where a ErrorMesasge was constructed. It @@ -54,58 +54,59 @@ describe('Manual handler', function() { 'console.'); }, } as Logger); - describe('Report invocation behaviour', function() { - it('Should allow argument-less invocation', function() { + describe('Report invocation behaviour', () => { + it('Should allow argument-less invocation', () => { const r = report(null!); assert(r instanceof ErrorMessage, 'should be an inst of ErrorMessage'); }); - it('Should allow single string', function() { + it('Should allow single string', () => { const r = report('doohickey'); assert(r instanceof ErrorMessage, 'should be an inst of ErrorMessage'); assert(r.message.match(/doohickey/), 'string error should propagate'); }); - it('Should allow single inst of Error', function() { + it('Should allow single inst of Error', () => { const r = report(new Error('hokeypokey')); assert(r.message.match(/hokeypokey/)); }); - it('Should allow a function as a malformed error input', function(done) { - this.timeout(2000); - const r = report(function() { - assert(false, 'callback should not be called'); - done(); - }); - assert(r instanceof ErrorMessage, 'should be an inst of ErrorMessage'); - setTimeout(function() { - done(); - }, 1000); - }); - it('Should callback to the supplied function', function(done) { - const r = report('malarkey', function() { + it('Should allow a function as a malformed error input', + function(this, done) { + this.timeout(2000); + const r = report(() => { + assert(false, 'callback should not be called'); + done(); + }); + assert(r instanceof ErrorMessage, 'should be an inst of ErrorMessage'); + setTimeout(() => { + done(); + }, 1000); + }); + it('Should callback to the supplied function', done => { + const r = report('malarkey', () => { done(); }); assert(r.message.match(/malarkey/), 'string error should propagate'); }); - it('replace the error string with the additional message', function(done) { - const r = report('monkey', 'wrench', function() { + it('replace the error string with the additional message', done => { + const r = report('monkey', 'wrench', () => { done(); }); assert.strictEqual( r.message, 'wrench', 'additional message should replace'); }); - it('Should allow a full array of optional arguments', function(done) { - const r = report('donkey', {method: 'FETCH'}, 'cart', function() { + it('Should allow a full array of optional arguments', done => { + const r = report('donkey', {method: 'FETCH'}, 'cart', () => { done(); }); assert.strictEqual(r.message, 'cart', 'additional message replace'); assert.strictEqual(r.context.httpRequest.method, 'FETCH'); }); - it('Should allow all optional arguments except the callback', function() { + it('Should allow all optional arguments except the callback', () => { const r = report('whiskey', {method: 'SIP'}, 'sour'); assert.strictEqual(r.message, 'sour', 'additional message replace'); assert.strictEqual(r.context.httpRequest.method, 'SIP'); }); - it('Should allow a lack of additional message', function(done) { - const r = report('ticky', {method: 'TACKEY'}, function() { + it('Should allow a lack of additional message', done => { + const r = report('ticky', {method: 'TACKEY'}, () => { done(); }); assert( @@ -113,40 +114,40 @@ describe('Manual handler', function() { 'original message should be preserved'); assert.strictEqual(r.context.httpRequest.method, 'TACKEY'); }); - it('Should ignore arguments', function(done) { - const r = report('hockey', function() { + it('Should ignore arguments', done => { + const r = report('hockey', () => { done(); }, 'field'); assert( r.message.match('hockey') && !r.message.match('field'), 'string after callback should be ignored'); }); - it('Should ignore arguments', function(done) { - const r = report('passkey', function() { + it('Should ignore arguments', done => { + const r = report('passkey', () => { done(); }, {method: 'HONK'}); assert.notEqual(r.context.httpRequest.method, 'HONK'); }); - it('Should allow null arguments as placeholders', function(done) { - const r = report('pokey', null!, null!, function() { + it('Should allow null arguments as placeholders', done => { + const r = report('pokey', null!, null!, () => { done(); }); assert(r.message.match(/pokey/), 'string error should propagate'); }); - it('Should allow explicit undefined', function(done) { - const r = report('Turkey', undefined, undefined, function() { + it('Should allow explicit undefined', done => { + const r = report('Turkey', undefined, undefined, () => { done(); }); assert(r.message.match(/Turkey/), 'string error should propagate'); }); - it('Should allow request to be supplied as undefined', function(done) { - const r = report('turnkey', undefined, 'solution', function() { + it('Should allow request to be supplied as undefined', done => { + const r = report('turnkey', undefined, 'solution', () => { done(); }); assert.strictEqual(r.message, 'solution', 'error should propagate'); }); - it('Should allow additional message', function(done) { - const r = report('Mickey', {method: 'SNIFF'}, undefined, function() { + it('Should allow additional message', done => { + const r = report('Mickey', {method: 'SNIFF'}, undefined, () => { done(); }); assert( @@ -156,20 +157,21 @@ describe('Manual handler', function() { }); }); - describe('Custom Payload Builder', function() { - it('Should accept builder inst as only argument', function() { + describe('Custom Payload Builder', () => { + it('Should accept builder inst as only argument', () => { const msg = 'builder test'; const r = report(new ErrorMessage().setMessage(msg)); assert( r.message.startsWith(msg), 'string message should propagate from error message inst'); }); - it('Should accept builder and request as arguments', function() { + it('Should accept builder and request as arguments', () => { const msg = 'builder test'; const oldReq = {method: 'GET'}; const newReq = {method: 'POST'}; const r = report( - new ErrorMessage().setMessage(msg).consumeRequestInformation(oldReq as RequestInformationContainer), + new ErrorMessage().setMessage(msg).consumeRequestInformation( + oldReq as RequestInformationContainer), newReq); assert( r.message.startsWith(msg), @@ -179,7 +181,7 @@ describe('Manual handler', function() { 'if supplied, should overwrite any prexisting data in the field.', ].join('\n')); }); - it('Should accept message and additional message params as', function() { + it('Should accept message and additional message params as', () => { const oldMsg = 'builder test'; const newMsg = 'analysis'; const r = report(new ErrorMessage().setMessage(oldMsg), newMsg); @@ -188,9 +190,9 @@ describe('Manual handler', function() { 'supplied, should overwrite any prexisting data in the message field.', ].join('\n')); }); - it('Should accept message and callback function', function(done) { + it('Should accept message and callback function', done => { const oldMsg = 'builder test'; - report(new ErrorMessage().setMessage(oldMsg), function() { + report(new ErrorMessage().setMessage(oldMsg), () => { done(); }); }); diff --git a/handwritten/error-reporting/test/unit/interfaces/restify.ts b/handwritten/error-reporting/test/unit/interfaces/restify.ts index ed46f8dfee9..b196f7caa30 100644 --- a/handwritten/error-reporting/test/unit/interfaces/restify.ts +++ b/handwritten/error-reporting/test/unit/interfaces/restify.ts @@ -14,28 +14,29 @@ * limitations under the License. */ -import {EventEmitter} from 'events'; import * as assert from 'assert'; +import {EventEmitter} from 'events'; + +import {Configuration} from '../../../src/configuration'; +import {RequestHandler} from '../../../src/google-apis/auth-client'; import {handlerSetup as restifyInterface} from '../../../src/interfaces/restify'; -import { RequestHandler } from '../../../src/google-apis/auth-client'; -import { Configuration } from '../../../src/configuration'; // node v0.12 compatibility if (!EventEmitter.prototype.listenerCount) { - EventEmitter.prototype.listenerCount = function(eventName) { + EventEmitter.prototype.listenerCount = function(this, eventName) { // eslint-disable-next-line node/no-deprecated-api return EventEmitter.listenerCount(this, eventName); }; } -describe('restifyInterface', function() { +describe('restifyInterface', () => { const UNCAUGHT_EVENT = 'uncaughtException'; const FINISH = 'finish'; - const noOp = function() { + const noOp = () => { return; }; - describe('Attachment to the uncaughtException event', function() { - it('Should attach one listener after instantiation', function() { + describe('Attachment to the uncaughtException event', () => { + it('Should attach one listener after instantiation', () => { const ee = new EventEmitter(); assert.strictEqual( ee.listenerCount(UNCAUGHT_EVENT), 0, @@ -49,89 +50,90 @@ describe('restifyInterface', function() { 'Listeners on event should now be one'); }); }); - describe('Request handler lifecycle events', function() { + describe('Request handler lifecycle events', () => { const ee = new EventEmitter(); const errorHandlerInstance = restifyInterface(null!, null!); const requestHandlerInstance = errorHandlerInstance(ee); - describe('default path on invalid input', function() { - it('Should not throw', function() { - assert.doesNotThrow(function() { + describe('default path on invalid input', () => { + it('Should not throw', () => { + assert.doesNotThrow(() => { requestHandlerInstance(null, null, noOp); }); }); }); - describe('default path without req/res error', function() { + describe('default path without req/res error', () => { ee.removeAllListeners(); const req = new EventEmitter(); const res = new EventEmitter(); (res as {} as {statusCode: number}).statusCode = 200; - it('Should have 0 listeners on the finish event', function() { + it('Should have 0 listeners on the finish event', () => { assert.strictEqual(res.listenerCount(FINISH), 0); }); - it('Should not throw while handling the req/res objects', function() { - assert.doesNotThrow(function() { + it('Should not throw while handling the req/res objects', () => { + assert.doesNotThrow(() => { requestHandlerInstance(req, res, noOp); }); }); - it('Should have 1 listener', function() { + it('Should have 1 listener', () => { assert.strictEqual(res.listenerCount(FINISH), 1); }); - it('Should not throw when emitting the finish event', function() { - assert.doesNotThrow(function() { + it('Should not throw when emitting the finish event', () => { + assert.doesNotThrow(() => { res.emit(FINISH); }); }); }); - describe('default path with req/res error', function() { + describe('default path with req/res error', () => { ee.removeAllListeners(); const client = { - sendError: function() { + sendError() { assert(true, 'sendError should be called'); }, }; const config = { - getServiceContext: function() { + getServiceContext() { assert(true, 'getServiceContext should be called'); return { service: 'stub-service', version: 'stub-version', }; }, - lacksCredentials: function() { + lacksCredentials() { return false; }, - getVersion: function() { + getVersion() { return '1'; }, } as {} as Configuration; - const errorHandlerInstance = restifyInterface(client as {} as RequestHandler, config); + const errorHandlerInstance = + restifyInterface(client as {} as RequestHandler, config); const requestHandlerInstance = errorHandlerInstance(ee); const req = new EventEmitter(); const res = new EventEmitter(); (res as {} as {statusCode: number}).statusCode = 500; - it('Should have 0 Listeners on the finish event', function() { + it('Should have 0 Listeners on the finish event', () => { assert.strictEqual(res.listenerCount(FINISH), 0); }); - it('Should not throw on instantiation', function() { - assert.doesNotThrow(function() { + it('Should not throw on instantiation', () => { + assert.doesNotThrow(() => { requestHandlerInstance(req, res, noOp); }); }); - it('Should have 1 listener on the finish event', function() { + it('Should have 1 listener on the finish event', () => { assert.strictEqual(res.listenerCount(FINISH), 1); }); - it('Should not throw on emission of the finish event', function() { - assert.doesNotThrow(function() { + it('Should not throw on emission of the finish event', () => { + assert.doesNotThrow(() => { res.emit(FINISH); }); }); - describe('Exercise the uncaughtException event path', function() { - it('Should call the sendError function property', function(done) { - client.sendError = function() { + describe('Exercise the uncaughtException event path', () => { + it('Should call the sendError function property', done => { + client.sendError = () => { assert(true, 'sendError should be called'); done(); }; - assert.doesNotThrow(function() { + assert.doesNotThrow(() => { ee.emit(UNCAUGHT_EVENT); }); }); diff --git a/handwritten/error-reporting/test/unit/logger.ts b/handwritten/error-reporting/test/unit/logger.ts index 8dd53453ee4..635ef50409c 100644 --- a/handwritten/error-reporting/test/unit/logger.ts +++ b/handwritten/error-reporting/test/unit/logger.ts @@ -17,72 +17,74 @@ import * as assert from 'assert'; import {createLogger} from '../../src/logger'; -describe('logger', function() { - describe('Initialization', function() { +describe('logger', () => { + describe('Initialization', () => { let oldEnv; - before(function() { + before(() => { oldEnv = process.env.GCLOUD_ERRORS_LOGLEVEL; delete process.env.GCLOUD_ERRORS_LOGLEVEL; }); - after(function() { + after(() => { process.env.GCLOUD_ERRORS_LOGLEVEL = oldEnv; }); - describe('Exception handling', function() { - it('Should not throw given undefined', function() { - assert.doesNotThrow(createLogger, - createLogger() as {} as (err: Error) => boolean); + describe('Exception handling', () => { + it('Should not throw given undefined', () => { + assert.doesNotThrow( + createLogger, createLogger() as {} as (err: Error) => boolean); }); - it('Should not throw given an empty object', function() { - assert.doesNotThrow(createLogger.bind(null, {}), - createLogger() as {} as (err: Error) => boolean); + it('Should not throw given an empty object', () => { + assert.doesNotThrow( + createLogger.bind(null, {}), + createLogger() as {} as (err: Error) => boolean); }); - it('Should not throw given logLevel as a number', function() { + it('Should not throw given logLevel as a number', () => { assert.doesNotThrow( createLogger.bind(null, {logLevel: 3}), createLogger({logLevel: 3}) as {} as (err: Error) => boolean); }); - it('Should not throw given logLevel as a string', function() { + it('Should not throw given logLevel as a string', () => { assert.doesNotThrow( createLogger.bind(null, {logLevel: '3'}), createLogger({logLevel: 3}) as {} as (err: Error) => boolean); }); - it('Should not throw given an env variable to use', function() { + it('Should not throw given an env variable to use', () => { process.env.GCLOUD_ERRORS_LOGLEVEL = '4'; - assert.doesNotThrow(createLogger, - createLogger({logLevel: 4}) as {} as (err: Error) => boolean); + assert.doesNotThrow( + createLogger, + createLogger({logLevel: 4}) as {} as (err: Error) => boolean); delete process.env.GCLOUD_ERRORS_LOGLEVEL; }); - it('Should thow given logLevel as null', function() { + it('Should thow given logLevel as null', () => { assert.throws(createLogger.bind(null, {logLevel: null}), undefined); }); }); - describe('Default log level', function() { + describe('Default log level', () => { let oldLog; let text; - beforeEach(function() { + beforeEach(() => { // eslint-disable-next-line no-console oldLog = console.log; text = ''; // eslint-disable-next-line no-console - console.log = function() { + console.log = function(this) { oldLog.apply(this, arguments); for (let i = 0; i < arguments.length; i++) { text += arguments[i]; } }; }); - afterEach(function() { + afterEach(() => { text = undefined; // eslint-disable-next-line no-console console.log = oldLog; }); - it('Should print WARN logs by default', function() { + it('Should print WARN logs by default', () => { const logger = createLogger(); logger.warn('test warning message'); assert.strictEqual( text, 'WARN:@google-cloud/error-reporting: test warning message'); }); - it('Should print ERROR logs by default', function() { + it('Should print ERROR logs by default', () => { const logger = createLogger(); logger.error('test error message'); assert.strictEqual( diff --git a/handwritten/error-reporting/test/unit/populate-error-message.ts b/handwritten/error-reporting/test/unit/populate-error-message.ts index c2a2684819d..a959f5c9fd2 100644 --- a/handwritten/error-reporting/test/unit/populate-error-message.ts +++ b/handwritten/error-reporting/test/unit/populate-error-message.ts @@ -21,7 +21,10 @@ import {populateErrorMessage} from '../../src/populate-error-message'; const TEST_USER_INVALID = 12; const TEST_MESSAGE = 'This is a test'; -const TEST_SERVICE_DEFAULT = {service: 'node', version: undefined}; +const TEST_SERVICE_DEFAULT = { + service: 'node', + version: undefined +}; const TEST_STACK_DEFAULT = { filePath: '', lineNumber: 0, @@ -39,9 +42,9 @@ interface AnnotatedError { filePath?: {}; lineNumber?: {}; functionName?: {}; -}; +} -describe('populate-error-message', function() { +describe('populate-error-message', () => { let em; const adversarialObjectInput = { stack: {}, @@ -49,39 +52,39 @@ describe('populate-error-message', function() { const adversarialObjectInputTwo = { stack: [], }; - beforeEach(function() { + beforeEach(() => { em = new ErrorMessage(); }); - it('Should not throw given undefined', function() { + it('Should not throw given undefined', () => { assert.doesNotThrow(populateErrorMessage.bind(null, undefined, em)); }); - it('Should not throw given null', function() { + it('Should not throw given null', () => { assert.doesNotThrow(populateErrorMessage.bind(null, null, em)); }); - it('Should not throw given a string', function() { + it('Should not throw given a string', () => { assert.doesNotThrow(populateErrorMessage.bind(null, 'string_test', em)); }); - it('Should not throw given a number', function() { + it('Should not throw given a number', () => { assert.doesNotThrow(populateErrorMessage.bind(null, 1.2, em)); }); - it('Should not throw given an array', function() { + it('Should not throw given an array', () => { assert.doesNotThrow(populateErrorMessage.bind(null, [], em)); }); - it('Should not throw given an object', function() { + it('Should not throw given an object', () => { assert.doesNotThrow(populateErrorMessage.bind(null, {}, em)); }); - it('Should not throw given an instance of Error', function() { + it('Should not throw given an instance of Error', () => { assert.doesNotThrow(populateErrorMessage.bind(null, new Error(), em)); }); - it('Should not throw given an object of invalid form', function() { + it('Should not throw given an object of invalid form', () => { assert.doesNotThrow( populateErrorMessage.bind(null, adversarialObjectInput, em)); assert.doesNotThrow( @@ -89,7 +92,7 @@ describe('populate-error-message', function() { }); it('Message Field: Should set the message as the stack given an Error', - function() { + () => { const err = new Error(TEST_MESSAGE); populateErrorMessage(err, em); assert.deepEqual( @@ -99,8 +102,8 @@ describe('populate-error-message', function() { }); it('Message Field: Should set the field given valid input given an object', - function() { - let err = {}; + () => { + let err = {}; const MESSAGE = 'test'; err = {message: MESSAGE}; populateErrorMessage(err, em); @@ -109,14 +112,14 @@ describe('populate-error-message', function() { it('Message Field: Should default the field given lack-of input given ' + 'an object', - function() { + () => { const err = {}; populateErrorMessage(err, em); assert(em.message.startsWith('[object Object]')); }); it('User Field: Should set the field given valid input given an Error', - function() { + () => { const err: AnnotatedError = new Error(); const TEST_USER_VALID = 'TEST_USER'; err.user = TEST_USER_VALID; @@ -125,7 +128,7 @@ describe('populate-error-message', function() { }); it('User Field: Should default the field given invalid input given an Error', - function() { + () => { const err: AnnotatedError = new Error(); err.user = TEST_USER_INVALID; populateErrorMessage(err, em); @@ -133,7 +136,7 @@ describe('populate-error-message', function() { }); it('User Field: Should set the field given valid input given an object', - function() { + () => { const err: AnnotatedError = {}; const USER = 'test'; err.user = USER; @@ -143,7 +146,7 @@ describe('populate-error-message', function() { it('User Field: Should default the field given lack-of input given an ' + 'object', - function() { + () => { const err = {}; populateErrorMessage(err, em); assert.strictEqual(em.context.user, ''); @@ -151,7 +154,7 @@ describe('populate-error-message', function() { it('ServiceContext Field: Should set the field given valid input given ' + 'an Error', - function() { + () => { const err: AnnotatedError = new Error(); const TEST_SERVICE_VALID = {service: 'test', version: 'test'}; err.serviceContext = TEST_SERVICE_VALID; @@ -161,7 +164,7 @@ describe('populate-error-message', function() { it('ServiceContext Field: Should default the field given invalid input ' + 'given an Error', - function() { + () => { const err: AnnotatedError = new Error(); const TEST_SERVICE_INVALID = 12; err.serviceContext = TEST_SERVICE_INVALID; @@ -171,7 +174,7 @@ describe('populate-error-message', function() { it('ServiceContext Field: Should default the field if not given input ' + 'given an Error', - function() { + () => { const err = new Error(); populateErrorMessage(err, em); assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); @@ -179,7 +182,7 @@ describe('populate-error-message', function() { it('ServiceContext Field: Should set the field given valid input given an ' + 'object', - function() { + () => { const err: AnnotatedError = {}; const TEST_SERVICE_VALID = {service: 'test', version: 'test'}; err.serviceContext = TEST_SERVICE_VALID; @@ -189,7 +192,7 @@ describe('populate-error-message', function() { it('ServiceContext Field: Should default the field given invalid input ' + 'given an object', - function() { + () => { const err: AnnotatedError = {}; const TEST_SERVICE_INVALID = 12; err.serviceContext = TEST_SERVICE_INVALID; @@ -199,7 +202,7 @@ describe('populate-error-message', function() { it('ServiceContext Field: Should default the field given lack-of input ' + 'given an object', - function() { + () => { const err = {}; populateErrorMessage(err, em); assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); @@ -207,7 +210,7 @@ describe('populate-error-message', function() { it('Report location Field: Should default the field if given invalid input ' + 'given an Error', - function() { + () => { const TEST_STACK_INVALID_CONTENTS = { filePath: null, lineNumber: '2', @@ -221,7 +224,7 @@ describe('populate-error-message', function() { it('Report location Field: Should default field if not given a valid type ' + 'given an Error', - function() { + () => { const err: AnnotatedError = new Error(); const TEST_STACK_INVALID_TYPE = []; err.stack = TEST_STACK_INVALID_TYPE; @@ -230,7 +233,7 @@ describe('populate-error-message', function() { }); it('FilePath Field: Should set the field given valid input given an object', - function() { + () => { const err: AnnotatedError = {}; const PATH = 'test'; err.filePath = PATH; @@ -240,14 +243,14 @@ describe('populate-error-message', function() { it('FilePath Field: Should default the field given lack-of input given ' + 'an object', - function() { + () => { const err = {}; populateErrorMessage(err, em); assert.strictEqual(em.context.reportLocation.filePath, ''); }); it('LineNumber Field: Should set the field given valid input given an object', - function() { + () => { const err: AnnotatedError = {}; const LINE_NUMBER = 10; err.lineNumber = LINE_NUMBER; @@ -257,7 +260,7 @@ describe('populate-error-message', function() { it('LineNumber Field: Should default the field given lack-of input given ' + 'an object', - function() { + () => { const err = {}; populateErrorMessage(err, em); assert.strictEqual(em.context.reportLocation.lineNumber, 0); @@ -265,7 +268,7 @@ describe('populate-error-message', function() { it('FunctionName Field: Should set the field given valid input given ' + 'an object', - function() { + () => { const err: AnnotatedError = {}; const FUNCTION_NAME = 'test'; err.functionName = FUNCTION_NAME; @@ -276,7 +279,7 @@ describe('populate-error-message', function() { it('FunctionName Field: Should default the field given lack-of input given ' + 'an object', - function() { + () => { const err = {}; populateErrorMessage(err, em); assert.strictEqual(em.context.reportLocation.functionName, ''); diff --git a/handwritten/error-reporting/test/unit/request-extractors/express.ts b/handwritten/error-reporting/test/unit/request-extractors/express.ts index 68d328e08a1..bc400e41c77 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/express.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/express.ts @@ -15,12 +15,13 @@ */ import * as assert from 'assert'; +import {Response} from 'express-serve-static-core'; +import * as extend from 'extend'; + import {expressRequestInformationExtractor} from '../../../src/request-extractors/express'; import {Fuzzer} from '../../../utils/fuzzer'; -import * as extend from 'extend'; -import { Response } from 'express-serve-static-core'; -describe('Behaviour under varying input', function() { +describe('Behaviour under varying input', () => { let f; const DEFAULT_RETURN_VALUE = { method: '', @@ -30,17 +31,17 @@ describe('Behaviour under varying input', function() { statusCode: 0, remoteAddress: '', }; - beforeEach(function() { + beforeEach(() => { f = new Fuzzer(); }); - it('Should return a default value given invalid input', function() { - const cbFn = function(value) { + it('Should return a default value given invalid input', () => { + const cbFn = value => { assert.deepEqual(value, DEFAULT_RETURN_VALUE); }; f.fuzzFunctionForTypes( expressRequestInformationExtractor, ['object', 'object'], cbFn); }); - it('Should return valid request object given valid input', function() { + it('Should return valid request object given valid input', () => { const FULL_REQ_DERIVATION_VALUE = { method: 'STUB_METHOD', url: 'www.TEST-URL.com', @@ -101,9 +102,9 @@ describe('Behaviour under varying input', function() { remoteAddress: '', statusCode: 201, }; - const headerFactory = function(toDeriveFrom) { + const headerFactory = toDeriveFrom => { const lrn = extend({}, toDeriveFrom); - lrn.header = function(toRet) { + lrn.header = toRet => { if (lrn.hasOwnProperty(toRet)) { return lrn[toRet]; } @@ -112,7 +113,8 @@ describe('Behaviour under varying input', function() { return lrn; }; let tmpOutput = expressRequestInformationExtractor( - headerFactory(FULL_REQ_DERIVATION_VALUE), FULL_RES_DERIVATION_VALUE as Response); + headerFactory(FULL_REQ_DERIVATION_VALUE), + FULL_RES_DERIVATION_VALUE as Response); assert.deepEqual(tmpOutput, FULL_REQ_EXPECTED_VALUE, [ 'Given a valid object input for the request parameter and an', '\'x-forwarded-for\' parameter the request extractor should return', diff --git a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts index 3eeda699bea..72772aacaee 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts @@ -15,13 +15,14 @@ */ import * as assert from 'assert'; +import * as hapi from 'hapi'; + import {hapiRequestInformationExtractor} from '../../../src/request-extractors/hapi'; import {Fuzzer} from '../../../utils/fuzzer'; -import * as hapi from 'hapi'; -describe('hapiRequestInformationExtractor behaviour', function() { - describe('behaviour given invalid input', function() { - it('Should produce the default value', function() { +describe('hapiRequestInformationExtractor behaviour', () => { + describe('behaviour given invalid input', () => { + it('Should produce the default value', () => { const DEFAULT_RETURN_VALUE = { method: '', url: '', @@ -31,13 +32,13 @@ describe('hapiRequestInformationExtractor behaviour', function() { remoteAddress: '', }; const f = new Fuzzer(); - const cbFn = function(value) { + const cbFn = value => { assert.deepEqual(value, DEFAULT_RETURN_VALUE); }; f.fuzzFunctionForTypes(hapiRequestInformationExtractor, ['object'], cbFn); }); }); - describe('behaviour given valid input', function() { + describe('behaviour given valid input', () => { const FULL_REQ_DERIVATION_VALUE = { method: 'STUB_METHOD', url: 'www.TEST-URL.com', @@ -101,19 +102,22 @@ describe('hapiRequestInformationExtractor behaviour', function() { remoteAddress: '', statusCode: 0, }; - it('Should produce the full request input', function() { + it('Should produce the full request input', () => { assert.deepEqual( - hapiRequestInformationExtractor(FULL_REQ_DERIVATION_VALUE as {} as hapi.Request), + hapiRequestInformationExtractor( + FULL_REQ_DERIVATION_VALUE as {} as hapi.Request), FULL_REQ_EXPECTED_VALUE); }); - it('Should produce the partial request input', function() { + it('Should produce the partial request input', () => { assert.deepEqual( - hapiRequestInformationExtractor(PARTIAL_REQ_DERIVATION_VALUE as {} as hapi.Request), + hapiRequestInformationExtractor( + PARTIAL_REQ_DERIVATION_VALUE as {} as hapi.Request), PARTIAL_REQ_EXPECTED_VALUE); }); - it('Should produce the second partial request input', function() { + it('Should produce the second partial request input', () => { assert.deepEqual( - hapiRequestInformationExtractor(ANOTHER_PARTIAL_REQ_DERIVATION_VALUE as {} as hapi.Request), + hapiRequestInformationExtractor( + ANOTHER_PARTIAL_REQ_DERIVATION_VALUE as {} as hapi.Request), ANOTHER_PARTIAL_REQ_EXPECTED_VALUE); }); }); diff --git a/handwritten/error-reporting/test/unit/request-extractors/koa.ts b/handwritten/error-reporting/test/unit/request-extractors/koa.ts index e5a87167fc3..573660691c2 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/koa.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/koa.ts @@ -15,13 +15,14 @@ */ import * as assert from 'assert'; +import {Request, Response} from 'koa'; + import {koaRequestInformationExtractor} from '../../../src/request-extractors/koa'; import {Fuzzer} from '../../../utils/fuzzer'; -import { Request, Response } from 'koa'; -describe('koaRequestInformationExtractor', function() { - describe('Behaviour under invalid input', function() { - it('Should produce a default value', function() { +describe('koaRequestInformationExtractor', () => { + describe('Behaviour under invalid input', () => { + it('Should produce a default value', () => { const DEFAULT_RETURN_VALUE = { method: '', url: '', @@ -31,15 +32,15 @@ describe('koaRequestInformationExtractor', function() { remoteAddress: '', }; const f = new Fuzzer(); - const cbFn = function(value) { + const cbFn = value => { assert.deepEqual(value, DEFAULT_RETURN_VALUE); }; f.fuzzFunctionForTypes( koaRequestInformationExtractor, ['object', 'object'], cbFn); }); }); - describe('Behaviour under valid input', function() { - it('Should produce the expected value', function() { + describe('Behaviour under valid input', () => { + it('Should produce the expected value', () => { const FULL_REQ_DERIVATION_VALUE = { method: 'STUB_METHOD', url: 'www.TEST-URL.com', @@ -62,7 +63,8 @@ describe('koaRequestInformationExtractor', function() { }; assert.deepEqual( koaRequestInformationExtractor( - FULL_REQ_DERIVATION_VALUE as Request, FULL_RES_DERIVATION_VALUE as Response), + FULL_REQ_DERIVATION_VALUE as Request, + FULL_RES_DERIVATION_VALUE as Response), FULL_REQ_EXPECTED_VALUE); }); }); diff --git a/handwritten/error-reporting/test/unit/request-extractors/manual.ts b/handwritten/error-reporting/test/unit/request-extractors/manual.ts index 68d32b749e9..9a8784804fe 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/manual.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/manual.ts @@ -15,14 +15,15 @@ */ import * as assert from 'assert'; -import * as omit from 'lodash.omit'; import * as extend from 'extend'; +import * as omit from 'lodash.omit'; + import {manualRequestInformationExtractor} from '../../../src/request-extractors/manual'; import {Fuzzer} from '../../../utils/fuzzer'; -describe('manualRequestInformationExtractor', function() { - describe('Behaviour given invalid input', function() { - it('Should return default values', function() { +describe('manualRequestInformationExtractor', () => { + describe('Behaviour given invalid input', () => { + it('Should return default values', () => { const DEFAULT_RETURN_VALUE = { method: '', url: '', @@ -32,14 +33,14 @@ describe('manualRequestInformationExtractor', function() { remoteAddress: '', }; const f = new Fuzzer(); - const cbFn = function(value) { + const cbFn = value => { assert.deepEqual(value, DEFAULT_RETURN_VALUE); }; f.fuzzFunctionForTypes( manualRequestInformationExtractor, ['object'], cbFn); }); }); - describe('Behaviour given valid input', function() { + describe('Behaviour given valid input', () => { const FULL_VALID_INPUT = { method: 'GET', url: 'http://0.0.0.0/myTestRoute', @@ -48,7 +49,7 @@ describe('manualRequestInformationExtractor', function() { statusCode: 500, remoteAddress: '0.0.0.1', }; - it('Should return expected output', function() { + it('Should return expected output', () => { assert.deepEqual( manualRequestInformationExtractor(FULL_VALID_INPUT), FULL_VALID_INPUT, [ diff --git a/handwritten/error-reporting/test/unit/service-configuration.ts b/handwritten/error-reporting/test/unit/service-configuration.ts index 9ce3b9c43ff..2cbc554aa86 100644 --- a/handwritten/error-reporting/test/unit/service-configuration.ts +++ b/handwritten/error-reporting/test/unit/service-configuration.ts @@ -35,7 +35,7 @@ const serviceConfigEnv = { GAE_MODULE_NAME: process.env.GAE_MODULE_NAME, }; function sterilizeServiceConfigEnv() { - forEach(serviceConfigEnv, function(val, key) { + forEach(serviceConfigEnv, (val, key) => { delete process.env[key]; }); } @@ -50,7 +50,7 @@ function setEnv(serviceName, serviceVersion, moduleName, mv, fn) { GAE_MODULE_VERSION: mv, FUNCTION_NAME: fn, }, - function(val) { + val => { return !isString(val); })); } @@ -58,16 +58,16 @@ function restoreServiceConfigEnv() { assign(process.env, serviceConfigEnv); } -describe('Testing service configuration', function() { - beforeEach(function() { +describe('Testing service configuration', () => { + beforeEach(() => { sterilizeServiceConfigEnv(); }); - after(function() { + after(() => { restoreServiceConfigEnv(); }); it('A Configuration uses the function name as the service name on GCF ' + 'if the service name is not given in the given config', - function() { + () => { setEnv( 'someModuleName', '1.0', 'InvalidName', 'InvalidVersion', 'someFunction'); @@ -80,7 +80,7 @@ describe('Testing service configuration', function() { it('A Configuration uses the function name as the service name on GCF ' + 'if the service name is not given in the given config ' + 'even if the GAE_SERVICE was not set', - function() { + () => { setEnv(null, '1.0', null, 'InvalidVersion', 'someFunction'); const c = new Configuration({}, logger); assert.deepEqual(c.getServiceContext().service, 'someFunction'); @@ -91,7 +91,7 @@ describe('Testing service configuration', function() { it('A Configuration uses the GAE_SERVICE env value as the service name ' + 'if the FUNCTION_NAME env variable is not set and the given config ' + 'does not specify the service name', - function() { + () => { setEnv('someModuleName', '1.0', 'InvalidName', 'InvalidVersion', null); const c = new Configuration({}, logger); assert.deepEqual(c.getServiceContext().service, 'someModuleName'); @@ -102,7 +102,7 @@ describe('Testing service configuration', function() { it('A Configuration uses the service name in the given config if it ' + 'was specified and both the GAE_SERVICE and FUNCTION_NAME ' + 'env vars are set', - function() { + () => { setEnv( 'someModuleName', '1.0', 'InvalidName', 'InvalidVersion', 'someFunction'); @@ -121,7 +121,7 @@ describe('Testing service configuration', function() { it('A Configuration uses the service name and version in the given config' + 'they were both specified and both the GAE_SERVICE and FUNCTION_NAME ' + 'env vars are set', - function() { + () => { setEnv( 'someModuleName', '1.0', 'InvalidName', 'InvalidVersion', 'someFunction'); @@ -139,7 +139,7 @@ describe('Testing service configuration', function() { }); it('A Configuration uses the service name in the given config if it ' + 'was specified and only the GAE_SERVICE env const is set', - function() { + () => { setEnv('someModuleName', '1.0', 'InvalidName', 'InvalidVersion', null); const c = new Configuration( { @@ -155,7 +155,7 @@ describe('Testing service configuration', function() { }); it('A Configuration uses the service name and version in the given config ' + 'they were both specified and only the GAE_SERVICE env const is set', - function() { + () => { setEnv('someModuleName', '1.0', 'InvalidName', 'InvalidVersion', null); const c = new Configuration( { @@ -171,7 +171,7 @@ describe('Testing service configuration', function() { }); it('A Configuration uses the service name in the given config if it ' + 'was specified and only the FUNCTION_NAME env const is set', - function() { + () => { setEnv(null, '1.0', null, 'InvalidVersion', 'someFunction'); const c = new Configuration( { @@ -187,7 +187,7 @@ describe('Testing service configuration', function() { }); it('A Configuration uses the service name and version in the given config ' + 'if they were both specified and only the FUNCTION_NAME env const is set', - function() { + () => { setEnv(null, '1.0', null, 'InvalidVersion', 'someFunction'); const c = new Configuration( { @@ -204,7 +204,7 @@ describe('Testing service configuration', function() { it('A Configuration uses the service name "node" and no version if ' + 'GAE_SERVICE is not set, FUNCTION_NAME is not set, and the user has ' + 'not specified a service name or version', - function() { + () => { const c = new Configuration({}, logger); assert.strictEqual(c.getServiceContext().service, 'node'); assert.strictEqual(c.getServiceContext().version, undefined); @@ -213,7 +213,7 @@ describe('Testing service configuration', function() { 'GAE_SERVICE is not set, FUNCTION_NAME is not set, and the user has ' + 'not specified a service name or version even if GAE_VERSION has ' + 'been set', - function() { + () => { setEnv(null, 'InvalidVersion', null, 'InvalidVersion', null); const c = new Configuration({}, logger); assert.strictEqual(c.getServiceContext().service, 'node'); @@ -222,7 +222,7 @@ describe('Testing service configuration', function() { it('A Configuration uses the service name "node" and the user specified ' + 'version if GAE_SERVICE is not set, FUNCTION_NAME is not set, and the ' + 'user has not specified a service name but has specified a version', - function() { + () => { const c = new Configuration( { serviceContext: { diff --git a/handwritten/error-reporting/utils/errors-api-transport.ts b/handwritten/error-reporting/utils/errors-api-transport.ts index e359d4e9c5a..93d8f9049da 100644 --- a/handwritten/error-reporting/utils/errors-api-transport.ts +++ b/handwritten/error-reporting/utils/errors-api-transport.ts @@ -28,32 +28,29 @@ export class ErrorsApiTransport extends AuthClient { deleteAllEvents(cb) { const self = this; - self.getProjectId(function(err, id) { + self.getProjectId((err, id) => { if (err) { return cb(err); } - const options = { - uri: [API, id, 'events'].join('/'), - method: 'DELETE' - }; - self.request_(options, function( - err, - /* jshint unused:false */ response, - /* jshint unused:false */ body - ) { - if (err) { - return cb(err); - } + const options = {uri: [API, id, 'events'].join('/'), method: 'DELETE'}; + self.request_( + options, + (err, + /* jshint unused:false */ response, + /* jshint unused:false */ body) => { + if (err) { + return cb(err); + } - cb(null); - }); + cb(null); + }); }); } getAllGroups(cb) { const self = this; - self.getProjectId(function(err, id) { + self.getProjectId((err, id) => { if (err) { return cb(err); } @@ -62,7 +59,7 @@ export class ErrorsApiTransport extends AuthClient { uri: [API, id, 'groupStats?' + ONE_HOUR_API].join('/'), method: 'GET' }; - self.request_(options, function(err, response, body) { + self.request_(options, (err, response, body) => { if (err) { return cb(err); } diff --git a/handwritten/error-reporting/utils/fuzzer.ts b/handwritten/error-reporting/utils/fuzzer.ts index 25f33f813c4..5ec447406d8 100644 --- a/handwritten/error-reporting/utils/fuzzer.ts +++ b/handwritten/error-reporting/utils/fuzzer.ts @@ -30,7 +30,7 @@ const isFunction = is.function; export class Fuzzer { generate = { - types: function() { + types() { return [ 'object', 'array', @@ -43,7 +43,7 @@ export class Fuzzer { ]; }, - string: function(len) { + string(len) { const lenChecked = isNumber(len) ? len : 10; const chars: string[] = []; @@ -54,11 +54,11 @@ export class Fuzzer { return chars.join(''); }, - boolean: function() { + boolean() { return !!random(0, 1); }, - alphaNumericString: function(len) { + alphaNumericString(len) { const lenChecked = isNumber(len) ? len : 10; const chars: string[] = []; let thisRange: number[] = []; @@ -72,42 +72,37 @@ export class Fuzzer { return chars.join(''); }, - function: function() { + function() { const availableTypes = without(this.types(), 'function'); const typeToGen = this.types()[random(0, availableTypes.length - 1)]; const fnToCall = this[typeToGen]; - return function() { + return () => { return fnToCall(); }; }, - number: function(lower, upper) { + number(lower, upper) { const lowerChecked = isNumber(lower) ? lower : 0; const upperChecked = isNumber(upper) ? upper : 100; return random(lowerChecked, upperChecked); }, - null: function() { + null() { return null; }, - undefined: function() { + undefined() { return undefined; }, - array: function( - len, - ofOneType, - currentDepth, - allowedDepth - ) { + array(len, ofOneType, currentDepth, allowedDepth) { const lenChecked = isNumber(len) ? len : random(1, 10); let availableTypes = - isString(ofOneType) && indexOf(this.types(), ofOneType) > -1 - ? [ofOneType] - : this.types(); + isString(ofOneType) && indexOf(this.types(), ofOneType) > -1 ? + [ofOneType] : + this.types(); let currentDepthChecked = isNumber(currentDepth) ? currentDepth : 0; const allowedDepthChecked = isNumber(allowedDepth) ? allowedDepth : 3; const arr: Array<{}> = []; @@ -121,25 +116,14 @@ export class Fuzzer { for (let i = 0; i < lenChecked; i++) { currentTypeBeingGenerated = - availableTypes[random(0, availableTypes.length - 1)]; + availableTypes[random(0, availableTypes.length - 1)]; if (currentTypeBeingGenerated === 'object') { - arr.push( - this[currentTypeBeingGenerated]( - null, - currentDepthChecked, - allowedDepthChecked - ) - ); + arr.push(this[currentTypeBeingGenerated]( + null, currentDepthChecked, allowedDepthChecked)); } else if (currentTypeBeingGenerated === 'array') { - arr.push( - this[currentTypeBeingGenerated]( - null, - ofOneType, - currentDepthChecked, - allowedDepthChecked - ) - ); + arr.push(this[currentTypeBeingGenerated]( + null, ofOneType, currentDepthChecked, allowedDepthChecked)); } else { arr.push(this[currentTypeBeingGenerated]()); } @@ -148,15 +132,10 @@ export class Fuzzer { return arr; }, - object: function( - numProperties, - currentDepth, - allowedDepth - ) { - const numPropertiesChecked = isNumber(numProperties) - ? numProperties - : random(1, 10); - let currentDepthChecked = isNumber(currentDepth) ? currentDepth : 0; + object(numProperties, currentDepth, allowedDepth) { + const numPropertiesChecked = + isNumber(numProperties) ? numProperties : random(1, 10); + let currentDepthChecked = isNumber(currentDepth) ? currentDepth : 0; const allowedDepthChecked = isNumber(allowedDepth) ? allowedDepth : 3; const obj = {}; currentDepthChecked += 1; @@ -173,22 +152,15 @@ export class Fuzzer { for (let i = 0; i < numPropertiesChecked; i++) { currentTypeBeingGenerated = - availableTypes[random(0, availableTypes.length - 1)]; + availableTypes[random(0, availableTypes.length - 1)]; currentKey = this.alphaNumericString(random(1, 10)); if (currentTypeBeingGenerated === 'object') { obj[currentKey] = this[currentTypeBeingGenerated]( - null, - currentDepthChecked, - allowedDepthChecked - ); + null, currentDepthChecked, allowedDepthChecked); } else if (currentTypeBeingGenerated === 'array') { obj[currentKey] = this[currentTypeBeingGenerated]( - null, - null, - currentDepthChecked, - allowedDepthChecked - ); + null, null, currentDepthChecked, allowedDepthChecked); } else { obj[currentKey] = this[currentTypeBeingGenerated](); } @@ -199,16 +171,15 @@ export class Fuzzer { }; _backFillUnevenTypesArrays(argsTypesArray) { - const largestLength = maxBy(argsTypesArray, function(o) { - return o.length; - }).length; + const largestLength = maxBy(argsTypesArray, o => { + return o.length; + }).length; for (let i = 0; i < argsTypesArray.length; i++) { if (argsTypesArray[i].length !== largestLength) { while (argsTypesArray[i].length < largestLength) { argsTypesArray[i].push( - argsTypesArray[i][random(0, argsTypesArray[i].length - 1)] - ); + argsTypesArray[i][random(0, argsTypesArray[i].length - 1)]); } } } @@ -235,7 +206,7 @@ export class Fuzzer { } _generateTypesToFuzzWith(expectsArgTypes) { - let argsTypesArray: Array<{}[]> = []; + let argsTypesArray: Array> = []; let tmpArray = this.generate.types(); for (let i = 0; i < expectsArgTypes.length; i++) { @@ -246,20 +217,17 @@ export class Fuzzer { tmpArray = without(tmpArray, expectsArgTypes[i][j]); } - argsTypesArray.push(([] as {}[]).concat(tmpArray)); + argsTypesArray.push(([] as Array<{}>).concat(tmpArray)); tmpArray = this.generate.types(); } } argsTypesArray = this._normalizeTypesArrayLengths(argsTypesArray); return argsTypesArray; - }; + } - _generateValuesForFuzzTyping( - typesToFuzzOnEach, - index - ) { - const args: {}[] = []; + _generateValuesForFuzzTyping(typesToFuzzOnEach, index) { + const args: Array<{}> = []; let typeToGen = ''; for (let i = 0; i < typesToFuzzOnEach.length; i++) { @@ -272,21 +240,17 @@ export class Fuzzer { } fuzzFunctionForTypes( - fnToFuzz, - expectsArgTypes?: {}, - cb?: Function, - withContext?: {} - ) { - const expectsArgTypesChecked = isArray(expectsArgTypes) ? expectsArgTypes : []; - const typesToFuzzOnEach = this._generateTypesToFuzzWith(expectsArgTypesChecked); + fnToFuzz, expectsArgTypes?: {}, cb?: Function, withContext?: {}) { + const expectsArgTypesChecked = + isArray(expectsArgTypes) ? expectsArgTypes : []; + const typesToFuzzOnEach = + this._generateTypesToFuzzWith(expectsArgTypesChecked); let returnValue = undefined; for (let i = 0; i < typesToFuzzOnEach[0].length; i++) { returnValue = fnToFuzz.apply( - withContext, - this._generateValuesForFuzzTyping(typesToFuzzOnEach, i) - ); + withContext, this._generateValuesForFuzzTyping(typesToFuzzOnEach, i)); if (isFunction(cb)) { cb!(returnValue); From 8d27336548c4279d5dd9a73c5f3dd4346acd26f5 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Tue, 3 Apr 2018 16:48:59 -0700 Subject: [PATCH 086/527] chore: update to TypeScript 2.8 (#106) --- handwritten/error-reporting/package-lock.json | 2329 +++++++++++------ handwritten/error-reporting/package.json | 2 +- .../system-test/error-reporting.ts | 4 +- 3 files changed, 1516 insertions(+), 819 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index 54403c43b1b..d95a5531481 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/error-reporting", - "version": "0.2.2", + "version": "0.3.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -81,9 +81,9 @@ } }, "@google-cloud/common": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.16.2.tgz", - "integrity": "sha512-GrkaFoj0/oO36pNs4yLmaYhTujuA3i21FdQik99Fd/APix1uhf01VlpJY4lAteTDFLRNkRx6ydEh7OVvmeUHng==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.17.0.tgz", + "integrity": "sha512-HRZLSU762E6HaKoGfJGa8W95yRjb9rY7LePhjaHK9ILAnFacMuUGVamDbTHu1csZomm1g3tZTtXfX/aAhtie/Q==", "requires": { "array-uniq": "1.0.3", "arrify": "1.0.1", @@ -92,7 +92,7 @@ "duplexify": "3.5.4", "ent": "2.2.0", "extend": "3.0.1", - "google-auto-auth": "0.9.7", + "google-auto-auth": "0.10.0", "is": "3.2.1", "log-driver": "1.2.7", "methmeth": "1.1.0", @@ -100,15 +100,15 @@ "request": "2.85.0", "retry-request": "3.3.1", "split-array-stream": "1.0.3", - "stream-events": "1.0.2", + "stream-events": "1.0.3", "string-format-obj": "1.1.1", "through2": "2.0.3" } }, "@google-cloud/nodejs-repo-tools": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/@google-cloud/nodejs-repo-tools/-/nodejs-repo-tools-2.2.5.tgz", - "integrity": "sha512-Z/MZWDU0vG4F3bWqbBm7Bn+ceiTyhOEQNtjCPEBOx2IfUJAWhrVLLXXJRhWtquE5KRmmJ5XRbCdy/DA5mWPX6g==", + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/@google-cloud/nodejs-repo-tools/-/nodejs-repo-tools-2.2.6.tgz", + "integrity": "sha512-bDEgNBAJ8kfYWrpifg+D7rXs8NUBUUeu2I6NWkcL9IOXg86rblu7xnhFHRxBMcvytJ+7WY4pvkCLxO1v3QBsXg==", "dev": true, "requires": { "ava": "0.25.0", @@ -163,7 +163,8 @@ "dependencies": { "align-text": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, "requires": { "kind-of": "3.2.2", @@ -173,22 +174,26 @@ }, "amdefine": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", "dev": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "ansi-styles": { "version": "2.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, "append-transform": { "version": "0.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", "dev": true, "requires": { "default-require-extensions": "1.0.0" @@ -196,12 +201,14 @@ }, "archy": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", "dev": true }, "arr-diff": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { "arr-flatten": "1.1.0" @@ -209,27 +216,32 @@ }, "arr-flatten": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, "array-unique": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", "dev": true }, "arrify": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, "async": { "version": "1.5.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", "dev": true }, "babel-code-frame": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { "chalk": "1.1.3", @@ -239,7 +251,8 @@ }, "babel-generator": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", + "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", "dev": true, "requires": { "babel-messages": "6.23.0", @@ -254,7 +267,8 @@ }, "babel-messages": { "version": "6.23.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { "babel-runtime": "6.26.0" @@ -262,7 +276,8 @@ }, "babel-runtime": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { "core-js": "2.5.3", @@ -271,7 +286,8 @@ }, "babel-template": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { "babel-runtime": "6.26.0", @@ -283,7 +299,8 @@ }, "babel-traverse": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { "babel-code-frame": "6.26.0", @@ -299,7 +316,8 @@ }, "babel-types": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { "babel-runtime": "6.26.0", @@ -310,17 +328,20 @@ }, "babylon": { "version": "6.18.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", "dev": true }, "balanced-match": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "brace-expansion": { "version": "1.1.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "dev": true, "requires": { "balanced-match": "1.0.0", @@ -329,7 +350,8 @@ }, "braces": { "version": "1.8.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { "expand-range": "1.8.2", @@ -339,12 +361,14 @@ }, "builtin-modules": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, "caching-transform": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", + "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", "dev": true, "requires": { "md5-hex": "1.3.0", @@ -354,13 +378,15 @@ }, "camelcase": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", "dev": true, "optional": true }, "center-align": { "version": "0.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "dev": true, "optional": true, "requires": { @@ -370,7 +396,8 @@ }, "chalk": { "version": "1.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { "ansi-styles": "2.2.1", @@ -382,7 +409,8 @@ }, "cliui": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "dev": true, "optional": true, "requires": { @@ -393,7 +421,8 @@ "dependencies": { "wordwrap": { "version": "0.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", "dev": true, "optional": true } @@ -401,32 +430,38 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, "commondir": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, "concat-map": { "version": "0.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "convert-source-map": { "version": "1.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", "dev": true }, "core-js": { "version": "2.5.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", "dev": true }, "cross-spawn": { "version": "4.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", "dev": true, "requires": { "lru-cache": "4.1.1", @@ -435,7 +470,8 @@ }, "debug": { "version": "2.6.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" @@ -443,17 +479,20 @@ }, "debug-log": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", + "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", "dev": true }, "decamelize": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "default-require-extensions": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", "dev": true, "requires": { "strip-bom": "2.0.0" @@ -461,7 +500,8 @@ }, "detect-indent": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { "repeating": "2.0.1" @@ -469,7 +509,8 @@ }, "error-ex": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "dev": true, "requires": { "is-arrayish": "0.2.1" @@ -477,17 +518,20 @@ }, "escape-string-regexp": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "esutils": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, "execa": { "version": "0.7.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { "cross-spawn": "5.1.0", @@ -501,7 +545,8 @@ "dependencies": { "cross-spawn": { "version": "5.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { "lru-cache": "4.1.1", @@ -513,7 +558,8 @@ }, "expand-brackets": { "version": "0.1.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { "is-posix-bracket": "0.1.1" @@ -521,7 +567,8 @@ }, "expand-range": { "version": "1.8.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { "fill-range": "2.2.3" @@ -529,7 +576,8 @@ }, "extglob": { "version": "0.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { "is-extglob": "1.0.0" @@ -537,12 +585,14 @@ }, "filename-regex": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", "dev": true }, "fill-range": { "version": "2.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", "dev": true, "requires": { "is-number": "2.1.0", @@ -554,7 +604,8 @@ }, "find-cache-dir": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", "dev": true, "requires": { "commondir": "1.0.1", @@ -564,7 +615,8 @@ }, "find-up": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { "locate-path": "2.0.0" @@ -572,12 +624,14 @@ }, "for-in": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true }, "for-own": { "version": "0.1.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { "for-in": "1.0.2" @@ -585,7 +639,8 @@ }, "foreground-child": { "version": "1.5.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", "dev": true, "requires": { "cross-spawn": "4.0.2", @@ -594,22 +649,26 @@ }, "fs.realpath": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "get-caller-file": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", "dev": true }, "get-stream": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true }, "glob": { "version": "7.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { "fs.realpath": "1.0.0", @@ -622,7 +681,8 @@ }, "glob-base": { "version": "0.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { "glob-parent": "2.0.0", @@ -631,7 +691,8 @@ }, "glob-parent": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { "is-glob": "2.0.1" @@ -639,17 +700,20 @@ }, "globals": { "version": "9.18.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", "dev": true }, "graceful-fs": { "version": "4.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, "handlebars": { "version": "4.0.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { "async": "1.5.2", @@ -660,7 +724,8 @@ "dependencies": { "source-map": { "version": "0.4.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { "amdefine": "1.0.1" @@ -670,7 +735,8 @@ }, "has-ansi": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { "ansi-regex": "2.1.1" @@ -678,22 +744,26 @@ }, "has-flag": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", "dev": true }, "hosted-git-info": { "version": "2.5.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", "dev": true }, "imurmurhash": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { "once": "1.4.0", @@ -702,12 +772,14 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "invariant": { "version": "2.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", "dev": true, "requires": { "loose-envify": "1.3.1" @@ -715,22 +787,26 @@ }, "invert-kv": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", "dev": true }, "is-arrayish": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, "is-buffer": { "version": "1.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, "is-builtin-module": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { "builtin-modules": "1.1.1" @@ -738,12 +814,14 @@ }, "is-dotfile": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", "dev": true }, "is-equal-shallow": { "version": "0.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { "is-primitive": "2.0.0" @@ -751,17 +829,20 @@ }, "is-extendable": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true }, "is-extglob": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", "dev": true }, "is-finite": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { "number-is-nan": "1.0.1" @@ -769,7 +850,8 @@ }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { "number-is-nan": "1.0.1" @@ -777,7 +859,8 @@ }, "is-glob": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { "is-extglob": "1.0.0" @@ -785,7 +868,8 @@ }, "is-number": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { "kind-of": "3.2.2" @@ -793,37 +877,44 @@ }, "is-posix-bracket": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", "dev": true }, "is-primitive": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", "dev": true }, "is-stream": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "is-utf8": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, "isarray": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "isobject": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "requires": { "isarray": "1.0.0" @@ -831,12 +922,14 @@ }, "istanbul-lib-coverage": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz", + "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==", "dev": true }, "istanbul-lib-hook": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", + "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", "dev": true, "requires": { "append-transform": "0.4.0" @@ -844,7 +937,8 @@ }, "istanbul-lib-instrument": { "version": "1.9.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz", + "integrity": "sha512-RQmXeQ7sphar7k7O1wTNzVczF9igKpaeGQAG9qR2L+BS4DCJNTI9nytRmIVYevwO0bbq+2CXvJmYDuz0gMrywA==", "dev": true, "requires": { "babel-generator": "6.26.0", @@ -858,7 +952,8 @@ }, "istanbul-lib-report": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz", + "integrity": "sha512-UTv4VGx+HZivJQwAo1wnRwe1KTvFpfi/NYwN7DcsrdzMXwpRT/Yb6r4SBPoHWj4VuQPakR32g4PUUeyKkdDkBA==", "dev": true, "requires": { "istanbul-lib-coverage": "1.1.1", @@ -869,7 +964,8 @@ "dependencies": { "supports-color": { "version": "3.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { "has-flag": "1.0.0" @@ -879,7 +975,8 @@ }, "istanbul-lib-source-maps": { "version": "1.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz", + "integrity": "sha512-8BfdqSfEdtip7/wo1RnrvLpHVEd8zMZEDmOFEnpC6dg0vXflHt9nvoAyQUzig2uMSXfF2OBEYBV3CVjIL9JvaQ==", "dev": true, "requires": { "debug": "3.1.0", @@ -891,7 +988,8 @@ "dependencies": { "debug": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { "ms": "2.0.0" @@ -901,7 +999,8 @@ }, "istanbul-reports": { "version": "1.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.3.tgz", + "integrity": "sha512-ZEelkHh8hrZNI5xDaKwPMFwDsUf5wIEI2bXAFGp1e6deR2mnEKBPhLJEgr4ZBt8Gi6Mj38E/C8kcy9XLggVO2Q==", "dev": true, "requires": { "handlebars": "4.0.11" @@ -909,17 +1008,20 @@ }, "js-tokens": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", "dev": true }, "jsesc": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", "dev": true }, "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "1.1.6" @@ -927,13 +1029,15 @@ }, "lazy-cache": { "version": "1.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", "dev": true, "optional": true }, "lcid": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { "invert-kv": "1.0.0" @@ -941,7 +1045,8 @@ }, "load-json-file": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -953,7 +1058,8 @@ }, "locate-path": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { "p-locate": "2.0.0", @@ -962,24 +1068,28 @@ "dependencies": { "path-exists": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true } } }, "lodash": { "version": "4.17.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", "dev": true }, "longest": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", "dev": true }, "loose-envify": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "dev": true, "requires": { "js-tokens": "3.0.2" @@ -987,7 +1097,8 @@ }, "lru-cache": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", "dev": true, "requires": { "pseudomap": "1.0.2", @@ -996,7 +1107,8 @@ }, "md5-hex": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", + "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "dev": true, "requires": { "md5-o-matic": "0.1.1" @@ -1004,12 +1116,14 @@ }, "md5-o-matic": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", + "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=", "dev": true }, "mem": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { "mimic-fn": "1.1.0" @@ -1017,7 +1131,8 @@ }, "merge-source-map": { "version": "1.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", + "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=", "dev": true, "requires": { "source-map": "0.5.7" @@ -1025,7 +1140,8 @@ }, "micromatch": { "version": "2.3.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { "arr-diff": "2.0.0", @@ -1045,12 +1161,14 @@ }, "mimic-fn": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", + "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", "dev": true }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { "brace-expansion": "1.1.8" @@ -1058,12 +1176,14 @@ }, "minimist": { "version": "0.0.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { "minimist": "0.0.8" @@ -1071,12 +1191,14 @@ }, "ms": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "normalize-package-data": { "version": "2.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { "hosted-git-info": "2.5.0", @@ -1087,7 +1209,8 @@ }, "normalize-path": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { "remove-trailing-separator": "1.1.0" @@ -1095,7 +1218,8 @@ }, "npm-run-path": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { "path-key": "2.0.1" @@ -1103,17 +1227,20 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, "object.omit": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { "for-own": "0.1.5", @@ -1122,7 +1249,8 @@ }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { "wrappy": "1.0.2" @@ -1130,7 +1258,8 @@ }, "optimist": { "version": "0.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { "minimist": "0.0.8", @@ -1139,12 +1268,14 @@ }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, "os-locale": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { "execa": "0.7.0", @@ -1154,17 +1285,20 @@ }, "p-finally": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, "p-limit": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", + "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", "dev": true }, "p-locate": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { "p-limit": "1.1.0" @@ -1172,7 +1306,8 @@ }, "parse-glob": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "requires": { "glob-base": "0.3.0", @@ -1183,7 +1318,8 @@ }, "parse-json": { "version": "2.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { "error-ex": "1.3.1" @@ -1191,7 +1327,8 @@ }, "path-exists": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { "pinkie-promise": "2.0.1" @@ -1199,22 +1336,26 @@ }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "path-key": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, "path-parse": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", "dev": true }, "path-type": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -1224,17 +1365,20 @@ }, "pify": { "version": "2.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, "pinkie": { "version": "2.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", "dev": true }, "pinkie-promise": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { "pinkie": "2.0.4" @@ -1242,7 +1386,8 @@ }, "pkg-dir": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "dev": true, "requires": { "find-up": "1.1.2" @@ -1250,7 +1395,8 @@ "dependencies": { "find-up": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { "path-exists": "2.1.0", @@ -1261,17 +1407,20 @@ }, "preserve": { "version": "0.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", "dev": true }, "pseudomap": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, "randomatic": { "version": "1.1.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", "dev": true, "requires": { "is-number": "3.0.0", @@ -1280,7 +1429,8 @@ "dependencies": { "is-number": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { "kind-of": "3.2.2" @@ -1288,7 +1438,8 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "1.1.6" @@ -1298,7 +1449,8 @@ }, "kind-of": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { "is-buffer": "1.1.6" @@ -1308,7 +1460,8 @@ }, "read-pkg": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { "load-json-file": "1.1.0", @@ -1318,7 +1471,8 @@ }, "read-pkg-up": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { "find-up": "1.1.2", @@ -1327,7 +1481,8 @@ "dependencies": { "find-up": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { "path-exists": "2.1.0", @@ -1338,12 +1493,14 @@ }, "regenerator-runtime": { "version": "0.11.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true }, "regex-cache": { "version": "0.4.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { "is-equal-shallow": "0.1.3" @@ -1351,22 +1508,26 @@ }, "remove-trailing-separator": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", "dev": true }, "repeat-element": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", "dev": true }, "repeat-string": { "version": "1.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, "repeating": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { "is-finite": "1.0.2" @@ -1374,22 +1535,26 @@ }, "require-directory": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, "require-main-filename": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", "dev": true }, "resolve-from": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", "dev": true }, "right-align": { "version": "0.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "dev": true, "optional": true, "requires": { @@ -1398,7 +1563,8 @@ }, "rimraf": { "version": "2.6.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { "glob": "7.1.2" @@ -1406,17 +1572,20 @@ }, "semver": { "version": "5.4.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", "dev": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, "shebang-command": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { "shebang-regex": "1.0.0" @@ -1424,27 +1593,32 @@ }, "shebang-regex": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, "slide": { "version": "1.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", "dev": true }, "source-map": { "version": "0.5.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, "spawn-wrap": { "version": "1.4.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", + "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", "dev": true, "requires": { "foreground-child": "1.5.6", @@ -1457,7 +1631,8 @@ }, "spdx-correct": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", "dev": true, "requires": { "spdx-license-ids": "1.2.2" @@ -1465,17 +1640,20 @@ }, "spdx-expression-parse": { "version": "1.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", "dev": true }, "spdx-license-ids": { "version": "1.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", "dev": true }, "string-width": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { "is-fullwidth-code-point": "2.0.0", @@ -1484,17 +1662,20 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "strip-ansi": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { "ansi-regex": "3.0.0" @@ -1504,7 +1685,8 @@ }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { "ansi-regex": "2.1.1" @@ -1512,7 +1694,8 @@ }, "strip-bom": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { "is-utf8": "0.2.1" @@ -1520,17 +1703,20 @@ }, "strip-eof": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, "supports-color": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, "test-exclude": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz", + "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==", "dev": true, "requires": { "arrify": "1.0.1", @@ -1542,17 +1728,20 @@ }, "to-fast-properties": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", "dev": true }, "trim-right": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "dev": true }, "uglify-js": { "version": "2.8.29", - "bundled": true, + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "dev": true, "optional": true, "requires": { @@ -1563,7 +1752,8 @@ "dependencies": { "yargs": { "version": "3.10.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "dev": true, "optional": true, "requires": { @@ -1577,13 +1767,15 @@ }, "uglify-to-browserify": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", "dev": true, "optional": true }, "validate-npm-package-license": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", "dev": true, "requires": { "spdx-correct": "1.0.2", @@ -1592,7 +1784,8 @@ }, "which": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true, "requires": { "isexe": "2.0.0" @@ -1600,23 +1793,27 @@ }, "which-module": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, "window-size": { "version": "0.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", "dev": true }, "wrap-ansi": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { "string-width": "1.0.2", @@ -1625,7 +1822,8 @@ "dependencies": { "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { "code-point-at": "1.1.0", @@ -1637,12 +1835,14 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "write-file-atomic": { "version": "1.3.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", + "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -1652,17 +1852,20 @@ }, "y18n": { "version": "3.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", "dev": true }, "yallist": { "version": "2.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, "yargs": { "version": "10.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.0.3.tgz", + "integrity": "sha512-DqBpQ8NAUX4GyPP/ijDGHsJya4tYqLQrjPr95HNsr1YwL3+daCfvBwg7+gIC6IdJhR2kATh3hb61vjzMWEtjdw==", "dev": true, "requires": { "cliui": "3.2.0", @@ -1681,7 +1884,8 @@ "dependencies": { "cliui": { "version": "3.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "requires": { "string-width": "1.0.2", @@ -1691,7 +1895,8 @@ "dependencies": { "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { "code-point-at": "1.1.0", @@ -1705,7 +1910,8 @@ }, "yargs-parser": { "version": "8.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.0.0.tgz", + "integrity": "sha1-IdR2Mw5agieaS4gTRb8GYQLiGcY=", "dev": true, "requires": { "camelcase": "4.1.0" @@ -1713,7 +1919,8 @@ "dependencies": { "camelcase": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true } } @@ -1800,7 +2007,7 @@ "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", "dev": true, "requires": { - "@types/node": "9.6.0" + "@types/node": "9.6.1" } }, "@types/body-parser": { @@ -1810,7 +2017,7 @@ "dev": true, "requires": { "@types/express": "4.11.1", - "@types/node": "9.6.0" + "@types/node": "9.6.1" } }, "@types/boom": { @@ -1826,7 +2033,7 @@ "dev": true, "requires": { "@types/events": "1.2.0", - "@types/node": "9.6.0" + "@types/node": "9.6.1" } }, "@types/caseless": { @@ -1850,7 +2057,7 @@ "integrity": "sha512-OPSxsP6XqA3984KWDUXq/u05Hu8VWa/2rUVlw/aDUOx87BptIep6xb3NdCxCpKLfLdjZcCE5jR+gouTul3gjdA==", "dev": true, "requires": { - "@types/node": "9.6.0" + "@types/node": "9.6.1" } }, "@types/cookies": { @@ -1862,7 +2069,7 @@ "@types/connect": "3.4.31", "@types/express": "4.11.1", "@types/keygrip": "1.0.1", - "@types/node": "9.6.0" + "@types/node": "9.6.1" } }, "@types/events": { @@ -1889,7 +2096,7 @@ "dev": true, "requires": { "@types/events": "1.2.0", - "@types/node": "9.6.0" + "@types/node": "9.6.1" } }, "@types/form-data": { @@ -1898,7 +2105,7 @@ "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", "dev": true, "requires": { - "@types/node": "9.6.0" + "@types/node": "9.6.1" } }, "@types/glob": { @@ -1909,7 +2116,7 @@ "requires": { "@types/events": "1.2.0", "@types/minimatch": "3.0.3", - "@types/node": "9.6.0" + "@types/node": "9.6.1" } }, "@types/hapi": { @@ -1923,7 +2130,7 @@ "@types/events": "1.2.0", "@types/joi": "13.0.7", "@types/mimos": "3.0.1", - "@types/node": "9.6.0", + "@types/node": "9.6.1", "@types/podium": "1.0.0", "@types/shot": "3.4.0" } @@ -1964,7 +2171,7 @@ "@types/http-assert": "1.2.2", "@types/keygrip": "1.0.1", "@types/koa-compose": "3.2.2", - "@types/node": "9.6.0" + "@types/node": "9.6.1" } }, "@types/koa-compose": { @@ -2027,13 +2234,13 @@ "integrity": "sha512-TeiJ7uvv/92ugSqZ0v9l0eNXzutlki0aK+R1K5bfA5SYUil46ITlxLW4iNTCf55P4L5weCmaOdtxGeGWvudwPg==", "dev": true, "requires": { - "@types/node": "9.6.0" + "@types/node": "9.6.1" } }, "@types/node": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.0.tgz", - "integrity": "sha512-h3YZbOq2+ZoDFI1z8Zx0Ck/xRWkOESVaLdgLdd/c25mMQ1Y2CAkILu9ny5A15S5f32gGcQdaUIZ2jzYr8D7IFg==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.1.tgz", + "integrity": "sha512-xwlHq5DXQFRpe+u6hmmNkzYk/3oxxqDp71a/AJMupOQYmxyaBetqrVMqdNlSQfbg7XTJYD8vARjf3Op06OzdtQ==", "dev": true }, "@types/once": { @@ -2062,7 +2269,7 @@ "requires": { "@types/caseless": "0.12.1", "@types/form-data": "2.2.1", - "@types/node": "9.6.0", + "@types/node": "9.6.1", "@types/tough-cookie": "2.3.2" } }, @@ -2073,7 +2280,7 @@ "dev": true, "requires": { "@types/bunyan": "1.8.4", - "@types/node": "9.6.0", + "@types/node": "9.6.1", "@types/spdy": "3.4.4" } }, @@ -2084,7 +2291,7 @@ "dev": true, "requires": { "@types/glob": "5.0.35", - "@types/node": "9.6.0" + "@types/node": "9.6.1" } }, "@types/serve-static": { @@ -2103,7 +2310,7 @@ "integrity": "sha1-RZR3xRh9Pr0wNmCrCZ5+ng87ZW8=", "dev": true, "requires": { - "@types/node": "9.6.0" + "@types/node": "9.6.1" } }, "@types/spdy": { @@ -2112,7 +2319,7 @@ "integrity": "sha512-N9LBlbVRRYq6HgYpPkqQc3a9HJ/iEtVZToW6xlTtJiMhmRJ7jJdV7TaZQJw/Ve/1ePUsQiCTDc4JMuzzag94GA==", "dev": true, "requires": { - "@types/node": "9.6.0" + "@types/node": "9.6.1" } }, "@types/tmp": { @@ -2467,7 +2674,7 @@ "clean-stack": "1.3.0", "clean-yaml-object": "0.1.0", "cli-cursor": "2.1.0", - "cli-spinners": "1.1.0", + "cli-spinners": "1.3.0", "cli-truncate": "1.1.0", "co-with-promise": "4.6.0", "code-excerpt": "2.1.1", @@ -3086,7 +3293,7 @@ "content-type": "1.0.4", "debug": "2.6.9", "depd": "1.1.2", - "http-errors": "1.6.2", + "http-errors": "1.6.3", "iconv-lite": "0.4.19", "on-finished": "2.3.0", "qs": "6.5.1", @@ -3225,7 +3432,7 @@ "dev": true, "requires": { "dtrace-provider": "0.8.6", - "moment": "2.21.0", + "moment": "2.22.0", "mv": "2.1.1", "safe-json-stringify": "1.1.0" } @@ -3408,9 +3615,9 @@ } }, "catbox-memory": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/catbox-memory/-/catbox-memory-3.1.1.tgz", - "integrity": "sha512-fl6TI/uneeUb9NGClKWZWkpCZQrkPmuVz/Jaqqb15vqW6KGfJ/vMP/ZMp8VgAkyTrrRvFHbFcS67sbU7EkvbhQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/catbox-memory/-/catbox-memory-3.1.2.tgz", + "integrity": "sha512-lhWtutLVhsq3Mucxk2McxBPPibJ34WcHuWFz3xqub9u9Ve/IQYpZv3ijLhQXfQped9DXozURiaq9O3aZpP91eg==", "dev": true, "requires": { "big-time": "2.0.0", @@ -3586,9 +3793,9 @@ } }, "cli-spinners": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.1.0.tgz", - "integrity": "sha1-8YR7FohE2RemceudFH499JfJDQY=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.0.tgz", + "integrity": "sha512-ahr3q/EW26uLN3vqBaDQS4g1rUwKMbVSTRlyfyoY06VwwSJmMYRxhT3FTAiTz9Yam6OOb1e0ldwvbsnuThvuzA==", "dev": true }, "cli-table": { @@ -3986,9 +4193,9 @@ } }, "content": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/content/-/content-4.0.4.tgz", - "integrity": "sha512-h0r6/VHlhrLVFrTj612v5EPwqyMs3L79Uf4vEw0zFmywodU8TveiIuINp0//3/GRnAWrQbgSnazSosNkyAeVNA==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/content/-/content-4.0.5.tgz", + "integrity": "sha512-wDP6CTWDpwCf791fNxlCCkZGRkrNzSEU/8ju9Hnr3Uc5mF/gFR5W+fcoGm6zUSlVPdSXYn5pCbySADKj7YM4Cg==", "dev": true, "requires": { "boom": "7.2.0" @@ -4315,7 +4522,7 @@ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "dev": true, "requires": { - "es5-ext": "0.10.41" + "es5-ext": "0.10.42" } }, "dashdash": { @@ -4710,9 +4917,9 @@ "dev": true }, "es5-ext": { - "version": "0.10.41", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.41.tgz", - "integrity": "sha512-MYK02wXfwTMie5TEJWPolgOsXEmz7wKCQaGzgmRjZOoV6VLG8I5dSv2bn6AOClXhK64gnSQTQ9W9MKvx87J4gw==", + "version": "0.10.42", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.42.tgz", + "integrity": "sha512-AJxO1rmPe1bDEfSR6TJ/FgMFYuTBhR5R57KW58iCkYACMyFbrkqVyzXSurYoScDGvgyMpk7uRF/lPUPPTmsRSA==", "dev": true, "requires": { "es6-iterator": "2.0.3", @@ -4733,7 +4940,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.41", + "es5-ext": "0.10.42", "es6-symbol": "3.1.1" } }, @@ -4744,7 +4951,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.41", + "es5-ext": "0.10.42", "es6-iterator": "2.0.3", "es6-set": "0.1.5", "es6-symbol": "3.1.1", @@ -4758,7 +4965,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.41", + "es5-ext": "0.10.42", "es6-iterator": "2.0.3", "es6-symbol": "3.1.1", "event-emitter": "0.3.5" @@ -4771,7 +4978,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.41" + "es5-ext": "0.10.42" } }, "es6-weak-map": { @@ -4781,7 +4988,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.41", + "es5-ext": "0.10.42", "es6-iterator": "2.0.3", "es6-symbol": "3.1.1" } @@ -4878,7 +5085,7 @@ "eslint-scope": "3.7.1", "eslint-visitor-keys": "1.0.0", "espree": "3.5.4", - "esquery": "1.0.0", + "esquery": "1.0.1", "esutils": "2.0.2", "file-entry-cache": "2.0.0", "functional-red-black-tree": "1.0.1", @@ -4899,7 +5106,7 @@ "path-is-inside": "1.0.2", "pluralize": "7.0.0", "progress": "2.0.0", - "regexpp": "1.0.1", + "regexpp": "1.1.0", "require-uncached": "1.0.3", "semver": "5.5.0", "strip-ansi": "4.0.0", @@ -5081,9 +5288,9 @@ } }, "esquery": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", - "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { "estraverse": "4.2.0" @@ -5123,7 +5330,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.41" + "es5-ext": "0.10.42" } }, "ewma": { @@ -5227,10 +5434,10 @@ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", "dev": true }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", "dev": true } } @@ -5247,9 +5454,9 @@ "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" }, "external-editor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz", - "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, "requires": { "chardet": "0.4.2", @@ -5370,6 +5577,12 @@ "requires": { "ms": "2.0.0" } + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true } } }, @@ -5513,13 +5726,15 @@ "dependencies": { "abbrev": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", + "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", "dev": true, "optional": true }, "ajv": { "version": "4.11.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", "dev": true, "optional": true, "requires": { @@ -5529,18 +5744,21 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "aproba": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", + "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", "dev": true, "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "dev": true, "optional": true, "requires": { @@ -5550,42 +5768,49 @@ }, "asn1": { "version": "0.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", "dev": true, "optional": true }, "assert-plus": { "version": "0.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", "dev": true, "optional": true }, "asynckit": { "version": "0.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true, "optional": true }, "aws-sign2": { "version": "0.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", "dev": true, "optional": true }, "aws4": { "version": "1.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", "dev": true, "optional": true }, "balanced-match": { "version": "0.4.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", "dev": true }, "bcrypt-pbkdf": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "dev": true, "optional": true, "requires": { @@ -5594,7 +5819,8 @@ }, "block-stream": { "version": "0.0.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "dev": true, "requires": { "inherits": "2.0.3" @@ -5602,7 +5828,8 @@ }, "boom": { "version": "2.10.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "dev": true, "requires": { "hoek": "2.16.3" @@ -5610,7 +5837,8 @@ }, "brace-expansion": { "version": "1.1.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", + "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", "dev": true, "requires": { "balanced-match": "0.4.2", @@ -5619,29 +5847,34 @@ }, "buffer-shims": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=", "dev": true }, "caseless": { "version": "0.12.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true, "optional": true }, "co": { "version": "4.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, "combined-stream": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "dev": true, "requires": { "delayed-stream": "1.0.0" @@ -5649,22 +5882,26 @@ }, "concat-map": { "version": "0.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true }, "core-util-is": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, "cryptiles": { "version": "2.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "dev": true, "requires": { "boom": "2.10.1" @@ -5672,7 +5909,8 @@ }, "dashdash": { "version": "1.14.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "optional": true, "requires": { @@ -5681,7 +5919,8 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true, "optional": true } @@ -5689,7 +5928,8 @@ }, "debug": { "version": "2.6.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", "dev": true, "optional": true, "requires": { @@ -5698,30 +5938,35 @@ }, "deep-extend": { "version": "0.4.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", "dev": true, "optional": true }, "delayed-stream": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, "delegates": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true, "optional": true }, "detect-libc": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.2.tgz", + "integrity": "sha1-ca1dIEvxempsqPRQxhRUBm70YeE=", "dev": true, "optional": true }, "ecc-jsbn": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "dev": true, "optional": true, "requires": { @@ -5730,24 +5975,28 @@ }, "extend": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", "dev": true, "optional": true }, "extsprintf": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", "dev": true }, "forever-agent": { "version": "0.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", "dev": true, "optional": true }, "form-data": { "version": "2.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "dev": true, "optional": true, "requires": { @@ -5758,12 +6007,14 @@ }, "fs.realpath": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "fstream": { "version": "1.0.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -5774,7 +6025,8 @@ }, "fstream-ignore": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", + "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", "dev": true, "optional": true, "requires": { @@ -5785,7 +6037,8 @@ }, "gauge": { "version": "2.7.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "optional": true, "requires": { @@ -5801,7 +6054,8 @@ }, "getpass": { "version": "0.1.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "optional": true, "requires": { @@ -5810,7 +6064,8 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true, "optional": true } @@ -5818,7 +6073,8 @@ }, "glob": { "version": "7.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { "fs.realpath": "1.0.0", @@ -5831,18 +6087,21 @@ }, "graceful-fs": { "version": "4.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, "har-schema": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", "dev": true, "optional": true }, "har-validator": { "version": "4.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", "dev": true, "optional": true, "requires": { @@ -5852,13 +6111,15 @@ }, "has-unicode": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true, "optional": true }, "hawk": { "version": "3.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "dev": true, "requires": { "boom": "2.10.1", @@ -5869,12 +6130,14 @@ }, "hoek": { "version": "2.16.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", "dev": true }, "http-signature": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "dev": true, "optional": true, "requires": { @@ -5885,7 +6148,8 @@ }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { "once": "1.4.0", @@ -5894,18 +6158,21 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "ini": { "version": "1.3.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { "number-is-nan": "1.0.1" @@ -5913,24 +6180,28 @@ }, "is-typedarray": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true, "optional": true }, "isarray": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isstream": { "version": "0.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true, "optional": true }, "jodid25519": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", + "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", "dev": true, "optional": true, "requires": { @@ -5939,19 +6210,22 @@ }, "jsbn": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true, "optional": true }, "json-schema": { "version": "0.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", "dev": true, "optional": true }, "json-stable-stringify": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "dev": true, "optional": true, "requires": { @@ -5960,19 +6234,22 @@ }, "json-stringify-safe": { "version": "5.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true, "optional": true }, "jsonify": { "version": "0.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", "dev": true, "optional": true }, "jsprim": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", + "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", "dev": true, "optional": true, "requires": { @@ -5984,7 +6261,8 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true, "optional": true } @@ -5992,12 +6270,14 @@ }, "mime-db": { "version": "1.27.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", + "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=", "dev": true }, "mime-types": { "version": "2.1.15", - "bundled": true, + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", + "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", "dev": true, "requires": { "mime-db": "1.27.0" @@ -6005,7 +6285,8 @@ }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { "brace-expansion": "1.1.7" @@ -6013,12 +6294,14 @@ }, "minimist": { "version": "0.0.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { "minimist": "0.0.8" @@ -6026,13 +6309,15 @@ }, "ms": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true, "optional": true }, "node-pre-gyp": { "version": "0.6.39", - "bundled": true, + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", + "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", "dev": true, "optional": true, "requires": { @@ -6051,7 +6336,8 @@ }, "nopt": { "version": "4.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "dev": true, "optional": true, "requires": { @@ -6061,7 +6347,8 @@ }, "npmlog": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", + "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", "dev": true, "optional": true, "requires": { @@ -6073,24 +6360,28 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "oauth-sign": { "version": "0.8.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", "dev": true, "optional": true }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true, "optional": true }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { "wrappy": "1.0.2" @@ -6098,19 +6389,22 @@ }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true, "optional": true }, "osenv": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", "dev": true, "optional": true, "requires": { @@ -6120,35 +6414,41 @@ }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "performance-now": { "version": "0.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", "dev": true, "optional": true }, "process-nextick-args": { "version": "1.0.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", "dev": true }, "punycode": { "version": "1.4.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true, "optional": true }, "qs": { "version": "6.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", "dev": true, "optional": true }, "rc": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", + "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", "dev": true, "optional": true, "requires": { @@ -6160,7 +6460,8 @@ "dependencies": { "minimist": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true, "optional": true } @@ -6168,7 +6469,8 @@ }, "readable-stream": { "version": "2.2.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", + "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", "dev": true, "requires": { "buffer-shims": "1.0.0", @@ -6182,7 +6484,8 @@ }, "request": { "version": "2.81.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", "dev": true, "optional": true, "requires": { @@ -6212,7 +6515,8 @@ }, "rimraf": { "version": "2.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", "dev": true, "requires": { "glob": "7.1.2" @@ -6220,30 +6524,35 @@ }, "safe-buffer": { "version": "5.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", + "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", "dev": true }, "semver": { "version": "5.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true, "optional": true }, "sntp": { "version": "1.0.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "dev": true, "requires": { "hoek": "2.16.3" @@ -6251,7 +6560,8 @@ }, "sshpk": { "version": "1.13.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", + "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", "dev": true, "optional": true, "requires": { @@ -6268,7 +6578,8 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true, "optional": true } @@ -6276,7 +6587,8 @@ }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { "code-point-at": "1.1.0", @@ -6286,7 +6598,8 @@ }, "string_decoder": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", + "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", "dev": true, "requires": { "safe-buffer": "5.0.1" @@ -6294,13 +6607,15 @@ }, "stringstream": { "version": "0.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", "dev": true, "optional": true }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { "ansi-regex": "2.1.1" @@ -6308,13 +6623,15 @@ }, "strip-json-comments": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true, "optional": true }, "tar": { "version": "2.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "dev": true, "requires": { "block-stream": "0.0.9", @@ -6324,7 +6641,8 @@ }, "tar-pack": { "version": "3.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz", + "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=", "dev": true, "optional": true, "requires": { @@ -6340,7 +6658,8 @@ }, "tough-cookie": { "version": "2.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", "dev": true, "optional": true, "requires": { @@ -6349,7 +6668,8 @@ }, "tunnel-agent": { "version": "0.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "optional": true, "requires": { @@ -6358,30 +6678,35 @@ }, "tweetnacl": { "version": "0.14.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "dev": true, "optional": true }, "uid-number": { "version": "0.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", "dev": true, "optional": true }, "util-deprecate": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, "uuid": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", "dev": true, "optional": true }, "verror": { "version": "1.3.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", + "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", "dev": true, "optional": true, "requires": { @@ -6390,7 +6715,8 @@ }, "wide-align": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "dev": true, "optional": true, "requires": { @@ -6399,7 +6725,8 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true } } @@ -6555,7 +6882,7 @@ "requires": { "axios": "0.18.0", "gcp-metadata": "0.6.3", - "gtoken": "2.2.0", + "gtoken": "2.3.0", "jws": "3.1.4", "lodash.isstring": "4.0.1", "lru-cache": "4.1.2", @@ -6563,9 +6890,9 @@ } }, "google-auto-auth": { - "version": "0.9.7", - "resolved": "https://registry.npmjs.org/google-auto-auth/-/google-auto-auth-0.9.7.tgz", - "integrity": "sha512-Nro7aIFrL2NP0G7PoGrJqXGMZj8AjdBOcbZXRRm/8T3w08NUHIiNN3dxpuUYzDsZizslH+c8e+7HXL8vh3JXTQ==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/google-auto-auth/-/google-auto-auth-0.10.0.tgz", + "integrity": "sha512-R6m473OqgZacPvlidJ0aownTlUWyLy654ugjKSXyi1ffIicXlXg3wMfse9T9zxqG6w01q6K1iG+b7dImMkVJ2Q==", "requires": { "async": "2.6.0", "gcp-metadata": "0.6.3", @@ -6578,7 +6905,7 @@ "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-1.0.2.tgz", "integrity": "sha512-+EuKr4CLlGsnXx4XIJIVkcKYrsa2xkAmCvxRhX2HsazJzUBAJ35wARGeApHUn4nNfPD03Vl057FskNr20VaCyg==", "requires": { - "node-forge": "0.7.4", + "node-forge": "0.7.5", "pify": "3.0.0" } }, @@ -6643,14 +6970,14 @@ "dev": true }, "gtoken": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-2.2.0.tgz", - "integrity": "sha512-tvQs8B1z5+I1FzMPZnq/OCuxTWFOkvy7cUJcpNdBOK2L7yEtPZTVCPtZU181sSDF+isUPebSqFTNTkIejFASAQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-2.3.0.tgz", + "integrity": "sha512-Jc9/8mV630cZE9FC5tIlJCZNdUjwunvlwOtCz6IDlaiB4Sz68ki29a1+q97sWTnTYroiuF9B135rod9zrQdHLw==", "requires": { "axios": "0.18.0", "google-p12-pem": "1.0.2", "jws": "3.1.4", - "mime": "2.2.0", + "mime": "2.2.2", "pify": "3.0.0" } }, @@ -6736,7 +7063,7 @@ "dev": true, "requires": { "error-ex": "1.3.1", - "json-parse-better-errors": "1.0.1" + "json-parse-better-errors": "1.0.2" } }, "path-type": { @@ -6829,9 +7156,9 @@ } }, "hapi": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/hapi/-/hapi-17.2.3.tgz", - "integrity": "sha512-e3Jm2xoZotUgsGAV/NTgg1EOXDeZFwbGr8ruUv9yH/DGyGl+NydEBOR7o28N2YbUs8WhBgi+TSVFL+2vtAe9xQ==", + "version": "17.3.1", + "resolved": "https://registry.npmjs.org/hapi/-/hapi-17.3.1.tgz", + "integrity": "sha512-XsgmyBJ9oqAXbHS6Jv0zyfdlLDNTcUHA+P53g7O9iZxVAfb0Qkld0VTRm+DVN7pvcMYv8PJRykiupgmCjFehcw==", "dev": true, "requires": { "accept": "3.0.2", @@ -6840,14 +7167,14 @@ "bounce": "1.2.0", "call": "5.0.1", "catbox": "10.0.2", - "catbox-memory": "3.1.1", + "catbox-memory": "3.1.2", "heavy": "6.1.0", "hoek": "5.0.3", "joi": "13.1.2", "mimos": "4.0.0", "podium": "3.1.2", "shot": "4.0.5", - "statehood": "6.0.5", + "statehood": "6.0.6", "subtext": "6.0.7", "teamwork": "3.0.1", "topo": "3.0.0" @@ -7025,7 +7352,7 @@ "dev": true, "requires": { "deep-equal": "1.0.1", - "http-errors": "1.6.2" + "http-errors": "1.6.3" } }, "http-cache-semantics": { @@ -7041,23 +7368,15 @@ "dev": true }, "http-errors": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", - "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, "requires": { - "depd": "1.1.1", + "depd": "1.1.2", "inherits": "2.0.3", - "setprototypeof": "1.0.3", - "statuses": "1.4.0" - }, - "dependencies": { - "depd": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", - "dev": true - } + "setprototypeof": "1.1.0", + "statuses": "1.5.0" } }, "http-signature": { @@ -7183,7 +7502,7 @@ "integrity": "sha512-STx5orGQU1gfrkoI/fMU7lX6CSP7LBGO10gXNgOZhwKhUqbtNjCkYSewJtNnLmWP1tAGN6oyEpG1HFPw5vpa5Q==", "dev": true, "requires": { - "moment": "2.21.0", + "moment": "2.22.0", "sanitize-html": "1.18.2" } }, @@ -7197,7 +7516,7 @@ "chalk": "2.3.2", "cli-cursor": "2.1.0", "cli-width": "2.2.0", - "external-editor": "2.1.0", + "external-editor": "2.2.0", "figures": "2.0.0", "lodash": "4.17.5", "mute-stream": "0.0.7", @@ -7529,9 +7848,9 @@ "dev": true }, "is-stream-ended": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.3.tgz", - "integrity": "sha1-oEc7Jnx1ZjVIa+7cfjNE5UnRUqw=" + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz", + "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==" }, "is-supported-regexp-flag": { "version": "1.0.1", @@ -7702,7 +8021,7 @@ "htmlparser2": "3.8.3", "js-yaml": "3.4.6", "jscs-jsdoc": "2.0.0", - "jscs-preset-wikimedia": "1.0.0", + "jscs-preset-wikimedia": "1.0.1", "jsonlint": "1.6.3", "lodash": "3.10.1", "minimatch": "3.0.4", @@ -7895,9 +8214,9 @@ } }, "jscs-preset-wikimedia": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/jscs-preset-wikimedia/-/jscs-preset-wikimedia-1.0.0.tgz", - "integrity": "sha1-//VjNCA4/C6IJre7cwnDrjQG/H4=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/jscs-preset-wikimedia/-/jscs-preset-wikimedia-1.0.1.tgz", + "integrity": "sha512-RWqu6IYSUlnYuCRCF0obCOHjJV0vhpLcvKbauwxmLQoZ0PiXDTWBYlfpsEfdhg7pmREAEwrARfDRz5qWD6qknA==", "dev": true }, "jsdoc": { @@ -8056,9 +8375,9 @@ "dev": true }, "json-parse-better-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz", - "integrity": "sha512-xyQpxeWWMKyJps9CuGJYeng6ssI5bpqS9ltQpdVQ90t4ql6NdnxFKh95JcRt2cun/DjMVNrdjniLPuMA69xmCw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, "json-schema": { @@ -8211,7 +8530,7 @@ "escape-html": "1.0.3", "fresh": "0.5.2", "http-assert": "1.3.0", - "http-errors": "1.6.2", + "http-errors": "1.6.3", "is-generator-function": "1.0.7", "koa-compose": "4.0.0", "koa-convert": "1.2.0", @@ -8220,7 +8539,7 @@ "on-finished": "2.3.0", "only": "0.0.2", "parseurl": "1.3.2", - "statuses": "1.4.0", + "statuses": "1.5.0", "type-is": "1.6.16", "vary": "1.1.2" } @@ -8752,9 +9071,9 @@ } }, "mime": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.2.0.tgz", - "integrity": "sha512-0Qz9uF1ATtl8RKJG4VRfOymh7PyEor6NbrI/61lRfuRe4vx9SNATrvAeTj2EWVRKjEQGskrzWkJBBY5NbaVHIA==" + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.2.2.tgz", + "integrity": "sha512-A7PDg4s48MkqFEcYg2b069m3DXOEq7hx+9q9rIFrSSYfzsh35GX+LOVMQ8Au0ko7d8bSQCIAuzkjp0vCtwENlQ==" }, "mime-db": { "version": "1.33.0", @@ -8886,9 +9205,9 @@ "dev": true }, "moment": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.21.0.tgz", - "integrity": "sha512-TCZ36BjURTeFTM/CwRcViQlfkMvL1/vFISuNLO5GkcVm1+QHfbSiNqZuWeMFjj1/3+uAjXswgRk30j1kkLYJBQ==", + "version": "2.22.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.0.tgz", + "integrity": "sha512-1muXCh8jb1N/gHRbn9VDUBr0GYb8A/aVcHlII9QSB68a50spqEVLIGN6KVmCOnSvJrUhC0edGgKU5ofnGXdYdg==", "dev": true }, "ms": { @@ -9013,9 +9332,9 @@ "dev": true }, "nigel": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/nigel/-/nigel-3.0.0.tgz", - "integrity": "sha512-ufFVFCe1zS/pfIQzQNa5uJxB8v8IcVTUn1zyPvQwb4CQGRxxBfdQPSXpEnI6ZzIwbV5L+GuAoRhYgcVSvTO7fA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/nigel/-/nigel-3.0.1.tgz", + "integrity": "sha512-kCVtUG9JyD//tsYrZY+/Y+2gUrANVSba8y23QkM5Znx0FOxlnl9Z4OVPBODmstKWTOvigfTO+Va1VPOu3eWSOQ==", "dev": true, "requires": { "hoek": "5.0.3", @@ -9061,9 +9380,9 @@ } }, "node-forge": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.4.tgz", - "integrity": "sha512-8Df0906+tq/omxuCZD6PqhPaQDYuyJ1d+VITgxoIA8zvQd1ru+nMJcDChHH324MWitIgbVkAkQoGEEVJNpn/PA==" + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz", + "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==" }, "nomnom": { "version": "1.8.1", @@ -9204,7 +9523,8 @@ "dependencies": { "align-text": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, "requires": { "kind-of": "3.2.2", @@ -9214,22 +9534,26 @@ }, "amdefine": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", "dev": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "ansi-styles": { "version": "2.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, "append-transform": { "version": "0.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", "dev": true, "requires": { "default-require-extensions": "1.0.0" @@ -9237,12 +9561,14 @@ }, "archy": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", "dev": true }, "arr-diff": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { "arr-flatten": "1.1.0" @@ -9250,42 +9576,50 @@ }, "arr-flatten": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, "arr-union": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, "array-unique": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", "dev": true }, "arrify": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, "assign-symbols": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true }, "async": { "version": "1.5.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", "dev": true }, "atob": { "version": "2.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz", + "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=", "dev": true }, "babel-code-frame": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { "chalk": "1.1.3", @@ -9295,7 +9629,8 @@ }, "babel-generator": { "version": "6.26.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "dev": true, "requires": { "babel-messages": "6.23.0", @@ -9310,7 +9645,8 @@ }, "babel-messages": { "version": "6.23.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { "babel-runtime": "6.26.0" @@ -9318,7 +9654,8 @@ }, "babel-runtime": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { "core-js": "2.5.3", @@ -9327,7 +9664,8 @@ }, "babel-template": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { "babel-runtime": "6.26.0", @@ -9339,7 +9677,8 @@ }, "babel-traverse": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { "babel-code-frame": "6.26.0", @@ -9355,7 +9694,8 @@ }, "babel-types": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { "babel-runtime": "6.26.0", @@ -9366,17 +9706,20 @@ }, "babylon": { "version": "6.18.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", "dev": true }, "balanced-match": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "base": { "version": "0.11.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { "cache-base": "1.0.1", @@ -9390,7 +9733,8 @@ "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { "is-descriptor": "1.0.2" @@ -9398,14 +9742,16 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "brace-expansion": { "version": "1.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { "balanced-match": "1.0.0", @@ -9414,7 +9760,8 @@ }, "braces": { "version": "1.8.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { "expand-range": "1.8.2", @@ -9424,12 +9771,14 @@ }, "builtin-modules": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, "cache-base": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { "collection-visit": "1.0.0", @@ -9445,14 +9794,16 @@ "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "caching-transform": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", + "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", "dev": true, "requires": { "md5-hex": "1.3.0", @@ -9462,13 +9813,15 @@ }, "camelcase": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", "dev": true, "optional": true }, "center-align": { "version": "0.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "dev": true, "optional": true, "requires": { @@ -9478,7 +9831,8 @@ }, "chalk": { "version": "1.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { "ansi-styles": "2.2.1", @@ -9490,7 +9844,8 @@ }, "class-utils": { "version": "0.3.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { "arr-union": "3.1.0", @@ -9501,7 +9856,8 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "0.1.6" @@ -9509,7 +9865,8 @@ }, "is-accessor-descriptor": { "version": "0.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { "kind-of": "3.2.2" @@ -9517,7 +9874,8 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "1.1.6" @@ -9527,7 +9885,8 @@ }, "is-data-descriptor": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { "kind-of": "3.2.2" @@ -9535,7 +9894,8 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "1.1.6" @@ -9545,7 +9905,8 @@ }, "is-descriptor": { "version": "0.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { "is-accessor-descriptor": "0.1.6", @@ -9555,19 +9916,22 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, "kind-of": { "version": "5.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true } } }, "cliui": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "dev": true, "optional": true, "requires": { @@ -9578,7 +9942,8 @@ "dependencies": { "wordwrap": { "version": "0.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", "dev": true, "optional": true } @@ -9586,12 +9951,14 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, "collection-visit": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { "map-visit": "1.0.0", @@ -9600,37 +9967,44 @@ }, "commondir": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, "component-emitter": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", "dev": true }, "concat-map": { "version": "0.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "convert-source-map": { "version": "1.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", "dev": true }, "copy-descriptor": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true }, "core-js": { "version": "2.5.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", "dev": true }, "cross-spawn": { "version": "4.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", "dev": true, "requires": { "lru-cache": "4.1.2", @@ -9639,7 +10013,8 @@ }, "debug": { "version": "2.6.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" @@ -9647,22 +10022,26 @@ }, "debug-log": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", + "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", "dev": true }, "decamelize": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "decode-uri-component": { "version": "0.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, "default-require-extensions": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", "dev": true, "requires": { "strip-bom": "2.0.0" @@ -9670,7 +10049,8 @@ }, "define-property": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { "is-descriptor": "1.0.2", @@ -9679,14 +10059,16 @@ "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "detect-indent": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { "repeating": "2.0.1" @@ -9694,7 +10076,8 @@ }, "error-ex": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "dev": true, "requires": { "is-arrayish": "0.2.1" @@ -9702,17 +10085,20 @@ }, "escape-string-regexp": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "esutils": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, "execa": { "version": "0.7.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { "cross-spawn": "5.1.0", @@ -9726,7 +10112,8 @@ "dependencies": { "cross-spawn": { "version": "5.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { "lru-cache": "4.1.2", @@ -9738,7 +10125,8 @@ }, "expand-brackets": { "version": "0.1.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { "is-posix-bracket": "0.1.1" @@ -9746,7 +10134,8 @@ }, "expand-range": { "version": "1.8.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { "fill-range": "2.2.3" @@ -9754,7 +10143,8 @@ }, "extend-shallow": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { "assign-symbols": "1.0.0", @@ -9763,7 +10153,8 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { "is-plain-object": "2.0.4" @@ -9773,7 +10164,8 @@ }, "extglob": { "version": "0.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { "is-extglob": "1.0.0" @@ -9781,12 +10173,14 @@ }, "filename-regex": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", "dev": true }, "fill-range": { "version": "2.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", "dev": true, "requires": { "is-number": "2.1.0", @@ -9798,7 +10192,8 @@ }, "find-cache-dir": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", "dev": true, "requires": { "commondir": "1.0.1", @@ -9808,7 +10203,8 @@ }, "find-up": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { "locate-path": "2.0.0" @@ -9816,12 +10212,14 @@ }, "for-in": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true }, "for-own": { "version": "0.1.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { "for-in": "1.0.2" @@ -9829,7 +10227,8 @@ }, "foreground-child": { "version": "1.5.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", "dev": true, "requires": { "cross-spawn": "4.0.2", @@ -9838,7 +10237,8 @@ }, "fragment-cache": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { "map-cache": "0.2.2" @@ -9846,27 +10246,32 @@ }, "fs.realpath": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "get-caller-file": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", "dev": true }, "get-stream": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true }, "get-value": { "version": "2.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true }, "glob": { "version": "7.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { "fs.realpath": "1.0.0", @@ -9879,7 +10284,8 @@ }, "glob-base": { "version": "0.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { "glob-parent": "2.0.0", @@ -9888,7 +10294,8 @@ }, "glob-parent": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { "is-glob": "2.0.1" @@ -9896,17 +10303,20 @@ }, "globals": { "version": "9.18.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", "dev": true }, "graceful-fs": { "version": "4.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, "handlebars": { "version": "4.0.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { "async": "1.5.2", @@ -9917,7 +10327,8 @@ "dependencies": { "source-map": { "version": "0.4.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { "amdefine": "1.0.1" @@ -9927,7 +10338,8 @@ }, "has-ansi": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { "ansi-regex": "2.1.1" @@ -9935,12 +10347,14 @@ }, "has-flag": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", "dev": true }, "has-value": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { "get-value": "2.0.6", @@ -9950,14 +10364,16 @@ "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "has-values": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { "is-number": "3.0.0", @@ -9966,7 +10382,8 @@ "dependencies": { "is-number": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { "kind-of": "3.2.2" @@ -9974,7 +10391,8 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "1.1.6" @@ -9984,7 +10402,8 @@ }, "kind-of": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { "is-buffer": "1.1.6" @@ -9994,17 +10413,20 @@ }, "hosted-git-info": { "version": "2.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", + "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", "dev": true }, "imurmurhash": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { "once": "1.4.0", @@ -10013,12 +10435,14 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "invariant": { "version": "2.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.3.tgz", + "integrity": "sha512-7Z5PPegwDTyjbaeCnV0efcyS6vdKAU51kpEmS7QFib3P4822l8ICYyMn7qvJnc+WzLoDsuI9gPMKbJ8pCu8XtA==", "dev": true, "requires": { "loose-envify": "1.3.1" @@ -10026,12 +10450,14 @@ }, "invert-kv": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", "dev": true }, "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { "kind-of": "6.0.2" @@ -10039,24 +10465,28 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } }, "is-arrayish": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, "is-buffer": { "version": "1.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, "is-builtin-module": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { "builtin-modules": "1.1.1" @@ -10064,7 +10494,8 @@ }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { "kind-of": "6.0.2" @@ -10072,14 +10503,16 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } }, "is-descriptor": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", @@ -10089,19 +10522,22 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } }, "is-dotfile": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", "dev": true }, "is-equal-shallow": { "version": "0.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { "is-primitive": "2.0.0" @@ -10109,17 +10545,20 @@ }, "is-extendable": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true }, "is-extglob": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", "dev": true }, "is-finite": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { "number-is-nan": "1.0.1" @@ -10127,12 +10566,14 @@ }, "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "is-glob": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { "is-extglob": "1.0.0" @@ -10140,7 +10581,8 @@ }, "is-number": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { "kind-of": "3.2.2" @@ -10148,7 +10590,8 @@ }, "is-odd": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", "dev": true, "requires": { "is-number": "4.0.0" @@ -10156,14 +10599,16 @@ "dependencies": { "is-number": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", "dev": true } } }, "is-plain-object": { "version": "2.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { "isobject": "3.0.1" @@ -10171,49 +10616,58 @@ "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "is-posix-bracket": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", "dev": true }, "is-primitive": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", "dev": true }, "is-stream": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "is-utf8": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, "is-windows": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true }, "isarray": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "isobject": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "requires": { "isarray": "1.0.0" @@ -10221,12 +10675,14 @@ }, "istanbul-lib-coverage": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", + "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==", "dev": true }, "istanbul-lib-hook": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", + "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", "dev": true, "requires": { "append-transform": "0.4.0" @@ -10234,7 +10690,8 @@ }, "istanbul-lib-instrument": { "version": "1.10.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", + "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", "dev": true, "requires": { "babel-generator": "6.26.1", @@ -10248,7 +10705,8 @@ }, "istanbul-lib-report": { "version": "1.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz", + "integrity": "sha512-D4jVbMDtT2dPmloPJS/rmeP626N5Pr3Rp+SovrPn1+zPChGHcggd/0sL29jnbm4oK9W0wHjCRsdch9oLd7cm6g==", "dev": true, "requires": { "istanbul-lib-coverage": "1.2.0", @@ -10259,7 +10717,8 @@ "dependencies": { "supports-color": { "version": "3.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { "has-flag": "1.0.0" @@ -10269,7 +10728,8 @@ }, "istanbul-lib-source-maps": { "version": "1.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz", + "integrity": "sha512-fDa0hwU/5sDXwAklXgAoCJCOsFsBplVQ6WBldz5UwaqOzmDhUK4nfuR7/G//G2lERlblUNJB8P6e8cXq3a7MlA==", "dev": true, "requires": { "debug": "3.1.0", @@ -10281,7 +10741,8 @@ "dependencies": { "debug": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { "ms": "2.0.0" @@ -10291,7 +10752,8 @@ }, "istanbul-reports": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.3.0.tgz", + "integrity": "sha512-y2Z2IMqE1gefWUaVjrBm0mSKvUkaBy9Vqz8iwr/r40Y9hBbIteH5wqHG/9DLTfJ9xUnUT2j7A3+VVJ6EaYBllA==", "dev": true, "requires": { "handlebars": "4.0.11" @@ -10299,17 +10761,20 @@ }, "js-tokens": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", "dev": true }, "jsesc": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", "dev": true }, "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "1.1.6" @@ -10317,13 +10782,15 @@ }, "lazy-cache": { "version": "1.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", "dev": true, "optional": true }, "lcid": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { "invert-kv": "1.0.0" @@ -10331,7 +10798,8 @@ }, "load-json-file": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -10343,7 +10811,8 @@ }, "locate-path": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { "p-locate": "2.0.0", @@ -10352,24 +10821,28 @@ "dependencies": { "path-exists": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true } } }, "lodash": { "version": "4.17.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", "dev": true }, "longest": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", "dev": true }, "loose-envify": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "dev": true, "requires": { "js-tokens": "3.0.2" @@ -10377,7 +10850,8 @@ }, "lru-cache": { "version": "4.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz", + "integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==", "dev": true, "requires": { "pseudomap": "1.0.2", @@ -10386,12 +10860,14 @@ }, "map-cache": { "version": "0.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, "map-visit": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { "object-visit": "1.0.1" @@ -10399,7 +10875,8 @@ }, "md5-hex": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", + "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "dev": true, "requires": { "md5-o-matic": "0.1.1" @@ -10407,12 +10884,14 @@ }, "md5-o-matic": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", + "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=", "dev": true }, "mem": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { "mimic-fn": "1.2.0" @@ -10420,7 +10899,8 @@ }, "merge-source-map": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", "dev": true, "requires": { "source-map": "0.6.1" @@ -10428,14 +10908,16 @@ "dependencies": { "source-map": { "version": "0.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "micromatch": { "version": "2.3.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { "arr-diff": "2.0.0", @@ -10455,12 +10937,14 @@ }, "mimic-fn": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { "brace-expansion": "1.1.11" @@ -10468,12 +10952,14 @@ }, "minimist": { "version": "0.0.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, "mixin-deep": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "dev": true, "requires": { "for-in": "1.0.2", @@ -10482,7 +10968,8 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { "is-plain-object": "2.0.4" @@ -10492,7 +10979,8 @@ }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { "minimist": "0.0.8" @@ -10500,12 +10988,14 @@ }, "ms": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "nanomatch": { "version": "1.2.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", "dev": true, "requires": { "arr-diff": "4.0.0", @@ -10524,24 +11014,28 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, "array-unique": { "version": "0.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } }, "normalize-package-data": { "version": "2.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { "hosted-git-info": "2.6.0", @@ -10552,7 +11046,8 @@ }, "normalize-path": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { "remove-trailing-separator": "1.1.0" @@ -10560,7 +11055,8 @@ }, "npm-run-path": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { "path-key": "2.0.1" @@ -10568,17 +11064,20 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, "object-copy": { "version": "0.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { "copy-descriptor": "0.1.1", @@ -10588,7 +11087,8 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "0.1.6" @@ -10596,7 +11096,8 @@ }, "is-accessor-descriptor": { "version": "0.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { "kind-of": "3.2.2" @@ -10604,7 +11105,8 @@ }, "is-data-descriptor": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { "kind-of": "3.2.2" @@ -10612,7 +11114,8 @@ }, "is-descriptor": { "version": "0.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { "is-accessor-descriptor": "0.1.6", @@ -10622,7 +11125,8 @@ "dependencies": { "kind-of": { "version": "5.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true } } @@ -10631,7 +11135,8 @@ }, "object-visit": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { "isobject": "3.0.1" @@ -10639,14 +11144,16 @@ "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "object.omit": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { "for-own": "0.1.5", @@ -10655,7 +11162,8 @@ }, "object.pick": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { "isobject": "3.0.1" @@ -10663,14 +11171,16 @@ "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { "wrappy": "1.0.2" @@ -10678,7 +11188,8 @@ }, "optimist": { "version": "0.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { "minimist": "0.0.8", @@ -10687,12 +11198,14 @@ }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, "os-locale": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { "execa": "0.7.0", @@ -10702,12 +11215,14 @@ }, "p-finally": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, "p-limit": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", + "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", "dev": true, "requires": { "p-try": "1.0.0" @@ -10715,7 +11230,8 @@ }, "p-locate": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { "p-limit": "1.2.0" @@ -10723,12 +11239,14 @@ }, "p-try": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, "parse-glob": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "requires": { "glob-base": "0.3.0", @@ -10739,7 +11257,8 @@ }, "parse-json": { "version": "2.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { "error-ex": "1.3.1" @@ -10747,12 +11266,14 @@ }, "pascalcase": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true }, "path-exists": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { "pinkie-promise": "2.0.1" @@ -10760,22 +11281,26 @@ }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "path-key": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, "path-parse": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", "dev": true }, "path-type": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -10785,17 +11310,20 @@ }, "pify": { "version": "2.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, "pinkie": { "version": "2.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", "dev": true }, "pinkie-promise": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { "pinkie": "2.0.4" @@ -10803,7 +11331,8 @@ }, "pkg-dir": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "dev": true, "requires": { "find-up": "1.1.2" @@ -10811,7 +11340,8 @@ "dependencies": { "find-up": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { "path-exists": "2.1.0", @@ -10822,22 +11352,26 @@ }, "posix-character-classes": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, "preserve": { "version": "0.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", "dev": true }, "pseudomap": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, "randomatic": { "version": "1.1.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", "dev": true, "requires": { "is-number": "3.0.0", @@ -10846,7 +11380,8 @@ "dependencies": { "is-number": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { "kind-of": "3.2.2" @@ -10854,7 +11389,8 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "1.1.6" @@ -10864,7 +11400,8 @@ }, "kind-of": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { "is-buffer": "1.1.6" @@ -10874,7 +11411,8 @@ }, "read-pkg": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { "load-json-file": "1.1.0", @@ -10884,7 +11422,8 @@ }, "read-pkg-up": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { "find-up": "1.1.2", @@ -10893,7 +11432,8 @@ "dependencies": { "find-up": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { "path-exists": "2.1.0", @@ -10904,12 +11444,14 @@ }, "regenerator-runtime": { "version": "0.11.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true }, "regex-cache": { "version": "0.4.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { "is-equal-shallow": "0.1.3" @@ -10917,7 +11459,8 @@ }, "regex-not": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { "extend-shallow": "3.0.2", @@ -10926,22 +11469,26 @@ }, "remove-trailing-separator": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", "dev": true }, "repeat-element": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", "dev": true }, "repeat-string": { "version": "1.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, "repeating": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { "is-finite": "1.0.2" @@ -10949,32 +11496,38 @@ }, "require-directory": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, "require-main-filename": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", "dev": true }, "resolve-from": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", "dev": true }, "resolve-url": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, "ret": { "version": "0.1.15", - "bundled": true, + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, "right-align": { "version": "0.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "dev": true, "optional": true, "requires": { @@ -10983,7 +11536,8 @@ }, "rimraf": { "version": "2.6.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { "glob": "7.1.2" @@ -10991,7 +11545,8 @@ }, "safe-regex": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { "ret": "0.1.15" @@ -10999,17 +11554,20 @@ }, "semver": { "version": "5.5.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", "dev": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, "set-value": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "dev": true, "requires": { "extend-shallow": "2.0.1", @@ -11020,7 +11578,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "0.1.1" @@ -11030,7 +11589,8 @@ }, "shebang-command": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { "shebang-regex": "1.0.0" @@ -11038,22 +11598,26 @@ }, "shebang-regex": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, "slide": { "version": "1.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", "dev": true }, "snapdragon": { "version": "0.8.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { "base": "0.11.2", @@ -11068,7 +11632,8 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "0.1.6" @@ -11076,7 +11641,8 @@ }, "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "0.1.1" @@ -11084,7 +11650,8 @@ }, "is-accessor-descriptor": { "version": "0.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { "kind-of": "3.2.2" @@ -11092,7 +11659,8 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "1.1.6" @@ -11102,7 +11670,8 @@ }, "is-data-descriptor": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { "kind-of": "3.2.2" @@ -11110,7 +11679,8 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "1.1.6" @@ -11120,7 +11690,8 @@ }, "is-descriptor": { "version": "0.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { "is-accessor-descriptor": "0.1.6", @@ -11130,14 +11701,16 @@ }, "kind-of": { "version": "5.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true } } }, "snapdragon-node": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { "define-property": "1.0.0", @@ -11147,7 +11720,8 @@ "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { "is-descriptor": "1.0.2" @@ -11155,14 +11729,16 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "snapdragon-util": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { "kind-of": "3.2.2" @@ -11170,12 +11746,14 @@ }, "source-map": { "version": "0.5.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, "source-map-resolve": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", "dev": true, "requires": { "atob": "2.0.3", @@ -11187,12 +11765,14 @@ }, "source-map-url": { "version": "0.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, "spawn-wrap": { "version": "1.4.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", + "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", "dev": true, "requires": { "foreground-child": "1.5.6", @@ -11205,7 +11785,8 @@ }, "spdx-correct": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "dev": true, "requires": { "spdx-expression-parse": "3.0.0", @@ -11214,12 +11795,14 @@ }, "spdx-exceptions": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", "dev": true }, "spdx-expression-parse": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { "spdx-exceptions": "2.1.0", @@ -11228,12 +11811,14 @@ }, "spdx-license-ids": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", "dev": true }, "split-string": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { "extend-shallow": "3.0.2" @@ -11241,7 +11826,8 @@ }, "static-extend": { "version": "0.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { "define-property": "0.2.5", @@ -11250,7 +11836,8 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "0.1.6" @@ -11258,7 +11845,8 @@ }, "is-accessor-descriptor": { "version": "0.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { "kind-of": "3.2.2" @@ -11266,7 +11854,8 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "1.1.6" @@ -11276,7 +11865,8 @@ }, "is-data-descriptor": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { "kind-of": "3.2.2" @@ -11284,7 +11874,8 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "1.1.6" @@ -11294,7 +11885,8 @@ }, "is-descriptor": { "version": "0.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { "is-accessor-descriptor": "0.1.6", @@ -11304,14 +11896,16 @@ }, "kind-of": { "version": "5.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true } } }, "string-width": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { "is-fullwidth-code-point": "2.0.0", @@ -11320,12 +11914,14 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "strip-ansi": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { "ansi-regex": "3.0.0" @@ -11335,7 +11931,8 @@ }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { "ansi-regex": "2.1.1" @@ -11343,7 +11940,8 @@ }, "strip-bom": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { "is-utf8": "0.2.1" @@ -11351,17 +11949,20 @@ }, "strip-eof": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, "supports-color": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, "test-exclude": { "version": "4.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", + "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", "dev": true, "requires": { "arrify": "1.0.1", @@ -11373,17 +11974,20 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, "array-unique": { "version": "0.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, "braces": { "version": "2.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz", + "integrity": "sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ==", "dev": true, "requires": { "arr-flatten": "1.1.0", @@ -11402,7 +12006,8 @@ "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { "is-descriptor": "1.0.2" @@ -11410,7 +12015,8 @@ }, "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "0.1.1" @@ -11420,7 +12026,8 @@ }, "expand-brackets": { "version": "2.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { "debug": "2.6.9", @@ -11434,7 +12041,8 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "0.1.6" @@ -11442,7 +12050,8 @@ }, "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "0.1.1" @@ -11450,7 +12059,8 @@ }, "is-descriptor": { "version": "0.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { "is-accessor-descriptor": "0.1.6", @@ -11460,14 +12070,16 @@ }, "kind-of": { "version": "5.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true } } }, "extglob": { "version": "2.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { "array-unique": "0.3.2", @@ -11482,7 +12094,8 @@ "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { "is-descriptor": "1.0.2" @@ -11490,7 +12103,8 @@ }, "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "0.1.1" @@ -11500,7 +12114,8 @@ }, "fill-range": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { "extend-shallow": "2.0.1", @@ -11511,7 +12126,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "0.1.1" @@ -11521,7 +12137,8 @@ }, "is-accessor-descriptor": { "version": "0.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { "kind-of": "3.2.2" @@ -11529,7 +12146,8 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "1.1.6" @@ -11539,7 +12157,8 @@ }, "is-data-descriptor": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { "kind-of": "3.2.2" @@ -11547,7 +12166,8 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "1.1.6" @@ -11557,7 +12177,8 @@ }, "is-number": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { "kind-of": "3.2.2" @@ -11565,7 +12186,8 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "1.1.6" @@ -11575,17 +12197,20 @@ }, "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true }, "micromatch": { "version": "3.1.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.9.tgz", + "integrity": "sha512-SlIz6sv5UPaAVVFRKodKjCg48EbNoIhgetzfK/Cy0v5U52Z6zB136M8tp0UC9jM53LYbmIRihJszvvqpKkfm9g==", "dev": true, "requires": { "arr-diff": "4.0.0", @@ -11607,12 +12232,14 @@ }, "to-fast-properties": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", "dev": true }, "to-object-path": { "version": "0.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { "kind-of": "3.2.2" @@ -11620,7 +12247,8 @@ }, "to-regex": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { "define-property": "2.0.2", @@ -11631,7 +12259,8 @@ }, "to-regex-range": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { "is-number": "3.0.0", @@ -11640,7 +12269,8 @@ "dependencies": { "is-number": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { "kind-of": "3.2.2" @@ -11650,12 +12280,14 @@ }, "trim-right": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "dev": true }, "uglify-js": { "version": "2.8.29", - "bundled": true, + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "dev": true, "optional": true, "requires": { @@ -11666,7 +12298,8 @@ "dependencies": { "yargs": { "version": "3.10.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "dev": true, "optional": true, "requires": { @@ -11680,13 +12313,15 @@ }, "uglify-to-browserify": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", "dev": true, "optional": true }, "union-value": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "dev": true, "requires": { "arr-union": "3.1.0", @@ -11697,7 +12332,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "0.1.1" @@ -11705,7 +12341,8 @@ }, "set-value": { "version": "0.4.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "dev": true, "requires": { "extend-shallow": "2.0.1", @@ -11718,7 +12355,8 @@ }, "unset-value": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { "has-value": "0.3.1", @@ -11727,7 +12365,8 @@ "dependencies": { "has-value": { "version": "0.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { "get-value": "2.0.6", @@ -11737,7 +12376,8 @@ "dependencies": { "isobject": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "requires": { "isarray": "1.0.0" @@ -11747,24 +12387,28 @@ }, "has-values": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true }, "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "urix": { "version": "0.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, "use": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", "dev": true, "requires": { "kind-of": "6.0.2" @@ -11772,14 +12416,16 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } }, "validate-npm-package-license": { "version": "3.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", + "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "dev": true, "requires": { "spdx-correct": "3.0.0", @@ -11788,7 +12434,8 @@ }, "which": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true, "requires": { "isexe": "2.0.0" @@ -11796,23 +12443,27 @@ }, "which-module": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, "window-size": { "version": "0.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", "dev": true }, "wrap-ansi": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { "string-width": "1.0.2", @@ -11821,7 +12472,8 @@ "dependencies": { "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { "number-is-nan": "1.0.1" @@ -11829,7 +12481,8 @@ }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { "code-point-at": "1.1.0", @@ -11841,12 +12494,14 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "write-file-atomic": { "version": "1.3.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", + "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -11856,17 +12511,20 @@ }, "y18n": { "version": "3.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", "dev": true }, "yallist": { "version": "2.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, "yargs": { "version": "11.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", + "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", "dev": true, "requires": { "cliui": "4.0.0", @@ -11885,17 +12543,20 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "camelcase": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true }, "cliui": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.0.0.tgz", + "integrity": "sha512-nY3W5Gu2racvdDk//ELReY+dHjb9PlIcVDFXP72nVIhq2Gy3LuVXYwJoPVudwQnv1shtohpgkdCKT2YaKY0CKw==", "dev": true, "requires": { "string-width": "2.1.1", @@ -11905,7 +12566,8 @@ }, "strip-ansi": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { "ansi-regex": "3.0.0" @@ -11913,7 +12575,8 @@ }, "yargs-parser": { "version": "9.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", + "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "dev": true, "requires": { "camelcase": "4.1.0" @@ -11923,7 +12586,8 @@ }, "yargs-parser": { "version": "8.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", + "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", "dev": true, "requires": { "camelcase": "4.1.0" @@ -11931,7 +12595,8 @@ "dependencies": { "camelcase": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true } } @@ -12315,9 +12980,9 @@ "requires": { "b64": "4.0.0", "boom": "7.2.0", - "content": "4.0.4", + "content": "4.0.5", "hoek": "5.0.3", - "nigel": "3.0.0" + "nigel": "3.0.1" }, "dependencies": { "boom": { @@ -12392,7 +13057,7 @@ "dev": true, "requires": { "error-ex": "1.3.1", - "json-parse-better-errors": "1.0.1" + "json-parse-better-errors": "1.0.2" } } } @@ -12465,9 +13130,9 @@ } }, "power-assert": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/power-assert/-/power-assert-1.4.4.tgz", - "integrity": "sha1-kpXqdDcZb1pgH95CDwQmMRhtdRc=", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/power-assert/-/power-assert-1.5.0.tgz", + "integrity": "sha512-WaWSw+Ts283o6dzxW1BxIxoaHok7aSSGx4SaR6dW62Pk31ynv9DERDieuZpPYv5XaJ+H+zdcOaJQ+PvlasAOVw==", "dev": true, "requires": { "define-properties": "1.1.2", @@ -12791,6 +13456,32 @@ "http-errors": "1.6.2", "iconv-lite": "0.4.19", "unpipe": "1.0.0" + }, + "dependencies": { + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", + "dev": true + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "dev": true, + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.5.0" + } + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", + "dev": true + } } }, "rc": { @@ -12912,9 +13603,9 @@ } }, "regexpp": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.0.1.tgz", - "integrity": "sha512-8Ph721maXiOYSLtaDGKVmDn5wdsNaF6Px85qFNeMPQq0r8K5Y10tgP6YuR65Ws35n4DvzFcCxEnRNBIXQunzLw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", + "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", "dev": true }, "regexpu-core": { @@ -13301,7 +13992,7 @@ "escape-html": "1.0.3", "etag": "1.8.1", "fresh": "0.5.2", - "http-errors": "1.6.2", + "http-errors": "1.6.3", "mime": "1.4.1", "ms": "2.0.0", "on-finished": "2.3.0", @@ -13323,6 +14014,12 @@ "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", "dev": true + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true } } }, @@ -13357,9 +14054,9 @@ "dev": true }, "setprototypeof": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", "dev": true }, "shebang-command": { @@ -13600,7 +14297,7 @@ "integrity": "sha1-0rdajl4Ngk1S/eyLgiWDncLjXfo=", "requires": { "async": "2.6.0", - "is-stream-ended": "0.1.3" + "is-stream-ended": "0.1.4" } }, "sprintf-js": { @@ -13647,9 +14344,9 @@ "dev": true }, "statehood": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/statehood/-/statehood-6.0.5.tgz", - "integrity": "sha512-HPa8qT5sGTBVn1Fc9czBYR1oo7gBaay3ysnb04cvcF80YrDIV7880KpjmMj54j7CrFuQFfgMRb44QCRxRmAdTg==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/statehood/-/statehood-6.0.6.tgz", + "integrity": "sha512-jR45n5ZMAkasw0xoE9j9TuLmJv4Sa3AkXe+6yIFT6a07kXYHgSbuD2OVGECdZGFxTmvNqLwL1iRIgvq6O6rq+A==", "dev": true, "requires": { "boom": "7.2.0", @@ -13687,15 +14384,15 @@ } }, "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true }, "stream-events": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.2.tgz", - "integrity": "sha1-q/OfZsCJCk63lbyNXoWbJhW1kLI=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.3.tgz", + "integrity": "sha512-SvnBCMhEBQSJml4/ImlWkzGWgchjo1tVxnoBUOa1i1g3BsYNWz4W6a9Hc8VhqfmwJiEGu6tLrGdNRm/K/I4YXw==", "requires": { "stubs": "3.0.0" } @@ -13827,7 +14524,7 @@ "dev": true, "requires": { "boom": "7.2.0", - "content": "4.0.4", + "content": "4.0.5", "hoek": "5.0.3", "pez": "4.0.2", "wreck": "14.0.2" @@ -14095,7 +14792,7 @@ "resolve": "1.6.0", "semver": "5.5.0", "tslib": "1.9.0", - "tsutils": "2.24.0" + "tsutils": "2.25.1" }, "dependencies": { "resolve": { @@ -14110,9 +14807,9 @@ } }, "tsutils": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.24.0.tgz", - "integrity": "sha512-rOIkvoe17acR3r96IPnqwa1+Z7zx9AroEtEKl20IeExXtoWptqG/zb806cYOvdbQGcxh1eOaZQNruOQ716Edig==", + "version": "2.25.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.25.1.tgz", + "integrity": "sha512-xHiTER5XIRYlWbylk4vpGZSYo8FUTVn32bAxxM1rJopXs2DYG7lWp40LqNvM3iMNpXa50wmnC9bFXsPTV6xAiQ==", "dev": true, "requires": { "tslib": "1.9.0" @@ -14169,9 +14866,9 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "typescript": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.6.2.tgz", - "integrity": "sha1-PFtv1/beCRQmkCfwPAlGdY92c6Q=", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.8.1.tgz", + "integrity": "sha512-Ao/f6d/4EPLq0YwzsQz8iXflezpTkQzqAyenTiw4kCUGr1uPiFLC3+fZ+gMZz6eeI/qdRUqvC+HxIJzUAzEFdg==", "dev": true }, "uglify-js": { diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index cebc8a6ddfc..f76a19f738a 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -119,6 +119,6 @@ "restify": "^6.3.4", "rimraf": "^2.6.2", "tmp": "0.0.33", - "typescript": "~2.6.2" + "typescript": "~2.8.1" } } diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index 5b681ca4803..795ea44fb8b 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -49,8 +49,8 @@ const envKeys = [ class InstancedEnv { injectedEnv: {[key: string]: {}}; _originalEnv: {[key: string]: {}}; - apiKey: string; - projectId: string; + apiKey!: string; + projectId!: string; constructor(injectedEnv) { assign(this, injectedEnv); From 46a77a45c8d04cd4194d617727d5889b1cb52351 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Tue, 10 Apr 2018 15:02:03 -0700 Subject: [PATCH 087/527] chore: re-enable `noImplicitAny` (#107) --- handwritten/error-reporting/package-lock.json | 193 ++++++++++++++---- handwritten/error-reporting/package.json | 13 ++ .../src/classes/error-message.ts | 50 ++--- handwritten/error-reporting/src/index.ts | 5 +- .../error-reporting/src/interfaces/manual.ts | 6 +- handwritten/error-reporting/src/logger.ts | 5 +- .../src/populate-error-message.ts | 4 +- handwritten/error-reporting/src/types.d.ts | 2 +- .../system-test/error-reporting.ts | 65 +++--- .../test/fixtures/configuration.ts | 7 +- .../test-servers/express_scaffold_server.ts | 30 +-- .../test/test-servers/koa_scaffold_server.ts | 8 +- .../test-servers/manual_scaffold_server.ts | 2 +- .../test-servers/restify_scaffold_server.ts | 2 +- .../test/unit/classes/error-message.ts | 38 ++-- .../classes/request-information-container.ts | 2 +- .../test/unit/configuration.ts | 73 ++++--- .../test/unit/google-apis/auth-client.ts | 14 +- .../test/unit/interfaces/express.ts | 2 +- .../test/unit/interfaces/hapi.ts | 27 ++- .../test/unit/interfaces/manual.ts | 4 +- .../error-reporting/test/unit/logger.ts | 6 +- .../test/unit/populate-error-message.ts | 4 +- .../test/unit/request-extractors/express.ts | 9 +- .../test/unit/request-extractors/hapi.ts | 2 +- .../test/unit/request-extractors/koa.ts | 2 +- .../test/unit/request-extractors/manual.ts | 4 +- .../test/unit/service-configuration.ts | 4 +- handwritten/error-reporting/tsconfig.json | 3 +- .../utils/errors-api-transport.ts | 33 ++- handwritten/error-reporting/utils/fuzzer.ts | 81 ++++---- 31 files changed, 460 insertions(+), 240 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index d95a5531481..a965d890f7e 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -2007,7 +2007,7 @@ "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", "dev": true, "requires": { - "@types/node": "9.6.1" + "@types/node": "9.6.2" } }, "@types/body-parser": { @@ -2017,7 +2017,7 @@ "dev": true, "requires": { "@types/express": "4.11.1", - "@types/node": "9.6.1" + "@types/node": "9.6.2" } }, "@types/boom": { @@ -2033,7 +2033,7 @@ "dev": true, "requires": { "@types/events": "1.2.0", - "@types/node": "9.6.1" + "@types/node": "9.6.2" } }, "@types/caseless": { @@ -2057,7 +2057,7 @@ "integrity": "sha512-OPSxsP6XqA3984KWDUXq/u05Hu8VWa/2rUVlw/aDUOx87BptIep6xb3NdCxCpKLfLdjZcCE5jR+gouTul3gjdA==", "dev": true, "requires": { - "@types/node": "9.6.1" + "@types/node": "9.6.2" } }, "@types/cookies": { @@ -2069,7 +2069,7 @@ "@types/connect": "3.4.31", "@types/express": "4.11.1", "@types/keygrip": "1.0.1", - "@types/node": "9.6.1" + "@types/node": "9.6.2" } }, "@types/events": { @@ -2096,16 +2096,22 @@ "dev": true, "requires": { "@types/events": "1.2.0", - "@types/node": "9.6.1" + "@types/node": "9.6.2" } }, + "@types/extend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/extend/-/extend-3.0.0.tgz", + "integrity": "sha512-Eo8NQCbgjlMPQarlFAE3vpyCvFda4dg1Ob5ZJb6BJI9x4NAZVWowyMNB8GJJDgDI4lr2oqiQvXlPB0Fn1NoXnQ==", + "dev": true + }, "@types/form-data": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz", "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", "dev": true, "requires": { - "@types/node": "9.6.1" + "@types/node": "9.6.2" } }, "@types/glob": { @@ -2116,7 +2122,7 @@ "requires": { "@types/events": "1.2.0", "@types/minimatch": "3.0.3", - "@types/node": "9.6.1" + "@types/node": "9.6.2" } }, "@types/hapi": { @@ -2130,7 +2136,7 @@ "@types/events": "1.2.0", "@types/joi": "13.0.7", "@types/mimos": "3.0.1", - "@types/node": "9.6.1", + "@types/node": "9.6.2", "@types/podium": "1.0.0", "@types/shot": "3.4.0" } @@ -2171,7 +2177,7 @@ "@types/http-assert": "1.2.2", "@types/keygrip": "1.0.1", "@types/koa-compose": "3.2.2", - "@types/node": "9.6.1" + "@types/node": "9.6.2" } }, "@types/koa-compose": { @@ -2186,6 +2192,24 @@ "integrity": "sha512-tOSvCVrvSqFZ4A/qrqqm6p37GZoawsZtoR0SJhlF7EonNZUgrn8FfT+RNQ11h+NUpMt6QVe36033f3qEKBwfWA==", "dev": true }, + "@types/lodash.assign": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/@types/lodash.assign/-/lodash.assign-4.2.3.tgz", + "integrity": "sha512-L8D6y0a88Uv3/gdqUpmfHPGSFo676ggbtl5an3FgR4AzbvR+PKNdUMPr6F6Q/U3n3lCoCoV+WPt1vqJGbgPZ6Q==", + "dev": true, + "requires": { + "@types/lodash": "4.14.106" + } + }, + "@types/lodash.foreach": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/@types/lodash.foreach/-/lodash.foreach-4.5.3.tgz", + "integrity": "sha512-Fpkdtv1C15HQmFOOlikhWk72Bl93hcJtwrO7bbLABV/rkM1qSDKk4p8Wizt/LsAalr8WfbV0MuQct3IfJZkfug==", + "dev": true, + "requires": { + "@types/lodash": "4.14.106" + } + }, "@types/lodash.has": { "version": "4.5.3", "resolved": "https://registry.npmjs.org/@types/lodash.has/-/lodash.has-4.5.3.tgz", @@ -2195,6 +2219,78 @@ "@types/lodash": "4.14.106" } }, + "@types/lodash.indexof": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/lodash.indexof/-/lodash.indexof-4.0.3.tgz", + "integrity": "sha512-2emfoGFYjwEyQercgS7+7sNwoLnI3VMMXbWTu3dJeVsXxif7xHmVKaFEzc1nSluBCiZKsNM8MipvXAm+Z0L5dg==", + "dev": true, + "requires": { + "@types/lodash": "4.14.106" + } + }, + "@types/lodash.maxby": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/@types/lodash.maxby/-/lodash.maxby-4.6.3.tgz", + "integrity": "sha512-5AMk6874T1RMxtWkW0I4ORFptU508mTb8jYG0gaNCMDzX6kLn/VNQXewL6dasZd4dj/hSbM8dt7msLuI3rSIPQ==", + "dev": true, + "requires": { + "@types/lodash": "4.14.106" + } + }, + "@types/lodash.merge": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/@types/lodash.merge/-/lodash.merge-4.6.3.tgz", + "integrity": "sha512-bOCCutkbehfCeiSqJO5XcVKjsJvX28dgvjhs4aMmBAHAsOy2oOJQwHuIZ0elI1E94qQIdEsCvz8oLgUumd6teA==", + "dev": true, + "requires": { + "@types/lodash": "4.14.106" + } + }, + "@types/lodash.omit": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/@types/lodash.omit/-/lodash.omit-4.5.3.tgz", + "integrity": "sha512-a6VbeE+JjMQ3rKsQVRjle02E+iKPTsT7izzFRk4xJvv4TBcO85Lrpo+8n6iqsiH8yZ8mHy0LOmx7MVgO8OfovQ==", + "dev": true, + "requires": { + "@types/lodash": "4.14.106" + } + }, + "@types/lodash.omitby": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/@types/lodash.omitby/-/lodash.omitby-4.6.3.tgz", + "integrity": "sha512-IfMZru9AegVIu0lkOXc/ncCOR3zzC6FKTVuBHBd9PkmKbOCn5zFORT22Wf/fZ9SBr2HmaYLPkFhf5C7A7k/N9A==", + "dev": true, + "requires": { + "@types/lodash": "4.14.106" + } + }, + "@types/lodash.pick": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@types/lodash.pick/-/lodash.pick-4.4.3.tgz", + "integrity": "sha512-7VR26qH/bzRBn8DN6HKWYwBB6dNo1dNSdc0nYQwPp5tua6u2dpHHCFccszvFKBdR2CjSEbL5hsqQul03P4COjA==", + "dev": true, + "requires": { + "@types/lodash": "4.14.106" + } + }, + "@types/lodash.random": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@types/lodash.random/-/lodash.random-3.2.3.tgz", + "integrity": "sha512-JMCA9llou2Ye9mhz0H/7DaPrJ6PgmRb6ClnPGPzfoX7JUu9Q6NuRZON5INrTQH5LWahzqaZdeMwHyn8MGRkXoA==", + "dev": true, + "requires": { + "@types/lodash": "4.14.106" + } + }, + "@types/lodash.without": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@types/lodash.without/-/lodash.without-4.4.3.tgz", + "integrity": "sha512-oD30pRigg97PfyF8u3WGkRnn3MPS/f2pwYf0s0dNeGOeScbZ1bo4BYBK7dab/lpX6EbUjoWAtLLMQW+LxlJpcQ==", + "dev": true, + "requires": { + "@types/lodash": "4.14.106" + } + }, "@types/mime": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.0.tgz", @@ -2234,13 +2330,22 @@ "integrity": "sha512-TeiJ7uvv/92ugSqZ0v9l0eNXzutlki0aK+R1K5bfA5SYUil46ITlxLW4iNTCf55P4L5weCmaOdtxGeGWvudwPg==", "dev": true, "requires": { - "@types/node": "9.6.1" + "@types/node": "9.6.2" + } + }, + "@types/nock": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@types/nock/-/nock-9.1.2.tgz", + "integrity": "sha512-Vdd1dRTUT5S1ONTcAMmQ2PCzIQccKMOpgu9T+knvJeGRCt29j3tcz9oRC1AM6OXD81+8U4mVuWzHklTlQW7W+w==", + "dev": true, + "requires": { + "@types/node": "9.6.2" } }, "@types/node": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.1.tgz", - "integrity": "sha512-xwlHq5DXQFRpe+u6hmmNkzYk/3oxxqDp71a/AJMupOQYmxyaBetqrVMqdNlSQfbg7XTJYD8vARjf3Op06OzdtQ==", + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.2.tgz", + "integrity": "sha512-UWkRY9X7RQHp5OhhRIIka58/gVVycL1zHZu0OTsT5LI86ABaMOSbUjAl+b0FeDhQcxclrkyft3kW5QWdMRs8wQ==", "dev": true }, "@types/once": { @@ -2261,6 +2366,12 @@ "integrity": "sha1-v6ohUb4rHWEJzGn3+qnawsujuyA=", "dev": true }, + "@types/proxyquire": { + "version": "1.3.28", + "resolved": "https://registry.npmjs.org/@types/proxyquire/-/proxyquire-1.3.28.tgz", + "integrity": "sha512-SQaNzWQ2YZSr7FqAyPPiA3FYpux2Lqh3HWMZQk47x3xbMCqgC/w0dY3dw9rGqlweDDkrySQBcaScXWeR+Yb11Q==", + "dev": true + }, "@types/request": { "version": "2.47.0", "resolved": "https://registry.npmjs.org/@types/request/-/request-2.47.0.tgz", @@ -2269,7 +2380,7 @@ "requires": { "@types/caseless": "0.12.1", "@types/form-data": "2.2.1", - "@types/node": "9.6.1", + "@types/node": "9.6.2", "@types/tough-cookie": "2.3.2" } }, @@ -2280,7 +2391,7 @@ "dev": true, "requires": { "@types/bunyan": "1.8.4", - "@types/node": "9.6.1", + "@types/node": "9.6.2", "@types/spdy": "3.4.4" } }, @@ -2291,7 +2402,7 @@ "dev": true, "requires": { "@types/glob": "5.0.35", - "@types/node": "9.6.1" + "@types/node": "9.6.2" } }, "@types/serve-static": { @@ -2310,7 +2421,7 @@ "integrity": "sha1-RZR3xRh9Pr0wNmCrCZ5+ng87ZW8=", "dev": true, "requires": { - "@types/node": "9.6.1" + "@types/node": "9.6.2" } }, "@types/spdy": { @@ -2319,7 +2430,7 @@ "integrity": "sha512-N9LBlbVRRYq6HgYpPkqQc3a9HJ/iEtVZToW6xlTtJiMhmRJ7jJdV7TaZQJw/Ve/1ePUsQiCTDc4JMuzzag94GA==", "dev": true, "requires": { - "@types/node": "9.6.1" + "@types/node": "9.6.2" } }, "@types/tmp": { @@ -4101,7 +4212,7 @@ "integrity": "sha1-PAPwd2uGo239mgosl8YwfzMggv4=", "dev": true, "requires": { - "readable-stream": "2.3.5" + "readable-stream": "2.3.6" } }, "common-path-prefix": { @@ -4135,7 +4246,7 @@ "requires": { "buffer-from": "1.0.0", "inherits": "2.0.3", - "readable-stream": "2.3.5", + "readable-stream": "2.3.6", "typedarray": "0.0.6" } }, @@ -4303,7 +4414,7 @@ "object-assign": "4.1.1", "pify": "2.3.0", "pinkie-promise": "2.0.1", - "readable-stream": "2.3.5" + "readable-stream": "2.3.6" }, "dependencies": { "pify": { @@ -4807,7 +4918,7 @@ "requires": { "end-of-stream": "1.4.1", "inherits": "2.0.3", - "readable-stream": "2.3.5", + "readable-stream": "2.3.6", "stream-shift": "1.0.0" } }, @@ -5693,7 +5804,7 @@ "dev": true, "requires": { "inherits": "2.0.3", - "readable-stream": "2.3.5" + "readable-stream": "2.3.6" } }, "fs-extra": { @@ -7327,7 +7438,7 @@ "requires": { "inherits": "2.0.3", "obuf": "1.1.2", - "readable-stream": "2.3.5", + "readable-stream": "2.3.6", "wbuf": "1.7.3" } }, @@ -7342,7 +7453,7 @@ "domutils": "1.7.0", "entities": "1.1.1", "inherits": "2.0.3", - "readable-stream": "2.3.5" + "readable-stream": "2.3.6" } }, "http-assert": { @@ -13535,16 +13646,16 @@ } }, "readable-stream": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz", - "integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", "isarray": "1.0.0", "process-nextick-args": "2.0.0", "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", + "string_decoder": "1.1.1", "util-deprecate": "1.0.2" } }, @@ -13556,7 +13667,7 @@ "requires": { "graceful-fs": "4.1.11", "minimatch": "3.0.4", - "readable-stream": "2.3.5", + "readable-stream": "2.3.6", "set-immediate-shim": "1.0.1" } }, @@ -14275,7 +14386,7 @@ "detect-node": "2.0.3", "hpack.js": "2.1.6", "obuf": "1.1.2", - "readable-stream": "2.3.5", + "readable-stream": "2.3.6", "safe-buffer": "5.1.1", "wbuf": "1.7.3" }, @@ -14436,9 +14547,9 @@ } }, "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { "safe-buffer": "5.1.1" } @@ -14562,7 +14673,7 @@ "methods": "1.1.2", "mime": "1.6.0", "qs": "6.5.1", - "readable-stream": "2.3.5" + "readable-stream": "2.3.6" }, "dependencies": { "mime": { @@ -14677,7 +14788,7 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "requires": { - "readable-stream": "2.3.5", + "readable-stream": "2.3.6", "xtend": "4.0.1" } }, @@ -14792,7 +14903,7 @@ "resolve": "1.6.0", "semver": "5.5.0", "tslib": "1.9.0", - "tsutils": "2.25.1" + "tsutils": "2.26.0" }, "dependencies": { "resolve": { @@ -14807,9 +14918,9 @@ } }, "tsutils": { - "version": "2.25.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.25.1.tgz", - "integrity": "sha512-xHiTER5XIRYlWbylk4vpGZSYo8FUTVn32bAxxM1rJopXs2DYG7lWp40LqNvM3iMNpXa50wmnC9bFXsPTV6xAiQ==", + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.26.0.tgz", + "integrity": "sha512-hXUttgxeaZ/uPP/dpeiWUHbP5h744mPrfN2YFFtcZzd7vBRPBP6Knr0Mt6Bd+5SntMn8/1r6IGFeYPDSBIIPpg==", "dev": true, "requires": { "tslib": "1.9.0" diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index f76a19f738a..3e7ed314eb3 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -61,16 +61,29 @@ "@google-cloud/nodejs-repo-tools": "^2.0.11", "@types/express": "^4.11.0", "@types/express-serve-static-core": "^4.11.1", + "@types/extend": "^3.0.0", "@types/glob": "^5.0.35", "@types/hapi": "^16.1.11", "@types/is": "0.0.19", "@types/koa": "^2.0.43", + "@types/lodash.assign": "^4.2.3", + "@types/lodash.foreach": "^4.5.3", "@types/lodash.has": "^4.5.3", + "@types/lodash.indexof": "^4.0.3", + "@types/lodash.maxby": "^4.6.3", + "@types/lodash.merge": "^4.6.3", + "@types/lodash.omit": "^4.5.3", + "@types/lodash.omitby": "^4.6.3", + "@types/lodash.pick": "^4.4.3", + "@types/lodash.random": "^3.2.3", + "@types/lodash.without": "^4.4.3", "@types/mocha": "^5.0.0", "@types/ncp": "^2.0.1", + "@types/nock": "^9.1.2", "@types/node": "^9.4.0", "@types/once": "^1.4.0", "@types/pify": "^3.0.1", + "@types/proxyquire": "^1.3.28", "@types/request": "^2.0.9", "@types/restify": "^5.0.6", "@types/rimraf": "^2.0.2", diff --git a/handwritten/error-reporting/src/classes/error-message.ts b/handwritten/error-reporting/src/classes/error-message.ts index e46968a0254..e5232acb649 100644 --- a/handwritten/error-reporting/src/classes/error-message.ts +++ b/handwritten/error-reporting/src/classes/error-message.ts @@ -123,8 +123,8 @@ export class ErrorMessage { * error was reported * @returns {this} - returns the instance for chaining */ - setServiceContext(service: string, version?: string) { - this.serviceContext.service = isString(service) ? service : 'node'; + setServiceContext(service?: string, version?: string) { + this.serviceContext.service = (isString(service) ? service : 'node')!; this.serviceContext.version = isString(version) ? version : undefined; return this; @@ -136,8 +136,8 @@ export class ErrorMessage { * @param {String} message - the error message * @returns {this} - returns the instance for chaining */ - setMessage(message: string) { - this.message = isString(message) ? message : ''; + setMessage(message?: string) { + this.message = (isString(message) ? message : '')!; return this; } @@ -149,8 +149,8 @@ export class ErrorMessage { * errors instantiation * @returns {this} - returns the instance for chaining */ - setHttpMethod(method: string) { - this.context.httpRequest.method = isString(method) ? method : ''; + setHttpMethod(method?: string) { + this.context.httpRequest.method = (isString(method) ? method : '')!; return this; } @@ -161,8 +161,8 @@ export class ErrorMessage { * @param {String} url - the requests target url * @returns {this} - returns the instance for chaining */ - setUrl(url: string) { - this.context.httpRequest.url = isString(url) ? url : ''; + setUrl(url?: string) { + this.context.httpRequest.url = (isString(url) ? url : '')!; return this; } @@ -173,8 +173,9 @@ export class ErrorMessage { * @param {String} userAgent - the requests user-agent * @returns {this} - returns the instance for chaining */ - setUserAgent(userAgent: string) { - this.context.httpRequest.userAgent = isString(userAgent) ? userAgent : ''; + setUserAgent(userAgent?: string) { + this.context.httpRequest.userAgent = + (isString(userAgent) ? userAgent : '')!; return this; } @@ -185,8 +186,8 @@ export class ErrorMessage { * @param {String} referrer - the requests referrer * @returns {this} - returns the instance for chaining */ - setReferrer(referrer: string) { - this.context.httpRequest.referrer = isString(referrer) ? referrer : ''; + setReferrer(referrer?: string) { + this.context.httpRequest.referrer = (isString(referrer) ? referrer : '')!; return this; } @@ -197,9 +198,9 @@ export class ErrorMessage { * @param {Number} responseStatusCode - the response status code * @returns {this} - returns the instance for chaining */ - setResponseStatusCode(responseStatusCode: number) { + setResponseStatusCode(responseStatusCode?: number) { this.context.httpRequest.responseStatusCode = - isNumber(responseStatusCode) ? responseStatusCode : 0; + (isNumber(responseStatusCode) ? responseStatusCode : 0)!; return this; } @@ -210,8 +211,8 @@ export class ErrorMessage { * @param {String} remoteIp - the requesters remote IP * @returns {this} - returns the instance for chaining */ - setRemoteIp(remoteIp: string) { - this.context.httpRequest.remoteIp = isString(remoteIp) ? remoteIp : ''; + setRemoteIp(remoteIp?: string) { + this.context.httpRequest.remoteIp = (isString(remoteIp) ? remoteIp : '')!; return this; } @@ -222,8 +223,8 @@ export class ErrorMessage { * @param {String} user - the vm instances user * @returns {this} - returns the instance for chaining */ - setUser(user: string) { - this.context.user = isString(user) ? user : ''; + setUser(user?: string) { + this.context.user = (isString(user) ? user : '')!; return this; } @@ -234,8 +235,9 @@ export class ErrorMessage { * @param {String} filePath - the vm instances filePath * @returns {this} - returns the instance for chaining */ - setFilePath(filePath: string) { - this.context.reportLocation.filePath = isString(filePath) ? filePath : ''; + setFilePath(filePath?: string) { + this.context.reportLocation.filePath = + (isString(filePath) ? filePath : '')!; return this; } @@ -246,9 +248,9 @@ export class ErrorMessage { * @param {Number} lineNumber - the line number of the report context * @returns {this} - returns the instance for chaining */ - setLineNumber(lineNumber: number) { + setLineNumber(lineNumber?: number) { this.context.reportLocation.lineNumber = - isNumber(lineNumber) ? lineNumber : 0; + (isNumber(lineNumber) ? lineNumber : 0)!; return this; } @@ -259,9 +261,9 @@ export class ErrorMessage { * @param {String} functionName - the function name of the report context * @returns {this} - returns the instance for chaining */ - setFunctionName(functionName: string) { + setFunctionName(functionName?: string) { this.context.reportLocation.functionName = - isString(functionName) ? functionName : ''; + (isString(functionName) ? functionName : '')!; return this; } diff --git a/handwritten/error-reporting/src/index.ts b/handwritten/error-reporting/src/index.ts index dcad9ad0aa9..0753791cf56 100644 --- a/handwritten/error-reporting/src/index.ts +++ b/handwritten/error-reporting/src/index.ts @@ -99,9 +99,10 @@ export class ErrorReporting { private _logger: types.Logger; private _config: Configuration; private _client: AuthClient; + // the `err` argument can be anything, including `null` and `undefined` report: - (err: {}, request?: manualRequestExtractor.Request, - additionalMessage?: string|{}, + (err: any, // tslint:disable-line:no-any + request?: manualRequestExtractor.Request, additionalMessage?: string|{}, callback?: manualInterface.Callback|{}|string) => ErrorMessage; event: () => ErrorMessage; hapi: {register: (server: {}, options: {}, next: Function) => void}; diff --git a/handwritten/error-reporting/src/interfaces/manual.ts b/handwritten/error-reporting/src/interfaces/manual.ts index 3b439f4285f..5575885b6dd 100644 --- a/handwritten/error-reporting/src/interfaces/manual.ts +++ b/handwritten/error-reporting/src/interfaces/manual.ts @@ -64,9 +64,11 @@ export function handlerSetup( * @returns {ErrorMessage} - returns the error message created through with * the parameters given. */ + // the `err` argument can be anything, including `null` and `undefined` function reportManualError( - err: {}, request?: Request|Callback|string, - additionalMessage?: Callback|string|{}, callback?: Callback|{}|string) { + err: any, // tslint:disable-line:no-any + request?: Request|Callback|string, additionalMessage?: Callback|string|{}, + callback?: Callback|{}|string) { let em; if (isString(request)) { // no request given diff --git a/handwritten/error-reporting/src/logger.ts b/handwritten/error-reporting/src/logger.ts index d63f24a12c0..ac645130f1f 100644 --- a/handwritten/error-reporting/src/logger.ts +++ b/handwritten/error-reporting/src/logger.ts @@ -17,10 +17,13 @@ import has = require('lodash.has'); import * as is from 'is'; +import * as types from './types'; + const isObject = is.object; const isString = is.string; const isNumber = is.number; -import {logger} from '@google-cloud/common'; +const logger: types.logger = require('@google-cloud/common').logger; + const packageJson = require('../../package.json'); import {ConfigurationOptions} from './configuration'; diff --git a/handwritten/error-reporting/src/populate-error-message.ts b/handwritten/error-reporting/src/populate-error-message.ts index f27d8aaf0ec..1bf56f33412 100644 --- a/handwritten/error-reporting/src/populate-error-message.ts +++ b/handwritten/error-reporting/src/populate-error-message.ts @@ -40,7 +40,9 @@ export interface PopulatedObject { * information into * @returns {Undefined} - does not return a value */ -export function populateErrorMessage(ob: {}, em: ErrorMessage) { +// the `ob` argument can be anything, including `null` and `undefined` +// tslint:disable-next-line:no-any +export function populateErrorMessage(ob: any, em: ErrorMessage) { if (ob === null || ob === undefined) { em.setMessage(buildStackTrace('' + ob)); } else if ((ob as {stack: {}}).stack) { diff --git a/handwritten/error-reporting/src/types.d.ts b/handwritten/error-reporting/src/types.d.ts index 33a1302eeb0..7ece3a5a471 100644 --- a/handwritten/error-reporting/src/types.d.ts +++ b/handwritten/error-reporting/src/types.d.ts @@ -39,7 +39,7 @@ export interface LoggerOptions { export interface logger { (options?: LoggerOptions | string): Logger; - LEVELS: string[]; + LEVELS: string[] & { [key: string]: string; }; } export interface Options { diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index 795ea44fb8b..6c4a95b073e 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -23,15 +23,15 @@ import {RequestHandler} from '../src/google-apis/auth-client'; import {ErrorReporting} from '../src/index'; import {createLogger} from '../src/logger'; import {FakeConfiguration as Configuration} from '../test/fixtures/configuration'; -import {ErrorsApiTransport} from '../utils/errors-api-transport'; +import {ErrorGroupStats, ErrorsApiTransport} from '../utils/errors-api-transport'; const isObject = is.object; const isString = is.string; const isEmpty = is.empty; -import * as forEach from 'lodash.foreach'; -import * as assign from 'lodash.assign'; -import * as pick from 'lodash.pick'; -import * as omitBy from 'lodash.omitby'; +import forEach = require('lodash.foreach'); +import assign = require('lodash.assign'); +import pick = require('lodash.pick'); +import omitBy = require('lodash.omitby'); // eslint-disable-next-line node/no-extraneous-require import * as request from 'request'; import * as util from 'util'; @@ -47,12 +47,12 @@ const envKeys = [ ]; class InstancedEnv { - injectedEnv: {[key: string]: {}}; - _originalEnv: {[key: string]: {}}; + injectedEnv: {[key: string]: string|undefined}; + _originalEnv: Partial>; apiKey!: string; projectId!: string; - constructor(injectedEnv) { + constructor(injectedEnv: {[key: string]: string|undefined}) { assign(this, injectedEnv); this.injectedEnv = injectedEnv; this._originalEnv = this._captureProcessProperties(); @@ -147,7 +147,9 @@ if (!shouldRun()) { describe('Request/Response lifecycle mocking', () => { const sampleError = new Error(ERR_TOKEN); const errorMessage = new ErrorMessage().setMessage(sampleError.message); - let fakeService, client, logger; + let fakeService: {reply: Function; query: Function;}; + let client: RequestHandler; + let logger; before(() => { env.sterilizeProcess(); }); @@ -176,11 +178,12 @@ describe('Request/Response lifecycle mocking', () => { it('Should fail when receiving non-retryable errors', function(this, done) { this.timeout(5000); - client.sendError({}, (err, response) => { + client.sendError({} as ErrorMessage, (err, response) => { assert(err instanceof Error); - assert.strictEqual(err.message.toLowerCase(), 'message cannot be empty.'); + assert.strictEqual( + err!.message.toLowerCase(), 'message cannot be empty.'); assert(isObject(response)); - assert.strictEqual(response.statusCode, 400); + assert.strictEqual(response!.statusCode, 400); done(); }); }); @@ -209,7 +212,7 @@ describe('Request/Response lifecycle mocking', () => { const client = new RequestHandler( new Configuration({key, ignoreEnvironmentCheck: true}, logger), logger); - fakeService.query({key}).reply(200, uri => { + fakeService.query({key}).reply(200, (uri: string) => { assert(uri.indexOf('key=' + key) > -1); return {}; }); @@ -282,7 +285,7 @@ describe('Client creation', () => { const logger = createLogger({logLevel: 5}); const cfg = new Configuration( { - projectId: Number(env.injected().projectNumber), + projectId: '' + Number(env.injected().projectNumber), ignoreEnvironmentCheck: true, }, logger); @@ -372,7 +375,7 @@ describe('Expected Behavior', () => { const logger = createLogger({logLevel: 5}); const cfg = new Configuration( { - projectId: Number(env.injected().projectNumber), + projectId: '' + Number(env.injected().projectNumber), ignoreEnvironmentCheck: true, }, logger); @@ -434,16 +437,16 @@ describe('error-reporting', () => { const SRC_ROOT = path.join(__dirname, '..', 'src'); const TIMESTAMP = Date.now(); const BASE_NAME = 'error-reporting-system-test'; - function buildName(suffix) { + function buildName(suffix: string) { return [TIMESTAMP, BASE_NAME, suffix].join('_'); } const SERVICE = buildName('service-name'); const VERSION = buildName('service-version'); - let errors; - let transport; - let oldLogger; + let errors: ErrorReporting; + let transport: ErrorsApiTransport; + let oldLogger: (text: string) => void; let logOutput = ''; before(() => { // This test assumes that only the error-reporting library will be @@ -464,7 +467,7 @@ describe('error-reporting', () => { function reinitialize(extraConfig?: {}) { process.removeAllListeners('unhandledRejection'); - const config = Object.assign( + const initConfiguration = Object.assign( { ignoreEnvironmentCheck: true, serviceContext: { @@ -473,8 +476,10 @@ describe('error-reporting', () => { }, }, extraConfig || {}); - errors = new ErrorReporting(config); - transport = new ErrorsApiTransport(errors._config, errors._logger); + errors = new ErrorReporting(initConfiguration); + const logger = createLogger(initConfiguration); + const configuration = new Configuration(initConfiguration, logger); + transport = new ErrorsApiTransport(configuration, logger); } after(done => { @@ -491,13 +496,15 @@ describe('error-reporting', () => { logOutput = ''; }); - function verifyAllGroups(messageTest, timeout, cb) { + function verifyAllGroups( + messageTest: (message: string) => void, timeout: number, + cb: (matchedErrors: ErrorGroupStats[]) => void) { setTimeout(() => { transport.getAllGroups((err, groups) => { assert.ifError(err); assert.ok(groups); - const matchedErrors = groups.filter(errItem => { + const matchedErrors = groups!.filter(errItem => { return ( errItem && errItem.representative && errItem.representative.serviceContext && @@ -511,7 +518,8 @@ describe('error-reporting', () => { }, timeout); } - function verifyServerResponse(messageTest, timeout, cb) { + function verifyServerResponse( + messageTest: (message: string) => void, timeout: number, cb: () => void) { verifyAllGroups(messageTest, timeout, matchedErrors => { // The error should have been reported exactly once assert.strictEqual(matchedErrors.length, 1); @@ -538,9 +546,12 @@ describe('error-reporting', () => { }); } - function verifyReporting(errOb, messageTest, timeout, cb) { + // the `errOb` argument can be anything, including `null` and `undefined` + function verifyReporting( + errOb: any, // tslint:disable-line:no-any + messageTest: (message: string) => void, timeout: number, cb: () => void) { (function expectedTopOfStack() { - errors.report(errOb, (err, response, body) => { + errors.report(errOb, undefined, undefined, (err, response, body) => { assert.ifError(err); assert(isObject(response)); assert.deepEqual(body, {}); diff --git a/handwritten/error-reporting/test/fixtures/configuration.ts b/handwritten/error-reporting/test/fixtures/configuration.ts index 91d062496d5..a858abcf0b1 100644 --- a/handwritten/error-reporting/test/fixtures/configuration.ts +++ b/handwritten/error-reporting/test/fixtures/configuration.ts @@ -14,12 +14,11 @@ * limitations under the License. */ -import {Logger} from '@google-cloud/common'; - -import {Configuration} from '../../src/configuration'; +import {Configuration, ConfigurationOptions} from '../../src/configuration'; +import {Logger} from '../../src/types'; export class FakeConfiguration extends Configuration { - constructor(config, logger?) { + constructor(config: ConfigurationOptions|undefined, logger?: Logger) { super(config, logger || {warn() {}} as {} as Logger); } } diff --git a/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts index 9dba1940776..7d97c55ed73 100644 --- a/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts @@ -42,18 +42,19 @@ app.post('/testErrorHandling', (req, res, next) => { }); app.get('/customError', (req, res, next) => { - errorHandler.report('Error on Express Custom Error GET Route', err => { - if (err) { - log(WARNING_HEADER); - log('Error in sending custom get error to api'); - log(err); - log(EXCLAMATION_LN); - } else { - log(EXCLAMATION_LN); - log('Successfully sent custom get error to api'); - log(EXCLAMATION_LN); - } - }); + errorHandler.report( + 'Error on Express Custom Error GET Route', (err: Error|null) => { + if (err) { + log(WARNING_HEADER); + log('Error in sending custom get error to api'); + log(err); + log(EXCLAMATION_LN); + } else { + log(EXCLAMATION_LN); + log('Successfully sent custom get error to api'); + log(EXCLAMATION_LN); + } + }); res.send('Success'); res.end(); @@ -75,7 +76,8 @@ function throwUncaughtError() { function reportManualError() { log('Reporting a manual error..'); errorHandler.report( - new Error('This is a manually reported error'), null, null, err => { + new Error('This is a manually reported error'), null, null, + (err: Error|null) => { if (err) { log(WARNING_HEADER); log('Got an error in sending error information to the API'); @@ -93,7 +95,7 @@ function reportManualError() { }); } log('reporting a manual error first'); -errorHandler.report(new Error('This is a test'), err => { +errorHandler.report(new Error('This is a test'), (err: Error|null) => { log('reported first manual error'); if (err) { log('Error was unable to be reported', err); diff --git a/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts index fab7096b9d0..dc70d596190 100644 --- a/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts @@ -27,13 +27,13 @@ const app = (koa as Function)(); app.use(errorHandler.koa); -app.use(function*(this, next) { +app.use(function*(this: {throw: Function}, next: {}) { // This will set status and message this.throw('Error Message', 500); yield next; }); -app.use(function*(this, next) { +app.use(function*(this: {set: Function}, next: {}) { const start = Date.now(); yield next; const ms = Date.now() - start; @@ -42,7 +42,7 @@ app.use(function*(this, next) { // logger -app.use(function*(this, next) { +app.use(function*(this: {method: {}; url: {}}, next: {}) { const start = Date.now(); yield next; const ms = Date.now() - start; @@ -51,7 +51,7 @@ app.use(function*(this, next) { }); // response -app.use(function*(this, next) { +app.use(function*(this: {body: string}, next: {}) { this.body = 'Hello World'; yield next; }); diff --git a/handwritten/error-reporting/test/test-servers/manual_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/manual_scaffold_server.ts index b7dd9faea76..eff0a50e9e0 100644 --- a/handwritten/error-reporting/test/test-servers/manual_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/manual_scaffold_server.ts @@ -16,7 +16,7 @@ import {ErrorReporting} from '../../src/index'; const errors = new ErrorReporting(); -(errors.report as Function)('Sample test string', err => { +(errors.report as Function)('Sample test string', (err: Error|null) => { // eslint-disable-next-line no-console console.log( 'Callback from report:\n', '\tError: ', err, '\n', '\tResponse Body:'); diff --git a/handwritten/error-reporting/test/test-servers/restify_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/restify_scaffold_server.ts index 1f4daceaf04..0330c1bc831 100644 --- a/handwritten/error-reporting/test/test-servers/restify_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/restify_scaffold_server.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -function respond(req, res, next) { +function respond(req: {}, res: {}, next: Function) { next(new Error('this is a restify error')); } diff --git a/handwritten/error-reporting/test/unit/classes/error-message.ts b/handwritten/error-reporting/test/unit/classes/error-message.ts index 8d99cbda644..6893008ec08 100644 --- a/handwritten/error-reporting/test/unit/classes/error-message.ts +++ b/handwritten/error-reporting/test/unit/classes/error-message.ts @@ -21,7 +21,7 @@ import {ErrorMessage} from '../../../src/classes/error-message'; import {RequestInformationContainer} from '../../../src/classes/request-information-container'; describe('Instantiating a new ErrorMessage', () => { - let em; + let em: ErrorMessage; beforeEach(() => { em = new ErrorMessage(); }); @@ -52,7 +52,7 @@ describe('Instantiating a new ErrorMessage', () => { }); describe('Calling against setEventTimeToNow', () => { - let em; + let em: ErrorMessage; beforeEach(() => { em = new ErrorMessage(); }); @@ -67,7 +67,7 @@ describe('Fuzzing against setServiceContext', () => { const DEFAULT_TEST_VALUE = 'DEFAULT'; const DEFAULT_VERSION_VALUE = undefined; const DEFAULT_SERVICE_VALUE = 'node'; - let em; + let em: ErrorMessage; beforeEach(() => { em = new ErrorMessage(); }); @@ -97,7 +97,7 @@ describe('Fuzzing against setServiceContext', () => { ].join(' ')); }); it('Should still set version with affirmative value', () => { - em.setServiceContext(null, AFFIRMATIVE_TEST_VALUE); + em.setServiceContext(null!, AFFIRMATIVE_TEST_VALUE); assert.deepEqual( em.serviceContext, { service: DEFAULT_SERVICE_VALUE, @@ -110,7 +110,7 @@ describe('Fuzzing against setServiceContext', () => { ].join(' ')); }); it('Should still set service with affirmative value', () => { - em.setServiceContext(AFFIRMATIVE_TEST_VALUE, null); + em.setServiceContext(AFFIRMATIVE_TEST_VALUE, null!); assert.deepEqual( em.serviceContext, { service: AFFIRMATIVE_TEST_VALUE, @@ -123,7 +123,7 @@ describe('Fuzzing against setServiceContext', () => { ].join(' ')); }); it('Should set default values on both', () => { - em.setServiceContext(null, null); + em.setServiceContext(null!, null!); assert.deepEqual( em.serviceContext, { service: DEFAULT_SERVICE_VALUE, @@ -135,7 +135,7 @@ describe('Fuzzing against setServiceContext', () => { ].join(' ')); }); it('Should set default values on both', () => { - em.setServiceContext(2, 1.3); + em.setServiceContext(2 as {} as string, 1.3 as {} as string); assert.deepEqual( em.serviceContext, { service: DEFAULT_SERVICE_VALUE, @@ -147,7 +147,7 @@ describe('Fuzzing against setServiceContext', () => { ].join(' ')); }); it('Should set as default', () => { - em.setServiceContext({test: 'true'}, []); + em.setServiceContext({test: 'true'} as {} as string, [] as {} as string); assert.deepEqual( em.serviceContext, { service: DEFAULT_SERVICE_VALUE, @@ -170,7 +170,7 @@ describe('Fuzzing against setServiceContext', () => { }); describe('Fuzzing against setMessage', () => { - let em; + let em: ErrorMessage; beforeEach(() => { em = new ErrorMessage(); }); @@ -194,7 +194,7 @@ describe('Fuzzing against setMessage', () => { }); describe('Fuzzing against setHttpMethod', () => { - let em; + let em: ErrorMessage; const AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; const NEGATIVE_TEST_VALUE = ''; beforeEach(() => { @@ -217,7 +217,7 @@ describe('Fuzzing against setHttpMethod', () => { }); describe('Fuzzing against setUrl', () => { - let em; + let em: ErrorMessage; const AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; const NEGATIVE_TEST_VALUE = ''; beforeEach(() => { @@ -240,7 +240,7 @@ describe('Fuzzing against setUrl', () => { }); describe('Fuzzing against setUserAgent', () => { - let em; + let em: ErrorMessage; const AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; const NEGATIVE_TEST_VALUE = ''; beforeEach(() => { @@ -263,7 +263,7 @@ describe('Fuzzing against setUserAgent', () => { }); describe('Fuzzing against setReferrer', () => { - let em; + let em: ErrorMessage; const AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; const NEGATIVE_TEST_VALUE = ''; beforeEach(() => { @@ -286,7 +286,7 @@ describe('Fuzzing against setReferrer', () => { }); describe('Fuzzing against setResponseStatusCode', () => { - let em; + let em: ErrorMessage; const AFFIRMATIVE_TEST_VALUE = 200; const NEGATIVE_TEST_VALUE = 0; beforeEach(() => { @@ -309,7 +309,7 @@ describe('Fuzzing against setResponseStatusCode', () => { }); describe('Fuzzing against setRemoteIp', () => { - let em; + let em: ErrorMessage; const AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; const NEGATIVE_TEST_VALUE = ''; beforeEach(() => { @@ -332,7 +332,7 @@ describe('Fuzzing against setRemoteIp', () => { }); describe('Fuzzing against setUser', () => { - let em; + let em: ErrorMessage; const AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; const NEGATIVE_TEST_VALUE = ''; beforeEach(() => { @@ -355,7 +355,7 @@ describe('Fuzzing against setUser', () => { }); describe('Fuzzing against setFilePath', () => { - let em; + let em: ErrorMessage; const AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; const NEGATIVE_TEST_VALUE = ''; beforeEach(() => { @@ -378,7 +378,7 @@ describe('Fuzzing against setFilePath', () => { }); describe('Fuzzing against setLineNumber', () => { - let em; + let em: ErrorMessage; const AFFIRMATIVE_TEST_VALUE = 27; const NEGATIVE_TEST_VALUE = 0; beforeEach(() => { @@ -401,7 +401,7 @@ describe('Fuzzing against setLineNumber', () => { }); describe('Fuzzing against setFunctionName', () => { - let em; + let em: ErrorMessage; const AFFIRMATIVE_TEST_VALUE = 'VALID_INPUT_AND_TYPE'; const NEGATIVE_TEST_VALUE = ''; beforeEach(() => { diff --git a/handwritten/error-reporting/test/unit/classes/request-information-container.ts b/handwritten/error-reporting/test/unit/classes/request-information-container.ts index eb90ba6e7cd..bfc7f339e10 100644 --- a/handwritten/error-reporting/test/unit/classes/request-information-container.ts +++ b/handwritten/error-reporting/test/unit/classes/request-information-container.ts @@ -20,7 +20,7 @@ import {Fuzzer} from '../../../utils/fuzzer'; describe('RequestInformationContainer', () => { const f = new Fuzzer(); - let cbFn, ric; + let cbFn, ric: RequestInformationContainer; beforeEach(() => { ric = new RequestInformationContainer(); }); diff --git a/handwritten/error-reporting/test/unit/configuration.ts b/handwritten/error-reporting/test/unit/configuration.ts index b0a07a7876e..4c2ac5e73c3 100644 --- a/handwritten/error-reporting/test/unit/configuration.ts +++ b/handwritten/error-reporting/test/unit/configuration.ts @@ -19,6 +19,7 @@ import * as is from 'is'; const isNumber = is.number; import merge = require('lodash.merge'); import {FakeConfiguration as Configuration} from '../fixtures/configuration'; +import {ConfigurationOptions} from '../../src/configuration'; import {Fuzzer} from '../../utils/fuzzer'; const level = process.env.GCLOUD_ERRORS_LOGLEVEL; import {createLogger} from '../../src/logger'; @@ -61,18 +62,18 @@ describe('Configuration class', () => { }); describe('Initialization', () => { const f = new Fuzzer(); - const stubConfig = {test: true}; describe('fuzzing the constructor', () => { it('Should return default values', () => { let c; - f.fuzzFunctionForTypes(givenConfigFuzz => { + f.fuzzFunctionForTypes((givenConfigFuzz: ConfigurationOptions) => { c = new Configuration(givenConfigFuzz, logger); assert.deepEqual(c._givenConfiguration, {}); }, ['object']); }); }); describe('valid config and default values', () => { - let c; + let c: Configuration; + const validConfig = {ignoreEnvironmentCheck: true}; before(() => { process.env.NODE_ENV = 'development'; }); @@ -81,11 +82,11 @@ describe('Configuration class', () => { }); it('Should not throw with a valid configuration', () => { assert.doesNotThrow(() => { - c = new Configuration(stubConfig, logger); + c = new Configuration(validConfig, logger); }); }); it('Should have a property reflecting the config argument', () => { - assert.deepEqual(c._givenConfiguration, stubConfig); + assert.deepEqual(c._givenConfiguration, validConfig); }); it('Should not have a project id', () => { assert.strictEqual(c._projectId, null); @@ -104,7 +105,8 @@ describe('Configuration class', () => { }); }); describe('with ignoreEnvironmentCheck', () => { - const conf = merge({}, stubConfig, {ignoreEnvironmentCheck: true}); + const conf = + merge({}, {projectId: 'some-id'}, {ignoreEnvironmentCheck: true}); const c = new Configuration(conf, logger); it('Should reportErrorsToAPI', () => { assert.strictEqual(c.getShouldReportErrorsToAPI(), true); @@ -112,7 +114,7 @@ describe('Configuration class', () => { }); describe('without ignoreEnvironmentCheck', () => { describe('report behaviour with production env', () => { - let c; + let c: Configuration; before(() => { sterilizeConfigEnv(); process.env.NODE_ENV = 'production'; @@ -128,32 +130,53 @@ describe('Configuration class', () => { describe('exception behaviour', () => { it('Should throw if invalid type for key', () => { assert.throws(() => { + // we are intentionally providing an invalid configuration + // thus an explicit cast is needed // tslint:disable-next-line:no-unused-expression - new Configuration({key: null}, logger); + new Configuration( + {key: null} as {} as ConfigurationOptions, logger); }); }); it('Should throw if invalid for ignoreEnvironmentCheck', () => { assert.throws(() => { + // we are intentionally providing an invalid configuration + // thus an explicit cast is needed // tslint:disable-next-line:no-unused-expression - new Configuration({ignoreEnvironmentCheck: null}, logger); + new Configuration( + {ignoreEnvironmentCheck: null} as {} as ConfigurationOptions, + logger); }); }); it('Should throw if invalid for serviceContext.service', () => { assert.throws(() => { + // we are intentionally providing an invalid configuration + // thus an explicit cast is needed // tslint:disable-next-line:no-unused-expression - new Configuration({serviceContext: {service: false}}, logger); + new Configuration( + {serviceContext: {service: false}} as {} as + ConfigurationOptions, + logger); }); }); it('Should throw if invalid for serviceContext.version', () => { assert.throws(() => { + // we are intentionally providing an invalid configuration + // thus an explicit cast is needed // tslint:disable-next-line:no-unused-expression - new Configuration({serviceContext: {version: true}}, logger); + new Configuration( + {serviceContext: {version: true}} as {} as ConfigurationOptions, + logger); }); }); it('Should throw if invalid for reportUnhandledRejections', () => { assert.throws(() => { + // we are intentionally providing an invalid configuration + // thus an explicit cast is needed // tslint:disable-next-line:no-unused-expression - new Configuration({reportUnhandledRejections: 'INVALID'}, logger); + new Configuration( + {reportUnhandledRejections: 'INVALID'} as {} as + ConfigurationOptions, + logger); }); }); it('Should not throw given an empty object for serviceContext', () => { @@ -171,7 +194,7 @@ describe('Configuration class', () => { }); describe('project id from configuration instance', () => { const pi = 'test'; - let c; + let c: Configuration; before(() => { c = new Configuration({projectId: pi}, logger); }); @@ -184,10 +207,11 @@ describe('Configuration class', () => { }); describe('project number from configuration instance', () => { const pn = 1234; - let c; + let c: Configuration; before(() => { sterilizeConfigEnv(); - c = new Configuration({projectId: pn}, logger); + c = new Configuration( + {projectId: pn} as {} as ConfigurationOptions, logger); }); after(() => { nock.cleanAll(); @@ -200,7 +224,7 @@ describe('Configuration class', () => { }); describe('Exception behaviour', () => { describe('While lacking a project id', () => { - let c; + let c: Configuration; before(() => { sterilizeConfigEnv(); createDeadMetadataService(); @@ -215,11 +239,14 @@ describe('Configuration class', () => { }); }); describe('Invalid type for projectId in runtime config', () => { - let c; + let c: Configuration; before(() => { sterilizeConfigEnv(); createDeadMetadataService(); - c = new Configuration({projectId: null}, logger); + // we are intentionally providing an invalid configuration + // thus an explicit cast is needed + c = new Configuration( + {projectId: null} as {} as ConfigurationOptions, logger); }); after(() => { nock.cleanAll(); @@ -248,7 +275,7 @@ describe('Configuration class', () => { sterilizeConfigEnv(); }); describe('no longer tests env itself', () => { - let c; + let c: Configuration; const projectId = 'test-xyz'; before(() => { process.env.GCLOUD_PROJECT = projectId; @@ -259,7 +286,7 @@ describe('Configuration class', () => { }); }); describe('serviceContext', () => { - let c; + let c: Configuration; const projectId = 'test-abc'; const serviceContext = { service: 'test', @@ -281,7 +308,7 @@ describe('Configuration class', () => { sterilizeConfigEnv(); }); describe('serviceContext', () => { - let c; + let c: Configuration; const projectId = 'xyz123'; const serviceContext = { service: 'evaluation', @@ -298,7 +325,7 @@ describe('Configuration class', () => { }); }); describe('api key', () => { - let c; + let c: Configuration; const projectId = '987abc'; const key = '1337-api-key'; before(() => { @@ -314,7 +341,7 @@ describe('Configuration class', () => { }); }); describe('reportUnhandledRejections', () => { - let c; + let c: Configuration; const reportRejections = false; before(() => { c = new Configuration({ diff --git a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts index 7f9aed3ca27..690542e5103 100644 --- a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts +++ b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts @@ -14,19 +14,21 @@ * limitations under the License. */ -import {Logger} from '@google-cloud/common'; import * as assert from 'assert'; import * as proxyquire from 'proxyquire'; -import {Configuration} from '../../../src/configuration'; +import {Configuration, ConfigurationOptions} from '../../../src/configuration'; +import {Logger} from '../../../src/types'; -function verifyReportedMessage(config1, errToReturn, expectedLogs) { +function verifyReportedMessage( + config1: ConfigurationOptions, errToReturn: Error|null|undefined, + expectedLogs: {error?: string; info?: string;}) { class ServiceStub { authClient: {}; request: {}; constructor() { this.authClient = { - getToken(cb) { + getToken(cb: (err?: Error|null) => void) { cb(errToReturn); }, }; @@ -42,13 +44,13 @@ function verifyReportedMessage(config1, errToReturn, expectedLogs) { const logs: {error?: string; info?: string;} = {}; const logger = { - error(text) { + error(text: string) { if (!logs.error) { logs.error = ''; } logs.error += text; }, - info(text) { + info(text: string) { if (!logs.info) { logs.info = ''; } diff --git a/handwritten/error-reporting/test/unit/interfaces/express.ts b/handwritten/error-reporting/test/unit/interfaces/express.ts index 0cf554f6b70..ca1e8bae245 100644 --- a/handwritten/error-reporting/test/unit/interfaces/express.ts +++ b/handwritten/error-reporting/test/unit/interfaces/express.ts @@ -15,7 +15,7 @@ */ import * as assert from 'assert'; -import * as merge from 'lodash.merge'; +import merge = require('lodash.merge'); import {ErrorMessage} from '../../../src/classes/error-message'; import {RequestHandler} from '../../../src/google-apis/auth-client'; diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.ts b/handwritten/error-reporting/test/unit/interfaces/hapi.ts index 8fc9debf691..93760eab664 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.ts +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.ts @@ -27,6 +27,13 @@ import * as config from '../../../src/configuration'; import {RequestHandler} from '../../../src/google-apis/auth-client'; import {FakeConfiguration as Configuration} from '../../fixtures/configuration'; +type HapiPlugin = { + register: + ((server: {}, options: {}, next: Function) => void)&{ + attributes?: {name: string; version: string;} + } +}; + describe('Hapi interface', () => { describe('Fuzzing the setup handler', () => { it('Should not throw when fuzzed with invalid types', () => { @@ -43,7 +50,7 @@ describe('Hapi interface', () => { return '1'; }, }; - let plugin; + let plugin: HapiPlugin; beforeEach(() => { plugin = hapiInterface(null!, givenConfig as {} as config.Configuration); }); @@ -62,7 +69,7 @@ describe('Hapi interface', () => { it('the plugin\'s attribute property should have a name property', () => { assert(has(plugin.register.attributes, 'name')); assert.strictEqual( - plugin.register.attributes.name, '@google-cloud/error-reporting'); + plugin.register !.attributes!.name, '@google-cloud/error-reporting'); }); it('the plugin\'s attribute property should have a version property', () => { @@ -70,13 +77,13 @@ describe('Hapi interface', () => { }); }); describe('hapiRegisterFunction behaviour', () => { - let fakeServer; + let fakeServer: EventEmitter; beforeEach(() => { fakeServer = new EventEmitter(); }); it('Should call fn when the request-error event is emitted', () => { const fakeClient = { - sendError(errMsg) { + sendError(errMsg: ErrorMessage) { assert( errMsg instanceof ErrorMessage, 'should be an instance of Error message'); @@ -100,7 +107,9 @@ describe('Hapi interface', () => { describe('Behaviour around the request/response lifecycle', () => { const EVENT = 'onPreResponse'; const fakeClient = {sendError() {}} as {} as RequestHandler; - let fakeServer, config, plugin; + let fakeServer: EventEmitter&{ext?: Function}, + config: Configuration&{lacksCredentials?: () => boolean}, + plugin: HapiPlugin; before(() => { config = new Configuration({ projectId: 'xyz', @@ -123,7 +132,7 @@ describe('Hapi interface', () => { }); it('Should call continue when a boom is emitted if reply is an object', done => { - plugin.register(fakeServer, null, () => {}); + plugin.register(fakeServer, null!, () => {}); fakeServer.emit(EVENT, {response: {isBoom: true}}, { continue() { // The continue function should be called @@ -138,7 +147,7 @@ describe('Hapi interface', () => { // that has a `continue` property that is a function. // If `reply.continue()` is not invoked in this situation, the Hapi // app will become unresponsive. - plugin.register(fakeServer, null, () => {}); + plugin.register(fakeServer, null!, () => {}); const reply: Function&{continue?: Function} = () => {}; reply.continue = () => { // The continue function should be called @@ -148,7 +157,7 @@ describe('Hapi interface', () => { }); it('Should call sendError when a boom is received', done => { const fakeClient = { - sendError(err) { + sendError(err: ErrorMessage) { assert(err instanceof ErrorMessage); done(); }, @@ -158,7 +167,7 @@ describe('Hapi interface', () => { fakeServer.emit('onPreResponse', {response: {isBoom: true}}); }); it('Should call next when completing a request', done => { - plugin.register(fakeServer, null, () => { + plugin.register(fakeServer, null!, () => { // The next function should be called done(); }); diff --git a/handwritten/error-reporting/test/unit/interfaces/manual.ts b/handwritten/error-reporting/test/unit/interfaces/manual.ts index db0c5f07863..02b198a23d5 100644 --- a/handwritten/error-reporting/test/unit/interfaces/manual.ts +++ b/handwritten/error-reporting/test/unit/interfaces/manual.ts @@ -23,14 +23,14 @@ const config = new Configuration({}); }; import {ErrorMessage} from '../../../src/classes/error-message'; import {RequestHandler} from '../../../src/google-apis/auth-client'; -import {Logger} from '@google-cloud/common'; +import {Logger} from '../../../src/types'; import {RequestInformationContainer} from '../../../src/classes/request-information-container'; describe('Manual handler', () => { // nock.disableNetConnect(); // Mocked client const client: RequestHandler = { - sendError(e, cb) { + sendError(e: ErrorMessage, cb: () => void) { // immediately callback if (cb) { setImmediate(cb); diff --git a/handwritten/error-reporting/test/unit/logger.ts b/handwritten/error-reporting/test/unit/logger.ts index 635ef50409c..ad4ef1b6680 100644 --- a/handwritten/error-reporting/test/unit/logger.ts +++ b/handwritten/error-reporting/test/unit/logger.ts @@ -19,7 +19,7 @@ import {createLogger} from '../../src/logger'; describe('logger', () => { describe('Initialization', () => { - let oldEnv; + let oldEnv: string|undefined; before(() => { oldEnv = process.env.GCLOUD_ERRORS_LOGLEVEL; delete process.env.GCLOUD_ERRORS_LOGLEVEL; @@ -59,8 +59,8 @@ describe('logger', () => { }); }); describe('Default log level', () => { - let oldLog; - let text; + let oldLog: (text: string) => void; + let text: string|undefined; beforeEach(() => { // eslint-disable-next-line no-console oldLog = console.log; diff --git a/handwritten/error-reporting/test/unit/populate-error-message.ts b/handwritten/error-reporting/test/unit/populate-error-message.ts index a959f5c9fd2..5612b0b4ffe 100644 --- a/handwritten/error-reporting/test/unit/populate-error-message.ts +++ b/handwritten/error-reporting/test/unit/populate-error-message.ts @@ -45,7 +45,7 @@ interface AnnotatedError { } describe('populate-error-message', () => { - let em; + let em: ErrorMessage; const adversarialObjectInput = { stack: {}, }; @@ -226,7 +226,7 @@ describe('populate-error-message', () => { 'given an Error', () => { const err: AnnotatedError = new Error(); - const TEST_STACK_INVALID_TYPE = []; + const TEST_STACK_INVALID_TYPE = [] as {}; err.stack = TEST_STACK_INVALID_TYPE; populateErrorMessage(err, em); assert.deepEqual(em.context.reportLocation, TEST_STACK_DEFAULT); diff --git a/handwritten/error-reporting/test/unit/request-extractors/express.ts b/handwritten/error-reporting/test/unit/request-extractors/express.ts index bc400e41c77..9cb00775861 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/express.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/express.ts @@ -22,7 +22,7 @@ import {expressRequestInformationExtractor} from '../../../src/request-extractor import {Fuzzer} from '../../../utils/fuzzer'; describe('Behaviour under varying input', () => { - let f; + let f: Fuzzer; const DEFAULT_RETURN_VALUE = { method: '', url: '', @@ -35,7 +35,7 @@ describe('Behaviour under varying input', () => { f = new Fuzzer(); }); it('Should return a default value given invalid input', () => { - const cbFn = value => { + const cbFn = (value: {}) => { assert.deepEqual(value, DEFAULT_RETURN_VALUE); }; f.fuzzFunctionForTypes( @@ -102,9 +102,10 @@ describe('Behaviour under varying input', () => { remoteAddress: '', statusCode: 201, }; - const headerFactory = toDeriveFrom => { + // tslint:disable-next-line:no-any + const headerFactory = (toDeriveFrom: any) => { const lrn = extend({}, toDeriveFrom); - lrn.header = toRet => { + lrn.header = (toRet: string) => { if (lrn.hasOwnProperty(toRet)) { return lrn[toRet]; } diff --git a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts index 72772aacaee..e658eb55601 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts @@ -32,7 +32,7 @@ describe('hapiRequestInformationExtractor behaviour', () => { remoteAddress: '', }; const f = new Fuzzer(); - const cbFn = value => { + const cbFn = (value: {}) => { assert.deepEqual(value, DEFAULT_RETURN_VALUE); }; f.fuzzFunctionForTypes(hapiRequestInformationExtractor, ['object'], cbFn); diff --git a/handwritten/error-reporting/test/unit/request-extractors/koa.ts b/handwritten/error-reporting/test/unit/request-extractors/koa.ts index 573660691c2..a99ea0615ed 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/koa.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/koa.ts @@ -32,7 +32,7 @@ describe('koaRequestInformationExtractor', () => { remoteAddress: '', }; const f = new Fuzzer(); - const cbFn = value => { + const cbFn = (value: {}) => { assert.deepEqual(value, DEFAULT_RETURN_VALUE); }; f.fuzzFunctionForTypes( diff --git a/handwritten/error-reporting/test/unit/request-extractors/manual.ts b/handwritten/error-reporting/test/unit/request-extractors/manual.ts index 9a8784804fe..5de9d868ff5 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/manual.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/manual.ts @@ -16,7 +16,7 @@ import * as assert from 'assert'; import * as extend from 'extend'; -import * as omit from 'lodash.omit'; +import omit = require('lodash.omit'); import {manualRequestInformationExtractor} from '../../../src/request-extractors/manual'; import {Fuzzer} from '../../../utils/fuzzer'; @@ -33,7 +33,7 @@ describe('manualRequestInformationExtractor', () => { remoteAddress: '', }; const f = new Fuzzer(); - const cbFn = value => { + const cbFn = (value: {}) => { assert.deepEqual(value, DEFAULT_RETURN_VALUE); }; f.fuzzFunctionForTypes( diff --git a/handwritten/error-reporting/test/unit/service-configuration.ts b/handwritten/error-reporting/test/unit/service-configuration.ts index 2cbc554aa86..981be8b8fd2 100644 --- a/handwritten/error-reporting/test/unit/service-configuration.ts +++ b/handwritten/error-reporting/test/unit/service-configuration.ts @@ -39,7 +39,9 @@ function sterilizeServiceConfigEnv() { delete process.env[key]; }); } -function setEnv(serviceName, serviceVersion, moduleName, mv, fn) { +function setEnv( + serviceName: string|null, serviceVersion: string, moduleName: string|null, + mv: string, fn: string|null) { assign( process.env, omitBy( diff --git a/handwritten/error-reporting/tsconfig.json b/handwritten/error-reporting/tsconfig.json index 40e62d9940a..6a6a03b1209 100644 --- a/handwritten/error-reporting/tsconfig.json +++ b/handwritten/error-reporting/tsconfig.json @@ -2,8 +2,7 @@ "extends": "./node_modules/gts/tsconfig-google.json", "compilerOptions": { "rootDir": ".", - "outDir": "build", - "noImplicitAny": false + "outDir": "build" }, "include": [ "src/*.ts", diff --git a/handwritten/error-reporting/utils/errors-api-transport.ts b/handwritten/error-reporting/utils/errors-api-transport.ts index 93d8f9049da..0c7c152abf7 100644 --- a/handwritten/error-reporting/utils/errors-api-transport.ts +++ b/handwritten/error-reporting/utils/errors-api-transport.ts @@ -14,7 +14,34 @@ * limitations under the License. */ +import {Configuration} from '../src/configuration'; import {RequestHandler as AuthClient} from '../src/google-apis/auth-client'; +import * as types from '../src/types'; + +export interface ServiceContext { + service: string; + version: string; + resourceType: string; +} + +export interface ErrorEvent { + eventTime: string; + serviceContext: ServiceContext; + message: string; + // other fields not used in the tests have been omitted +} + +export interface ErrorGroupStats { + representative: ErrorEvent; + count: string; + // other fields not used in the tests have been omitted +} + +export interface GroupStatesResponse { + errorGroupStats: ErrorGroupStats[]; + nextPageToken: string; + timeRangeBegin: string; +} /* @const {String} Base Error Reporting API */ const API = 'https://clouderrorreporting.googleapis.com/v1beta1/projects'; @@ -22,11 +49,11 @@ const API = 'https://clouderrorreporting.googleapis.com/v1beta1/projects'; const ONE_HOUR_API = 'timeRange.period=PERIOD_1_HOUR'; export class ErrorsApiTransport extends AuthClient { - constructor(config, logger) { + constructor(config: Configuration, logger: types.Logger) { super(config, logger); } - deleteAllEvents(cb) { + deleteAllEvents(cb: (err: Error|null) => void) { const self = this; self.getProjectId((err, id) => { if (err) { @@ -48,7 +75,7 @@ export class ErrorsApiTransport extends AuthClient { }); } - getAllGroups(cb) { + getAllGroups(cb: (err: Error|null, data?: ErrorGroupStats[]) => void) { const self = this; self.getProjectId((err, id) => { if (err) { diff --git a/handwritten/error-reporting/utils/fuzzer.ts b/handwritten/error-reporting/utils/fuzzer.ts index 5ec447406d8..24bfb52745b 100644 --- a/handwritten/error-reporting/utils/fuzzer.ts +++ b/handwritten/error-reporting/utils/fuzzer.ts @@ -43,8 +43,8 @@ export class Fuzzer { ]; }, - string(len) { - const lenChecked = isNumber(len) ? len : 10; + string(len?: number) { + const lenChecked = (isNumber(len) ? len : 10)!; const chars: string[] = []; for (let i = 0; i < lenChecked; i++) { @@ -58,8 +58,8 @@ export class Fuzzer { return !!random(0, 1); }, - alphaNumericString(len) { - const lenChecked = isNumber(len) ? len : 10; + alphaNumericString(len?: number) { + const lenChecked = (isNumber(len) ? len : 10)!; const chars: string[] = []; let thisRange: number[] = []; const ranges = [[48, 57], [65, 90], [97, 122]]; @@ -72,7 +72,7 @@ export class Fuzzer { return chars.join(''); }, - function() { + function(this: {[key: string]: () => void; types: () => string[];}) { const availableTypes = without(this.types(), 'function'); const typeToGen = this.types()[random(0, availableTypes.length - 1)]; const fnToCall = this[typeToGen]; @@ -82,9 +82,9 @@ export class Fuzzer { }; }, - number(lower, upper) { - const lowerChecked = isNumber(lower) ? lower : 0; - const upperChecked = isNumber(upper) ? upper : 100; + number(lower?: number, upper?: number) { + const lowerChecked = (isNumber(lower) ? lower : 0)!; + const upperChecked = (isNumber(upper) ? upper : 100)!; return random(lowerChecked, upperChecked); }, @@ -97,16 +97,18 @@ export class Fuzzer { return undefined; }, - array(len, ofOneType, currentDepth, allowedDepth) { - const lenChecked = isNumber(len) ? len : random(1, 10); + array( + len?: number, ofOneType?: string, currentDepth?: number, + allowedDepth?: number) { + const lenChecked = (isNumber(len) ? len : random(1, 10))!; let availableTypes = - isString(ofOneType) && indexOf(this.types(), ofOneType) > -1 ? - [ofOneType] : - this.types(); - let currentDepthChecked = isNumber(currentDepth) ? currentDepth : 0; - const allowedDepthChecked = isNumber(allowedDepth) ? allowedDepth : 3; + (isString(ofOneType) && indexOf(this.types(), ofOneType) > -1 ? + [ofOneType] : + this.types())!; + let currentDepthChecked = (isNumber(currentDepth) ? currentDepth : 0)!; + const allowedDepthChecked = (isNumber(allowedDepth) ? allowedDepth : 3)!; const arr: Array<{}> = []; - let currentTypeBeingGenerated = ''; + let currentTypeBeingGenerated: string|undefined = ''; currentDepthChecked += 1; // Deny the ability to nest more objects @@ -120,30 +122,32 @@ export class Fuzzer { if (currentTypeBeingGenerated === 'object') { arr.push(this[currentTypeBeingGenerated]( - null, currentDepthChecked, allowedDepthChecked)); + null!, currentDepthChecked, allowedDepthChecked)); } else if (currentTypeBeingGenerated === 'array') { arr.push(this[currentTypeBeingGenerated]( - null, ofOneType, currentDepthChecked, allowedDepthChecked)); + null!, ofOneType, currentDepthChecked, allowedDepthChecked)); } else { - arr.push(this[currentTypeBeingGenerated]()); + arr.push(( + this as {[key: string]: Function})[currentTypeBeingGenerated!]()); } } return arr; }, - object(numProperties, currentDepth, allowedDepth) { + object( + numProperties?: number, currentDepth?: number, allowedDepth?: number) { const numPropertiesChecked = - isNumber(numProperties) ? numProperties : random(1, 10); - let currentDepthChecked = isNumber(currentDepth) ? currentDepth : 0; - const allowedDepthChecked = isNumber(allowedDepth) ? allowedDepth : 3; - const obj = {}; + (isNumber(numProperties) ? numProperties : random(1, 10))!; + let currentDepthChecked = (isNumber(currentDepth) ? currentDepth : 0)!; + const allowedDepthChecked = (isNumber(allowedDepth) ? allowedDepth : 3)!; + const obj: {[key: string]: {}} = {}; currentDepthChecked += 1; let availableTypes = this.types(); // Deny the ability to nest more objects - if (currentDepth >= allowedDepth) { + if (currentDepth! >= allowedDepth!) { availableTypes = without(availableTypes, 'object', 'array'); } @@ -157,12 +161,13 @@ export class Fuzzer { if (currentTypeBeingGenerated === 'object') { obj[currentKey] = this[currentTypeBeingGenerated]( - null, currentDepthChecked, allowedDepthChecked); + null!, currentDepthChecked, allowedDepthChecked); } else if (currentTypeBeingGenerated === 'array') { obj[currentKey] = this[currentTypeBeingGenerated]( - null, null, currentDepthChecked, allowedDepthChecked); + null!, null!, currentDepthChecked, allowedDepthChecked); } else { - obj[currentKey] = this[currentTypeBeingGenerated](); + obj[currentKey] = + (this as {[key: string]: Function})[currentTypeBeingGenerated](); } } @@ -170,10 +175,10 @@ export class Fuzzer { } }; - _backFillUnevenTypesArrays(argsTypesArray) { + _backFillUnevenTypesArrays(argsTypesArray: Array>) { const largestLength = maxBy(argsTypesArray, o => { return o.length; - }).length; + })!.length; for (let i = 0; i < argsTypesArray.length; i++) { if (argsTypesArray[i].length !== largestLength) { @@ -187,7 +192,7 @@ export class Fuzzer { return argsTypesArray; } - _normalizeTypesArrayLengths(argsTypesArray) { + _normalizeTypesArrayLengths(argsTypesArray: Array>) { let allAreTheSameLength = true; const lastLength = argsTypesArray[0].length; @@ -205,7 +210,7 @@ export class Fuzzer { return this._backFillUnevenTypesArrays(argsTypesArray); } - _generateTypesToFuzzWith(expectsArgTypes) { + _generateTypesToFuzzWith(expectsArgTypes: Array) { let argsTypesArray: Array> = []; let tmpArray = this.generate.types(); @@ -226,25 +231,27 @@ export class Fuzzer { return argsTypesArray; } - _generateValuesForFuzzTyping(typesToFuzzOnEach, index) { + _generateValuesForFuzzTyping(typesToFuzzOnEach: string[][], index: number) { const args: Array<{}> = []; let typeToGen = ''; + const gen = this.generate as {[key: string]: Function}; for (let i = 0; i < typesToFuzzOnEach.length; i++) { typeToGen = typesToFuzzOnEach[i][index]; - args.push(this.generate[typeToGen]()); + args.push(gen[typeToGen]()); } return args; } fuzzFunctionForTypes( - fnToFuzz, expectsArgTypes?: {}, cb?: Function, withContext?: {}) { + fnToFuzz: Function, expectsArgTypes?: string[], cb?: Function, + withContext?: {}) { const expectsArgTypesChecked = - isArray(expectsArgTypes) ? expectsArgTypes : []; + (isArray(expectsArgTypes) ? expectsArgTypes : [])!; const typesToFuzzOnEach = - this._generateTypesToFuzzWith(expectsArgTypesChecked); + this._generateTypesToFuzzWith(expectsArgTypesChecked) as string[][]; let returnValue = undefined; From b3ba9339f75e167181064186a1acba24386f1e4d Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Wed, 11 Apr 2018 13:48:45 -0700 Subject: [PATCH 088/527] feat: support Hapi17 (#89) --- handwritten/error-reporting/package-lock.json | 165 +++++++++--------- handwritten/error-reporting/src/index.ts | 5 +- .../error-reporting/src/interfaces/hapi.ts | 84 ++++++--- .../src/request-extractors/hapi.ts | 16 +- .../system-test/test-install.ts | 64 ++++++- .../test/unit/interfaces/hapi.ts | 101 +++++++++++ 6 files changed, 313 insertions(+), 122 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index a965d890f7e..111e4109eac 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -106,9 +106,9 @@ } }, "@google-cloud/nodejs-repo-tools": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/@google-cloud/nodejs-repo-tools/-/nodejs-repo-tools-2.2.6.tgz", - "integrity": "sha512-bDEgNBAJ8kfYWrpifg+D7rXs8NUBUUeu2I6NWkcL9IOXg86rblu7xnhFHRxBMcvytJ+7WY4pvkCLxO1v3QBsXg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@google-cloud/nodejs-repo-tools/-/nodejs-repo-tools-2.3.0.tgz", + "integrity": "sha512-c8dIGESnNkmM88duFxGHvMQP5QKPgp/sfJq0QhC6+gOcJC7/PKjqd0PkmgPPeIgVl6SXy5Zf/KLbxnJUVgNT1Q==", "dev": true, "requires": { "ava": "0.25.0", @@ -119,6 +119,7 @@ "lodash": "4.17.5", "nyc": "11.4.1", "proxyquire": "1.8.0", + "semver": "5.5.0", "sinon": "4.3.0", "string": "3.3.3", "supertest": "3.0.0", @@ -2007,7 +2008,7 @@ "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", "dev": true, "requires": { - "@types/node": "9.6.2" + "@types/node": "9.6.4" } }, "@types/body-parser": { @@ -2017,7 +2018,7 @@ "dev": true, "requires": { "@types/express": "4.11.1", - "@types/node": "9.6.2" + "@types/node": "9.6.4" } }, "@types/boom": { @@ -2033,7 +2034,7 @@ "dev": true, "requires": { "@types/events": "1.2.0", - "@types/node": "9.6.2" + "@types/node": "9.6.4" } }, "@types/caseless": { @@ -2057,7 +2058,7 @@ "integrity": "sha512-OPSxsP6XqA3984KWDUXq/u05Hu8VWa/2rUVlw/aDUOx87BptIep6xb3NdCxCpKLfLdjZcCE5jR+gouTul3gjdA==", "dev": true, "requires": { - "@types/node": "9.6.2" + "@types/node": "9.6.4" } }, "@types/cookies": { @@ -2069,7 +2070,7 @@ "@types/connect": "3.4.31", "@types/express": "4.11.1", "@types/keygrip": "1.0.1", - "@types/node": "9.6.2" + "@types/node": "9.6.4" } }, "@types/events": { @@ -2096,7 +2097,7 @@ "dev": true, "requires": { "@types/events": "1.2.0", - "@types/node": "9.6.2" + "@types/node": "9.6.4" } }, "@types/extend": { @@ -2111,7 +2112,7 @@ "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", "dev": true, "requires": { - "@types/node": "9.6.2" + "@types/node": "9.6.4" } }, "@types/glob": { @@ -2122,7 +2123,7 @@ "requires": { "@types/events": "1.2.0", "@types/minimatch": "3.0.3", - "@types/node": "9.6.2" + "@types/node": "9.6.4" } }, "@types/hapi": { @@ -2136,7 +2137,7 @@ "@types/events": "1.2.0", "@types/joi": "13.0.7", "@types/mimos": "3.0.1", - "@types/node": "9.6.2", + "@types/node": "9.6.4", "@types/podium": "1.0.0", "@types/shot": "3.4.0" } @@ -2166,9 +2167,9 @@ "dev": true }, "@types/koa": { - "version": "2.0.44", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.0.44.tgz", - "integrity": "sha512-xOg6XLJdKmYriExAF0pV+HYhzftNJbpxplJgjyCwEM2LNLQPMgW4uSHXjgsqSPKsaAgM8CiR31vIeocRibFSjw==", + "version": "2.0.45", + "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.0.45.tgz", + "integrity": "sha512-emzrfiyQFMtx/dPMVhEMM1GU/p7QbRYWgubp1VGsR+bIC/53ehDf5IATM2fEZhoyHPeLuYyQVAjSPc/YqoWMSQ==", "dev": true, "requires": { "@types/accepts": "1.3.5", @@ -2177,7 +2178,7 @@ "@types/http-assert": "1.2.2", "@types/keygrip": "1.0.1", "@types/koa-compose": "3.2.2", - "@types/node": "9.6.2" + "@types/node": "9.6.4" } }, "@types/koa-compose": { @@ -2330,22 +2331,22 @@ "integrity": "sha512-TeiJ7uvv/92ugSqZ0v9l0eNXzutlki0aK+R1K5bfA5SYUil46ITlxLW4iNTCf55P4L5weCmaOdtxGeGWvudwPg==", "dev": true, "requires": { - "@types/node": "9.6.2" + "@types/node": "9.6.4" } }, "@types/nock": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@types/nock/-/nock-9.1.2.tgz", - "integrity": "sha512-Vdd1dRTUT5S1ONTcAMmQ2PCzIQccKMOpgu9T+knvJeGRCt29j3tcz9oRC1AM6OXD81+8U4mVuWzHklTlQW7W+w==", + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/@types/nock/-/nock-9.1.3.tgz", + "integrity": "sha512-S8rJ+SaW82ICX87pZP62UcMifrMfjEdqNzSp+llx4YcvKw6bO650Ye6HwTqER1Dar3S40GIZECQisOrAICDCjA==", "dev": true, "requires": { - "@types/node": "9.6.2" + "@types/node": "9.6.4" } }, "@types/node": { - "version": "9.6.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.2.tgz", - "integrity": "sha512-UWkRY9X7RQHp5OhhRIIka58/gVVycL1zHZu0OTsT5LI86ABaMOSbUjAl+b0FeDhQcxclrkyft3kW5QWdMRs8wQ==", + "version": "9.6.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.4.tgz", + "integrity": "sha512-Awg4BcUYiZtNKoveGOu654JVPt11V/KIC77iBz8NweyoOAZpz5rUJfPDwwD+ajfTs2HndbTCEB8IuLfX9m/mmw==", "dev": true }, "@types/once": { @@ -2380,7 +2381,7 @@ "requires": { "@types/caseless": "0.12.1", "@types/form-data": "2.2.1", - "@types/node": "9.6.2", + "@types/node": "9.6.4", "@types/tough-cookie": "2.3.2" } }, @@ -2391,7 +2392,7 @@ "dev": true, "requires": { "@types/bunyan": "1.8.4", - "@types/node": "9.6.2", + "@types/node": "9.6.4", "@types/spdy": "3.4.4" } }, @@ -2402,7 +2403,7 @@ "dev": true, "requires": { "@types/glob": "5.0.35", - "@types/node": "9.6.2" + "@types/node": "9.6.4" } }, "@types/serve-static": { @@ -2421,7 +2422,7 @@ "integrity": "sha1-RZR3xRh9Pr0wNmCrCZ5+ng87ZW8=", "dev": true, "requires": { - "@types/node": "9.6.2" + "@types/node": "9.6.4" } }, "@types/spdy": { @@ -2430,7 +2431,7 @@ "integrity": "sha512-N9LBlbVRRYq6HgYpPkqQc3a9HJ/iEtVZToW6xlTtJiMhmRJ7jJdV7TaZQJw/Ve/1ePUsQiCTDc4JMuzzag94GA==", "dev": true, "requires": { - "@types/node": "9.6.2" + "@types/node": "9.6.4" } }, "@types/tmp": { @@ -2785,7 +2786,7 @@ "clean-stack": "1.3.0", "clean-yaml-object": "0.1.0", "cli-cursor": "2.1.0", - "cli-spinners": "1.3.0", + "cli-spinners": "1.3.1", "cli-truncate": "1.1.0", "co-with-promise": "4.6.0", "code-excerpt": "2.1.1", @@ -2866,9 +2867,9 @@ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", + "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==" }, "axios": { "version": "0.18.0", @@ -3122,7 +3123,7 @@ "babel-generator": "6.26.1", "babylon": "6.18.0", "call-matcher": "1.0.1", - "core-js": "2.5.4", + "core-js": "2.5.5", "espower-location-detector": "1.0.0", "espurify": "1.7.0", "estraverse": "4.2.0" @@ -3269,7 +3270,7 @@ "requires": { "babel-core": "6.26.0", "babel-runtime": "6.26.0", - "core-js": "2.5.4", + "core-js": "2.5.5", "home-or-tmp": "2.0.0", "lodash": "4.17.5", "mkdirp": "0.5.1", @@ -3293,7 +3294,7 @@ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.5.4", + "core-js": "2.5.5", "regenerator-runtime": "0.11.1" } }, @@ -3643,7 +3644,7 @@ "integrity": "sha1-UTTQd5hPcSpU2tPL9i3ijc5BbKg=", "dev": true, "requires": { - "core-js": "2.5.4", + "core-js": "2.5.5", "deep-equal": "1.0.1", "espurify": "1.7.0", "estraverse": "4.2.0" @@ -3904,9 +3905,9 @@ } }, "cli-spinners": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.0.tgz", - "integrity": "sha512-ahr3q/EW26uLN3vqBaDQS4g1rUwKMbVSTRlyfyoY06VwwSJmMYRxhT3FTAiTz9Yam6OOb1e0ldwvbsnuThvuzA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz", + "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==", "dev": true }, "cli-table": { @@ -4137,7 +4138,7 @@ "dev": true, "requires": { "aws-sign2": "0.6.0", - "aws4": "1.6.0", + "aws4": "1.7.0", "caseless": "0.12.0", "combined-stream": "1.0.6", "extend": "3.0.1", @@ -4392,9 +4393,9 @@ } }, "core-js": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.4.tgz", - "integrity": "sha1-8si/GB8qgLkvNgEhQpzmOi8K6uA=", + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", + "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=", "dev": true }, "core-util-is": { @@ -4958,7 +4959,7 @@ "integrity": "sha1-bw2nNEf07dg4/sXGAxOoi6XLhSs=", "dev": true, "requires": { - "core-js": "2.5.4", + "core-js": "2.5.5", "empower-core": "0.6.2" } }, @@ -4978,7 +4979,7 @@ "dev": true, "requires": { "call-signature": "0.0.2", - "core-js": "2.5.4" + "core-js": "2.5.5" } }, "encodeurl": { @@ -5259,14 +5260,14 @@ "requires": { "ignore": "3.3.7", "minimatch": "3.0.4", - "resolve": "1.6.0", + "resolve": "1.7.0", "semver": "5.5.0" }, "dependencies": { "resolve": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.6.0.tgz", - "integrity": "sha512-mw7JQNu5ExIkcw4LPih0owX/TZXjD/ZUF/ZQ/pDnkw3ZKhDcZZw5klmBlj6gVMwjQ3Pz5Jgu7F3d0jcDVuEWdw==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.0.tgz", + "integrity": "sha512-QdgZ5bjR1WAlpLaO5yHepFvC+o3rCr6wpfE2tpJNMkXdulf2jKomQBdNRQITF3ZKHNlT71syG98yQP03gasgnA==", "dev": true, "requires": { "path-parse": "1.0.5" @@ -5395,7 +5396,7 @@ "integrity": "sha1-HFz2y8zDLm9jk4C9T5kfq5up0iY=", "dev": true, "requires": { - "core-js": "2.5.4" + "core-js": "2.5.5" } }, "esquery": { @@ -6987,9 +6988,9 @@ } }, "google-auth-library": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-1.3.2.tgz", - "integrity": "sha512-aRz0om4Bs85uyR2Ousk3Gb8Nffx2Sr2RoKts1smg1MhRwrehE1aD1HC4RmprNt1HVJ88IDnQ8biJQ/aXjiIxlQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-1.4.0.tgz", + "integrity": "sha512-vWRx6pJulK7Y5V/Xyr7MPMlx2mWfmrUVbcffZ7hpq8ElFg5S8WY6PvjMovdcr6JfuAwwpAX4R0I1XOcyWuBcUw==", "requires": { "axios": "0.18.0", "gcp-metadata": "0.6.3", @@ -7007,7 +7008,7 @@ "requires": { "async": "2.6.0", "gcp-metadata": "0.6.3", - "google-auth-library": "1.3.2", + "google-auth-library": "1.4.0", "request": "2.85.0" } }, @@ -7992,9 +7993,9 @@ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isemail": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.1.1.tgz", - "integrity": "sha512-mVjAjvdPkpwXW61agT2E9AkGoegZO7SdJGCezWwxnETL58f5KwJ4vSVAMBUL5idL6rTlYAIGkX3n4suiviMLNw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.1.2.tgz", + "integrity": "sha512-zfRhJn9rFSGhzU5tGZqepRSAj3+g6oTOHxMGGriWNJZzyLPUK8H7VHpqKntegnW8KLyGA9zwuNaCoopl40LTpg==", "dev": true, "requires": { "punycode": "2.1.0" @@ -8051,7 +8052,7 @@ "dev": true, "requires": { "hoek": "5.0.3", - "isemail": "3.1.1", + "isemail": "3.1.2", "topo": "3.0.0" }, "dependencies": { @@ -8071,7 +8072,7 @@ "requires": { "argparse": "1.0.10", "axios": "0.18.0", - "npm-package-arg": "6.0.0", + "npm-package-arg": "6.1.0", "package-json": "4.0.1", "pify": "3.0.0", "spdx-correct": "3.0.0", @@ -9474,9 +9475,9 @@ } }, "nock": { - "version": "9.2.3", - "resolved": "https://registry.npmjs.org/nock/-/nock-9.2.3.tgz", - "integrity": "sha512-4XYNSJDJ/PvNoH+cCRWcGOOFsq3jtZdNTRIlPIBA7CopGWJO56m5OaPEjjJ3WddxNYfe5HL9sQQAtMt8oyR9AA==", + "version": "9.2.5", + "resolved": "https://registry.npmjs.org/nock/-/nock-9.2.5.tgz", + "integrity": "sha512-ciCpyEq72Ws6/yhdayDfd0mAb3eQ7/533xKmFlBQZ5CDwrL0/bddtSicfL7R07oyvPAuegQrR+9ctrlPEp0EjQ==", "dev": true, "requires": { "chai": "4.1.2", @@ -9571,9 +9572,9 @@ } }, "npm-package-arg": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.0.0.tgz", - "integrity": "sha512-hwC7g81KLgRmchv9ol6f3Fx4Yyc9ARX5X5niDHVILgpuvf08JRIgOZcEfpFXli3BgESoTrkauqorXm6UbvSgSg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.0.tgz", + "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", "dev": true, "requires": { "hosted-git-info": "2.6.0", @@ -13259,7 +13260,7 @@ "integrity": "sha1-7bo1LT7YpgMRTWZyZazOYNaJzN8=", "dev": true, "requires": { - "core-js": "2.5.4", + "core-js": "2.5.5", "power-assert-context-traversal": "1.1.1" } }, @@ -13271,7 +13272,7 @@ "requires": { "acorn": "4.0.13", "acorn-es7-plugin": "1.1.7", - "core-js": "2.5.4", + "core-js": "2.5.5", "espurify": "1.7.0", "estraverse": "4.2.0" }, @@ -13290,7 +13291,7 @@ "integrity": "sha1-iMq8oNE7Y1nwfT0+ivppkmRXftk=", "dev": true, "requires": { - "core-js": "2.5.4", + "core-js": "2.5.5", "estraverse": "4.2.0" } }, @@ -13300,7 +13301,7 @@ "integrity": "sha1-XcEl7VCj37HdomwZNH879Y7CiEo=", "dev": true, "requires": { - "core-js": "2.5.4", + "core-js": "2.5.5", "power-assert-context-formatter": "1.1.1", "power-assert-context-reducer-ast": "1.1.2", "power-assert-renderer-assertion": "1.1.1", @@ -13331,7 +13332,7 @@ "integrity": "sha1-10Odl9hRVr5OMKAPL7WnJRTOPAg=", "dev": true, "requires": { - "core-js": "2.5.4", + "core-js": "2.5.5", "diff-match-patch": "1.0.0", "power-assert-renderer-base": "1.1.1", "stringifier": "1.3.0", @@ -13344,7 +13345,7 @@ "integrity": "sha1-ZV+PcRk1qbbVQbhjJ2VHF8Y3qYY=", "dev": true, "requires": { - "core-js": "2.5.4", + "core-js": "2.5.5", "power-assert-renderer-base": "1.1.1", "power-assert-util-string-width": "1.1.1", "stringifier": "1.3.0" @@ -13806,7 +13807,7 @@ "integrity": "sha512-8H7Ehijd4js+s6wuVPLjwORxD4zeuyjYugprdOXlPSqaApmL/QOy+EB/beICHVCHkGMKNh5rvihb5ov+IDw4mg==", "requires": { "aws-sign2": "0.7.0", - "aws4": "1.6.0", + "aws4": "1.7.0", "caseless": "0.12.0", "combined-stream": "1.0.6", "extend": "3.0.1", @@ -14560,7 +14561,7 @@ "integrity": "sha1-3vGDQvaTPbDy2/yaoCF1tEjBeVk=", "dev": true, "requires": { - "core-js": "2.5.4", + "core-js": "2.5.5", "traverse": "0.6.6", "type-name": "2.0.2" } @@ -14900,16 +14901,16 @@ "glob": "7.1.2", "js-yaml": "3.11.0", "minimatch": "3.0.4", - "resolve": "1.6.0", + "resolve": "1.7.0", "semver": "5.5.0", "tslib": "1.9.0", - "tsutils": "2.26.0" + "tsutils": "2.26.1" }, "dependencies": { "resolve": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.6.0.tgz", - "integrity": "sha512-mw7JQNu5ExIkcw4LPih0owX/TZXjD/ZUF/ZQ/pDnkw3ZKhDcZZw5klmBlj6gVMwjQ3Pz5Jgu7F3d0jcDVuEWdw==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.0.tgz", + "integrity": "sha512-QdgZ5bjR1WAlpLaO5yHepFvC+o3rCr6wpfE2tpJNMkXdulf2jKomQBdNRQITF3ZKHNlT71syG98yQP03gasgnA==", "dev": true, "requires": { "path-parse": "1.0.5" @@ -14918,9 +14919,9 @@ } }, "tsutils": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.26.0.tgz", - "integrity": "sha512-hXUttgxeaZ/uPP/dpeiWUHbP5h744mPrfN2YFFtcZzd7vBRPBP6Knr0Mt6Bd+5SntMn8/1r6IGFeYPDSBIIPpg==", + "version": "2.26.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.26.1.tgz", + "integrity": "sha512-bnm9bcjOqOr1UljleL94wVCDlpa6KjfGaTkefeLch4GRafgDkROxPizbB/FxTEdI++5JqhxczRy/Qub0syNqZA==", "dev": true, "requires": { "tslib": "1.9.0" diff --git a/handwritten/error-reporting/src/index.ts b/handwritten/error-reporting/src/index.ts index 0753791cf56..95506e73405 100644 --- a/handwritten/error-reporting/src/index.ts +++ b/handwritten/error-reporting/src/index.ts @@ -105,7 +105,10 @@ export class ErrorReporting { request?: manualRequestExtractor.Request, additionalMessage?: string|{}, callback?: manualInterface.Callback|{}|string) => ErrorMessage; event: () => ErrorMessage; - hapi: {register: (server: {}, options: {}, next: Function) => void}; + hapi: { + register: (server: {}, options: {}, next?: Function) => void; name: string; + version?: string; + }; express: (err: {}, req: {}, res: {}, next: Function) => void; restify: (server: {}) => RestifyRequestHandler | RestifyRequestHandler[]; // tslint:disable-next-line:no-any diff --git a/handwritten/error-reporting/src/interfaces/hapi.ts b/handwritten/error-reporting/src/interfaces/hapi.ts index da42a7fe2a7..10181a23220 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.ts +++ b/handwritten/error-reporting/src/interfaces/hapi.ts @@ -37,13 +37,13 @@ import * as hapi from 'hapi'; * @returns {ErrorMessage} - a partially or fully populated instance of * ErrorMessage */ -function hapiErrorHandler(req: hapi.Request, err: {}, config: Configuration) { +function hapiErrorHandler(err: {}, req?: hapi.Request, config?: Configuration) { let service = ''; let version: string|undefined = ''; if (isObject(config)) { - service = config.getServiceContext().service; - version = config.getServiceContext().version; + service = config!.getServiceContext().service; + version = config!.getServiceContext().version; } const em = @@ -78,40 +78,68 @@ export function makeHapiPlugin(client: RequestHandler, config: Configuration) { * plugin * @returns {Undefined} - returns the execution of the next callback */ - function hapiRegisterFunction(server: {}, options: {}, next: Function) { - if (isObject(server)) { - if (isFunction((server as hapi.Server).on)) { - (server as hapi.Server).on('request-error', (req, err) => { - client.sendError(hapiErrorHandler(req, err, config)); - }); - } + function hapiRegisterFunction( + server: any, // tslint:disable-line:no-any + options: {}, next?: Function) { + if (server) { + if (server.events && server.events.on) { + // Hapi 17 is being used + server.events.on( + 'log', (event: {error?: {}; channel: string;}, tags: {}) => { + if (event.error && event.channel === 'app') { + client.sendError(hapiErrorHandler(event.error)); + } + }); + + server.events.on( + 'request', + (request: hapi.Request, event: {error?: {}; channel: string;}, + tags: {}) => { + if (event.error && event.channel === 'error') { + client.sendError(hapiErrorHandler(event.error, request)); + } + }); + } else { + if (isFunction(server.on)) { + server.on('request-error', (req: hapi.Request, err: {}) => { + client.sendError(hapiErrorHandler(err, req, config)); + }); + } - if (isFunction((server as hapi.Server).ext)) { - (server as hapi.Server).ext('onPreResponse', (request, reply) => { - if (isObject(request) && isObject(request.response) && - // TODO: Handle the case when `request.response` is null - request.response!.isBoom) { - const em = hapiErrorHandler( - request, - // TODO: Handle the case when `request.response` is null - // TODO: Handle the type conflict that requires a cast to string - new Error(request.response!.message as {} as string), config); - client.sendError(em); - } + if (isFunction(server.ext)) { + server.ext( + 'onPreResponse', + (request: hapi.Request, reply: hapi.ReplyWithContinue) => { + if (isObject(request) && isObject(request.response) && + // TODO: Handle the case when `request.response` is null + request.response!.isBoom) { + const em = hapiErrorHandler( + // TODO: Handle the case when `request.response` is null + // TODO: Handle the type conflict that requires a cast to + // string + new Error(request.response!.message as {} as string), + request, config); + client.sendError(em); + } - if (reply && isFunction(reply.continue)) { - reply.continue(); - } - }); + if (reply && isFunction(reply.continue)) { + reply.continue(); + } + }); + } } } if (isFunction(next)) { - return next(); + return next!(); } } - const hapiPlugin = {register: hapiRegisterFunction}; + const hapiPlugin = { + register: hapiRegisterFunction, + name: packageJson.name, + version: packageJson.version + }; (hapiPlugin.register as {} as {attributes: {}}).attributes = { name: packageJson.name, diff --git a/handwritten/error-reporting/src/request-extractors/hapi.ts b/handwritten/error-reporting/src/request-extractors/hapi.ts index 9ab1f4b762c..31be14f8647 100644 --- a/handwritten/error-reporting/src/request-extractors/hapi.ts +++ b/handwritten/error-reporting/src/request-extractors/hapi.ts @@ -77,22 +77,22 @@ function extractRemoteAddressFromRequest(req: hapi.Request) { * @returns {RequestInformationContainer} - an object containing the request * information in a standardized format */ -export function hapiRequestInformationExtractor(req: hapi.Request) { +export function hapiRequestInformationExtractor(req?: hapi.Request) { const returnObject = new RequestInformationContainer(); - if (!isObject(req) || !isObject(req.headers) || isFunction(req) || + if (!isObject(req) || !isObject(req!.headers) || isFunction(req) || isArray(req)) { return returnObject; } returnObject - .setMethod(req.method) + .setMethod(req!.method) // TODO: Address the type conflict that requires a cast to string - .setUrl(req.url as {} as string) - .setUserAgent(req.headers['user-agent']) - .setReferrer(req.headers.referrer) - .setStatusCode(attemptToExtractStatusCode(req)) - .setRemoteAddress(extractRemoteAddressFromRequest(req)); + .setUrl(req!.url as {} as string) + .setUserAgent(req!.headers['user-agent']) + .setReferrer(req!.headers.referrer) + .setStatusCode(attemptToExtractStatusCode(req!)) + .setRemoteAddress(extractRemoteAddressFromRequest(req!)); return returnObject; } diff --git a/handwritten/error-reporting/system-test/test-install.ts b/handwritten/error-reporting/system-test/test-install.ts index 170f4f90423..c38a0587708 100644 --- a/handwritten/error-reporting/system-test/test-install.ts +++ b/handwritten/error-reporting/system-test/test-install.ts @@ -108,8 +108,37 @@ server.route({ server.register(errors.hapi); `, description: 'uses hapi16', - dependencies: ['hapi@16.6.3'], - devDependencies: ['@types/hapi@16.1.14'] + dependencies: ['hapi@16.x.x'], + devDependencies: ['@types/hapi@16.x.x'] + }, + { + code: `import * as hapi from 'hapi'; + +import {ErrorReporting} from '@google-cloud/error-reporting'; +const errors = new ErrorReporting(); + +async function start() { + const server = new hapi.Server({ + host: '0.0.0.0', + port: 3000 + }); + + server.route({ + method: 'GET', + path: '/error', + handler: async (request, h) => { + throw new Error(\`You requested an error at ${new Date()}\`); + } + }); + + await server.register(errors.hapi); +} + +start().catch(console.error); +`, + description: 'uses hapi17', + dependencies: ['hapi@17.x.x'], + devDependencies: ['@types/hapi@17.x.x'] }, { code: `import * as Koa from 'koa'; @@ -240,7 +269,36 @@ server.route({ server.register(errors.hapi); `, description: 'uses hapi16', - dependencies: ['hapi@16.6.3'], + dependencies: ['hapi@16.x.x'], + devDependencies: [] + }, + { + code: `const hapi = require('hapi'); + +const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; +const errors = new ErrorReporting(); + +async function start() { + const server = new hapi.Server({ + host: '0.0.0.0', + port: 3000 + }); + + server.route({ + method: 'GET', + path: '/error', + handler: async (request, h) => { + throw new Error(\`You requested an error at ${new Date()}\`); + } + }); + + await server.register(errors.hapi); +} + +start().catch(console.error); +`, + description: 'uses hapi17', + dependencies: ['hapi@17.x.x'], devDependencies: [] }, { diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.ts b/handwritten/error-reporting/test/unit/interfaces/hapi.ts index 93760eab664..7b478184f9a 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.ts +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.ts @@ -26,6 +26,10 @@ import {EventEmitter} from 'events'; import * as config from '../../../src/configuration'; import {RequestHandler} from '../../../src/google-apis/auth-client'; import {FakeConfiguration as Configuration} from '../../fixtures/configuration'; +import * as http from 'http'; +import * as hapi from 'hapi'; + +const packageJson = require('../../../../package.json'); type HapiPlugin = { register: @@ -174,4 +178,101 @@ describe('Hapi interface', () => { fakeServer.emit(EVENT, {response: {isBoom: true}}, {continue() {}}); }); }); + describe('Hapi17', () => { + const errorsSent: ErrorMessage[] = []; + // the only method in the client that should be used is `sendError` + const fakeClient = { + sendError: + (errorMessage: ErrorMessage, + userCb?: ( + err: Error|null, response: http.ServerResponse|null, body: {}) => + void) => { + errorsSent.push(errorMessage); + } + } as {} as RequestHandler; + + // the configuration should be not be needed to send errors correctly + const plugin = hapiInterface(fakeClient, {} as Configuration); + + afterEach(() => { + errorsSent.length = 0; + }); + + it('Plugin should have name and version properties', () => { + assert.strictEqual(plugin.name, packageJson.name); + assert.strictEqual(plugin.version, packageJson.version); + }); + + it(`Should record 'log' events correctly`, () => { + const fakeServer = {events: new EventEmitter()}; + + // emulate how the hapi server would register itself + plugin.register(fakeServer, {}); + + // emulate the hapi server emitting a log event + const testError = new Error('Error emitted through a log event'); + + // this event should not be recorded + fakeServer.events.emit('log', {error: testError, channel: 'internal'}); + + // this event should be recorded + fakeServer.events.emit('log', {error: testError, channel: 'app'}); + + assert.strictEqual(errorsSent.length, 1); + const errorMessage = errorsSent[0]; + + // note: the error's stack contains the error message + assert.strictEqual(errorMessage.message, testError.stack); + }); + + it(`Should record 'request' events correctly`, () => { + const fakeServer = {events: new EventEmitter()}; + + // emulate how the hapi server would register itself + plugin.register(fakeServer, {}); + + // emulate the hapi server emitting a request event + // a cast to hapi.Request is being done since only the listed + // properties are the properties that are being tested. In + // addition other properties of hapi.Request should be needed + // to properly send the error. + const fakeRequest = { + method: 'custom-method', + url: 'custom-url', + headers: { + 'user-agent': 'custom-user-agent', + referrer: 'custom-referrer', + 'x-forwarded-for': 'some-remote-address' + }, + response: {statusCode: 42} + } as {} as hapi.Request; + + const testError = new Error('Error emitted through a request event'); + + // this event should not be recorded + fakeServer.events.emit( + 'request', fakeRequest, {error: testError, channel: 'internal'}); + + // this event should be recorded + fakeServer.events.emit( + 'request', fakeRequest, {error: testError, channel: 'error'}); + + assert.strictEqual(errorsSent.length, 1); + const errorMessage = errorsSent[0]; + + // note: the error's stack contains the error message + assert.strictEqual(errorMessage.message, testError.stack); + assert.strictEqual( + errorMessage.context.httpRequest.method, 'custom-method'); + assert.strictEqual(errorMessage.context.httpRequest.url, 'custom-url'); + assert.strictEqual( + errorMessage.context.httpRequest.userAgent, 'custom-user-agent'); + assert.strictEqual( + errorMessage.context.httpRequest.referrer, 'custom-referrer'); + assert.strictEqual( + errorMessage.context.httpRequest.remoteIp, 'some-remote-address'); + assert.strictEqual( + errorMessage.context.httpRequest.responseStatusCode, 42); + }); + }); }); From 23f97f46144fe6afb3bd876a764cd6ae280ff7fd Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Wed, 11 Apr 2018 15:02:31 -0700 Subject: [PATCH 089/527] chore: release v0.4.0 (#109) --- handwritten/error-reporting/package-lock.json | 2027 ++++++----------- handwritten/error-reporting/package.json | 2 +- 2 files changed, 681 insertions(+), 1348 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index 111e4109eac..1a9636fe644 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/error-reporting", - "version": "0.3.2", + "version": "0.4.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -164,8 +164,7 @@ "dependencies": { "align-text": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2", @@ -175,26 +174,22 @@ }, "amdefine": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "bundled": true, "dev": true }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "bundled": true, "dev": true }, "ansi-styles": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "bundled": true, "dev": true }, "append-transform": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "bundled": true, "dev": true, "requires": { "default-require-extensions": "1.0.0" @@ -202,14 +197,12 @@ }, "archy": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "bundled": true, "dev": true }, "arr-diff": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "bundled": true, "dev": true, "requires": { "arr-flatten": "1.1.0" @@ -217,32 +210,27 @@ }, "arr-flatten": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "bundled": true, "dev": true }, "array-unique": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "bundled": true, "dev": true }, "arrify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "bundled": true, "dev": true }, "async": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "bundled": true, "dev": true }, "babel-code-frame": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "bundled": true, "dev": true, "requires": { "chalk": "1.1.3", @@ -252,8 +240,7 @@ }, "babel-generator": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", - "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "bundled": true, "dev": true, "requires": { "babel-messages": "6.23.0", @@ -268,8 +255,7 @@ }, "babel-messages": { "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "bundled": true, "dev": true, "requires": { "babel-runtime": "6.26.0" @@ -277,8 +263,7 @@ }, "babel-runtime": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "bundled": true, "dev": true, "requires": { "core-js": "2.5.3", @@ -287,8 +272,7 @@ }, "babel-template": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "bundled": true, "dev": true, "requires": { "babel-runtime": "6.26.0", @@ -300,8 +284,7 @@ }, "babel-traverse": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "bundled": true, "dev": true, "requires": { "babel-code-frame": "6.26.0", @@ -317,8 +300,7 @@ }, "babel-types": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "bundled": true, "dev": true, "requires": { "babel-runtime": "6.26.0", @@ -329,20 +311,17 @@ }, "babylon": { "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "bundled": true, "dev": true }, "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "bundled": true, "dev": true }, "brace-expansion": { "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "bundled": true, "dev": true, "requires": { "balanced-match": "1.0.0", @@ -351,8 +330,7 @@ }, "braces": { "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "bundled": true, "dev": true, "requires": { "expand-range": "1.8.2", @@ -362,14 +340,12 @@ }, "builtin-modules": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "bundled": true, "dev": true }, "caching-transform": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", - "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", + "bundled": true, "dev": true, "requires": { "md5-hex": "1.3.0", @@ -379,15 +355,13 @@ }, "camelcase": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "bundled": true, "dev": true, "optional": true }, "center-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -397,8 +371,7 @@ }, "chalk": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "bundled": true, "dev": true, "requires": { "ansi-styles": "2.2.1", @@ -410,8 +383,7 @@ }, "cliui": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -422,8 +394,7 @@ "dependencies": { "wordwrap": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "bundled": true, "dev": true, "optional": true } @@ -431,38 +402,32 @@ }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "bundled": true, "dev": true }, "commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "bundled": true, "dev": true }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "bundled": true, "dev": true }, "convert-source-map": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "bundled": true, "dev": true }, "core-js": { "version": "2.5.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", - "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "bundled": true, "dev": true }, "cross-spawn": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "bundled": true, "dev": true, "requires": { "lru-cache": "4.1.1", @@ -471,8 +436,7 @@ }, "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "bundled": true, "dev": true, "requires": { "ms": "2.0.0" @@ -480,20 +444,17 @@ }, "debug-log": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", - "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", + "bundled": true, "dev": true }, "decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "bundled": true, "dev": true }, "default-require-extensions": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "bundled": true, "dev": true, "requires": { "strip-bom": "2.0.0" @@ -501,8 +462,7 @@ }, "detect-indent": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "bundled": true, "dev": true, "requires": { "repeating": "2.0.1" @@ -510,8 +470,7 @@ }, "error-ex": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "bundled": true, "dev": true, "requires": { "is-arrayish": "0.2.1" @@ -519,20 +478,17 @@ }, "escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "bundled": true, "dev": true }, "esutils": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "bundled": true, "dev": true }, "execa": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "bundled": true, "dev": true, "requires": { "cross-spawn": "5.1.0", @@ -546,8 +502,7 @@ "dependencies": { "cross-spawn": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "bundled": true, "dev": true, "requires": { "lru-cache": "4.1.1", @@ -559,8 +514,7 @@ }, "expand-brackets": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "bundled": true, "dev": true, "requires": { "is-posix-bracket": "0.1.1" @@ -568,8 +522,7 @@ }, "expand-range": { "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "bundled": true, "dev": true, "requires": { "fill-range": "2.2.3" @@ -577,8 +530,7 @@ }, "extglob": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "bundled": true, "dev": true, "requires": { "is-extglob": "1.0.0" @@ -586,14 +538,12 @@ }, "filename-regex": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "bundled": true, "dev": true }, "fill-range": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "bundled": true, "dev": true, "requires": { "is-number": "2.1.0", @@ -605,8 +555,7 @@ }, "find-cache-dir": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "bundled": true, "dev": true, "requires": { "commondir": "1.0.1", @@ -616,8 +565,7 @@ }, "find-up": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "bundled": true, "dev": true, "requires": { "locate-path": "2.0.0" @@ -625,14 +573,12 @@ }, "for-in": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "bundled": true, "dev": true }, "for-own": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "bundled": true, "dev": true, "requires": { "for-in": "1.0.2" @@ -640,8 +586,7 @@ }, "foreground-child": { "version": "1.5.6", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", - "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "bundled": true, "dev": true, "requires": { "cross-spawn": "4.0.2", @@ -650,26 +595,22 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "bundled": true, "dev": true }, "get-caller-file": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "bundled": true, "dev": true }, "get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "bundled": true, "dev": true }, "glob": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "bundled": true, "dev": true, "requires": { "fs.realpath": "1.0.0", @@ -682,8 +623,7 @@ }, "glob-base": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "bundled": true, "dev": true, "requires": { "glob-parent": "2.0.0", @@ -692,8 +632,7 @@ }, "glob-parent": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "bundled": true, "dev": true, "requires": { "is-glob": "2.0.1" @@ -701,20 +640,17 @@ }, "globals": { "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "bundled": true, "dev": true }, "graceful-fs": { "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "bundled": true, "dev": true }, "handlebars": { "version": "4.0.11", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", - "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "bundled": true, "dev": true, "requires": { "async": "1.5.2", @@ -725,8 +661,7 @@ "dependencies": { "source-map": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "bundled": true, "dev": true, "requires": { "amdefine": "1.0.1" @@ -736,8 +671,7 @@ }, "has-ansi": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "2.1.1" @@ -745,26 +679,22 @@ }, "has-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "bundled": true, "dev": true }, "hosted-git-info": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", + "bundled": true, "dev": true }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "bundled": true, "dev": true }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "dev": true, "requires": { "once": "1.4.0", @@ -773,14 +703,12 @@ }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "bundled": true, "dev": true }, "invariant": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "bundled": true, "dev": true, "requires": { "loose-envify": "1.3.1" @@ -788,26 +716,22 @@ }, "invert-kv": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "bundled": true, "dev": true }, "is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "bundled": true, "dev": true }, "is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "bundled": true, "dev": true }, "is-builtin-module": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "bundled": true, "dev": true, "requires": { "builtin-modules": "1.1.1" @@ -815,14 +739,12 @@ }, "is-dotfile": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "bundled": true, "dev": true }, "is-equal-shallow": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "bundled": true, "dev": true, "requires": { "is-primitive": "2.0.0" @@ -830,20 +752,17 @@ }, "is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "bundled": true, "dev": true }, "is-extglob": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "bundled": true, "dev": true }, "is-finite": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "bundled": true, "dev": true, "requires": { "number-is-nan": "1.0.1" @@ -851,8 +770,7 @@ }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, "dev": true, "requires": { "number-is-nan": "1.0.1" @@ -860,8 +778,7 @@ }, "is-glob": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "bundled": true, "dev": true, "requires": { "is-extglob": "1.0.0" @@ -869,8 +786,7 @@ }, "is-number": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -878,44 +794,37 @@ }, "is-posix-bracket": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "bundled": true, "dev": true }, "is-primitive": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "bundled": true, "dev": true }, "is-stream": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "bundled": true, "dev": true }, "is-utf8": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "bundled": true, "dev": true }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "bundled": true, "dev": true }, "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "bundled": true, "dev": true }, "isobject": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "bundled": true, "dev": true, "requires": { "isarray": "1.0.0" @@ -923,14 +832,12 @@ }, "istanbul-lib-coverage": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz", - "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==", + "bundled": true, "dev": true }, "istanbul-lib-hook": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", - "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", + "bundled": true, "dev": true, "requires": { "append-transform": "0.4.0" @@ -938,8 +845,7 @@ }, "istanbul-lib-instrument": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz", - "integrity": "sha512-RQmXeQ7sphar7k7O1wTNzVczF9igKpaeGQAG9qR2L+BS4DCJNTI9nytRmIVYevwO0bbq+2CXvJmYDuz0gMrywA==", + "bundled": true, "dev": true, "requires": { "babel-generator": "6.26.0", @@ -953,8 +859,7 @@ }, "istanbul-lib-report": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz", - "integrity": "sha512-UTv4VGx+HZivJQwAo1wnRwe1KTvFpfi/NYwN7DcsrdzMXwpRT/Yb6r4SBPoHWj4VuQPakR32g4PUUeyKkdDkBA==", + "bundled": true, "dev": true, "requires": { "istanbul-lib-coverage": "1.1.1", @@ -965,8 +870,7 @@ "dependencies": { "supports-color": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "bundled": true, "dev": true, "requires": { "has-flag": "1.0.0" @@ -976,8 +880,7 @@ }, "istanbul-lib-source-maps": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz", - "integrity": "sha512-8BfdqSfEdtip7/wo1RnrvLpHVEd8zMZEDmOFEnpC6dg0vXflHt9nvoAyQUzig2uMSXfF2OBEYBV3CVjIL9JvaQ==", + "bundled": true, "dev": true, "requires": { "debug": "3.1.0", @@ -989,8 +892,7 @@ "dependencies": { "debug": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "bundled": true, "dev": true, "requires": { "ms": "2.0.0" @@ -1000,8 +902,7 @@ }, "istanbul-reports": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.3.tgz", - "integrity": "sha512-ZEelkHh8hrZNI5xDaKwPMFwDsUf5wIEI2bXAFGp1e6deR2mnEKBPhLJEgr4ZBt8Gi6Mj38E/C8kcy9XLggVO2Q==", + "bundled": true, "dev": true, "requires": { "handlebars": "4.0.11" @@ -1009,20 +910,17 @@ }, "js-tokens": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "bundled": true, "dev": true }, "jsesc": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "bundled": true, "dev": true }, "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -1030,15 +928,13 @@ }, "lazy-cache": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "bundled": true, "dev": true, "optional": true }, "lcid": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "bundled": true, "dev": true, "requires": { "invert-kv": "1.0.0" @@ -1046,8 +942,7 @@ }, "load-json-file": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -1059,8 +954,7 @@ }, "locate-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "bundled": true, "dev": true, "requires": { "p-locate": "2.0.0", @@ -1069,28 +963,24 @@ "dependencies": { "path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "bundled": true, "dev": true } } }, "lodash": { "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "bundled": true, "dev": true }, "longest": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "bundled": true, "dev": true }, "loose-envify": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "bundled": true, "dev": true, "requires": { "js-tokens": "3.0.2" @@ -1098,8 +988,7 @@ }, "lru-cache": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", - "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "bundled": true, "dev": true, "requires": { "pseudomap": "1.0.2", @@ -1108,8 +997,7 @@ }, "md5-hex": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", - "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", + "bundled": true, "dev": true, "requires": { "md5-o-matic": "0.1.1" @@ -1117,14 +1005,12 @@ }, "md5-o-matic": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", - "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=", + "bundled": true, "dev": true }, "mem": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "bundled": true, "dev": true, "requires": { "mimic-fn": "1.1.0" @@ -1132,8 +1018,7 @@ }, "merge-source-map": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", - "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=", + "bundled": true, "dev": true, "requires": { "source-map": "0.5.7" @@ -1141,8 +1026,7 @@ }, "micromatch": { "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "bundled": true, "dev": true, "requires": { "arr-diff": "2.0.0", @@ -1162,14 +1046,12 @@ }, "mimic-fn": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", - "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", + "bundled": true, "dev": true }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, "dev": true, "requires": { "brace-expansion": "1.1.8" @@ -1177,14 +1059,12 @@ }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "bundled": true, "dev": true }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "dev": true, "requires": { "minimist": "0.0.8" @@ -1192,14 +1072,12 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "bundled": true, "dev": true }, "normalize-package-data": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "bundled": true, "dev": true, "requires": { "hosted-git-info": "2.5.0", @@ -1210,8 +1088,7 @@ }, "normalize-path": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "bundled": true, "dev": true, "requires": { "remove-trailing-separator": "1.1.0" @@ -1219,8 +1096,7 @@ }, "npm-run-path": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "bundled": true, "dev": true, "requires": { "path-key": "2.0.1" @@ -1228,20 +1104,17 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "bundled": true, "dev": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "bundled": true, "dev": true }, "object.omit": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "bundled": true, "dev": true, "requires": { "for-own": "0.1.5", @@ -1250,8 +1123,7 @@ }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "dev": true, "requires": { "wrappy": "1.0.2" @@ -1259,8 +1131,7 @@ }, "optimist": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "bundled": true, "dev": true, "requires": { "minimist": "0.0.8", @@ -1269,14 +1140,12 @@ }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "bundled": true, "dev": true }, "os-locale": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "bundled": true, "dev": true, "requires": { "execa": "0.7.0", @@ -1286,20 +1155,17 @@ }, "p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "bundled": true, "dev": true }, "p-limit": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", - "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", + "bundled": true, "dev": true }, "p-locate": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "bundled": true, "dev": true, "requires": { "p-limit": "1.1.0" @@ -1307,8 +1173,7 @@ }, "parse-glob": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "bundled": true, "dev": true, "requires": { "glob-base": "0.3.0", @@ -1319,8 +1184,7 @@ }, "parse-json": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "bundled": true, "dev": true, "requires": { "error-ex": "1.3.1" @@ -1328,8 +1192,7 @@ }, "path-exists": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "bundled": true, "dev": true, "requires": { "pinkie-promise": "2.0.1" @@ -1337,26 +1200,22 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "bundled": true, "dev": true }, "path-key": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "bundled": true, "dev": true }, "path-parse": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "bundled": true, "dev": true }, "path-type": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -1366,20 +1225,17 @@ }, "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "bundled": true, "dev": true }, "pinkie": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "bundled": true, "dev": true }, "pinkie-promise": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "bundled": true, "dev": true, "requires": { "pinkie": "2.0.4" @@ -1387,8 +1243,7 @@ }, "pkg-dir": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "bundled": true, "dev": true, "requires": { "find-up": "1.1.2" @@ -1396,8 +1251,7 @@ "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "bundled": true, "dev": true, "requires": { "path-exists": "2.1.0", @@ -1408,20 +1262,17 @@ }, "preserve": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "bundled": true, "dev": true }, "pseudomap": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "bundled": true, "dev": true }, "randomatic": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "bundled": true, "dev": true, "requires": { "is-number": "3.0.0", @@ -1430,8 +1281,7 @@ "dependencies": { "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -1439,8 +1289,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -1450,8 +1299,7 @@ }, "kind-of": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -1461,8 +1309,7 @@ }, "read-pkg": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "bundled": true, "dev": true, "requires": { "load-json-file": "1.1.0", @@ -1472,8 +1319,7 @@ }, "read-pkg-up": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "bundled": true, "dev": true, "requires": { "find-up": "1.1.2", @@ -1482,8 +1328,7 @@ "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "bundled": true, "dev": true, "requires": { "path-exists": "2.1.0", @@ -1494,14 +1339,12 @@ }, "regenerator-runtime": { "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "bundled": true, "dev": true }, "regex-cache": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "bundled": true, "dev": true, "requires": { "is-equal-shallow": "0.1.3" @@ -1509,26 +1352,22 @@ }, "remove-trailing-separator": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "bundled": true, "dev": true }, "repeat-element": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "bundled": true, "dev": true }, "repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "bundled": true, "dev": true }, "repeating": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "bundled": true, "dev": true, "requires": { "is-finite": "1.0.2" @@ -1536,26 +1375,22 @@ }, "require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "bundled": true, "dev": true }, "require-main-filename": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "bundled": true, "dev": true }, "resolve-from": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", + "bundled": true, "dev": true }, "right-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -1564,8 +1399,7 @@ }, "rimraf": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "bundled": true, "dev": true, "requires": { "glob": "7.1.2" @@ -1573,20 +1407,17 @@ }, "semver": { "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "bundled": true, "dev": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "bundled": true, "dev": true }, "shebang-command": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "bundled": true, "dev": true, "requires": { "shebang-regex": "1.0.0" @@ -1594,32 +1425,27 @@ }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "bundled": true, "dev": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "bundled": true, "dev": true }, "slide": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "bundled": true, "dev": true }, "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "bundled": true, "dev": true }, "spawn-wrap": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", - "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", + "bundled": true, "dev": true, "requires": { "foreground-child": "1.5.6", @@ -1632,8 +1458,7 @@ }, "spdx-correct": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "bundled": true, "dev": true, "requires": { "spdx-license-ids": "1.2.2" @@ -1641,20 +1466,17 @@ }, "spdx-expression-parse": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "bundled": true, "dev": true }, "spdx-license-ids": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "bundled": true, "dev": true }, "string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "bundled": true, "dev": true, "requires": { "is-fullwidth-code-point": "2.0.0", @@ -1663,20 +1485,17 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "bundled": true, "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "bundled": true, "dev": true }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "3.0.0" @@ -1686,8 +1505,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "2.1.1" @@ -1695,8 +1513,7 @@ }, "strip-bom": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "bundled": true, "dev": true, "requires": { "is-utf8": "0.2.1" @@ -1704,20 +1521,17 @@ }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "bundled": true, "dev": true }, "supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "bundled": true, "dev": true }, "test-exclude": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz", - "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==", + "bundled": true, "dev": true, "requires": { "arrify": "1.0.1", @@ -1729,20 +1543,17 @@ }, "to-fast-properties": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "bundled": true, "dev": true }, "trim-right": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "bundled": true, "dev": true }, "uglify-js": { "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -1753,8 +1564,7 @@ "dependencies": { "yargs": { "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -1768,15 +1578,13 @@ }, "uglify-to-browserify": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "bundled": true, "dev": true, "optional": true }, "validate-npm-package-license": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "bundled": true, "dev": true, "requires": { "spdx-correct": "1.0.2", @@ -1785,8 +1593,7 @@ }, "which": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "bundled": true, "dev": true, "requires": { "isexe": "2.0.0" @@ -1794,27 +1601,23 @@ }, "which-module": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "bundled": true, "dev": true }, "window-size": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "bundled": true, "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "bundled": true, "dev": true }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "bundled": true, "dev": true, "requires": { "string-width": "1.0.2", @@ -1823,8 +1626,7 @@ "dependencies": { "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "dev": true, "requires": { "code-point-at": "1.1.0", @@ -1836,14 +1638,12 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "bundled": true, "dev": true }, "write-file-atomic": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", - "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -1853,20 +1653,17 @@ }, "y18n": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "bundled": true, "dev": true }, "yallist": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "bundled": true, "dev": true }, "yargs": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.0.3.tgz", - "integrity": "sha512-DqBpQ8NAUX4GyPP/ijDGHsJya4tYqLQrjPr95HNsr1YwL3+daCfvBwg7+gIC6IdJhR2kATh3hb61vjzMWEtjdw==", + "bundled": true, "dev": true, "requires": { "cliui": "3.2.0", @@ -1885,8 +1682,7 @@ "dependencies": { "cliui": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "bundled": true, "dev": true, "requires": { "string-width": "1.0.2", @@ -1896,8 +1692,7 @@ "dependencies": { "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "dev": true, "requires": { "code-point-at": "1.1.0", @@ -1911,8 +1706,7 @@ }, "yargs-parser": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.0.0.tgz", - "integrity": "sha1-IdR2Mw5agieaS4gTRb8GYQLiGcY=", + "bundled": true, "dev": true, "requires": { "camelcase": "4.1.0" @@ -1920,8 +1714,7 @@ "dependencies": { "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "bundled": true, "dev": true } } @@ -3378,9 +3171,9 @@ } }, "big-time": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/big-time/-/big-time-2.0.0.tgz", - "integrity": "sha512-OXsmBxlRLwUc65MLta2EOyMTLcjZQkxHkJ81lVPeyVqZag8zhUfKRYIbF3E/IW/LWR8kf8a1GlRYkBXKVGqJOw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/big-time/-/big-time-2.0.1.tgz", + "integrity": "sha1-aMffjcMPl+lT8lpnp2rJcTwWyd4=", "dev": true }, "binary-extensions": { @@ -3732,7 +3525,7 @@ "integrity": "sha512-lhWtutLVhsq3Mucxk2McxBPPibJ34WcHuWFz3xqub9u9Ve/IQYpZv3ijLhQXfQped9DXozURiaq9O3aZpP91eg==", "dev": true, "requires": { - "big-time": "2.0.0", + "big-time": "2.0.1", "boom": "7.2.0", "hoek": "5.0.3" }, @@ -5838,15 +5631,13 @@ "dependencies": { "abbrev": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", - "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", + "bundled": true, "dev": true, "optional": true }, "ajv": { "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -5856,21 +5647,18 @@ }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "bundled": true, "dev": true }, "aproba": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", - "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", + "bundled": true, "dev": true, "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -5880,49 +5668,42 @@ }, "asn1": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "bundled": true, "dev": true, "optional": true }, "assert-plus": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "bundled": true, "dev": true, "optional": true }, "asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "bundled": true, "dev": true, "optional": true }, "aws-sign2": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "bundled": true, "dev": true, "optional": true }, "aws4": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "bundled": true, "dev": true, "optional": true }, "balanced-match": { "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "bundled": true, "dev": true }, "bcrypt-pbkdf": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -5931,8 +5712,7 @@ }, "block-stream": { "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "bundled": true, "dev": true, "requires": { "inherits": "2.0.3" @@ -5940,8 +5720,7 @@ }, "boom": { "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "bundled": true, "dev": true, "requires": { "hoek": "2.16.3" @@ -5949,8 +5728,7 @@ }, "brace-expansion": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", - "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", + "bundled": true, "dev": true, "requires": { "balanced-match": "0.4.2", @@ -5959,34 +5737,29 @@ }, "buffer-shims": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=", + "bundled": true, "dev": true }, "caseless": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "bundled": true, "dev": true, "optional": true }, "co": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "bundled": true, "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "bundled": true, "dev": true }, "combined-stream": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "bundled": true, "dev": true, "requires": { "delayed-stream": "1.0.0" @@ -5994,26 +5767,22 @@ }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "bundled": true, "dev": true }, "console-control-strings": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "bundled": true, "dev": true }, "core-util-is": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "bundled": true, "dev": true }, "cryptiles": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "bundled": true, "dev": true, "requires": { "boom": "2.10.1" @@ -6021,8 +5790,7 @@ }, "dashdash": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6031,8 +5799,7 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "dev": true, "optional": true } @@ -6040,8 +5807,7 @@ }, "debug": { "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6050,35 +5816,30 @@ }, "deep-extend": { "version": "0.4.2", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", + "bundled": true, "dev": true, "optional": true }, "delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "bundled": true, "dev": true }, "delegates": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "bundled": true, "dev": true, "optional": true }, "detect-libc": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.2.tgz", - "integrity": "sha1-ca1dIEvxempsqPRQxhRUBm70YeE=", + "bundled": true, "dev": true, "optional": true }, "ecc-jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6087,28 +5848,24 @@ }, "extend": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "bundled": true, "dev": true, "optional": true }, "extsprintf": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", + "bundled": true, "dev": true }, "forever-agent": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "bundled": true, "dev": true, "optional": true }, "form-data": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6119,14 +5876,12 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "bundled": true, "dev": true }, "fstream": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -6137,8 +5892,7 @@ }, "fstream-ignore": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", - "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6149,8 +5903,7 @@ }, "gauge": { "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6166,8 +5919,7 @@ }, "getpass": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6176,8 +5928,7 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "dev": true, "optional": true } @@ -6185,8 +5936,7 @@ }, "glob": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "bundled": true, "dev": true, "requires": { "fs.realpath": "1.0.0", @@ -6199,21 +5949,18 @@ }, "graceful-fs": { "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "bundled": true, "dev": true }, "har-schema": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "bundled": true, "dev": true, "optional": true }, "har-validator": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6223,15 +5970,13 @@ }, "has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "bundled": true, "dev": true, "optional": true }, "hawk": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "bundled": true, "dev": true, "requires": { "boom": "2.10.1", @@ -6242,14 +5987,12 @@ }, "hoek": { "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "bundled": true, "dev": true }, "http-signature": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6260,8 +6003,7 @@ }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "dev": true, "requires": { "once": "1.4.0", @@ -6270,21 +6012,18 @@ }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "bundled": true, "dev": true }, "ini": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "bundled": true, "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, "dev": true, "requires": { "number-is-nan": "1.0.1" @@ -6292,28 +6031,24 @@ }, "is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "bundled": true, "dev": true, "optional": true }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "bundled": true, "dev": true }, "isstream": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "bundled": true, "dev": true, "optional": true }, "jodid25519": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", - "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6322,22 +6057,19 @@ }, "jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "bundled": true, "dev": true, "optional": true }, "json-schema": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "bundled": true, "dev": true, "optional": true }, "json-stable-stringify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6346,22 +6078,19 @@ }, "json-stringify-safe": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "bundled": true, "dev": true, "optional": true }, "jsonify": { "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "bundled": true, "dev": true, "optional": true }, "jsprim": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6373,8 +6102,7 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "dev": true, "optional": true } @@ -6382,14 +6110,12 @@ }, "mime-db": { "version": "1.27.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", - "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=", + "bundled": true, "dev": true }, "mime-types": { "version": "2.1.15", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", - "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", + "bundled": true, "dev": true, "requires": { "mime-db": "1.27.0" @@ -6397,8 +6123,7 @@ }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, "dev": true, "requires": { "brace-expansion": "1.1.7" @@ -6406,14 +6131,12 @@ }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "bundled": true, "dev": true }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "dev": true, "requires": { "minimist": "0.0.8" @@ -6421,15 +6144,13 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "bundled": true, "dev": true, "optional": true }, "node-pre-gyp": { "version": "0.6.39", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", - "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6448,8 +6169,7 @@ }, "nopt": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6459,8 +6179,7 @@ }, "npmlog": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", - "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6472,28 +6191,24 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "bundled": true, "dev": true }, "oauth-sign": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "bundled": true, "dev": true, "optional": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "bundled": true, "dev": true, "optional": true }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "dev": true, "requires": { "wrappy": "1.0.2" @@ -6501,22 +6216,19 @@ }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "bundled": true, "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "bundled": true, "dev": true, "optional": true }, "osenv": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6526,41 +6238,35 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "bundled": true, "dev": true }, "performance-now": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "bundled": true, "dev": true, "optional": true }, "process-nextick-args": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "bundled": true, "dev": true }, "punycode": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "bundled": true, "dev": true, "optional": true }, "qs": { "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "bundled": true, "dev": true, "optional": true }, "rc": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", - "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6572,8 +6278,7 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "bundled": true, "dev": true, "optional": true } @@ -6581,8 +6286,7 @@ }, "readable-stream": { "version": "2.2.9", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", - "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", + "bundled": true, "dev": true, "requires": { "buffer-shims": "1.0.0", @@ -6596,8 +6300,7 @@ }, "request": { "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6627,8 +6330,7 @@ }, "rimraf": { "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "bundled": true, "dev": true, "requires": { "glob": "7.1.2" @@ -6636,35 +6338,30 @@ }, "safe-buffer": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", + "bundled": true, "dev": true }, "semver": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "bundled": true, "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "bundled": true, "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "bundled": true, "dev": true, "optional": true }, "sntp": { "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "bundled": true, "dev": true, "requires": { "hoek": "2.16.3" @@ -6672,8 +6369,7 @@ }, "sshpk": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", - "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6690,8 +6386,7 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "bundled": true, "dev": true, "optional": true } @@ -6699,8 +6394,7 @@ }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "dev": true, "requires": { "code-point-at": "1.1.0", @@ -6710,8 +6404,7 @@ }, "string_decoder": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", - "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", + "bundled": true, "dev": true, "requires": { "safe-buffer": "5.0.1" @@ -6719,15 +6412,13 @@ }, "stringstream": { "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "bundled": true, "dev": true, "optional": true }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "2.1.1" @@ -6735,15 +6426,13 @@ }, "strip-json-comments": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "bundled": true, "dev": true, "optional": true }, "tar": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "bundled": true, "dev": true, "requires": { "block-stream": "0.0.9", @@ -6753,8 +6442,7 @@ }, "tar-pack": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz", - "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6770,8 +6458,7 @@ }, "tough-cookie": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6780,8 +6467,7 @@ }, "tunnel-agent": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6790,35 +6476,30 @@ }, "tweetnacl": { "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "bundled": true, "dev": true, "optional": true }, "uid-number": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", + "bundled": true, "dev": true, "optional": true }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "bundled": true, "dev": true }, "uuid": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", - "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", + "bundled": true, "dev": true, "optional": true }, "verror": { "version": "1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6827,8 +6508,7 @@ }, "wide-align": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6837,8 +6517,7 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "bundled": true, "dev": true } } @@ -7089,7 +6768,7 @@ "axios": "0.18.0", "google-p12-pem": "1.0.2", "jws": "3.1.4", - "mime": "2.2.2", + "mime": "2.3.1", "pify": "3.0.0" } }, @@ -9183,9 +8862,9 @@ } }, "mime": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.2.2.tgz", - "integrity": "sha512-A7PDg4s48MkqFEcYg2b069m3DXOEq7hx+9q9rIFrSSYfzsh35GX+LOVMQ8Au0ko7d8bSQCIAuzkjp0vCtwENlQ==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", + "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==" }, "mime-db": { "version": "1.33.0", @@ -9231,9 +8910,9 @@ } }, "minimalistic-assert": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", - "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", "dev": true }, "minimatch": { @@ -9635,8 +9314,7 @@ "dependencies": { "align-text": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2", @@ -9646,26 +9324,22 @@ }, "amdefine": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "bundled": true, "dev": true }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "bundled": true, "dev": true }, "ansi-styles": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "bundled": true, "dev": true }, "append-transform": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "bundled": true, "dev": true, "requires": { "default-require-extensions": "1.0.0" @@ -9673,14 +9347,12 @@ }, "archy": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "bundled": true, "dev": true }, "arr-diff": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "bundled": true, "dev": true, "requires": { "arr-flatten": "1.1.0" @@ -9688,50 +9360,42 @@ }, "arr-flatten": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "bundled": true, "dev": true }, "arr-union": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "bundled": true, "dev": true }, "array-unique": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "bundled": true, "dev": true }, "arrify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "bundled": true, "dev": true }, "assign-symbols": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "bundled": true, "dev": true }, "async": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "bundled": true, "dev": true }, "atob": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz", - "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=", + "bundled": true, "dev": true }, "babel-code-frame": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "bundled": true, "dev": true, "requires": { "chalk": "1.1.3", @@ -9741,8 +9405,7 @@ }, "babel-generator": { "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "bundled": true, "dev": true, "requires": { "babel-messages": "6.23.0", @@ -9757,8 +9420,7 @@ }, "babel-messages": { "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "bundled": true, "dev": true, "requires": { "babel-runtime": "6.26.0" @@ -9766,8 +9428,7 @@ }, "babel-runtime": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "bundled": true, "dev": true, "requires": { "core-js": "2.5.3", @@ -9776,8 +9437,7 @@ }, "babel-template": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "bundled": true, "dev": true, "requires": { "babel-runtime": "6.26.0", @@ -9789,8 +9449,7 @@ }, "babel-traverse": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "bundled": true, "dev": true, "requires": { "babel-code-frame": "6.26.0", @@ -9806,8 +9465,7 @@ }, "babel-types": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "bundled": true, "dev": true, "requires": { "babel-runtime": "6.26.0", @@ -9818,20 +9476,17 @@ }, "babylon": { "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "bundled": true, "dev": true }, "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "bundled": true, "dev": true }, "base": { "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "bundled": true, "dev": true, "requires": { "cache-base": "1.0.1", @@ -9845,8 +9500,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "1.0.2" @@ -9854,16 +9508,14 @@ }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true } } }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "bundled": true, "dev": true, "requires": { "balanced-match": "1.0.0", @@ -9872,8 +9524,7 @@ }, "braces": { "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "bundled": true, "dev": true, "requires": { "expand-range": "1.8.2", @@ -9883,14 +9534,12 @@ }, "builtin-modules": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "bundled": true, "dev": true }, "cache-base": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "bundled": true, "dev": true, "requires": { "collection-visit": "1.0.0", @@ -9906,16 +9555,14 @@ "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true } } }, "caching-transform": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", - "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", + "bundled": true, "dev": true, "requires": { "md5-hex": "1.3.0", @@ -9925,15 +9572,13 @@ }, "camelcase": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "bundled": true, "dev": true, "optional": true }, "center-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -9943,8 +9588,7 @@ }, "chalk": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "bundled": true, "dev": true, "requires": { "ansi-styles": "2.2.1", @@ -9956,8 +9600,7 @@ }, "class-utils": { "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "bundled": true, "dev": true, "requires": { "arr-union": "3.1.0", @@ -9968,8 +9611,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "0.1.6" @@ -9977,8 +9619,7 @@ }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -9986,8 +9627,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -9997,8 +9637,7 @@ }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -10006,8 +9645,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -10017,8 +9655,7 @@ }, "is-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "bundled": true, "dev": true, "requires": { "is-accessor-descriptor": "0.1.6", @@ -10028,22 +9665,19 @@ }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true }, "kind-of": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "bundled": true, "dev": true } } }, "cliui": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -10054,8 +9688,7 @@ "dependencies": { "wordwrap": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "bundled": true, "dev": true, "optional": true } @@ -10063,14 +9696,12 @@ }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "bundled": true, "dev": true }, "collection-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "bundled": true, "dev": true, "requires": { "map-visit": "1.0.0", @@ -10079,44 +9710,37 @@ }, "commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "bundled": true, "dev": true }, "component-emitter": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "bundled": true, "dev": true }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "bundled": true, "dev": true }, "convert-source-map": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "bundled": true, "dev": true }, "copy-descriptor": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "bundled": true, "dev": true }, "core-js": { "version": "2.5.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", - "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "bundled": true, "dev": true }, "cross-spawn": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "bundled": true, "dev": true, "requires": { "lru-cache": "4.1.2", @@ -10125,8 +9749,7 @@ }, "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "bundled": true, "dev": true, "requires": { "ms": "2.0.0" @@ -10134,26 +9757,22 @@ }, "debug-log": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", - "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", + "bundled": true, "dev": true }, "decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "bundled": true, "dev": true }, "decode-uri-component": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "bundled": true, "dev": true }, "default-require-extensions": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "bundled": true, "dev": true, "requires": { "strip-bom": "2.0.0" @@ -10161,8 +9780,7 @@ }, "define-property": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "bundled": true, "dev": true, "requires": { "is-descriptor": "1.0.2", @@ -10171,16 +9789,14 @@ "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true } } }, "detect-indent": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "bundled": true, "dev": true, "requires": { "repeating": "2.0.1" @@ -10188,8 +9804,7 @@ }, "error-ex": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "bundled": true, "dev": true, "requires": { "is-arrayish": "0.2.1" @@ -10197,20 +9812,17 @@ }, "escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "bundled": true, "dev": true }, "esutils": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "bundled": true, "dev": true }, "execa": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "bundled": true, "dev": true, "requires": { "cross-spawn": "5.1.0", @@ -10224,8 +9836,7 @@ "dependencies": { "cross-spawn": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "bundled": true, "dev": true, "requires": { "lru-cache": "4.1.2", @@ -10237,8 +9848,7 @@ }, "expand-brackets": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "bundled": true, "dev": true, "requires": { "is-posix-bracket": "0.1.1" @@ -10246,8 +9856,7 @@ }, "expand-range": { "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "bundled": true, "dev": true, "requires": { "fill-range": "2.2.3" @@ -10255,8 +9864,7 @@ }, "extend-shallow": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "bundled": true, "dev": true, "requires": { "assign-symbols": "1.0.0", @@ -10265,8 +9873,7 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "bundled": true, "dev": true, "requires": { "is-plain-object": "2.0.4" @@ -10276,8 +9883,7 @@ }, "extglob": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "bundled": true, "dev": true, "requires": { "is-extglob": "1.0.0" @@ -10285,14 +9891,12 @@ }, "filename-regex": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "bundled": true, "dev": true }, "fill-range": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "bundled": true, "dev": true, "requires": { "is-number": "2.1.0", @@ -10304,8 +9908,7 @@ }, "find-cache-dir": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "bundled": true, "dev": true, "requires": { "commondir": "1.0.1", @@ -10315,8 +9918,7 @@ }, "find-up": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "bundled": true, "dev": true, "requires": { "locate-path": "2.0.0" @@ -10324,14 +9926,12 @@ }, "for-in": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "bundled": true, "dev": true }, "for-own": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "bundled": true, "dev": true, "requires": { "for-in": "1.0.2" @@ -10339,8 +9939,7 @@ }, "foreground-child": { "version": "1.5.6", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", - "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "bundled": true, "dev": true, "requires": { "cross-spawn": "4.0.2", @@ -10349,8 +9948,7 @@ }, "fragment-cache": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "bundled": true, "dev": true, "requires": { "map-cache": "0.2.2" @@ -10358,32 +9956,27 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "bundled": true, "dev": true }, "get-caller-file": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "bundled": true, "dev": true }, "get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "bundled": true, "dev": true }, "get-value": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "bundled": true, "dev": true }, "glob": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "bundled": true, "dev": true, "requires": { "fs.realpath": "1.0.0", @@ -10396,8 +9989,7 @@ }, "glob-base": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "bundled": true, "dev": true, "requires": { "glob-parent": "2.0.0", @@ -10406,8 +9998,7 @@ }, "glob-parent": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "bundled": true, "dev": true, "requires": { "is-glob": "2.0.1" @@ -10415,20 +10006,17 @@ }, "globals": { "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "bundled": true, "dev": true }, "graceful-fs": { "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "bundled": true, "dev": true }, "handlebars": { "version": "4.0.11", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", - "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "bundled": true, "dev": true, "requires": { "async": "1.5.2", @@ -10439,8 +10027,7 @@ "dependencies": { "source-map": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "bundled": true, "dev": true, "requires": { "amdefine": "1.0.1" @@ -10450,8 +10037,7 @@ }, "has-ansi": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "2.1.1" @@ -10459,14 +10045,12 @@ }, "has-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "bundled": true, "dev": true }, "has-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "bundled": true, "dev": true, "requires": { "get-value": "2.0.6", @@ -10476,16 +10060,14 @@ "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true } } }, "has-values": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "bundled": true, "dev": true, "requires": { "is-number": "3.0.0", @@ -10494,8 +10076,7 @@ "dependencies": { "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -10503,8 +10084,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -10514,8 +10094,7 @@ }, "kind-of": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -10525,20 +10104,17 @@ }, "hosted-git-info": { "version": "2.6.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", - "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", + "bundled": true, "dev": true }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "bundled": true, "dev": true }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "dev": true, "requires": { "once": "1.4.0", @@ -10547,14 +10123,12 @@ }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "bundled": true, "dev": true }, "invariant": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.3.tgz", - "integrity": "sha512-7Z5PPegwDTyjbaeCnV0efcyS6vdKAU51kpEmS7QFib3P4822l8ICYyMn7qvJnc+WzLoDsuI9gPMKbJ8pCu8XtA==", + "bundled": true, "dev": true, "requires": { "loose-envify": "1.3.1" @@ -10562,14 +10136,12 @@ }, "invert-kv": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "bundled": true, "dev": true }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, "dev": true, "requires": { "kind-of": "6.0.2" @@ -10577,28 +10149,24 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true } } }, "is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "bundled": true, "dev": true }, "is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "bundled": true, "dev": true }, "is-builtin-module": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "bundled": true, "dev": true, "requires": { "builtin-modules": "1.1.1" @@ -10606,8 +10174,7 @@ }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, "dev": true, "requires": { "kind-of": "6.0.2" @@ -10615,16 +10182,14 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true } } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", @@ -10634,22 +10199,19 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true } } }, "is-dotfile": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "bundled": true, "dev": true }, "is-equal-shallow": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "bundled": true, "dev": true, "requires": { "is-primitive": "2.0.0" @@ -10657,20 +10219,17 @@ }, "is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "bundled": true, "dev": true }, "is-extglob": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "bundled": true, "dev": true }, "is-finite": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "bundled": true, "dev": true, "requires": { "number-is-nan": "1.0.1" @@ -10678,14 +10237,12 @@ }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "bundled": true, "dev": true }, "is-glob": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "bundled": true, "dev": true, "requires": { "is-extglob": "1.0.0" @@ -10693,8 +10250,7 @@ }, "is-number": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -10702,8 +10258,7 @@ }, "is-odd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", - "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "bundled": true, "dev": true, "requires": { "is-number": "4.0.0" @@ -10711,16 +10266,14 @@ "dependencies": { "is-number": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "bundled": true, "dev": true } } }, "is-plain-object": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "bundled": true, "dev": true, "requires": { "isobject": "3.0.1" @@ -10728,58 +10281,49 @@ "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true } } }, "is-posix-bracket": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "bundled": true, "dev": true }, "is-primitive": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "bundled": true, "dev": true }, "is-stream": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "bundled": true, "dev": true }, "is-utf8": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "bundled": true, "dev": true }, "is-windows": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "bundled": true, "dev": true }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "bundled": true, "dev": true }, "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "bundled": true, "dev": true }, "isobject": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "bundled": true, "dev": true, "requires": { "isarray": "1.0.0" @@ -10787,14 +10331,12 @@ }, "istanbul-lib-coverage": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", - "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==", + "bundled": true, "dev": true }, "istanbul-lib-hook": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", - "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", + "bundled": true, "dev": true, "requires": { "append-transform": "0.4.0" @@ -10802,8 +10344,7 @@ }, "istanbul-lib-instrument": { "version": "1.10.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", - "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", + "bundled": true, "dev": true, "requires": { "babel-generator": "6.26.1", @@ -10817,8 +10358,7 @@ }, "istanbul-lib-report": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz", - "integrity": "sha512-D4jVbMDtT2dPmloPJS/rmeP626N5Pr3Rp+SovrPn1+zPChGHcggd/0sL29jnbm4oK9W0wHjCRsdch9oLd7cm6g==", + "bundled": true, "dev": true, "requires": { "istanbul-lib-coverage": "1.2.0", @@ -10829,8 +10369,7 @@ "dependencies": { "supports-color": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "bundled": true, "dev": true, "requires": { "has-flag": "1.0.0" @@ -10840,8 +10379,7 @@ }, "istanbul-lib-source-maps": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz", - "integrity": "sha512-fDa0hwU/5sDXwAklXgAoCJCOsFsBplVQ6WBldz5UwaqOzmDhUK4nfuR7/G//G2lERlblUNJB8P6e8cXq3a7MlA==", + "bundled": true, "dev": true, "requires": { "debug": "3.1.0", @@ -10853,8 +10391,7 @@ "dependencies": { "debug": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "bundled": true, "dev": true, "requires": { "ms": "2.0.0" @@ -10864,8 +10401,7 @@ }, "istanbul-reports": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.3.0.tgz", - "integrity": "sha512-y2Z2IMqE1gefWUaVjrBm0mSKvUkaBy9Vqz8iwr/r40Y9hBbIteH5wqHG/9DLTfJ9xUnUT2j7A3+VVJ6EaYBllA==", + "bundled": true, "dev": true, "requires": { "handlebars": "4.0.11" @@ -10873,20 +10409,17 @@ }, "js-tokens": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "bundled": true, "dev": true }, "jsesc": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "bundled": true, "dev": true }, "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -10894,15 +10427,13 @@ }, "lazy-cache": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "bundled": true, "dev": true, "optional": true }, "lcid": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "bundled": true, "dev": true, "requires": { "invert-kv": "1.0.0" @@ -10910,8 +10441,7 @@ }, "load-json-file": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -10923,8 +10453,7 @@ }, "locate-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "bundled": true, "dev": true, "requires": { "p-locate": "2.0.0", @@ -10933,28 +10462,24 @@ "dependencies": { "path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "bundled": true, "dev": true } } }, "lodash": { "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "bundled": true, "dev": true }, "longest": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "bundled": true, "dev": true }, "loose-envify": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "bundled": true, "dev": true, "requires": { "js-tokens": "3.0.2" @@ -10962,8 +10487,7 @@ }, "lru-cache": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz", - "integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==", + "bundled": true, "dev": true, "requires": { "pseudomap": "1.0.2", @@ -10972,14 +10496,12 @@ }, "map-cache": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "bundled": true, "dev": true }, "map-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "bundled": true, "dev": true, "requires": { "object-visit": "1.0.1" @@ -10987,8 +10509,7 @@ }, "md5-hex": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", - "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", + "bundled": true, "dev": true, "requires": { "md5-o-matic": "0.1.1" @@ -10996,14 +10517,12 @@ }, "md5-o-matic": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", - "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=", + "bundled": true, "dev": true }, "mem": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "bundled": true, "dev": true, "requires": { "mimic-fn": "1.2.0" @@ -11011,8 +10530,7 @@ }, "merge-source-map": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "bundled": true, "dev": true, "requires": { "source-map": "0.6.1" @@ -11020,16 +10538,14 @@ "dependencies": { "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "bundled": true, "dev": true } } }, "micromatch": { "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "bundled": true, "dev": true, "requires": { "arr-diff": "2.0.0", @@ -11049,14 +10565,12 @@ }, "mimic-fn": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "bundled": true, "dev": true }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, "dev": true, "requires": { "brace-expansion": "1.1.11" @@ -11064,14 +10578,12 @@ }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "bundled": true, "dev": true }, "mixin-deep": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "bundled": true, "dev": true, "requires": { "for-in": "1.0.2", @@ -11080,8 +10592,7 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "bundled": true, "dev": true, "requires": { "is-plain-object": "2.0.4" @@ -11091,8 +10602,7 @@ }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "dev": true, "requires": { "minimist": "0.0.8" @@ -11100,14 +10610,12 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "bundled": true, "dev": true }, "nanomatch": { "version": "1.2.9", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", - "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", + "bundled": true, "dev": true, "requires": { "arr-diff": "4.0.0", @@ -11126,28 +10634,24 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "bundled": true, "dev": true }, "array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "bundled": true, "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true } } }, "normalize-package-data": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "bundled": true, "dev": true, "requires": { "hosted-git-info": "2.6.0", @@ -11158,8 +10662,7 @@ }, "normalize-path": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "bundled": true, "dev": true, "requires": { "remove-trailing-separator": "1.1.0" @@ -11167,8 +10670,7 @@ }, "npm-run-path": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "bundled": true, "dev": true, "requires": { "path-key": "2.0.1" @@ -11176,20 +10678,17 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "bundled": true, "dev": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "bundled": true, "dev": true }, "object-copy": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "bundled": true, "dev": true, "requires": { "copy-descriptor": "0.1.1", @@ -11199,8 +10698,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "0.1.6" @@ -11208,8 +10706,7 @@ }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -11217,8 +10714,7 @@ }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -11226,8 +10722,7 @@ }, "is-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "bundled": true, "dev": true, "requires": { "is-accessor-descriptor": "0.1.6", @@ -11237,8 +10732,7 @@ "dependencies": { "kind-of": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "bundled": true, "dev": true } } @@ -11247,8 +10741,7 @@ }, "object-visit": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "bundled": true, "dev": true, "requires": { "isobject": "3.0.1" @@ -11256,16 +10749,14 @@ "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true } } }, "object.omit": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "bundled": true, "dev": true, "requires": { "for-own": "0.1.5", @@ -11274,8 +10765,7 @@ }, "object.pick": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "bundled": true, "dev": true, "requires": { "isobject": "3.0.1" @@ -11283,16 +10773,14 @@ "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true } } }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "dev": true, "requires": { "wrappy": "1.0.2" @@ -11300,8 +10788,7 @@ }, "optimist": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "bundled": true, "dev": true, "requires": { "minimist": "0.0.8", @@ -11310,14 +10797,12 @@ }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "bundled": true, "dev": true }, "os-locale": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "bundled": true, "dev": true, "requires": { "execa": "0.7.0", @@ -11327,14 +10812,12 @@ }, "p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "bundled": true, "dev": true }, "p-limit": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "bundled": true, "dev": true, "requires": { "p-try": "1.0.0" @@ -11342,8 +10825,7 @@ }, "p-locate": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "bundled": true, "dev": true, "requires": { "p-limit": "1.2.0" @@ -11351,14 +10833,12 @@ }, "p-try": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "bundled": true, "dev": true }, "parse-glob": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "bundled": true, "dev": true, "requires": { "glob-base": "0.3.0", @@ -11369,8 +10849,7 @@ }, "parse-json": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "bundled": true, "dev": true, "requires": { "error-ex": "1.3.1" @@ -11378,14 +10857,12 @@ }, "pascalcase": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "bundled": true, "dev": true }, "path-exists": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "bundled": true, "dev": true, "requires": { "pinkie-promise": "2.0.1" @@ -11393,26 +10870,22 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "bundled": true, "dev": true }, "path-key": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "bundled": true, "dev": true }, "path-parse": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "bundled": true, "dev": true }, "path-type": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -11422,20 +10895,17 @@ }, "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "bundled": true, "dev": true }, "pinkie": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "bundled": true, "dev": true }, "pinkie-promise": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "bundled": true, "dev": true, "requires": { "pinkie": "2.0.4" @@ -11443,8 +10913,7 @@ }, "pkg-dir": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "bundled": true, "dev": true, "requires": { "find-up": "1.1.2" @@ -11452,8 +10921,7 @@ "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "bundled": true, "dev": true, "requires": { "path-exists": "2.1.0", @@ -11464,26 +10932,22 @@ }, "posix-character-classes": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "bundled": true, "dev": true }, "preserve": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "bundled": true, "dev": true }, "pseudomap": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "bundled": true, "dev": true }, "randomatic": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "bundled": true, "dev": true, "requires": { "is-number": "3.0.0", @@ -11492,8 +10956,7 @@ "dependencies": { "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -11501,8 +10964,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -11512,8 +10974,7 @@ }, "kind-of": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -11523,8 +10984,7 @@ }, "read-pkg": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "bundled": true, "dev": true, "requires": { "load-json-file": "1.1.0", @@ -11534,8 +10994,7 @@ }, "read-pkg-up": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "bundled": true, "dev": true, "requires": { "find-up": "1.1.2", @@ -11544,8 +11003,7 @@ "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "bundled": true, "dev": true, "requires": { "path-exists": "2.1.0", @@ -11556,14 +11014,12 @@ }, "regenerator-runtime": { "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "bundled": true, "dev": true }, "regex-cache": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "bundled": true, "dev": true, "requires": { "is-equal-shallow": "0.1.3" @@ -11571,8 +11027,7 @@ }, "regex-not": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "bundled": true, "dev": true, "requires": { "extend-shallow": "3.0.2", @@ -11581,26 +11036,22 @@ }, "remove-trailing-separator": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "bundled": true, "dev": true }, "repeat-element": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "bundled": true, "dev": true }, "repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "bundled": true, "dev": true }, "repeating": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "bundled": true, "dev": true, "requires": { "is-finite": "1.0.2" @@ -11608,38 +11059,32 @@ }, "require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "bundled": true, "dev": true }, "require-main-filename": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "bundled": true, "dev": true }, "resolve-from": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", + "bundled": true, "dev": true }, "resolve-url": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "bundled": true, "dev": true }, "ret": { "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "bundled": true, "dev": true }, "right-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -11648,8 +11093,7 @@ }, "rimraf": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "bundled": true, "dev": true, "requires": { "glob": "7.1.2" @@ -11657,8 +11101,7 @@ }, "safe-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "bundled": true, "dev": true, "requires": { "ret": "0.1.15" @@ -11666,20 +11109,17 @@ }, "semver": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "bundled": true, "dev": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "bundled": true, "dev": true }, "set-value": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "bundled": true, "dev": true, "requires": { "extend-shallow": "2.0.1", @@ -11690,8 +11130,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "0.1.1" @@ -11701,8 +11140,7 @@ }, "shebang-command": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "bundled": true, "dev": true, "requires": { "shebang-regex": "1.0.0" @@ -11710,26 +11148,22 @@ }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "bundled": true, "dev": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "bundled": true, "dev": true }, "slide": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "bundled": true, "dev": true }, "snapdragon": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "bundled": true, "dev": true, "requires": { "base": "0.11.2", @@ -11744,8 +11178,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "0.1.6" @@ -11753,8 +11186,7 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "0.1.1" @@ -11762,8 +11194,7 @@ }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -11771,8 +11202,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -11782,8 +11212,7 @@ }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -11791,8 +11220,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -11802,8 +11230,7 @@ }, "is-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "bundled": true, "dev": true, "requires": { "is-accessor-descriptor": "0.1.6", @@ -11813,16 +11240,14 @@ }, "kind-of": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "bundled": true, "dev": true } } }, "snapdragon-node": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "bundled": true, "dev": true, "requires": { "define-property": "1.0.0", @@ -11832,8 +11257,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "1.0.2" @@ -11841,16 +11265,14 @@ }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true } } }, "snapdragon-util": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -11858,14 +11280,12 @@ }, "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "bundled": true, "dev": true }, "source-map-resolve": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", - "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "bundled": true, "dev": true, "requires": { "atob": "2.0.3", @@ -11877,14 +11297,12 @@ }, "source-map-url": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "bundled": true, "dev": true }, "spawn-wrap": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", - "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", + "bundled": true, "dev": true, "requires": { "foreground-child": "1.5.6", @@ -11897,8 +11315,7 @@ }, "spdx-correct": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "bundled": true, "dev": true, "requires": { "spdx-expression-parse": "3.0.0", @@ -11907,14 +11324,12 @@ }, "spdx-exceptions": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", + "bundled": true, "dev": true }, "spdx-expression-parse": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "bundled": true, "dev": true, "requires": { "spdx-exceptions": "2.1.0", @@ -11923,14 +11338,12 @@ }, "spdx-license-ids": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", + "bundled": true, "dev": true }, "split-string": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "bundled": true, "dev": true, "requires": { "extend-shallow": "3.0.2" @@ -11938,8 +11351,7 @@ }, "static-extend": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "bundled": true, "dev": true, "requires": { "define-property": "0.2.5", @@ -11948,8 +11360,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "0.1.6" @@ -11957,8 +11368,7 @@ }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -11966,8 +11376,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -11977,8 +11386,7 @@ }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -11986,8 +11394,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -11997,8 +11404,7 @@ }, "is-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "bundled": true, "dev": true, "requires": { "is-accessor-descriptor": "0.1.6", @@ -12008,16 +11414,14 @@ }, "kind-of": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "bundled": true, "dev": true } } }, "string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "bundled": true, "dev": true, "requires": { "is-fullwidth-code-point": "2.0.0", @@ -12026,14 +11430,12 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "bundled": true, "dev": true }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "3.0.0" @@ -12043,8 +11445,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "2.1.1" @@ -12052,8 +11453,7 @@ }, "strip-bom": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "bundled": true, "dev": true, "requires": { "is-utf8": "0.2.1" @@ -12061,20 +11461,17 @@ }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "bundled": true, "dev": true }, "supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "bundled": true, "dev": true }, "test-exclude": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", - "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", + "bundled": true, "dev": true, "requires": { "arrify": "1.0.1", @@ -12086,20 +11483,17 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "bundled": true, "dev": true }, "array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "bundled": true, "dev": true }, "braces": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz", - "integrity": "sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ==", + "bundled": true, "dev": true, "requires": { "arr-flatten": "1.1.0", @@ -12118,8 +11512,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "1.0.2" @@ -12127,8 +11520,7 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "0.1.1" @@ -12138,8 +11530,7 @@ }, "expand-brackets": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "bundled": true, "dev": true, "requires": { "debug": "2.6.9", @@ -12153,8 +11544,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "0.1.6" @@ -12162,8 +11552,7 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "0.1.1" @@ -12171,8 +11560,7 @@ }, "is-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "bundled": true, "dev": true, "requires": { "is-accessor-descriptor": "0.1.6", @@ -12182,16 +11570,14 @@ }, "kind-of": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "bundled": true, "dev": true } } }, "extglob": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "bundled": true, "dev": true, "requires": { "array-unique": "0.3.2", @@ -12206,8 +11592,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "1.0.2" @@ -12215,8 +11600,7 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "0.1.1" @@ -12226,8 +11610,7 @@ }, "fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "bundled": true, "dev": true, "requires": { "extend-shallow": "2.0.1", @@ -12238,8 +11621,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "0.1.1" @@ -12249,8 +11631,7 @@ }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -12258,8 +11639,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -12269,8 +11649,7 @@ }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -12278,8 +11657,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -12289,8 +11667,7 @@ }, "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -12298,8 +11675,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -12309,20 +11685,17 @@ }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true }, "micromatch": { "version": "3.1.9", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.9.tgz", - "integrity": "sha512-SlIz6sv5UPaAVVFRKodKjCg48EbNoIhgetzfK/Cy0v5U52Z6zB136M8tp0UC9jM53LYbmIRihJszvvqpKkfm9g==", + "bundled": true, "dev": true, "requires": { "arr-diff": "4.0.0", @@ -12344,14 +11717,12 @@ }, "to-fast-properties": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "bundled": true, "dev": true }, "to-object-path": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -12359,8 +11730,7 @@ }, "to-regex": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "bundled": true, "dev": true, "requires": { "define-property": "2.0.2", @@ -12371,8 +11741,7 @@ }, "to-regex-range": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "bundled": true, "dev": true, "requires": { "is-number": "3.0.0", @@ -12381,8 +11750,7 @@ "dependencies": { "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -12392,14 +11760,12 @@ }, "trim-right": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "bundled": true, "dev": true }, "uglify-js": { "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -12410,8 +11776,7 @@ "dependencies": { "yargs": { "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -12425,15 +11790,13 @@ }, "uglify-to-browserify": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "bundled": true, "dev": true, "optional": true }, "union-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "bundled": true, "dev": true, "requires": { "arr-union": "3.1.0", @@ -12444,8 +11807,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "0.1.1" @@ -12453,8 +11815,7 @@ }, "set-value": { "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "bundled": true, "dev": true, "requires": { "extend-shallow": "2.0.1", @@ -12467,8 +11828,7 @@ }, "unset-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "bundled": true, "dev": true, "requires": { "has-value": "0.3.1", @@ -12477,8 +11837,7 @@ "dependencies": { "has-value": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "bundled": true, "dev": true, "requires": { "get-value": "2.0.6", @@ -12488,8 +11847,7 @@ "dependencies": { "isobject": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "bundled": true, "dev": true, "requires": { "isarray": "1.0.0" @@ -12499,28 +11857,24 @@ }, "has-values": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "bundled": true, "dev": true }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true } } }, "urix": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "bundled": true, "dev": true }, "use": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", - "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "bundled": true, "dev": true, "requires": { "kind-of": "6.0.2" @@ -12528,16 +11882,14 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true } } }, "validate-npm-package-license": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", + "bundled": true, "dev": true, "requires": { "spdx-correct": "3.0.0", @@ -12546,8 +11898,7 @@ }, "which": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "bundled": true, "dev": true, "requires": { "isexe": "2.0.0" @@ -12555,27 +11906,23 @@ }, "which-module": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "bundled": true, "dev": true }, "window-size": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "bundled": true, "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "bundled": true, "dev": true }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "bundled": true, "dev": true, "requires": { "string-width": "1.0.2", @@ -12584,8 +11931,7 @@ "dependencies": { "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, "dev": true, "requires": { "number-is-nan": "1.0.1" @@ -12593,8 +11939,7 @@ }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "dev": true, "requires": { "code-point-at": "1.1.0", @@ -12606,14 +11951,12 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "bundled": true, "dev": true }, "write-file-atomic": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", - "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -12623,20 +11966,17 @@ }, "y18n": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "bundled": true, "dev": true }, "yallist": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "bundled": true, "dev": true }, "yargs": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", - "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", + "bundled": true, "dev": true, "requires": { "cliui": "4.0.0", @@ -12655,20 +11995,17 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "bundled": true, "dev": true }, "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "bundled": true, "dev": true }, "cliui": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.0.0.tgz", - "integrity": "sha512-nY3W5Gu2racvdDk//ELReY+dHjb9PlIcVDFXP72nVIhq2Gy3LuVXYwJoPVudwQnv1shtohpgkdCKT2YaKY0CKw==", + "bundled": true, "dev": true, "requires": { "string-width": "2.1.1", @@ -12678,8 +12015,7 @@ }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "3.0.0" @@ -12687,8 +12023,7 @@ }, "yargs-parser": { "version": "9.0.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "bundled": true, "dev": true, "requires": { "camelcase": "4.1.0" @@ -12698,8 +12033,7 @@ }, "yargs-parser": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", - "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", + "bundled": true, "dev": true, "requires": { "camelcase": "4.1.0" @@ -12707,8 +12041,7 @@ "dependencies": { "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "bundled": true, "dev": true } } @@ -15296,7 +14629,7 @@ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, "requires": { - "minimalistic-assert": "1.0.0" + "minimalistic-assert": "1.0.1" } }, "well-known-symbols": { diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 3e7ed314eb3..ccf44218772 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/error-reporting", "description": "Stackdriver Error Reporting Client Library for Node.js", - "version": "0.3.2", + "version": "0.4.0", "license": "Apache-2.0", "author": "Google Inc.", "engines": { From 202a6815bf5bc93976b7a5a4af23a74f2f4f23fc Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Thu, 12 Apr 2018 23:59:58 -0700 Subject: [PATCH 090/527] chore(package): update restify to version 7.1.1 (#108) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index ccf44218772..b9377ca1d84 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -129,7 +129,7 @@ "prettier": "^1.7.4", "proxyquire": "^2.0.0", "request": "^2.85.0", - "restify": "^6.3.4", + "restify": "^7.1.1", "rimraf": "^2.6.2", "tmp": "0.0.33", "typescript": "~2.8.1" From 71d13fa4f903b239cffbcf961abf791f20ac110c Mon Sep 17 00:00:00 2001 From: Ali Ijaz Sheikh Date: Tue, 17 Apr 2018 09:35:10 -0700 Subject: [PATCH 091/527] fix: hapi16: properly deal with preResponse errors (#110) `is.object(o)` returns false when `o` is an Error object. The tests were never catching this as they were using fake Boom error objects. --- handwritten/error-reporting/package-lock.json | 360 ++---------------- handwritten/error-reporting/package.json | 2 + .../error-reporting/src/interfaces/hapi.ts | 15 +- .../test/unit/interfaces/hapi.ts | 10 +- 4 files changed, 42 insertions(+), 345 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index 1a9636fe644..6b6816fc499 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -1843,6 +1843,14 @@ "dev": true, "requires": { "@types/boom": "4.3.10" + }, + "dependencies": { + "@types/boom": { + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/@types/boom/-/boom-4.3.10.tgz", + "integrity": "sha512-5iXMLKwCxW0FK0G4XgS5kn0VZQv31DhVAeB36YhxzFpWF4QKa6ZLn4XrziIK2j662p9Azs+lFpFrsuUzC8376g==", + "dev": true + } } }, "@types/connect": { @@ -1933,6 +1941,14 @@ "@types/node": "9.6.4", "@types/podium": "1.0.0", "@types/shot": "3.4.0" + }, + "dependencies": { + "@types/boom": { + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/@types/boom/-/boom-4.3.10.tgz", + "integrity": "sha512-5iXMLKwCxW0FK0G4XgS5kn0VZQv31DhVAeB36YhxzFpWF4QKa6ZLn4XrziIK2j662p9Azs+lFpFrsuUzC8376g==", + "dev": true + } } }, "@types/http-assert": { @@ -3221,6 +3237,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", + "dev": true, "requires": { "hoek": "4.2.1" } @@ -3330,18 +3347,6 @@ "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", "dev": true }, - "bunyan": { - "version": "1.8.12", - "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.12.tgz", - "integrity": "sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=", - "dev": true, - "requires": { - "dtrace-provider": "0.8.6", - "moment": "2.22.0", - "mv": "2.1.1", - "safe-json-stringify": "1.1.0" - } - }, "bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", @@ -3757,16 +3762,6 @@ } } }, - "clone-regexp": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.1.tgz", - "integrity": "sha512-Fcij9IwRW27XedRIJnSOEupS7RVcXtObJXbcUOX93UCLqqOdRpkvzKywOOSizmEK/Is3S/RHX9dLdfo6R1Q1mw==", - "dev": true, - "requires": { - "is-regexp": "1.0.0", - "is-supported-regexp-flag": "1.0.1" - } - }, "clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", @@ -4373,39 +4368,6 @@ } } }, - "csv": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/csv/-/csv-1.2.1.tgz", - "integrity": "sha1-UjHt/BxxUlEuxFeBB2p6l/9SXAw=", - "dev": true, - "requires": { - "csv-generate": "1.1.2", - "csv-parse": "1.3.3", - "csv-stringify": "1.1.2", - "stream-transform": "0.2.2" - } - }, - "csv-generate": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-1.1.2.tgz", - "integrity": "sha1-7GsA7a7W5ZrZwgWC9MNk4osUYkA=", - "dev": true - }, - "csv-parse": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-1.3.3.tgz", - "integrity": "sha1-0c/YdDwvhJoKuy/VRNtWaV0ZpJA=", - "dev": true - }, - "csv-stringify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-1.1.2.tgz", - "integrity": "sha1-d6QVJlgbzjOA8SsA18W7rHDIK1g=", - "dev": true, - "requires": { - "lodash.get": "4.4.2" - } - }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -4610,12 +4572,6 @@ "repeating": "2.0.1" } }, - "detect-node": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz", - "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=", - "dev": true - }, "diff": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", @@ -4689,16 +4645,6 @@ "is-obj": "1.0.1" } }, - "dtrace-provider": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.6.tgz", - "integrity": "sha1-QooiOv4DQl0s1tY0f99AxmkDVj0=", - "dev": true, - "optional": true, - "requires": { - "nan": "2.10.0" - } - }, "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", @@ -4922,12 +4868,6 @@ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", "dev": true }, - "escape-regexp-component": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/escape-regexp-component/-/escape-regexp-component-1.0.2.tgz", - "integrity": "sha1-nGO20LJf8qiMOtvRjFthrMO5+qI=", - "dev": true - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -5238,15 +5178,6 @@ "es5-ext": "0.10.42" } }, - "ewma": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ewma/-/ewma-2.0.1.tgz", - "integrity": "sha512-MYYK17A76cuuyvkR7MnqLW4iFYPEi5Isl2qb8rXiWpLiwFS9dxW/rncuNnjjgSENuVqZQkIuR4+DChVL4g1lnw==", - "dev": true, - "requires": { - "assert-plus": "1.0.0" - } - }, "execa": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", @@ -6911,12 +6842,6 @@ } } }, - "handle-thing": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", - "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", - "dev": true - }, "handlebars": { "version": "4.0.11", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", @@ -7053,6 +6978,16 @@ "cryptiles": "3.1.2", "hoek": "4.2.1", "sntp": "2.1.0" + }, + "dependencies": { + "boom": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", + "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", + "requires": { + "hoek": "4.2.1" + } + } } }, "he": { @@ -7110,18 +7045,6 @@ "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", "dev": true }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "wbuf": "1.7.3" - } - }, "htmlparser2": { "version": "3.9.2", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", @@ -7152,12 +7075,6 @@ "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", "dev": true }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true - }, "http-errors": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", @@ -7614,12 +7531,6 @@ "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", "dev": true }, - "is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", - "dev": true - }, "is-resolvable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", @@ -7643,12 +7554,6 @@ "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz", "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==" }, - "is-supported-regexp-flag": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.1.tgz", - "integrity": "sha512-3vcJecUUrpgCqc/ca0aWeNu64UGgxcvO60K/Fkr1N6RSvfGCTU60UKN68JDmKokgba0rFFJs12EnzOQa14ubKQ==", - "dev": true - }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -8909,12 +8814,6 @@ } } }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -9044,44 +8943,6 @@ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, - "mv": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", - "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=", - "dev": true, - "optional": true, - "requires": { - "mkdirp": "0.5.1", - "ncp": "2.0.0", - "rimraf": "2.4.5" - }, - "dependencies": { - "glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", - "dev": true, - "optional": true, - "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "rimraf": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", - "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=", - "dev": true, - "optional": true, - "requires": { - "glob": "6.0.4" - } - } - } - }, "nan": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", @@ -12104,12 +11965,6 @@ } } }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -12447,12 +12302,6 @@ } } }, - "pidusage": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-1.2.0.tgz", - "integrity": "sha512-OGo+iSOk44HRJ8q15AyG570UYxcm5u+R99DI8Khu8P3tKGkVu5EZX4ywHglWSTMNNXQ274oeGpYrvFEhDIFGPg==", - "dev": true - }, "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", @@ -13244,56 +13093,6 @@ "lowercase-keys": "1.0.1" } }, - "restify": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/restify/-/restify-6.4.0.tgz", - "integrity": "sha512-p92TXaSuvDWxpmHd7Y5ex1vjFifhNzNZQy99EOPynV/V75fJN5ybHv5mXTD+c1Ffo9fvRv2Yb1FLnfDMpaffPA==", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "bunyan": "1.8.12", - "clone-regexp": "1.0.1", - "csv": "1.2.1", - "dtrace-provider": "0.8.6", - "escape-regexp-component": "1.0.2", - "ewma": "2.0.1", - "formidable": "1.2.1", - "http-signature": "1.2.0", - "lodash": "4.17.5", - "lru-cache": "4.1.2", - "mime": "1.6.0", - "negotiator": "0.6.1", - "once": "1.4.0", - "pidusage": "1.2.0", - "qs": "6.5.1", - "restify-errors": "5.0.0", - "semver": "5.5.0", - "spdy": "3.4.7", - "uuid": "3.2.1", - "vasync": "1.6.4", - "verror": "1.10.0" - }, - "dependencies": { - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - } - } - }, - "restify-errors": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/restify-errors/-/restify-errors-5.0.0.tgz", - "integrity": "sha512-+vby9Kxf7qlzvbZSTIEGkIixkeHG+pVCl34dk6eKnL+ua4pCezpdLT/1/eabzPZb65ADrgoc04jeWrrF1E1pvQ==", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "lodash": "4.17.5", - "safe-json-stringify": "1.1.0", - "verror": "1.10.0" - } - }, "restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", @@ -13372,13 +13171,6 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, - "safe-json-stringify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.1.0.tgz", - "integrity": "sha512-EzBtUaFH9bHYPc69wqjp0efJI/DPNHdFbGE3uIMn4sVbO0zx8vZ8cG4WKxQfOpUOKsQyGBiT2mTqnCw+6nLswA==", - "dev": true, - "optional": true - }, "samsam": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz", @@ -13403,12 +13195,6 @@ "xtend": "4.0.1" } }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true - }, "semver": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", @@ -13685,57 +13471,6 @@ "spdx-ranges": "2.0.0" } }, - "spdy": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", - "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", - "dev": true, - "requires": { - "debug": "2.6.9", - "handle-thing": "1.2.5", - "http-deceiver": "1.2.7", - "safe-buffer": "5.1.1", - "select-hose": "2.0.0", - "spdy-transport": "2.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "spdy-transport": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.0.tgz", - "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", - "dev": true, - "requires": { - "debug": "2.6.9", - "detect-node": "2.0.3", - "hpack.js": "2.1.6", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "safe-buffer": "5.1.1", - "wbuf": "1.7.3" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, "split-array-stream": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/split-array-stream/-/split-array-stream-1.0.3.tgz", @@ -13847,12 +13582,6 @@ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" }, - "stream-transform": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-0.2.2.tgz", - "integrity": "sha1-dYZ0h/SVKPi/HYJJllh1PQLfeDg=", - "dev": true - }, "strict-uri-encode": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", @@ -14535,32 +14264,6 @@ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true }, - "vasync": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/vasync/-/vasync-1.6.4.tgz", - "integrity": "sha1-3+k2Fq0OeugBszKp2Iv8XNyOHR8=", - "dev": true, - "requires": { - "verror": "1.6.0" - }, - "dependencies": { - "extsprintf": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.2.0.tgz", - "integrity": "sha1-WtlGwi9bMrp/jNdCZxHG6KP8JSk=", - "dev": true - }, - "verror": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.6.0.tgz", - "integrity": "sha1-fROyex+swuLakEBetepuW90lLqU=", - "dev": true, - "requires": { - "extsprintf": "1.2.0" - } - } - } - }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -14623,15 +14326,6 @@ "vow": "0.4.17" } }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "requires": { - "minimalistic-assert": "1.0.1" - } - }, "well-known-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-1.0.0.tgz", diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index b9377ca1d84..bdaea61c5a6 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -59,6 +59,7 @@ }, "devDependencies": { "@google-cloud/nodejs-repo-tools": "^2.0.11", + "@types/boom": "^4.3.10", "@types/express": "^4.11.0", "@types/express-serve-static-core": "^4.11.1", "@types/extend": "^3.0.0", @@ -90,6 +91,7 @@ "@types/tmp": "0.0.33", "async": "^2.6.0", "body-parser": "^1.15.1", + "boom": "^4.3.1", "codecov": "^3.0.0", "cpy-cli": "^1.0.1", "eslint": "^4.9.0", diff --git a/handwritten/error-reporting/src/interfaces/hapi.ts b/handwritten/error-reporting/src/interfaces/hapi.ts index 10181a23220..a65c3e04fcb 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.ts +++ b/handwritten/error-reporting/src/interfaces/hapi.ts @@ -110,15 +110,14 @@ export function makeHapiPlugin(client: RequestHandler, config: Configuration) { server.ext( 'onPreResponse', (request: hapi.Request, reply: hapi.ReplyWithContinue) => { - if (isObject(request) && isObject(request.response) && - // TODO: Handle the case when `request.response` is null - request.response!.isBoom) { + if (isObject(request) && request.response && + request.response.isBoom) { + // Cast to {} is necessary, as@types/hapi@16 incorrectly types + // response as 'Response | null' instead of 'Response | Boom | + // null'. + const boom = request.response as {} as Error; const em = hapiErrorHandler( - // TODO: Handle the case when `request.response` is null - // TODO: Handle the type conflict that requires a cast to - // string - new Error(request.response!.message as {} as string), - request, config); + new Error(boom.message), request, config); client.sendError(em); } diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.ts b/handwritten/error-reporting/test/unit/interfaces/hapi.ts index 7b478184f9a..afecc882f6f 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.ts +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.ts @@ -28,6 +28,7 @@ import {RequestHandler} from '../../../src/google-apis/auth-client'; import {FakeConfiguration as Configuration} from '../../fixtures/configuration'; import * as http from 'http'; import * as hapi from 'hapi'; +import * as boom from 'boom'; const packageJson = require('../../../../package.json'); @@ -137,7 +138,7 @@ describe('Hapi interface', () => { it('Should call continue when a boom is emitted if reply is an object', done => { plugin.register(fakeServer, null!, () => {}); - fakeServer.emit(EVENT, {response: {isBoom: true}}, { + fakeServer.emit(EVENT, {response: boom.create(427, 'message')}, { continue() { // The continue function should be called done(); @@ -157,7 +158,7 @@ describe('Hapi interface', () => { // The continue function should be called done(); }; - fakeServer.emit(EVENT, {response: {isBoom: true}}, reply); + fakeServer.emit(EVENT, {response: boom.create(427, 'message')}, reply); }); it('Should call sendError when a boom is received', done => { const fakeClient = { @@ -168,14 +169,15 @@ describe('Hapi interface', () => { } as {} as RequestHandler; const plugin = hapiInterface(fakeClient, config); plugin.register(fakeServer, null!, () => {}); - fakeServer.emit('onPreResponse', {response: {isBoom: true}}); + fakeServer.emit('onPreResponse', {response: boom.create(427, 'message')}); }); it('Should call next when completing a request', done => { plugin.register(fakeServer, null!, () => { // The next function should be called done(); }); - fakeServer.emit(EVENT, {response: {isBoom: true}}, {continue() {}}); + fakeServer.emit( + EVENT, {response: boom.create(427, 'message')}, {continue() {}}); }); }); describe('Hapi17', () => { From dbd6e92555d5358efb5e070d4f5638247c42a2a0 Mon Sep 17 00:00:00 2001 From: Alexander Fenster Date: Wed, 2 May 2018 08:30:53 -0700 Subject: [PATCH 092/527] chore: lock files maintenance (#114) * chore: lock files maintenance * chore: lock files maintenance --- handwritten/error-reporting/package-lock.json | 2041 +++++++---------- 1 file changed, 857 insertions(+), 1184 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index 6b6816fc499..1f36b7ba80b 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -21,7 +21,7 @@ "babel-plugin-transform-async-to-generator": "6.24.1", "babel-plugin-transform-es2015-destructuring": "6.23.0", "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", "babel-plugin-transform-es2015-parameters": "6.24.1", "babel-plugin-transform-es2015-spread": "6.22.0", "babel-plugin-transform-es2015-sticky-regex": "6.24.1", @@ -92,7 +92,7 @@ "duplexify": "3.5.4", "ent": "2.2.0", "extend": "3.0.1", - "google-auto-auth": "0.10.0", + "google-auto-auth": "0.10.1", "is": "3.2.1", "log-driver": "1.2.7", "methmeth": "1.1.0", @@ -100,7 +100,7 @@ "request": "2.85.0", "retry-request": "3.3.1", "split-array-stream": "1.0.3", - "stream-events": "1.0.3", + "stream-events": "1.0.4", "string-format-obj": "1.1.1", "through2": "2.0.3" } @@ -127,6 +127,12 @@ "yargs-parser": "9.0.2" }, "dependencies": { + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, "nyc": { "version": "11.4.1", "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.4.1.tgz", @@ -1801,17 +1807,17 @@ "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", "dev": true, "requires": { - "@types/node": "9.6.4" + "@types/node": "9.6.8" } }, "@types/body-parser": { - "version": "1.16.8", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.16.8.tgz", - "integrity": "sha512-BdN2PXxOFnTXFcyONPW6t0fHjz2fvRZHVMFpaS0wYr+Y8fWEaNOs4V8LEu/fpzQlMx+ahdndgTaGTwPC+J/EeA==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.17.0.tgz", + "integrity": "sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w==", "dev": true, "requires": { - "@types/express": "4.11.1", - "@types/node": "9.6.4" + "@types/connect": "3.4.32", + "@types/node": "9.6.8" } }, "@types/boom": { @@ -1827,7 +1833,7 @@ "dev": true, "requires": { "@types/events": "1.2.0", - "@types/node": "9.6.4" + "@types/node": "9.6.8" } }, "@types/caseless": { @@ -1843,23 +1849,15 @@ "dev": true, "requires": { "@types/boom": "4.3.10" - }, - "dependencies": { - "@types/boom": { - "version": "4.3.10", - "resolved": "https://registry.npmjs.org/@types/boom/-/boom-4.3.10.tgz", - "integrity": "sha512-5iXMLKwCxW0FK0G4XgS5kn0VZQv31DhVAeB36YhxzFpWF4QKa6ZLn4XrziIK2j662p9Azs+lFpFrsuUzC8376g==", - "dev": true - } } }, "@types/connect": { - "version": "3.4.31", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.31.tgz", - "integrity": "sha512-OPSxsP6XqA3984KWDUXq/u05Hu8VWa/2rUVlw/aDUOx87BptIep6xb3NdCxCpKLfLdjZcCE5jR+gouTul3gjdA==", + "version": "3.4.32", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.32.tgz", + "integrity": "sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg==", "dev": true, "requires": { - "@types/node": "9.6.4" + "@types/node": "9.6.8" } }, "@types/cookies": { @@ -1868,10 +1866,10 @@ "integrity": "sha512-ku6IvbucEyuC6i4zAVK/KnuzWNXdbFd1HkXlNLg/zhWDGTtQT5VhumiPruB/BHW34PWVFwyfwGftDQHfWNxu3Q==", "dev": true, "requires": { - "@types/connect": "3.4.31", + "@types/connect": "3.4.32", "@types/express": "4.11.1", "@types/keygrip": "1.0.1", - "@types/node": "9.6.4" + "@types/node": "9.6.8" } }, "@types/events": { @@ -1886,9 +1884,9 @@ "integrity": "sha512-ttWle8cnPA5rAelauSWeWJimtY2RsUf2aspYZs7xPHiWgOlPn6nnUfBMtrkcnjFJuIHJF4gNOdVvpLK2Zmvh6g==", "dev": true, "requires": { - "@types/body-parser": "1.16.8", + "@types/body-parser": "1.17.0", "@types/express-serve-static-core": "4.11.1", - "@types/serve-static": "1.13.1" + "@types/serve-static": "1.13.2" } }, "@types/express-serve-static-core": { @@ -1898,7 +1896,7 @@ "dev": true, "requires": { "@types/events": "1.2.0", - "@types/node": "9.6.4" + "@types/node": "9.6.8" } }, "@types/extend": { @@ -1913,7 +1911,7 @@ "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", "dev": true, "requires": { - "@types/node": "9.6.4" + "@types/node": "9.6.8" } }, "@types/glob": { @@ -1924,7 +1922,7 @@ "requires": { "@types/events": "1.2.0", "@types/minimatch": "3.0.3", - "@types/node": "9.6.4" + "@types/node": "9.6.8" } }, "@types/hapi": { @@ -1936,19 +1934,11 @@ "@types/boom": "4.3.10", "@types/catbox": "7.1.6", "@types/events": "1.2.0", - "@types/joi": "13.0.7", + "@types/joi": "13.0.8", "@types/mimos": "3.0.1", - "@types/node": "9.6.4", + "@types/node": "9.6.8", "@types/podium": "1.0.0", "@types/shot": "3.4.0" - }, - "dependencies": { - "@types/boom": { - "version": "4.3.10", - "resolved": "https://registry.npmjs.org/@types/boom/-/boom-4.3.10.tgz", - "integrity": "sha512-5iXMLKwCxW0FK0G4XgS5kn0VZQv31DhVAeB36YhxzFpWF4QKa6ZLn4XrziIK2j662p9Azs+lFpFrsuUzC8376g==", - "dev": true - } } }, "@types/http-assert": { @@ -1964,9 +1954,9 @@ "dev": true }, "@types/joi": { - "version": "13.0.7", - "resolved": "https://registry.npmjs.org/@types/joi/-/joi-13.0.7.tgz", - "integrity": "sha512-x7VMOrIfpqo0pMi5bIuRE+3RwMNlzE3HZLrEpebW2JmuQXeIX69/G8R90Ibs1i/gb1YvBoSlO4pMwH0VUmclGw==", + "version": "13.0.8", + "resolved": "https://registry.npmjs.org/@types/joi/-/joi-13.0.8.tgz", + "integrity": "sha512-GXYdIVpwBP5ZBOlHitSYfQdH+vWXVahhkeQwalX0LkoX7Mx0D3L3tg4vXXhr6nYHkEpWlAzWuEjgWEBtcp5NZA==", "dev": true }, "@types/keygrip": { @@ -1987,7 +1977,7 @@ "@types/http-assert": "1.2.2", "@types/keygrip": "1.0.1", "@types/koa-compose": "3.2.2", - "@types/node": "9.6.4" + "@types/node": "9.6.8" } }, "@types/koa-compose": { @@ -1997,9 +1987,9 @@ "dev": true }, "@types/lodash": { - "version": "4.14.106", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.106.tgz", - "integrity": "sha512-tOSvCVrvSqFZ4A/qrqqm6p37GZoawsZtoR0SJhlF7EonNZUgrn8FfT+RNQ11h+NUpMt6QVe36033f3qEKBwfWA==", + "version": "4.14.108", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.108.tgz", + "integrity": "sha512-WD2vUOKfBBVHxWUV9iMR9RMfpuf8HquxWeAq2yqGVL7Nc4JW2+sQama0pREMqzNI3Tutj0PyxYUJwuoxxvX+xA==", "dev": true }, "@types/lodash.assign": { @@ -2008,7 +1998,7 @@ "integrity": "sha512-L8D6y0a88Uv3/gdqUpmfHPGSFo676ggbtl5an3FgR4AzbvR+PKNdUMPr6F6Q/U3n3lCoCoV+WPt1vqJGbgPZ6Q==", "dev": true, "requires": { - "@types/lodash": "4.14.106" + "@types/lodash": "4.14.108" } }, "@types/lodash.foreach": { @@ -2017,7 +2007,7 @@ "integrity": "sha512-Fpkdtv1C15HQmFOOlikhWk72Bl93hcJtwrO7bbLABV/rkM1qSDKk4p8Wizt/LsAalr8WfbV0MuQct3IfJZkfug==", "dev": true, "requires": { - "@types/lodash": "4.14.106" + "@types/lodash": "4.14.108" } }, "@types/lodash.has": { @@ -2026,7 +2016,7 @@ "integrity": "sha512-McmKJoXdSxMYIQzVWKSEGrHnTwJ1ErqXvsTQjFeGEhBmypgCjuANDSqxl4LKaKcoF4mNxMqSzH7wP4yQ0deLeQ==", "dev": true, "requires": { - "@types/lodash": "4.14.106" + "@types/lodash": "4.14.108" } }, "@types/lodash.indexof": { @@ -2035,7 +2025,7 @@ "integrity": "sha512-2emfoGFYjwEyQercgS7+7sNwoLnI3VMMXbWTu3dJeVsXxif7xHmVKaFEzc1nSluBCiZKsNM8MipvXAm+Z0L5dg==", "dev": true, "requires": { - "@types/lodash": "4.14.106" + "@types/lodash": "4.14.108" } }, "@types/lodash.maxby": { @@ -2044,7 +2034,7 @@ "integrity": "sha512-5AMk6874T1RMxtWkW0I4ORFptU508mTb8jYG0gaNCMDzX6kLn/VNQXewL6dasZd4dj/hSbM8dt7msLuI3rSIPQ==", "dev": true, "requires": { - "@types/lodash": "4.14.106" + "@types/lodash": "4.14.108" } }, "@types/lodash.merge": { @@ -2053,7 +2043,7 @@ "integrity": "sha512-bOCCutkbehfCeiSqJO5XcVKjsJvX28dgvjhs4aMmBAHAsOy2oOJQwHuIZ0elI1E94qQIdEsCvz8oLgUumd6teA==", "dev": true, "requires": { - "@types/lodash": "4.14.106" + "@types/lodash": "4.14.108" } }, "@types/lodash.omit": { @@ -2062,7 +2052,7 @@ "integrity": "sha512-a6VbeE+JjMQ3rKsQVRjle02E+iKPTsT7izzFRk4xJvv4TBcO85Lrpo+8n6iqsiH8yZ8mHy0LOmx7MVgO8OfovQ==", "dev": true, "requires": { - "@types/lodash": "4.14.106" + "@types/lodash": "4.14.108" } }, "@types/lodash.omitby": { @@ -2071,7 +2061,7 @@ "integrity": "sha512-IfMZru9AegVIu0lkOXc/ncCOR3zzC6FKTVuBHBd9PkmKbOCn5zFORT22Wf/fZ9SBr2HmaYLPkFhf5C7A7k/N9A==", "dev": true, "requires": { - "@types/lodash": "4.14.106" + "@types/lodash": "4.14.108" } }, "@types/lodash.pick": { @@ -2080,7 +2070,7 @@ "integrity": "sha512-7VR26qH/bzRBn8DN6HKWYwBB6dNo1dNSdc0nYQwPp5tua6u2dpHHCFccszvFKBdR2CjSEbL5hsqQul03P4COjA==", "dev": true, "requires": { - "@types/lodash": "4.14.106" + "@types/lodash": "4.14.108" } }, "@types/lodash.random": { @@ -2089,7 +2079,7 @@ "integrity": "sha512-JMCA9llou2Ye9mhz0H/7DaPrJ6PgmRb6ClnPGPzfoX7JUu9Q6NuRZON5INrTQH5LWahzqaZdeMwHyn8MGRkXoA==", "dev": true, "requires": { - "@types/lodash": "4.14.106" + "@types/lodash": "4.14.108" } }, "@types/lodash.without": { @@ -2098,7 +2088,7 @@ "integrity": "sha512-oD30pRigg97PfyF8u3WGkRnn3MPS/f2pwYf0s0dNeGOeScbZ1bo4BYBK7dab/lpX6EbUjoWAtLLMQW+LxlJpcQ==", "dev": true, "requires": { - "@types/lodash": "4.14.106" + "@types/lodash": "4.14.108" } }, "@types/mime": { @@ -2129,9 +2119,9 @@ "dev": true }, "@types/mocha": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.0.0.tgz", - "integrity": "sha512-ZS0vBV7Jn5Z/Q4T3VXauEKMDCV8nWOtJJg90OsDylkYJiQwcWtKuLzohWzrthBkerUF7DLMmJcwOPEP0i/AOXw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.0.tgz", + "integrity": "sha512-YeDiSEzznwZwwp766SJ6QlrTyBYUGPSIwmREHVTmktUYiT/WADdWtpt9iH0KuUSf8lZLdI4lP0X6PBzPo5//JQ==", "dev": true }, "@types/ncp": { @@ -2140,7 +2130,7 @@ "integrity": "sha512-TeiJ7uvv/92ugSqZ0v9l0eNXzutlki0aK+R1K5bfA5SYUil46ITlxLW4iNTCf55P4L5weCmaOdtxGeGWvudwPg==", "dev": true, "requires": { - "@types/node": "9.6.4" + "@types/node": "9.6.8" } }, "@types/nock": { @@ -2149,13 +2139,13 @@ "integrity": "sha512-S8rJ+SaW82ICX87pZP62UcMifrMfjEdqNzSp+llx4YcvKw6bO650Ye6HwTqER1Dar3S40GIZECQisOrAICDCjA==", "dev": true, "requires": { - "@types/node": "9.6.4" + "@types/node": "9.6.8" } }, "@types/node": { - "version": "9.6.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.4.tgz", - "integrity": "sha512-Awg4BcUYiZtNKoveGOu654JVPt11V/KIC77iBz8NweyoOAZpz5rUJfPDwwD+ajfTs2HndbTCEB8IuLfX9m/mmw==", + "version": "9.6.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.8.tgz", + "integrity": "sha512-0PmgMBskTJa7zDyENW9C7Lunk+I0L2CHYF2RrBRljCmLSMM1fBHIIdvE1IboNNz7N6t+raJIj90YMvUYl2VT1g==", "dev": true }, "@types/once": { @@ -2165,9 +2155,9 @@ "dev": true }, "@types/pify": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/pify/-/pify-3.0.1.tgz", - "integrity": "sha512-YinwZzicw0EexL6vRwRmELXkkzHdEePXejx7rbVMTMfAqtlT+/9lhRfcXEsuU+Jnl5Vdp0znzxKifPZUC6duFw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/pify/-/pify-3.0.2.tgz", + "integrity": "sha512-a5AKF1/9pCU3HGMkesgY6LsBdXHUY3WU+I2qgpU0J+I8XuJA1aFr59eS84/HP0+dxsyBSNbt+4yGI2adUpHwSg==", "dev": true }, "@types/podium": { @@ -2190,7 +2180,7 @@ "requires": { "@types/caseless": "0.12.1", "@types/form-data": "2.2.1", - "@types/node": "9.6.4", + "@types/node": "9.6.8", "@types/tough-cookie": "2.3.2" } }, @@ -2201,7 +2191,7 @@ "dev": true, "requires": { "@types/bunyan": "1.8.4", - "@types/node": "9.6.4", + "@types/node": "9.6.8", "@types/spdy": "3.4.4" } }, @@ -2212,13 +2202,13 @@ "dev": true, "requires": { "@types/glob": "5.0.35", - "@types/node": "9.6.4" + "@types/node": "9.6.8" } }, "@types/serve-static": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.1.tgz", - "integrity": "sha512-jDMH+3BQPtvqZVIcsH700Dfi8Q3MIcEx16g/VdxjoqiGR/NntekB10xdBpirMKnPe9z2C5cBmL0vte0YttOr3Q==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-/BZ4QRLpH/bNYgZgwhKEh+5AsboDBcUdlBYgzoLX0fpj3Y2gp6EApyOlM3bK53wQS/OE1SrdSYBAbux2D1528Q==", "dev": true, "requires": { "@types/express-serve-static-core": "4.11.1", @@ -2231,7 +2221,7 @@ "integrity": "sha1-RZR3xRh9Pr0wNmCrCZ5+ng87ZW8=", "dev": true, "requires": { - "@types/node": "9.6.4" + "@types/node": "9.6.8" } }, "@types/spdy": { @@ -2240,7 +2230,7 @@ "integrity": "sha512-N9LBlbVRRYq6HgYpPkqQc3a9HJ/iEtVZToW6xlTtJiMhmRJ7jJdV7TaZQJw/Ve/1ePUsQiCTDc4JMuzzag94GA==", "dev": true, "requires": { - "@types/node": "9.6.4" + "@types/node": "9.6.8" } }, "@types/tmp": { @@ -2362,24 +2352,14 @@ "dev": true }, "ammo": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ammo/-/ammo-3.0.0.tgz", - "integrity": "sha512-6yoz9MXYV9sgCHrwprHWPxBaJ9/roQRfXzS//4JCNgKfPYcghFNwJQKBt6vWOoSGGRHsP6qsLJ+xtKStKJWdLQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ammo/-/ammo-3.0.1.tgz", + "integrity": "sha512-4UqoM8xQjwkQ78oiU4NbBK0UgYqeKMAKmwE4ec7Rz3rGU8ZEBFxzgF2sUYKOAlqIXExBDYLN6y1ShF5yQ4hwLQ==", "dev": true, "requires": { - "boom": "6.0.0", "hoek": "5.0.3" }, "dependencies": { - "boom": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-6.0.0.tgz", - "integrity": "sha512-LYLa8BmiiOWjvxTMVh73lcZzd2E5yczrKvxAny1UuzO2tkarLrw4tdp3rdfmus3+YfKcZP0vRSM3Obh+fGK6eA==", - "dev": true, - "requires": { - "hoek": "5.0.3" - } - }, "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", @@ -2546,7 +2526,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", "requires": { - "lodash": "4.17.5" + "lodash": "4.17.10" } }, "async-each": { @@ -2585,12 +2565,12 @@ "arrify": "1.0.1", "auto-bind": "1.2.0", "ava-init": "0.2.1", - "babel-core": "6.26.0", + "babel-core": "6.26.3", "babel-generator": "6.26.1", "babel-plugin-syntax-object-rest-spread": "6.13.0", "bluebird": "3.5.1", "caching-transform": "1.0.1", - "chalk": "2.3.2", + "chalk": "2.4.1", "chokidar": "1.7.0", "clean-stack": "1.3.0", "clean-yaml-object": "0.1.0", @@ -2643,18 +2623,18 @@ "pretty-ms": "3.1.0", "require-precompiled": "0.1.0", "resolve-cwd": "2.0.0", - "safe-buffer": "5.1.1", + "safe-buffer": "5.1.2", "semver": "5.5.0", "slash": "1.0.0", - "source-map-support": "0.5.4", + "source-map-support": "0.5.5", "stack-utils": "1.0.1", "strip-ansi": "4.0.0", "strip-bom-buf": "1.0.0", "supertap": "1.0.0", - "supports-color": "5.3.0", + "supports-color": "5.4.0", "trim-off-newlines": "1.0.1", "unique-temp-dir": "1.0.0", - "update-notifier": "2.4.0" + "update-notifier": "2.5.0" } }, "ava-init": { @@ -2743,9 +2723,9 @@ } }, "babel-core": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", - "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "dev": true, "requires": { "babel-code-frame": "6.26.0", @@ -2761,7 +2741,7 @@ "convert-source-map": "1.5.1", "debug": "2.6.9", "json5": "0.5.1", - "lodash": "4.17.5", + "lodash": "4.17.10", "minimatch": "3.0.4", "path-is-absolute": "1.0.1", "private": "0.1.8", @@ -2791,7 +2771,7 @@ "babel-types": "6.26.0", "detect-indent": "4.0.0", "jsesc": "1.3.0", - "lodash": "4.17.5", + "lodash": "4.17.10", "source-map": "0.5.7", "trim-right": "1.0.1" }, @@ -2879,7 +2859,7 @@ "requires": { "babel-runtime": "6.26.0", "babel-types": "6.26.0", - "lodash": "4.17.5" + "lodash": "4.17.10" } }, "babel-helper-remap-async-to-generator": { @@ -2994,9 +2974,9 @@ } }, "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", - "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "dev": true, "requires": { "babel-plugin-transform-strict-mode": "6.24.1", @@ -3077,11 +3057,11 @@ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "dev": true, "requires": { - "babel-core": "6.26.0", + "babel-core": "6.26.3", "babel-runtime": "6.26.0", "core-js": "2.5.5", "home-or-tmp": "2.0.0", - "lodash": "4.17.5", + "lodash": "4.17.10", "mkdirp": "0.5.1", "source-map-support": "0.4.18" }, @@ -3117,7 +3097,7 @@ "babel-traverse": "6.26.0", "babel-types": "6.26.0", "babylon": "6.18.0", - "lodash": "4.17.5" + "lodash": "4.17.10" } }, "babel-traverse": { @@ -3134,7 +3114,7 @@ "debug": "2.6.9", "globals": "9.18.0", "invariant": "2.2.4", - "lodash": "4.17.5" + "lodash": "4.17.10" }, "dependencies": { "debug": { @@ -3156,7 +3136,7 @@ "requires": { "babel-runtime": "6.26.0", "esutils": "2.0.2", - "lodash": "4.17.5", + "lodash": "4.17.10", "to-fast-properties": "1.0.3" } }, @@ -3237,7 +3217,6 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", - "dev": true, "requires": { "hoek": "4.2.1" } @@ -3277,7 +3256,7 @@ "requires": { "ansi-align": "2.0.0", "camelcase": "4.1.0", - "chalk": "2.3.2", + "chalk": "2.4.1", "cli-boxes": "1.0.0", "string-width": "2.1.1", "term-size": "1.2.0", @@ -3347,6 +3326,18 @@ "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", "dev": true }, + "bunyan": { + "version": "1.8.12", + "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.12.tgz", + "integrity": "sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=", + "dev": true, + "requires": { + "dtrace-provider": "0.8.6", + "moment": "2.22.1", + "mv": "2.1.1", + "safe-json-stringify": "1.1.0" + } + }, "bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", @@ -3504,7 +3495,7 @@ "boom": "7.2.0", "bounce": "1.2.0", "hoek": "5.0.3", - "joi": "13.1.2" + "joi": "13.2.0" }, "dependencies": { "boom": { @@ -3595,14 +3586,14 @@ } }, "chalk": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", - "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.3.0" + "supports-color": "5.4.0" } }, "chardet": { @@ -3625,7 +3616,7 @@ "requires": { "anymatch": "1.3.2", "async-each": "1.0.1", - "fsevents": "1.1.3", + "fsevents": "1.2.3", "glob-parent": "2.0.0", "inherits": "2.0.3", "is-binary-path": "1.0.1", @@ -3801,163 +3792,14 @@ "dev": true }, "codecov": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.0.0.tgz", - "integrity": "sha1-wnO4xPEpRXI+jcnSWAPYk0Pl8o4=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.0.1.tgz", + "integrity": "sha512-0TjnXrbvcPzAkRPv/Y5D8aZju/M5adkFxShRyMMgDReB8EV9nF4XMERXs6ajgLA1di9LUFW2tgePDQd2JPWy7g==", "dev": true, "requires": { "argv": "0.0.2", - "request": "2.81.0", + "request": "2.85.0", "urlgrey": "0.4.4" - }, - "dependencies": { - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "dev": true, - "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" - } - }, - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", - "dev": true - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", - "dev": true - }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "dev": true, - "requires": { - "hoek": "2.16.3" - } - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "dev": true, - "requires": { - "boom": "2.10.1" - } - }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "dev": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.6", - "mime-types": "2.1.18" - } - }, - "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", - "dev": true - }, - "har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", - "dev": true, - "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" - } - }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "dev": true, - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" - } - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", - "dev": true - }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "dev": true, - "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.14.1" - } - }, - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", - "dev": true - }, - "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", - "dev": true - }, - "request": { - "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", - "dev": true, - "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.7.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.18", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.6.0", - "uuid": "3.2.1" - } - }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "dev": true, - "requires": { - "hoek": "2.16.3" - } - } } }, "color-convert": { @@ -4368,6 +4210,39 @@ } } }, + "csv": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/csv/-/csv-1.2.1.tgz", + "integrity": "sha1-UjHt/BxxUlEuxFeBB2p6l/9SXAw=", + "dev": true, + "requires": { + "csv-generate": "1.1.2", + "csv-parse": "1.3.3", + "csv-stringify": "1.1.2", + "stream-transform": "0.2.2" + } + }, + "csv-generate": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-1.1.2.tgz", + "integrity": "sha1-7GsA7a7W5ZrZwgWC9MNk4osUYkA=", + "dev": true + }, + "csv-parse": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-1.3.3.tgz", + "integrity": "sha1-0c/YdDwvhJoKuy/VRNtWaV0ZpJA=", + "dev": true + }, + "csv-stringify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-1.1.2.tgz", + "integrity": "sha1-d6QVJlgbzjOA8SsA18W7rHDIK1g=", + "dev": true, + "requires": { + "lodash.get": "4.4.2" + } + }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -4467,9 +4342,9 @@ "dev": true }, "deep-extend": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", + "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", "dev": true }, "deep-is": { @@ -4572,6 +4447,12 @@ "repeating": "2.0.1" } }, + "detect-node": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz", + "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=", + "dev": true + }, "diff": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", @@ -4645,6 +4526,16 @@ "is-obj": "1.0.1" } }, + "dtrace-provider": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.6.tgz", + "integrity": "sha1-QooiOv4DQl0s1tY0f99AxmkDVj0=", + "dev": true, + "optional": true, + "requires": { + "nan": "2.10.0" + } + }, "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", @@ -4683,7 +4574,7 @@ "integrity": "sha1-S8kmJ07Dtau1AW5+HWCSGsJisqE=", "requires": { "base64url": "2.0.0", - "safe-buffer": "5.1.1" + "safe-buffer": "5.1.2" } }, "ee-first": { @@ -4703,9 +4594,9 @@ } }, "empower-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/empower-assert/-/empower-assert-1.0.1.tgz", - "integrity": "sha1-MeMQq8BluqfDoEh+a+W7zGXzwd4=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/empower-assert/-/empower-assert-1.1.0.tgz", + "integrity": "sha512-Ylck0Q6p8y/LpNzYeBccaxAPm2ZyuqBgErgZpO9KT0HuQWF0sJckBKCLmgS1/DEXEiyBi9XtYh3clZm5cAdARw==", "dev": true, "requires": { "estraverse": "4.2.0" @@ -4868,6 +4759,12 @@ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", "dev": true }, + "escape-regexp-component": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/escape-regexp-component/-/escape-regexp-component-1.0.2.tgz", + "integrity": "sha1-nGO20LJf8qiMOtvRjFthrMO5+qI=", + "dev": true + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -4922,7 +4819,7 @@ "requires": { "ajv": "5.5.2", "babel-code-frame": "6.26.0", - "chalk": "2.3.2", + "chalk": "2.4.1", "concat-stream": "1.6.2", "cross-spawn": "5.1.0", "debug": "3.1.0", @@ -4935,15 +4832,15 @@ "file-entry-cache": "2.0.0", "functional-red-black-tree": "1.0.1", "glob": "7.1.2", - "globals": "11.4.0", - "ignore": "3.3.7", + "globals": "11.5.0", + "ignore": "3.3.8", "imurmurhash": "0.1.4", "inquirer": "3.3.0", "is-resolvable": "1.1.0", "js-yaml": "3.11.0", "json-stable-stringify-without-jsonify": "1.0.1", "levn": "0.3.0", - "lodash": "4.17.5", + "lodash": "4.17.10", "minimatch": "3.0.4", "mkdirp": "0.5.1", "natural-compare": "1.4.0", @@ -4961,9 +4858,9 @@ }, "dependencies": { "globals": { - "version": "11.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.4.0.tgz", - "integrity": "sha512-Dyzmifil8n/TmSqYDEXbm+C8yitzJQqQIlJQLNRMwa+BOUJpRC19pyVeN12JAjt61xonvXjtff+hJruTRXn5HA==", + "version": "11.5.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.5.0.tgz", + "integrity": "sha512-hYyf+kI8dm3nORsiiXUQigOU62hDLfJ9G01uyGMxhc6BKsircrUhC4uJPQPUSuq2GrTmiiEt7ewxlMdBewfmKQ==", "dev": true } } @@ -4991,16 +4888,16 @@ "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", "dev": true, "requires": { - "ignore": "3.3.7", + "ignore": "3.3.8", "minimatch": "3.0.4", - "resolve": "1.7.0", + "resolve": "1.7.1", "semver": "5.5.0" }, "dependencies": { "resolve": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.0.tgz", - "integrity": "sha512-QdgZ5bjR1WAlpLaO5yHepFvC+o3rCr6wpfE2tpJNMkXdulf2jKomQBdNRQITF3ZKHNlT71syG98yQP03gasgnA==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", + "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", "dev": true, "requires": { "path-parse": "1.0.5" @@ -5097,7 +4994,7 @@ "acorn": "5.5.3", "acorn-es7-plugin": "1.1.7", "convert-source-map": "1.5.1", - "empower-assert": "1.0.1", + "empower-assert": "1.1.0", "escodegen": "1.9.1", "espower": "2.1.0", "estraverse": "4.2.0", @@ -5178,6 +5075,15 @@ "es5-ext": "0.10.42" } }, + "ewma": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ewma/-/ewma-2.0.1.tgz", + "integrity": "sha512-MYYK17A76cuuyvkR7MnqLW4iFYPEi5Isl2qb8rXiWpLiwFS9dxW/rncuNnjjgSENuVqZQkIuR4+DChVL4g1lnw==", + "dev": true, + "requires": { + "assert-plus": "1.0.0" + } + }, "execa": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", @@ -5270,6 +5176,12 @@ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", "dev": true }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + }, "statuses": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", @@ -5320,6 +5232,12 @@ "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", "dev": true }, + "fast-decode-uri-component": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.0.tgz", + "integrity": "sha512-WQSYVKn6tDW/3htASeUkrx5LcnuTENQIZQPCVlwdnvIJ7bYtSpoJYq38MgUJnx1CQIR1gjZ8HJxAEcN4gqugBg==", + "dev": true + }, "fast-deep-equal": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", @@ -5433,6 +5351,15 @@ "pkg-dir": "2.0.0" } }, + "find-my-way": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-1.12.0.tgz", + "integrity": "sha512-d7wZ0IeijAZDA/gvHjCNxxRTDCn5j9hnugcgEbNzYhofbDfogGhyRu93mtcJoAxeB1zemWTz9JB2JzNOar/qbA==", + "dev": true, + "requires": { + "fast-decode-uri-component": "1.0.0" + } + }, "find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", @@ -5550,39 +5477,29 @@ "dev": true }, "fsevents": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", - "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.3.tgz", + "integrity": "sha512-X+57O5YkDTiEQGiw8i7wYc2nQgweIekqkepI8Q3y4wVlurgBt2SuwxTeYUYMZIGpLZH3r/TsMjczCMXE5ZOt7Q==", "dev": true, "optional": true, "requires": { "nan": "2.10.0", - "node-pre-gyp": "0.6.39" + "node-pre-gyp": "0.9.1" }, "dependencies": { "abbrev": { - "version": "1.1.0", + "version": "1.1.1", "bundled": true, "dev": true, "optional": true }, - "ajv": { - "version": "4.11.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" - } - }, "ansi-regex": { "version": "2.1.1", "bundled": true, "dev": true }, "aproba": { - "version": "1.1.1", + "version": "1.2.0", "bundled": true, "dev": true, "optional": true @@ -5594,91 +5511,25 @@ "optional": true, "requires": { "delegates": "1.0.0", - "readable-stream": "2.2.9" + "readable-stream": "2.3.6" } }, - "asn1": { - "version": "0.2.3", - "bundled": true, - "dev": true, - "optional": true - }, - "assert-plus": { - "version": "0.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "asynckit": { - "version": "0.4.0", - "bundled": true, - "dev": true, - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "aws4": { - "version": "1.6.0", - "bundled": true, - "dev": true, - "optional": true - }, "balanced-match": { - "version": "0.4.2", + "version": "1.0.0", "bundled": true, "dev": true }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "block-stream": { - "version": "0.0.9", - "bundled": true, - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "boom": { - "version": "2.10.1", - "bundled": true, - "dev": true, - "requires": { - "hoek": "2.16.3" - } - }, "brace-expansion": { - "version": "1.1.7", + "version": "1.1.11", "bundled": true, "dev": true, "requires": { - "balanced-match": "0.4.2", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, - "buffer-shims": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "caseless": { - "version": "0.12.0", - "bundled": true, - "dev": true, - "optional": true - }, - "co": { - "version": "4.6.0", + "chownr": { + "version": "1.0.1", "bundled": true, "dev": true, "optional": true @@ -5688,14 +5539,6 @@ "bundled": true, "dev": true }, - "combined-stream": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "requires": { - "delayed-stream": "1.0.0" - } - }, "concat-map": { "version": "0.0.1", "bundled": true, @@ -5709,35 +5552,11 @@ "core-util-is": { "version": "1.0.2", "bundled": true, - "dev": true - }, - "cryptiles": { - "version": "2.0.5", - "bundled": true, - "dev": true, - "requires": { - "boom": "2.10.1" - } - }, - "dashdash": { - "version": "1.14.1", - "bundled": true, "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } + "optional": true }, "debug": { - "version": "2.6.8", + "version": "2.6.9", "bundled": true, "dev": true, "optional": true, @@ -5751,11 +5570,6 @@ "dev": true, "optional": true }, - "delayed-stream": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, "delegates": { "version": "1.0.0", "bundled": true, @@ -5763,82 +5577,33 @@ "optional": true }, "detect-libc": { - "version": "1.0.2", + "version": "1.0.3", "bundled": true, "dev": true, "optional": true }, - "ecc-jsbn": { - "version": "0.1.1", + "fs-minipass": { + "version": "1.2.5", "bundled": true, "dev": true, "optional": true, "requires": { - "jsbn": "0.1.1" + "minipass": "2.2.4" } }, - "extend": { - "version": "3.0.1", + "fs.realpath": { + "version": "1.0.0", "bundled": true, "dev": true, "optional": true }, - "extsprintf": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "bundled": true, - "dev": true, - "optional": true - }, - "form-data": { - "version": "2.1.4", + "gauge": { + "version": "2.7.4", "bundled": true, "dev": true, "optional": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "fstream": { - "version": "1.0.11", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" - } - }, - "fstream-ignore": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" - } - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "1.1.1", + "aproba": "1.2.0", "console-control-strings": "1.1.0", "has-unicode": "2.0.1", "object-assign": "4.1.1", @@ -5848,27 +5613,11 @@ "wide-align": "1.1.2" } }, - "getpass": { - "version": "0.1.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, "glob": { "version": "7.1.2", "bundled": true, "dev": true, + "optional": true, "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -5878,64 +5627,35 @@ "path-is-absolute": "1.0.1" } }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true, - "dev": true - }, - "har-schema": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "har-validator": { - "version": "4.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" - } - }, "has-unicode": { "version": "2.0.1", "bundled": true, "dev": true, "optional": true }, - "hawk": { - "version": "3.1.3", + "iconv-lite": { + "version": "0.4.21", "bundled": true, "dev": true, + "optional": true, "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "safer-buffer": "2.1.2" } }, - "hoek": { - "version": "2.16.3", - "bundled": true, - "dev": true - }, - "http-signature": { - "version": "1.1.1", + "ignore-walk": { + "version": "3.0.1", "bundled": true, "dev": true, "optional": true, "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.0", - "sshpk": "1.13.0" + "minimatch": "3.0.4" } }, "inflight": { "version": "1.0.6", "bundled": true, "dev": true, + "optional": true, "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -5947,7 +5667,7 @@ "dev": true }, "ini": { - "version": "1.3.4", + "version": "1.3.5", "bundled": true, "dev": true, "optional": true @@ -5960,111 +5680,43 @@ "number-is-nan": "1.0.1" } }, - "is-typedarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, "isarray": { "version": "1.0.0", "bundled": true, - "dev": true - }, - "isstream": { - "version": "0.1.2", - "bundled": true, "dev": true, "optional": true }, - "jodid25519": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "bundled": true, - "dev": true, - "optional": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsonify": "0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "jsonify": { - "version": "0.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "jsprim": { - "version": "1.4.0", + "minimatch": { + "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.0.2", - "json-schema": "0.2.3", - "verror": "1.3.6" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } + "brace-expansion": "1.1.11" } }, - "mime-db": { - "version": "1.27.0", + "minimist": { + "version": "0.0.8", "bundled": true, "dev": true }, - "mime-types": { - "version": "2.1.15", + "minipass": { + "version": "2.2.4", "bundled": true, "dev": true, "requires": { - "mime-db": "1.27.0" + "safe-buffer": "5.1.1", + "yallist": "3.0.2" } }, - "minimatch": { - "version": "3.0.4", + "minizlib": { + "version": "1.1.0", "bundled": true, "dev": true, + "optional": true, "requires": { - "brace-expansion": "1.1.7" + "minipass": "2.2.4" } }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - }, "mkdirp": { "version": "0.5.1", "bundled": true, @@ -6079,23 +5731,33 @@ "dev": true, "optional": true }, + "needle": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "2.6.9", + "iconv-lite": "0.4.21", + "sax": "1.2.4" + } + }, "node-pre-gyp": { - "version": "0.6.39", + "version": "0.9.1", "bundled": true, "dev": true, "optional": true, "requires": { - "detect-libc": "1.0.2", - "hawk": "3.1.3", + "detect-libc": "1.0.3", "mkdirp": "0.5.1", + "needle": "2.2.0", "nopt": "4.0.1", - "npmlog": "4.1.0", - "rc": "1.2.1", - "request": "2.81.0", - "rimraf": "2.6.1", - "semver": "5.3.0", - "tar": "2.2.1", - "tar-pack": "3.4.0" + "npm-packlist": "1.1.10", + "npmlog": "4.1.2", + "rc": "1.2.6", + "rimraf": "2.6.2", + "semver": "5.5.0", + "tar": "4.4.1" } }, "nopt": { @@ -6104,12 +5766,28 @@ "dev": true, "optional": true, "requires": { - "abbrev": "1.1.0", - "osenv": "0.1.4" + "abbrev": "1.1.1", + "osenv": "0.1.5" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.3" } }, "npmlog": { - "version": "4.1.0", + "version": "4.1.2", "bundled": true, "dev": true, "optional": true, @@ -6125,12 +5803,6 @@ "bundled": true, "dev": true }, - "oauth-sign": { - "version": "0.8.2", - "bundled": true, - "dev": true, - "optional": true - }, "object-assign": { "version": "4.1.1", "bundled": true, @@ -6158,7 +5830,7 @@ "optional": true }, "osenv": { - "version": "0.1.4", + "version": "0.1.5", "bundled": true, "dev": true, "optional": true, @@ -6170,39 +5842,23 @@ "path-is-absolute": { "version": "1.0.1", "bundled": true, - "dev": true - }, - "performance-now": { - "version": "0.2.0", - "bundled": true, "dev": true, "optional": true }, "process-nextick-args": { - "version": "1.0.7", - "bundled": true, - "dev": true - }, - "punycode": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "optional": true - }, - "qs": { - "version": "6.4.0", + "version": "2.0.0", "bundled": true, "dev": true, "optional": true }, "rc": { - "version": "1.2.1", + "version": "1.2.6", "bundled": true, "dev": true, "optional": true, "requires": { "deep-extend": "0.4.2", - "ini": "1.3.4", + "ini": "1.3.5", "minimist": "1.2.0", "strip-json-comments": "2.0.1" }, @@ -6216,112 +5872,63 @@ } }, "readable-stream": { - "version": "2.2.9", + "version": "2.3.6", "bundled": true, "dev": true, + "optional": true, "requires": { - "buffer-shims": "1.0.0", "core-util-is": "1.0.2", "inherits": "2.0.3", "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.1", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", "util-deprecate": "1.0.2" } }, - "request": { - "version": "2.81.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.15", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.0.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.6.0", - "uuid": "3.0.1" - } - }, "rimraf": { - "version": "2.6.1", + "version": "2.6.2", "bundled": true, "dev": true, + "optional": true, "requires": { "glob": "7.1.2" } }, "safe-buffer": { - "version": "5.0.1", + "version": "5.1.1", "bundled": true, "dev": true }, - "semver": { - "version": "5.3.0", + "safer-buffer": { + "version": "2.1.2", "bundled": true, "dev": true, "optional": true }, - "set-blocking": { - "version": "2.0.0", + "sax": { + "version": "1.2.4", "bundled": true, "dev": true, "optional": true }, - "signal-exit": { - "version": "3.0.2", + "semver": { + "version": "5.5.0", "bundled": true, "dev": true, "optional": true }, - "sntp": { - "version": "1.0.9", + "set-blocking": { + "version": "2.0.0", "bundled": true, "dev": true, - "requires": { - "hoek": "2.16.3" - } + "optional": true }, - "sshpk": { - "version": "1.13.0", + "signal-exit": { + "version": "3.0.2", "bundled": true, "dev": true, - "optional": true, - "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jodid25519": "1.0.2", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } + "optional": true }, "string-width": { "version": "1.0.2", @@ -6334,19 +5941,14 @@ } }, "string_decoder": { - "version": "1.0.1", + "version": "1.1.1", "bundled": true, "dev": true, + "optional": true, "requires": { - "safe-buffer": "5.0.1" + "safe-buffer": "5.1.1" } }, - "stringstream": { - "version": "0.0.5", - "bundled": true, - "dev": true, - "optional": true - }, "strip-ansi": { "version": "3.0.1", "bundled": true, @@ -6362,81 +5964,26 @@ "optional": true }, "tar": { - "version": "2.2.1", - "bundled": true, - "dev": true, - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - } - }, - "tar-pack": { - "version": "3.4.0", + "version": "4.4.1", "bundled": true, "dev": true, "optional": true, "requires": { - "debug": "2.6.8", - "fstream": "1.0.11", - "fstream-ignore": "1.0.5", - "once": "1.4.0", - "readable-stream": "2.2.9", - "rimraf": "2.6.1", - "tar": "2.2.1", - "uid-number": "0.0.6" - } - }, - "tough-cookie": { - "version": "2.3.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "punycode": "1.4.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "5.0.1" + "chownr": "1.0.1", + "fs-minipass": "1.2.5", + "minipass": "2.2.4", + "minizlib": "1.1.0", + "mkdirp": "0.5.1", + "safe-buffer": "5.1.1", + "yallist": "3.0.2" } }, - "tweetnacl": { - "version": "0.14.5", - "bundled": true, - "dev": true, - "optional": true - }, - "uid-number": { - "version": "0.0.6", - "bundled": true, - "dev": true, - "optional": true - }, "util-deprecate": { "version": "1.0.2", "bundled": true, - "dev": true - }, - "uuid": { - "version": "3.0.1", - "bundled": true, "dev": true, "optional": true }, - "verror": { - "version": "1.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "extsprintf": "1.0.2" - } - }, "wide-align": { "version": "1.1.2", "bundled": true, @@ -6450,6 +5997,11 @@ "version": "1.0.2", "bundled": true, "dev": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true, + "dev": true } } }, @@ -6612,9 +6164,9 @@ } }, "google-auto-auth": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/google-auto-auth/-/google-auto-auth-0.10.0.tgz", - "integrity": "sha512-R6m473OqgZacPvlidJ0aownTlUWyLy654ugjKSXyi1ffIicXlXg3wMfse9T9zxqG6w01q6K1iG+b7dImMkVJ2Q==", + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/google-auto-auth/-/google-auto-auth-0.10.1.tgz", + "integrity": "sha512-iIqSbY7Ypd32mnHGbYctp80vZzXoDlvI9gEfvtl3kmyy5HzOcrZCIGCBdSlIzRsg7nHpQiHE3Zl6Ycur6TSodQ==", "requires": { "async": "2.6.0", "gcp-metadata": "0.6.3", @@ -6650,7 +6202,7 @@ "p-cancelable": "0.3.0", "p-timeout": "2.0.1", "pify": "3.0.0", - "safe-buffer": "5.1.1", + "safe-buffer": "5.1.2", "timed-out": "4.0.1", "url-parse-lax": "3.0.0", "url-to-options": "1.0.1" @@ -6709,14 +6261,14 @@ "integrity": "sha512-bDxE/NvHu+v0uW0qbUMYClrGCi81Ug4Wa7BsV/yUtdEh67C3K56BiqAk8yBOttLH1k4XYks+7QSJy7XOf3vaQw==", "dev": true, "requires": { - "chalk": "2.3.2", + "chalk": "2.4.1", "clang-format": "1.2.2", "inquirer": "3.3.0", - "meow": "4.0.0", + "meow": "4.0.1", "pify": "3.0.0", "rimraf": "2.6.2", "tslint": "5.9.1", - "update-notifier": "2.4.0", + "update-notifier": "2.5.0", "write-file-atomic": "2.3.0" }, "dependencies": { @@ -6756,9 +6308,9 @@ "dev": true }, "meow": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.0.tgz", - "integrity": "sha512-Me/kel335m6vMKmEmA6c87Z6DUFW3JqkINRnxkbC+A/PUm0D5Fl2dEBQrPKnqCL9Te/CIa1MUt/0InMJhuC/sw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", + "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", "dev": true, "requires": { "camelcase-keys": "4.2.0", @@ -6842,6 +6394,12 @@ } } }, + "handle-thing": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", + "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", + "dev": true + }, "handlebars": { "version": "4.0.11", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", @@ -6872,13 +6430,13 @@ } }, "hapi": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/hapi/-/hapi-17.3.1.tgz", - "integrity": "sha512-XsgmyBJ9oqAXbHS6Jv0zyfdlLDNTcUHA+P53g7O9iZxVAfb0Qkld0VTRm+DVN7pvcMYv8PJRykiupgmCjFehcw==", + "version": "17.4.0", + "resolved": "https://registry.npmjs.org/hapi/-/hapi-17.4.0.tgz", + "integrity": "sha512-ZxzvlGVs0lb7MW4AGxFQ/TM4rOvH6aeR4O0kj47eWy0VjGshlTZFPTighstJQPJy/bKTrlMaThn5ES87fwmGTA==", "dev": true, "requires": { "accept": "3.0.2", - "ammo": "3.0.0", + "ammo": "3.0.1", "boom": "7.2.0", "bounce": "1.2.0", "call": "5.0.1", @@ -6886,7 +6444,7 @@ "catbox-memory": "3.1.2", "heavy": "6.1.0", "hoek": "5.0.3", - "joi": "13.1.2", + "joi": "13.2.0", "mimos": "4.0.0", "podium": "3.1.2", "shot": "4.0.5", @@ -6978,16 +6536,6 @@ "cryptiles": "3.1.2", "hoek": "4.2.1", "sntp": "2.1.0" - }, - "dependencies": { - "boom": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", - "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", - "requires": { - "hoek": "4.2.1" - } - } } }, "he": { @@ -7004,7 +6552,7 @@ "requires": { "boom": "7.2.0", "hoek": "5.0.3", - "joi": "13.1.2" + "joi": "13.2.0" }, "dependencies": { "boom": { @@ -7045,6 +6593,18 @@ "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", "dev": true }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "obuf": "1.1.2", + "readable-stream": "2.3.6", + "wbuf": "1.7.3" + } + }, "htmlparser2": { "version": "3.9.2", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", @@ -7075,6 +6635,12 @@ "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", "dev": true }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, "http-errors": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", @@ -7116,7 +6682,7 @@ "package-hash": "2.0.0", "pkg-dir": "2.0.0", "resolve-from": "3.0.0", - "safe-buffer": "5.1.1" + "safe-buffer": "5.1.2" } }, "i": { @@ -7132,9 +6698,9 @@ "dev": true }, "ignore": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", - "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.8.tgz", + "integrity": "sha512-pUh+xUQQhQzevjRHHFqqcTy0/dP/kS9I8HSrUydhihjuD09W6ldVWFtIrwhXdUJHis3i2rZNqEHpZH/cbinFbg==", "dev": true }, "ignore-by-default": { @@ -7210,7 +6776,7 @@ "integrity": "sha512-STx5orGQU1gfrkoI/fMU7lX6CSP7LBGO10gXNgOZhwKhUqbtNjCkYSewJtNnLmWP1tAGN6oyEpG1HFPw5vpa5Q==", "dev": true, "requires": { - "moment": "2.22.0", + "moment": "2.22.1", "sanitize-html": "1.18.2" } }, @@ -7221,12 +6787,12 @@ "dev": true, "requires": { "ansi-escapes": "3.1.0", - "chalk": "2.3.2", + "chalk": "2.4.1", "cli-cursor": "2.1.0", "cli-width": "2.2.0", "external-editor": "2.2.0", "figures": "2.0.0", - "lodash": "4.17.5", + "lodash": "4.17.10", "mute-stream": "0.0.7", "run-async": "2.3.0", "rx-lite": "4.0.8", @@ -7630,9 +7196,9 @@ "dev": true }, "joi": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-13.1.2.tgz", - "integrity": "sha512-bZZSQYW5lPXenOfENvgCBPb9+H6E6MeNWcMtikI04fKphj5tvFL9TOb+H2apJzbCrRw/jebjTH8z6IHLpBytGg==", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-13.2.0.tgz", + "integrity": "sha512-VUzQwyCrmT2lIpxBCYq26dcK9veCQzDh84gQnCtaxCa8ePohX8JZVVsIb+E66kCUUcIvzeIpifa6eZuzqTZ3NA==", "dev": true, "requires": { "hoek": "5.0.3", @@ -8086,15 +7652,6 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, - "requires": { - "jsonify": "0.0.0" - } - }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", @@ -8121,12 +7678,6 @@ "graceful-fs": "4.1.11" } }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, "jsonlint": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/jsonlint/-/jsonlint-1.6.3.tgz", @@ -8162,7 +7713,7 @@ "base64url": "2.0.0", "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.9", - "safe-buffer": "5.1.1" + "safe-buffer": "5.1.2" } }, "jws": { @@ -8172,7 +7723,7 @@ "requires": { "base64url": "2.0.0", "jwa": "1.1.5", - "safe-buffer": "5.1.1" + "safe-buffer": "5.1.2" } }, "keygrip": { @@ -8209,9 +7760,9 @@ } }, "koa": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/koa/-/koa-2.5.0.tgz", - "integrity": "sha512-UkrbMW2mRNfoW/4I20knJEjtPAWCV3Iw6f4XdnPWjHsCN8iTeSh0eSutrYdL0fGF/G9on2eQ30EEQif0MarGJA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/koa/-/koa-2.5.1.tgz", + "integrity": "sha512-cchwbMeG2dv3E2xTAmheDAuvR53tPgJZN/Hf1h7bTzJLSPcFZp8/t5+bNKJ6GaQZoydhZQ+1GNruhKdj3lIrug==", "dev": true, "requires": { "accepts": "1.3.5", @@ -8348,9 +7899,9 @@ } }, "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" }, "lodash.assign": { "version": "4.2.0", @@ -8814,6 +8365,12 @@ } } }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -8849,9 +8406,9 @@ } }, "mocha": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.0.5.tgz", - "integrity": "sha512-3MM3UjZ5p8EJrYpG7s+29HAI9G7sTzKEe4+w37Dg0QP7qL4XGsV+Q2xet2cE37AqdgN1OtYQB6Vl98YiPV3PgA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.1.1.tgz", + "integrity": "sha512-kKKs/H1KrMMQIEsWNxGmb4/BGsmj0dkeyotEvbrAuQ01FcWRLssUNXCEUZk6SZtyJBi6EE7SL0zDDtItw1rGhw==", "dev": true, "requires": { "browser-stdout": "1.3.1", @@ -8862,6 +8419,7 @@ "glob": "7.1.2", "growl": "1.10.3", "he": "1.1.1", + "minimatch": "3.0.4", "mkdirp": "0.5.1", "supports-color": "4.4.0" }, @@ -8895,9 +8453,9 @@ "dev": true }, "moment": { - "version": "2.22.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.0.tgz", - "integrity": "sha512-1muXCh8jb1N/gHRbn9VDUBr0GYb8A/aVcHlII9QSB68a50spqEVLIGN6KVmCOnSvJrUhC0edGgKU5ofnGXdYdg==", + "version": "2.22.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.1.tgz", + "integrity": "sha512-shJkRTSebXvsVqk56I+lkb2latjBs8I+pc2TzWc545y2iFnSjm7Wg0QMh+ZWcdSLQyGEau5jI8ocnmkyTgr9YQ==", "dev": true }, "ms": { @@ -8943,6 +8501,44 @@ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, + "mv": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", + "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=", + "dev": true, + "optional": true, + "requires": { + "mkdirp": "0.5.1", + "ncp": "2.0.0", + "rimraf": "2.4.5" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "dev": true, + "optional": true, + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "rimraf": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", + "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=", + "dev": true, + "optional": true, + "requires": { + "glob": "6.0.4" + } + } + } + }, "nan": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", @@ -9002,9 +8598,9 @@ } }, "nise": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.3.2.tgz", - "integrity": "sha512-KPKb+wvETBiwb4eTwtR/OsA2+iijXP+VnlSFYJo3EHjm2yjek1NWxHOUQat3i7xNLm1Bm18UA5j5Wor0yO2GtA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/nise/-/nise-1.3.3.tgz", + "integrity": "sha512-v1J/FLUB9PfGqZLGDBhQqODkbLotP0WtLo9R4EJY2PPu5f5Xg4o0rA8FDlmrjFSv9vBBKcfnOSpfYYuu5RTHqg==", "dev": true, "requires": { "@sinonjs/formatio": "2.0.0", @@ -9024,7 +8620,7 @@ "debug": "3.1.0", "deep-equal": "1.0.1", "json-stringify-safe": "5.0.1", - "lodash": "4.17.5", + "lodash": "4.17.10", "mkdirp": "0.5.1", "propagate": "1.0.0", "qs": "6.5.1", @@ -9139,9 +8735,9 @@ "dev": true }, "nyc": { - "version": "11.6.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.6.0.tgz", - "integrity": "sha512-ZaXCh0wmbk2aSBH2B5hZGGvK2s9aM8DIm2rVY+BG3Fx8tUS+bpJSswUVZqOD1YfCmnYRFSqgYJSr7UeeUcW0jg==", + "version": "11.7.1", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.7.1.tgz", + "integrity": "sha512-EGePURSKUEpS1jWnEKAMhY+GWZzi7JC+f8iBDOATaOsLZW5hM/9eYx2dHGaEXa1ITvMm44CJugMksvP3NwMQMw==", "dev": true, "requires": { "archy": "1.0.0", @@ -9159,7 +8755,7 @@ "istanbul-lib-instrument": "1.10.1", "istanbul-lib-report": "1.1.3", "istanbul-lib-source-maps": "1.2.3", - "istanbul-reports": "1.3.0", + "istanbul-reports": "1.4.0", "md5-hex": "1.3.0", "merge-source-map": "1.1.0", "micromatch": "2.3.11", @@ -9250,7 +8846,7 @@ "dev": true }, "atob": { - "version": "2.0.3", + "version": "2.1.0", "bundled": true, "dev": true }, @@ -9292,7 +8888,7 @@ "bundled": true, "dev": true, "requires": { - "core-js": "2.5.3", + "core-js": "2.5.5", "regenerator-runtime": "0.11.1" } }, @@ -9320,7 +8916,7 @@ "babylon": "6.18.0", "debug": "2.6.9", "globals": "9.18.0", - "invariant": "2.2.3", + "invariant": "2.2.4", "lodash": "4.17.5" } }, @@ -9367,10 +8963,41 @@ "is-descriptor": "1.0.2" } }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, "isobject": { "version": "3.0.1", "bundled": true, "dev": true + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true } } }, @@ -9478,61 +9105,10 @@ "is-descriptor": "0.1.6" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, "isobject": { "version": "3.0.1", "bundled": true, "dev": true - }, - "kind-of": { - "version": "5.1.0", - "bundled": true, - "dev": true } } }, @@ -9595,7 +9171,7 @@ "dev": true }, "core-js": { - "version": "2.5.3", + "version": "2.5.5", "bundled": true, "dev": true }, @@ -9648,10 +9224,41 @@ "isobject": "3.0.1" }, "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, "isobject": { "version": "3.0.1", "bundled": true, "dev": true + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true } } }, @@ -9988,7 +9595,7 @@ "dev": true }, "invariant": { - "version": "2.2.3", + "version": "2.2.4", "bundled": true, "dev": true, "requires": { @@ -10001,18 +9608,11 @@ "dev": true }, "is-accessor-descriptor": { - "version": "1.0.0", + "version": "0.1.6", "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } + "kind-of": "3.2.2" } }, "is-arrayish": { @@ -10034,32 +9634,25 @@ } }, "is-data-descriptor": { - "version": "1.0.0", + "version": "0.1.4", "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } + "kind-of": "3.2.2" } }, "is-descriptor": { - "version": "1.0.2", + "version": "0.1.6", "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" }, "dependencies": { "kind-of": { - "version": "6.0.2", + "version": "5.1.0", "bundled": true, "dev": true } @@ -10261,7 +9854,7 @@ } }, "istanbul-reports": { - "version": "1.3.0", + "version": "1.4.0", "bundled": true, "dev": true, "requires": { @@ -10564,39 +10157,6 @@ "requires": { "is-descriptor": "0.1.6" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "bundled": true, - "dev": true - } - } } } }, @@ -11052,57 +10612,6 @@ "requires": { "is-extendable": "0.1.1" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "bundled": true, - "dev": true } } }, @@ -11121,13 +10630,44 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { "version": "3.0.1", "bundled": true, "dev": true + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true } } }, @@ -11149,7 +10689,7 @@ "bundled": true, "dev": true, "requires": { - "atob": "2.0.3", + "atob": "2.1.0", "decode-uri-component": "0.2.0", "resolve-url": "0.2.1", "source-map-url": "0.4.0", @@ -11226,57 +10766,6 @@ "requires": { "is-descriptor": "0.1.6" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "bundled": true, - "dev": true } } }, @@ -11336,7 +10825,7 @@ "dev": true, "requires": { "arrify": "1.0.1", - "micromatch": "3.1.9", + "micromatch": "3.1.10", "object-assign": "4.1.1", "read-pkg-up": "1.0.1", "require-main-filename": "1.0.1" @@ -11353,17 +10842,15 @@ "dev": true }, "braces": { - "version": "2.3.1", + "version": "2.3.2", "bundled": true, "dev": true, "requires": { "arr-flatten": "1.1.0", "array-unique": "0.3.2", - "define-property": "1.0.0", "extend-shallow": "2.0.1", "fill-range": "4.0.0", "isobject": "3.0.1", - "kind-of": "6.0.2", "repeat-element": "1.1.2", "snapdragon": "0.8.2", "snapdragon-node": "2.1.1", @@ -11371,14 +10858,6 @@ "to-regex": "3.0.2" }, "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, "extend-shallow": { "version": "2.0.1", "bundled": true, @@ -11419,6 +10898,42 @@ "is-extendable": "0.1.1" } }, + "is-accessor-descriptor": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, "is-descriptor": { "version": "0.1.6", "bundled": true, @@ -11491,39 +11006,29 @@ } }, "is-accessor-descriptor": { - "version": "0.1.6", + "version": "1.0.0", "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } + "kind-of": "6.0.2" } }, "is-data-descriptor": { - "version": "0.1.4", + "version": "1.0.0", "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-number": { @@ -11555,13 +11060,13 @@ "dev": true }, "micromatch": { - "version": "3.1.9", + "version": "3.1.10", "bundled": true, "dev": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", - "braces": "2.3.1", + "braces": "2.3.2", "define-property": "2.0.2", "extend-shallow": "3.0.2", "extglob": "2.0.4", @@ -11965,6 +11470,12 @@ } } }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -12156,7 +11667,7 @@ "is-retry-allowed": "1.1.0", "is-stream": "1.1.0", "lowercase-keys": "1.0.1", - "safe-buffer": "5.1.1", + "safe-buffer": "5.1.2", "timed-out": "4.0.1", "unzip-response": "2.0.1", "url-parse-lax": "1.0.0" @@ -12302,6 +11813,12 @@ } } }, + "pidusage": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-1.2.0.tgz", + "integrity": "sha512-OGo+iSOk44HRJ8q15AyG570UYxcm5u+R99DI8Khu8P3tKGkVu5EZX4ywHglWSTMNNXQ274oeGpYrvFEhDIFGPg==", + "dev": true + }, "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", @@ -12393,7 +11910,7 @@ "dev": true, "requires": { "hoek": "5.0.3", - "joi": "13.1.2" + "joi": "13.2.0" }, "dependencies": { "hoek": { @@ -12405,14 +11922,14 @@ } }, "postcss": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.21.tgz", - "integrity": "sha512-y/bKfbQz2Nn/QBC08bwvYUxEFOVGfPIUOTsJ2CK5inzlXW9SdYR1x4pEsG9blRAF/PX+wRNdOah+gx/hv4q7dw==", + "version": "6.0.22", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.22.tgz", + "integrity": "sha512-Toc9lLoUASwGqxBSJGTVcOQiDqjK+Z2XlWBg+IgYwQMY9vA2f7iMpXVc1GpPcfTSyM5lkxNo0oDwDRO+wm7XHA==", "dev": true, "requires": { - "chalk": "2.3.2", + "chalk": "2.4.1", "source-map": "0.6.1", - "supports-color": "5.3.0" + "supports-color": "5.4.0" }, "dependencies": { "source-map": { @@ -12570,9 +12087,9 @@ "dev": true }, "prettier": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.11.1.tgz", - "integrity": "sha512-T/KD65Ot0PB97xTrG8afQ46x3oiVhnfGjGESSI9NWYcG92+OUPZKkwHqGWXH2t9jK1crnQjubECW0FuOth+hxw==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.12.1.tgz", + "integrity": "sha1-wa0g6APndJ+vkFpAnSNn4Gu+cyU=", "dev": true }, "pretty-ms": { @@ -12779,12 +12296,12 @@ } }, "rc": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.6.tgz", - "integrity": "sha1-6xiYnG1PTxYsOZ953dKfODVWgJI=", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz", + "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", "dev": true, "requires": { - "deep-extend": "0.4.2", + "deep-extend": "0.5.1", "ini": "1.3.5", "minimist": "1.2.0", "strip-json-comments": "2.0.1" @@ -12837,7 +12354,7 @@ "inherits": "2.0.3", "isarray": "1.0.0", "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", + "safe-buffer": "5.1.2", "string_decoder": "1.1.1", "util-deprecate": "1.0.2" } @@ -12919,8 +12436,8 @@ "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", "dev": true, "requires": { - "rc": "1.2.6", - "safe-buffer": "5.1.1" + "rc": "1.2.7", + "safe-buffer": "5.1.2" } }, "registry-url": { @@ -12929,7 +12446,7 @@ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "dev": true, "requires": { - "rc": "1.2.6" + "rc": "1.2.7" } }, "regjsgen": { @@ -13005,7 +12522,7 @@ "oauth-sign": "0.8.2", "performance-now": "2.1.0", "qs": "6.5.1", - "safe-buffer": "5.1.1", + "safe-buffer": "5.1.2", "stringstream": "0.0.5", "tough-cookie": "2.3.4", "tunnel-agent": "0.6.0", @@ -13093,6 +12610,56 @@ "lowercase-keys": "1.0.1" } }, + "restify": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/restify/-/restify-7.1.1.tgz", + "integrity": "sha512-ijHZGOP1UhRhCU4EpI9WbcLXi4v2xe2/3iqPSLcamjZhL9SkZ8TUfpKLRWHZlxWfL2k6Doy10N1gOnvRS9m5qg==", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "bunyan": "1.8.12", + "csv": "1.2.1", + "dtrace-provider": "0.8.6", + "escape-regexp-component": "1.0.2", + "ewma": "2.0.1", + "find-my-way": "1.12.0", + "formidable": "1.2.1", + "http-signature": "1.2.0", + "lodash": "4.17.10", + "lru-cache": "4.1.2", + "mime": "1.6.0", + "negotiator": "0.6.1", + "once": "1.4.0", + "pidusage": "1.2.0", + "qs": "6.5.1", + "restify-errors": "5.0.0", + "semver": "5.5.0", + "spdy": "3.4.7", + "uuid": "3.2.1", + "vasync": "1.6.4", + "verror": "1.10.0" + }, + "dependencies": { + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + } + } + }, + "restify-errors": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/restify-errors/-/restify-errors-5.0.0.tgz", + "integrity": "sha512-+vby9Kxf7qlzvbZSTIEGkIixkeHG+pVCl34dk6eKnL+ua4pCezpdLT/1/eabzPZb65ADrgoc04jeWrrF1E1pvQ==", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "lodash": "4.17.10", + "safe-json-stringify": "1.1.0", + "verror": "1.10.0" + } + }, "restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", @@ -13167,9 +12734,16 @@ } }, "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-json-stringify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.1.0.tgz", + "integrity": "sha512-EzBtUaFH9bHYPc69wqjp0efJI/DPNHdFbGE3uIMn4sVbO0zx8vZ8cG4WKxQfOpUOKsQyGBiT2mTqnCw+6nLswA==", + "dev": true, + "optional": true }, "samsam": { "version": "1.3.0", @@ -13183,18 +12757,24 @@ "integrity": "sha512-52ThA+Z7h6BnvpSVbURwChl10XZrps5q7ytjTwWcIe9bmJwnVP6cpEVK2NvDOUhGupoqAvNbUz3cpnJDp4+/pg==", "dev": true, "requires": { - "chalk": "2.3.2", + "chalk": "2.4.1", "htmlparser2": "3.9.2", "lodash.clonedeep": "4.5.0", "lodash.escaperegexp": "4.1.2", "lodash.isplainobject": "4.0.6", "lodash.isstring": "4.0.1", "lodash.mergewith": "4.6.1", - "postcss": "6.0.21", + "postcss": "6.0.22", "srcset": "1.0.0", "xtend": "4.0.1" } }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, "semver": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", @@ -13318,7 +12898,7 @@ "dev": true, "requires": { "hoek": "5.0.3", - "joi": "13.1.2" + "joi": "13.2.0" }, "dependencies": { "hoek": { @@ -13345,8 +12925,8 @@ "diff": "3.5.0", "lodash.get": "4.4.2", "lolex": "2.3.2", - "nise": "1.3.2", - "supports-color": "5.3.0", + "nise": "1.3.3", + "supports-color": "5.4.0", "type-detect": "4.0.8" } }, @@ -13395,11 +12975,12 @@ "dev": true }, "source-map-support": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.4.tgz", - "integrity": "sha512-PETSPG6BjY1AHs2t64vS2aqAgu6dMIMXJULWFBGbh2Gr8nVLbCFDo6i/RMMvviIQ2h1Z8+5gQhVKSn2je9nmdg==", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.5.tgz", + "integrity": "sha512-mR7/Nd5l1z6g99010shcXJiNEaf3fEtmLhRB/sBcQVJGodcHCULPp2y4Sfa43Kv2zq7T+Izmfp/WHCR6dYkQCA==", "dev": true, "requires": { + "buffer-from": "1.0.0", "source-map": "0.6.1" }, "dependencies": { @@ -13471,6 +13052,57 @@ "spdx-ranges": "2.0.0" } }, + "spdy": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", + "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", + "dev": true, + "requires": { + "debug": "2.6.9", + "handle-thing": "1.2.5", + "http-deceiver": "1.2.7", + "safe-buffer": "5.1.2", + "select-hose": "2.0.0", + "spdy-transport": "2.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "spdy-transport": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.0.tgz", + "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", + "dev": true, + "requires": { + "debug": "2.6.9", + "detect-node": "2.0.3", + "hpack.js": "2.1.6", + "obuf": "1.1.2", + "readable-stream": "2.3.6", + "safe-buffer": "5.1.2", + "wbuf": "1.7.3" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, "split-array-stream": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/split-array-stream/-/split-array-stream-1.0.3.tgz", @@ -13534,7 +13166,7 @@ "cryptiles": "4.1.1", "hoek": "5.0.3", "iron": "5.0.4", - "joi": "13.1.2" + "joi": "13.2.0" }, "dependencies": { "boom": { @@ -13570,9 +13202,9 @@ "dev": true }, "stream-events": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.3.tgz", - "integrity": "sha512-SvnBCMhEBQSJml4/ImlWkzGWgchjo1tVxnoBUOa1i1g3BsYNWz4W6a9Hc8VhqfmwJiEGu6tLrGdNRm/K/I4YXw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.4.tgz", + "integrity": "sha512-D243NJaYs/xBN2QnoiMDY7IesJFIK7gEhnvAYqJa5JvDdnh2dC4qDBwlCf0ohPpX2QRlA/4gnbnPd3rs3KxVcA==", "requires": { "stubs": "3.0.0" } @@ -13582,6 +13214,12 @@ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" }, + "stream-transform": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-0.2.2.tgz", + "integrity": "sha1-dYZ0h/SVKPi/HYJJllh1PQLfeDg=", + "dev": true + }, "strict-uri-encode": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", @@ -13614,7 +13252,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "5.1.2" } }, "stringifier": { @@ -13722,9 +13360,9 @@ } }, "superagent": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.2.tgz", - "integrity": "sha512-gVH4QfYHcY3P0f/BZzavLreHW3T1v7hG9B+hpMQotGQqurOvhv87GcMCd6LWySmBuf+BDR44TQd0aISjVHLeNQ==", + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz", + "integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==", "dev": true, "requires": { "component-emitter": "1.2.1", @@ -13767,13 +13405,13 @@ "dev": true, "requires": { "methods": "1.1.2", - "superagent": "3.8.2" + "superagent": "3.8.3" } }, "supports-color": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", - "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -13801,8 +13439,8 @@ "requires": { "ajv": "5.5.2", "ajv-keywords": "2.1.1", - "chalk": "2.3.2", - "lodash": "4.17.5", + "chalk": "2.4.1", + "lodash": "4.17.10", "slice-ansi": "1.0.0", "string-width": "2.1.1" } @@ -13957,22 +13595,22 @@ "requires": { "babel-code-frame": "6.26.0", "builtin-modules": "1.1.1", - "chalk": "2.3.2", + "chalk": "2.4.1", "commander": "2.15.1", "diff": "3.5.0", "glob": "7.1.2", "js-yaml": "3.11.0", "minimatch": "3.0.4", - "resolve": "1.7.0", + "resolve": "1.7.1", "semver": "5.5.0", "tslib": "1.9.0", - "tsutils": "2.26.1" + "tsutils": "2.26.2" }, "dependencies": { "resolve": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.0.tgz", - "integrity": "sha512-QdgZ5bjR1WAlpLaO5yHepFvC+o3rCr6wpfE2tpJNMkXdulf2jKomQBdNRQITF3ZKHNlT71syG98yQP03gasgnA==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", + "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", "dev": true, "requires": { "path-parse": "1.0.5" @@ -13981,9 +13619,9 @@ } }, "tsutils": { - "version": "2.26.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.26.1.tgz", - "integrity": "sha512-bnm9bcjOqOr1UljleL94wVCDlpa6KjfGaTkefeLch4GRafgDkROxPizbB/FxTEdI++5JqhxczRy/Qub0syNqZA==", + "version": "2.26.2", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.26.2.tgz", + "integrity": "sha512-uzwnhmrSbyinPCiwfzGsOY3IulBTwoky7r83HmZdz9QNCjhSCzavkh47KLWuU0zF2F2WbpmmzoJUIEiYyd+jEQ==", "dev": true, "requires": { "tslib": "1.9.0" @@ -13994,7 +13632,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "5.1.2" } }, "tweetnacl": { @@ -14040,9 +13678,9 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "typescript": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.8.1.tgz", - "integrity": "sha512-Ao/f6d/4EPLq0YwzsQz8iXflezpTkQzqAyenTiw4kCUGr1uPiFLC3+fZ+gMZz6eeI/qdRUqvC+HxIJzUAzEFdg==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.8.3.tgz", + "integrity": "sha512-K7g15Bb6Ra4lKf7Iq2l/I5/En+hLIHmxWZGq3D4DIRNFxMNV6j2SHSvDOqs2tGd4UvD/fJvrwopzQXjLrT7Itw==", "dev": true }, "uglify-js": { @@ -14157,13 +13795,13 @@ "dev": true }, "update-notifier": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.4.0.tgz", - "integrity": "sha1-+bTHAPv9TsEsgRWHJYd31WPYyGY=", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", + "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", "dev": true, "requires": { "boxen": "1.3.0", - "chalk": "2.3.2", + "chalk": "2.4.1", "configstore": "3.1.2", "import-lazy": "2.1.0", "is-ci": "1.1.0", @@ -14264,6 +13902,32 @@ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true }, + "vasync": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/vasync/-/vasync-1.6.4.tgz", + "integrity": "sha1-3+k2Fq0OeugBszKp2Iv8XNyOHR8=", + "dev": true, + "requires": { + "verror": "1.6.0" + }, + "dependencies": { + "extsprintf": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.2.0.tgz", + "integrity": "sha1-WtlGwi9bMrp/jNdCZxHG6KP8JSk=", + "dev": true + }, + "verror": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.6.0.tgz", + "integrity": "sha1-fROyex+swuLakEBetepuW90lLqU=", + "dev": true, + "requires": { + "extsprintf": "1.2.0" + } + } + } + }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -14326,6 +13990,15 @@ "vow": "0.4.17" } }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "1.0.1" + } + }, "well-known-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-1.0.0.tgz", @@ -14580,7 +14253,7 @@ "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", "dev": true, "requires": { - "cliui": "4.0.0", + "cliui": "4.1.0", "decamelize": "1.2.0", "find-up": "2.1.0", "get-caller-file": "1.0.2", @@ -14595,9 +14268,9 @@ }, "dependencies": { "cliui": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.0.0.tgz", - "integrity": "sha512-nY3W5Gu2racvdDk//ELReY+dHjb9PlIcVDFXP72nVIhq2Gy3LuVXYwJoPVudwQnv1shtohpgkdCKT2YaKY0CKw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { "string-width": "2.1.1", From 3a1309d3f68520fc99eeb042efa2e0b20de3ac56 Mon Sep 17 00:00:00 2001 From: Alexander Fenster Date: Wed, 2 May 2018 15:10:05 -0700 Subject: [PATCH 093/527] chore: test on node10 (#116) --- .../error-reporting/.circleci/config.yml | 61 ++++++++----------- 1 file changed, 25 insertions(+), 36 deletions(-) diff --git a/handwritten/error-reporting/.circleci/config.yml b/handwritten/error-reporting/.circleci/config.yml index 5f5cae61ce4..3a5990f3ceb 100644 --- a/handwritten/error-reporting/.circleci/config.yml +++ b/handwritten/error-reporting/.circleci/config.yml @@ -19,12 +19,17 @@ workflows: filters: tags: only: /.*/ + - node10: + filters: + tags: + only: /.*/ - lint: requires: - node4 - node6 - node8 - node9 + - node10 filters: tags: only: /.*/ @@ -34,6 +39,7 @@ workflows: - node6 - node8 - node9 + - node10 filters: tags: only: /.*/ @@ -90,9 +96,13 @@ jobs: else echo "Not a nightly build, skipping this step." fi - - run: - name: Install modules and dependencies. - command: npm install + - run: &npm_install_and_link + name: Install and link the module. + command: | + npm install + npm link + environment: + NPM_CONFIG_PREFIX: /home/node/.npm-global - run: name: Run unit tests. command: npm test @@ -111,6 +121,11 @@ jobs: - image: 'node:9' user: node steps: *unit_tests_steps + node10: + docker: + - image: 'node:10' + user: node + steps: *unit_tests_steps lint: docker: - image: 'node:8' @@ -118,14 +133,8 @@ jobs: steps: - checkout - run: *remove_package_lock - - run: - name: Install modules and dependencies. - command: | - npm install - npm link - environment: - NPM_CONFIG_PREFIX: /home/node/.npm-global - - run: + - run: *npm_install_and_link + - run: &samples_npm_install_and_link name: Link the module being tested to the samples. command: | cd samples/ @@ -146,9 +155,7 @@ jobs: steps: - checkout - run: *remove_package_lock - - run: - name: Install modules and dependencies. - command: npm install + - run: *npm_install_and_link - run: name: Build documentation. command: npm run docs @@ -165,22 +172,8 @@ jobs: openssl aes-256-cbc -d -in .circleci/key.json.enc \ -out .circleci/key.json \ -k "${SYSTEM_TESTS_ENCRYPTION_KEY}" - - run: - name: Install and link the module. - command: | - npm install - npm link - environment: - NPM_CONFIG_PREFIX: /home/node/.npm-global - - run: - name: Link the module being tested to the samples. - command: | - cd samples/ - npm link @google-cloud/error-reporting - npm install - cd .. - environment: - NPM_CONFIG_PREFIX: /home/node/.npm-global + - run: *npm_install_and_link + - run: *samples_npm_install_and_link - run: name: Run sample tests. command: npm run samples-test @@ -206,9 +199,7 @@ jobs: openssl aes-256-cbc -d -in .circleci/key.json.enc \ -out .circleci/key.json \ -k "${SYSTEM_TESTS_ENCRYPTION_KEY}" - - run: - name: Install modules and dependencies. - command: npm install + - run: *npm_install_and_link - run: name: Run system tests. command: npm run system-test @@ -229,9 +220,7 @@ jobs: - run: name: Set NPM authentication. command: 'echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc' - - run: - name: Install modules and dependencies. - command: npm install + - run: *npm_install_and_link - run: name: Publish the module to npm. command: npm publish From 39ae68d07601a0b4df64e0ec132f207ddd127775 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Tue, 8 May 2018 14:19:38 -0700 Subject: [PATCH 094/527] chore(package): update @types/is to version 0.0.20 (#119) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index bdaea61c5a6..a57943ec9b0 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -65,7 +65,7 @@ "@types/extend": "^3.0.0", "@types/glob": "^5.0.35", "@types/hapi": "^16.1.11", - "@types/is": "0.0.19", + "@types/is": "0.0.20", "@types/koa": "^2.0.43", "@types/lodash.assign": "^4.2.3", "@types/lodash.foreach": "^4.5.3", From e09568006f3f3002326d2fe2e29ad02389d096ef Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Mon, 14 May 2018 15:39:05 -0700 Subject: [PATCH 095/527] chore(package): update @types/node to version 10.0.7 (#120) Closes #115 --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index a57943ec9b0..5afadc6fdb4 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -81,7 +81,7 @@ "@types/mocha": "^5.0.0", "@types/ncp": "^2.0.1", "@types/nock": "^9.1.2", - "@types/node": "^9.4.0", + "@types/node": "^10.0.7", "@types/once": "^1.4.0", "@types/pify": "^3.0.1", "@types/proxyquire": "^1.3.28", From 23f81dab7eb796bdea65dd94bfaa254e03a3fda4 Mon Sep 17 00:00:00 2001 From: Alexander Fenster Date: Wed, 16 May 2018 13:03:26 -0700 Subject: [PATCH 096/527] chore: lock files maintenance (#118) * chore: lock files maintenance * chore: lock files maintenance --- handwritten/error-reporting/package-lock.json | 116 ++++++++++-------- 1 file changed, 64 insertions(+), 52 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index 1f36b7ba80b..3759ee55819 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -89,7 +89,7 @@ "arrify": "1.0.1", "concat-stream": "1.6.2", "create-error-class": "3.0.2", - "duplexify": "3.5.4", + "duplexify": "3.6.0", "ent": "2.2.0", "extend": "3.0.1", "google-auto-auth": "0.10.1", @@ -1807,7 +1807,7 @@ "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", "dev": true, "requires": { - "@types/node": "9.6.8" + "@types/node": "9.6.12" } }, "@types/body-parser": { @@ -1817,7 +1817,7 @@ "dev": true, "requires": { "@types/connect": "3.4.32", - "@types/node": "9.6.8" + "@types/node": "9.6.12" } }, "@types/boom": { @@ -1833,7 +1833,7 @@ "dev": true, "requires": { "@types/events": "1.2.0", - "@types/node": "9.6.8" + "@types/node": "9.6.12" } }, "@types/caseless": { @@ -1857,7 +1857,7 @@ "integrity": "sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg==", "dev": true, "requires": { - "@types/node": "9.6.8" + "@types/node": "9.6.12" } }, "@types/cookies": { @@ -1869,7 +1869,7 @@ "@types/connect": "3.4.32", "@types/express": "4.11.1", "@types/keygrip": "1.0.1", - "@types/node": "9.6.8" + "@types/node": "9.6.12" } }, "@types/events": { @@ -1896,7 +1896,7 @@ "dev": true, "requires": { "@types/events": "1.2.0", - "@types/node": "9.6.8" + "@types/node": "9.6.12" } }, "@types/extend": { @@ -1911,7 +1911,7 @@ "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", "dev": true, "requires": { - "@types/node": "9.6.8" + "@types/node": "9.6.12" } }, "@types/glob": { @@ -1922,7 +1922,7 @@ "requires": { "@types/events": "1.2.0", "@types/minimatch": "3.0.3", - "@types/node": "9.6.8" + "@types/node": "9.6.12" } }, "@types/hapi": { @@ -1936,7 +1936,7 @@ "@types/events": "1.2.0", "@types/joi": "13.0.8", "@types/mimos": "3.0.1", - "@types/node": "9.6.8", + "@types/node": "9.6.12", "@types/podium": "1.0.0", "@types/shot": "3.4.0" } @@ -1977,7 +1977,7 @@ "@types/http-assert": "1.2.2", "@types/keygrip": "1.0.1", "@types/koa-compose": "3.2.2", - "@types/node": "9.6.8" + "@types/node": "9.6.12" } }, "@types/koa-compose": { @@ -2130,7 +2130,7 @@ "integrity": "sha512-TeiJ7uvv/92ugSqZ0v9l0eNXzutlki0aK+R1K5bfA5SYUil46ITlxLW4iNTCf55P4L5weCmaOdtxGeGWvudwPg==", "dev": true, "requires": { - "@types/node": "9.6.8" + "@types/node": "9.6.12" } }, "@types/nock": { @@ -2139,13 +2139,13 @@ "integrity": "sha512-S8rJ+SaW82ICX87pZP62UcMifrMfjEdqNzSp+llx4YcvKw6bO650Ye6HwTqER1Dar3S40GIZECQisOrAICDCjA==", "dev": true, "requires": { - "@types/node": "9.6.8" + "@types/node": "9.6.12" } }, "@types/node": { - "version": "9.6.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.8.tgz", - "integrity": "sha512-0PmgMBskTJa7zDyENW9C7Lunk+I0L2CHYF2RrBRljCmLSMM1fBHIIdvE1IboNNz7N6t+raJIj90YMvUYl2VT1g==", + "version": "9.6.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.12.tgz", + "integrity": "sha512-2Z8ziWjJbvV8hHL5YcqCG9ng+/qwUlO1gB4frBD7QI5Wm1Y1iM+AEkGVEv0S5P+aDMwTtAhPJFR4rp1uqagSig==", "dev": true }, "@types/once": { @@ -2180,7 +2180,7 @@ "requires": { "@types/caseless": "0.12.1", "@types/form-data": "2.2.1", - "@types/node": "9.6.8", + "@types/node": "9.6.12", "@types/tough-cookie": "2.3.2" } }, @@ -2191,7 +2191,7 @@ "dev": true, "requires": { "@types/bunyan": "1.8.4", - "@types/node": "9.6.8", + "@types/node": "9.6.12", "@types/spdy": "3.4.4" } }, @@ -2202,7 +2202,7 @@ "dev": true, "requires": { "@types/glob": "5.0.35", - "@types/node": "9.6.8" + "@types/node": "9.6.12" } }, "@types/serve-static": { @@ -2221,7 +2221,7 @@ "integrity": "sha1-RZR3xRh9Pr0wNmCrCZ5+ng87ZW8=", "dev": true, "requires": { - "@types/node": "9.6.8" + "@types/node": "9.6.12" } }, "@types/spdy": { @@ -2230,7 +2230,7 @@ "integrity": "sha512-N9LBlbVRRYq6HgYpPkqQc3a9HJ/iEtVZToW6xlTtJiMhmRJ7jJdV7TaZQJw/Ve/1ePUsQiCTDc4JMuzzag94GA==", "dev": true, "requires": { - "@types/node": "9.6.8" + "@types/node": "9.6.12" } }, "@types/tmp": { @@ -2912,7 +2912,7 @@ "babel-generator": "6.26.1", "babylon": "6.18.0", "call-matcher": "1.0.1", - "core-js": "2.5.5", + "core-js": "2.5.6", "espower-location-detector": "1.0.0", "espurify": "1.7.0", "estraverse": "4.2.0" @@ -3059,7 +3059,7 @@ "requires": { "babel-core": "6.26.3", "babel-runtime": "6.26.0", - "core-js": "2.5.5", + "core-js": "2.5.6", "home-or-tmp": "2.0.0", "lodash": "4.17.10", "mkdirp": "0.5.1", @@ -3083,7 +3083,7 @@ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.5.5", + "core-js": "2.5.6", "regenerator-runtime": "0.11.1" } }, @@ -3210,6 +3210,12 @@ "requires": { "ms": "2.0.0" } + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", + "dev": true } } }, @@ -3433,7 +3439,7 @@ "integrity": "sha1-UTTQd5hPcSpU2tPL9i3ijc5BbKg=", "dev": true, "requires": { - "core-js": "2.5.5", + "core-js": "2.5.6", "deep-equal": "1.0.1", "espurify": "1.7.0", "estraverse": "4.2.0" @@ -4023,9 +4029,9 @@ } }, "core-js": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", - "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.6.tgz", + "integrity": "sha512-lQUVfQi0aLix2xpyjrrJEvfuYCqPc/HwmTKsC/VNf8q0zsjX7SQZtp4+oRONN5Tsur9GDETPjj+Ub2iDiGZfSQ==", "dev": true }, "core-util-is": { @@ -4543,9 +4549,9 @@ "dev": true }, "duplexify": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.4.tgz", - "integrity": "sha512-JzYSLYMhoVVBe8+mbHQ4KgpvHpm0DZpJuL8PY93Vyv1fW7jYJ90LoXa1di/CVbJM+TgMs91rbDapE/RNIfnJsA==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", + "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", "requires": { "end-of-stream": "1.4.1", "inherits": "2.0.3", @@ -4589,7 +4595,7 @@ "integrity": "sha1-bw2nNEf07dg4/sXGAxOoi6XLhSs=", "dev": true, "requires": { - "core-js": "2.5.5", + "core-js": "2.5.6", "empower-core": "0.6.2" } }, @@ -4609,7 +4615,7 @@ "dev": true, "requires": { "call-signature": "0.0.2", - "core-js": "2.5.5" + "core-js": "2.5.6" } }, "encodeurl": { @@ -5026,7 +5032,7 @@ "integrity": "sha1-HFz2y8zDLm9jk4C9T5kfq5up0iY=", "dev": true, "requires": { - "core-js": "2.5.5" + "core-js": "2.5.6" } }, "esquery": { @@ -5176,6 +5182,12 @@ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", "dev": true }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", + "dev": true + }, "safe-buffer": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", @@ -6267,7 +6279,7 @@ "meow": "4.0.1", "pify": "3.0.0", "rimraf": "2.6.2", - "tslint": "5.9.1", + "tslint": "5.10.0", "update-notifier": "2.5.0", "write-file-atomic": "2.3.0" }, @@ -8623,7 +8635,7 @@ "lodash": "4.17.10", "mkdirp": "0.5.1", "propagate": "1.0.0", - "qs": "6.5.1", + "qs": "6.5.2", "semver": "5.5.0" } }, @@ -11959,7 +11971,7 @@ "integrity": "sha1-7bo1LT7YpgMRTWZyZazOYNaJzN8=", "dev": true, "requires": { - "core-js": "2.5.5", + "core-js": "2.5.6", "power-assert-context-traversal": "1.1.1" } }, @@ -11971,7 +11983,7 @@ "requires": { "acorn": "4.0.13", "acorn-es7-plugin": "1.1.7", - "core-js": "2.5.5", + "core-js": "2.5.6", "espurify": "1.7.0", "estraverse": "4.2.0" }, @@ -11990,7 +12002,7 @@ "integrity": "sha1-iMq8oNE7Y1nwfT0+ivppkmRXftk=", "dev": true, "requires": { - "core-js": "2.5.5", + "core-js": "2.5.6", "estraverse": "4.2.0" } }, @@ -12000,7 +12012,7 @@ "integrity": "sha1-XcEl7VCj37HdomwZNH879Y7CiEo=", "dev": true, "requires": { - "core-js": "2.5.5", + "core-js": "2.5.6", "power-assert-context-formatter": "1.1.1", "power-assert-context-reducer-ast": "1.1.2", "power-assert-renderer-assertion": "1.1.1", @@ -12031,7 +12043,7 @@ "integrity": "sha1-10Odl9hRVr5OMKAPL7WnJRTOPAg=", "dev": true, "requires": { - "core-js": "2.5.5", + "core-js": "2.5.6", "diff-match-patch": "1.0.0", "power-assert-renderer-base": "1.1.1", "stringifier": "1.3.0", @@ -12044,7 +12056,7 @@ "integrity": "sha1-ZV+PcRk1qbbVQbhjJ2VHF8Y3qYY=", "dev": true, "requires": { - "core-js": "2.5.5", + "core-js": "2.5.6", "power-assert-renderer-base": "1.1.1", "power-assert-util-string-width": "1.1.1", "stringifier": "1.3.0" @@ -12189,9 +12201,9 @@ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" }, "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, "query-string": { "version": "5.1.1", @@ -12521,7 +12533,7 @@ "mime-types": "2.1.18", "oauth-sign": "0.8.2", "performance-now": "2.1.0", - "qs": "6.5.1", + "qs": "6.5.2", "safe-buffer": "5.1.2", "stringstream": "0.0.5", "tough-cookie": "2.3.4", @@ -12631,7 +12643,7 @@ "negotiator": "0.6.1", "once": "1.4.0", "pidusage": "1.2.0", - "qs": "6.5.1", + "qs": "6.5.2", "restify-errors": "5.0.0", "semver": "5.5.0", "spdy": "3.4.7", @@ -13261,7 +13273,7 @@ "integrity": "sha1-3vGDQvaTPbDy2/yaoCF1tEjBeVk=", "dev": true, "requires": { - "core-js": "2.5.5", + "core-js": "2.5.6", "traverse": "0.6.6", "type-name": "2.0.2" } @@ -13373,7 +13385,7 @@ "formidable": "1.2.1", "methods": "1.1.2", "mime": "1.6.0", - "qs": "6.5.1", + "qs": "6.5.2", "readable-stream": "2.3.6" }, "dependencies": { @@ -13588,9 +13600,9 @@ "dev": true }, "tslint": { - "version": "5.9.1", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.9.1.tgz", - "integrity": "sha1-ElX4ej/1frCw4fDmEKi0dIBGya4=", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.10.0.tgz", + "integrity": "sha1-EeJrzLiK+gLdDZlWyuPUVAtfVMM=", "dev": true, "requires": { "babel-code-frame": "6.26.0", From 2943ac4c721982221b5f71ad0e49944138ef76a8 Mon Sep 17 00:00:00 2001 From: Alexander Fenster Date: Wed, 16 May 2018 14:34:30 -0700 Subject: [PATCH 097/527] chore: update package locks (#122) --- handwritten/error-reporting/package-lock.json | 855 +++++++++--------- 1 file changed, 410 insertions(+), 445 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index 3759ee55819..383e5edba24 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -97,7 +97,7 @@ "log-driver": "1.2.7", "methmeth": "1.1.0", "modelo": "4.2.3", - "request": "2.85.0", + "request": "2.86.0", "retry-request": "3.3.1", "split-array-stream": "1.0.3", "stream-events": "1.0.4", @@ -1794,7 +1794,7 @@ }, "@sinonjs/formatio": { "version": "2.0.0", - "resolved": "http://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", "integrity": "sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg==", "dev": true, "requires": { @@ -1807,7 +1807,7 @@ "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", "dev": true, "requires": { - "@types/node": "9.6.12" + "@types/node": "10.1.0" } }, "@types/body-parser": { @@ -1817,7 +1817,7 @@ "dev": true, "requires": { "@types/connect": "3.4.32", - "@types/node": "9.6.12" + "@types/node": "10.1.0" } }, "@types/boom": { @@ -1833,7 +1833,7 @@ "dev": true, "requires": { "@types/events": "1.2.0", - "@types/node": "9.6.12" + "@types/node": "10.1.0" } }, "@types/caseless": { @@ -1857,7 +1857,7 @@ "integrity": "sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg==", "dev": true, "requires": { - "@types/node": "9.6.12" + "@types/node": "10.1.0" } }, "@types/cookies": { @@ -1869,7 +1869,7 @@ "@types/connect": "3.4.32", "@types/express": "4.11.1", "@types/keygrip": "1.0.1", - "@types/node": "9.6.12" + "@types/node": "10.1.0" } }, "@types/events": { @@ -1896,7 +1896,7 @@ "dev": true, "requires": { "@types/events": "1.2.0", - "@types/node": "9.6.12" + "@types/node": "10.1.0" } }, "@types/extend": { @@ -1911,7 +1911,7 @@ "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", "dev": true, "requires": { - "@types/node": "9.6.12" + "@types/node": "10.1.0" } }, "@types/glob": { @@ -1922,7 +1922,7 @@ "requires": { "@types/events": "1.2.0", "@types/minimatch": "3.0.3", - "@types/node": "9.6.12" + "@types/node": "10.1.0" } }, "@types/hapi": { @@ -1936,7 +1936,7 @@ "@types/events": "1.2.0", "@types/joi": "13.0.8", "@types/mimos": "3.0.1", - "@types/node": "9.6.12", + "@types/node": "10.1.0", "@types/podium": "1.0.0", "@types/shot": "3.4.0" } @@ -1948,9 +1948,9 @@ "dev": true }, "@types/is": { - "version": "0.0.19", - "resolved": "https://registry.npmjs.org/@types/is/-/is-0.0.19.tgz", - "integrity": "sha512-OfsDEdzuxfkNXIlAd55eBFCag+I82Ex4jt5s4mOdVS1DHeXaB/zMdgbllTt62qRNCpdypkP36ROj4tUXJTvbZQ==", + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@types/is/-/is-0.0.20.tgz", + "integrity": "sha512-013vMJ4cpYRm1GavhN8HqSKRWD/txm2BLcy/Qw9hAoSNJwp60ezLH+/QlX3JouGTPJcmxvbDUWGANxjS52jRaw==", "dev": true }, "@types/joi": { @@ -1977,7 +1977,7 @@ "@types/http-assert": "1.2.2", "@types/keygrip": "1.0.1", "@types/koa-compose": "3.2.2", - "@types/node": "9.6.12" + "@types/node": "10.1.0" } }, "@types/koa-compose": { @@ -2130,7 +2130,7 @@ "integrity": "sha512-TeiJ7uvv/92ugSqZ0v9l0eNXzutlki0aK+R1K5bfA5SYUil46ITlxLW4iNTCf55P4L5weCmaOdtxGeGWvudwPg==", "dev": true, "requires": { - "@types/node": "9.6.12" + "@types/node": "10.1.0" } }, "@types/nock": { @@ -2139,13 +2139,13 @@ "integrity": "sha512-S8rJ+SaW82ICX87pZP62UcMifrMfjEdqNzSp+llx4YcvKw6bO650Ye6HwTqER1Dar3S40GIZECQisOrAICDCjA==", "dev": true, "requires": { - "@types/node": "9.6.12" + "@types/node": "10.1.0" } }, "@types/node": { - "version": "9.6.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.12.tgz", - "integrity": "sha512-2Z8ziWjJbvV8hHL5YcqCG9ng+/qwUlO1gB4frBD7QI5Wm1Y1iM+AEkGVEv0S5P+aDMwTtAhPJFR4rp1uqagSig==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.1.0.tgz", + "integrity": "sha512-sELcX/cJHwRp8kn4hYSvBxKGJ+ubl3MvS8VJQe5gz/sp7CifYxsiCxIJ35wMIYyGVMgfO2AzRa8UcVReAcJRlw==", "dev": true }, "@types/once": { @@ -2180,18 +2180,18 @@ "requires": { "@types/caseless": "0.12.1", "@types/form-data": "2.2.1", - "@types/node": "9.6.12", - "@types/tough-cookie": "2.3.2" + "@types/node": "10.1.0", + "@types/tough-cookie": "2.3.3" } }, "@types/restify": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@types/restify/-/restify-5.0.7.tgz", - "integrity": "sha512-0bcMA32Ys6nOQnD4QD6vDvfJg7nx5Dbd+oItNFAad3lwnanm0CqxSZpPQVgVMdD4Vrq/dY7yTaEUwsXOFci2iw==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@types/restify/-/restify-5.0.8.tgz", + "integrity": "sha512-7nqnFv+M4w0KYajdb0sGy0C5k5OYvPLOPMbacNOM8I2Xm/UQpFnOUluwkkM1FyblVrhgfwHEHVUUZW1VWTXeAQ==", "dev": true, "requires": { "@types/bunyan": "1.8.4", - "@types/node": "9.6.12", + "@types/node": "10.1.0", "@types/spdy": "3.4.4" } }, @@ -2202,7 +2202,7 @@ "dev": true, "requires": { "@types/glob": "5.0.35", - "@types/node": "9.6.12" + "@types/node": "10.1.0" } }, "@types/serve-static": { @@ -2221,7 +2221,7 @@ "integrity": "sha1-RZR3xRh9Pr0wNmCrCZ5+ng87ZW8=", "dev": true, "requires": { - "@types/node": "9.6.12" + "@types/node": "10.1.0" } }, "@types/spdy": { @@ -2230,7 +2230,7 @@ "integrity": "sha512-N9LBlbVRRYq6HgYpPkqQc3a9HJ/iEtVZToW6xlTtJiMhmRJ7jJdV7TaZQJw/Ve/1ePUsQiCTDc4JMuzzag94GA==", "dev": true, "requires": { - "@types/node": "9.6.12" + "@types/node": "10.1.0" } }, "@types/tmp": { @@ -2240,9 +2240,9 @@ "dev": true }, "@types/tough-cookie": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha512-vOVmaruQG5EatOU/jM6yU2uCp3Lz6mK1P5Ztu4iJjfM4SVHU9XYktPUQtKlIXuahqXHdEyUarMrBEwg5Cwu+bA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.3.tgz", + "integrity": "sha512-MDQLxNFRLasqS4UlkWMSACMKeSm1x4Q3TxzUC7KQUsh6RK1ZrQ0VEyE3yzXcBu+K8ejVj4wuX32eUG02yNp+YQ==", "dev": true }, "JSV": { @@ -2609,7 +2609,7 @@ "lodash.difference": "4.5.0", "lodash.flatten": "4.4.0", "loud-rejection": "1.6.0", - "make-dir": "1.2.0", + "make-dir": "1.3.0", "matcher": "1.1.0", "md5-hex": "2.0.0", "meow": "3.7.0", @@ -2626,7 +2626,7 @@ "safe-buffer": "5.1.2", "semver": "5.5.0", "slash": "1.0.0", - "source-map-support": "0.5.5", + "source-map-support": "0.5.6", "stack-utils": "1.0.1", "strip-ansi": "4.0.0", "strip-bom-buf": "1.0.0", @@ -2914,7 +2914,7 @@ "call-matcher": "1.0.1", "core-js": "2.5.6", "espower-location-detector": "1.0.0", - "espurify": "1.7.0", + "espurify": "1.8.0", "estraverse": "4.2.0" } }, @@ -3152,11 +3152,6 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, - "base64url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64url/-/base64url-2.0.0.tgz", - "integrity": "sha1-6sFuA+oUOO/5Qj1puqNiYu0fcLs=" - }, "bcrypt-pbkdf": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", @@ -3185,9 +3180,9 @@ "dev": true }, "body-parser": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", - "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", + "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", "dev": true, "requires": { "bytes": "3.0.0", @@ -3195,10 +3190,10 @@ "debug": "2.6.9", "depd": "1.1.2", "http-errors": "1.6.3", - "iconv-lite": "0.4.19", + "iconv-lite": "0.4.23", "on-finished": "2.3.0", - "qs": "6.5.1", - "raw-body": "2.3.2", + "qs": "6.5.2", + "raw-body": "2.3.3", "type-is": "1.6.16" }, "dependencies": { @@ -3210,12 +3205,6 @@ "requires": { "ms": "2.0.0" } - }, - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", - "dev": true } } }, @@ -3441,7 +3430,7 @@ "requires": { "core-js": "2.5.6", "deep-equal": "1.0.1", - "espurify": "1.7.0", + "espurify": "1.8.0", "estraverse": "4.2.0" } }, @@ -3501,7 +3490,7 @@ "boom": "7.2.0", "bounce": "1.2.0", "hoek": "5.0.3", - "joi": "13.2.0" + "joi": "13.3.0" }, "dependencies": { "boom": { @@ -3622,7 +3611,7 @@ "requires": { "anymatch": "1.3.2", "async-each": "1.0.1", - "fsevents": "1.2.3", + "fsevents": "1.2.4", "glob-parent": "2.0.0", "inherits": "2.0.3", "is-binary-path": "1.0.1", @@ -3798,13 +3787,13 @@ "dev": true }, "codecov": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.0.1.tgz", - "integrity": "sha512-0TjnXrbvcPzAkRPv/Y5D8aZju/M5adkFxShRyMMgDReB8EV9nF4XMERXs6ajgLA1di9LUFW2tgePDQd2JPWy7g==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.0.2.tgz", + "integrity": "sha512-9ljtIROIjPIUmMRqO+XuDITDoV8xRrZmA0jcEq6p2hg2+wY9wGmLfreAZGIL72IzUfdEDZaU8+Vjidg1fBQ8GQ==", "dev": true, "requires": { "argv": "0.0.2", - "request": "2.85.0", + "request": "2.86.0", "urlgrey": "0.4.4" } }, @@ -3925,7 +3914,7 @@ "requires": { "dot-prop": "4.2.0", "graceful-fs": "4.1.11", - "make-dir": "1.2.0", + "make-dir": "1.3.0", "unique-string": "1.0.0", "write-file-atomic": "2.3.0", "xdg-basedir": "3.0.0" @@ -4165,7 +4154,7 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "4.1.2", + "lru-cache": "4.1.3", "shebang-command": "1.2.0", "which": "1.3.0" } @@ -4466,9 +4455,9 @@ "dev": true }, "diff-match-patch": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.0.tgz", - "integrity": "sha1-HMPIOkkNZ/ldkeOfatHy4Ia2MEg=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.1.tgz", + "integrity": "sha512-A0QEhr4PxGUMEtKxd6X+JLnOTFd3BfIPSDpsc4dMvj+CbSaErDwTpoTo/nFJDMSrjxLW4BiNq+FbNisAAHhWeQ==", "dev": true }, "doctrine": { @@ -4505,9 +4494,9 @@ "dev": true }, "domhandler": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", - "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "dev": true, "requires": { "domelementtype": "1.3.0" @@ -4575,11 +4564,10 @@ } }, "ecdsa-sig-formatter": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.9.tgz", - "integrity": "sha1-S8kmJ07Dtau1AW5+HWCSGsJisqE=", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz", + "integrity": "sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM=", "requires": { - "base64url": "2.0.0", "safe-buffer": "5.1.2" } }, @@ -4938,9 +4926,9 @@ "dev": true }, "espower": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/espower/-/espower-2.1.0.tgz", - "integrity": "sha1-zh7bPZhwKEH99ZbRy46FvcSujkg=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/espower/-/espower-2.1.1.tgz", + "integrity": "sha512-F4TY1qYJB1aUyzB03NsZksZzUQmQoEBaTUjRJGR30GxbkbjKI41NhCyYjrF+bGgWN7x/ZsczYppRpz/0WdI0ug==", "dev": true, "requires": { "array-find": "1.0.0", @@ -4948,7 +4936,7 @@ "escodegen": "1.9.1", "escope": "3.6.0", "espower-location-detector": "1.0.0", - "espurify": "1.7.0", + "espurify": "1.8.0", "estraverse": "4.2.0", "source-map": "0.5.7", "type-name": "2.0.2", @@ -5002,7 +4990,7 @@ "convert-source-map": "1.5.1", "empower-assert": "1.1.0", "escodegen": "1.9.1", - "espower": "2.1.0", + "espower": "2.1.1", "estraverse": "4.2.0", "merge-estraverse-visitors": "1.0.0", "multi-stage-sourcemap": "0.2.1", @@ -5027,9 +5015,9 @@ "dev": true }, "espurify": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/espurify/-/espurify-1.7.0.tgz", - "integrity": "sha1-HFz2y8zDLm9jk4C9T5kfq5up0iY=", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/espurify/-/espurify-1.8.0.tgz", + "integrity": "sha512-jdkJG9jswjKCCDmEridNUuIQei9algr+o66ZZ19610ZoBsiWLRsQGNYS4HGez3Z/DsR0lhANGAqiwBUclPuNag==", "dev": true, "requires": { "core-js": "2.5.6" @@ -5126,7 +5114,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "2.2.3" + "fill-range": "2.2.4" } }, "express": { @@ -5167,6 +5155,24 @@ "vary": "1.1.2" }, "dependencies": { + "body-parser": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", + "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "dev": true, + "requires": { + "bytes": "3.0.0", + "content-type": "1.0.4", + "debug": "2.6.9", + "depd": "1.1.2", + "http-errors": "1.6.3", + "iconv-lite": "0.4.19", + "on-finished": "2.3.0", + "qs": "6.5.1", + "raw-body": "2.3.2", + "type-is": "1.6.16" + } + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -5176,6 +5182,12 @@ "ms": "2.0.0" } }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", + "dev": true + }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -5188,6 +5200,44 @@ "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", "dev": true }, + "raw-body": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "dev": true, + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "unpipe": "1.0.0" + }, + "dependencies": { + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", + "dev": true + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "dev": true, + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.4.0" + } + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", + "dev": true + } + } + }, "safe-buffer": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", @@ -5220,7 +5270,7 @@ "dev": true, "requires": { "chardet": "0.4.2", - "iconv-lite": "0.4.19", + "iconv-lite": "0.4.23", "tmp": "0.0.33" } }, @@ -5308,14 +5358,14 @@ } }, "fill-range": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "dev": true, "requires": { "is-number": "2.1.0", "isobject": "2.1.0", - "randomatic": "1.1.7", + "randomatic": "3.0.0", "repeat-element": "1.1.2", "repeat-string": "1.6.1" } @@ -5359,7 +5409,7 @@ "dev": true, "requires": { "commondir": "1.0.1", - "make-dir": "1.2.0", + "make-dir": "1.3.0", "pkg-dir": "2.0.0" } }, @@ -5489,14 +5539,14 @@ "dev": true }, "fsevents": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.3.tgz", - "integrity": "sha512-X+57O5YkDTiEQGiw8i7wYc2nQgweIekqkepI8Q3y4wVlurgBt2SuwxTeYUYMZIGpLZH3r/TsMjczCMXE5ZOt7Q==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", "dev": true, "optional": true, "requires": { "nan": "2.10.0", - "node-pre-gyp": "0.9.1" + "node-pre-gyp": "0.10.0" }, "dependencies": { "abbrev": { @@ -5577,7 +5627,7 @@ } }, "deep-extend": { - "version": "0.4.2", + "version": "0.5.1", "bundled": true, "dev": true, "optional": true @@ -5755,7 +5805,7 @@ } }, "node-pre-gyp": { - "version": "0.9.1", + "version": "0.10.0", "bundled": true, "dev": true, "optional": true, @@ -5766,7 +5816,7 @@ "nopt": "4.0.1", "npm-packlist": "1.1.10", "npmlog": "4.1.2", - "rc": "1.2.6", + "rc": "1.2.7", "rimraf": "2.6.2", "semver": "5.5.0", "tar": "4.4.1" @@ -5864,12 +5914,12 @@ "optional": true }, "rc": { - "version": "1.2.6", + "version": "1.2.7", "bundled": true, "dev": true, "optional": true, "requires": { - "deep-extend": "0.4.2", + "deep-extend": "0.5.1", "ini": "1.3.5", "minimist": "1.2.0", "strip-json-comments": "2.0.1" @@ -6169,9 +6219,9 @@ "axios": "0.18.0", "gcp-metadata": "0.6.3", "gtoken": "2.3.0", - "jws": "3.1.4", + "jws": "3.1.5", "lodash.isstring": "4.0.1", - "lru-cache": "4.1.2", + "lru-cache": "4.1.3", "retry-axios": "0.3.2" } }, @@ -6183,7 +6233,7 @@ "async": "2.6.0", "gcp-metadata": "0.6.3", "google-auth-library": "1.4.0", - "request": "2.85.0" + "request": "2.86.0" } }, "google-p12-pem": { @@ -6262,7 +6312,7 @@ "requires": { "axios": "0.18.0", "google-p12-pem": "1.0.2", - "jws": "3.1.4", + "jws": "3.1.5", "mime": "2.3.1", "pify": "3.0.0" } @@ -6456,7 +6506,7 @@ "catbox-memory": "3.1.2", "heavy": "6.1.0", "hoek": "5.0.3", - "joi": "13.2.0", + "joi": "13.3.0", "mimos": "4.0.0", "podium": "3.1.2", "shot": "4.0.5", @@ -6564,7 +6614,7 @@ "requires": { "boom": "7.2.0", "hoek": "5.0.3", - "joi": "13.2.0" + "joi": "13.3.0" }, "dependencies": { "boom": { @@ -6624,7 +6674,7 @@ "dev": true, "requires": { "domelementtype": "1.3.0", - "domhandler": "2.4.1", + "domhandler": "2.4.2", "domutils": "1.7.0", "entities": "1.1.1", "inherits": "2.0.3", @@ -6704,10 +6754,13 @@ "dev": true }, "iconv-lite": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", - "dev": true + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dev": true, + "requires": { + "safer-buffer": "2.1.2" + } }, "ignore": { "version": "3.3.8", @@ -7208,9 +7261,9 @@ "dev": true }, "joi": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-13.2.0.tgz", - "integrity": "sha512-VUzQwyCrmT2lIpxBCYq26dcK9veCQzDh84gQnCtaxCa8ePohX8JZVVsIb+E66kCUUcIvzeIpifa6eZuzqTZ3NA==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-13.3.0.tgz", + "integrity": "sha512-iF6jEYVfBIoYXztYymia1JfuoVbxBNuOcwdbsdoGin9/jjhBLhonKmfTQOvePss8r8v4tU4JOcNmYPHZzKEFag==", "dev": true, "requires": { "hoek": "5.0.3", @@ -7718,23 +7771,21 @@ "dev": true }, "jwa": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.5.tgz", - "integrity": "sha1-oFUs4CIHQs1S4VN3SjKQXDDnVuU=", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.6.tgz", + "integrity": "sha512-tBO/cf++BUsJkYql/kBbJroKOgHWEigTKBAjjBEmrMGYd1QMBC74Hr4Wo2zCZw6ZrVhlJPvoMrkcOnlWR/DJfw==", "requires": { - "base64url": "2.0.0", "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.9", + "ecdsa-sig-formatter": "1.0.10", "safe-buffer": "5.1.2" } }, "jws": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.4.tgz", - "integrity": "sha1-+ei5M46KhHJ31kRLFGT2GIDgUKI=", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz", + "integrity": "sha512-GsCSexFADNQUr8T5HPJvayTjvPIfoyJPtLQBwn5a4WZQchcrPMPMAWcC1AzJVRDKyD6ZPROPAxgv6rfHViO4uQ==", "requires": { - "base64url": "2.0.0", - "jwa": "1.1.5", + "jwa": "1.1.6", "safe-buffer": "5.1.2" } }, @@ -8057,9 +8108,9 @@ "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==" }, "lolex": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.3.2.tgz", - "integrity": "sha512-A5pN2tkFj7H0dGIAM6MFvHKMJcPnjZsOMvR7ujCjfgW5TbV6H9vb1PgxLtHvjqNZTHsUolz+6/WEO0N1xNx2ng==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.6.0.tgz", + "integrity": "sha512-e1UtIo1pbrIqEXib/yMjHciyqkng5lc0rrIbytgjmRgDR9+2ceNIAcwOWSgylRjoEP9VdVguCSRwnNmlbnOUwA==", "dev": true }, "longest": { @@ -8094,18 +8145,18 @@ "dev": true }, "lru-cache": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz", - "integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { "pseudomap": "1.0.2", "yallist": "2.1.2" } }, "make-dir": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.2.0.tgz", - "integrity": "sha512-aNUAa4UMg/UougV25bbrU4ZaaKNjJ/3/xnvg/twpmKROPdKZPZ9wGgI0opdZzO8q/zUFawoUuixuOv33eZ61Iw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dev": true, "requires": { "pify": "3.0.0" @@ -8132,6 +8183,12 @@ "escape-string-regexp": "1.0.5" } }, + "math-random": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", + "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", + "dev": true + }, "md5-hex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-2.0.0.tgz", @@ -8617,15 +8674,15 @@ "requires": { "@sinonjs/formatio": "2.0.0", "just-extend": "1.1.27", - "lolex": "2.3.2", + "lolex": "2.6.0", "path-to-regexp": "1.7.0", "text-encoding": "0.6.4" } }, "nock": { - "version": "9.2.5", - "resolved": "https://registry.npmjs.org/nock/-/nock-9.2.5.tgz", - "integrity": "sha512-ciCpyEq72Ws6/yhdayDfd0mAb3eQ7/533xKmFlBQZ5CDwrL0/bddtSicfL7R07oyvPAuegQrR+9ctrlPEp0EjQ==", + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/nock/-/nock-9.2.6.tgz", + "integrity": "sha512-loyWSNToPH416mENYcqN/ORNwJvfMs+n1+kk9HS3zO/Eb/ci3TZqoNIWp5oYW9VIFh18jXHxnzYSsrXvA63RYA==", "dev": true, "requires": { "chai": "4.1.2", @@ -8747,9 +8804,9 @@ "dev": true }, "nyc": { - "version": "11.7.1", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.7.1.tgz", - "integrity": "sha512-EGePURSKUEpS1jWnEKAMhY+GWZzi7JC+f8iBDOATaOsLZW5hM/9eYx2dHGaEXa1ITvMm44CJugMksvP3NwMQMw==", + "version": "11.8.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.8.0.tgz", + "integrity": "sha512-PUFq1PSsx5OinSk5g5aaZygcDdI3QQT5XUlbR9QRMihtMS6w0Gm8xj4BxmKeeAlpQXC5M2DIhH16Y+KejceivQ==", "dev": true, "requires": { "archy": "1.0.0", @@ -8770,7 +8827,7 @@ "istanbul-reports": "1.4.0", "md5-hex": "1.3.0", "merge-source-map": "1.1.0", - "micromatch": "2.3.11", + "micromatch": "3.1.10", "mkdirp": "0.5.1", "resolve-from": "2.0.0", "rimraf": "2.6.2", @@ -8820,12 +8877,9 @@ "dev": true }, "arr-diff": { - "version": "2.0.0", + "version": "4.0.0", "bundled": true, - "dev": true, - "requires": { - "arr-flatten": "1.1.0" - } + "dev": true }, "arr-flatten": { "version": "1.1.0", @@ -8838,7 +8892,7 @@ "dev": true }, "array-unique": { - "version": "0.2.1", + "version": "0.3.2", "bundled": true, "dev": true }, @@ -8858,7 +8912,7 @@ "dev": true }, "atob": { - "version": "2.1.0", + "version": "2.1.1", "bundled": true, "dev": true }, @@ -8882,7 +8936,7 @@ "babel-types": "6.26.0", "detect-indent": "4.0.0", "jsesc": "1.3.0", - "lodash": "4.17.5", + "lodash": "4.17.10", "source-map": "0.5.7", "trim-right": "1.0.1" } @@ -8900,7 +8954,7 @@ "bundled": true, "dev": true, "requires": { - "core-js": "2.5.5", + "core-js": "2.5.6", "regenerator-runtime": "0.11.1" } }, @@ -8913,7 +8967,7 @@ "babel-traverse": "6.26.0", "babel-types": "6.26.0", "babylon": "6.18.0", - "lodash": "4.17.5" + "lodash": "4.17.10" } }, "babel-traverse": { @@ -8929,7 +8983,7 @@ "debug": "2.6.9", "globals": "9.18.0", "invariant": "2.2.4", - "lodash": "4.17.5" + "lodash": "4.17.10" } }, "babel-types": { @@ -8939,7 +8993,7 @@ "requires": { "babel-runtime": "6.26.0", "esutils": "2.0.2", - "lodash": "4.17.5", + "lodash": "4.17.10", "to-fast-properties": "1.0.3" } }, @@ -9023,13 +9077,30 @@ } }, "braces": { - "version": "1.8.5", + "version": "2.3.2", "bundled": true, "dev": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "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.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } } }, "builtin-modules": { @@ -9183,7 +9254,7 @@ "dev": true }, "core-js": { - "version": "2.5.5", + "version": "2.5.6", "bundled": true, "dev": true }, @@ -9192,7 +9263,7 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.2", + "lru-cache": "4.1.3", "which": "1.3.0" } }, @@ -9319,7 +9390,7 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.2", + "lru-cache": "4.1.3", "shebang-command": "1.2.0", "which": "1.3.0" } @@ -9327,19 +9398,35 @@ } }, "expand-brackets": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "requires": { - "is-posix-bracket": "0.1.1" - } - }, - "expand-range": { - "version": "1.8.2", + "version": "2.1.4", "bundled": true, "dev": true, "requires": { - "fill-range": "2.2.3" + "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" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } } }, "extend-shallow": { @@ -9362,28 +9449,88 @@ } }, "extglob": { - "version": "0.3.2", + "version": "2.0.4", "bundled": true, "dev": true, "requires": { - "is-extglob": "1.0.0" + "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" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } } }, - "filename-regex": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, "fill-range": { - "version": "2.2.3", + "version": "4.0.0", "bundled": true, "dev": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } } }, "find-cache-dir": { @@ -9409,14 +9556,6 @@ "bundled": true, "dev": true }, - "for-own": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "requires": { - "for-in": "1.0.2" - } - }, "foreground-child": { "version": "1.5.6", "bundled": true, @@ -9467,23 +9606,6 @@ "path-is-absolute": "1.0.1" } }, - "glob-base": { - "version": "0.3.0", - "bundled": true, - "dev": true, - "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" - } - }, - "glob-parent": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-glob": "2.0.1" - } - }, "globals": { "version": "9.18.0", "bundled": true, @@ -9670,29 +9792,11 @@ } } }, - "is-dotfile": { - "version": "1.0.3", - "bundled": true, - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "bundled": true, - "dev": true, - "requires": { - "is-primitive": "2.0.0" - } - }, "is-extendable": { "version": "0.1.1", "bundled": true, "dev": true }, - "is-extglob": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, "is-finite": { "version": "1.0.2", "bundled": true, @@ -9706,16 +9810,8 @@ "bundled": true, "dev": true }, - "is-glob": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - }, "is-number": { - "version": "2.1.0", + "version": "3.0.0", "bundled": true, "dev": true, "requires": { @@ -9752,16 +9848,6 @@ } } }, - "is-posix-bracket": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "is-primitive": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, "is-stream": { "version": "1.1.0", "bundled": true, @@ -9788,12 +9874,9 @@ "dev": true }, "isobject": { - "version": "2.1.0", + "version": "3.0.1", "bundled": true, - "dev": true, - "requires": { - "isarray": "1.0.0" - } + "dev": true }, "istanbul-lib-coverage": { "version": "1.2.0", @@ -9934,7 +10017,7 @@ } }, "lodash": { - "version": "4.17.5", + "version": "4.17.10", "bundled": true, "dev": true }, @@ -9952,7 +10035,7 @@ } }, "lru-cache": { - "version": "4.1.2", + "version": "4.1.3", "bundled": true, "dev": true, "requires": { @@ -10010,23 +10093,30 @@ } }, "micromatch": { - "version": "2.3.11", + "version": "3.1.10", "bundled": true, "dev": true, "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "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.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } } }, "mimic-fn": { @@ -10126,14 +10216,6 @@ "validate-npm-package-license": "3.0.3" } }, - "normalize-path": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "requires": { - "remove-trailing-separator": "1.1.0" - } - }, "npm-run-path": { "version": "2.0.2", "bundled": true, @@ -10187,15 +10269,6 @@ } } }, - "object.omit": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" - } - }, "object.pick": { "version": "1.3.0", "bundled": true, @@ -10269,17 +10342,6 @@ "bundled": true, "dev": true }, - "parse-glob": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" - } - }, "parse-json": { "version": "2.2.0", "bundled": true, @@ -10368,53 +10430,11 @@ "bundled": true, "dev": true }, - "preserve": { - "version": "0.2.0", - "bundled": true, - "dev": true - }, "pseudomap": { "version": "1.0.2", "bundled": true, "dev": true }, - "randomatic": { - "version": "1.1.7", - "bundled": true, - "dev": true, - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, "read-pkg": { "version": "1.1.0", "bundled": true, @@ -10450,14 +10470,6 @@ "bundled": true, "dev": true }, - "regex-cache": { - "version": "0.4.4", - "bundled": true, - "dev": true, - "requires": { - "is-equal-shallow": "0.1.3" - } - }, "regex-not": { "version": "1.0.2", "bundled": true, @@ -10467,11 +10479,6 @@ "safe-regex": "1.1.0" } }, - "remove-trailing-separator": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, "repeat-element": { "version": "1.1.2", "bundled": true, @@ -10701,7 +10708,7 @@ "bundled": true, "dev": true, "requires": { - "atob": "2.1.0", + "atob": "2.1.1", "decode-uri-component": "0.2.0", "resolve-url": "0.2.1", "source-map-url": "0.4.0", @@ -11357,7 +11364,7 @@ "bundled": true, "dev": true, "requires": { - "cliui": "4.0.0", + "cliui": "4.1.0", "decamelize": "1.2.0", "find-up": "2.1.0", "get-caller-file": "1.0.2", @@ -11382,7 +11389,7 @@ "dev": true }, "cliui": { - "version": "4.0.0", + "version": "4.1.0", "bundled": true, "dev": true, "requires": { @@ -11922,7 +11929,7 @@ "dev": true, "requires": { "hoek": "5.0.3", - "joi": "13.2.0" + "joi": "13.3.0" }, "dependencies": { "hoek": { @@ -11984,7 +11991,7 @@ "acorn": "4.0.13", "acorn-es7-plugin": "1.1.7", "core-js": "2.5.6", - "espurify": "1.7.0", + "espurify": "1.8.0", "estraverse": "4.2.0" }, "dependencies": { @@ -12044,7 +12051,7 @@ "dev": true, "requires": { "core-js": "2.5.6", - "diff-match-patch": "1.0.0", + "diff-match-patch": "1.0.1", "power-assert-renderer-base": "1.1.1", "stringifier": "1.3.0", "type-name": "2.0.2" @@ -12223,43 +12230,27 @@ "dev": true }, "randomatic": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz", + "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "4.0.0", + "kind-of": "6.0.2", + "math-random": "1.0.1" }, "dependencies": { "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true }, "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true } } }, @@ -12270,41 +12261,15 @@ "dev": true }, "raw-body": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", - "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", "dev": true, "requires": { "bytes": "3.0.0", - "http-errors": "1.6.2", - "iconv-lite": "0.4.19", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", "unpipe": "1.0.0" - }, - "dependencies": { - "depd": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", - "dev": true - }, - "http-errors": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", - "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", - "dev": true, - "requires": { - "depd": "1.1.1", - "inherits": "2.0.3", - "setprototypeof": "1.0.3", - "statuses": "1.5.0" - } - }, - "setprototypeof": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", - "dev": true - } } }, "rc": { @@ -12405,9 +12370,9 @@ } }, "regenerate": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", - "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", "dev": true }, "regenerator-runtime": { @@ -12437,7 +12402,7 @@ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "dev": true, "requires": { - "regenerate": "1.3.3", + "regenerate": "1.4.0", "regjsgen": "0.2.0", "regjsparser": "0.1.5" } @@ -12513,9 +12478,9 @@ } }, "request": { - "version": "2.85.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.85.0.tgz", - "integrity": "sha512-8H7Ehijd4js+s6wuVPLjwORxD4zeuyjYugprdOXlPSqaApmL/QOy+EB/beICHVCHkGMKNh5rvihb5ov+IDw4mg==", + "version": "2.86.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.86.0.tgz", + "integrity": "sha512-BQZih67o9r+Ys94tcIW4S7Uu8pthjrQVxhsZ/weOwHbDfACxvIyvnAbzFQxjy1jMtvFSzv5zf4my6cZsJBbVzw==", "requires": { "aws-sign2": "0.7.0", "aws4": "1.7.0", @@ -12535,7 +12500,6 @@ "performance-now": "2.1.0", "qs": "6.5.2", "safe-buffer": "5.1.2", - "stringstream": "0.0.5", "tough-cookie": "2.3.4", "tunnel-agent": "0.6.0", "uuid": "3.2.1" @@ -12623,9 +12587,9 @@ } }, "restify": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/restify/-/restify-7.1.1.tgz", - "integrity": "sha512-ijHZGOP1UhRhCU4EpI9WbcLXi4v2xe2/3iqPSLcamjZhL9SkZ8TUfpKLRWHZlxWfL2k6Doy10N1gOnvRS9m5qg==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/restify/-/restify-7.2.0.tgz", + "integrity": "sha512-UXYtu437a5TSim0PgjCiccdUfQS/00VC9gDxqR2/GKaW19OtY3DYDg3HByCAnyO5GiL2y0pBI572wGcxZGP26A==", "dev": true, "requires": { "assert-plus": "1.0.0", @@ -12638,7 +12602,7 @@ "formidable": "1.2.1", "http-signature": "1.2.0", "lodash": "4.17.10", - "lru-cache": "4.1.2", + "lru-cache": "4.1.3", "mime": "1.6.0", "negotiator": "0.6.1", "once": "1.4.0", @@ -12692,7 +12656,7 @@ "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-3.3.1.tgz", "integrity": "sha512-PjAmtWIxjNj4Co/6FRtBl8afRP3CxrrIAnUzb1dzydfROd+6xt7xAebFeskgQgkfFf8NmzrXIoaB3HxmswXyxw==", "requires": { - "request": "2.85.0", + "request": "2.86.0", "through2": "2.0.3" } }, @@ -12757,6 +12721,12 @@ "dev": true, "optional": true }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, "samsam": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz", @@ -12910,7 +12880,7 @@ "dev": true, "requires": { "hoek": "5.0.3", - "joi": "13.2.0" + "joi": "13.3.0" }, "dependencies": { "hoek": { @@ -12936,7 +12906,7 @@ "@sinonjs/formatio": "2.0.0", "diff": "3.5.0", "lodash.get": "4.4.2", - "lolex": "2.3.2", + "lolex": "2.6.0", "nise": "1.3.3", "supports-color": "5.4.0", "type-detect": "4.0.8" @@ -12987,9 +12957,9 @@ "dev": true }, "source-map-support": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.5.tgz", - "integrity": "sha512-mR7/Nd5l1z6g99010shcXJiNEaf3fEtmLhRB/sBcQVJGodcHCULPp2y4Sfa43Kv2zq7T+Izmfp/WHCR6dYkQCA==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.6.tgz", + "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", "dev": true, "requires": { "buffer-from": "1.0.0", @@ -13178,7 +13148,7 @@ "cryptiles": "4.1.1", "hoek": "5.0.3", "iron": "5.0.4", - "joi": "13.2.0" + "joi": "13.3.0" }, "dependencies": { "boom": { @@ -13278,11 +13248,6 @@ "type-name": "2.0.2" } }, - "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" - }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -13594,9 +13559,9 @@ "dev": true }, "tslib": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", - "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.1.tgz", + "integrity": "sha512-avfPS28HmGLLc2o4elcc2EIq2FcH++Yo5YxpBZi9Yw93BCTGFthI4HPE4Rpep6vSYQaK8e69PelM44tPj+RaQg==", "dev": true }, "tslint": { @@ -13615,8 +13580,8 @@ "minimatch": "3.0.4", "resolve": "1.7.1", "semver": "5.5.0", - "tslib": "1.9.0", - "tsutils": "2.26.2" + "tslib": "1.9.1", + "tsutils": "2.27.0" }, "dependencies": { "resolve": { @@ -13631,12 +13596,12 @@ } }, "tsutils": { - "version": "2.26.2", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.26.2.tgz", - "integrity": "sha512-uzwnhmrSbyinPCiwfzGsOY3IulBTwoky7r83HmZdz9QNCjhSCzavkh47KLWuU0zF2F2WbpmmzoJUIEiYyd+jEQ==", + "version": "2.27.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.27.0.tgz", + "integrity": "sha512-JcyX25oM9pFcb3zh60OqG1St8p/uSqC5Bgipdo3ieacB/Ao4dPhm7hAtKT9NrEu23CyYrrgJPV3CqYfo+/+T4w==", "dev": true, "requires": { - "tslib": "1.9.0" + "tslib": "1.9.1" } }, "tunnel-agent": { @@ -14190,7 +14155,7 @@ "requires": { "detect-indent": "5.0.0", "graceful-fs": "4.1.11", - "make-dir": "1.2.0", + "make-dir": "1.3.0", "pify": "3.0.0", "sort-keys": "2.0.0", "write-file-atomic": "2.3.0" From b24b2a23b6a8f59de01203386ef5ef750a6d2fda Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Fri, 18 May 2018 10:54:28 -0700 Subject: [PATCH 098/527] chore: upgrade to gts 0.6.0 (#123) --- .../error-reporting/.circleci/config.yml | 30 +- handwritten/error-reporting/package-lock.json | 5071 +++++++++-------- handwritten/error-reporting/package.json | 19 +- .../system-test/error-reporting.ts | 4 +- .../system-test/test-install.ts | 2 +- .../error-reporting/system-test/utils.ts | 4 +- .../test-servers/express_scaffold_server.ts | 2 +- .../test/test-servers/koa_scaffold_server.ts | 2 +- .../test/unit/build-stack-trace.ts | 2 +- .../test/unit/classes/error-message.ts | 2 +- .../classes/request-information-container.ts | 2 +- .../test/unit/configuration.ts | 4 +- .../test/unit/google-apis/auth-client.ts | 4 +- .../test/unit/interfaces/express.ts | 2 +- .../test/unit/interfaces/hapi.ts | 2 +- .../test/unit/interfaces/manual.ts | 2 +- .../test/unit/interfaces/restify.ts | 2 +- .../error-reporting/test/unit/logger.ts | 2 +- .../test/unit/populate-error-message.ts | 2 +- .../test/unit/request-extractors/express.ts | 4 +- .../test/unit/request-extractors/hapi.ts | 2 +- .../test/unit/request-extractors/koa.ts | 2 +- .../test/unit/request-extractors/manual.ts | 4 +- .../test/unit/service-configuration.ts | 2 +- handwritten/error-reporting/tsconfig.json | 3 +- 25 files changed, 2608 insertions(+), 2569 deletions(-) diff --git a/handwritten/error-reporting/.circleci/config.yml b/handwritten/error-reporting/.circleci/config.yml index 3a5990f3ceb..a7aef08dc3d 100644 --- a/handwritten/error-reporting/.circleci/config.yml +++ b/handwritten/error-reporting/.circleci/config.yml @@ -105,7 +105,7 @@ jobs: NPM_CONFIG_PREFIX: /home/node/.npm-global - run: name: Run unit tests. - command: npm test + command: npm run test-only node6: docker: - image: 'node:6' @@ -133,21 +133,9 @@ jobs: steps: - checkout - run: *remove_package_lock - - run: *npm_install_and_link - - run: &samples_npm_install_and_link - name: Link the module being tested to the samples. - command: | - cd samples/ - npm link @google-cloud/error-reporting - npm install - cd .. - environment: - NPM_CONFIG_PREFIX: /home/node/.npm-global - - run: - name: Run linting. - command: npm run lint - environment: - NPM_CONFIG_PREFIX: /home/node/.npm-global + - run: npm install + - run: cd samples && npm install && cd ../ + - run: npm run lint docs: docker: - image: 'node:8' @@ -173,7 +161,15 @@ jobs: -out .circleci/key.json \ -k "${SYSTEM_TESTS_ENCRYPTION_KEY}" - run: *npm_install_and_link - - run: *samples_npm_install_and_link + - run: &samples_npm_install_and_link + name: Link the module being tested to the samples. + command: | + cd samples/ + npm install + npm link @google-cloud/error-reporting + cd .. + environment: + NPM_CONFIG_PREFIX: /home/node/.npm-global - run: name: Run sample tests. command: npm run samples-test diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index 383e5edba24..26e4b0a6ed5 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -16,18 +16,18 @@ "integrity": "sha512-oWqTnIGXW3k72UFidXzW0ONlO7hnO9x02S/QReJ7NBGeiBH9cUHY9+EfV6C8PXC6YJH++WrliEq03wMSJGNZFg==", "dev": true, "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "package-hash": "1.2.0" + "babel-plugin-check-es2015-constants": "^6.8.0", + "babel-plugin-syntax-trailing-function-commas": "^6.20.0", + "babel-plugin-transform-async-to-generator": "^6.16.0", + "babel-plugin-transform-es2015-destructuring": "^6.19.0", + "babel-plugin-transform-es2015-function-name": "^6.9.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.18.0", + "babel-plugin-transform-es2015-parameters": "^6.21.0", + "babel-plugin-transform-es2015-spread": "^6.8.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.8.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.11.0", + "babel-plugin-transform-exponentiation-operator": "^6.8.0", + "package-hash": "^1.2.0" }, "dependencies": { "md5-hex": { @@ -36,7 +36,7 @@ "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "package-hash": { @@ -45,7 +45,7 @@ "integrity": "sha1-AD5WzVe3NqbtYRTMK4FUJnJ3DkQ=", "dev": true, "requires": { - "md5-hex": "1.3.0" + "md5-hex": "^1.3.0" } } } @@ -56,8 +56,8 @@ "integrity": "sha1-ze0RlqjY2TgaUJJAq5LpGl7Aafc=", "dev": true, "requires": { - "@ava/babel-plugin-throws-helper": "2.0.0", - "babel-plugin-espower": "2.4.0" + "@ava/babel-plugin-throws-helper": "^2.0.0", + "babel-plugin-espower": "^2.3.2" } }, "@ava/write-file-atomic": { @@ -66,9 +66,9 @@ "integrity": "sha512-BTNB3nGbEfJT+69wuqXFr/bQH7Vr7ihx2xGOMNqPgDGhwspoZhiWumDDZNjBy7AScmqS5CELIOGtPVXESyrnDA==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, "@concordance/react": { @@ -77,7 +77,7 @@ "integrity": "sha512-htrsRaQX8Iixlsek8zQU7tE8wcsTQJ5UhZkSPEA8slCDAisKpC/2VgU/ucPn32M5/LjGGXRaUEKvEw1Wiuu4zQ==", "dev": true, "requires": { - "arrify": "1.0.1" + "arrify": "^1.0.1" } }, "@google-cloud/common": { @@ -85,24 +85,24 @@ "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.17.0.tgz", "integrity": "sha512-HRZLSU762E6HaKoGfJGa8W95yRjb9rY7LePhjaHK9ILAnFacMuUGVamDbTHu1csZomm1g3tZTtXfX/aAhtie/Q==", "requires": { - "array-uniq": "1.0.3", - "arrify": "1.0.1", - "concat-stream": "1.6.2", - "create-error-class": "3.0.2", - "duplexify": "3.6.0", - "ent": "2.2.0", - "extend": "3.0.1", - "google-auto-auth": "0.10.1", - "is": "3.2.1", + "array-uniq": "^1.0.3", + "arrify": "^1.0.1", + "concat-stream": "^1.6.0", + "create-error-class": "^3.0.2", + "duplexify": "^3.5.0", + "ent": "^2.2.0", + "extend": "^3.0.1", + "google-auto-auth": "^0.10.0", + "is": "^3.2.0", "log-driver": "1.2.7", - "methmeth": "1.1.0", - "modelo": "4.2.3", - "request": "2.86.0", - "retry-request": "3.3.1", - "split-array-stream": "1.0.3", - "stream-events": "1.0.4", - "string-format-obj": "1.1.1", - "through2": "2.0.3" + "methmeth": "^1.1.0", + "modelo": "^4.2.0", + "request": "^2.79.0", + "retry-request": "^3.0.0", + "split-array-stream": "^1.0.0", + "stream-events": "^1.0.1", + "string-format-obj": "^1.1.0", + "through2": "^2.0.3" } }, "@google-cloud/nodejs-repo-tools": { @@ -119,7 +119,7 @@ "lodash": "4.17.5", "nyc": "11.4.1", "proxyquire": "1.8.0", - "semver": "5.5.0", + "semver": "^5.5.0", "sinon": "4.3.0", "string": "3.3.3", "supertest": "3.0.0", @@ -139,33 +139,33 @@ "integrity": "sha512-5eCZpvaksFVjP2rt1r60cfXmt3MUtsQDw8bAzNqNEr4WLvUMLgiVENMf/B9bE9YAX0mGVvaGA3v9IS9ekNqB1Q==", "dev": true, "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "1.0.1", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "default-require-extensions": "1.0.0", - "find-cache-dir": "0.1.1", - "find-up": "2.1.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "1.1.1", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "1.9.1", - "istanbul-lib-report": "1.1.2", - "istanbul-lib-source-maps": "1.2.2", - "istanbul-reports": "1.1.3", - "md5-hex": "1.3.0", - "merge-source-map": "1.0.4", - "micromatch": "2.3.11", - "mkdirp": "0.5.1", - "resolve-from": "2.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "4.1.1", - "yargs": "10.0.3", - "yargs-parser": "8.0.0" + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.3.0", + "debug-log": "^1.0.1", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^2.1.0", + "foreground-child": "^1.5.3", + "glob": "^7.0.6", + "istanbul-lib-coverage": "^1.1.1", + "istanbul-lib-hook": "^1.1.0", + "istanbul-lib-instrument": "^1.9.1", + "istanbul-lib-report": "^1.1.2", + "istanbul-lib-source-maps": "^1.2.2", + "istanbul-reports": "^1.1.3", + "md5-hex": "^1.2.0", + "merge-source-map": "^1.0.2", + "micromatch": "^2.3.11", + "mkdirp": "^0.5.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.5.4", + "signal-exit": "^3.0.1", + "spawn-wrap": "^1.4.2", + "test-exclude": "^4.1.1", + "yargs": "^10.0.3", + "yargs-parser": "^8.0.0" }, "dependencies": { "align-text": { @@ -173,9 +173,9 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" } }, "amdefine": { @@ -198,7 +198,7 @@ "bundled": true, "dev": true, "requires": { - "default-require-extensions": "1.0.0" + "default-require-extensions": "^1.0.0" } }, "archy": { @@ -211,7 +211,7 @@ "bundled": true, "dev": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -239,9 +239,9 @@ "bundled": true, "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" } }, "babel-generator": { @@ -249,14 +249,14 @@ "bundled": true, "dev": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.4", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.6", + "trim-right": "^1.0.1" } }, "babel-messages": { @@ -264,7 +264,7 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-runtime": { @@ -272,8 +272,8 @@ "bundled": true, "dev": true, "requires": { - "core-js": "2.5.3", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -281,11 +281,11 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.4" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { @@ -293,15 +293,15 @@ "bundled": true, "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, "babel-types": { @@ -309,10 +309,10 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -330,7 +330,7 @@ "bundled": true, "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -339,9 +339,9 @@ "bundled": true, "dev": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "builtin-modules": { @@ -354,9 +354,9 @@ "bundled": true, "dev": true, "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" } }, "camelcase": { @@ -371,8 +371,8 @@ "dev": true, "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chalk": { @@ -380,11 +380,11 @@ "bundled": true, "dev": true, "requires": { - "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" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "cliui": { @@ -393,8 +393,8 @@ "dev": true, "optional": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" }, "dependencies": { @@ -436,8 +436,8 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.1", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, "debug": { @@ -463,7 +463,7 @@ "bundled": true, "dev": true, "requires": { - "strip-bom": "2.0.0" + "strip-bom": "^2.0.0" } }, "detect-indent": { @@ -471,7 +471,7 @@ "bundled": true, "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "error-ex": { @@ -479,7 +479,7 @@ "bundled": true, "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "escape-string-regexp": { @@ -497,13 +497,13 @@ "bundled": true, "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" }, "dependencies": { "cross-spawn": { @@ -511,9 +511,9 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.1", - "shebang-command": "1.2.0", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } } } @@ -523,7 +523,7 @@ "bundled": true, "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -531,7 +531,7 @@ "bundled": true, "dev": true, "requires": { - "fill-range": "2.2.3" + "fill-range": "^2.1.0" } }, "extglob": { @@ -539,7 +539,7 @@ "bundled": true, "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "filename-regex": { @@ -552,11 +552,11 @@ "bundled": true, "dev": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^1.1.3", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" } }, "find-cache-dir": { @@ -564,9 +564,9 @@ "bundled": true, "dev": true, "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" } }, "find-up": { @@ -574,7 +574,7 @@ "bundled": true, "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "for-in": { @@ -587,7 +587,7 @@ "bundled": true, "dev": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "foreground-child": { @@ -595,8 +595,8 @@ "bundled": true, "dev": true, "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" + "cross-spawn": "^4", + "signal-exit": "^3.0.0" } }, "fs.realpath": { @@ -619,12 +619,12 @@ "bundled": true, "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-base": { @@ -632,8 +632,8 @@ "bundled": true, "dev": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -641,7 +641,7 @@ "bundled": true, "dev": true, "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "globals": { @@ -659,10 +659,10 @@ "bundled": true, "dev": true, "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" }, "dependencies": { "source-map": { @@ -670,7 +670,7 @@ "bundled": true, "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -680,7 +680,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { @@ -703,8 +703,8 @@ "bundled": true, "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -717,7 +717,7 @@ "bundled": true, "dev": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -740,7 +740,7 @@ "bundled": true, "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-dotfile": { @@ -753,7 +753,7 @@ "bundled": true, "dev": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -771,7 +771,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -779,7 +779,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-glob": { @@ -787,7 +787,7 @@ "bundled": true, "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-number": { @@ -795,7 +795,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-posix-bracket": { @@ -846,7 +846,7 @@ "bundled": true, "dev": true, "requires": { - "append-transform": "0.4.0" + "append-transform": "^0.4.0" } }, "istanbul-lib-instrument": { @@ -854,13 +854,13 @@ "bundled": true, "dev": true, "requires": { - "babel-generator": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.1.1", - "semver": "5.4.1" + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.1.1", + "semver": "^5.3.0" } }, "istanbul-lib-report": { @@ -868,10 +868,10 @@ "bundled": true, "dev": true, "requires": { - "istanbul-lib-coverage": "1.1.1", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" + "istanbul-lib-coverage": "^1.1.1", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" }, "dependencies": { "supports-color": { @@ -879,7 +879,7 @@ "bundled": true, "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -889,11 +889,11 @@ "bundled": true, "dev": true, "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.1.1", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.1.1", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" }, "dependencies": { "debug": { @@ -911,7 +911,7 @@ "bundled": true, "dev": true, "requires": { - "handlebars": "4.0.11" + "handlebars": "^4.0.3" } }, "js-tokens": { @@ -929,7 +929,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lazy-cache": { @@ -943,7 +943,7 @@ "bundled": true, "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "load-json-file": { @@ -951,11 +951,11 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" } }, "locate-path": { @@ -963,8 +963,8 @@ "bundled": true, "dev": true, "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" }, "dependencies": { "path-exists": { @@ -989,7 +989,7 @@ "bundled": true, "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "lru-cache": { @@ -997,8 +997,8 @@ "bundled": true, "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "md5-hex": { @@ -1006,7 +1006,7 @@ "bundled": true, "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { @@ -1019,7 +1019,7 @@ "bundled": true, "dev": true, "requires": { - "mimic-fn": "1.1.0" + "mimic-fn": "^1.0.0" } }, "merge-source-map": { @@ -1027,7 +1027,7 @@ "bundled": true, "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } }, "micromatch": { @@ -1035,19 +1035,19 @@ "bundled": true, "dev": true, "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" } }, "mimic-fn": { @@ -1060,7 +1060,7 @@ "bundled": true, "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -1086,10 +1086,10 @@ "bundled": true, "dev": true, "requires": { - "hosted-git-info": "2.5.0", - "is-builtin-module": "1.0.0", - "semver": "5.4.1", - "validate-npm-package-license": "3.0.1" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { @@ -1097,7 +1097,7 @@ "bundled": true, "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "npm-run-path": { @@ -1105,7 +1105,7 @@ "bundled": true, "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -1123,8 +1123,8 @@ "bundled": true, "dev": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "once": { @@ -1132,7 +1132,7 @@ "bundled": true, "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "optimist": { @@ -1140,8 +1140,8 @@ "bundled": true, "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "os-homedir": { @@ -1154,9 +1154,9 @@ "bundled": true, "dev": true, "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" } }, "p-finally": { @@ -1174,7 +1174,7 @@ "bundled": true, "dev": true, "requires": { - "p-limit": "1.1.0" + "p-limit": "^1.1.0" } }, "parse-glob": { @@ -1182,10 +1182,10 @@ "bundled": true, "dev": true, "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" } }, "parse-json": { @@ -1193,7 +1193,7 @@ "bundled": true, "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "path-exists": { @@ -1201,7 +1201,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { @@ -1224,9 +1224,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -1244,7 +1244,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { @@ -1252,7 +1252,7 @@ "bundled": true, "dev": true, "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" }, "dependencies": { "find-up": { @@ -1260,8 +1260,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } @@ -1281,8 +1281,8 @@ "bundled": true, "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { @@ -1290,7 +1290,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -1298,7 +1298,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -1308,7 +1308,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -1318,9 +1318,9 @@ "bundled": true, "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -1328,8 +1328,8 @@ "bundled": true, "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" }, "dependencies": { "find-up": { @@ -1337,8 +1337,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } @@ -1353,7 +1353,7 @@ "bundled": true, "dev": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "remove-trailing-separator": { @@ -1376,7 +1376,7 @@ "bundled": true, "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "require-directory": { @@ -1400,7 +1400,7 @@ "dev": true, "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { @@ -1408,7 +1408,7 @@ "bundled": true, "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "semver": { @@ -1426,7 +1426,7 @@ "bundled": true, "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -1454,12 +1454,12 @@ "bundled": true, "dev": true, "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.0" + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" } }, "spdx-correct": { @@ -1467,7 +1467,7 @@ "bundled": true, "dev": true, "requires": { - "spdx-license-ids": "1.2.2" + "spdx-license-ids": "^1.0.2" } }, "spdx-expression-parse": { @@ -1485,8 +1485,8 @@ "bundled": true, "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" }, "dependencies": { "ansi-regex": { @@ -1504,7 +1504,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -1514,7 +1514,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -1522,7 +1522,7 @@ "bundled": true, "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-eof": { @@ -1540,11 +1540,11 @@ "bundled": true, "dev": true, "requires": { - "arrify": "1.0.1", - "micromatch": "2.3.11", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" + "arrify": "^1.0.1", + "micromatch": "^2.3.11", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" } }, "to-fast-properties": { @@ -1563,9 +1563,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "yargs": { @@ -1574,9 +1574,9 @@ "dev": true, "optional": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" } } @@ -1593,8 +1593,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" } }, "which": { @@ -1602,7 +1602,7 @@ "bundled": true, "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -1626,8 +1626,8 @@ "bundled": true, "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "string-width": { @@ -1635,9 +1635,9 @@ "bundled": true, "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } } } @@ -1652,9 +1652,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, "y18n": { @@ -1672,18 +1672,18 @@ "bundled": true, "dev": true, "requires": { - "cliui": "3.2.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "8.0.0" + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^8.0.0" }, "dependencies": { "cliui": { @@ -1691,9 +1691,9 @@ "bundled": true, "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" }, "dependencies": { "string-width": { @@ -1701,9 +1701,9 @@ "bundled": true, "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } } } @@ -1715,7 +1715,7 @@ "bundled": true, "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { @@ -1733,9 +1733,9 @@ "integrity": "sha1-AtUUpb7ZhvBMuyCTrxZ0FTX3ntw=", "dev": true, "requires": { - "fill-keys": "1.0.2", - "module-not-found-error": "1.0.1", - "resolve": "1.1.7" + "fill-keys": "^1.0.2", + "module-not-found-error": "^1.0.0", + "resolve": "~1.1.7" } } } @@ -1746,10 +1746,10 @@ "integrity": "sha512-weIbJqTMfQ4r1YX85u54DKfjLZs2jwn1XZ6tIOP/pFgMwhIN5BAtaCp/1wn9DzyLsDR9tW0R2NIePcVJ45ivQQ==", "dev": true, "requires": { - "chalk": "0.4.0", - "date-time": "0.1.1", - "pretty-ms": "0.2.2", - "text-table": "0.2.0" + "chalk": "^0.4.0", + "date-time": "^0.1.1", + "pretty-ms": "^0.2.1", + "text-table": "^0.2.0" }, "dependencies": { "ansi-styles": { @@ -1764,9 +1764,9 @@ "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", "dev": true, "requires": { - "ansi-styles": "1.0.0", - "has-color": "0.1.7", - "strip-ansi": "0.1.1" + "ansi-styles": "~1.0.0", + "has-color": "~0.1.0", + "strip-ansi": "~0.1.0" } }, "pretty-ms": { @@ -1775,7 +1775,7 @@ "integrity": "sha1-2oeaaC/zOjcBEEbxPWJ/Z8c7hPY=", "dev": true, "requires": { - "parse-ms": "0.1.2" + "parse-ms": "^0.1.0" } }, "strip-ansi": { @@ -1807,7 +1807,7 @@ "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", "dev": true, "requires": { - "@types/node": "10.1.0" + "@types/node": "*" } }, "@types/body-parser": { @@ -1816,8 +1816,8 @@ "integrity": "sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w==", "dev": true, "requires": { - "@types/connect": "3.4.32", - "@types/node": "10.1.0" + "@types/connect": "*", + "@types/node": "*" } }, "@types/boom": { @@ -1832,8 +1832,8 @@ "integrity": "sha512-bxOF3fsm69ezKxdcJ7Oo/PsZMOJ+JIV/QJO2IADfScmR3sLulR88dpSnz6+q+9JJ1kD7dXFFgUrGRSKHLkOX7w==", "dev": true, "requires": { - "@types/events": "1.2.0", - "@types/node": "10.1.0" + "@types/events": "*", + "@types/node": "*" } }, "@types/caseless": { @@ -1848,7 +1848,7 @@ "integrity": "sha512-xcLIJdHkkqB6dyclgvFee8GjfeVYzTJAoFiOZlAnZ9R5mv/8VCnUuaQ4z/v3GrlKUL4j9YEbhOimtFawGBe4ng==", "dev": true, "requires": { - "@types/boom": "4.3.10" + "@types/boom": "^4" } }, "@types/connect": { @@ -1857,7 +1857,7 @@ "integrity": "sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg==", "dev": true, "requires": { - "@types/node": "10.1.0" + "@types/node": "*" } }, "@types/cookies": { @@ -1866,10 +1866,10 @@ "integrity": "sha512-ku6IvbucEyuC6i4zAVK/KnuzWNXdbFd1HkXlNLg/zhWDGTtQT5VhumiPruB/BHW34PWVFwyfwGftDQHfWNxu3Q==", "dev": true, "requires": { - "@types/connect": "3.4.32", - "@types/express": "4.11.1", - "@types/keygrip": "1.0.1", - "@types/node": "10.1.0" + "@types/connect": "*", + "@types/express": "*", + "@types/keygrip": "*", + "@types/node": "*" } }, "@types/events": { @@ -1884,9 +1884,9 @@ "integrity": "sha512-ttWle8cnPA5rAelauSWeWJimtY2RsUf2aspYZs7xPHiWgOlPn6nnUfBMtrkcnjFJuIHJF4gNOdVvpLK2Zmvh6g==", "dev": true, "requires": { - "@types/body-parser": "1.17.0", - "@types/express-serve-static-core": "4.11.1", - "@types/serve-static": "1.13.2" + "@types/body-parser": "*", + "@types/express-serve-static-core": "*", + "@types/serve-static": "*" } }, "@types/express-serve-static-core": { @@ -1895,8 +1895,8 @@ "integrity": "sha512-EehCl3tpuqiM8RUb+0255M8PhhSwTtLfmO7zBBdv0ay/VTd/zmrqDfQdZFsa5z/PVMbH2yCMZPXsnrImpATyIw==", "dev": true, "requires": { - "@types/events": "1.2.0", - "@types/node": "10.1.0" + "@types/events": "*", + "@types/node": "*" } }, "@types/extend": { @@ -1911,7 +1911,7 @@ "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", "dev": true, "requires": { - "@types/node": "10.1.0" + "@types/node": "*" } }, "@types/glob": { @@ -1920,9 +1920,9 @@ "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", "dev": true, "requires": { - "@types/events": "1.2.0", - "@types/minimatch": "3.0.3", - "@types/node": "10.1.0" + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" } }, "@types/hapi": { @@ -1931,14 +1931,14 @@ "integrity": "sha512-VeWocvlYrFINg4ZloxSPkg9qtd9aHMkH1Lt4bPqguSLSTrd51D67tcz8+crhsWsClViTylB6deRatxZzOnly7g==", "dev": true, "requires": { - "@types/boom": "4.3.10", - "@types/catbox": "7.1.6", - "@types/events": "1.2.0", - "@types/joi": "13.0.8", - "@types/mimos": "3.0.1", - "@types/node": "10.1.0", - "@types/podium": "1.0.0", - "@types/shot": "3.4.0" + "@types/boom": "^4", + "@types/catbox": "^7", + "@types/events": "*", + "@types/joi": "*", + "@types/mimos": "*", + "@types/node": "*", + "@types/podium": "*", + "@types/shot": "*" } }, "@types/http-assert": { @@ -1971,13 +1971,13 @@ "integrity": "sha512-emzrfiyQFMtx/dPMVhEMM1GU/p7QbRYWgubp1VGsR+bIC/53ehDf5IATM2fEZhoyHPeLuYyQVAjSPc/YqoWMSQ==", "dev": true, "requires": { - "@types/accepts": "1.3.5", - "@types/cookies": "0.7.1", - "@types/events": "1.2.0", - "@types/http-assert": "1.2.2", - "@types/keygrip": "1.0.1", - "@types/koa-compose": "3.2.2", - "@types/node": "10.1.0" + "@types/accepts": "*", + "@types/cookies": "*", + "@types/events": "*", + "@types/http-assert": "*", + "@types/keygrip": "*", + "@types/koa-compose": "*", + "@types/node": "*" } }, "@types/koa-compose": { @@ -1998,7 +1998,7 @@ "integrity": "sha512-L8D6y0a88Uv3/gdqUpmfHPGSFo676ggbtl5an3FgR4AzbvR+PKNdUMPr6F6Q/U3n3lCoCoV+WPt1vqJGbgPZ6Q==", "dev": true, "requires": { - "@types/lodash": "4.14.108" + "@types/lodash": "*" } }, "@types/lodash.foreach": { @@ -2007,7 +2007,7 @@ "integrity": "sha512-Fpkdtv1C15HQmFOOlikhWk72Bl93hcJtwrO7bbLABV/rkM1qSDKk4p8Wizt/LsAalr8WfbV0MuQct3IfJZkfug==", "dev": true, "requires": { - "@types/lodash": "4.14.108" + "@types/lodash": "*" } }, "@types/lodash.has": { @@ -2016,7 +2016,7 @@ "integrity": "sha512-McmKJoXdSxMYIQzVWKSEGrHnTwJ1ErqXvsTQjFeGEhBmypgCjuANDSqxl4LKaKcoF4mNxMqSzH7wP4yQ0deLeQ==", "dev": true, "requires": { - "@types/lodash": "4.14.108" + "@types/lodash": "*" } }, "@types/lodash.indexof": { @@ -2025,7 +2025,7 @@ "integrity": "sha512-2emfoGFYjwEyQercgS7+7sNwoLnI3VMMXbWTu3dJeVsXxif7xHmVKaFEzc1nSluBCiZKsNM8MipvXAm+Z0L5dg==", "dev": true, "requires": { - "@types/lodash": "4.14.108" + "@types/lodash": "*" } }, "@types/lodash.maxby": { @@ -2034,7 +2034,7 @@ "integrity": "sha512-5AMk6874T1RMxtWkW0I4ORFptU508mTb8jYG0gaNCMDzX6kLn/VNQXewL6dasZd4dj/hSbM8dt7msLuI3rSIPQ==", "dev": true, "requires": { - "@types/lodash": "4.14.108" + "@types/lodash": "*" } }, "@types/lodash.merge": { @@ -2043,7 +2043,7 @@ "integrity": "sha512-bOCCutkbehfCeiSqJO5XcVKjsJvX28dgvjhs4aMmBAHAsOy2oOJQwHuIZ0elI1E94qQIdEsCvz8oLgUumd6teA==", "dev": true, "requires": { - "@types/lodash": "4.14.108" + "@types/lodash": "*" } }, "@types/lodash.omit": { @@ -2052,7 +2052,7 @@ "integrity": "sha512-a6VbeE+JjMQ3rKsQVRjle02E+iKPTsT7izzFRk4xJvv4TBcO85Lrpo+8n6iqsiH8yZ8mHy0LOmx7MVgO8OfovQ==", "dev": true, "requires": { - "@types/lodash": "4.14.108" + "@types/lodash": "*" } }, "@types/lodash.omitby": { @@ -2061,7 +2061,7 @@ "integrity": "sha512-IfMZru9AegVIu0lkOXc/ncCOR3zzC6FKTVuBHBd9PkmKbOCn5zFORT22Wf/fZ9SBr2HmaYLPkFhf5C7A7k/N9A==", "dev": true, "requires": { - "@types/lodash": "4.14.108" + "@types/lodash": "*" } }, "@types/lodash.pick": { @@ -2070,7 +2070,7 @@ "integrity": "sha512-7VR26qH/bzRBn8DN6HKWYwBB6dNo1dNSdc0nYQwPp5tua6u2dpHHCFccszvFKBdR2CjSEbL5hsqQul03P4COjA==", "dev": true, "requires": { - "@types/lodash": "4.14.108" + "@types/lodash": "*" } }, "@types/lodash.random": { @@ -2079,7 +2079,7 @@ "integrity": "sha512-JMCA9llou2Ye9mhz0H/7DaPrJ6PgmRb6ClnPGPzfoX7JUu9Q6NuRZON5INrTQH5LWahzqaZdeMwHyn8MGRkXoA==", "dev": true, "requires": { - "@types/lodash": "4.14.108" + "@types/lodash": "*" } }, "@types/lodash.without": { @@ -2088,7 +2088,7 @@ "integrity": "sha512-oD30pRigg97PfyF8u3WGkRnn3MPS/f2pwYf0s0dNeGOeScbZ1bo4BYBK7dab/lpX6EbUjoWAtLLMQW+LxlJpcQ==", "dev": true, "requires": { - "@types/lodash": "4.14.108" + "@types/lodash": "*" } }, "@types/mime": { @@ -2109,7 +2109,7 @@ "integrity": "sha512-MATIRH4VMIJki8lcYUZdNQEHuAG7iQ1FWwoLgxV+4fUOly2xZYdhHtGgvQyWiTeJqq2tZbE0nOOgZD6pR0FpNQ==", "dev": true, "requires": { - "@types/mime-db": "1.27.0" + "@types/mime-db": "*" } }, "@types/minimatch": { @@ -2130,7 +2130,7 @@ "integrity": "sha512-TeiJ7uvv/92ugSqZ0v9l0eNXzutlki0aK+R1K5bfA5SYUil46ITlxLW4iNTCf55P4L5weCmaOdtxGeGWvudwPg==", "dev": true, "requires": { - "@types/node": "10.1.0" + "@types/node": "*" } }, "@types/nock": { @@ -2139,13 +2139,13 @@ "integrity": "sha512-S8rJ+SaW82ICX87pZP62UcMifrMfjEdqNzSp+llx4YcvKw6bO650Ye6HwTqER1Dar3S40GIZECQisOrAICDCjA==", "dev": true, "requires": { - "@types/node": "10.1.0" + "@types/node": "*" } }, "@types/node": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.1.0.tgz", - "integrity": "sha512-sELcX/cJHwRp8kn4hYSvBxKGJ+ubl3MvS8VJQe5gz/sp7CifYxsiCxIJ35wMIYyGVMgfO2AzRa8UcVReAcJRlw==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.1.1.tgz", + "integrity": "sha512-n7wxy8r2tjVcrzZoKJlyZmi1C1VhXGHAGhDEO1iqp7fbsTSsDF3dVA50KFsPg77EXqzNJqbzcna8Mi4m7a1lyw==", "dev": true }, "@types/once": { @@ -2178,10 +2178,10 @@ "integrity": "sha512-/KXM5oev+nNCLIgBjkwbk8VqxmzI56woD4VUxn95O+YeQ8hJzcSmIZ1IN3WexiqBb6srzDo2bdMbsXxgXNkz5Q==", "dev": true, "requires": { - "@types/caseless": "0.12.1", - "@types/form-data": "2.2.1", - "@types/node": "10.1.0", - "@types/tough-cookie": "2.3.3" + "@types/caseless": "*", + "@types/form-data": "*", + "@types/node": "*", + "@types/tough-cookie": "*" } }, "@types/restify": { @@ -2190,9 +2190,9 @@ "integrity": "sha512-7nqnFv+M4w0KYajdb0sGy0C5k5OYvPLOPMbacNOM8I2Xm/UQpFnOUluwkkM1FyblVrhgfwHEHVUUZW1VWTXeAQ==", "dev": true, "requires": { - "@types/bunyan": "1.8.4", - "@types/node": "10.1.0", - "@types/spdy": "3.4.4" + "@types/bunyan": "*", + "@types/node": "*", + "@types/spdy": "*" } }, "@types/rimraf": { @@ -2201,8 +2201,8 @@ "integrity": "sha512-Hm/bnWq0TCy7jmjeN5bKYij9vw5GrDFWME4IuxV08278NtU/VdGbzsBohcCUJ7+QMqmUq5hpRKB39HeQWJjztQ==", "dev": true, "requires": { - "@types/glob": "5.0.35", - "@types/node": "10.1.0" + "@types/glob": "*", + "@types/node": "*" } }, "@types/serve-static": { @@ -2211,8 +2211,8 @@ "integrity": "sha512-/BZ4QRLpH/bNYgZgwhKEh+5AsboDBcUdlBYgzoLX0fpj3Y2gp6EApyOlM3bK53wQS/OE1SrdSYBAbux2D1528Q==", "dev": true, "requires": { - "@types/express-serve-static-core": "4.11.1", - "@types/mime": "2.0.0" + "@types/express-serve-static-core": "*", + "@types/mime": "*" } }, "@types/shot": { @@ -2221,7 +2221,7 @@ "integrity": "sha1-RZR3xRh9Pr0wNmCrCZ5+ng87ZW8=", "dev": true, "requires": { - "@types/node": "10.1.0" + "@types/node": "*" } }, "@types/spdy": { @@ -2230,7 +2230,7 @@ "integrity": "sha512-N9LBlbVRRYq6HgYpPkqQc3a9HJ/iEtVZToW6xlTtJiMhmRJ7jJdV7TaZQJw/Ve/1ePUsQiCTDc4JMuzzag94GA==", "dev": true, "requires": { - "@types/node": "10.1.0" + "@types/node": "*" } }, "@types/tmp": { @@ -2257,8 +2257,8 @@ "integrity": "sha512-bghLXFkCOsC1Y2TZ51etWfKDs6q249SAoHTZVfzWWdlZxoij+mgkj9AmUJWQpDY48TfnrTDIe43Xem4zdMe7mQ==", "dev": true, "requires": { - "boom": "7.2.0", - "hoek": "5.0.3" + "boom": "7.x.x", + "hoek": "5.x.x" }, "dependencies": { "boom": { @@ -2267,7 +2267,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "hoek": { @@ -2284,7 +2284,7 @@ "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "dev": true, "requires": { - "mime-types": "2.1.18", + "mime-types": "~2.1.18", "negotiator": "0.6.1" } }, @@ -2306,7 +2306,7 @@ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "dev": true, "requires": { - "acorn": "3.3.0" + "acorn": "^3.0.4" }, "dependencies": { "acorn": { @@ -2322,10 +2322,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ajv-keywords": { @@ -2340,9 +2340,9 @@ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" } }, "amdefine": { @@ -2357,7 +2357,7 @@ "integrity": "sha512-4UqoM8xQjwkQ78oiU4NbBK0UgYqeKMAKmwE4ec7Rz3rGU8ZEBFxzgF2sUYKOAlqIXExBDYLN6y1ShF5yQ4hwLQ==", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" }, "dependencies": { "hoek": { @@ -2374,7 +2374,7 @@ "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "dev": true, "requires": { - "string-width": "2.1.1" + "string-width": "^2.0.0" } }, "ansi-escapes": { @@ -2395,7 +2395,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "^1.9.0" } }, "any-promise": { @@ -2410,8 +2410,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "dev": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "argparse": { @@ -2420,7 +2420,7 @@ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "argv": { @@ -2435,7 +2435,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-exclude": { @@ -2486,7 +2486,7 @@ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -2526,7 +2526,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", "requires": { - "lodash": "4.17.10" + "lodash": "^4.14.0" } }, "async-each": { @@ -2552,89 +2552,89 @@ "integrity": "sha512-4lGNJCf6xL8SvsKVEKxEE46se7JAUIAZoKHw9itTQuwcsydhpAMkBs5gOOiWiwt0JKNIuXWc2/r4r8ZdcNrBEw==", "dev": true, "requires": { - "@ava/babel-preset-stage-4": "1.1.0", - "@ava/babel-preset-transform-test-files": "3.0.0", - "@ava/write-file-atomic": "2.2.0", - "@concordance/react": "1.0.0", - "@ladjs/time-require": "0.1.4", - "ansi-escapes": "3.1.0", - "ansi-styles": "3.2.1", - "arr-flatten": "1.1.0", - "array-union": "1.0.2", - "array-uniq": "1.0.3", - "arrify": "1.0.1", - "auto-bind": "1.2.0", - "ava-init": "0.2.1", - "babel-core": "6.26.3", - "babel-generator": "6.26.1", - "babel-plugin-syntax-object-rest-spread": "6.13.0", - "bluebird": "3.5.1", - "caching-transform": "1.0.1", - "chalk": "2.4.1", - "chokidar": "1.7.0", - "clean-stack": "1.3.0", - "clean-yaml-object": "0.1.0", - "cli-cursor": "2.1.0", - "cli-spinners": "1.3.1", - "cli-truncate": "1.1.0", - "co-with-promise": "4.6.0", - "code-excerpt": "2.1.1", - "common-path-prefix": "1.0.0", - "concordance": "3.0.0", - "convert-source-map": "1.5.1", - "core-assert": "0.2.1", - "currently-unhandled": "0.4.1", - "debug": "3.1.0", - "dot-prop": "4.2.0", - "empower-core": "0.6.2", - "equal-length": "1.0.1", - "figures": "2.0.0", - "find-cache-dir": "1.0.0", - "fn-name": "2.0.1", - "get-port": "3.2.0", - "globby": "6.1.0", - "has-flag": "2.0.0", - "hullabaloo-config-manager": "1.1.1", - "ignore-by-default": "1.0.1", - "import-local": "0.1.1", - "indent-string": "3.2.0", - "is-ci": "1.1.0", - "is-generator-fn": "1.0.0", - "is-obj": "1.0.1", - "is-observable": "1.1.0", - "is-promise": "2.1.0", - "last-line-stream": "1.0.0", - "lodash.clonedeepwith": "4.5.0", - "lodash.debounce": "4.0.8", - "lodash.difference": "4.5.0", - "lodash.flatten": "4.4.0", - "loud-rejection": "1.6.0", - "make-dir": "1.3.0", - "matcher": "1.1.0", - "md5-hex": "2.0.0", - "meow": "3.7.0", - "ms": "2.0.0", - "multimatch": "2.1.0", - "observable-to-promise": "0.5.0", - "option-chain": "1.0.0", - "package-hash": "2.0.0", - "pkg-conf": "2.1.0", - "plur": "2.1.2", - "pretty-ms": "3.1.0", - "require-precompiled": "0.1.0", - "resolve-cwd": "2.0.0", - "safe-buffer": "5.1.2", - "semver": "5.5.0", - "slash": "1.0.0", - "source-map-support": "0.5.6", - "stack-utils": "1.0.1", - "strip-ansi": "4.0.0", - "strip-bom-buf": "1.0.0", - "supertap": "1.0.0", - "supports-color": "5.4.0", - "trim-off-newlines": "1.0.1", - "unique-temp-dir": "1.0.0", - "update-notifier": "2.5.0" + "@ava/babel-preset-stage-4": "^1.1.0", + "@ava/babel-preset-transform-test-files": "^3.0.0", + "@ava/write-file-atomic": "^2.2.0", + "@concordance/react": "^1.0.0", + "@ladjs/time-require": "^0.1.4", + "ansi-escapes": "^3.0.0", + "ansi-styles": "^3.1.0", + "arr-flatten": "^1.0.1", + "array-union": "^1.0.1", + "array-uniq": "^1.0.2", + "arrify": "^1.0.0", + "auto-bind": "^1.1.0", + "ava-init": "^0.2.0", + "babel-core": "^6.17.0", + "babel-generator": "^6.26.0", + "babel-plugin-syntax-object-rest-spread": "^6.13.0", + "bluebird": "^3.0.0", + "caching-transform": "^1.0.0", + "chalk": "^2.0.1", + "chokidar": "^1.4.2", + "clean-stack": "^1.1.1", + "clean-yaml-object": "^0.1.0", + "cli-cursor": "^2.1.0", + "cli-spinners": "^1.0.0", + "cli-truncate": "^1.0.0", + "co-with-promise": "^4.6.0", + "code-excerpt": "^2.1.1", + "common-path-prefix": "^1.0.0", + "concordance": "^3.0.0", + "convert-source-map": "^1.5.1", + "core-assert": "^0.2.0", + "currently-unhandled": "^0.4.1", + "debug": "^3.0.1", + "dot-prop": "^4.1.0", + "empower-core": "^0.6.1", + "equal-length": "^1.0.0", + "figures": "^2.0.0", + "find-cache-dir": "^1.0.0", + "fn-name": "^2.0.0", + "get-port": "^3.0.0", + "globby": "^6.0.0", + "has-flag": "^2.0.0", + "hullabaloo-config-manager": "^1.1.0", + "ignore-by-default": "^1.0.0", + "import-local": "^0.1.1", + "indent-string": "^3.0.0", + "is-ci": "^1.0.7", + "is-generator-fn": "^1.0.0", + "is-obj": "^1.0.0", + "is-observable": "^1.0.0", + "is-promise": "^2.1.0", + "last-line-stream": "^1.0.0", + "lodash.clonedeepwith": "^4.5.0", + "lodash.debounce": "^4.0.3", + "lodash.difference": "^4.3.0", + "lodash.flatten": "^4.2.0", + "loud-rejection": "^1.2.0", + "make-dir": "^1.0.0", + "matcher": "^1.0.0", + "md5-hex": "^2.0.0", + "meow": "^3.7.0", + "ms": "^2.0.0", + "multimatch": "^2.1.0", + "observable-to-promise": "^0.5.0", + "option-chain": "^1.0.0", + "package-hash": "^2.0.0", + "pkg-conf": "^2.0.0", + "plur": "^2.0.0", + "pretty-ms": "^3.0.0", + "require-precompiled": "^0.1.0", + "resolve-cwd": "^2.0.0", + "safe-buffer": "^5.1.1", + "semver": "^5.4.1", + "slash": "^1.0.0", + "source-map-support": "^0.5.0", + "stack-utils": "^1.0.1", + "strip-ansi": "^4.0.0", + "strip-bom-buf": "^1.0.0", + "supertap": "^1.0.0", + "supports-color": "^5.0.0", + "trim-off-newlines": "^1.0.1", + "unique-temp-dir": "^1.0.0", + "update-notifier": "^2.3.0" } }, "ava-init": { @@ -2643,11 +2643,11 @@ "integrity": "sha512-lXwK5LM+2g1euDRqW1mcSX/tqzY1QU7EjKpqayFPPtNRmbSYZ8RzPO5tqluTToijmtjp2M+pNpVdbcHssC4glg==", "dev": true, "requires": { - "arr-exclude": "1.0.0", - "execa": "0.7.0", - "has-yarn": "1.0.0", - "read-pkg-up": "2.0.0", - "write-pkg": "3.1.0" + "arr-exclude": "^1.0.0", + "execa": "^0.7.0", + "has-yarn": "^1.0.0", + "read-pkg-up": "^2.0.0", + "write-pkg": "^3.1.0" } }, "aws-sign2": { @@ -2665,8 +2665,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz", "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=", "requires": { - "follow-redirects": "1.4.1", - "is-buffer": "1.1.6" + "follow-redirects": "^1.3.0", + "is-buffer": "^1.1.5" } }, "b64": { @@ -2681,9 +2681,9 @@ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" }, "dependencies": { "ansi-styles": { @@ -2698,11 +2698,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "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" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "strip-ansi": { @@ -2711,7 +2711,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -2728,25 +2728,25 @@ "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.1", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.5.1", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.10", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" }, "dependencies": { "debug": { @@ -2766,14 +2766,14 @@ "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "dev": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" }, "dependencies": { "jsesc": { @@ -2790,9 +2790,9 @@ "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "dev": true, "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-call-delegate": { @@ -2801,10 +2801,10 @@ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "dev": true, "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-explode-assignable-expression": { @@ -2813,9 +2813,9 @@ "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-function-name": { @@ -2824,11 +2824,11 @@ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "dev": true, "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-get-function-arity": { @@ -2837,8 +2837,8 @@ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-hoist-variables": { @@ -2847,8 +2847,8 @@ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-regex": { @@ -2857,9 +2857,9 @@ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-remap-async-to-generator": { @@ -2868,11 +2868,11 @@ "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helpers": { @@ -2881,8 +2881,8 @@ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-messages": { @@ -2891,7 +2891,7 @@ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { @@ -2900,7 +2900,7 @@ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-espower": { @@ -2909,13 +2909,13 @@ "integrity": "sha512-/+SRpy7pKgTI28oEHfn1wkuM5QFAdRq8WNsOOih1dVrdV6A/WbNbRZyl0eX5eyDgtb0lOE27PeDFuCX2j8OxVg==", "dev": true, "requires": { - "babel-generator": "6.26.1", - "babylon": "6.18.0", - "call-matcher": "1.0.1", - "core-js": "2.5.6", - "espower-location-detector": "1.0.0", - "espurify": "1.8.0", - "estraverse": "4.2.0" + "babel-generator": "^6.1.0", + "babylon": "^6.1.0", + "call-matcher": "^1.0.0", + "core-js": "^2.0.0", + "espower-location-detector": "^1.0.0", + "espurify": "^1.6.0", + "estraverse": "^4.1.1" } }, "babel-plugin-syntax-async-functions": { @@ -2948,9 +2948,9 @@ "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "dev": true, "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-destructuring": { @@ -2959,7 +2959,7 @@ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -2968,9 +2968,9 @@ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -2979,10 +2979,10 @@ "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "dev": true, "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -2991,12 +2991,12 @@ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "dev": true, "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-spread": { @@ -3005,7 +3005,7 @@ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -3014,9 +3014,9 @@ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "dev": true, "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -3025,9 +3025,9 @@ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "dev": true, "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -3036,9 +3036,9 @@ "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "dev": true, "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-strict-mode": { @@ -3047,8 +3047,8 @@ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-register": { @@ -3057,13 +3057,13 @@ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "dev": true, "requires": { - "babel-core": "6.26.3", - "babel-runtime": "6.26.0", - "core-js": "2.5.6", - "home-or-tmp": "2.0.0", - "lodash": "4.17.10", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" }, "dependencies": { "source-map-support": { @@ -3072,7 +3072,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } } } @@ -3083,8 +3083,8 @@ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.5.6", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -3093,11 +3093,11 @@ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { @@ -3106,15 +3106,15 @@ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.10" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" }, "dependencies": { "debug": { @@ -3134,10 +3134,10 @@ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -3158,7 +3158,7 @@ "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "big-time": { @@ -3186,15 +3186,15 @@ "dev": true, "requires": { "bytes": "3.0.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.3", + "depd": "~1.1.2", + "http-errors": "~1.6.3", "iconv-lite": "0.4.23", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.5.2", "raw-body": "2.3.3", - "type-is": "1.6.16" + "type-is": "~1.6.16" }, "dependencies": { "debug": { @@ -3213,7 +3213,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", "requires": { - "hoek": "4.2.1" + "hoek": "4.x.x" } }, "bounce": { @@ -3222,8 +3222,8 @@ "integrity": "sha512-8syCGe8B2/WC53118/F/tFy5aW00j+eaGPXmAUP7iBhxc+EBZZxS1vKelWyBCH6IqojgS2t1gF0glH30qAJKEw==", "dev": true, "requires": { - "boom": "7.2.0", - "hoek": "5.0.3" + "boom": "7.x.x", + "hoek": "5.x.x" }, "dependencies": { "boom": { @@ -3232,7 +3232,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "hoek": { @@ -3249,13 +3249,13 @@ "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", "dev": true, "requires": { - "ansi-align": "2.0.0", - "camelcase": "4.1.0", - "chalk": "2.4.1", - "cli-boxes": "1.0.0", - "string-width": "2.1.1", - "term-size": "1.2.0", - "widest-line": "2.0.0" + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" }, "dependencies": { "camelcase": { @@ -3272,7 +3272,7 @@ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -3282,9 +3282,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "browser-stdout": { @@ -3327,10 +3327,10 @@ "integrity": "sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=", "dev": true, "requires": { - "dtrace-provider": "0.8.6", - "moment": "2.22.1", - "mv": "2.1.1", - "safe-json-stringify": "1.1.0" + "dtrace-provider": "~0.8", + "moment": "^2.10.6", + "mv": "~2", + "safe-json-stringify": "~1" } }, "bytes": { @@ -3368,9 +3368,9 @@ "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", "dev": true, "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" }, "dependencies": { "md5-hex": { @@ -3379,7 +3379,7 @@ "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "write-file-atomic": { @@ -3388,9 +3388,9 @@ "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } } } @@ -3401,8 +3401,8 @@ "integrity": "sha512-ollfFPSshiuYLp7AsrmpkQJ/PxCi6AzV81rCjBwWhyF2QGyUY/vPDMzoh4aUcWyucheRglG2LaS5qkIEfLRh6A==", "dev": true, "requires": { - "boom": "7.2.0", - "hoek": "5.0.3" + "boom": "7.x.x", + "hoek": "5.x.x" }, "dependencies": { "boom": { @@ -3411,7 +3411,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "hoek": { @@ -3428,10 +3428,10 @@ "integrity": "sha1-UTTQd5hPcSpU2tPL9i3ijc5BbKg=", "dev": true, "requires": { - "core-js": "2.5.6", - "deep-equal": "1.0.1", - "espurify": "1.8.0", - "estraverse": "4.2.0" + "core-js": "^2.0.0", + "deep-equal": "^1.0.0", + "espurify": "^1.6.0", + "estraverse": "^4.0.0" } }, "call-signature": { @@ -3446,7 +3446,7 @@ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsites": { @@ -3467,8 +3467,8 @@ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" } }, "capture-stack-trace": { @@ -3487,10 +3487,10 @@ "integrity": "sha512-cTQTQeKMhWHU0lX8CADE3g1koGJu+AlcWFzAjMX/8P+XbkScGYw3tJsQpe2Oh8q68vOQbOLacz9k+6V/F3Z9DA==", "dev": true, "requires": { - "boom": "7.2.0", - "bounce": "1.2.0", - "hoek": "5.0.3", - "joi": "13.3.0" + "boom": "7.x.x", + "bounce": "1.x.x", + "hoek": "5.x.x", + "joi": "13.x.x" }, "dependencies": { "boom": { @@ -3499,7 +3499,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "hoek": { @@ -3516,9 +3516,9 @@ "integrity": "sha512-lhWtutLVhsq3Mucxk2McxBPPibJ34WcHuWFz3xqub9u9Ve/IQYpZv3ijLhQXfQped9DXozURiaq9O3aZpP91eg==", "dev": true, "requires": { - "big-time": "2.0.1", - "boom": "7.2.0", - "hoek": "5.0.3" + "big-time": "2.x.x", + "boom": "7.x.x", + "hoek": "5.x.x" }, "dependencies": { "boom": { @@ -3527,7 +3527,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "hoek": { @@ -3544,7 +3544,7 @@ "integrity": "sha1-mMyJDKZS3S7w5ws3klMQ/56Q/Is=", "dev": true, "requires": { - "underscore-contrib": "0.3.0" + "underscore-contrib": "~0.3.0" } }, "center-align": { @@ -3554,8 +3554,8 @@ "dev": true, "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chai": { @@ -3564,12 +3564,12 @@ "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", "dev": true, "requires": { - "assertion-error": "1.1.0", - "check-error": "1.0.2", - "deep-eql": "3.0.1", - "get-func-name": "2.0.0", - "pathval": "1.1.0", - "type-detect": "4.0.8" + "assertion-error": "^1.0.1", + "check-error": "^1.0.1", + "deep-eql": "^3.0.0", + "get-func-name": "^2.0.0", + "pathval": "^1.0.0", + "type-detect": "^4.0.0" }, "dependencies": { "pathval": { @@ -3586,9 +3586,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "chardet": { @@ -3609,15 +3609,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "dev": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.2.4", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" } }, "ci-info": { @@ -3633,14 +3633,14 @@ "dev": true }, "clang-format": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.2.tgz", - "integrity": "sha512-6X9u1JBMak/9VbC0IZajEDvp19/PbjCanbRO3Z2xsluypQtbPPAGDvGGovLOWoUpXIvJH9vJExmzlqWvwItZxA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", + "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", "dev": true, "requires": { - "async": "1.5.2", - "glob": "7.1.2", - "resolve": "1.1.7" + "async": "^1.5.2", + "glob": "^7.0.0", + "resolve": "^1.1.6" }, "dependencies": { "async": { @@ -3670,7 +3670,7 @@ "dev": true, "requires": { "exit": "0.1.2", - "glob": "7.1.2" + "glob": "^7.1.1" } }, "cli-boxes": { @@ -3685,7 +3685,7 @@ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-spinners": { @@ -3717,8 +3717,8 @@ "integrity": "sha512-bAtZo0u82gCfaAGfSNxUdTI9mNyza7D8w4CVCcaOsy7sgwDzvx6ekr6cuWJqY3UGzgnQ1+4wgENup5eIhgxEYA==", "dev": true, "requires": { - "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "slice-ansi": "^1.0.0", + "string-width": "^2.0.0" } }, "cli-width": { @@ -3734,8 +3734,8 @@ "dev": true, "optional": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" }, "dependencies": { @@ -3754,7 +3754,7 @@ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "dev": true, "requires": { - "mimic-response": "1.0.0" + "mimic-response": "^1.0.0" } }, "co": { @@ -3768,7 +3768,7 @@ "integrity": "sha1-QT59tvWJOmC5Qs9JLEvsk9tBWrc=", "dev": true, "requires": { - "pinkie-promise": "1.0.0" + "pinkie-promise": "^1.0.0" } }, "code-excerpt": { @@ -3777,7 +3777,7 @@ "integrity": "sha512-tJLhH3EpFm/1x7heIW0hemXJTUU5EWl2V0EIX558jp05Mt1U6DVryCgkp3l37cxqs+DNbNgxG43SkwJXpQ14Jw==", "dev": true, "requires": { - "convert-to-spaces": "1.0.2" + "convert-to-spaces": "^1.0.1" } }, "code-point-at": { @@ -3793,7 +3793,7 @@ "dev": true, "requires": { "argv": "0.0.2", - "request": "2.86.0", + "request": "^2.81.0", "urlgrey": "0.4.4" } }, @@ -3803,7 +3803,7 @@ "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "^1.1.1" } }, "color-name": { @@ -3823,7 +3823,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -3838,7 +3838,7 @@ "integrity": "sha1-PAPwd2uGo239mgosl8YwfzMggv4=", "dev": true, "requires": { - "readable-stream": "2.3.6" + "readable-stream": "^2.0.4" } }, "common-path-prefix": { @@ -3870,10 +3870,10 @@ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { - "buffer-from": "1.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, "concordance": { @@ -3882,17 +3882,17 @@ "integrity": "sha512-CZBzJ3/l5QJjlZM20WY7+5GP5pMTw+1UEbThcpMw8/rojsi5sBCiD8ZbBLtD+jYpRGAkwuKuqk108c154V9eyQ==", "dev": true, "requires": { - "date-time": "2.1.0", - "esutils": "2.0.2", - "fast-diff": "1.1.2", - "function-name-support": "0.2.0", - "js-string-escape": "1.0.1", - "lodash.clonedeep": "4.5.0", - "lodash.flattendeep": "4.4.0", - "lodash.merge": "4.6.1", - "md5-hex": "2.0.0", - "semver": "5.5.0", - "well-known-symbols": "1.0.0" + "date-time": "^2.1.0", + "esutils": "^2.0.2", + "fast-diff": "^1.1.1", + "function-name-support": "^0.2.0", + "js-string-escape": "^1.0.1", + "lodash.clonedeep": "^4.5.0", + "lodash.flattendeep": "^4.4.0", + "lodash.merge": "^4.6.0", + "md5-hex": "^2.0.0", + "semver": "^5.3.0", + "well-known-symbols": "^1.0.0" }, "dependencies": { "date-time": { @@ -3901,7 +3901,7 @@ "integrity": "sha512-/9+C44X7lot0IeiyfgJmETtRMhBidBYM2QFFIkGa0U1k+hSyY87Nw7PY3eDqpvCBm7I3WCSfPeZskW/YYq6m4g==", "dev": true, "requires": { - "time-zone": "1.0.0" + "time-zone": "^1.0.0" } } } @@ -3912,12 +3912,12 @@ "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", "dev": true, "requires": { - "dot-prop": "4.2.0", - "graceful-fs": "4.1.11", - "make-dir": "1.3.0", - "unique-string": "1.0.0", - "write-file-atomic": "2.3.0", - "xdg-basedir": "3.0.0" + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" } }, "console-browserify": { @@ -3926,7 +3926,7 @@ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", "dev": true, "requires": { - "date-now": "0.1.4" + "date-now": "^0.1.4" } }, "content": { @@ -3935,7 +3935,7 @@ "integrity": "sha512-wDP6CTWDpwCf791fNxlCCkZGRkrNzSEU/8ju9Hnr3Uc5mF/gFR5W+fcoGm6zUSlVPdSXYn5pCbySADKj7YM4Cg==", "dev": true, "requires": { - "boom": "7.2.0" + "boom": "7.x.x" }, "dependencies": { "boom": { @@ -3944,7 +3944,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "hoek": { @@ -4003,8 +4003,8 @@ "integrity": "sha1-fIphX1SBxhq58WyDNzG8uPZjuZs=", "dev": true, "requires": { - "depd": "1.1.2", - "keygrip": "1.0.2" + "depd": "~1.1.1", + "keygrip": "~1.0.2" } }, "core-assert": { @@ -4013,8 +4013,8 @@ "integrity": "sha1-+F4s+b/tKPdzzIs/pcW2m9wC/j8=", "dev": true, "requires": { - "buf-compare": "1.0.1", - "is-error": "2.2.1" + "buf-compare": "^1.0.0", + "is-error": "^2.2.0" } }, "core-js": { @@ -4034,13 +4034,13 @@ "integrity": "sha1-b4NhYlRiTwrViqSqjQdvAmvn4Yg=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1", - "nested-error-stacks": "1.0.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "readable-stream": "2.3.6" + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nested-error-stacks": "^1.0.1", + "object-assign": "^4.0.1", + "pify": "^2.3.0", + "pinkie-promise": "^2.0.0", + "readable-stream": "^2.1.4" }, "dependencies": { "pify": { @@ -4061,7 +4061,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } } } @@ -4072,12 +4072,12 @@ "integrity": "sha1-tnJn66LzlgugalphrJQDNCKDNCQ=", "dev": true, "requires": { - "cp-file": "3.2.0", - "globby": "4.1.0", - "meow": "3.7.0", - "nested-error-stacks": "1.0.2", - "object-assign": "4.1.1", - "pinkie-promise": "2.0.1" + "cp-file": "^3.1.0", + "globby": "^4.0.0", + "meow": "^3.6.0", + "nested-error-stacks": "^1.0.0", + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" }, "dependencies": { "glob": { @@ -4086,11 +4086,11 @@ "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", "dev": true, "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "globby": { @@ -4099,12 +4099,12 @@ "integrity": "sha1-CA9UVJ7BuCpsYOYx/ILhIR2+lfg=", "dev": true, "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "6.0.4", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^6.0.1", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -4125,7 +4125,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } } } @@ -4136,8 +4136,8 @@ "integrity": "sha1-Z/taSi3sKMqKv/N13kuecfanVhw=", "dev": true, "requires": { - "cpy": "4.0.1", - "meow": "3.7.0" + "cpy": "^4.0.0", + "meow": "^3.6.0" } }, "create-error-class": { @@ -4145,7 +4145,7 @@ "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "requires": { - "capture-stack-trace": "1.0.0" + "capture-stack-trace": "^1.0.0" } }, "cross-spawn": { @@ -4154,9 +4154,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "cryptiles": { @@ -4164,7 +4164,7 @@ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", "requires": { - "boom": "5.2.0" + "boom": "5.x.x" }, "dependencies": { "boom": { @@ -4172,7 +4172,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", "requires": { - "hoek": "4.2.1" + "hoek": "4.x.x" } } } @@ -4189,9 +4189,9 @@ "integrity": "sha512-U5ETe1IOjq2h56ZcBE3oe9rT7XryCH6IKgPMv0L7sSk6w29yR3p5egCK0T3BDNHHV95OoUBgXsqiVG+3a900Ag==", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babylon": "6.18.0", - "source-map-support": "0.4.18" + "babel-runtime": "^6.9.2", + "babylon": "^6.8.1", + "source-map-support": "^0.4.0" }, "dependencies": { "source-map-support": { @@ -4200,7 +4200,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } } } @@ -4211,10 +4211,10 @@ "integrity": "sha1-UjHt/BxxUlEuxFeBB2p6l/9SXAw=", "dev": true, "requires": { - "csv-generate": "1.1.2", - "csv-parse": "1.3.3", - "csv-stringify": "1.1.2", - "stream-transform": "0.2.2" + "csv-generate": "^1.1.2", + "csv-parse": "^1.3.3", + "csv-stringify": "^1.1.2", + "stream-transform": "^0.2.2" } }, "csv-generate": { @@ -4235,7 +4235,7 @@ "integrity": "sha1-d6QVJlgbzjOA8SsA18W7rHDIK1g=", "dev": true, "requires": { - "lodash.get": "4.4.2" + "lodash.get": "~4.4.2" } }, "currently-unhandled": { @@ -4244,7 +4244,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "array-find-index": "1.0.2" + "array-find-index": "^1.0.1" } }, "cycle": { @@ -4259,7 +4259,7 @@ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "dev": true, "requires": { - "es5-ext": "0.10.42" + "es5-ext": "^0.10.9" } }, "dashdash": { @@ -4267,7 +4267,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "date-now": { @@ -4302,8 +4302,8 @@ "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", "dev": true, "requires": { - "decamelize": "1.2.0", - "map-obj": "1.0.1" + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" } }, "decode-uri-component": { @@ -4318,7 +4318,7 @@ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "dev": true, "requires": { - "mimic-response": "1.0.0" + "mimic-response": "^1.0.0" } }, "deep-eql": { @@ -4327,7 +4327,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "4.0.8" + "type-detect": "^4.0.0" } }, "deep-equal": { @@ -4354,8 +4354,8 @@ "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "dev": true, "requires": { - "foreach": "2.0.5", - "object-keys": "1.0.11" + "foreach": "^2.0.5", + "object-keys": "^1.0.8" } }, "del": { @@ -4364,13 +4364,13 @@ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.2" + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" }, "dependencies": { "globby": { @@ -4379,12 +4379,12 @@ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -4405,7 +4405,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } } } @@ -4439,7 +4439,7 @@ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "detect-node": { @@ -4466,7 +4466,7 @@ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "esutils": "2.0.2" + "esutils": "^2.0.2" } }, "dom-serializer": { @@ -4475,8 +4475,8 @@ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "dev": true, "requires": { - "domelementtype": "1.1.3", - "entities": "1.1.1" + "domelementtype": "~1.1.1", + "entities": "~1.1.1" }, "dependencies": { "domelementtype": { @@ -4499,7 +4499,7 @@ "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "dev": true, "requires": { - "domelementtype": "1.3.0" + "domelementtype": "1" } }, "domutils": { @@ -4508,8 +4508,8 @@ "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "dev": true, "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" + "dom-serializer": "0", + "domelementtype": "1" } }, "dot-prop": { @@ -4518,7 +4518,7 @@ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", "dev": true, "requires": { - "is-obj": "1.0.1" + "is-obj": "^1.0.0" } }, "dtrace-provider": { @@ -4528,7 +4528,7 @@ "dev": true, "optional": true, "requires": { - "nan": "2.10.0" + "nan": "^2.3.3" } }, "duplexer3": { @@ -4542,10 +4542,10 @@ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" } }, "eastasianwidth": { @@ -4560,7 +4560,7 @@ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "ecdsa-sig-formatter": { @@ -4568,7 +4568,7 @@ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz", "integrity": "sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "ee-first": { @@ -4583,8 +4583,8 @@ "integrity": "sha1-bw2nNEf07dg4/sXGAxOoi6XLhSs=", "dev": true, "requires": { - "core-js": "2.5.6", - "empower-core": "0.6.2" + "core-js": "^2.0.0", + "empower-core": "^0.6.2" } }, "empower-assert": { @@ -4593,7 +4593,7 @@ "integrity": "sha512-Ylck0Q6p8y/LpNzYeBccaxAPm2ZyuqBgErgZpO9KT0HuQWF0sJckBKCLmgS1/DEXEiyBi9XtYh3clZm5cAdARw==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.2.0" } }, "empower-core": { @@ -4603,7 +4603,7 @@ "dev": true, "requires": { "call-signature": "0.0.2", - "core-js": "2.5.6" + "core-js": "^2.0.0" } }, "encodeurl": { @@ -4617,7 +4617,7 @@ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "requires": { - "once": "1.4.0" + "once": "^1.4.0" } }, "ent": { @@ -4643,7 +4643,7 @@ "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "error-inject": { @@ -4658,9 +4658,9 @@ "integrity": "sha512-AJxO1rmPe1bDEfSR6TJ/FgMFYuTBhR5R57KW58iCkYACMyFbrkqVyzXSurYoScDGvgyMpk7uRF/lPUPPTmsRSA==", "dev": true, "requires": { - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1", - "next-tick": "1.0.0" + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "1" } }, "es6-error": { @@ -4675,9 +4675,9 @@ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" } }, "es6-map": { @@ -4686,12 +4686,12 @@ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42", - "es6-iterator": "2.0.3", - "es6-set": "0.1.5", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" } }, "es6-set": { @@ -4700,11 +4700,11 @@ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42", - "es6-iterator": "2.0.3", + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "event-emitter": "~0.3.5" } }, "es6-symbol": { @@ -4713,8 +4713,8 @@ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42" + "d": "1", + "es5-ext": "~0.10.14" } }, "es6-weak-map": { @@ -4723,10 +4723,10 @@ "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" } }, "escallmatch": { @@ -4735,8 +4735,8 @@ "integrity": "sha1-UAmdhugJGwkt+N37w/mm+wWgJNA=", "dev": true, "requires": { - "call-matcher": "1.0.1", - "esprima": "2.7.3" + "call-matcher": "^1.0.0", + "esprima": "^2.0.0" }, "dependencies": { "esprima": { @@ -4771,11 +4771,11 @@ "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", "dev": true, "requires": { - "esprima": "3.1.3", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.6.1" + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" }, "dependencies": { "esprima": { @@ -4799,10 +4799,10 @@ "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", "dev": true, "requires": { - "es6-map": "0.1.5", - "es6-weak-map": "2.0.2", - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint": { @@ -4811,44 +4811,44 @@ "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", "dev": true, "requires": { - "ajv": "5.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.4.1", - "concat-stream": "1.6.2", - "cross-spawn": "5.1.0", - "debug": "3.1.0", - "doctrine": "2.1.0", - "eslint-scope": "3.7.1", - "eslint-visitor-keys": "1.0.0", - "espree": "3.5.4", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.2", - "globals": "11.5.0", - "ignore": "3.3.8", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.11.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.10", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.0", - "regexpp": "1.1.0", - "require-uncached": "1.0.3", - "semver": "5.5.0", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", "table": "4.0.2", - "text-table": "0.2.0" + "text-table": "~0.2.0" }, "dependencies": { "globals": { @@ -4865,7 +4865,7 @@ "integrity": "sha512-ag8YEyBXsm3nmOv1Hz991VtNNDMRa+MNy8cY47Pl4bw6iuzqKbJajXdqUpiw13STdLLrznxgm1hj9NhxeOYq0A==", "dev": true, "requires": { - "get-stdin": "5.0.1" + "get-stdin": "^5.0.1" }, "dependencies": { "get-stdin": { @@ -4882,10 +4882,10 @@ "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", "dev": true, "requires": { - "ignore": "3.3.8", - "minimatch": "3.0.4", - "resolve": "1.7.1", - "semver": "5.5.0" + "ignore": "^3.3.6", + "minimatch": "^3.0.4", + "resolve": "^1.3.3", + "semver": "^5.4.1" }, "dependencies": { "resolve": { @@ -4894,7 +4894,7 @@ "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } } } @@ -4905,8 +4905,8 @@ "integrity": "sha512-floiaI4F7hRkTrFe8V2ItOK97QYrX75DjmdzmVITZoAP6Cn06oEDPQRsO6MlHEP/u2SxI3xQ52Kpjw6j5WGfeQ==", "dev": true, "requires": { - "fast-diff": "1.1.2", - "jest-docblock": "21.2.0" + "fast-diff": "^1.1.1", + "jest-docblock": "^21.0.0" } }, "eslint-scope": { @@ -4915,8 +4915,8 @@ "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", "dev": true, "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint-visitor-keys": { @@ -4931,16 +4931,16 @@ "integrity": "sha512-F4TY1qYJB1aUyzB03NsZksZzUQmQoEBaTUjRJGR30GxbkbjKI41NhCyYjrF+bGgWN7x/ZsczYppRpz/0WdI0ug==", "dev": true, "requires": { - "array-find": "1.0.0", - "escallmatch": "1.5.0", - "escodegen": "1.9.1", - "escope": "3.6.0", - "espower-location-detector": "1.0.0", - "espurify": "1.8.0", - "estraverse": "4.2.0", - "source-map": "0.5.7", - "type-name": "2.0.2", - "xtend": "4.0.1" + "array-find": "^1.0.0", + "escallmatch": "^1.5.0", + "escodegen": "^1.7.0", + "escope": "^3.3.0", + "espower-location-detector": "^1.0.0", + "espurify": "^1.3.0", + "estraverse": "^4.1.0", + "source-map": "^0.5.0", + "type-name": "^2.0.0", + "xtend": "^4.0.0" } }, "espower-loader": { @@ -4949,11 +4949,11 @@ "integrity": "sha1-7bRsPFmga6yOpzppXIblxaC8gto=", "dev": true, "requires": { - "convert-source-map": "1.5.1", - "espower-source": "2.2.0", - "minimatch": "3.0.4", - "source-map-support": "0.4.18", - "xtend": "4.0.1" + "convert-source-map": "^1.1.0", + "espower-source": "^2.0.0", + "minimatch": "^3.0.0", + "source-map-support": "^0.4.0", + "xtend": "^4.0.0" }, "dependencies": { "source-map-support": { @@ -4962,7 +4962,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } } } @@ -4973,10 +4973,10 @@ "integrity": "sha1-oXt+zFnTDheeK+9z+0E3cEyzMbU=", "dev": true, "requires": { - "is-url": "1.2.4", - "path-is-absolute": "1.0.1", - "source-map": "0.5.7", - "xtend": "4.0.1" + "is-url": "^1.2.1", + "path-is-absolute": "^1.0.0", + "source-map": "^0.5.0", + "xtend": "^4.0.0" } }, "espower-source": { @@ -4985,17 +4985,17 @@ "integrity": "sha1-fgBSVa5HtcE2RIZEs/PYAtUD91I=", "dev": true, "requires": { - "acorn": "5.5.3", - "acorn-es7-plugin": "1.1.7", - "convert-source-map": "1.5.1", - "empower-assert": "1.1.0", - "escodegen": "1.9.1", - "espower": "2.1.1", - "estraverse": "4.2.0", - "merge-estraverse-visitors": "1.0.0", - "multi-stage-sourcemap": "0.2.1", - "path-is-absolute": "1.0.1", - "xtend": "4.0.1" + "acorn": "^5.0.0", + "acorn-es7-plugin": "^1.0.10", + "convert-source-map": "^1.1.1", + "empower-assert": "^1.0.0", + "escodegen": "^1.6.1", + "espower": "^2.0.0", + "estraverse": "^4.0.0", + "merge-estraverse-visitors": "^1.0.0", + "multi-stage-sourcemap": "^0.2.1", + "path-is-absolute": "^1.0.0", + "xtend": "^4.0.0" } }, "espree": { @@ -5004,8 +5004,8 @@ "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "dev": true, "requires": { - "acorn": "5.5.3", - "acorn-jsx": "3.0.1" + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" } }, "esprima": { @@ -5020,7 +5020,7 @@ "integrity": "sha512-jdkJG9jswjKCCDmEridNUuIQei9algr+o66ZZ19610ZoBsiWLRsQGNYS4HGez3Z/DsR0lhANGAqiwBUclPuNag==", "dev": true, "requires": { - "core-js": "2.5.6" + "core-js": "^2.0.0" } }, "esquery": { @@ -5029,7 +5029,7 @@ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "esrecurse": { @@ -5038,7 +5038,7 @@ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.1.0" } }, "estraverse": { @@ -5065,8 +5065,8 @@ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42" + "d": "1", + "es5-ext": "~0.10.14" } }, "ewma": { @@ -5075,7 +5075,7 @@ "integrity": "sha512-MYYK17A76cuuyvkR7MnqLW4iFYPEi5Isl2qb8rXiWpLiwFS9dxW/rncuNnjjgSENuVqZQkIuR4+DChVL4g1lnw==", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "execa": { @@ -5084,13 +5084,13 @@ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } }, "exit": { @@ -5105,7 +5105,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -5114,7 +5114,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "2.2.4" + "fill-range": "^2.1.0" } }, "express": { @@ -5123,36 +5123,36 @@ "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", "dev": true, "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.5", "array-flatten": "1.1.1", "body-parser": "1.18.2", "content-disposition": "0.5.2", - "content-type": "1.0.4", + "content-type": "~1.0.4", "cookie": "0.3.1", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "1.1.2", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "finalhandler": "1.1.1", "fresh": "0.5.2", "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.3", + "proxy-addr": "~2.0.3", "qs": "6.5.1", - "range-parser": "1.2.0", + "range-parser": "~1.2.0", "safe-buffer": "5.1.1", "send": "0.16.2", "serve-static": "1.13.2", "setprototypeof": "1.1.0", - "statuses": "1.4.0", - "type-is": "1.6.16", + "statuses": "~1.4.0", + "type-is": "~1.6.16", "utils-merge": "1.0.1", - "vary": "1.1.2" + "vary": "~1.1.2" }, "dependencies": { "body-parser": { @@ -5162,15 +5162,15 @@ "dev": true, "requires": { "bytes": "3.0.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.3", + "depd": "~1.1.1", + "http-errors": "~1.6.2", "iconv-lite": "0.4.19", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.5.1", "raw-body": "2.3.2", - "type-is": "1.6.16" + "type-is": "~1.6.15" } }, "debug": { @@ -5227,7 +5227,7 @@ "depd": "1.1.1", "inherits": "2.0.3", "setprototypeof": "1.0.3", - "statuses": "1.4.0" + "statuses": ">= 1.3.1 < 2" } }, "setprototypeof": { @@ -5269,9 +5269,9 @@ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.23", - "tmp": "0.0.33" + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" } }, "extglob": { @@ -5280,7 +5280,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "extsprintf": { @@ -5328,7 +5328,7 @@ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -5337,8 +5337,8 @@ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "dev": true, "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" } }, "filename-regex": { @@ -5353,8 +5353,8 @@ "integrity": "sha1-mo+jb06K1jTjv2tPPIiCVRRS6yA=", "dev": true, "requires": { - "is-object": "1.0.1", - "merge-descriptors": "1.0.1" + "is-object": "~1.0.1", + "merge-descriptors": "~1.0.0" } }, "fill-range": { @@ -5363,11 +5363,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "dev": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.0.0", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" } }, "finalhandler": { @@ -5377,12 +5377,12 @@ "dev": true, "requires": { "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.4.0", - "unpipe": "1.0.0" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" }, "dependencies": { "debug": { @@ -5408,9 +5408,9 @@ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", "dev": true, "requires": { - "commondir": "1.0.1", - "make-dir": "1.3.0", - "pkg-dir": "2.0.0" + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" } }, "find-my-way": { @@ -5419,7 +5419,7 @@ "integrity": "sha512-d7wZ0IeijAZDA/gvHjCNxxRTDCn5j9hnugcgEbNzYhofbDfogGhyRu93mtcJoAxeB1zemWTz9JB2JzNOar/qbA==", "dev": true, "requires": { - "fast-decode-uri-component": "1.0.0" + "fast-decode-uri-component": "^1.0.0" } }, "find-up": { @@ -5428,7 +5428,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "flat-cache": { @@ -5437,10 +5437,10 @@ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "dev": true, "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" } }, "fn-name": { @@ -5454,7 +5454,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.4.1.tgz", "integrity": "sha512-uxYePVPogtya1ktGnAAXOacnbIuRMB4dkvqeNz2qTtTQsuzSfbDolV+wMMKxAmCx0bLgAKLbBOkjItMbbkR1vg==", "requires": { - "debug": "3.1.0" + "debug": "^3.1.0" } }, "for-in": { @@ -5469,7 +5469,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "foreach": { @@ -5488,9 +5488,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "requires": { - "asynckit": "0.4.0", + "asynckit": "^0.4.0", "combined-stream": "1.0.6", - "mime-types": "2.1.18" + "mime-types": "^2.1.12" } }, "formidable": { @@ -5517,8 +5517,8 @@ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" } }, "fs-extra": { @@ -5527,9 +5527,9 @@ "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "4.0.0", - "universalify": "0.1.1" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, "fs.realpath": { @@ -5545,8 +5545,8 @@ "dev": true, "optional": true, "requires": { - "nan": "2.10.0", - "node-pre-gyp": "0.10.0" + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { "abbrev": { @@ -5572,8 +5572,8 @@ "dev": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "balanced-match": { @@ -5586,7 +5586,7 @@ "bundled": true, "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -5650,7 +5650,7 @@ "dev": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "fs.realpath": { @@ -5665,14 +5665,14 @@ "dev": true, "optional": true, "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" } }, "glob": { @@ -5681,12 +5681,12 @@ "dev": true, "optional": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "has-unicode": { @@ -5701,7 +5701,7 @@ "dev": true, "optional": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "^2.1.0" } }, "ignore-walk": { @@ -5710,7 +5710,7 @@ "dev": true, "optional": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "inflight": { @@ -5719,8 +5719,8 @@ "dev": true, "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -5739,7 +5739,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "isarray": { @@ -5753,7 +5753,7 @@ "bundled": true, "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -5766,8 +5766,8 @@ "bundled": true, "dev": true, "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" } }, "minizlib": { @@ -5776,7 +5776,7 @@ "dev": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "mkdirp": { @@ -5799,9 +5799,9 @@ "dev": true, "optional": true, "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, "node-pre-gyp": { @@ -5810,16 +5810,16 @@ "dev": true, "optional": true, "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" } }, "nopt": { @@ -5828,8 +5828,8 @@ "dev": true, "optional": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npm-bundled": { @@ -5844,8 +5844,8 @@ "dev": true, "optional": true, "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npmlog": { @@ -5854,10 +5854,10 @@ "dev": true, "optional": true, "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "number-is-nan": { @@ -5876,7 +5876,7 @@ "bundled": true, "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -5897,8 +5897,8 @@ "dev": true, "optional": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { @@ -5919,10 +5919,10 @@ "dev": true, "optional": true, "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -5939,13 +5939,13 @@ "dev": true, "optional": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "rimraf": { @@ -5954,7 +5954,7 @@ "dev": true, "optional": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { @@ -5997,9 +5997,9 @@ "bundled": true, "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { @@ -6008,7 +6008,7 @@ "dev": true, "optional": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -6016,7 +6016,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -6031,13 +6031,13 @@ "dev": true, "optional": true, "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" } }, "util-deprecate": { @@ -6052,7 +6052,7 @@ "dev": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { @@ -6084,8 +6084,8 @@ "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.6.3.tgz", "integrity": "sha512-MSmczZctbz91AxCvqp9GHBoZOSbJKAICV7Ow/AIWSJZRrRchUd5NL1b2P4OfP+4m490BEUPhhARfpHdqCxuCvg==", "requires": { - "axios": "0.18.0", - "extend": "3.0.1", + "axios": "^0.18.0", + "extend": "^3.0.1", "retry-axios": "0.3.2" } }, @@ -6124,7 +6124,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "glob": { @@ -6133,12 +6133,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-base": { @@ -6147,8 +6147,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -6157,7 +6157,7 @@ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "global-dirs": { @@ -6166,7 +6166,7 @@ "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "dev": true, "requires": { - "ini": "1.3.5" + "ini": "^1.3.4" } }, "globals": { @@ -6181,11 +6181,11 @@ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "dev": true, "requires": { - "array-union": "1.0.2", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "pify": { @@ -6206,23 +6206,23 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } } } }, "google-auth-library": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-1.4.0.tgz", - "integrity": "sha512-vWRx6pJulK7Y5V/Xyr7MPMlx2mWfmrUVbcffZ7hpq8ElFg5S8WY6PvjMovdcr6JfuAwwpAX4R0I1XOcyWuBcUw==", - "requires": { - "axios": "0.18.0", - "gcp-metadata": "0.6.3", - "gtoken": "2.3.0", - "jws": "3.1.5", - "lodash.isstring": "4.0.1", - "lru-cache": "4.1.3", - "retry-axios": "0.3.2" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-1.5.0.tgz", + "integrity": "sha512-xpibA/hkq4waBcpIkSJg4GiDAqcBWjJee3c47zj7xP3RQ0A9mc8MP3Vc9sc8SGRoDYA0OszZxTjW7SbcC4pJIA==", + "requires": { + "axios": "^0.18.0", + "gcp-metadata": "^0.6.3", + "gtoken": "^2.3.0", + "jws": "^3.1.4", + "lodash.isstring": "^4.0.1", + "lru-cache": "^4.1.2", + "retry-axios": "^0.3.2" } }, "google-auto-auth": { @@ -6230,10 +6230,10 @@ "resolved": "https://registry.npmjs.org/google-auto-auth/-/google-auto-auth-0.10.1.tgz", "integrity": "sha512-iIqSbY7Ypd32mnHGbYctp80vZzXoDlvI9gEfvtl3kmyy5HzOcrZCIGCBdSlIzRsg7nHpQiHE3Zl6Ycur6TSodQ==", "requires": { - "async": "2.6.0", - "gcp-metadata": "0.6.3", - "google-auth-library": "1.4.0", - "request": "2.86.0" + "async": "^2.3.0", + "gcp-metadata": "^0.6.1", + "google-auth-library": "^1.3.1", + "request": "^2.79.0" } }, "google-p12-pem": { @@ -6241,8 +6241,8 @@ "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-1.0.2.tgz", "integrity": "sha512-+EuKr4CLlGsnXx4XIJIVkcKYrsa2xkAmCvxRhX2HsazJzUBAJ35wARGeApHUn4nNfPD03Vl057FskNr20VaCyg==", "requires": { - "node-forge": "0.7.5", - "pify": "3.0.0" + "node-forge": "^0.7.4", + "pify": "^3.0.0" } }, "got": { @@ -6251,23 +6251,23 @@ "integrity": "sha512-giadqJpXIwjY+ZsuWys8p2yjZGhOHiU4hiJHjS/oeCxw1u8vANQz3zPlrxW2Zw/siCXsSMI3hvzWGcnFyujyAg==", "dev": true, "requires": { - "@sindresorhus/is": "0.7.0", - "cacheable-request": "2.1.4", - "decompress-response": "3.3.0", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "into-stream": "3.1.0", - "is-retry-allowed": "1.1.0", - "isurl": "1.0.0", - "lowercase-keys": "1.0.1", - "mimic-response": "1.0.0", - "p-cancelable": "0.3.0", - "p-timeout": "2.0.1", - "pify": "3.0.0", - "safe-buffer": "5.1.2", - "timed-out": "4.0.1", - "url-parse-lax": "3.0.0", - "url-to-options": "1.0.1" + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" }, "dependencies": { "prepend-http": { @@ -6282,7 +6282,7 @@ "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "dev": true, "requires": { - "prepend-http": "2.0.0" + "prepend-http": "^2.0.0" } } } @@ -6310,28 +6310,28 @@ "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-2.3.0.tgz", "integrity": "sha512-Jc9/8mV630cZE9FC5tIlJCZNdUjwunvlwOtCz6IDlaiB4Sz68ki29a1+q97sWTnTYroiuF9B135rod9zrQdHLw==", "requires": { - "axios": "0.18.0", - "google-p12-pem": "1.0.2", - "jws": "3.1.5", - "mime": "2.3.1", - "pify": "3.0.0" + "axios": "^0.18.0", + "google-p12-pem": "^1.0.0", + "jws": "^3.1.4", + "mime": "^2.2.0", + "pify": "^3.0.0" } }, "gts": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/gts/-/gts-0.5.4.tgz", - "integrity": "sha512-bDxE/NvHu+v0uW0qbUMYClrGCi81Ug4Wa7BsV/yUtdEh67C3K56BiqAk8yBOttLH1k4XYks+7QSJy7XOf3vaQw==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "clang-format": "1.2.2", - "inquirer": "3.3.0", - "meow": "4.0.1", - "pify": "3.0.0", - "rimraf": "2.6.2", - "tslint": "5.10.0", - "update-notifier": "2.5.0", - "write-file-atomic": "2.3.0" + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/gts/-/gts-0.6.0.tgz", + "integrity": "sha512-MCh3HNzLA1zvnW8lStH58n6U7SaGCJwd0Y2fUWJklHdtpMB9zaGe8SR7l0DqqPf+t0hNoFu2KmRFxHBnkeeKrA==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "clang-format": "1.2.3", + "inquirer": "^5.2.0", + "meow": "^5.0.0", + "pify": "^3.0.0", + "rimraf": "^2.6.2", + "tslint": "^5.9.1", + "update-notifier": "^2.5.0", + "write-file-atomic": "^2.3.0" }, "dependencies": { "camelcase": { @@ -6346,9 +6346,30 @@ "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", "dev": true, "requires": { - "camelcase": "4.1.0", - "map-obj": "2.0.0", - "quick-lru": "1.1.0" + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" + } + }, + "inquirer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz", + "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.1.0", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^5.5.2", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" } }, "load-json-file": { @@ -6357,10 +6378,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "map-obj": { @@ -6370,36 +6391,30 @@ "dev": true }, "meow": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", + "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", "dev": true, "requires": { - "camelcase-keys": "4.2.0", - "decamelize-keys": "1.1.0", - "loud-rejection": "1.6.0", - "minimist": "1.2.0", - "minimist-options": "3.0.2", - "normalize-package-data": "2.4.0", - "read-pkg-up": "3.0.0", - "redent": "2.0.0", - "trim-newlines": "2.0.0" + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0", + "yargs-parser": "^10.0.0" } }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.1", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "path-type": { @@ -6408,7 +6423,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "read-pkg": { @@ -6417,9 +6432,9 @@ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.4.0", - "path-type": "3.0.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" } }, "read-pkg-up": { @@ -6428,8 +6443,8 @@ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "3.0.0" + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" } }, "redent": { @@ -6438,8 +6453,8 @@ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", "dev": true, "requires": { - "indent-string": "3.2.0", - "strip-indent": "2.0.0" + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" } }, "strip-indent": { @@ -6453,6 +6468,15 @@ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", "dev": true + }, + "yargs-parser": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.0.0.tgz", + "integrity": "sha512-+DHejWujTVYeMHLff8U96rLc4uE4Emncoftvn5AjhB1Jw1pWxLzgBUT/WYbPrHmy6YPEBTZQx5myHhVcuuu64g==", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + } } } }, @@ -6468,10 +6492,10 @@ "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" }, "dependencies": { "async": { @@ -6486,7 +6510,7 @@ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -6497,23 +6521,23 @@ "integrity": "sha512-ZxzvlGVs0lb7MW4AGxFQ/TM4rOvH6aeR4O0kj47eWy0VjGshlTZFPTighstJQPJy/bKTrlMaThn5ES87fwmGTA==", "dev": true, "requires": { - "accept": "3.0.2", - "ammo": "3.0.1", - "boom": "7.2.0", - "bounce": "1.2.0", - "call": "5.0.1", - "catbox": "10.0.2", - "catbox-memory": "3.1.2", - "heavy": "6.1.0", - "hoek": "5.0.3", - "joi": "13.3.0", - "mimos": "4.0.0", - "podium": "3.1.2", - "shot": "4.0.5", - "statehood": "6.0.6", - "subtext": "6.0.7", - "teamwork": "3.0.1", - "topo": "3.0.0" + "accept": "3.x.x", + "ammo": "3.x.x", + "boom": "7.x.x", + "bounce": "1.x.x", + "call": "5.x.x", + "catbox": "10.x.x", + "catbox-memory": "3.x.x", + "heavy": "6.x.x", + "hoek": "5.x.x", + "joi": "13.x.x", + "mimos": "4.x.x", + "podium": "3.x.x", + "shot": "4.x.x", + "statehood": "6.x.x", + "subtext": "6.x.x", + "teamwork": "3.x.x", + "topo": "3.x.x" }, "dependencies": { "boom": { @@ -6522,7 +6546,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "hoek": { @@ -6543,8 +6567,8 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" + "ajv": "^5.1.0", + "har-schema": "^2.0.0" } }, "has-ansi": { @@ -6553,7 +6577,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-color": { @@ -6580,7 +6604,7 @@ "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", "dev": true, "requires": { - "has-symbol-support-x": "1.4.2" + "has-symbol-support-x": "^1.4.1" } }, "has-yarn": { @@ -6594,10 +6618,10 @@ "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", "requires": { - "boom": "4.3.1", - "cryptiles": "3.1.2", - "hoek": "4.2.1", - "sntp": "2.1.0" + "boom": "4.x.x", + "cryptiles": "3.x.x", + "hoek": "4.x.x", + "sntp": "2.x.x" } }, "he": { @@ -6612,9 +6636,9 @@ "integrity": "sha512-TKS9DC9NOTGulHQI31Lx+bmeWmNOstbJbGMiN3pX6bF+Zc2GKSpbbym4oasNnB6yPGkqJ9TQXXYDGohqNSJRxA==", "dev": true, "requires": { - "boom": "7.2.0", - "hoek": "5.0.3", - "joi": "13.3.0" + "boom": "7.x.x", + "hoek": "5.x.x", + "joi": "13.x.x" }, "dependencies": { "boom": { @@ -6623,7 +6647,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "hoek": { @@ -6645,8 +6669,8 @@ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" } }, "hosted-git-info": { @@ -6661,10 +6685,10 @@ "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "dev": true, "requires": { - "inherits": "2.0.3", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "wbuf": "1.7.3" + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" } }, "htmlparser2": { @@ -6673,12 +6697,12 @@ "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", "dev": true, "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.4.2", - "domutils": "1.7.0", - "entities": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "domelementtype": "^1.3.0", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" } }, "http-assert": { @@ -6687,8 +6711,8 @@ "integrity": "sha1-oxpc+IyHPsu1eWkH1NbxMujAHko=", "dev": true, "requires": { - "deep-equal": "1.0.1", - "http-errors": "1.6.3" + "deep-equal": "~1.0.1", + "http-errors": "~1.6.1" } }, "http-cache-semantics": { @@ -6709,10 +6733,10 @@ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, "requires": { - "depd": "1.1.2", + "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", - "statuses": "1.5.0" + "statuses": ">= 1.4.0 < 2" } }, "http-signature": { @@ -6720,9 +6744,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.14.1" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "hullabaloo-config-manager": { @@ -6731,20 +6755,20 @@ "integrity": "sha512-ztKnkZV0TmxnumCDHHgLGNiDnotu4EHCp9YMkznWuo4uTtCyJ+cu+RNcxUeXYKTllpvLFWnbfWry09yzszgg+A==", "dev": true, "requires": { - "dot-prop": "4.2.0", - "es6-error": "4.1.1", - "graceful-fs": "4.1.11", - "indent-string": "3.2.0", - "json5": "0.5.1", - "lodash.clonedeep": "4.5.0", - "lodash.clonedeepwith": "4.5.0", - "lodash.isequal": "4.5.0", - "lodash.merge": "4.6.1", - "md5-hex": "2.0.0", - "package-hash": "2.0.0", - "pkg-dir": "2.0.0", - "resolve-from": "3.0.0", - "safe-buffer": "5.1.2" + "dot-prop": "^4.1.0", + "es6-error": "^4.0.2", + "graceful-fs": "^4.1.11", + "indent-string": "^3.1.0", + "json5": "^0.5.1", + "lodash.clonedeep": "^4.5.0", + "lodash.clonedeepwith": "^4.5.0", + "lodash.isequal": "^4.5.0", + "lodash.merge": "^4.6.0", + "md5-hex": "^2.0.0", + "package-hash": "^2.0.0", + "pkg-dir": "^2.0.0", + "resolve-from": "^3.0.0", + "safe-buffer": "^5.0.1" } }, "i": { @@ -6759,7 +6783,7 @@ "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "dev": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ignore": { @@ -6786,8 +6810,8 @@ "integrity": "sha1-sReVcqrNwRxqkQCftDDbyrX2aKg=", "dev": true, "requires": { - "pkg-dir": "2.0.0", - "resolve-cwd": "2.0.0" + "pkg-dir": "^2.0.0", + "resolve-cwd": "^2.0.0" } }, "imurmurhash": { @@ -6814,8 +6838,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherit": { @@ -6841,8 +6865,8 @@ "integrity": "sha512-STx5orGQU1gfrkoI/fMU7lX6CSP7LBGO10gXNgOZhwKhUqbtNjCkYSewJtNnLmWP1tAGN6oyEpG1HFPw5vpa5Q==", "dev": true, "requires": { - "moment": "2.22.1", - "sanitize-html": "1.18.2" + "moment": "^2.14.1", + "sanitize-html": "^1.13.0" } }, "inquirer": { @@ -6851,20 +6875,20 @@ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "dev": true, "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.10", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" } }, "intelli-espower-loader": { @@ -6873,7 +6897,7 @@ "integrity": "sha1-LHsDFGvB1GvyENCgOXxckatMorA=", "dev": true, "requires": { - "espower-loader": "1.2.2" + "espower-loader": "^1.0.0" } }, "into-stream": { @@ -6882,8 +6906,8 @@ "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", "dev": true, "requires": { - "from2": "2.3.0", - "p-is-promise": "1.1.0" + "from2": "^2.1.1", + "p-is-promise": "^1.1.0" } }, "invariant": { @@ -6892,7 +6916,7 @@ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -6913,9 +6937,9 @@ "integrity": "sha512-7iQ5/xFMIYaNt9g2oiNiWdhrOTdRUMFaWENUd0KghxwPUhrIH8DUY8FEyLNTTzf75jaII+jMexLdY/2HfV61RQ==", "dev": true, "requires": { - "boom": "7.2.0", - "cryptiles": "4.1.1", - "hoek": "5.0.3" + "boom": "7.x.x", + "cryptiles": "4.x.x", + "hoek": "5.x.x" }, "dependencies": { "boom": { @@ -6924,7 +6948,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "cryptiles": { @@ -6933,7 +6957,7 @@ "integrity": "sha512-YuQUPbcOmaZsdvxJZ25DCA1W+lLIRoPJKBDKin+St1RCYEERSfoe1d25B1MvWNHN3e8SpFSVsqYvEUjp8J9H2w==", "dev": true, "requires": { - "boom": "7.2.0" + "boom": "7.x.x" } }, "hoek": { @@ -6967,7 +6991,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "binary-extensions": "1.11.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -6981,7 +7005,7 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-ci": { @@ -6990,7 +7014,7 @@ "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", "dev": true, "requires": { - "ci-info": "1.1.3" + "ci-info": "^1.0.0" } }, "is-dotfile": { @@ -7005,7 +7029,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-error": { @@ -7032,7 +7056,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -7059,7 +7083,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-installed-globally": { @@ -7068,8 +7092,8 @@ "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "dev": true, "requires": { - "global-dirs": "0.1.1", - "is-path-inside": "1.0.1" + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" } }, "is-npm": { @@ -7084,7 +7108,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-obj": { @@ -7105,7 +7129,7 @@ "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", "dev": true, "requires": { - "symbol-observable": "1.2.0" + "symbol-observable": "^1.1.0" } }, "is-path-cwd": { @@ -7120,7 +7144,7 @@ "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, "requires": { - "is-path-inside": "1.0.1" + "is-path-inside": "^1.0.0" } }, "is-path-inside": { @@ -7129,7 +7153,7 @@ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" } }, "is-plain-obj": { @@ -7213,7 +7237,7 @@ "integrity": "sha512-zfRhJn9rFSGhzU5tGZqepRSAj3+g6oTOHxMGGriWNJZzyLPUK8H7VHpqKntegnW8KLyGA9zwuNaCoopl40LTpg==", "dev": true, "requires": { - "punycode": "2.1.0" + "punycode": "2.x.x" }, "dependencies": { "punycode": { @@ -7250,8 +7274,8 @@ "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", "dev": true, "requires": { - "has-to-string-tag-x": "1.4.1", - "is-object": "1.0.1" + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" } }, "jest-docblock": { @@ -7266,9 +7290,9 @@ "integrity": "sha512-iF6jEYVfBIoYXztYymia1JfuoVbxBNuOcwdbsdoGin9/jjhBLhonKmfTQOvePss8r8v4tU4JOcNmYPHZzKEFag==", "dev": true, "requires": { - "hoek": "5.0.3", - "isemail": "3.1.2", - "topo": "3.0.0" + "hoek": "5.x.x", + "isemail": "3.x.x", + "topo": "3.x.x" }, "dependencies": { "hoek": { @@ -7285,14 +7309,14 @@ "integrity": "sha512-HM/SKwAl1R0y9kkBili6GqKc31ZnjzY7JHC2uO9bAHJNRmY5c/s+2cETyaqX0kBD8gX8QVhS4dJjRtY1nAwb4w==", "dev": true, "requires": { - "argparse": "1.0.10", - "axios": "0.18.0", - "npm-package-arg": "6.1.0", - "package-json": "4.0.1", - "pify": "3.0.0", - "spdx-correct": "3.0.0", - "spdx-satisfies": "4.0.0", - "strip-json-comments": "2.0.1" + "argparse": "^1.0.9", + "axios": "^0.18.0", + "npm-package-arg": "^6.0.0", + "package-json": "^4.0.1", + "pify": "^3.0.0", + "spdx-correct": "^3.0.0", + "spdx-satisfies": "^4.0.0", + "strip-json-comments": "^2.0.1" } }, "js-string-escape": { @@ -7313,8 +7337,8 @@ "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", "dev": true, "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "js2xmlparser": { @@ -7323,7 +7347,7 @@ "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", "dev": true, "requires": { - "xmlcreate": "1.0.2" + "xmlcreate": "^1.0.1" } }, "jsbn": { @@ -7338,32 +7362,32 @@ "integrity": "sha1-cUG03/W4bjLQ6Z12S4NnZ8MNIBo=", "dev": true, "requires": { - "chalk": "1.1.3", - "cli-table": "0.3.1", - "commander": "2.9.0", - "cst": "0.4.10", - "estraverse": "4.2.0", - "exit": "0.1.2", - "glob": "5.0.15", + "chalk": "~1.1.0", + "cli-table": "~0.3.1", + "commander": "~2.9.0", + "cst": "^0.4.3", + "estraverse": "^4.1.0", + "exit": "~0.1.2", + "glob": "^5.0.1", "htmlparser2": "3.8.3", - "js-yaml": "3.4.6", - "jscs-jsdoc": "2.0.0", - "jscs-preset-wikimedia": "1.0.1", - "jsonlint": "1.6.3", - "lodash": "3.10.1", - "minimatch": "3.0.4", - "natural-compare": "1.2.2", - "pathval": "0.1.1", - "prompt": "0.2.14", - "reserved-words": "0.1.2", - "resolve": "1.1.7", - "strip-bom": "2.0.0", - "strip-json-comments": "1.0.4", - "to-double-quotes": "2.0.0", - "to-single-quotes": "2.0.1", - "vow": "0.4.17", - "vow-fs": "0.3.6", - "xmlbuilder": "3.1.0" + "js-yaml": "~3.4.0", + "jscs-jsdoc": "^2.0.0", + "jscs-preset-wikimedia": "~1.0.0", + "jsonlint": "~1.6.2", + "lodash": "~3.10.0", + "minimatch": "~3.0.0", + "natural-compare": "~1.2.2", + "pathval": "~0.1.1", + "prompt": "~0.2.14", + "reserved-words": "^0.1.1", + "resolve": "^1.1.6", + "strip-bom": "^2.0.0", + "strip-json-comments": "~1.0.2", + "to-double-quotes": "^2.0.0", + "to-single-quotes": "^2.0.0", + "vow": "~0.4.8", + "vow-fs": "~0.3.4", + "xmlbuilder": "^3.1.0" }, "dependencies": { "ansi-styles": { @@ -7378,11 +7402,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "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" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "commander": { @@ -7391,7 +7415,7 @@ "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", "dev": true, "requires": { - "graceful-readlink": "1.0.1" + "graceful-readlink": ">= 1.0.0" } }, "domhandler": { @@ -7400,7 +7424,7 @@ "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", "dev": true, "requires": { - "domelementtype": "1.3.0" + "domelementtype": "1" } }, "domutils": { @@ -7409,8 +7433,8 @@ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", "dev": true, "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" + "dom-serializer": "0", + "domelementtype": "1" } }, "entities": { @@ -7431,11 +7455,11 @@ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", "dev": true, "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "htmlparser2": { @@ -7444,11 +7468,11 @@ "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", "dev": true, "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.3.0", - "domutils": "1.5.1", - "entities": "1.0.0", - "readable-stream": "1.1.14" + "domelementtype": "1", + "domhandler": "2.3", + "domutils": "1.5", + "entities": "1.0", + "readable-stream": "1.1" } }, "isarray": { @@ -7463,9 +7487,9 @@ "integrity": "sha1-a+GyP2JJ9T0pM3D9TRqqY84bTrA=", "dev": true, "requires": { - "argparse": "1.0.10", - "esprima": "2.7.3", - "inherit": "2.2.6" + "argparse": "^1.0.2", + "esprima": "^2.6.0", + "inherit": "^2.2.2" } }, "lodash": { @@ -7486,10 +7510,10 @@ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -7504,7 +7528,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -7513,7 +7537,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-json-comments": { @@ -7536,8 +7560,8 @@ "integrity": "sha1-9T684CmqMSW9iCkLpQ1k1FEKSHE=", "dev": true, "requires": { - "comment-parser": "0.3.2", - "jsdoctypeparser": "1.2.0" + "comment-parser": "^0.3.1", + "jsdoctypeparser": "~1.2.0" } }, "jscs-preset-wikimedia": { @@ -7553,17 +7577,17 @@ "dev": true, "requires": { "babylon": "7.0.0-beta.19", - "bluebird": "3.5.1", - "catharsis": "0.8.9", - "escape-string-regexp": "1.0.5", - "js2xmlparser": "3.0.0", - "klaw": "2.0.0", - "marked": "0.3.19", - "mkdirp": "0.5.1", - "requizzle": "0.2.1", - "strip-json-comments": "2.0.1", + "bluebird": "~3.5.0", + "catharsis": "~0.8.9", + "escape-string-regexp": "~1.0.5", + "js2xmlparser": "~3.0.0", + "klaw": "~2.0.0", + "marked": "~0.3.6", + "mkdirp": "~0.5.1", + "requizzle": "~0.2.1", + "strip-json-comments": "~2.0.1", "taffydb": "2.6.2", - "underscore": "1.8.3" + "underscore": "~1.8.3" }, "dependencies": { "babylon": { @@ -7586,7 +7610,7 @@ "integrity": "sha1-597cFToRhJ/8UUEUSuhqfvDCU5I=", "dev": true, "requires": { - "lodash": "3.10.1" + "lodash": "^3.7.0" }, "dependencies": { "lodash": { @@ -7609,14 +7633,14 @@ "integrity": "sha1-HnJSkVzmgbQIJ+4UJIxG006apiw=", "dev": true, "requires": { - "cli": "1.0.1", - "console-browserify": "1.1.0", - "exit": "0.1.2", - "htmlparser2": "3.8.3", - "lodash": "3.7.0", - "minimatch": "3.0.4", - "shelljs": "0.3.0", - "strip-json-comments": "1.0.4" + "cli": "~1.0.0", + "console-browserify": "1.1.x", + "exit": "0.1.x", + "htmlparser2": "3.8.x", + "lodash": "3.7.x", + "minimatch": "~3.0.2", + "shelljs": "0.3.x", + "strip-json-comments": "1.0.x" }, "dependencies": { "domhandler": { @@ -7625,7 +7649,7 @@ "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", "dev": true, "requires": { - "domelementtype": "1.3.0" + "domelementtype": "1" } }, "domutils": { @@ -7634,8 +7658,8 @@ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", "dev": true, "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" + "dom-serializer": "0", + "domelementtype": "1" } }, "entities": { @@ -7650,11 +7674,11 @@ "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", "dev": true, "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.3.0", - "domutils": "1.5.1", - "entities": "1.0.0", - "readable-stream": "1.1.14" + "domelementtype": "1", + "domhandler": "2.3", + "domutils": "1.5", + "entities": "1.0", + "readable-stream": "1.1" } }, "isarray": { @@ -7675,10 +7699,10 @@ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -7740,7 +7764,7 @@ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } }, "jsonlint": { @@ -7749,8 +7773,8 @@ "integrity": "sha512-jMVTMzP+7gU/IyC6hvKyWpUU8tmTkK5b3BPNuMI9U8Sit+YAWLlZwB6Y6YrdCxfg2kNz05p3XY3Bmm4m26Nv3A==", "dev": true, "requires": { - "JSV": "4.0.2", - "nomnom": "1.8.1" + "JSV": "^4.0.x", + "nomnom": "^1.5.x" } }, "jsprim": { @@ -7777,7 +7801,7 @@ "requires": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.10", - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "jws": { @@ -7785,8 +7809,8 @@ "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz", "integrity": "sha512-GsCSexFADNQUr8T5HPJvayTjvPIfoyJPtLQBwn5a4WZQchcrPMPMAWcC1AzJVRDKyD6ZPROPAxgv6rfHViO4uQ==", "requires": { - "jwa": "1.1.6", - "safe-buffer": "5.1.2" + "jwa": "^1.1.5", + "safe-buffer": "^5.0.1" } }, "keygrip": { @@ -7810,7 +7834,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "klaw": { @@ -7819,7 +7843,7 @@ "integrity": "sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.9" } }, "koa": { @@ -7828,30 +7852,30 @@ "integrity": "sha512-cchwbMeG2dv3E2xTAmheDAuvR53tPgJZN/Hf1h7bTzJLSPcFZp8/t5+bNKJ6GaQZoydhZQ+1GNruhKdj3lIrug==", "dev": true, "requires": { - "accepts": "1.3.5", - "content-disposition": "0.5.2", - "content-type": "1.0.4", - "cookies": "0.7.1", - "debug": "3.1.0", - "delegates": "1.0.0", - "depd": "1.1.2", - "destroy": "1.0.4", - "error-inject": "1.0.0", - "escape-html": "1.0.3", - "fresh": "0.5.2", - "http-assert": "1.3.0", - "http-errors": "1.6.3", - "is-generator-function": "1.0.7", - "koa-compose": "4.0.0", - "koa-convert": "1.2.0", - "koa-is-json": "1.0.0", - "mime-types": "2.1.18", - "on-finished": "2.3.0", + "accepts": "^1.2.2", + "content-disposition": "~0.5.0", + "content-type": "^1.0.0", + "cookies": "~0.7.0", + "debug": "*", + "delegates": "^1.0.0", + "depd": "^1.1.0", + "destroy": "^1.0.3", + "error-inject": "~1.0.0", + "escape-html": "~1.0.1", + "fresh": "^0.5.2", + "http-assert": "^1.1.0", + "http-errors": "^1.2.8", + "is-generator-function": "^1.0.3", + "koa-compose": "^4.0.0", + "koa-convert": "^1.2.0", + "koa-is-json": "^1.0.0", + "mime-types": "^2.0.7", + "on-finished": "^2.1.0", "only": "0.0.2", - "parseurl": "1.3.2", - "statuses": "1.5.0", - "type-is": "1.6.16", - "vary": "1.1.2" + "parseurl": "^1.3.0", + "statuses": "^1.2.0", + "type-is": "^1.5.5", + "vary": "^1.0.0" } }, "koa-compose": { @@ -7866,8 +7890,8 @@ "integrity": "sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA=", "dev": true, "requires": { - "co": "4.6.0", - "koa-compose": "3.2.1" + "co": "^4.6.0", + "koa-compose": "^3.0.0" }, "dependencies": { "koa-compose": { @@ -7876,7 +7900,7 @@ "integrity": "sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec=", "dev": true, "requires": { - "any-promise": "1.3.0" + "any-promise": "^1.1.0" } } } @@ -7893,7 +7917,7 @@ "integrity": "sha1-0bZNafhv8kry0EiDos7uFFIKVgA=", "dev": true, "requires": { - "through2": "2.0.3" + "through2": "^2.0.0" } }, "latest-version": { @@ -7902,7 +7926,7 @@ "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", "dev": true, "requires": { - "package-json": "4.0.1" + "package-json": "^4.0.0" } }, "lazy-cache": { @@ -7918,7 +7942,7 @@ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "levn": { @@ -7927,8 +7951,8 @@ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "load-json-file": { @@ -7937,10 +7961,10 @@ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" }, "dependencies": { "pify": { @@ -7957,8 +7981,8 @@ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -8125,7 +8149,7 @@ "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "loud-rejection": { @@ -8134,8 +8158,8 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, "lowercase-keys": { @@ -8149,8 +8173,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "make-dir": { @@ -8159,7 +8183,7 @@ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "map-obj": { @@ -8180,7 +8204,7 @@ "integrity": "sha512-aZGv6JBTHqfqAd09jmAlbKnAICTfIvb5Z8gXVxPB5WZtFfHMaAMdACL7tQflD2V+6/8KNcY8s6DYtWLgpJP5lA==", "dev": true, "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.4" } }, "math-random": { @@ -8195,7 +8219,7 @@ "integrity": "sha1-0FiOnxx0lUSS7NJKwKxs6ZfZLjM=", "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { @@ -8216,7 +8240,7 @@ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "meow": { @@ -8225,16 +8249,16 @@ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" }, "dependencies": { "find-up": { @@ -8243,8 +8267,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "load-json-file": { @@ -8253,11 +8277,11 @@ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" } }, "minimist": { @@ -8272,7 +8296,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-type": { @@ -8281,9 +8305,9 @@ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -8304,7 +8328,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "read-pkg": { @@ -8313,9 +8337,9 @@ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -8324,8 +8348,8 @@ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" } }, "strip-bom": { @@ -8334,7 +8358,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } } } @@ -8351,7 +8375,7 @@ "integrity": "sha1-65aDOLXe1c7tgs7AMH3sui2OqZQ=", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "methmeth": { @@ -8371,19 +8395,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" } }, "mime": { @@ -8401,7 +8425,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", "requires": { - "mime-db": "1.33.0" + "mime-db": "~1.33.0" } }, "mimic-fn": { @@ -8422,8 +8446,8 @@ "integrity": "sha512-JvlvRLqGIlk+AYypWrbrDmhsM+6JVx/xBM5S3AMwTBz1trPCEoPN/swO2L4Wu653fL7oJdgk8DMQyG/Gq3JkZg==", "dev": true, "requires": { - "hoek": "5.0.3", - "mime-db": "1.33.0" + "hoek": "5.x.x", + "mime-db": "1.x.x" }, "dependencies": { "hoek": { @@ -8446,7 +8470,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -8461,8 +8485,8 @@ "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", "dev": true, "requires": { - "arrify": "1.0.1", - "is-plain-obj": "1.1.0" + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0" } }, "mkdirp": { @@ -8505,7 +8529,7 @@ "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -8538,7 +8562,7 @@ "integrity": "sha1-sJ/IWG6qF/gdV1xK0C4Pej9rEQU=", "dev": true, "requires": { - "source-map": "0.1.43" + "source-map": "^0.1.34" }, "dependencies": { "source-map": { @@ -8547,7 +8571,7 @@ "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -8558,10 +8582,10 @@ "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", "dev": true, "requires": { - "array-differ": "1.0.0", - "array-union": "1.0.2", - "arrify": "1.0.1", - "minimatch": "3.0.4" + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "minimatch": "^3.0.0" } }, "mute-stream": { @@ -8577,9 +8601,9 @@ "dev": true, "optional": true, "requires": { - "mkdirp": "0.5.1", - "ncp": "2.0.0", - "rimraf": "2.4.5" + "mkdirp": "~0.5.1", + "ncp": "~2.0.0", + "rimraf": "~2.4.0" }, "dependencies": { "glob": { @@ -8589,11 +8613,11 @@ "dev": true, "optional": true, "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "rimraf": { @@ -8603,7 +8627,7 @@ "dev": true, "optional": true, "requires": { - "glob": "6.0.4" + "glob": "^6.0.1" } } } @@ -8639,7 +8663,7 @@ "integrity": "sha1-GfYZWRUZ8JZ2mlupqG5u7sgjw88=", "dev": true, "requires": { - "inherits": "2.0.3" + "inherits": "~2.0.1" } }, "next-tick": { @@ -8654,8 +8678,8 @@ "integrity": "sha512-kCVtUG9JyD//tsYrZY+/Y+2gUrANVSba8y23QkM5Znx0FOxlnl9Z4OVPBODmstKWTOvigfTO+Va1VPOu3eWSOQ==", "dev": true, "requires": { - "hoek": "5.0.3", - "vise": "3.0.0" + "hoek": "5.x.x", + "vise": "3.x.x" }, "dependencies": { "hoek": { @@ -8672,11 +8696,11 @@ "integrity": "sha512-v1J/FLUB9PfGqZLGDBhQqODkbLotP0WtLo9R4EJY2PPu5f5Xg4o0rA8FDlmrjFSv9vBBKcfnOSpfYYuu5RTHqg==", "dev": true, "requires": { - "@sinonjs/formatio": "2.0.0", - "just-extend": "1.1.27", - "lolex": "2.6.0", - "path-to-regexp": "1.7.0", - "text-encoding": "0.6.4" + "@sinonjs/formatio": "^2.0.0", + "just-extend": "^1.1.27", + "lolex": "^2.3.2", + "path-to-regexp": "^1.7.0", + "text-encoding": "^0.6.4" } }, "nock": { @@ -8685,15 +8709,15 @@ "integrity": "sha512-loyWSNToPH416mENYcqN/ORNwJvfMs+n1+kk9HS3zO/Eb/ci3TZqoNIWp5oYW9VIFh18jXHxnzYSsrXvA63RYA==", "dev": true, "requires": { - "chai": "4.1.2", - "debug": "3.1.0", - "deep-equal": "1.0.1", - "json-stringify-safe": "5.0.1", - "lodash": "4.17.10", - "mkdirp": "0.5.1", - "propagate": "1.0.0", - "qs": "6.5.2", - "semver": "5.5.0" + "chai": "^4.1.2", + "debug": "^3.1.0", + "deep-equal": "^1.0.0", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.5", + "mkdirp": "^0.5.0", + "propagate": "^1.0.0", + "qs": "^6.5.1", + "semver": "^5.5.0" } }, "node-forge": { @@ -8707,8 +8731,8 @@ "integrity": "sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=", "dev": true, "requires": { - "chalk": "0.4.0", - "underscore": "1.6.0" + "chalk": "~0.4.0", + "underscore": "~1.6.0" }, "dependencies": { "ansi-styles": { @@ -8723,9 +8747,9 @@ "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", "dev": true, "requires": { - "ansi-styles": "1.0.0", - "has-color": "0.1.7", - "strip-ansi": "0.1.1" + "ansi-styles": "~1.0.0", + "has-color": "~0.1.0", + "strip-ansi": "~0.1.0" } }, "strip-ansi": { @@ -8742,10 +8766,10 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { @@ -8754,7 +8778,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "normalize-url": { @@ -8763,9 +8787,9 @@ "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", "dev": true, "requires": { - "prepend-http": "2.0.0", - "query-string": "5.1.1", - "sort-keys": "2.0.0" + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" }, "dependencies": { "prepend-http": { @@ -8782,10 +8806,10 @@ "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", "dev": true, "requires": { - "hosted-git-info": "2.6.0", - "osenv": "0.1.5", - "semver": "5.5.0", - "validate-npm-package-name": "3.0.0" + "hosted-git-info": "^2.6.0", + "osenv": "^0.1.5", + "semver": "^5.5.0", + "validate-npm-package-name": "^3.0.0" } }, "npm-run-path": { @@ -8794,7 +8818,7 @@ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -8809,33 +8833,33 @@ "integrity": "sha512-PUFq1PSsx5OinSk5g5aaZygcDdI3QQT5XUlbR9QRMihtMS6w0Gm8xj4BxmKeeAlpQXC5M2DIhH16Y+KejceivQ==", "dev": true, "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "1.0.1", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "default-require-extensions": "1.0.0", - "find-cache-dir": "0.1.1", - "find-up": "2.1.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "1.10.1", - "istanbul-lib-report": "1.1.3", - "istanbul-lib-source-maps": "1.2.3", - "istanbul-reports": "1.4.0", - "md5-hex": "1.3.0", - "merge-source-map": "1.1.0", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "resolve-from": "2.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "4.2.1", + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.5.1", + "debug-log": "^1.0.1", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^2.1.0", + "foreground-child": "^1.5.3", + "glob": "^7.0.6", + "istanbul-lib-coverage": "^1.1.2", + "istanbul-lib-hook": "^1.1.0", + "istanbul-lib-instrument": "^1.10.0", + "istanbul-lib-report": "^1.1.3", + "istanbul-lib-source-maps": "^1.2.3", + "istanbul-reports": "^1.4.0", + "md5-hex": "^1.2.0", + "merge-source-map": "^1.1.0", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.1", + "spawn-wrap": "^1.4.2", + "test-exclude": "^4.2.0", "yargs": "11.1.0", - "yargs-parser": "8.1.0" + "yargs-parser": "^8.0.0" }, "dependencies": { "align-text": { @@ -8843,9 +8867,9 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" } }, "amdefine": { @@ -8868,7 +8892,7 @@ "bundled": true, "dev": true, "requires": { - "default-require-extensions": "1.0.0" + "default-require-extensions": "^1.0.0" } }, "archy": { @@ -8921,9 +8945,9 @@ "bundled": true, "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" } }, "babel-generator": { @@ -8931,14 +8955,14 @@ "bundled": true, "dev": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" } }, "babel-messages": { @@ -8946,7 +8970,7 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-runtime": { @@ -8954,8 +8978,8 @@ "bundled": true, "dev": true, "requires": { - "core-js": "2.5.6", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -8963,11 +8987,11 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { @@ -8975,15 +8999,15 @@ "bundled": true, "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.10" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, "babel-types": { @@ -8991,10 +9015,10 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -9012,13 +9036,13 @@ "bundled": true, "dev": true, "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { "define-property": { @@ -9026,7 +9050,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -9034,7 +9058,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -9042,7 +9066,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -9050,9 +9074,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -9072,7 +9096,7 @@ "bundled": true, "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -9081,16 +9105,16 @@ "bundled": true, "dev": true, "requires": { - "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.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "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.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -9098,7 +9122,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -9113,15 +9137,15 @@ "bundled": true, "dev": true, "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" }, "dependencies": { "isobject": { @@ -9136,9 +9160,9 @@ "bundled": true, "dev": true, "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" } }, "camelcase": { @@ -9153,8 +9177,8 @@ "dev": true, "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chalk": { @@ -9162,11 +9186,11 @@ "bundled": true, "dev": true, "requires": { - "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" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "class-utils": { @@ -9174,10 +9198,10 @@ "bundled": true, "dev": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -9185,7 +9209,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "isobject": { @@ -9201,8 +9225,8 @@ "dev": true, "optional": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" }, "dependencies": { @@ -9224,8 +9248,8 @@ "bundled": true, "dev": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "commondir": { @@ -9263,8 +9287,8 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.3", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, "debug": { @@ -9295,7 +9319,7 @@ "bundled": true, "dev": true, "requires": { - "strip-bom": "2.0.0" + "strip-bom": "^2.0.0" } }, "define-property": { @@ -9303,8 +9327,8 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -9312,7 +9336,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -9320,7 +9344,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -9328,9 +9352,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -9350,7 +9374,7 @@ "bundled": true, "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "error-ex": { @@ -9358,7 +9382,7 @@ "bundled": true, "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "escape-string-regexp": { @@ -9376,13 +9400,13 @@ "bundled": true, "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" }, "dependencies": { "cross-spawn": { @@ -9390,9 +9414,9 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } } } @@ -9402,13 +9426,13 @@ "bundled": true, "dev": true, "requires": { - "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" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -9416,7 +9440,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -9424,7 +9448,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -9434,8 +9458,8 @@ "bundled": true, "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -9443,7 +9467,7 @@ "bundled": true, "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -9453,14 +9477,14 @@ "bundled": true, "dev": true, "requires": { - "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" + "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.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -9468,7 +9492,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -9476,7 +9500,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -9484,7 +9508,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -9492,7 +9516,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -9500,9 +9524,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { @@ -9517,10 +9541,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -9528,7 +9552,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -9538,9 +9562,9 @@ "bundled": true, "dev": true, "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" } }, "find-up": { @@ -9548,7 +9572,7 @@ "bundled": true, "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "for-in": { @@ -9561,8 +9585,8 @@ "bundled": true, "dev": true, "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" + "cross-spawn": "^4", + "signal-exit": "^3.0.0" } }, "fragment-cache": { @@ -9570,7 +9594,7 @@ "bundled": true, "dev": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fs.realpath": { @@ -9598,12 +9622,12 @@ "bundled": true, "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "globals": { @@ -9621,10 +9645,10 @@ "bundled": true, "dev": true, "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" }, "dependencies": { "source-map": { @@ -9632,7 +9656,7 @@ "bundled": true, "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -9642,7 +9666,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { @@ -9655,9 +9679,9 @@ "bundled": true, "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -9672,8 +9696,8 @@ "bundled": true, "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { @@ -9681,7 +9705,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -9689,7 +9713,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -9699,7 +9723,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -9719,8 +9743,8 @@ "bundled": true, "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -9733,7 +9757,7 @@ "bundled": true, "dev": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -9746,7 +9770,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { @@ -9764,7 +9788,7 @@ "bundled": true, "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-data-descriptor": { @@ -9772,7 +9796,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-descriptor": { @@ -9780,9 +9804,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { @@ -9802,7 +9826,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -9815,7 +9839,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-odd": { @@ -9823,7 +9847,7 @@ "bundled": true, "dev": true, "requires": { - "is-number": "4.0.0" + "is-number": "^4.0.0" }, "dependencies": { "is-number": { @@ -9838,7 +9862,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -9888,7 +9912,7 @@ "bundled": true, "dev": true, "requires": { - "append-transform": "0.4.0" + "append-transform": "^0.4.0" } }, "istanbul-lib-instrument": { @@ -9896,13 +9920,13 @@ "bundled": true, "dev": true, "requires": { - "babel-generator": "6.26.1", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.2.0", - "semver": "5.5.0" + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.0", + "semver": "^5.3.0" } }, "istanbul-lib-report": { @@ -9910,10 +9934,10 @@ "bundled": true, "dev": true, "requires": { - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" }, "dependencies": { "supports-color": { @@ -9921,7 +9945,7 @@ "bundled": true, "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -9931,11 +9955,11 @@ "bundled": true, "dev": true, "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" }, "dependencies": { "debug": { @@ -9953,7 +9977,7 @@ "bundled": true, "dev": true, "requires": { - "handlebars": "4.0.11" + "handlebars": "^4.0.3" } }, "js-tokens": { @@ -9971,7 +9995,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lazy-cache": { @@ -9985,7 +10009,7 @@ "bundled": true, "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "load-json-file": { @@ -9993,11 +10017,11 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" } }, "locate-path": { @@ -10005,8 +10029,8 @@ "bundled": true, "dev": true, "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" }, "dependencies": { "path-exists": { @@ -10031,7 +10055,7 @@ "bundled": true, "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "lru-cache": { @@ -10039,8 +10063,8 @@ "bundled": true, "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "map-cache": { @@ -10053,7 +10077,7 @@ "bundled": true, "dev": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "md5-hex": { @@ -10061,7 +10085,7 @@ "bundled": true, "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { @@ -10074,7 +10098,7 @@ "bundled": true, "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "merge-source-map": { @@ -10082,7 +10106,7 @@ "bundled": true, "dev": true, "requires": { - "source-map": "0.6.1" + "source-map": "^0.6.1" }, "dependencies": { "source-map": { @@ -10097,19 +10121,19 @@ "bundled": true, "dev": true, "requires": { - "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.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "dependencies": { "kind-of": { @@ -10129,7 +10153,7 @@ "bundled": true, "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -10142,8 +10166,8 @@ "bundled": true, "dev": true, "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -10151,7 +10175,7 @@ "bundled": true, "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -10174,18 +10198,18 @@ "bundled": true, "dev": true, "requires": { - "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-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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-odd": "^2.0.0", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "arr-diff": { @@ -10210,10 +10234,10 @@ "bundled": true, "dev": true, "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "npm-run-path": { @@ -10221,7 +10245,7 @@ "bundled": true, "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -10239,9 +10263,9 @@ "bundled": true, "dev": true, "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { "define-property": { @@ -10249,7 +10273,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -10259,7 +10283,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -10274,7 +10298,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -10289,7 +10313,7 @@ "bundled": true, "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "optimist": { @@ -10297,8 +10321,8 @@ "bundled": true, "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "os-homedir": { @@ -10311,9 +10335,9 @@ "bundled": true, "dev": true, "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" } }, "p-finally": { @@ -10326,7 +10350,7 @@ "bundled": true, "dev": true, "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -10334,7 +10358,7 @@ "bundled": true, "dev": true, "requires": { - "p-limit": "1.2.0" + "p-limit": "^1.1.0" } }, "p-try": { @@ -10347,7 +10371,7 @@ "bundled": true, "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "pascalcase": { @@ -10360,7 +10384,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { @@ -10383,9 +10407,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -10403,7 +10427,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { @@ -10411,7 +10435,7 @@ "bundled": true, "dev": true, "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" }, "dependencies": { "find-up": { @@ -10419,8 +10443,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } @@ -10440,9 +10464,9 @@ "bundled": true, "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -10450,8 +10474,8 @@ "bundled": true, "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" }, "dependencies": { "find-up": { @@ -10459,8 +10483,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } @@ -10475,8 +10499,8 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "repeat-element": { @@ -10494,7 +10518,7 @@ "bundled": true, "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "require-directory": { @@ -10528,7 +10552,7 @@ "dev": true, "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { @@ -10536,7 +10560,7 @@ "bundled": true, "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-regex": { @@ -10544,7 +10568,7 @@ "bundled": true, "dev": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "semver": { @@ -10562,10 +10586,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -10573,7 +10597,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -10583,7 +10607,7 @@ "bundled": true, "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -10606,14 +10630,14 @@ "bundled": true, "dev": true, "requires": { - "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.1", - "use": "3.1.0" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "define-property": { @@ -10621,7 +10645,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -10629,7 +10653,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -10639,9 +10663,9 @@ "bundled": true, "dev": true, "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { @@ -10649,7 +10673,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -10657,7 +10681,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -10665,7 +10689,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -10673,9 +10697,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -10695,7 +10719,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "source-map": { @@ -10708,11 +10732,11 @@ "bundled": true, "dev": true, "requires": { - "atob": "2.1.1", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.0.0", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-url": { @@ -10725,12 +10749,12 @@ "bundled": true, "dev": true, "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.0" + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" } }, "spdx-correct": { @@ -10738,8 +10762,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -10752,8 +10776,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -10766,7 +10790,7 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "static-extend": { @@ -10774,8 +10798,8 @@ "bundled": true, "dev": true, "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -10783,7 +10807,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -10793,8 +10817,8 @@ "bundled": true, "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" }, "dependencies": { "ansi-regex": { @@ -10807,7 +10831,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -10817,7 +10841,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -10825,7 +10849,7 @@ "bundled": true, "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-eof": { @@ -10843,11 +10867,11 @@ "bundled": true, "dev": true, "requires": { - "arrify": "1.0.1", - "micromatch": "3.1.10", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" + "arrify": "^1.0.1", + "micromatch": "^3.1.8", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" }, "dependencies": { "arr-diff": { @@ -10865,16 +10889,16 @@ "bundled": true, "dev": true, "requires": { - "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.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "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.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -10882,7 +10906,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -10892,13 +10916,13 @@ "bundled": true, "dev": true, "requires": { - "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" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -10906,7 +10930,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -10914,7 +10938,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -10922,7 +10946,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -10930,7 +10954,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -10940,7 +10964,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -10948,7 +10972,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -10958,9 +10982,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -10975,14 +10999,14 @@ "bundled": true, "dev": true, "requires": { - "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" + "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.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -10990,7 +11014,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -10998,7 +11022,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -11008,10 +11032,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -11019,7 +11043,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -11029,7 +11053,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -11037,7 +11061,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -11045,9 +11069,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-number": { @@ -11055,7 +11079,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -11063,7 +11087,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -11083,19 +11107,19 @@ "bundled": true, "dev": true, "requires": { - "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.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } @@ -11110,7 +11134,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { @@ -11118,10 +11142,10 @@ "bundled": true, "dev": true, "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { @@ -11129,8 +11153,8 @@ "bundled": true, "dev": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "dependencies": { "is-number": { @@ -11138,7 +11162,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } @@ -11154,9 +11178,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "yargs": { @@ -11165,9 +11189,9 @@ "dev": true, "optional": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" } } @@ -11184,10 +11208,10 @@ "bundled": true, "dev": true, "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" }, "dependencies": { "extend-shallow": { @@ -11195,7 +11219,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { @@ -11203,10 +11227,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" } } } @@ -11216,8 +11240,8 @@ "bundled": true, "dev": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -11225,9 +11249,9 @@ "bundled": true, "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { "isobject": { @@ -11262,7 +11286,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.2" }, "dependencies": { "kind-of": { @@ -11277,8 +11301,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "which": { @@ -11286,7 +11310,7 @@ "bundled": true, "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -11310,8 +11334,8 @@ "bundled": true, "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -11319,7 +11343,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { @@ -11327,9 +11351,9 @@ "bundled": true, "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } } } @@ -11344,9 +11368,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, "y18n": { @@ -11364,18 +11388,18 @@ "bundled": true, "dev": true, "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "9.0.2" + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" }, "dependencies": { "ansi-regex": { @@ -11393,9 +11417,9 @@ "bundled": true, "dev": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } }, "strip-ansi": { @@ -11403,7 +11427,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "yargs-parser": { @@ -11411,7 +11435,7 @@ "bundled": true, "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } @@ -11421,7 +11445,7 @@ "bundled": true, "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { @@ -11456,8 +11480,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "observable-to-promise": { @@ -11466,8 +11490,8 @@ "integrity": "sha1-yCjw8NxH6fhq+KSXfF1VB2znqR8=", "dev": true, "requires": { - "is-observable": "0.2.0", - "symbol-observable": "1.2.0" + "is-observable": "^0.2.0", + "symbol-observable": "^1.0.4" }, "dependencies": { "is-observable": { @@ -11476,7 +11500,7 @@ "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=", "dev": true, "requires": { - "symbol-observable": "0.2.4" + "symbol-observable": "^0.2.2" }, "dependencies": { "symbol-observable": { @@ -11509,7 +11533,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -11518,7 +11542,7 @@ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "only": { @@ -11533,8 +11557,8 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "option-chain": { @@ -11549,12 +11573,12 @@ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" }, "dependencies": { "wordwrap": { @@ -11577,9 +11601,9 @@ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" } }, "os-tmpdir": { @@ -11594,8 +11618,8 @@ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "p-cancelable": { @@ -11622,7 +11646,7 @@ "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", "dev": true, "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -11631,7 +11655,7 @@ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "1.2.0" + "p-limit": "^1.1.0" } }, "p-timeout": { @@ -11640,7 +11664,7 @@ "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", "dev": true, "requires": { - "p-finally": "1.0.0" + "p-finally": "^1.0.0" } }, "p-try": { @@ -11655,10 +11679,10 @@ "integrity": "sha1-eK4ybIngWk2BO2hgGXevBcANKg0=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "lodash.flattendeep": "4.4.0", - "md5-hex": "2.0.0", - "release-zalgo": "1.0.0" + "graceful-fs": "^4.1.11", + "lodash.flattendeep": "^4.4.0", + "md5-hex": "^2.0.0", + "release-zalgo": "^1.0.0" } }, "package-json": { @@ -11667,10 +11691,10 @@ "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "dev": true, "requires": { - "got": "6.7.1", - "registry-auth-token": "3.3.2", - "registry-url": "3.1.0", - "semver": "5.5.0" + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" }, "dependencies": { "got": { @@ -11679,17 +11703,17 @@ "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "requires": { - "create-error-class": "3.0.2", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "is-redirect": "1.0.0", - "is-retry-allowed": "1.1.0", - "is-stream": "1.1.0", - "lowercase-keys": "1.0.1", - "safe-buffer": "5.1.2", - "timed-out": "4.0.1", - "unzip-response": "2.0.1", - "url-parse-lax": "1.0.0" + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" } } } @@ -11700,10 +11724,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" } }, "parse-json": { @@ -11712,7 +11736,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "parse-ms": { @@ -11780,7 +11804,7 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" }, "dependencies": { "pify": { @@ -11808,11 +11832,11 @@ "integrity": "sha512-HuPxmGxHsEFPWhdkwBs2gIrHhFqktIxMtudISTFN95RQ85ZZAOl8Ki6u3nnN/X8OUaGlIGldk/l8p2IR4/i76w==", "dev": true, "requires": { - "b64": "4.0.0", - "boom": "7.2.0", - "content": "4.0.5", - "hoek": "5.0.3", - "nigel": "3.0.1" + "b64": "4.x.x", + "boom": "7.x.x", + "content": "4.x.x", + "hoek": "5.x.x", + "nigel": "3.x.x" }, "dependencies": { "boom": { @@ -11821,7 +11845,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "hoek": { @@ -11855,7 +11879,7 @@ "integrity": "sha1-0dpn9UglY7t89X8oauKCLs+/NnA=", "dev": true, "requires": { - "pinkie": "1.0.0" + "pinkie": "^1.0.0" } }, "pkg-conf": { @@ -11864,8 +11888,8 @@ "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", "dev": true, "requires": { - "find-up": "2.1.0", - "load-json-file": "4.0.0" + "find-up": "^2.0.0", + "load-json-file": "^4.0.0" }, "dependencies": { "load-json-file": { @@ -11874,10 +11898,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "parse-json": { @@ -11886,8 +11910,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.1", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } } } @@ -11898,7 +11922,7 @@ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "2.1.0" + "find-up": "^2.1.0" } }, "pkginfo": { @@ -11913,7 +11937,7 @@ "integrity": "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo=", "dev": true, "requires": { - "irregular-plurals": "1.4.0" + "irregular-plurals": "^1.0.0" } }, "pluralize": { @@ -11928,8 +11952,8 @@ "integrity": "sha512-18VrjJAduIdPv7d9zWsfmKxTj3cQTYC5Pv5gtKxcWujYBpGbV+mhNSPYhlHW5xeWoazYyKfB9FEsPT12r5rY1A==", "dev": true, "requires": { - "hoek": "5.0.3", - "joi": "13.3.0" + "hoek": "5.x.x", + "joi": "13.x.x" }, "dependencies": { "hoek": { @@ -11946,9 +11970,9 @@ "integrity": "sha512-Toc9lLoUASwGqxBSJGTVcOQiDqjK+Z2XlWBg+IgYwQMY9vA2f7iMpXVc1GpPcfTSyM5lkxNo0oDwDRO+wm7XHA==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" }, "dependencies": { "source-map": { @@ -11965,11 +11989,11 @@ "integrity": "sha512-WaWSw+Ts283o6dzxW1BxIxoaHok7aSSGx4SaR6dW62Pk31ynv9DERDieuZpPYv5XaJ+H+zdcOaJQ+PvlasAOVw==", "dev": true, "requires": { - "define-properties": "1.1.2", - "empower": "1.2.3", - "power-assert-formatter": "1.4.1", - "universal-deep-strict-equal": "1.2.2", - "xtend": "4.0.1" + "define-properties": "^1.1.2", + "empower": "^1.2.3", + "power-assert-formatter": "^1.3.1", + "universal-deep-strict-equal": "^1.2.1", + "xtend": "^4.0.0" } }, "power-assert-context-formatter": { @@ -11978,8 +12002,8 @@ "integrity": "sha1-7bo1LT7YpgMRTWZyZazOYNaJzN8=", "dev": true, "requires": { - "core-js": "2.5.6", - "power-assert-context-traversal": "1.1.1" + "core-js": "^2.0.0", + "power-assert-context-traversal": "^1.1.1" } }, "power-assert-context-reducer-ast": { @@ -11988,11 +12012,11 @@ "integrity": "sha1-SEqZ4m9Jc/+IMuXFzHVnAuYJQXQ=", "dev": true, "requires": { - "acorn": "4.0.13", - "acorn-es7-plugin": "1.1.7", - "core-js": "2.5.6", - "espurify": "1.8.0", - "estraverse": "4.2.0" + "acorn": "^4.0.0", + "acorn-es7-plugin": "^1.0.12", + "core-js": "^2.0.0", + "espurify": "^1.6.0", + "estraverse": "^4.2.0" }, "dependencies": { "acorn": { @@ -12009,8 +12033,8 @@ "integrity": "sha1-iMq8oNE7Y1nwfT0+ivppkmRXftk=", "dev": true, "requires": { - "core-js": "2.5.6", - "estraverse": "4.2.0" + "core-js": "^2.0.0", + "estraverse": "^4.1.0" } }, "power-assert-formatter": { @@ -12019,13 +12043,13 @@ "integrity": "sha1-XcEl7VCj37HdomwZNH879Y7CiEo=", "dev": true, "requires": { - "core-js": "2.5.6", - "power-assert-context-formatter": "1.1.1", - "power-assert-context-reducer-ast": "1.1.2", - "power-assert-renderer-assertion": "1.1.1", - "power-assert-renderer-comparison": "1.1.1", - "power-assert-renderer-diagram": "1.1.2", - "power-assert-renderer-file": "1.1.1" + "core-js": "^2.0.0", + "power-assert-context-formatter": "^1.0.7", + "power-assert-context-reducer-ast": "^1.0.7", + "power-assert-renderer-assertion": "^1.0.7", + "power-assert-renderer-comparison": "^1.0.7", + "power-assert-renderer-diagram": "^1.0.7", + "power-assert-renderer-file": "^1.0.7" } }, "power-assert-renderer-assertion": { @@ -12034,8 +12058,8 @@ "integrity": "sha1-y/wOd+AIao+Wrz8djme57n4ozpg=", "dev": true, "requires": { - "power-assert-renderer-base": "1.1.1", - "power-assert-util-string-width": "1.1.1" + "power-assert-renderer-base": "^1.1.1", + "power-assert-util-string-width": "^1.1.1" } }, "power-assert-renderer-base": { @@ -12050,11 +12074,11 @@ "integrity": "sha1-10Odl9hRVr5OMKAPL7WnJRTOPAg=", "dev": true, "requires": { - "core-js": "2.5.6", - "diff-match-patch": "1.0.1", - "power-assert-renderer-base": "1.1.1", - "stringifier": "1.3.0", - "type-name": "2.0.2" + "core-js": "^2.0.0", + "diff-match-patch": "^1.0.0", + "power-assert-renderer-base": "^1.1.1", + "stringifier": "^1.3.0", + "type-name": "^2.0.1" } }, "power-assert-renderer-diagram": { @@ -12063,10 +12087,10 @@ "integrity": "sha1-ZV+PcRk1qbbVQbhjJ2VHF8Y3qYY=", "dev": true, "requires": { - "core-js": "2.5.6", - "power-assert-renderer-base": "1.1.1", - "power-assert-util-string-width": "1.1.1", - "stringifier": "1.3.0" + "core-js": "^2.0.0", + "power-assert-renderer-base": "^1.1.1", + "power-assert-util-string-width": "^1.1.1", + "stringifier": "^1.3.0" } }, "power-assert-renderer-file": { @@ -12075,7 +12099,7 @@ "integrity": "sha1-o34rvReMys0E5427eckv40kzxec=", "dev": true, "requires": { - "power-assert-renderer-base": "1.1.1" + "power-assert-renderer-base": "^1.1.1" } }, "power-assert-util-string-width": { @@ -12084,7 +12108,7 @@ "integrity": "sha1-vmWet5N/3S5smncmjar2S9W3xZI=", "dev": true, "requires": { - "eastasianwidth": "0.1.1" + "eastasianwidth": "^0.1.1" } }, "prelude-ls": { @@ -12117,8 +12141,8 @@ "integrity": "sha1-6crJx2v27lL+lC3ZxsQhMVOxKIE=", "dev": true, "requires": { - "parse-ms": "1.0.1", - "plur": "2.1.2" + "parse-ms": "^1.0.0", + "plur": "^2.1.2" }, "dependencies": { "parse-ms": { @@ -12152,11 +12176,11 @@ "integrity": "sha1-V3VPZPVD/XsIRXB8gY7OYY8F/9w=", "dev": true, "requires": { - "pkginfo": "0.4.1", - "read": "1.0.7", - "revalidator": "0.1.8", - "utile": "0.2.1", - "winston": "0.8.3" + "pkginfo": "0.x.x", + "read": "1.0.x", + "revalidator": "0.1.x", + "utile": "0.2.x", + "winston": "0.8.x" } }, "propagate": { @@ -12171,7 +12195,7 @@ "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", "dev": true, "requires": { - "forwarded": "0.1.2", + "forwarded": "~0.1.2", "ipaddr.js": "1.6.0" } }, @@ -12181,9 +12205,9 @@ "integrity": "sha512-fQr3VQrbdzHrdaDn3XuisVoJlJNDJizHAvUXw9IuXRR8BpV2x0N7LsCxrpJkeKfPbNjiNU/V5vc008cI0TmzzQ==", "dev": true, "requires": { - "fill-keys": "1.0.2", - "module-not-found-error": "1.0.1", - "resolve": "1.5.0" + "fill-keys": "^1.0.2", + "module-not-found-error": "^1.0.0", + "resolve": "~1.5.0" }, "dependencies": { "resolve": { @@ -12192,7 +12216,7 @@ "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } } } @@ -12218,9 +12242,9 @@ "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", "dev": true, "requires": { - "decode-uri-component": "0.2.0", - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" } }, "quick-lru": { @@ -12235,9 +12259,9 @@ "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", "dev": true, "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.1" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { "is-number": { @@ -12278,10 +12302,10 @@ "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", "dev": true, "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -12298,7 +12322,7 @@ "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", "dev": true, "requires": { - "mute-stream": "0.0.7" + "mute-stream": "~0.0.4" } }, "read-pkg": { @@ -12307,9 +12331,9 @@ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" } }, "read-pkg-up": { @@ -12318,8 +12342,8 @@ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" } }, "readable-stream": { @@ -12327,13 +12351,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "readdirp": { @@ -12342,10 +12366,10 @@ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.6", - "set-immediate-shim": "1.0.1" + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" } }, "redent": { @@ -12354,8 +12378,8 @@ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" }, "dependencies": { "indent-string": { @@ -12364,7 +12388,7 @@ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } } } @@ -12387,7 +12411,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regexpp": { @@ -12402,9 +12426,9 @@ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "dev": true, "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "registry-auth-token": { @@ -12413,8 +12437,8 @@ "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", "dev": true, "requires": { - "rc": "1.2.7", - "safe-buffer": "5.1.2" + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" } }, "registry-url": { @@ -12423,7 +12447,7 @@ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "dev": true, "requires": { - "rc": "1.2.7" + "rc": "^1.0.1" } }, "regjsgen": { @@ -12438,7 +12462,7 @@ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" } }, "release-zalgo": { @@ -12447,7 +12471,7 @@ "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", "dev": true, "requires": { - "es6-error": "4.1.1" + "es6-error": "^4.0.1" } }, "remove-trailing-separator": { @@ -12474,7 +12498,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "request": { @@ -12482,27 +12506,27 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.86.0.tgz", "integrity": "sha512-BQZih67o9r+Ys94tcIW4S7Uu8pthjrQVxhsZ/weOwHbDfACxvIyvnAbzFQxjy1jMtvFSzv5zf4my6cZsJBbVzw==", "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.7.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.0.3", - "hawk": "6.0.2", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.18", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.6.0", - "uuid": "3.2.1" + "aws-sign2": "~0.7.0", + "aws4": "^1.6.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.1", + "forever-agent": "~0.6.1", + "form-data": "~2.3.1", + "har-validator": "~5.0.3", + "hawk": "~6.0.2", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" } }, "require-directory": { @@ -12529,8 +12553,8 @@ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "dev": true, "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" }, "dependencies": { "resolve-from": { @@ -12547,7 +12571,7 @@ "integrity": "sha1-aUPDUwxNmn5G8c3dUcFY/GcM294=", "dev": true, "requires": { - "underscore": "1.6.0" + "underscore": "~1.6.0" } }, "reserved-words": { @@ -12568,7 +12592,7 @@ "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", "dev": true, "requires": { - "resolve-from": "3.0.0" + "resolve-from": "^3.0.0" } }, "resolve-from": { @@ -12583,7 +12607,7 @@ "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", "dev": true, "requires": { - "lowercase-keys": "1.0.1" + "lowercase-keys": "^1.0.0" } }, "restify": { @@ -12592,28 +12616,28 @@ "integrity": "sha512-UXYtu437a5TSim0PgjCiccdUfQS/00VC9gDxqR2/GKaW19OtY3DYDg3HByCAnyO5GiL2y0pBI572wGcxZGP26A==", "dev": true, "requires": { - "assert-plus": "1.0.0", - "bunyan": "1.8.12", - "csv": "1.2.1", - "dtrace-provider": "0.8.6", - "escape-regexp-component": "1.0.2", - "ewma": "2.0.1", - "find-my-way": "1.12.0", - "formidable": "1.2.1", - "http-signature": "1.2.0", - "lodash": "4.17.10", - "lru-cache": "4.1.3", - "mime": "1.6.0", - "negotiator": "0.6.1", - "once": "1.4.0", - "pidusage": "1.2.0", - "qs": "6.5.2", - "restify-errors": "5.0.0", - "semver": "5.5.0", - "spdy": "3.4.7", - "uuid": "3.2.1", - "vasync": "1.6.4", - "verror": "1.10.0" + "assert-plus": "^1.0.0", + "bunyan": "^1.8.12", + "csv": "^1.1.1", + "dtrace-provider": "^0.8.1", + "escape-regexp-component": "^1.0.2", + "ewma": "^2.0.1", + "find-my-way": "^1.12.0", + "formidable": "^1.2.1", + "http-signature": "^1.2.0", + "lodash": "^4.17.10", + "lru-cache": "^4.1.3", + "mime": "^1.5.0", + "negotiator": "^0.6.1", + "once": "^1.4.0", + "pidusage": "^1.2.0", + "qs": "^6.5.2", + "restify-errors": "^5.0.0", + "semver": "^5.4.1", + "spdy": "^3.4.7", + "uuid": "^3.1.0", + "vasync": "^1.6.4", + "verror": "^1.10.0" }, "dependencies": { "mime": { @@ -12630,10 +12654,10 @@ "integrity": "sha512-+vby9Kxf7qlzvbZSTIEGkIixkeHG+pVCl34dk6eKnL+ua4pCezpdLT/1/eabzPZb65ADrgoc04jeWrrF1E1pvQ==", "dev": true, "requires": { - "assert-plus": "1.0.0", - "lodash": "4.17.10", - "safe-json-stringify": "1.1.0", - "verror": "1.10.0" + "assert-plus": "^1.0.0", + "lodash": "^4.2.1", + "safe-json-stringify": "^1.0.3", + "verror": "^1.8.1" } }, "restore-cursor": { @@ -12642,8 +12666,8 @@ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "retry-axios": { @@ -12656,8 +12680,8 @@ "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-3.3.1.tgz", "integrity": "sha512-PjAmtWIxjNj4Co/6FRtBl8afRP3CxrrIAnUzb1dzydfROd+6xt7xAebFeskgQgkfFf8NmzrXIoaB3HxmswXyxw==", "requires": { - "request": "2.86.0", - "through2": "2.0.3" + "request": "^2.81.0", + "through2": "^2.0.0" } }, "revalidator": { @@ -12673,7 +12697,7 @@ "dev": true, "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { @@ -12682,7 +12706,7 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "run-async": { @@ -12691,7 +12715,7 @@ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "rx-lite": { @@ -12706,7 +12730,24 @@ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "dev": true, "requires": { - "rx-lite": "4.0.8" + "rx-lite": "*" + } + }, + "rxjs": { + "version": "5.5.10", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.10.tgz", + "integrity": "sha512-SRjimIDUHJkon+2hFo7xnvNC4ZEHGzCRwh9P7nzX3zPkCGFEg/tuElrNR7L/rZMagnK2JeH2jQwPRpmyXyLB6A==", + "dev": true, + "requires": { + "symbol-observable": "1.0.1" + }, + "dependencies": { + "symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", + "dev": true + } } }, "safe-buffer": { @@ -12739,16 +12780,16 @@ "integrity": "sha512-52ThA+Z7h6BnvpSVbURwChl10XZrps5q7ytjTwWcIe9bmJwnVP6cpEVK2NvDOUhGupoqAvNbUz3cpnJDp4+/pg==", "dev": true, "requires": { - "chalk": "2.4.1", - "htmlparser2": "3.9.2", - "lodash.clonedeep": "4.5.0", - "lodash.escaperegexp": "4.1.2", - "lodash.isplainobject": "4.0.6", - "lodash.isstring": "4.0.1", - "lodash.mergewith": "4.6.1", - "postcss": "6.0.22", - "srcset": "1.0.0", - "xtend": "4.0.1" + "chalk": "^2.3.0", + "htmlparser2": "^3.9.0", + "lodash.clonedeep": "^4.5.0", + "lodash.escaperegexp": "^4.1.2", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.mergewith": "^4.6.0", + "postcss": "^6.0.14", + "srcset": "^1.0.0", + "xtend": "^4.0.0" } }, "select-hose": { @@ -12769,7 +12810,7 @@ "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "dev": true, "requires": { - "semver": "5.5.0" + "semver": "^5.0.3" } }, "send": { @@ -12779,18 +12820,18 @@ "dev": true, "requires": { "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.6.3", + "http-errors": "~1.6.2", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.4.0" + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" }, "dependencies": { "debug": { @@ -12828,9 +12869,9 @@ "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "dev": true, "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", "send": "0.16.2" } }, @@ -12858,7 +12899,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -12879,8 +12920,8 @@ "integrity": "sha1-x+dFXRHWD2ts08Q+FaO0McF+VWY=", "dev": true, "requires": { - "hoek": "5.0.3", - "joi": "13.3.0" + "hoek": "5.x.x", + "joi": "13.x.x" }, "dependencies": { "hoek": { @@ -12903,13 +12944,13 @@ "integrity": "sha512-pmf05hFgEZUS52AGJcsVjOjqAyJW2yo14cOwVYvzCyw7+inv06YXkLyW75WG6X6p951lzkoKh51L2sNbR9CDvw==", "dev": true, "requires": { - "@sinonjs/formatio": "2.0.0", - "diff": "3.5.0", - "lodash.get": "4.4.2", - "lolex": "2.6.0", - "nise": "1.3.3", - "supports-color": "5.4.0", - "type-detect": "4.0.8" + "@sinonjs/formatio": "^2.0.0", + "diff": "^3.1.0", + "lodash.get": "^4.4.2", + "lolex": "^2.2.0", + "nise": "^1.2.0", + "supports-color": "^5.1.0", + "type-detect": "^4.0.5" } }, "slash": { @@ -12924,7 +12965,7 @@ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0" + "is-fullwidth-code-point": "^2.0.0" } }, "slide": { @@ -12938,7 +12979,7 @@ "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", "requires": { - "hoek": "4.2.1" + "hoek": "4.x.x" } }, "sort-keys": { @@ -12947,7 +12988,7 @@ "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", "dev": true, "requires": { - "is-plain-obj": "1.1.0" + "is-plain-obj": "^1.0.0" } }, "source-map": { @@ -12962,8 +13003,8 @@ "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", "dev": true, "requires": { - "buffer-from": "1.0.0", - "source-map": "0.6.1" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" }, "dependencies": { "source-map": { @@ -12980,9 +13021,9 @@ "integrity": "sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==", "dev": true, "requires": { - "array-find-index": "1.0.2", - "spdx-expression-parse": "3.0.0", - "spdx-ranges": "2.0.0" + "array-find-index": "^1.0.2", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" } }, "spdx-correct": { @@ -12991,8 +13032,8 @@ "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "dev": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -13007,8 +13048,8 @@ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -13029,9 +13070,9 @@ "integrity": "sha512-OcARj6U1OuVv98SVrRqgrR30sVocONtoPpnX8Xz4vXNrFVedqtbgkA+0KmQoXIQ2xjfltPPRVIMeNzKEFLWWKQ==", "dev": true, "requires": { - "spdx-compare": "1.0.0", - "spdx-expression-parse": "3.0.0", - "spdx-ranges": "2.0.0" + "spdx-compare": "^1.0.0", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" } }, "spdy": { @@ -13040,12 +13081,12 @@ "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", "dev": true, "requires": { - "debug": "2.6.9", - "handle-thing": "1.2.5", - "http-deceiver": "1.2.7", - "safe-buffer": "5.1.2", - "select-hose": "2.0.0", - "spdy-transport": "2.1.0" + "debug": "^2.6.8", + "handle-thing": "^1.2.5", + "http-deceiver": "^1.2.7", + "safe-buffer": "^5.0.1", + "select-hose": "^2.0.0", + "spdy-transport": "^2.0.18" }, "dependencies": { "debug": { @@ -13065,13 +13106,13 @@ "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", "dev": true, "requires": { - "debug": "2.6.9", - "detect-node": "2.0.3", - "hpack.js": "2.1.6", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "safe-buffer": "5.1.2", - "wbuf": "1.7.3" + "debug": "^2.6.8", + "detect-node": "^2.0.3", + "hpack.js": "^2.1.6", + "obuf": "^1.1.1", + "readable-stream": "^2.2.9", + "safe-buffer": "^5.0.1", + "wbuf": "^1.7.2" }, "dependencies": { "debug": { @@ -13090,8 +13131,8 @@ "resolved": "https://registry.npmjs.org/split-array-stream/-/split-array-stream-1.0.3.tgz", "integrity": "sha1-0rdajl4Ngk1S/eyLgiWDncLjXfo=", "requires": { - "async": "2.6.0", - "is-stream-ended": "0.1.4" + "async": "^2.4.0", + "is-stream-ended": "^0.1.0" } }, "sprintf-js": { @@ -13106,8 +13147,8 @@ "integrity": "sha1-pWad4StC87HV6D7QPHEEb8SPQe8=", "dev": true, "requires": { - "array-uniq": "1.0.3", - "number-is-nan": "1.0.1" + "array-uniq": "^1.0.2", + "number-is-nan": "^1.0.0" } }, "sshpk": { @@ -13115,14 +13156,14 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz", "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=", "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" } }, "stack-trace": { @@ -13143,12 +13184,12 @@ "integrity": "sha512-jR45n5ZMAkasw0xoE9j9TuLmJv4Sa3AkXe+6yIFT6a07kXYHgSbuD2OVGECdZGFxTmvNqLwL1iRIgvq6O6rq+A==", "dev": true, "requires": { - "boom": "7.2.0", - "bounce": "1.2.0", - "cryptiles": "4.1.1", - "hoek": "5.0.3", - "iron": "5.0.4", - "joi": "13.3.0" + "boom": "7.x.x", + "bounce": "1.x.x", + "cryptiles": "4.x.x", + "hoek": "5.x.x", + "iron": "5.x.x", + "joi": "13.x.x" }, "dependencies": { "boom": { @@ -13157,7 +13198,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "cryptiles": { @@ -13166,7 +13207,7 @@ "integrity": "sha512-YuQUPbcOmaZsdvxJZ25DCA1W+lLIRoPJKBDKin+St1RCYEERSfoe1d25B1MvWNHN3e8SpFSVsqYvEUjp8J9H2w==", "dev": true, "requires": { - "boom": "7.2.0" + "boom": "7.x.x" } }, "hoek": { @@ -13188,7 +13229,7 @@ "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.4.tgz", "integrity": "sha512-D243NJaYs/xBN2QnoiMDY7IesJFIK7gEhnvAYqJa5JvDdnh2dC4qDBwlCf0ohPpX2QRlA/4gnbnPd3rs3KxVcA==", "requires": { - "stubs": "3.0.0" + "stubs": "^3.0.0" } }, "stream-shift": { @@ -13225,8 +13266,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "string_decoder": { @@ -13234,7 +13275,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "stringifier": { @@ -13243,9 +13284,9 @@ "integrity": "sha1-3vGDQvaTPbDy2/yaoCF1tEjBeVk=", "dev": true, "requires": { - "core-js": "2.5.6", - "traverse": "0.6.6", - "type-name": "2.0.2" + "core-js": "^2.0.0", + "traverse": "^0.6.6", + "type-name": "^2.0.1" } }, "strip-ansi": { @@ -13254,7 +13295,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" }, "dependencies": { "ansi-regex": { @@ -13277,7 +13318,7 @@ "integrity": "sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.1" } }, "strip-eof": { @@ -13292,7 +13333,7 @@ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, "requires": { - "get-stdin": "4.0.1" + "get-stdin": "^4.0.1" } }, "strip-json-comments": { @@ -13312,11 +13353,11 @@ "integrity": "sha512-IcJUvRjeR+NB437Iq+LORFNJW4L6Knqkj3oQrBrkdhIaS2VKJvx/9aYEq7vi+PEx5/OuehOL/40SkSZotLi/MA==", "dev": true, "requires": { - "boom": "7.2.0", - "content": "4.0.5", - "hoek": "5.0.3", - "pez": "4.0.2", - "wreck": "14.0.2" + "boom": "7.x.x", + "content": "4.x.x", + "hoek": "5.x.x", + "pez": "4.x.x", + "wreck": "14.x.x" }, "dependencies": { "boom": { @@ -13325,7 +13366,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "hoek": { @@ -13342,16 +13383,16 @@ "integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==", "dev": true, "requires": { - "component-emitter": "1.2.1", - "cookiejar": "2.1.1", - "debug": "3.1.0", - "extend": "3.0.1", - "form-data": "2.3.2", - "formidable": "1.2.1", - "methods": "1.1.2", - "mime": "1.6.0", - "qs": "6.5.2", - "readable-stream": "2.3.6" + "component-emitter": "^1.2.0", + "cookiejar": "^2.1.0", + "debug": "^3.1.0", + "extend": "^3.0.0", + "form-data": "^2.3.1", + "formidable": "^1.2.0", + "methods": "^1.1.1", + "mime": "^1.4.1", + "qs": "^6.5.1", + "readable-stream": "^2.3.5" }, "dependencies": { "mime": { @@ -13368,11 +13409,11 @@ "integrity": "sha512-HZJ3geIMPgVwKk2VsmO5YHqnnJYl6bV5A9JW2uzqV43WmpgliNEYbuvukfor7URpaqpxuw3CfZ3ONdVbZjCgIA==", "dev": true, "requires": { - "arrify": "1.0.1", - "indent-string": "3.2.0", - "js-yaml": "3.11.0", - "serialize-error": "2.1.0", - "strip-ansi": "4.0.0" + "arrify": "^1.0.1", + "indent-string": "^3.2.0", + "js-yaml": "^3.10.0", + "serialize-error": "^2.1.0", + "strip-ansi": "^4.0.0" } }, "supertest": { @@ -13381,8 +13422,8 @@ "integrity": "sha1-jUu2j9GDDuBwM7HFpamkAhyWUpY=", "dev": true, "requires": { - "methods": "1.1.2", - "superagent": "3.8.3" + "methods": "~1.1.2", + "superagent": "^3.0.0" } }, "supports-color": { @@ -13391,7 +13432,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" }, "dependencies": { "has-flag": { @@ -13414,12 +13455,12 @@ "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "dev": true, "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.4.1", - "lodash": "4.17.10", + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "string-width": "^2.1.1" } }, "taffydb": { @@ -13440,7 +13481,7 @@ "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "dev": true, "requires": { - "execa": "0.7.0" + "execa": "^0.7.0" } }, "text-encoding": { @@ -13466,8 +13507,8 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" } }, "time-zone": { @@ -13488,7 +13529,7 @@ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-double-quotes": { @@ -13515,7 +13556,7 @@ "integrity": "sha512-Tlu1fGlR90iCdIPURqPiufqAlCZYzLjHYVVbcFWDMcX7+tK8hdZWAfsMrD/pBul9jqHHwFjNdf1WaxA9vTRRhw==", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" }, "dependencies": { "hoek": { @@ -13531,7 +13572,7 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" } }, "traverse": { @@ -13570,18 +13611,18 @@ "integrity": "sha1-EeJrzLiK+gLdDZlWyuPUVAtfVMM=", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "builtin-modules": "1.1.1", - "chalk": "2.4.1", - "commander": "2.15.1", - "diff": "3.5.0", - "glob": "7.1.2", - "js-yaml": "3.11.0", - "minimatch": "3.0.4", - "resolve": "1.7.1", - "semver": "5.5.0", - "tslib": "1.9.1", - "tsutils": "2.27.0" + "babel-code-frame": "^6.22.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^3.2.0", + "glob": "^7.1.1", + "js-yaml": "^3.7.0", + "minimatch": "^3.0.4", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.12.1" }, "dependencies": { "resolve": { @@ -13590,7 +13631,7 @@ "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } } } @@ -13601,7 +13642,7 @@ "integrity": "sha512-JcyX25oM9pFcb3zh60OqG1St8p/uSqC5Bgipdo3ieacB/Ao4dPhm7hAtKT9NrEu23CyYrrgJPV3CqYfo+/+T4w==", "dev": true, "requires": { - "tslib": "1.9.1" + "tslib": "^1.8.1" } }, "tunnel-agent": { @@ -13609,7 +13650,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -13624,7 +13665,7 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-detect": { @@ -13640,7 +13681,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.18" + "mime-types": "~2.1.18" } }, "type-name": { @@ -13667,9 +13708,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "camelcase": { @@ -13686,9 +13727,9 @@ "dev": true, "optional": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" } } @@ -13728,7 +13769,7 @@ "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", "dev": true, "requires": { - "crypto-random-string": "1.0.0" + "crypto-random-string": "^1.0.0" } }, "unique-temp-dir": { @@ -13737,8 +13778,8 @@ "integrity": "sha1-bc6VsmgcoAPuv7MEpBX5y6vMU4U=", "dev": true, "requires": { - "mkdirp": "0.5.1", - "os-tmpdir": "1.0.2", + "mkdirp": "^0.5.1", + "os-tmpdir": "^1.0.1", "uid2": "0.0.3" } }, @@ -13748,9 +13789,9 @@ "integrity": "sha1-DaSsL3PP95JMgfpN4BjKViyisKc=", "dev": true, "requires": { - "array-filter": "1.0.0", + "array-filter": "^1.0.0", "indexof": "0.0.1", - "object-keys": "1.0.11" + "object-keys": "^1.0.0" } }, "universalify": { @@ -13777,16 +13818,16 @@ "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", "dev": true, "requires": { - "boxen": "1.3.0", - "chalk": "2.4.1", - "configstore": "3.1.2", - "import-lazy": "2.1.0", - "is-ci": "1.1.0", - "is-installed-globally": "0.1.0", - "is-npm": "1.0.0", - "latest-version": "3.1.0", - "semver-diff": "2.1.0", - "xdg-basedir": "3.0.0" + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" } }, "url-parse-lax": { @@ -13795,7 +13836,7 @@ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "dev": true, "requires": { - "prepend-http": "1.0.4" + "prepend-http": "^1.0.1" } }, "url-to-options": { @@ -13821,12 +13862,12 @@ "integrity": "sha1-kwyI6ZCY1iIINMNWy9mncFItkNc=", "dev": true, "requires": { - "async": "0.2.10", - "deep-equal": "1.0.1", - "i": "0.3.6", - "mkdirp": "0.5.1", - "ncp": "0.4.2", - "rimraf": "2.6.2" + "async": "~0.2.9", + "deep-equal": "*", + "i": "0.3.x", + "mkdirp": "0.x.x", + "ncp": "0.4.x", + "rimraf": "2.x.x" }, "dependencies": { "async": { @@ -13860,8 +13901,8 @@ "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "dev": true, "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "validate-npm-package-name": { @@ -13870,7 +13911,7 @@ "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "dev": true, "requires": { - "builtins": "1.0.3" + "builtins": "^1.0.3" } }, "vary": { @@ -13910,9 +13951,9 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" } }, "vise": { @@ -13921,7 +13962,7 @@ "integrity": "sha512-kBFZLmiL1Vm3rHXphkhvvAcsjgeQXRrOFCbJb0I50YZZP4HGRNH+xGzK3matIMcpbsfr3I02u9odj4oCD0TWgA==", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" }, "dependencies": { "hoek": { @@ -13944,10 +13985,10 @@ "integrity": "sha1-LUxZviLivyYY3fWXq0uqkjvnIA0=", "dev": true, "requires": { - "glob": "7.1.2", - "uuid": "2.0.3", - "vow": "0.4.17", - "vow-queue": "0.4.3" + "glob": "^7.0.5", + "uuid": "^2.0.2", + "vow": "^0.4.7", + "vow-queue": "^0.4.1" }, "dependencies": { "uuid": { @@ -13964,7 +14005,7 @@ "integrity": "sha512-/poAKDTFL3zYbeQg7cl4BGcfP4sGgXKrHnRFSKj97dteUFu8oyXMwIcdwu8NSx/RmPGIuYx1Bik/y5vU4H/VKw==", "dev": true, "requires": { - "vow": "0.4.17" + "vow": "^0.4.17" } }, "wbuf": { @@ -13973,7 +14014,7 @@ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, "requires": { - "minimalistic-assert": "1.0.1" + "minimalistic-assert": "^1.0.0" } }, "well-known-symbols": { @@ -13988,7 +14029,7 @@ "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -14003,7 +14044,7 @@ "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", "dev": true, "requires": { - "string-width": "2.1.1" + "string-width": "^2.1.1" } }, "window-size": { @@ -14019,13 +14060,13 @@ "integrity": "sha1-ZLar9M0Brcrv1QCTk7HY6L7BnbA=", "dev": true, "requires": { - "async": "0.2.10", - "colors": "0.6.2", - "cycle": "1.0.3", - "eyes": "0.1.8", - "isstream": "0.1.2", - "pkginfo": "0.3.1", - "stack-trace": "0.0.10" + "async": "0.2.x", + "colors": "0.6.x", + "cycle": "1.0.x", + "eyes": "0.1.x", + "isstream": "0.1.x", + "pkginfo": "0.3.x", + "stack-trace": "0.0.x" }, "dependencies": { "async": { @@ -14060,8 +14101,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -14070,7 +14111,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { @@ -14079,9 +14120,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "strip-ansi": { @@ -14090,7 +14131,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } } } @@ -14106,8 +14147,8 @@ "integrity": "sha512-QCm3omWNJUseqrSzwX2QZi1rBbmCfbFHJAXputLLyZ37VSiFnSYQB0ms/mPnSvrlIu7GVm89Y/gBNhSY26uVIQ==", "dev": true, "requires": { - "boom": "7.2.0", - "hoek": "5.0.3" + "boom": "7.x.x", + "hoek": "5.x.x" }, "dependencies": { "boom": { @@ -14116,7 +14157,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "hoek": { @@ -14133,7 +14174,7 @@ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "write-file-atomic": { @@ -14142,9 +14183,9 @@ "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" } }, "write-json-file": { @@ -14153,12 +14194,12 @@ "integrity": "sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=", "dev": true, "requires": { - "detect-indent": "5.0.0", - "graceful-fs": "4.1.11", - "make-dir": "1.3.0", - "pify": "3.0.0", - "sort-keys": "2.0.0", - "write-file-atomic": "2.3.0" + "detect-indent": "^5.0.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "pify": "^3.0.0", + "sort-keys": "^2.0.0", + "write-file-atomic": "^2.0.0" }, "dependencies": { "detect-indent": { @@ -14175,8 +14216,8 @@ "integrity": "sha1-AwqZlMyZk9JbTnWp8aGSNgcpHOk=", "dev": true, "requires": { - "sort-keys": "2.0.0", - "write-json-file": "2.3.0" + "sort-keys": "^2.0.0", + "write-json-file": "^2.2.0" } }, "xdg-basedir": { @@ -14191,7 +14232,7 @@ "integrity": "sha1-LIaIjy1OrehQ+jjKf3Ij9yCVFuE=", "dev": true, "requires": { - "lodash": "3.10.1" + "lodash": "^3.5.0" }, "dependencies": { "lodash": { @@ -14230,18 +14271,18 @@ "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", "dev": true, "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "9.0.2" + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" }, "dependencies": { "cliui": { @@ -14250,9 +14291,9 @@ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } } } @@ -14263,7 +14304,7 @@ "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 5afadc6fdb4..fd4718c8d48 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -31,24 +31,25 @@ "Tomoaki Abe " ], "scripts": { - "docs": "node node_modules/.bin/repo-tools exec -- jsdoc -c .jsdoc.js", + "docs": "jsdoc -c .jsdoc.js", "generate-scaffolding": "node node_modules/.bin/repo-tools generate all && node node_modules/.bin/repo-tools generate lib_samples_readme -l samples/ --config ../.cloud-repo-tools.json", - "lint": "node node_modules/.bin/repo-tools lint --cmd eslint -- src/ samples/ system-test/ test/", - "prettier": "node node_modules/.bin/repo-tools exec -- prettier --write src/*.js src/*/*.js samples/*.js samples/*/*.js test/*.js test/*/*.js test/*/*/*.js system-test/*.js system-test/*/*.js", + "lint": "eslint samples/ && gts check && jsgl --local .", + "prettier": "prettier --write samples/*.js samples/*/*.js", "presystem-test": "npm run compile", - "system-test": "nyc --exclude=\"error-message.js\" mocha ./build/system-test/*.js", - "cover": "nyc --exclude=\"fuzzer.js\" --reporter=lcov mocha --require intelli-espower-loader ./build/test/unit/*.js ./build/test/unit/**/*.js && nyc report", + "system-test": "nyc --exclude=\"error-message.js\" mocha build/system-test", + "cover": "nyc --exclude=\"fuzzer.js\" --reporter=lcov mocha --require intelli-espower-loader ./build/test/unit ./build/test/unit/**/ && nyc report", "presamples-test": "npm run compile", "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", - "test-no-cover": "node node_modules/.bin/repo-tools test run --cmd mocha -- ./build/test/unit/*.js ./build/test/unit/**/*.js --no-timeouts", - "test": "node node_modules/.bin/repo-tools test run --cmd npm -- run cover", + "test-no-cover": "mocha build/test/unit build/test/unit/**/ --timeout 20000", + "test-only": "npm run cover", + "test": "npm run test-only", "check": "gts check", "clean": "gts clean", "compile": "tsc -p .", "postcompile": "cpy src/types.d.ts build/src/ && cpy 'utils/**/*.*' build --parents && cpy 'test/**/*.*' build --parents", "fix": "gts fix", "prepare": "npm run compile", - "pretest": "npm run compile", + "pretest-only": "npm run compile", "posttest": "npm run check && npm run license-check", "license-check": "jsgl --local ." }, @@ -102,7 +103,7 @@ "express-serve-static-core": "^0.1.1", "extend": "^3.0.0", "glob": "^7.1.2", - "gts": "^0.5.3", + "gts": "^0.6.0", "hapi": "^17.1.1", "ink-docstrap": "^1.3.0", "intelli-espower-loader": "^1.0.1", diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index 6c4a95b073e..5fed7768f33 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -14,9 +14,9 @@ * limitations under the License. */ -import * as assert from 'assert'; +import assert from 'assert'; import * as is from 'is'; -import * as nock from 'nock'; +import nock from 'nock'; import {ErrorMessage} from '../src/classes/error-message'; import {RequestHandler} from '../src/google-apis/auth-client'; diff --git a/handwritten/error-reporting/system-test/test-install.ts b/handwritten/error-reporting/system-test/test-install.ts index c38a0587708..d49dc48aa1f 100644 --- a/handwritten/error-reporting/system-test/test-install.ts +++ b/handwritten/error-reporting/system-test/test-install.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as assert from 'assert'; +import assert from 'assert'; import {SpawnOptions} from 'child_process'; import * as path from 'path'; diff --git a/handwritten/error-reporting/system-test/utils.ts b/handwritten/error-reporting/system-test/utils.ts index 79f0c86c0dc..36a77908976 100644 --- a/handwritten/error-reporting/system-test/utils.ts +++ b/handwritten/error-reporting/system-test/utils.ts @@ -18,9 +18,9 @@ import {ChildProcess, fork, ForkOptions, spawn, SpawnOptions} from 'child_proces import {mkdir, readFile, stat, Stats, writeFile} from 'fs'; import * as glob from 'glob'; import {ncp} from 'ncp'; -import * as once from 'once'; +import once from 'once'; import * as path from 'path'; -import * as pify from 'pify'; +import pify from 'pify'; import * as rimraf from 'rimraf'; import * as tmp from 'tmp'; diff --git a/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts index 7d97c55ed73..a23591ccbfc 100644 --- a/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts @@ -18,7 +18,7 @@ const WARNING_HEADER = '\n!! -WARNING-'; const EXCLAMATION_LN = '\n!!'; import has = require('lodash.has'); -import * as express from 'express'; +import express from 'express'; const app = express(); const errorHandler = require('../../src/index.js')({ onUncaughtException: 'report', diff --git a/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts index dc70d596190..94cb9ce83b6 100644 --- a/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts @@ -22,7 +22,7 @@ const errorHandler = new ErrorReporting({ // option is now invalid. onUncaughtException: 'report', } as {}); -import * as koa from 'koa'; +import koa from 'koa'; const app = (koa as Function)(); app.use(errorHandler.koa); diff --git a/handwritten/error-reporting/test/unit/build-stack-trace.ts b/handwritten/error-reporting/test/unit/build-stack-trace.ts index fd26aad230d..786c9cf09a9 100644 --- a/handwritten/error-reporting/test/unit/build-stack-trace.ts +++ b/handwritten/error-reporting/test/unit/build-stack-trace.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as assert from 'assert'; +import assert from 'assert'; import * as path from 'path'; import {buildStackTrace} from '../../src/build-stack-trace'; diff --git a/handwritten/error-reporting/test/unit/classes/error-message.ts b/handwritten/error-reporting/test/unit/classes/error-message.ts index 6893008ec08..a9a45e5882b 100644 --- a/handwritten/error-reporting/test/unit/classes/error-message.ts +++ b/handwritten/error-reporting/test/unit/classes/error-message.ts @@ -16,7 +16,7 @@ // jscs:disable // jshint ignore: start -import * as assert from 'assert'; +import assert from 'assert'; import {ErrorMessage} from '../../../src/classes/error-message'; import {RequestInformationContainer} from '../../../src/classes/request-information-container'; diff --git a/handwritten/error-reporting/test/unit/classes/request-information-container.ts b/handwritten/error-reporting/test/unit/classes/request-information-container.ts index bfc7f339e10..f2bce457ac7 100644 --- a/handwritten/error-reporting/test/unit/classes/request-information-container.ts +++ b/handwritten/error-reporting/test/unit/classes/request-information-container.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as assert from 'assert'; +import assert from 'assert'; import {RequestInformationContainer} from '../../../src/classes/request-information-container'; import {Fuzzer} from '../../../utils/fuzzer'; diff --git a/handwritten/error-reporting/test/unit/configuration.ts b/handwritten/error-reporting/test/unit/configuration.ts index 4c2ac5e73c3..0d16e4e7029 100644 --- a/handwritten/error-reporting/test/unit/configuration.ts +++ b/handwritten/error-reporting/test/unit/configuration.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as assert from 'assert'; +import assert from 'assert'; import * as is from 'is'; const isNumber = is.number; import merge = require('lodash.merge'); @@ -26,7 +26,7 @@ import {createLogger} from '../../src/logger'; const logger = createLogger({ logLevel: isNumber(level) ? level : 4, }); -import * as nock from 'nock'; +import nock from 'nock'; const METADATA_URL = 'http://metadata.google.internal/computeMetadata/v1/project'; diff --git a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts index 690542e5103..4a14d3bca2b 100644 --- a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts +++ b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts @@ -14,8 +14,8 @@ * limitations under the License. */ -import * as assert from 'assert'; -import * as proxyquire from 'proxyquire'; +import assert from 'assert'; +import proxyquire from 'proxyquire'; import {Configuration, ConfigurationOptions} from '../../../src/configuration'; import {Logger} from '../../../src/types'; diff --git a/handwritten/error-reporting/test/unit/interfaces/express.ts b/handwritten/error-reporting/test/unit/interfaces/express.ts index ca1e8bae245..778e777a51e 100644 --- a/handwritten/error-reporting/test/unit/interfaces/express.ts +++ b/handwritten/error-reporting/test/unit/interfaces/express.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as assert from 'assert'; +import assert from 'assert'; import merge = require('lodash.merge'); import {ErrorMessage} from '../../../src/classes/error-message'; diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.ts b/handwritten/error-reporting/test/unit/interfaces/hapi.ts index afecc882f6f..6c0e148fa1f 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.ts +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.ts @@ -18,7 +18,7 @@ import has = require('lodash.has'); import * as is from 'is'; const isFunction = (is as {} as {fn: Function}).fn; const isObject = is.object; -import * as assert from 'assert'; +import assert from 'assert'; import {makeHapiPlugin as hapiInterface} from '../../../src/interfaces/hapi'; import {ErrorMessage} from '../../../src/classes/error-message'; import {Fuzzer} from '../../../utils/fuzzer'; diff --git a/handwritten/error-reporting/test/unit/interfaces/manual.ts b/handwritten/error-reporting/test/unit/interfaces/manual.ts index 02b198a23d5..f7e76f944cc 100644 --- a/handwritten/error-reporting/test/unit/interfaces/manual.ts +++ b/handwritten/error-reporting/test/unit/interfaces/manual.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as assert from 'assert'; +import assert from 'assert'; import * as manual from '../../../src/interfaces/manual'; import {FakeConfiguration as Configuration} from '../../fixtures/configuration'; const config = new Configuration({}); diff --git a/handwritten/error-reporting/test/unit/interfaces/restify.ts b/handwritten/error-reporting/test/unit/interfaces/restify.ts index b196f7caa30..bdb2d1bcb98 100644 --- a/handwritten/error-reporting/test/unit/interfaces/restify.ts +++ b/handwritten/error-reporting/test/unit/interfaces/restify.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as assert from 'assert'; +import assert from 'assert'; import {EventEmitter} from 'events'; import {Configuration} from '../../../src/configuration'; diff --git a/handwritten/error-reporting/test/unit/logger.ts b/handwritten/error-reporting/test/unit/logger.ts index ad4ef1b6680..14eb83fd52a 100644 --- a/handwritten/error-reporting/test/unit/logger.ts +++ b/handwritten/error-reporting/test/unit/logger.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as assert from 'assert'; +import assert from 'assert'; import {createLogger} from '../../src/logger'; describe('logger', () => { diff --git a/handwritten/error-reporting/test/unit/populate-error-message.ts b/handwritten/error-reporting/test/unit/populate-error-message.ts index 5612b0b4ffe..9f08e4994ee 100644 --- a/handwritten/error-reporting/test/unit/populate-error-message.ts +++ b/handwritten/error-reporting/test/unit/populate-error-message.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as assert from 'assert'; +import assert from 'assert'; import {ErrorMessage} from '../../src/classes/error-message'; import {populateErrorMessage} from '../../src/populate-error-message'; diff --git a/handwritten/error-reporting/test/unit/request-extractors/express.ts b/handwritten/error-reporting/test/unit/request-extractors/express.ts index 9cb00775861..1a827bd82ea 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/express.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/express.ts @@ -14,9 +14,9 @@ * limitations under the License. */ -import * as assert from 'assert'; +import assert from 'assert'; import {Response} from 'express-serve-static-core'; -import * as extend from 'extend'; +import extend from 'extend'; import {expressRequestInformationExtractor} from '../../../src/request-extractors/express'; import {Fuzzer} from '../../../utils/fuzzer'; diff --git a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts index e658eb55601..f9d4c52566e 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as assert from 'assert'; +import assert from 'assert'; import * as hapi from 'hapi'; import {hapiRequestInformationExtractor} from '../../../src/request-extractors/hapi'; diff --git a/handwritten/error-reporting/test/unit/request-extractors/koa.ts b/handwritten/error-reporting/test/unit/request-extractors/koa.ts index a99ea0615ed..e97848b59ca 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/koa.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/koa.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as assert from 'assert'; +import assert from 'assert'; import {Request, Response} from 'koa'; import {koaRequestInformationExtractor} from '../../../src/request-extractors/koa'; diff --git a/handwritten/error-reporting/test/unit/request-extractors/manual.ts b/handwritten/error-reporting/test/unit/request-extractors/manual.ts index 5de9d868ff5..97c348abe8b 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/manual.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/manual.ts @@ -14,8 +14,8 @@ * limitations under the License. */ -import * as assert from 'assert'; -import * as extend from 'extend'; +import assert from 'assert'; +import extend from 'extend'; import omit = require('lodash.omit'); import {manualRequestInformationExtractor} from '../../../src/request-extractors/manual'; diff --git a/handwritten/error-reporting/test/unit/service-configuration.ts b/handwritten/error-reporting/test/unit/service-configuration.ts index 981be8b8fd2..da5007bd894 100644 --- a/handwritten/error-reporting/test/unit/service-configuration.ts +++ b/handwritten/error-reporting/test/unit/service-configuration.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as assert from 'assert'; +import assert from 'assert'; import * as is from 'is'; const isString = is.string; const isNumber = is.number; diff --git a/handwritten/error-reporting/tsconfig.json b/handwritten/error-reporting/tsconfig.json index 6a6a03b1209..15fd7fe11cd 100644 --- a/handwritten/error-reporting/tsconfig.json +++ b/handwritten/error-reporting/tsconfig.json @@ -2,7 +2,8 @@ "extends": "./node_modules/gts/tsconfig-google.json", "compilerOptions": { "rootDir": ".", - "outDir": "build" + "outDir": "build", + "target": "es5" }, "include": [ "src/*.ts", From 511cd70153c5878a750e4e6f15b89726302352bf Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Fri, 18 May 2018 13:41:08 -0700 Subject: [PATCH 099/527] refactor: reduce # of dependencies a bit (#125) --- handwritten/error-reporting/package-lock.json | 7353 ++++++++--------- handwritten/error-reporting/package.json | 7 - .../src/google-apis/auth-client.ts | 1 - handwritten/error-reporting/src/logger.ts | 1 - .../src/request-extractors/express.ts | 4 +- .../src/request-extractors/hapi.ts | 8 +- .../system-test/error-reporting.ts | 3 +- .../test-servers/express_scaffold_server.ts | 3 +- .../test/test-servers/koa_scaffold_server.ts | 2 - .../test/unit/classes/error-message.ts | 2 - .../test/unit/service-configuration.ts | 3 +- .../utils/errors-api-transport.ts | 17 +- handwritten/error-reporting/utils/fuzzer.ts | 5 +- handwritten/error-reporting/yarn.lock | 6998 ---------------- 14 files changed, 3646 insertions(+), 10761 deletions(-) delete mode 100644 handwritten/error-reporting/yarn.lock diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index 26e4b0a6ed5..8ad09fbd346 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -16,18 +16,18 @@ "integrity": "sha512-oWqTnIGXW3k72UFidXzW0ONlO7hnO9x02S/QReJ7NBGeiBH9cUHY9+EfV6C8PXC6YJH++WrliEq03wMSJGNZFg==", "dev": true, "requires": { - "babel-plugin-check-es2015-constants": "^6.8.0", - "babel-plugin-syntax-trailing-function-commas": "^6.20.0", - "babel-plugin-transform-async-to-generator": "^6.16.0", - "babel-plugin-transform-es2015-destructuring": "^6.19.0", - "babel-plugin-transform-es2015-function-name": "^6.9.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.18.0", - "babel-plugin-transform-es2015-parameters": "^6.21.0", - "babel-plugin-transform-es2015-spread": "^6.8.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.8.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.11.0", - "babel-plugin-transform-exponentiation-operator": "^6.8.0", - "package-hash": "^1.2.0" + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-to-generator": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-exponentiation-operator": "6.24.1", + "package-hash": "1.2.0" }, "dependencies": { "md5-hex": { @@ -36,7 +36,7 @@ "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "dev": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "package-hash": { @@ -45,7 +45,7 @@ "integrity": "sha1-AD5WzVe3NqbtYRTMK4FUJnJ3DkQ=", "dev": true, "requires": { - "md5-hex": "^1.3.0" + "md5-hex": "1.3.0" } } } @@ -56,8 +56,8 @@ "integrity": "sha1-ze0RlqjY2TgaUJJAq5LpGl7Aafc=", "dev": true, "requires": { - "@ava/babel-plugin-throws-helper": "^2.0.0", - "babel-plugin-espower": "^2.3.2" + "@ava/babel-plugin-throws-helper": "2.0.0", + "babel-plugin-espower": "2.4.0" } }, "@ava/write-file-atomic": { @@ -66,9 +66,9 @@ "integrity": "sha512-BTNB3nGbEfJT+69wuqXFr/bQH7Vr7ihx2xGOMNqPgDGhwspoZhiWumDDZNjBy7AScmqS5CELIOGtPVXESyrnDA==", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" } }, "@concordance/react": { @@ -77,7 +77,7 @@ "integrity": "sha512-htrsRaQX8Iixlsek8zQU7tE8wcsTQJ5UhZkSPEA8slCDAisKpC/2VgU/ucPn32M5/LjGGXRaUEKvEw1Wiuu4zQ==", "dev": true, "requires": { - "arrify": "^1.0.1" + "arrify": "1.0.1" } }, "@google-cloud/common": { @@ -85,24 +85,24 @@ "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.17.0.tgz", "integrity": "sha512-HRZLSU762E6HaKoGfJGa8W95yRjb9rY7LePhjaHK9ILAnFacMuUGVamDbTHu1csZomm1g3tZTtXfX/aAhtie/Q==", "requires": { - "array-uniq": "^1.0.3", - "arrify": "^1.0.1", - "concat-stream": "^1.6.0", - "create-error-class": "^3.0.2", - "duplexify": "^3.5.0", - "ent": "^2.2.0", - "extend": "^3.0.1", - "google-auto-auth": "^0.10.0", - "is": "^3.2.0", + "array-uniq": "1.0.3", + "arrify": "1.0.1", + "concat-stream": "1.6.2", + "create-error-class": "3.0.2", + "duplexify": "3.6.0", + "ent": "2.2.0", + "extend": "3.0.1", + "google-auto-auth": "0.10.1", + "is": "3.2.1", "log-driver": "1.2.7", - "methmeth": "^1.1.0", - "modelo": "^4.2.0", - "request": "^2.79.0", - "retry-request": "^3.0.0", - "split-array-stream": "^1.0.0", - "stream-events": "^1.0.1", - "string-format-obj": "^1.1.0", - "through2": "^2.0.3" + "methmeth": "1.1.0", + "modelo": "4.2.3", + "request": "2.86.0", + "retry-request": "3.3.1", + "split-array-stream": "1.0.3", + "stream-events": "1.0.4", + "string-format-obj": "1.1.1", + "through2": "2.0.3" } }, "@google-cloud/nodejs-repo-tools": { @@ -119,7 +119,7 @@ "lodash": "4.17.5", "nyc": "11.4.1", "proxyquire": "1.8.0", - "semver": "^5.5.0", + "semver": "5.5.0", "sinon": "4.3.0", "string": "3.3.3", "supertest": "3.0.0", @@ -139,268 +139,297 @@ "integrity": "sha512-5eCZpvaksFVjP2rt1r60cfXmt3MUtsQDw8bAzNqNEr4WLvUMLgiVENMf/B9bE9YAX0mGVvaGA3v9IS9ekNqB1Q==", "dev": true, "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^1.0.0", - "convert-source-map": "^1.3.0", - "debug-log": "^1.0.1", - "default-require-extensions": "^1.0.0", - "find-cache-dir": "^0.1.1", - "find-up": "^2.1.0", - "foreground-child": "^1.5.3", - "glob": "^7.0.6", - "istanbul-lib-coverage": "^1.1.1", - "istanbul-lib-hook": "^1.1.0", - "istanbul-lib-instrument": "^1.9.1", - "istanbul-lib-report": "^1.1.2", - "istanbul-lib-source-maps": "^1.2.2", - "istanbul-reports": "^1.1.3", - "md5-hex": "^1.2.0", - "merge-source-map": "^1.0.2", - "micromatch": "^2.3.11", - "mkdirp": "^0.5.0", - "resolve-from": "^2.0.0", - "rimraf": "^2.5.4", - "signal-exit": "^3.0.1", - "spawn-wrap": "^1.4.2", - "test-exclude": "^4.1.1", - "yargs": "^10.0.3", - "yargs-parser": "^8.0.0" + "archy": "1.0.0", + "arrify": "1.0.1", + "caching-transform": "1.0.1", + "convert-source-map": "1.5.1", + "debug-log": "1.0.1", + "default-require-extensions": "1.0.0", + "find-cache-dir": "0.1.1", + "find-up": "2.1.0", + "foreground-child": "1.5.6", + "glob": "7.1.2", + "istanbul-lib-coverage": "1.1.1", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "1.9.1", + "istanbul-lib-report": "1.1.2", + "istanbul-lib-source-maps": "1.2.2", + "istanbul-reports": "1.1.3", + "md5-hex": "1.3.0", + "merge-source-map": "1.0.4", + "micromatch": "2.3.11", + "mkdirp": "0.5.1", + "resolve-from": "2.0.0", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "spawn-wrap": "1.4.2", + "test-exclude": "4.1.1", + "yargs": "10.0.3", + "yargs-parser": "8.0.0" }, "dependencies": { "align-text": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" } }, "amdefine": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", "dev": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "ansi-styles": { "version": "2.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, "append-transform": { "version": "0.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", "dev": true, "requires": { - "default-require-extensions": "^1.0.0" + "default-require-extensions": "1.0.0" } }, "archy": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", "dev": true }, "arr-diff": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "^1.0.1" + "arr-flatten": "1.1.0" } }, "arr-flatten": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, "array-unique": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", "dev": true }, "arrify": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, "async": { "version": "1.5.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", "dev": true }, "babel-code-frame": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" } }, "babel-generator": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", + "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", "dev": true, "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.6", - "trim-right": "^1.0.1" + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.4", + "source-map": "0.5.7", + "trim-right": "1.0.1" } }, "babel-messages": { "version": "6.23.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-runtime": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" } }, "babel-template": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" } }, "babel-traverse": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" } }, "babel-types": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" } }, "babylon": { "version": "6.18.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", "dev": true }, "balanced-match": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "brace-expansion": { "version": "1.1.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, "braces": { "version": "1.8.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" } }, "builtin-modules": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, "caching-transform": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", + "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", "dev": true, "requires": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" } }, "camelcase": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", "dev": true, "optional": true }, "center-align": { "version": "0.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "dev": true, "optional": true, "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "align-text": "0.1.4", + "lazy-cache": "1.0.4" } }, "chalk": { "version": "1.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "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" } }, "cliui": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "dev": true, "optional": true, "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", + "center-align": "0.1.3", + "right-align": "0.1.3", "wordwrap": "0.0.2" }, "dependencies": { "wordwrap": { "version": "0.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", "dev": true, "optional": true } @@ -408,41 +437,48 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, "commondir": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, "concat-map": { "version": "0.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "convert-source-map": { "version": "1.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", "dev": true }, "core-js": { "version": "2.5.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", "dev": true }, "cross-spawn": { "version": "4.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", "dev": true, "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" + "lru-cache": "4.1.1", + "which": "1.3.0" } }, "debug": { "version": "2.6.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" @@ -450,387 +486,442 @@ }, "debug-log": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", + "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", "dev": true }, "decamelize": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "default-require-extensions": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", "dev": true, "requires": { - "strip-bom": "^2.0.0" + "strip-bom": "2.0.0" } }, "detect-indent": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "error-ex": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "escape-string-regexp": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "esutils": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, "execa": { "version": "0.7.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" }, "dependencies": { "cross-spawn": { "version": "5.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.3.0" } } } }, "expand-brackets": { "version": "0.1.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "^0.1.0" + "is-posix-bracket": "0.1.1" } }, "expand-range": { "version": "1.8.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "^2.1.0" + "fill-range": "2.2.3" } }, "extglob": { "version": "0.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "filename-regex": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", "dev": true }, "fill-range": { "version": "2.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", "dev": true, "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^1.1.3", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" } }, "find-cache-dir": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", "dev": true, "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" + "commondir": "1.0.1", + "mkdirp": "0.5.1", + "pkg-dir": "1.0.0" } }, "find-up": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "for-in": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true }, "for-own": { "version": "0.1.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { - "for-in": "^1.0.1" + "for-in": "1.0.2" } }, "foreground-child": { "version": "1.5.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", "dev": true, "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" + "cross-spawn": "4.0.2", + "signal-exit": "3.0.2" } }, "fs.realpath": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "get-caller-file": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", "dev": true }, "get-stream": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true }, "glob": { "version": "7.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "glob-base": { "version": "0.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" + "glob-parent": "2.0.0", + "is-glob": "2.0.1" } }, "glob-parent": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { - "is-glob": "^2.0.0" + "is-glob": "2.0.1" } }, "globals": { "version": "9.18.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", "dev": true }, "graceful-fs": { "version": "4.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, "handlebars": { "version": "4.0.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" }, "dependencies": { "source-map": { "version": "0.4.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } }, "has-ansi": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "has-flag": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", "dev": true }, "hosted-git-info": { "version": "2.5.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", "dev": true }, "imurmurhash": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { "version": "2.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "invariant": { "version": "2.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", "dev": true, "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "1.3.1" } }, "invert-kv": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", "dev": true }, "is-arrayish": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, "is-buffer": { "version": "1.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, "is-builtin-module": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-dotfile": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", "dev": true }, "is-equal-shallow": { "version": "0.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { - "is-primitive": "^2.0.0" + "is-primitive": "2.0.0" } }, "is-extendable": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true }, "is-extglob": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", "dev": true }, "is-finite": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-glob": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "is-number": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-posix-bracket": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", "dev": true }, "is-primitive": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", "dev": true }, "is-stream": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "is-utf8": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, "isarray": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "isobject": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "requires": { "isarray": "1.0.0" @@ -838,67 +929,74 @@ }, "istanbul-lib-coverage": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz", + "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==", "dev": true }, "istanbul-lib-hook": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", + "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", "dev": true, "requires": { - "append-transform": "^0.4.0" + "append-transform": "0.4.0" } }, "istanbul-lib-instrument": { "version": "1.9.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz", + "integrity": "sha512-RQmXeQ7sphar7k7O1wTNzVczF9igKpaeGQAG9qR2L+BS4DCJNTI9nytRmIVYevwO0bbq+2CXvJmYDuz0gMrywA==", "dev": true, "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.1.1", - "semver": "^5.3.0" + "babel-generator": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "istanbul-lib-coverage": "1.1.1", + "semver": "5.4.1" } }, "istanbul-lib-report": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz", + "integrity": "sha512-UTv4VGx+HZivJQwAo1wnRwe1KTvFpfi/NYwN7DcsrdzMXwpRT/Yb6r4SBPoHWj4VuQPakR32g4PUUeyKkdDkBA==", "dev": true, "requires": { - "istanbul-lib-coverage": "^1.1.1", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" + "istanbul-lib-coverage": "1.1.1", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" }, "dependencies": { "supports-color": { "version": "3.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "^1.0.0" + "has-flag": "1.0.0" } } } }, "istanbul-lib-source-maps": { "version": "1.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz", + "integrity": "sha512-8BfdqSfEdtip7/wo1RnrvLpHVEd8zMZEDmOFEnpC6dg0vXflHt9nvoAyQUzig2uMSXfF2OBEYBV3CVjIL9JvaQ==", "dev": true, "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.1.1", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" + "debug": "3.1.0", + "istanbul-lib-coverage": "1.1.1", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" }, "dependencies": { "debug": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { "ms": "2.0.0" @@ -908,169 +1006,191 @@ }, "istanbul-reports": { "version": "1.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.3.tgz", + "integrity": "sha512-ZEelkHh8hrZNI5xDaKwPMFwDsUf5wIEI2bXAFGp1e6deR2mnEKBPhLJEgr4ZBt8Gi6Mj38E/C8kcy9XLggVO2Q==", "dev": true, "requires": { - "handlebars": "^4.0.3" + "handlebars": "4.0.11" } }, "js-tokens": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", "dev": true }, "jsesc": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", "dev": true }, "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "lazy-cache": { "version": "1.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", "dev": true, "optional": true }, "lcid": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "load-json-file": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" } }, "locate-path": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "2.0.0", + "path-exists": "3.0.0" }, "dependencies": { "path-exists": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true } } }, "lodash": { "version": "4.17.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", "dev": true }, "longest": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", "dev": true }, "loose-envify": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "dev": true, "requires": { - "js-tokens": "^3.0.0" + "js-tokens": "3.0.2" } }, "lru-cache": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", "dev": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "md5-hex": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", + "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "dev": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "md5-o-matic": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", + "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=", "dev": true }, "mem": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.1.0" } }, "merge-source-map": { "version": "1.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", + "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=", "dev": true, "requires": { - "source-map": "^0.5.6" + "source-map": "0.5.7" } }, "micromatch": { "version": "2.3.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" } }, "mimic-fn": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", + "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", "dev": true }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.8" } }, "minimist": { "version": "0.0.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { "minimist": "0.0.8" @@ -1078,505 +1198,575 @@ }, "ms": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "normalize-package-data": { "version": "2.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.5.0", + "is-builtin-module": "1.0.0", + "semver": "5.4.1", + "validate-npm-package-license": "3.0.1" } }, "normalize-path": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "^1.0.1" + "remove-trailing-separator": "1.1.0" } }, "npm-run-path": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, "object.omit": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" + "for-own": "0.1.5", + "is-extendable": "0.1.1" } }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "optimist": { "version": "0.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "minimist": "0.0.8", + "wordwrap": "0.0.3" } }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, "os-locale": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" } }, "p-finally": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, "p-limit": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", + "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", "dev": true }, "p-locate": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.1.0" } }, "parse-glob": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" } }, "parse-json": { "version": "2.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.1" } }, "path-exists": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "path-key": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, "path-parse": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", "dev": true }, "path-type": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pify": { "version": "2.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, "pinkie": { "version": "2.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", "dev": true }, "pinkie-promise": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "pkg-dir": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "dev": true, "requires": { - "find-up": "^1.0.0" + "find-up": "1.1.2" }, "dependencies": { "find-up": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } }, "preserve": { "version": "0.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", "dev": true }, "pseudomap": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, "randomatic": { "version": "1.1.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", "dev": true, "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "is-number": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } }, "kind-of": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } }, "read-pkg": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" } }, "read-pkg-up": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "find-up": "1.1.2", + "read-pkg": "1.1.0" }, "dependencies": { "find-up": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } }, "regenerator-runtime": { "version": "0.11.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true }, "regex-cache": { "version": "0.4.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { - "is-equal-shallow": "^0.1.3" + "is-equal-shallow": "0.1.3" } }, "remove-trailing-separator": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", "dev": true }, "repeat-element": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", "dev": true }, "repeat-string": { "version": "1.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, "repeating": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "require-directory": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, "require-main-filename": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", "dev": true }, "resolve-from": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", "dev": true }, "right-align": { "version": "0.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "dev": true, "optional": true, "requires": { - "align-text": "^0.1.1" + "align-text": "0.1.4" } }, "rimraf": { "version": "2.6.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "semver": { "version": "5.4.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", "dev": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, "shebang-command": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, "slide": { "version": "1.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", "dev": true }, "source-map": { "version": "0.5.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, "spawn-wrap": { "version": "1.4.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", + "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", "dev": true, "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.0" } }, "spdx-correct": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", "dev": true, "requires": { - "spdx-license-ids": "^1.0.2" + "spdx-license-ids": "1.2.2" } }, "spdx-expression-parse": { "version": "1.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", "dev": true }, "spdx-license-ids": { "version": "1.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", "dev": true }, "string-width": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" }, "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "strip-ansi": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-bom": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "^0.2.0" + "is-utf8": "0.2.1" } }, "strip-eof": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, "supports-color": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, "test-exclude": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz", + "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==", "dev": true, "requires": { - "arrify": "^1.0.1", - "micromatch": "^2.3.11", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" + "arrify": "1.0.1", + "micromatch": "2.3.11", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" } }, "to-fast-properties": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", "dev": true }, "trim-right": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "dev": true }, "uglify-js": { "version": "2.8.29", - "bundled": true, + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "dev": true, "optional": true, "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" }, "dependencies": { "yargs": { "version": "3.10.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "dev": true, "optional": true, "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", "window-size": "0.1.0" } } @@ -1584,126 +1774,141 @@ }, "uglify-to-browserify": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", "dev": true, "optional": true }, "validate-npm-package-license": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", "dev": true, "requires": { - "spdx-correct": "~1.0.0", - "spdx-expression-parse": "~1.0.0" + "spdx-correct": "1.0.2", + "spdx-expression-parse": "1.0.4" } }, "which": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, "window-size": { "version": "0.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", "dev": true }, "wrap-ansi": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } }, "wrappy": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "write-file-atomic": { "version": "1.3.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", + "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" } }, "y18n": { "version": "3.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", "dev": true }, "yallist": { "version": "2.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, "yargs": { "version": "10.0.3", - "bundled": true, - "dev": true, - "requires": { - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^8.0.0" + "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.0.3.tgz", + "integrity": "sha512-DqBpQ8NAUX4GyPP/ijDGHsJya4tYqLQrjPr95HNsr1YwL3+daCfvBwg7+gIC6IdJhR2kATh3hb61vjzMWEtjdw==", + "dev": true, + "requires": { + "cliui": "3.2.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "8.0.0" }, "dependencies": { "cliui": { "version": "3.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" }, "dependencies": { "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -1712,15 +1917,17 @@ }, "yargs-parser": { "version": "8.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.0.0.tgz", + "integrity": "sha1-IdR2Mw5agieaS4gTRb8GYQLiGcY=", "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" }, "dependencies": { "camelcase": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true } } @@ -1733,9 +1940,9 @@ "integrity": "sha1-AtUUpb7ZhvBMuyCTrxZ0FTX3ntw=", "dev": true, "requires": { - "fill-keys": "^1.0.2", - "module-not-found-error": "^1.0.0", - "resolve": "~1.1.7" + "fill-keys": "1.0.2", + "module-not-found-error": "1.0.1", + "resolve": "1.1.7" } } } @@ -1746,10 +1953,10 @@ "integrity": "sha512-weIbJqTMfQ4r1YX85u54DKfjLZs2jwn1XZ6tIOP/pFgMwhIN5BAtaCp/1wn9DzyLsDR9tW0R2NIePcVJ45ivQQ==", "dev": true, "requires": { - "chalk": "^0.4.0", - "date-time": "^0.1.1", - "pretty-ms": "^0.2.1", - "text-table": "^0.2.0" + "chalk": "0.4.0", + "date-time": "0.1.1", + "pretty-ms": "0.2.2", + "text-table": "0.2.0" }, "dependencies": { "ansi-styles": { @@ -1764,9 +1971,9 @@ "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", "dev": true, "requires": { - "ansi-styles": "~1.0.0", - "has-color": "~0.1.0", - "strip-ansi": "~0.1.0" + "ansi-styles": "1.0.0", + "has-color": "0.1.7", + "strip-ansi": "0.1.1" } }, "pretty-ms": { @@ -1775,7 +1982,7 @@ "integrity": "sha1-2oeaaC/zOjcBEEbxPWJ/Z8c7hPY=", "dev": true, "requires": { - "parse-ms": "^0.1.0" + "parse-ms": "0.1.2" } }, "strip-ansi": { @@ -1807,7 +2014,7 @@ "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "10.1.1" } }, "@types/body-parser": { @@ -1816,8 +2023,8 @@ "integrity": "sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w==", "dev": true, "requires": { - "@types/connect": "*", - "@types/node": "*" + "@types/connect": "3.4.32", + "@types/node": "10.1.1" } }, "@types/boom": { @@ -1832,8 +2039,8 @@ "integrity": "sha512-bxOF3fsm69ezKxdcJ7Oo/PsZMOJ+JIV/QJO2IADfScmR3sLulR88dpSnz6+q+9JJ1kD7dXFFgUrGRSKHLkOX7w==", "dev": true, "requires": { - "@types/events": "*", - "@types/node": "*" + "@types/events": "1.2.0", + "@types/node": "10.1.1" } }, "@types/caseless": { @@ -1848,7 +2055,7 @@ "integrity": "sha512-xcLIJdHkkqB6dyclgvFee8GjfeVYzTJAoFiOZlAnZ9R5mv/8VCnUuaQ4z/v3GrlKUL4j9YEbhOimtFawGBe4ng==", "dev": true, "requires": { - "@types/boom": "^4" + "@types/boom": "4.3.10" } }, "@types/connect": { @@ -1857,7 +2064,7 @@ "integrity": "sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg==", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "10.1.1" } }, "@types/cookies": { @@ -1866,10 +2073,10 @@ "integrity": "sha512-ku6IvbucEyuC6i4zAVK/KnuzWNXdbFd1HkXlNLg/zhWDGTtQT5VhumiPruB/BHW34PWVFwyfwGftDQHfWNxu3Q==", "dev": true, "requires": { - "@types/connect": "*", - "@types/express": "*", - "@types/keygrip": "*", - "@types/node": "*" + "@types/connect": "3.4.32", + "@types/express": "4.11.1", + "@types/keygrip": "1.0.1", + "@types/node": "10.1.1" } }, "@types/events": { @@ -1884,9 +2091,9 @@ "integrity": "sha512-ttWle8cnPA5rAelauSWeWJimtY2RsUf2aspYZs7xPHiWgOlPn6nnUfBMtrkcnjFJuIHJF4gNOdVvpLK2Zmvh6g==", "dev": true, "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "*", - "@types/serve-static": "*" + "@types/body-parser": "1.17.0", + "@types/express-serve-static-core": "4.11.1", + "@types/serve-static": "1.13.2" } }, "@types/express-serve-static-core": { @@ -1895,8 +2102,8 @@ "integrity": "sha512-EehCl3tpuqiM8RUb+0255M8PhhSwTtLfmO7zBBdv0ay/VTd/zmrqDfQdZFsa5z/PVMbH2yCMZPXsnrImpATyIw==", "dev": true, "requires": { - "@types/events": "*", - "@types/node": "*" + "@types/events": "1.2.0", + "@types/node": "10.1.1" } }, "@types/extend": { @@ -1911,7 +2118,7 @@ "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "10.1.1" } }, "@types/glob": { @@ -1920,9 +2127,9 @@ "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", "dev": true, "requires": { - "@types/events": "*", - "@types/minimatch": "*", - "@types/node": "*" + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "10.1.1" } }, "@types/hapi": { @@ -1931,14 +2138,14 @@ "integrity": "sha512-VeWocvlYrFINg4ZloxSPkg9qtd9aHMkH1Lt4bPqguSLSTrd51D67tcz8+crhsWsClViTylB6deRatxZzOnly7g==", "dev": true, "requires": { - "@types/boom": "^4", - "@types/catbox": "^7", - "@types/events": "*", - "@types/joi": "*", - "@types/mimos": "*", - "@types/node": "*", - "@types/podium": "*", - "@types/shot": "*" + "@types/boom": "4.3.10", + "@types/catbox": "7.1.6", + "@types/events": "1.2.0", + "@types/joi": "13.0.8", + "@types/mimos": "3.0.1", + "@types/node": "10.1.1", + "@types/podium": "1.0.0", + "@types/shot": "3.4.0" } }, "@types/http-assert": { @@ -1971,13 +2178,13 @@ "integrity": "sha512-emzrfiyQFMtx/dPMVhEMM1GU/p7QbRYWgubp1VGsR+bIC/53ehDf5IATM2fEZhoyHPeLuYyQVAjSPc/YqoWMSQ==", "dev": true, "requires": { - "@types/accepts": "*", - "@types/cookies": "*", - "@types/events": "*", - "@types/http-assert": "*", - "@types/keygrip": "*", - "@types/koa-compose": "*", - "@types/node": "*" + "@types/accepts": "1.3.5", + "@types/cookies": "0.7.1", + "@types/events": "1.2.0", + "@types/http-assert": "1.2.2", + "@types/keygrip": "1.0.1", + "@types/koa-compose": "3.2.2", + "@types/node": "10.1.1" } }, "@types/koa-compose": { @@ -1998,16 +2205,7 @@ "integrity": "sha512-L8D6y0a88Uv3/gdqUpmfHPGSFo676ggbtl5an3FgR4AzbvR+PKNdUMPr6F6Q/U3n3lCoCoV+WPt1vqJGbgPZ6Q==", "dev": true, "requires": { - "@types/lodash": "*" - } - }, - "@types/lodash.foreach": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/@types/lodash.foreach/-/lodash.foreach-4.5.3.tgz", - "integrity": "sha512-Fpkdtv1C15HQmFOOlikhWk72Bl93hcJtwrO7bbLABV/rkM1qSDKk4p8Wizt/LsAalr8WfbV0MuQct3IfJZkfug==", - "dev": true, - "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.108" } }, "@types/lodash.has": { @@ -2016,16 +2214,7 @@ "integrity": "sha512-McmKJoXdSxMYIQzVWKSEGrHnTwJ1ErqXvsTQjFeGEhBmypgCjuANDSqxl4LKaKcoF4mNxMqSzH7wP4yQ0deLeQ==", "dev": true, "requires": { - "@types/lodash": "*" - } - }, - "@types/lodash.indexof": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/lodash.indexof/-/lodash.indexof-4.0.3.tgz", - "integrity": "sha512-2emfoGFYjwEyQercgS7+7sNwoLnI3VMMXbWTu3dJeVsXxif7xHmVKaFEzc1nSluBCiZKsNM8MipvXAm+Z0L5dg==", - "dev": true, - "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.108" } }, "@types/lodash.maxby": { @@ -2034,7 +2223,7 @@ "integrity": "sha512-5AMk6874T1RMxtWkW0I4ORFptU508mTb8jYG0gaNCMDzX6kLn/VNQXewL6dasZd4dj/hSbM8dt7msLuI3rSIPQ==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.108" } }, "@types/lodash.merge": { @@ -2043,7 +2232,7 @@ "integrity": "sha512-bOCCutkbehfCeiSqJO5XcVKjsJvX28dgvjhs4aMmBAHAsOy2oOJQwHuIZ0elI1E94qQIdEsCvz8oLgUumd6teA==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.108" } }, "@types/lodash.omit": { @@ -2052,7 +2241,7 @@ "integrity": "sha512-a6VbeE+JjMQ3rKsQVRjle02E+iKPTsT7izzFRk4xJvv4TBcO85Lrpo+8n6iqsiH8yZ8mHy0LOmx7MVgO8OfovQ==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.108" } }, "@types/lodash.omitby": { @@ -2061,7 +2250,7 @@ "integrity": "sha512-IfMZru9AegVIu0lkOXc/ncCOR3zzC6FKTVuBHBd9PkmKbOCn5zFORT22Wf/fZ9SBr2HmaYLPkFhf5C7A7k/N9A==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.108" } }, "@types/lodash.pick": { @@ -2070,7 +2259,7 @@ "integrity": "sha512-7VR26qH/bzRBn8DN6HKWYwBB6dNo1dNSdc0nYQwPp5tua6u2dpHHCFccszvFKBdR2CjSEbL5hsqQul03P4COjA==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.108" } }, "@types/lodash.random": { @@ -2079,7 +2268,7 @@ "integrity": "sha512-JMCA9llou2Ye9mhz0H/7DaPrJ6PgmRb6ClnPGPzfoX7JUu9Q6NuRZON5INrTQH5LWahzqaZdeMwHyn8MGRkXoA==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.108" } }, "@types/lodash.without": { @@ -2088,7 +2277,7 @@ "integrity": "sha512-oD30pRigg97PfyF8u3WGkRnn3MPS/f2pwYf0s0dNeGOeScbZ1bo4BYBK7dab/lpX6EbUjoWAtLLMQW+LxlJpcQ==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.108" } }, "@types/mime": { @@ -2109,7 +2298,7 @@ "integrity": "sha512-MATIRH4VMIJki8lcYUZdNQEHuAG7iQ1FWwoLgxV+4fUOly2xZYdhHtGgvQyWiTeJqq2tZbE0nOOgZD6pR0FpNQ==", "dev": true, "requires": { - "@types/mime-db": "*" + "@types/mime-db": "1.27.0" } }, "@types/minimatch": { @@ -2130,7 +2319,7 @@ "integrity": "sha512-TeiJ7uvv/92ugSqZ0v9l0eNXzutlki0aK+R1K5bfA5SYUil46ITlxLW4iNTCf55P4L5weCmaOdtxGeGWvudwPg==", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "10.1.1" } }, "@types/nock": { @@ -2139,7 +2328,7 @@ "integrity": "sha512-S8rJ+SaW82ICX87pZP62UcMifrMfjEdqNzSp+llx4YcvKw6bO650Ye6HwTqER1Dar3S40GIZECQisOrAICDCjA==", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "10.1.1" } }, "@types/node": { @@ -2178,10 +2367,10 @@ "integrity": "sha512-/KXM5oev+nNCLIgBjkwbk8VqxmzI56woD4VUxn95O+YeQ8hJzcSmIZ1IN3WexiqBb6srzDo2bdMbsXxgXNkz5Q==", "dev": true, "requires": { - "@types/caseless": "*", - "@types/form-data": "*", - "@types/node": "*", - "@types/tough-cookie": "*" + "@types/caseless": "0.12.1", + "@types/form-data": "2.2.1", + "@types/node": "10.1.1", + "@types/tough-cookie": "2.3.3" } }, "@types/restify": { @@ -2190,9 +2379,9 @@ "integrity": "sha512-7nqnFv+M4w0KYajdb0sGy0C5k5OYvPLOPMbacNOM8I2Xm/UQpFnOUluwkkM1FyblVrhgfwHEHVUUZW1VWTXeAQ==", "dev": true, "requires": { - "@types/bunyan": "*", - "@types/node": "*", - "@types/spdy": "*" + "@types/bunyan": "1.8.4", + "@types/node": "10.1.1", + "@types/spdy": "3.4.4" } }, "@types/rimraf": { @@ -2201,8 +2390,8 @@ "integrity": "sha512-Hm/bnWq0TCy7jmjeN5bKYij9vw5GrDFWME4IuxV08278NtU/VdGbzsBohcCUJ7+QMqmUq5hpRKB39HeQWJjztQ==", "dev": true, "requires": { - "@types/glob": "*", - "@types/node": "*" + "@types/glob": "5.0.35", + "@types/node": "10.1.1" } }, "@types/serve-static": { @@ -2211,8 +2400,8 @@ "integrity": "sha512-/BZ4QRLpH/bNYgZgwhKEh+5AsboDBcUdlBYgzoLX0fpj3Y2gp6EApyOlM3bK53wQS/OE1SrdSYBAbux2D1528Q==", "dev": true, "requires": { - "@types/express-serve-static-core": "*", - "@types/mime": "*" + "@types/express-serve-static-core": "4.11.1", + "@types/mime": "2.0.0" } }, "@types/shot": { @@ -2221,7 +2410,7 @@ "integrity": "sha1-RZR3xRh9Pr0wNmCrCZ5+ng87ZW8=", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "10.1.1" } }, "@types/spdy": { @@ -2230,7 +2419,7 @@ "integrity": "sha512-N9LBlbVRRYq6HgYpPkqQc3a9HJ/iEtVZToW6xlTtJiMhmRJ7jJdV7TaZQJw/Ve/1ePUsQiCTDc4JMuzzag94GA==", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "10.1.1" } }, "@types/tmp": { @@ -2245,20 +2434,14 @@ "integrity": "sha512-MDQLxNFRLasqS4UlkWMSACMKeSm1x4Q3TxzUC7KQUsh6RK1ZrQ0VEyE3yzXcBu+K8ejVj4wuX32eUG02yNp+YQ==", "dev": true }, - "JSV": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz", - "integrity": "sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c=", - "dev": true - }, "accept": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/accept/-/accept-3.0.2.tgz", "integrity": "sha512-bghLXFkCOsC1Y2TZ51etWfKDs6q249SAoHTZVfzWWdlZxoij+mgkj9AmUJWQpDY48TfnrTDIe43Xem4zdMe7mQ==", "dev": true, "requires": { - "boom": "7.x.x", - "hoek": "5.x.x" + "boom": "7.2.0", + "hoek": "5.0.3" }, "dependencies": { "boom": { @@ -2267,7 +2450,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.x.x" + "hoek": "5.0.3" } }, "hoek": { @@ -2284,7 +2467,7 @@ "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "dev": true, "requires": { - "mime-types": "~2.1.18", + "mime-types": "2.1.18", "negotiator": "0.6.1" } }, @@ -2306,7 +2489,7 @@ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "dev": true, "requires": { - "acorn": "^3.0.4" + "acorn": "3.3.0" }, "dependencies": { "acorn": { @@ -2322,10 +2505,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" } }, "ajv-keywords": { @@ -2340,9 +2523,9 @@ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" } }, "amdefine": { @@ -2357,7 +2540,7 @@ "integrity": "sha512-4UqoM8xQjwkQ78oiU4NbBK0UgYqeKMAKmwE4ec7Rz3rGU8ZEBFxzgF2sUYKOAlqIXExBDYLN6y1ShF5yQ4hwLQ==", "dev": true, "requires": { - "hoek": "5.x.x" + "hoek": "5.0.3" }, "dependencies": { "hoek": { @@ -2374,7 +2557,7 @@ "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "dev": true, "requires": { - "string-width": "^2.0.0" + "string-width": "2.1.1" } }, "ansi-escapes": { @@ -2395,7 +2578,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "color-convert": "1.9.1" } }, "any-promise": { @@ -2410,8 +2593,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "dev": true, "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" + "micromatch": "2.3.11", + "normalize-path": "2.1.1" } }, "argparse": { @@ -2420,7 +2603,7 @@ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "sprintf-js": "~1.0.2" + "sprintf-js": "1.0.3" } }, "argv": { @@ -2435,7 +2618,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "^1.0.1" + "arr-flatten": "1.1.0" } }, "arr-exclude": { @@ -2486,7 +2669,7 @@ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "array-uniq": "^1.0.1" + "array-uniq": "1.0.3" } }, "array-uniq": { @@ -2526,7 +2709,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", "requires": { - "lodash": "^4.14.0" + "lodash": "4.17.10" } }, "async-each": { @@ -2552,89 +2735,89 @@ "integrity": "sha512-4lGNJCf6xL8SvsKVEKxEE46se7JAUIAZoKHw9itTQuwcsydhpAMkBs5gOOiWiwt0JKNIuXWc2/r4r8ZdcNrBEw==", "dev": true, "requires": { - "@ava/babel-preset-stage-4": "^1.1.0", - "@ava/babel-preset-transform-test-files": "^3.0.0", - "@ava/write-file-atomic": "^2.2.0", - "@concordance/react": "^1.0.0", - "@ladjs/time-require": "^0.1.4", - "ansi-escapes": "^3.0.0", - "ansi-styles": "^3.1.0", - "arr-flatten": "^1.0.1", - "array-union": "^1.0.1", - "array-uniq": "^1.0.2", - "arrify": "^1.0.0", - "auto-bind": "^1.1.0", - "ava-init": "^0.2.0", - "babel-core": "^6.17.0", - "babel-generator": "^6.26.0", - "babel-plugin-syntax-object-rest-spread": "^6.13.0", - "bluebird": "^3.0.0", - "caching-transform": "^1.0.0", - "chalk": "^2.0.1", - "chokidar": "^1.4.2", - "clean-stack": "^1.1.1", - "clean-yaml-object": "^0.1.0", - "cli-cursor": "^2.1.0", - "cli-spinners": "^1.0.0", - "cli-truncate": "^1.0.0", - "co-with-promise": "^4.6.0", - "code-excerpt": "^2.1.1", - "common-path-prefix": "^1.0.0", - "concordance": "^3.0.0", - "convert-source-map": "^1.5.1", - "core-assert": "^0.2.0", - "currently-unhandled": "^0.4.1", - "debug": "^3.0.1", - "dot-prop": "^4.1.0", - "empower-core": "^0.6.1", - "equal-length": "^1.0.0", - "figures": "^2.0.0", - "find-cache-dir": "^1.0.0", - "fn-name": "^2.0.0", - "get-port": "^3.0.0", - "globby": "^6.0.0", - "has-flag": "^2.0.0", - "hullabaloo-config-manager": "^1.1.0", - "ignore-by-default": "^1.0.0", - "import-local": "^0.1.1", - "indent-string": "^3.0.0", - "is-ci": "^1.0.7", - "is-generator-fn": "^1.0.0", - "is-obj": "^1.0.0", - "is-observable": "^1.0.0", - "is-promise": "^2.1.0", - "last-line-stream": "^1.0.0", - "lodash.clonedeepwith": "^4.5.0", - "lodash.debounce": "^4.0.3", - "lodash.difference": "^4.3.0", - "lodash.flatten": "^4.2.0", - "loud-rejection": "^1.2.0", - "make-dir": "^1.0.0", - "matcher": "^1.0.0", - "md5-hex": "^2.0.0", - "meow": "^3.7.0", - "ms": "^2.0.0", - "multimatch": "^2.1.0", - "observable-to-promise": "^0.5.0", - "option-chain": "^1.0.0", - "package-hash": "^2.0.0", - "pkg-conf": "^2.0.0", - "plur": "^2.0.0", - "pretty-ms": "^3.0.0", - "require-precompiled": "^0.1.0", - "resolve-cwd": "^2.0.0", - "safe-buffer": "^5.1.1", - "semver": "^5.4.1", - "slash": "^1.0.0", - "source-map-support": "^0.5.0", - "stack-utils": "^1.0.1", - "strip-ansi": "^4.0.0", - "strip-bom-buf": "^1.0.0", - "supertap": "^1.0.0", - "supports-color": "^5.0.0", - "trim-off-newlines": "^1.0.1", - "unique-temp-dir": "^1.0.0", - "update-notifier": "^2.3.0" + "@ava/babel-preset-stage-4": "1.1.0", + "@ava/babel-preset-transform-test-files": "3.0.0", + "@ava/write-file-atomic": "2.2.0", + "@concordance/react": "1.0.0", + "@ladjs/time-require": "0.1.4", + "ansi-escapes": "3.1.0", + "ansi-styles": "3.2.1", + "arr-flatten": "1.1.0", + "array-union": "1.0.2", + "array-uniq": "1.0.3", + "arrify": "1.0.1", + "auto-bind": "1.2.0", + "ava-init": "0.2.1", + "babel-core": "6.26.3", + "babel-generator": "6.26.1", + "babel-plugin-syntax-object-rest-spread": "6.13.0", + "bluebird": "3.5.1", + "caching-transform": "1.0.1", + "chalk": "2.4.1", + "chokidar": "1.7.0", + "clean-stack": "1.3.0", + "clean-yaml-object": "0.1.0", + "cli-cursor": "2.1.0", + "cli-spinners": "1.3.1", + "cli-truncate": "1.1.0", + "co-with-promise": "4.6.0", + "code-excerpt": "2.1.1", + "common-path-prefix": "1.0.0", + "concordance": "3.0.0", + "convert-source-map": "1.5.1", + "core-assert": "0.2.1", + "currently-unhandled": "0.4.1", + "debug": "3.1.0", + "dot-prop": "4.2.0", + "empower-core": "0.6.2", + "equal-length": "1.0.1", + "figures": "2.0.0", + "find-cache-dir": "1.0.0", + "fn-name": "2.0.1", + "get-port": "3.2.0", + "globby": "6.1.0", + "has-flag": "2.0.0", + "hullabaloo-config-manager": "1.1.1", + "ignore-by-default": "1.0.1", + "import-local": "0.1.1", + "indent-string": "3.2.0", + "is-ci": "1.1.0", + "is-generator-fn": "1.0.0", + "is-obj": "1.0.1", + "is-observable": "1.1.0", + "is-promise": "2.1.0", + "last-line-stream": "1.0.0", + "lodash.clonedeepwith": "4.5.0", + "lodash.debounce": "4.0.8", + "lodash.difference": "4.5.0", + "lodash.flatten": "4.4.0", + "loud-rejection": "1.6.0", + "make-dir": "1.3.0", + "matcher": "1.1.0", + "md5-hex": "2.0.0", + "meow": "3.7.0", + "ms": "2.0.0", + "multimatch": "2.1.0", + "observable-to-promise": "0.5.0", + "option-chain": "1.0.0", + "package-hash": "2.0.0", + "pkg-conf": "2.1.0", + "plur": "2.1.2", + "pretty-ms": "3.1.0", + "require-precompiled": "0.1.0", + "resolve-cwd": "2.0.0", + "safe-buffer": "5.1.2", + "semver": "5.5.0", + "slash": "1.0.0", + "source-map-support": "0.5.6", + "stack-utils": "1.0.1", + "strip-ansi": "4.0.0", + "strip-bom-buf": "1.0.0", + "supertap": "1.0.0", + "supports-color": "5.4.0", + "trim-off-newlines": "1.0.1", + "unique-temp-dir": "1.0.0", + "update-notifier": "2.5.0" } }, "ava-init": { @@ -2643,11 +2826,11 @@ "integrity": "sha512-lXwK5LM+2g1euDRqW1mcSX/tqzY1QU7EjKpqayFPPtNRmbSYZ8RzPO5tqluTToijmtjp2M+pNpVdbcHssC4glg==", "dev": true, "requires": { - "arr-exclude": "^1.0.0", - "execa": "^0.7.0", - "has-yarn": "^1.0.0", - "read-pkg-up": "^2.0.0", - "write-pkg": "^3.1.0" + "arr-exclude": "1.0.0", + "execa": "0.7.0", + "has-yarn": "1.0.0", + "read-pkg-up": "2.0.0", + "write-pkg": "3.1.0" } }, "aws-sign2": { @@ -2665,8 +2848,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz", "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=", "requires": { - "follow-redirects": "^1.3.0", - "is-buffer": "^1.1.5" + "follow-redirects": "1.4.1", + "is-buffer": "1.1.6" } }, "b64": { @@ -2681,9 +2864,9 @@ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" }, "dependencies": { "ansi-styles": { @@ -2698,11 +2881,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "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" } }, "strip-ansi": { @@ -2711,7 +2894,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "supports-color": { @@ -2728,25 +2911,25 @@ "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.1", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.5.1", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.10", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" }, "dependencies": { "debug": { @@ -2766,14 +2949,14 @@ "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "dev": true, "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.10", + "source-map": "0.5.7", + "trim-right": "1.0.1" }, "dependencies": { "jsesc": { @@ -2790,9 +2973,9 @@ "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "dev": true, "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-explode-assignable-expression": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-call-delegate": { @@ -2801,10 +2984,10 @@ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "dev": true, "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-explode-assignable-expression": { @@ -2813,9 +2996,9 @@ "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-function-name": { @@ -2824,11 +3007,11 @@ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "dev": true, "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-get-function-arity": { @@ -2837,8 +3020,8 @@ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-hoist-variables": { @@ -2847,8 +3030,8 @@ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-regex": { @@ -2857,9 +3040,9 @@ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.10" } }, "babel-helper-remap-async-to-generator": { @@ -2868,11 +3051,11 @@ "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "dev": true, "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helpers": { @@ -2881,8 +3064,8 @@ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-messages": { @@ -2891,7 +3074,7 @@ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-check-es2015-constants": { @@ -2900,7 +3083,7 @@ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-espower": { @@ -2909,13 +3092,13 @@ "integrity": "sha512-/+SRpy7pKgTI28oEHfn1wkuM5QFAdRq8WNsOOih1dVrdV6A/WbNbRZyl0eX5eyDgtb0lOE27PeDFuCX2j8OxVg==", "dev": true, "requires": { - "babel-generator": "^6.1.0", - "babylon": "^6.1.0", - "call-matcher": "^1.0.0", - "core-js": "^2.0.0", - "espower-location-detector": "^1.0.0", - "espurify": "^1.6.0", - "estraverse": "^4.1.1" + "babel-generator": "6.26.1", + "babylon": "6.18.0", + "call-matcher": "1.0.1", + "core-js": "2.5.6", + "espower-location-detector": "1.0.0", + "espurify": "1.8.0", + "estraverse": "4.2.0" } }, "babel-plugin-syntax-async-functions": { @@ -2948,9 +3131,9 @@ "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "dev": true, "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-destructuring": { @@ -2959,7 +3142,7 @@ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -2968,9 +3151,9 @@ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "dev": true, "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -2979,10 +3162,10 @@ "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "dev": true, "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -2991,12 +3174,12 @@ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "dev": true, "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-spread": { @@ -3005,7 +3188,7 @@ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -3014,9 +3197,9 @@ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "dev": true, "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -3025,9 +3208,9 @@ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "dev": true, "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "regexpu-core": "2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -3036,9 +3219,9 @@ "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "dev": true, "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", + "babel-plugin-syntax-exponentiation-operator": "6.13.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-strict-mode": { @@ -3047,8 +3230,8 @@ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-register": { @@ -3057,13 +3240,13 @@ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "dev": true, "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" + "babel-core": "6.26.3", + "babel-runtime": "6.26.0", + "core-js": "2.5.6", + "home-or-tmp": "2.0.0", + "lodash": "4.17.10", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" }, "dependencies": { "source-map-support": { @@ -3072,7 +3255,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "^0.5.6" + "source-map": "0.5.7" } } } @@ -3083,8 +3266,8 @@ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "core-js": "2.5.6", + "regenerator-runtime": "0.11.1" } }, "babel-template": { @@ -3093,11 +3276,11 @@ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.10" } }, "babel-traverse": { @@ -3106,15 +3289,15 @@ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.4", + "lodash": "4.17.10" }, "dependencies": { "debug": { @@ -3134,10 +3317,10 @@ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.10", + "to-fast-properties": "1.0.3" } }, "babylon": { @@ -3158,7 +3341,7 @@ "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "optional": true, "requires": { - "tweetnacl": "^0.14.3" + "tweetnacl": "0.14.5" } }, "big-time": { @@ -3186,15 +3369,15 @@ "dev": true, "requires": { "bytes": "3.0.0", - "content-type": "~1.0.4", + "content-type": "1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "~1.6.3", + "depd": "1.1.2", + "http-errors": "1.6.3", "iconv-lite": "0.4.23", - "on-finished": "~2.3.0", + "on-finished": "2.3.0", "qs": "6.5.2", "raw-body": "2.3.3", - "type-is": "~1.6.16" + "type-is": "1.6.16" }, "dependencies": { "debug": { @@ -3213,7 +3396,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", "requires": { - "hoek": "4.x.x" + "hoek": "4.2.1" } }, "bounce": { @@ -3222,8 +3405,8 @@ "integrity": "sha512-8syCGe8B2/WC53118/F/tFy5aW00j+eaGPXmAUP7iBhxc+EBZZxS1vKelWyBCH6IqojgS2t1gF0glH30qAJKEw==", "dev": true, "requires": { - "boom": "7.x.x", - "hoek": "5.x.x" + "boom": "7.2.0", + "hoek": "5.0.3" }, "dependencies": { "boom": { @@ -3232,7 +3415,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.x.x" + "hoek": "5.0.3" } }, "hoek": { @@ -3249,13 +3432,13 @@ "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", "dev": true, "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" + "ansi-align": "2.0.0", + "camelcase": "4.1.0", + "chalk": "2.4.1", + "cli-boxes": "1.0.0", + "string-width": "2.1.1", + "term-size": "1.2.0", + "widest-line": "2.0.0" }, "dependencies": { "camelcase": { @@ -3272,7 +3455,7 @@ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -3282,9 +3465,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" } }, "browser-stdout": { @@ -3327,10 +3510,10 @@ "integrity": "sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=", "dev": true, "requires": { - "dtrace-provider": "~0.8", - "moment": "^2.10.6", - "mv": "~2", - "safe-json-stringify": "~1" + "dtrace-provider": "0.8.6", + "moment": "2.22.1", + "mv": "2.1.1", + "safe-json-stringify": "1.1.0" } }, "bytes": { @@ -3368,9 +3551,9 @@ "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", "dev": true, "requires": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" }, "dependencies": { "md5-hex": { @@ -3379,7 +3562,7 @@ "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "dev": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "write-file-atomic": { @@ -3388,9 +3571,9 @@ "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" } } } @@ -3401,8 +3584,8 @@ "integrity": "sha512-ollfFPSshiuYLp7AsrmpkQJ/PxCi6AzV81rCjBwWhyF2QGyUY/vPDMzoh4aUcWyucheRglG2LaS5qkIEfLRh6A==", "dev": true, "requires": { - "boom": "7.x.x", - "hoek": "5.x.x" + "boom": "7.2.0", + "hoek": "5.0.3" }, "dependencies": { "boom": { @@ -3411,7 +3594,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.x.x" + "hoek": "5.0.3" } }, "hoek": { @@ -3428,10 +3611,10 @@ "integrity": "sha1-UTTQd5hPcSpU2tPL9i3ijc5BbKg=", "dev": true, "requires": { - "core-js": "^2.0.0", - "deep-equal": "^1.0.0", - "espurify": "^1.6.0", - "estraverse": "^4.0.0" + "core-js": "2.5.6", + "deep-equal": "1.0.1", + "espurify": "1.8.0", + "estraverse": "4.2.0" } }, "call-signature": { @@ -3446,7 +3629,7 @@ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { - "callsites": "^0.2.0" + "callsites": "0.2.0" } }, "callsites": { @@ -3467,8 +3650,8 @@ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" + "camelcase": "2.1.1", + "map-obj": "1.0.1" } }, "capture-stack-trace": { @@ -3487,10 +3670,10 @@ "integrity": "sha512-cTQTQeKMhWHU0lX8CADE3g1koGJu+AlcWFzAjMX/8P+XbkScGYw3tJsQpe2Oh8q68vOQbOLacz9k+6V/F3Z9DA==", "dev": true, "requires": { - "boom": "7.x.x", - "bounce": "1.x.x", - "hoek": "5.x.x", - "joi": "13.x.x" + "boom": "7.2.0", + "bounce": "1.2.0", + "hoek": "5.0.3", + "joi": "13.3.0" }, "dependencies": { "boom": { @@ -3499,7 +3682,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.x.x" + "hoek": "5.0.3" } }, "hoek": { @@ -3516,9 +3699,9 @@ "integrity": "sha512-lhWtutLVhsq3Mucxk2McxBPPibJ34WcHuWFz3xqub9u9Ve/IQYpZv3ijLhQXfQped9DXozURiaq9O3aZpP91eg==", "dev": true, "requires": { - "big-time": "2.x.x", - "boom": "7.x.x", - "hoek": "5.x.x" + "big-time": "2.0.1", + "boom": "7.2.0", + "hoek": "5.0.3" }, "dependencies": { "boom": { @@ -3527,7 +3710,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.x.x" + "hoek": "5.0.3" } }, "hoek": { @@ -3544,7 +3727,7 @@ "integrity": "sha1-mMyJDKZS3S7w5ws3klMQ/56Q/Is=", "dev": true, "requires": { - "underscore-contrib": "~0.3.0" + "underscore-contrib": "0.3.0" } }, "center-align": { @@ -3554,8 +3737,8 @@ "dev": true, "optional": true, "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "align-text": "0.1.4", + "lazy-cache": "1.0.4" } }, "chai": { @@ -3564,20 +3747,12 @@ "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", "dev": true, "requires": { - "assertion-error": "^1.0.1", - "check-error": "^1.0.1", - "deep-eql": "^3.0.0", - "get-func-name": "^2.0.0", - "pathval": "^1.0.0", - "type-detect": "^4.0.0" - }, - "dependencies": { - "pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", - "dev": true - } + "assertion-error": "1.1.0", + "check-error": "1.0.2", + "deep-eql": "3.0.1", + "get-func-name": "2.0.0", + "pathval": "1.1.0", + "type-detect": "4.0.8" } }, "chalk": { @@ -3586,9 +3761,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.0" } }, "chardet": { @@ -3609,15 +3784,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "dev": true, "requires": { - "anymatch": "^1.3.0", - "async-each": "^1.0.0", - "fsevents": "^1.0.0", - "glob-parent": "^2.0.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0" + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.2.4", + "glob-parent": "2.0.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" } }, "ci-info": { @@ -3638,9 +3813,9 @@ "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", "dev": true, "requires": { - "async": "^1.5.2", - "glob": "^7.0.0", - "resolve": "^1.1.6" + "async": "1.5.2", + "glob": "7.1.2", + "resolve": "1.1.7" }, "dependencies": { "async": { @@ -3663,16 +3838,6 @@ "integrity": "sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g=", "dev": true }, - "cli": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", - "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", - "dev": true, - "requires": { - "exit": "0.1.2", - "glob": "^7.1.1" - } - }, "cli-boxes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", @@ -3685,7 +3850,7 @@ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "restore-cursor": "^2.0.0" + "restore-cursor": "2.0.0" } }, "cli-spinners": { @@ -3694,31 +3859,14 @@ "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==", "dev": true }, - "cli-table": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", - "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", - "dev": true, - "requires": { - "colors": "1.0.3" - }, - "dependencies": { - "colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", - "dev": true - } - } - }, "cli-truncate": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-1.1.0.tgz", "integrity": "sha512-bAtZo0u82gCfaAGfSNxUdTI9mNyza7D8w4CVCcaOsy7sgwDzvx6ekr6cuWJqY3UGzgnQ1+4wgENup5eIhgxEYA==", "dev": true, "requires": { - "slice-ansi": "^1.0.0", - "string-width": "^2.0.0" + "slice-ansi": "1.0.0", + "string-width": "2.1.1" } }, "cli-width": { @@ -3734,8 +3882,8 @@ "dev": true, "optional": true, "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", + "center-align": "0.1.3", + "right-align": "0.1.3", "wordwrap": "0.0.2" }, "dependencies": { @@ -3754,7 +3902,7 @@ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "dev": true, "requires": { - "mimic-response": "^1.0.0" + "mimic-response": "1.0.0" } }, "co": { @@ -3768,7 +3916,7 @@ "integrity": "sha1-QT59tvWJOmC5Qs9JLEvsk9tBWrc=", "dev": true, "requires": { - "pinkie-promise": "^1.0.0" + "pinkie-promise": "1.0.0" } }, "code-excerpt": { @@ -3777,7 +3925,7 @@ "integrity": "sha512-tJLhH3EpFm/1x7heIW0hemXJTUU5EWl2V0EIX558jp05Mt1U6DVryCgkp3l37cxqs+DNbNgxG43SkwJXpQ14Jw==", "dev": true, "requires": { - "convert-to-spaces": "^1.0.1" + "convert-to-spaces": "1.0.2" } }, "code-point-at": { @@ -3793,7 +3941,7 @@ "dev": true, "requires": { "argv": "0.0.2", - "request": "^2.81.0", + "request": "2.86.0", "urlgrey": "0.4.4" } }, @@ -3803,7 +3951,7 @@ "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", "dev": true, "requires": { - "color-name": "^1.1.1" + "color-name": "1.1.3" } }, "color-name": { @@ -3823,7 +3971,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "requires": { - "delayed-stream": "~1.0.0" + "delayed-stream": "1.0.0" } }, "commander": { @@ -3832,15 +3980,6 @@ "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", "dev": true }, - "comment-parser": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-0.3.2.tgz", - "integrity": "sha1-PAPwd2uGo239mgosl8YwfzMggv4=", - "dev": true, - "requires": { - "readable-stream": "^2.0.4" - } - }, "common-path-prefix": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-1.0.0.tgz", @@ -3870,10 +4009,10 @@ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "buffer-from": "1.0.0", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "typedarray": "0.0.6" } }, "concordance": { @@ -3882,17 +4021,17 @@ "integrity": "sha512-CZBzJ3/l5QJjlZM20WY7+5GP5pMTw+1UEbThcpMw8/rojsi5sBCiD8ZbBLtD+jYpRGAkwuKuqk108c154V9eyQ==", "dev": true, "requires": { - "date-time": "^2.1.0", - "esutils": "^2.0.2", - "fast-diff": "^1.1.1", - "function-name-support": "^0.2.0", - "js-string-escape": "^1.0.1", - "lodash.clonedeep": "^4.5.0", - "lodash.flattendeep": "^4.4.0", - "lodash.merge": "^4.6.0", - "md5-hex": "^2.0.0", - "semver": "^5.3.0", - "well-known-symbols": "^1.0.0" + "date-time": "2.1.0", + "esutils": "2.0.2", + "fast-diff": "1.1.2", + "function-name-support": "0.2.0", + "js-string-escape": "1.0.1", + "lodash.clonedeep": "4.5.0", + "lodash.flattendeep": "4.4.0", + "lodash.merge": "4.6.1", + "md5-hex": "2.0.0", + "semver": "5.5.0", + "well-known-symbols": "1.0.0" }, "dependencies": { "date-time": { @@ -3901,7 +4040,7 @@ "integrity": "sha512-/9+C44X7lot0IeiyfgJmETtRMhBidBYM2QFFIkGa0U1k+hSyY87Nw7PY3eDqpvCBm7I3WCSfPeZskW/YYq6m4g==", "dev": true, "requires": { - "time-zone": "^1.0.0" + "time-zone": "1.0.0" } } } @@ -3912,21 +4051,12 @@ "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", "dev": true, "requires": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" - } - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "^0.1.4" + "dot-prop": "4.2.0", + "graceful-fs": "4.1.11", + "make-dir": "1.3.0", + "unique-string": "1.0.0", + "write-file-atomic": "2.3.0", + "xdg-basedir": "3.0.0" } }, "content": { @@ -3935,7 +4065,7 @@ "integrity": "sha512-wDP6CTWDpwCf791fNxlCCkZGRkrNzSEU/8ju9Hnr3Uc5mF/gFR5W+fcoGm6zUSlVPdSXYn5pCbySADKj7YM4Cg==", "dev": true, "requires": { - "boom": "7.x.x" + "boom": "7.2.0" }, "dependencies": { "boom": { @@ -3944,7 +4074,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.x.x" + "hoek": "5.0.3" } }, "hoek": { @@ -4003,8 +4133,8 @@ "integrity": "sha1-fIphX1SBxhq58WyDNzG8uPZjuZs=", "dev": true, "requires": { - "depd": "~1.1.1", - "keygrip": "~1.0.2" + "depd": "1.1.2", + "keygrip": "1.0.2" } }, "core-assert": { @@ -4013,8 +4143,8 @@ "integrity": "sha1-+F4s+b/tKPdzzIs/pcW2m9wC/j8=", "dev": true, "requires": { - "buf-compare": "^1.0.0", - "is-error": "^2.2.0" + "buf-compare": "1.0.1", + "is-error": "2.2.1" } }, "core-js": { @@ -4034,13 +4164,13 @@ "integrity": "sha1-b4NhYlRiTwrViqSqjQdvAmvn4Yg=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nested-error-stacks": "^1.0.1", - "object-assign": "^4.0.1", - "pify": "^2.3.0", - "pinkie-promise": "^2.0.0", - "readable-stream": "^2.1.4" + "graceful-fs": "4.1.11", + "mkdirp": "0.5.1", + "nested-error-stacks": "1.0.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "readable-stream": "2.3.6" }, "dependencies": { "pify": { @@ -4061,7 +4191,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } } } @@ -4072,12 +4202,12 @@ "integrity": "sha1-tnJn66LzlgugalphrJQDNCKDNCQ=", "dev": true, "requires": { - "cp-file": "^3.1.0", - "globby": "^4.0.0", - "meow": "^3.6.0", - "nested-error-stacks": "^1.0.0", - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" + "cp-file": "3.2.0", + "globby": "4.1.0", + "meow": "3.7.0", + "nested-error-stacks": "1.0.2", + "object-assign": "4.1.1", + "pinkie-promise": "2.0.1" }, "dependencies": { "glob": { @@ -4086,11 +4216,11 @@ "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", "dev": true, "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "globby": { @@ -4099,12 +4229,12 @@ "integrity": "sha1-CA9UVJ7BuCpsYOYx/ILhIR2+lfg=", "dev": true, "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^6.0.1", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "6.0.4", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pify": { @@ -4125,7 +4255,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } } } @@ -4136,8 +4266,8 @@ "integrity": "sha1-Z/taSi3sKMqKv/N13kuecfanVhw=", "dev": true, "requires": { - "cpy": "^4.0.0", - "meow": "^3.6.0" + "cpy": "4.0.1", + "meow": "3.7.0" } }, "create-error-class": { @@ -4145,7 +4275,7 @@ "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "requires": { - "capture-stack-trace": "^1.0.0" + "capture-stack-trace": "1.0.0" } }, "cross-spawn": { @@ -4154,9 +4284,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.0" } }, "cryptiles": { @@ -4164,7 +4294,7 @@ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", "requires": { - "boom": "5.x.x" + "boom": "5.2.0" }, "dependencies": { "boom": { @@ -4172,7 +4302,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", "requires": { - "hoek": "4.x.x" + "hoek": "4.2.1" } } } @@ -4183,38 +4313,16 @@ "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", "dev": true }, - "cst": { - "version": "0.4.10", - "resolved": "https://registry.npmjs.org/cst/-/cst-0.4.10.tgz", - "integrity": "sha512-U5ETe1IOjq2h56ZcBE3oe9rT7XryCH6IKgPMv0L7sSk6w29yR3p5egCK0T3BDNHHV95OoUBgXsqiVG+3a900Ag==", - "dev": true, - "requires": { - "babel-runtime": "^6.9.2", - "babylon": "^6.8.1", - "source-map-support": "^0.4.0" - }, - "dependencies": { - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "requires": { - "source-map": "^0.5.6" - } - } - } - }, "csv": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/csv/-/csv-1.2.1.tgz", "integrity": "sha1-UjHt/BxxUlEuxFeBB2p6l/9SXAw=", "dev": true, "requires": { - "csv-generate": "^1.1.2", - "csv-parse": "^1.3.3", - "csv-stringify": "^1.1.2", - "stream-transform": "^0.2.2" + "csv-generate": "1.1.2", + "csv-parse": "1.3.3", + "csv-stringify": "1.1.2", + "stream-transform": "0.2.2" } }, "csv-generate": { @@ -4235,7 +4343,7 @@ "integrity": "sha1-d6QVJlgbzjOA8SsA18W7rHDIK1g=", "dev": true, "requires": { - "lodash.get": "~4.4.2" + "lodash.get": "4.4.2" } }, "currently-unhandled": { @@ -4244,22 +4352,16 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "array-find-index": "^1.0.1" + "array-find-index": "1.0.2" } }, - "cycle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", - "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", - "dev": true - }, "d": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "dev": true, "requires": { - "es5-ext": "^0.10.9" + "es5-ext": "0.10.42" } }, "dashdash": { @@ -4267,15 +4369,9 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, "date-time": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/date-time/-/date-time-0.1.1.tgz", @@ -4302,8 +4398,8 @@ "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", "dev": true, "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" + "decamelize": "1.2.0", + "map-obj": "1.0.1" } }, "decode-uri-component": { @@ -4318,7 +4414,7 @@ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "dev": true, "requires": { - "mimic-response": "^1.0.0" + "mimic-response": "1.0.0" } }, "deep-eql": { @@ -4327,7 +4423,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "^4.0.0" + "type-detect": "4.0.8" } }, "deep-equal": { @@ -4354,8 +4450,8 @@ "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "dev": true, "requires": { - "foreach": "^2.0.5", - "object-keys": "^1.0.8" + "foreach": "2.0.5", + "object-keys": "1.0.11" } }, "del": { @@ -4364,13 +4460,13 @@ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" + "globby": "5.0.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.1", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "rimraf": "2.6.2" }, "dependencies": { "globby": { @@ -4379,12 +4475,12 @@ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pify": { @@ -4405,7 +4501,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } } } @@ -4439,7 +4535,7 @@ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "detect-node": { @@ -4466,7 +4562,7 @@ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "esutils": "^2.0.2" + "esutils": "2.0.2" } }, "dom-serializer": { @@ -4475,8 +4571,8 @@ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "dev": true, "requires": { - "domelementtype": "~1.1.1", - "entities": "~1.1.1" + "domelementtype": "1.1.3", + "entities": "1.1.1" }, "dependencies": { "domelementtype": { @@ -4499,7 +4595,7 @@ "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "dev": true, "requires": { - "domelementtype": "1" + "domelementtype": "1.3.0" } }, "domutils": { @@ -4508,8 +4604,8 @@ "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "dev": true, "requires": { - "dom-serializer": "0", - "domelementtype": "1" + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" } }, "dot-prop": { @@ -4518,7 +4614,7 @@ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", "dev": true, "requires": { - "is-obj": "^1.0.0" + "is-obj": "1.0.1" } }, "dtrace-provider": { @@ -4528,7 +4624,7 @@ "dev": true, "optional": true, "requires": { - "nan": "^2.3.3" + "nan": "2.10.0" } }, "duplexer3": { @@ -4542,10 +4638,10 @@ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" + "end-of-stream": "1.4.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "stream-shift": "1.0.0" } }, "eastasianwidth": { @@ -4560,7 +4656,7 @@ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "optional": true, "requires": { - "jsbn": "~0.1.0" + "jsbn": "0.1.1" } }, "ecdsa-sig-formatter": { @@ -4568,7 +4664,7 @@ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz", "integrity": "sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM=", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "ee-first": { @@ -4583,8 +4679,8 @@ "integrity": "sha1-bw2nNEf07dg4/sXGAxOoi6XLhSs=", "dev": true, "requires": { - "core-js": "^2.0.0", - "empower-core": "^0.6.2" + "core-js": "2.5.6", + "empower-core": "0.6.2" } }, "empower-assert": { @@ -4593,7 +4689,7 @@ "integrity": "sha512-Ylck0Q6p8y/LpNzYeBccaxAPm2ZyuqBgErgZpO9KT0HuQWF0sJckBKCLmgS1/DEXEiyBi9XtYh3clZm5cAdARw==", "dev": true, "requires": { - "estraverse": "^4.2.0" + "estraverse": "4.2.0" } }, "empower-core": { @@ -4603,7 +4699,7 @@ "dev": true, "requires": { "call-signature": "0.0.2", - "core-js": "^2.0.0" + "core-js": "2.5.6" } }, "encodeurl": { @@ -4617,7 +4713,7 @@ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "requires": { - "once": "^1.4.0" + "once": "1.4.0" } }, "ent": { @@ -4643,7 +4739,7 @@ "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "error-inject": { @@ -4658,9 +4754,9 @@ "integrity": "sha512-AJxO1rmPe1bDEfSR6TJ/FgMFYuTBhR5R57KW58iCkYACMyFbrkqVyzXSurYoScDGvgyMpk7uRF/lPUPPTmsRSA==", "dev": true, "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.1", - "next-tick": "1" + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1", + "next-tick": "1.0.0" } }, "es6-error": { @@ -4675,9 +4771,9 @@ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "dev": true, "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" + "d": "1.0.0", + "es5-ext": "0.10.42", + "es6-symbol": "3.1.1" } }, "es6-map": { @@ -4686,12 +4782,12 @@ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", "dev": true, "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-set": "~0.1.5", - "es6-symbol": "~3.1.1", - "event-emitter": "~0.3.5" + "d": "1.0.0", + "es5-ext": "0.10.42", + "es6-iterator": "2.0.3", + "es6-set": "0.1.5", + "es6-symbol": "3.1.1", + "event-emitter": "0.3.5" } }, "es6-set": { @@ -4700,11 +4796,11 @@ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", "dev": true, "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", + "d": "1.0.0", + "es5-ext": "0.10.42", + "es6-iterator": "2.0.3", "es6-symbol": "3.1.1", - "event-emitter": "~0.3.5" + "event-emitter": "0.3.5" } }, "es6-symbol": { @@ -4713,8 +4809,8 @@ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", "dev": true, "requires": { - "d": "1", - "es5-ext": "~0.10.14" + "d": "1.0.0", + "es5-ext": "0.10.42" } }, "es6-weak-map": { @@ -4723,10 +4819,10 @@ "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", "dev": true, "requires": { - "d": "1", - "es5-ext": "^0.10.14", - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" + "d": "1.0.0", + "es5-ext": "0.10.42", + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1" } }, "escallmatch": { @@ -4735,8 +4831,8 @@ "integrity": "sha1-UAmdhugJGwkt+N37w/mm+wWgJNA=", "dev": true, "requires": { - "call-matcher": "^1.0.0", - "esprima": "^2.0.0" + "call-matcher": "1.0.1", + "esprima": "2.7.3" }, "dependencies": { "esprima": { @@ -4771,11 +4867,11 @@ "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", "dev": true, "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.6.1" }, "dependencies": { "esprima": { @@ -4799,10 +4895,10 @@ "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", "dev": true, "requires": { - "es6-map": "^0.1.3", - "es6-weak-map": "^2.0.1", - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "es6-map": "0.1.5", + "es6-weak-map": "2.0.2", + "esrecurse": "4.2.1", + "estraverse": "4.2.0" } }, "eslint": { @@ -4811,44 +4907,44 @@ "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", "dev": true, "requires": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.4", - "esquery": "^1.0.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "regexpp": "^1.0.1", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", + "ajv": "5.5.2", + "babel-code-frame": "6.26.0", + "chalk": "2.4.1", + "concat-stream": "1.6.2", + "cross-spawn": "5.1.0", + "debug": "3.1.0", + "doctrine": "2.1.0", + "eslint-scope": "3.7.1", + "eslint-visitor-keys": "1.0.0", + "espree": "3.5.4", + "esquery": "1.0.1", + "esutils": "2.0.2", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.2", + "globals": "11.5.0", + "ignore": "3.3.8", + "imurmurhash": "0.1.4", + "inquirer": "3.3.0", + "is-resolvable": "1.1.0", + "js-yaml": "3.11.0", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.10", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.0", + "regexpp": "1.1.0", + "require-uncached": "1.0.3", + "semver": "5.5.0", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", "table": "4.0.2", - "text-table": "~0.2.0" + "text-table": "0.2.0" }, "dependencies": { "globals": { @@ -4865,7 +4961,7 @@ "integrity": "sha512-ag8YEyBXsm3nmOv1Hz991VtNNDMRa+MNy8cY47Pl4bw6iuzqKbJajXdqUpiw13STdLLrznxgm1hj9NhxeOYq0A==", "dev": true, "requires": { - "get-stdin": "^5.0.1" + "get-stdin": "5.0.1" }, "dependencies": { "get-stdin": { @@ -4882,10 +4978,10 @@ "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", "dev": true, "requires": { - "ignore": "^3.3.6", - "minimatch": "^3.0.4", - "resolve": "^1.3.3", - "semver": "^5.4.1" + "ignore": "3.3.8", + "minimatch": "3.0.4", + "resolve": "1.7.1", + "semver": "5.5.0" }, "dependencies": { "resolve": { @@ -4894,7 +4990,7 @@ "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", "dev": true, "requires": { - "path-parse": "^1.0.5" + "path-parse": "1.0.5" } } } @@ -4905,8 +5001,8 @@ "integrity": "sha512-floiaI4F7hRkTrFe8V2ItOK97QYrX75DjmdzmVITZoAP6Cn06oEDPQRsO6MlHEP/u2SxI3xQ52Kpjw6j5WGfeQ==", "dev": true, "requires": { - "fast-diff": "^1.1.1", - "jest-docblock": "^21.0.0" + "fast-diff": "1.1.2", + "jest-docblock": "21.2.0" } }, "eslint-scope": { @@ -4915,8 +5011,8 @@ "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", "dev": true, "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "esrecurse": "4.2.1", + "estraverse": "4.2.0" } }, "eslint-visitor-keys": { @@ -4931,16 +5027,16 @@ "integrity": "sha512-F4TY1qYJB1aUyzB03NsZksZzUQmQoEBaTUjRJGR30GxbkbjKI41NhCyYjrF+bGgWN7x/ZsczYppRpz/0WdI0ug==", "dev": true, "requires": { - "array-find": "^1.0.0", - "escallmatch": "^1.5.0", - "escodegen": "^1.7.0", - "escope": "^3.3.0", - "espower-location-detector": "^1.0.0", - "espurify": "^1.3.0", - "estraverse": "^4.1.0", - "source-map": "^0.5.0", - "type-name": "^2.0.0", - "xtend": "^4.0.0" + "array-find": "1.0.0", + "escallmatch": "1.5.0", + "escodegen": "1.9.1", + "escope": "3.6.0", + "espower-location-detector": "1.0.0", + "espurify": "1.8.0", + "estraverse": "4.2.0", + "source-map": "0.5.7", + "type-name": "2.0.2", + "xtend": "4.0.1" } }, "espower-loader": { @@ -4949,11 +5045,11 @@ "integrity": "sha1-7bRsPFmga6yOpzppXIblxaC8gto=", "dev": true, "requires": { - "convert-source-map": "^1.1.0", - "espower-source": "^2.0.0", - "minimatch": "^3.0.0", - "source-map-support": "^0.4.0", - "xtend": "^4.0.0" + "convert-source-map": "1.5.1", + "espower-source": "2.2.0", + "minimatch": "3.0.4", + "source-map-support": "0.4.18", + "xtend": "4.0.1" }, "dependencies": { "source-map-support": { @@ -4962,7 +5058,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "^0.5.6" + "source-map": "0.5.7" } } } @@ -4973,10 +5069,10 @@ "integrity": "sha1-oXt+zFnTDheeK+9z+0E3cEyzMbU=", "dev": true, "requires": { - "is-url": "^1.2.1", - "path-is-absolute": "^1.0.0", - "source-map": "^0.5.0", - "xtend": "^4.0.0" + "is-url": "1.2.4", + "path-is-absolute": "1.0.1", + "source-map": "0.5.7", + "xtend": "4.0.1" } }, "espower-source": { @@ -4985,17 +5081,17 @@ "integrity": "sha1-fgBSVa5HtcE2RIZEs/PYAtUD91I=", "dev": true, "requires": { - "acorn": "^5.0.0", - "acorn-es7-plugin": "^1.0.10", - "convert-source-map": "^1.1.1", - "empower-assert": "^1.0.0", - "escodegen": "^1.6.1", - "espower": "^2.0.0", - "estraverse": "^4.0.0", - "merge-estraverse-visitors": "^1.0.0", - "multi-stage-sourcemap": "^0.2.1", - "path-is-absolute": "^1.0.0", - "xtend": "^4.0.0" + "acorn": "5.5.3", + "acorn-es7-plugin": "1.1.7", + "convert-source-map": "1.5.1", + "empower-assert": "1.1.0", + "escodegen": "1.9.1", + "espower": "2.1.1", + "estraverse": "4.2.0", + "merge-estraverse-visitors": "1.0.0", + "multi-stage-sourcemap": "0.2.1", + "path-is-absolute": "1.0.1", + "xtend": "4.0.1" } }, "espree": { @@ -5004,8 +5100,8 @@ "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "dev": true, "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" + "acorn": "5.5.3", + "acorn-jsx": "3.0.1" } }, "esprima": { @@ -5020,7 +5116,7 @@ "integrity": "sha512-jdkJG9jswjKCCDmEridNUuIQei9algr+o66ZZ19610ZoBsiWLRsQGNYS4HGez3Z/DsR0lhANGAqiwBUclPuNag==", "dev": true, "requires": { - "core-js": "^2.0.0" + "core-js": "2.5.6" } }, "esquery": { @@ -5029,7 +5125,7 @@ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { - "estraverse": "^4.0.0" + "estraverse": "4.2.0" } }, "esrecurse": { @@ -5038,7 +5134,7 @@ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "^4.1.0" + "estraverse": "4.2.0" } }, "estraverse": { @@ -5065,8 +5161,8 @@ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", "dev": true, "requires": { - "d": "1", - "es5-ext": "~0.10.14" + "d": "1.0.0", + "es5-ext": "0.10.42" } }, "ewma": { @@ -5075,7 +5171,7 @@ "integrity": "sha512-MYYK17A76cuuyvkR7MnqLW4iFYPEi5Isl2qb8rXiWpLiwFS9dxW/rncuNnjjgSENuVqZQkIuR4+DChVL4g1lnw==", "dev": true, "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "execa": { @@ -5084,28 +5180,22 @@ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" } }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, "expand-brackets": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "^0.1.0" + "is-posix-bracket": "0.1.1" } }, "expand-range": { @@ -5114,7 +5204,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "^2.1.0" + "fill-range": "2.2.4" } }, "express": { @@ -5123,36 +5213,36 @@ "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", "dev": true, "requires": { - "accepts": "~1.3.5", + "accepts": "1.3.5", "array-flatten": "1.1.1", "body-parser": "1.18.2", "content-disposition": "0.5.2", - "content-type": "~1.0.4", + "content-type": "1.0.4", "cookie": "0.3.1", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", + "depd": "1.1.2", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", "finalhandler": "1.1.1", "fresh": "0.5.2", "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", + "methods": "1.1.2", + "on-finished": "2.3.0", + "parseurl": "1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.3", + "proxy-addr": "2.0.3", "qs": "6.5.1", - "range-parser": "~1.2.0", + "range-parser": "1.2.0", "safe-buffer": "5.1.1", "send": "0.16.2", "serve-static": "1.13.2", "setprototypeof": "1.1.0", - "statuses": "~1.4.0", - "type-is": "~1.6.16", + "statuses": "1.4.0", + "type-is": "1.6.16", "utils-merge": "1.0.1", - "vary": "~1.1.2" + "vary": "1.1.2" }, "dependencies": { "body-parser": { @@ -5162,15 +5252,15 @@ "dev": true, "requires": { "bytes": "3.0.0", - "content-type": "~1.0.4", + "content-type": "1.0.4", "debug": "2.6.9", - "depd": "~1.1.1", - "http-errors": "~1.6.2", + "depd": "1.1.2", + "http-errors": "1.6.3", "iconv-lite": "0.4.19", - "on-finished": "~2.3.0", + "on-finished": "2.3.0", "qs": "6.5.1", "raw-body": "2.3.2", - "type-is": "~1.6.15" + "type-is": "1.6.16" } }, "debug": { @@ -5227,7 +5317,7 @@ "depd": "1.1.1", "inherits": "2.0.3", "setprototypeof": "1.0.3", - "statuses": ">= 1.3.1 < 2" + "statuses": "1.4.0" } }, "setprototypeof": { @@ -5269,9 +5359,9 @@ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" + "chardet": "0.4.2", + "iconv-lite": "0.4.23", + "tmp": "0.0.33" } }, "extglob": { @@ -5280,7 +5370,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "extsprintf": { @@ -5288,12 +5378,6 @@ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, - "eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", - "dev": true - }, "fast-decode-uri-component": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.0.tgz", @@ -5328,7 +5412,7 @@ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "escape-string-regexp": "^1.0.5" + "escape-string-regexp": "1.0.5" } }, "file-entry-cache": { @@ -5337,8 +5421,8 @@ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "dev": true, "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" + "flat-cache": "1.3.0", + "object-assign": "4.1.1" } }, "filename-regex": { @@ -5353,8 +5437,8 @@ "integrity": "sha1-mo+jb06K1jTjv2tPPIiCVRRS6yA=", "dev": true, "requires": { - "is-object": "~1.0.1", - "merge-descriptors": "~1.0.0" + "is-object": "1.0.1", + "merge-descriptors": "1.0.1" } }, "fill-range": { @@ -5363,11 +5447,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "dev": true, "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "3.0.0", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" } }, "finalhandler": { @@ -5377,12 +5461,12 @@ "dev": true, "requires": { "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "statuses": "~1.4.0", - "unpipe": "~1.0.0" + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.4.0", + "unpipe": "1.0.0" }, "dependencies": { "debug": { @@ -5408,9 +5492,9 @@ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", "dev": true, "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^2.0.0" + "commondir": "1.0.1", + "make-dir": "1.3.0", + "pkg-dir": "2.0.0" } }, "find-my-way": { @@ -5419,7 +5503,7 @@ "integrity": "sha512-d7wZ0IeijAZDA/gvHjCNxxRTDCn5j9hnugcgEbNzYhofbDfogGhyRu93mtcJoAxeB1zemWTz9JB2JzNOar/qbA==", "dev": true, "requires": { - "fast-decode-uri-component": "^1.0.0" + "fast-decode-uri-component": "1.0.0" } }, "find-up": { @@ -5428,7 +5512,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "flat-cache": { @@ -5437,10 +5521,10 @@ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "dev": true, "requires": { - "circular-json": "^0.3.1", - "del": "^2.0.2", - "graceful-fs": "^4.1.2", - "write": "^0.2.1" + "circular-json": "0.3.3", + "del": "2.2.2", + "graceful-fs": "4.1.11", + "write": "0.2.1" } }, "fn-name": { @@ -5454,7 +5538,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.4.1.tgz", "integrity": "sha512-uxYePVPogtya1ktGnAAXOacnbIuRMB4dkvqeNz2qTtTQsuzSfbDolV+wMMKxAmCx0bLgAKLbBOkjItMbbkR1vg==", "requires": { - "debug": "^3.1.0" + "debug": "3.1.0" } }, "for-in": { @@ -5469,7 +5553,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { - "for-in": "^1.0.1" + "for-in": "1.0.2" } }, "foreach": { @@ -5488,9 +5572,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "requires": { - "asynckit": "^0.4.0", + "asynckit": "0.4.0", "combined-stream": "1.0.6", - "mime-types": "^2.1.12" + "mime-types": "2.1.18" } }, "formidable": { @@ -5517,8 +5601,8 @@ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "inherits": "2.0.3", + "readable-stream": "2.3.6" } }, "fs-extra": { @@ -5527,9 +5611,9 @@ "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" } }, "fs.realpath": { @@ -5545,81 +5629,93 @@ "dev": true, "optional": true, "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" + "nan": "2.10.0", + "node-pre-gyp": "0.10.0" }, "dependencies": { "abbrev": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true, "optional": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "aproba": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true, "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "dev": true, "optional": true, "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "delegates": "1.0.0", + "readable-stream": "2.3.6" } }, "balanced-match": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "brace-expansion": { "version": "1.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, "chownr": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, "concat-map": { "version": "0.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true }, "core-util-is": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true, "optional": true }, "debug": { "version": "2.6.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "optional": true, "requires": { @@ -5628,160 +5724,180 @@ }, "deep-extend": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", + "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", "dev": true, "optional": true }, "delegates": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true, "optional": true }, "detect-libc": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "dev": true, "optional": true }, "fs-minipass": { "version": "1.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", + "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.2.4" } }, "fs.realpath": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true, "optional": true }, "gauge": { "version": "2.7.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "optional": true, "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" + "aproba": "1.2.0", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" } }, "glob": { "version": "7.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "optional": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "has-unicode": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true, "optional": true }, "iconv-lite": { "version": "0.4.21", - "bundled": true, + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz", + "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", "dev": true, "optional": true, "requires": { - "safer-buffer": "^2.1.0" + "safer-buffer": "2.1.2" } }, "ignore-walk": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "dev": true, "optional": true, "requires": { - "minimatch": "^3.0.4" + "minimatch": "3.0.4" } }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "optional": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { "version": "2.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "ini": { "version": "1.3.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "isarray": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true, "optional": true }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { "version": "0.0.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, "minipass": { "version": "2.2.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.4.tgz", + "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", "dev": true, "requires": { - "safe-buffer": "^5.1.1", - "yallist": "^3.0.0" + "safe-buffer": "5.1.1", + "yallist": "3.0.2" } }, "minizlib": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", + "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.2.4" } }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { "minimist": "0.0.8" @@ -5789,145 +5905,162 @@ }, "ms": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true, "optional": true }, "needle": { "version": "2.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/needle/-/needle-2.2.0.tgz", + "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", "dev": true, "optional": true, "requires": { - "debug": "^2.1.2", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" + "debug": "2.6.9", + "iconv-lite": "0.4.21", + "sax": "1.2.4" } }, "node-pre-gyp": { "version": "0.10.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.10.0.tgz", + "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==", "dev": true, "optional": true, "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.0", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.1.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" + "detect-libc": "1.0.3", + "mkdirp": "0.5.1", + "needle": "2.2.0", + "nopt": "4.0.1", + "npm-packlist": "1.1.10", + "npmlog": "4.1.2", + "rc": "1.2.7", + "rimraf": "2.6.2", + "semver": "5.5.0", + "tar": "4.4.1" } }, "nopt": { "version": "4.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "dev": true, "optional": true, "requires": { - "abbrev": "1", - "osenv": "^0.1.4" + "abbrev": "1.1.1", + "osenv": "0.1.5" } }, "npm-bundled": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.3.tgz", + "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", "dev": true, "optional": true }, "npm-packlist": { "version": "1.1.10", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.10.tgz", + "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", "dev": true, "optional": true, "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.3" } }, "npmlog": { "version": "4.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "optional": true, "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" } }, "number-is-nan": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true, "optional": true }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true, "optional": true }, "osenv": { "version": "0.1.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "optional": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true, "optional": true }, "process-nextick-args": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "dev": true, "optional": true }, "rc": { "version": "1.2.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz", + "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", "dev": true, "optional": true, "requires": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "deep-extend": "0.5.1", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" }, "dependencies": { "minimist": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true, "optional": true } @@ -5935,134 +6068,151 @@ }, "readable-stream": { "version": "2.3.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "optional": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" } }, "rimraf": { "version": "2.6.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "optional": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "safe-buffer": { "version": "5.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", "dev": true }, "safer-buffer": { "version": "2.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true, "optional": true }, "sax": { "version": "1.2.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true, "optional": true }, "semver": { "version": "5.5.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true, "optional": true }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "string_decoder": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "optional": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.1" } }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-json-comments": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true, "optional": true }, "tar": { "version": "4.4.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.1.tgz", + "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", "dev": true, "optional": true, "requires": { - "chownr": "^1.0.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.2.4", - "minizlib": "^1.1.0", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.1", - "yallist": "^3.0.2" + "chownr": "1.0.1", + "fs-minipass": "1.2.5", + "minipass": "2.2.4", + "minizlib": "1.1.0", + "mkdirp": "0.5.1", + "safe-buffer": "5.1.1", + "yallist": "3.0.2" } }, "util-deprecate": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true, "optional": true }, "wide-align": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "dev": true, "optional": true, "requires": { - "string-width": "^1.0.2" + "string-width": "1.0.2" } }, "wrappy": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "yallist": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", + "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", "dev": true } } @@ -6084,8 +6234,8 @@ "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.6.3.tgz", "integrity": "sha512-MSmczZctbz91AxCvqp9GHBoZOSbJKAICV7Ow/AIWSJZRrRchUd5NL1b2P4OfP+4m490BEUPhhARfpHdqCxuCvg==", "requires": { - "axios": "^0.18.0", - "extend": "^3.0.1", + "axios": "0.18.0", + "extend": "3.0.1", "retry-axios": "0.3.2" } }, @@ -6124,7 +6274,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "glob": { @@ -6133,12 +6283,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "glob-base": { @@ -6147,8 +6297,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" + "glob-parent": "2.0.0", + "is-glob": "2.0.1" } }, "glob-parent": { @@ -6157,7 +6307,7 @@ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { - "is-glob": "^2.0.0" + "is-glob": "2.0.1" } }, "global-dirs": { @@ -6166,7 +6316,7 @@ "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "dev": true, "requires": { - "ini": "^1.3.4" + "ini": "1.3.5" } }, "globals": { @@ -6181,11 +6331,11 @@ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "dev": true, "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "array-union": "1.0.2", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" }, "dependencies": { "pify": { @@ -6206,7 +6356,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } } } @@ -6216,13 +6366,13 @@ "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-1.5.0.tgz", "integrity": "sha512-xpibA/hkq4waBcpIkSJg4GiDAqcBWjJee3c47zj7xP3RQ0A9mc8MP3Vc9sc8SGRoDYA0OszZxTjW7SbcC4pJIA==", "requires": { - "axios": "^0.18.0", - "gcp-metadata": "^0.6.3", - "gtoken": "^2.3.0", - "jws": "^3.1.4", - "lodash.isstring": "^4.0.1", - "lru-cache": "^4.1.2", - "retry-axios": "^0.3.2" + "axios": "0.18.0", + "gcp-metadata": "0.6.3", + "gtoken": "2.3.0", + "jws": "3.1.5", + "lodash.isstring": "4.0.1", + "lru-cache": "4.1.3", + "retry-axios": "0.3.2" } }, "google-auto-auth": { @@ -6230,10 +6380,10 @@ "resolved": "https://registry.npmjs.org/google-auto-auth/-/google-auto-auth-0.10.1.tgz", "integrity": "sha512-iIqSbY7Ypd32mnHGbYctp80vZzXoDlvI9gEfvtl3kmyy5HzOcrZCIGCBdSlIzRsg7nHpQiHE3Zl6Ycur6TSodQ==", "requires": { - "async": "^2.3.0", - "gcp-metadata": "^0.6.1", - "google-auth-library": "^1.3.1", - "request": "^2.79.0" + "async": "2.6.0", + "gcp-metadata": "0.6.3", + "google-auth-library": "1.5.0", + "request": "2.86.0" } }, "google-p12-pem": { @@ -6241,8 +6391,8 @@ "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-1.0.2.tgz", "integrity": "sha512-+EuKr4CLlGsnXx4XIJIVkcKYrsa2xkAmCvxRhX2HsazJzUBAJ35wARGeApHUn4nNfPD03Vl057FskNr20VaCyg==", "requires": { - "node-forge": "^0.7.4", - "pify": "^3.0.0" + "node-forge": "0.7.5", + "pify": "3.0.0" } }, "got": { @@ -6251,23 +6401,23 @@ "integrity": "sha512-giadqJpXIwjY+ZsuWys8p2yjZGhOHiU4hiJHjS/oeCxw1u8vANQz3zPlrxW2Zw/siCXsSMI3hvzWGcnFyujyAg==", "dev": true, "requires": { - "@sindresorhus/is": "^0.7.0", - "cacheable-request": "^2.1.1", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "into-stream": "^3.1.0", - "is-retry-allowed": "^1.1.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "mimic-response": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^2.0.1", - "pify": "^3.0.0", - "safe-buffer": "^5.1.1", - "timed-out": "^4.0.1", - "url-parse-lax": "^3.0.0", - "url-to-options": "^1.0.1" + "@sindresorhus/is": "0.7.0", + "cacheable-request": "2.1.4", + "decompress-response": "3.3.0", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "into-stream": "3.1.0", + "is-retry-allowed": "1.1.0", + "isurl": "1.0.0", + "lowercase-keys": "1.0.1", + "mimic-response": "1.0.0", + "p-cancelable": "0.3.0", + "p-timeout": "2.0.1", + "pify": "3.0.0", + "safe-buffer": "5.1.2", + "timed-out": "4.0.1", + "url-parse-lax": "3.0.0", + "url-to-options": "1.0.1" }, "dependencies": { "prepend-http": { @@ -6282,7 +6432,7 @@ "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "dev": true, "requires": { - "prepend-http": "^2.0.0" + "prepend-http": "2.0.0" } } } @@ -6293,12 +6443,6 @@ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", - "dev": true - }, "growl": { "version": "1.10.3", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", @@ -6310,11 +6454,11 @@ "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-2.3.0.tgz", "integrity": "sha512-Jc9/8mV630cZE9FC5tIlJCZNdUjwunvlwOtCz6IDlaiB4Sz68ki29a1+q97sWTnTYroiuF9B135rod9zrQdHLw==", "requires": { - "axios": "^0.18.0", - "google-p12-pem": "^1.0.0", - "jws": "^3.1.4", - "mime": "^2.2.0", - "pify": "^3.0.0" + "axios": "0.18.0", + "google-p12-pem": "1.0.2", + "jws": "3.1.5", + "mime": "2.3.1", + "pify": "3.0.0" } }, "gts": { @@ -6323,15 +6467,15 @@ "integrity": "sha512-MCh3HNzLA1zvnW8lStH58n6U7SaGCJwd0Y2fUWJklHdtpMB9zaGe8SR7l0DqqPf+t0hNoFu2KmRFxHBnkeeKrA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "chalk": "2.4.1", "clang-format": "1.2.3", - "inquirer": "^5.2.0", - "meow": "^5.0.0", - "pify": "^3.0.0", - "rimraf": "^2.6.2", - "tslint": "^5.9.1", - "update-notifier": "^2.5.0", - "write-file-atomic": "^2.3.0" + "inquirer": "5.2.0", + "meow": "5.0.0", + "pify": "3.0.0", + "rimraf": "2.6.2", + "tslint": "5.10.0", + "update-notifier": "2.5.0", + "write-file-atomic": "2.3.0" }, "dependencies": { "camelcase": { @@ -6346,9 +6490,9 @@ "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", "dev": true, "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" + "camelcase": "4.1.0", + "map-obj": "2.0.0", + "quick-lru": "1.1.0" } }, "inquirer": { @@ -6357,19 +6501,19 @@ "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==", "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.1.0", - "figures": "^2.0.0", - "lodash": "^4.3.0", + "ansi-escapes": "3.1.0", + "chalk": "2.4.1", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.2.0", + "figures": "2.0.0", + "lodash": "4.17.10", "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^5.5.2", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" + "run-async": "2.3.0", + "rxjs": "5.5.10", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" } }, "load-json-file": { @@ -6378,10 +6522,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.11", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" } }, "map-obj": { @@ -6396,15 +6540,15 @@ "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", "dev": true, "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0", - "yargs-parser": "^10.0.0" + "camelcase-keys": "4.2.0", + "decamelize-keys": "1.1.0", + "loud-rejection": "1.6.0", + "minimist-options": "3.0.2", + "normalize-package-data": "2.4.0", + "read-pkg-up": "3.0.0", + "redent": "2.0.0", + "trim-newlines": "2.0.0", + "yargs-parser": "10.0.0" } }, "parse-json": { @@ -6413,8 +6557,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "1.3.1", + "json-parse-better-errors": "1.0.2" } }, "path-type": { @@ -6423,7 +6567,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "read-pkg": { @@ -6432,9 +6576,9 @@ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" + "load-json-file": "4.0.0", + "normalize-package-data": "2.4.0", + "path-type": "3.0.0" } }, "read-pkg-up": { @@ -6443,8 +6587,8 @@ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" + "find-up": "2.1.0", + "read-pkg": "3.0.0" } }, "redent": { @@ -6453,8 +6597,8 @@ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", "dev": true, "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" + "indent-string": "3.2.0", + "strip-indent": "2.0.0" } }, "strip-indent": { @@ -6475,7 +6619,7 @@ "integrity": "sha512-+DHejWujTVYeMHLff8U96rLc4uE4Emncoftvn5AjhB1Jw1pWxLzgBUT/WYbPrHmy6YPEBTZQx5myHhVcuuu64g==", "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } } } @@ -6492,10 +6636,10 @@ "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" }, "dependencies": { "async": { @@ -6510,7 +6654,7 @@ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -6521,23 +6665,23 @@ "integrity": "sha512-ZxzvlGVs0lb7MW4AGxFQ/TM4rOvH6aeR4O0kj47eWy0VjGshlTZFPTighstJQPJy/bKTrlMaThn5ES87fwmGTA==", "dev": true, "requires": { - "accept": "3.x.x", - "ammo": "3.x.x", - "boom": "7.x.x", - "bounce": "1.x.x", - "call": "5.x.x", - "catbox": "10.x.x", - "catbox-memory": "3.x.x", - "heavy": "6.x.x", - "hoek": "5.x.x", - "joi": "13.x.x", - "mimos": "4.x.x", - "podium": "3.x.x", - "shot": "4.x.x", - "statehood": "6.x.x", - "subtext": "6.x.x", - "teamwork": "3.x.x", - "topo": "3.x.x" + "accept": "3.0.2", + "ammo": "3.0.1", + "boom": "7.2.0", + "bounce": "1.2.0", + "call": "5.0.1", + "catbox": "10.0.2", + "catbox-memory": "3.1.2", + "heavy": "6.1.0", + "hoek": "5.0.3", + "joi": "13.3.0", + "mimos": "4.0.0", + "podium": "3.1.2", + "shot": "4.0.5", + "statehood": "6.0.6", + "subtext": "6.0.7", + "teamwork": "3.0.1", + "topo": "3.0.0" }, "dependencies": { "boom": { @@ -6546,7 +6690,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.x.x" + "hoek": "5.0.3" } }, "hoek": { @@ -6567,8 +6711,8 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "requires": { - "ajv": "^5.1.0", - "har-schema": "^2.0.0" + "ajv": "5.5.2", + "har-schema": "2.0.0" } }, "has-ansi": { @@ -6577,7 +6721,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "has-color": { @@ -6604,7 +6748,7 @@ "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", "dev": true, "requires": { - "has-symbol-support-x": "^1.4.1" + "has-symbol-support-x": "1.4.2" } }, "has-yarn": { @@ -6618,10 +6762,10 @@ "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", "requires": { - "boom": "4.x.x", - "cryptiles": "3.x.x", - "hoek": "4.x.x", - "sntp": "2.x.x" + "boom": "4.3.1", + "cryptiles": "3.1.2", + "hoek": "4.2.1", + "sntp": "2.1.0" } }, "he": { @@ -6636,9 +6780,9 @@ "integrity": "sha512-TKS9DC9NOTGulHQI31Lx+bmeWmNOstbJbGMiN3pX6bF+Zc2GKSpbbym4oasNnB6yPGkqJ9TQXXYDGohqNSJRxA==", "dev": true, "requires": { - "boom": "7.x.x", - "hoek": "5.x.x", - "joi": "13.x.x" + "boom": "7.2.0", + "hoek": "5.0.3", + "joi": "13.3.0" }, "dependencies": { "boom": { @@ -6647,7 +6791,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.x.x" + "hoek": "5.0.3" } }, "hoek": { @@ -6669,8 +6813,8 @@ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "dev": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "hosted-git-info": { @@ -6685,10 +6829,10 @@ "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "dev": true, "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" + "inherits": "2.0.3", + "obuf": "1.1.2", + "readable-stream": "2.3.6", + "wbuf": "1.7.3" } }, "htmlparser2": { @@ -6697,12 +6841,12 @@ "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", "dev": true, "requires": { - "domelementtype": "^1.3.0", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^2.0.2" + "domelementtype": "1.3.0", + "domhandler": "2.4.2", + "domutils": "1.7.0", + "entities": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6" } }, "http-assert": { @@ -6711,8 +6855,8 @@ "integrity": "sha1-oxpc+IyHPsu1eWkH1NbxMujAHko=", "dev": true, "requires": { - "deep-equal": "~1.0.1", - "http-errors": "~1.6.1" + "deep-equal": "1.0.1", + "http-errors": "1.6.3" } }, "http-cache-semantics": { @@ -6733,10 +6877,10 @@ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, "requires": { - "depd": "~1.1.2", + "depd": "1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "statuses": "1.5.0" } }, "http-signature": { @@ -6744,9 +6888,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.14.1" } }, "hullabaloo-config-manager": { @@ -6755,35 +6899,29 @@ "integrity": "sha512-ztKnkZV0TmxnumCDHHgLGNiDnotu4EHCp9YMkznWuo4uTtCyJ+cu+RNcxUeXYKTllpvLFWnbfWry09yzszgg+A==", "dev": true, "requires": { - "dot-prop": "^4.1.0", - "es6-error": "^4.0.2", - "graceful-fs": "^4.1.11", - "indent-string": "^3.1.0", - "json5": "^0.5.1", - "lodash.clonedeep": "^4.5.0", - "lodash.clonedeepwith": "^4.5.0", - "lodash.isequal": "^4.5.0", - "lodash.merge": "^4.6.0", - "md5-hex": "^2.0.0", - "package-hash": "^2.0.0", - "pkg-dir": "^2.0.0", - "resolve-from": "^3.0.0", - "safe-buffer": "^5.0.1" + "dot-prop": "4.2.0", + "es6-error": "4.1.1", + "graceful-fs": "4.1.11", + "indent-string": "3.2.0", + "json5": "0.5.1", + "lodash.clonedeep": "4.5.0", + "lodash.clonedeepwith": "4.5.0", + "lodash.isequal": "4.5.0", + "lodash.merge": "4.6.1", + "md5-hex": "2.0.0", + "package-hash": "2.0.0", + "pkg-dir": "2.0.0", + "resolve-from": "3.0.0", + "safe-buffer": "5.1.2" } }, - "i": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/i/-/i-0.3.6.tgz", - "integrity": "sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0=", - "dev": true - }, "iconv-lite": { "version": "0.4.23", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "dev": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": "2.1.2" } }, "ignore": { @@ -6810,8 +6948,8 @@ "integrity": "sha1-sReVcqrNwRxqkQCftDDbyrX2aKg=", "dev": true, "requires": { - "pkg-dir": "^2.0.0", - "resolve-cwd": "^2.0.0" + "pkg-dir": "2.0.0", + "resolve-cwd": "2.0.0" } }, "imurmurhash": { @@ -6838,16 +6976,10 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, - "inherit": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/inherit/-/inherit-2.2.6.tgz", - "integrity": "sha1-8WFLBshUToEo5CKchjR9tzrZeI0=", - "dev": true - }, "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", @@ -6865,8 +6997,8 @@ "integrity": "sha512-STx5orGQU1gfrkoI/fMU7lX6CSP7LBGO10gXNgOZhwKhUqbtNjCkYSewJtNnLmWP1tAGN6oyEpG1HFPw5vpa5Q==", "dev": true, "requires": { - "moment": "^2.14.1", - "sanitize-html": "^1.13.0" + "moment": "2.22.1", + "sanitize-html": "1.18.2" } }, "inquirer": { @@ -6875,20 +7007,20 @@ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", + "ansi-escapes": "3.1.0", + "chalk": "2.4.1", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.2.0", + "figures": "2.0.0", + "lodash": "4.17.10", "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" + "run-async": "2.3.0", + "rx-lite": "4.0.8", + "rx-lite-aggregates": "4.0.8", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" } }, "intelli-espower-loader": { @@ -6897,7 +7029,7 @@ "integrity": "sha1-LHsDFGvB1GvyENCgOXxckatMorA=", "dev": true, "requires": { - "espower-loader": "^1.0.0" + "espower-loader": "1.2.2" } }, "into-stream": { @@ -6906,8 +7038,8 @@ "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", "dev": true, "requires": { - "from2": "^2.1.1", - "p-is-promise": "^1.1.0" + "from2": "2.3.0", + "p-is-promise": "1.1.0" } }, "invariant": { @@ -6916,7 +7048,7 @@ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "1.3.1" } }, "invert-kv": { @@ -6937,9 +7069,9 @@ "integrity": "sha512-7iQ5/xFMIYaNt9g2oiNiWdhrOTdRUMFaWENUd0KghxwPUhrIH8DUY8FEyLNTTzf75jaII+jMexLdY/2HfV61RQ==", "dev": true, "requires": { - "boom": "7.x.x", - "cryptiles": "4.x.x", - "hoek": "5.x.x" + "boom": "7.2.0", + "cryptiles": "4.1.1", + "hoek": "5.0.3" }, "dependencies": { "boom": { @@ -6948,7 +7080,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.x.x" + "hoek": "5.0.3" } }, "cryptiles": { @@ -6957,7 +7089,7 @@ "integrity": "sha512-YuQUPbcOmaZsdvxJZ25DCA1W+lLIRoPJKBDKin+St1RCYEERSfoe1d25B1MvWNHN3e8SpFSVsqYvEUjp8J9H2w==", "dev": true, "requires": { - "boom": "7.x.x" + "boom": "7.2.0" } }, "hoek": { @@ -6991,7 +7123,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "binary-extensions": "^1.0.0" + "binary-extensions": "1.11.0" } }, "is-buffer": { @@ -7005,7 +7137,7 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-ci": { @@ -7014,7 +7146,7 @@ "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", "dev": true, "requires": { - "ci-info": "^1.0.0" + "ci-info": "1.1.3" } }, "is-dotfile": { @@ -7029,7 +7161,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { - "is-primitive": "^2.0.0" + "is-primitive": "2.0.0" } }, "is-error": { @@ -7056,7 +7188,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { @@ -7083,7 +7215,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "is-installed-globally": { @@ -7092,8 +7224,8 @@ "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "dev": true, "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" + "global-dirs": "0.1.1", + "is-path-inside": "1.0.1" } }, "is-npm": { @@ -7108,7 +7240,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-obj": { @@ -7129,7 +7261,7 @@ "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", "dev": true, "requires": { - "symbol-observable": "^1.1.0" + "symbol-observable": "1.2.0" } }, "is-path-cwd": { @@ -7144,7 +7276,7 @@ "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, "requires": { - "is-path-inside": "^1.0.0" + "is-path-inside": "1.0.1" } }, "is-path-inside": { @@ -7153,7 +7285,7 @@ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { - "path-is-inside": "^1.0.1" + "path-is-inside": "1.0.2" } }, "is-plain-obj": { @@ -7237,7 +7369,7 @@ "integrity": "sha512-zfRhJn9rFSGhzU5tGZqepRSAj3+g6oTOHxMGGriWNJZzyLPUK8H7VHpqKntegnW8KLyGA9zwuNaCoopl40LTpg==", "dev": true, "requires": { - "punycode": "2.x.x" + "punycode": "2.1.0" }, "dependencies": { "punycode": { @@ -7274,8 +7406,8 @@ "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", "dev": true, "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" + "has-to-string-tag-x": "1.4.1", + "is-object": "1.0.1" } }, "jest-docblock": { @@ -7290,9 +7422,9 @@ "integrity": "sha512-iF6jEYVfBIoYXztYymia1JfuoVbxBNuOcwdbsdoGin9/jjhBLhonKmfTQOvePss8r8v4tU4JOcNmYPHZzKEFag==", "dev": true, "requires": { - "hoek": "5.x.x", - "isemail": "3.x.x", - "topo": "3.x.x" + "hoek": "5.0.3", + "isemail": "3.1.2", + "topo": "3.0.0" }, "dependencies": { "hoek": { @@ -7309,14 +7441,14 @@ "integrity": "sha512-HM/SKwAl1R0y9kkBili6GqKc31ZnjzY7JHC2uO9bAHJNRmY5c/s+2cETyaqX0kBD8gX8QVhS4dJjRtY1nAwb4w==", "dev": true, "requires": { - "argparse": "^1.0.9", - "axios": "^0.18.0", - "npm-package-arg": "^6.0.0", - "package-json": "^4.0.1", - "pify": "^3.0.0", - "spdx-correct": "^3.0.0", - "spdx-satisfies": "^4.0.0", - "strip-json-comments": "^2.0.1" + "argparse": "1.0.10", + "axios": "0.18.0", + "npm-package-arg": "6.1.0", + "package-json": "4.0.1", + "pify": "3.0.0", + "spdx-correct": "3.0.0", + "spdx-satisfies": "4.0.0", + "strip-json-comments": "2.0.1" } }, "js-string-escape": { @@ -7337,8 +7469,8 @@ "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "1.0.10", + "esprima": "4.0.0" } }, "js2xmlparser": { @@ -7347,7 +7479,7 @@ "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", "dev": true, "requires": { - "xmlcreate": "^1.0.1" + "xmlcreate": "1.0.2" } }, "jsbn": { @@ -7356,220 +7488,6 @@ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "optional": true }, - "jscs": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/jscs/-/jscs-3.0.7.tgz", - "integrity": "sha1-cUG03/W4bjLQ6Z12S4NnZ8MNIBo=", - "dev": true, - "requires": { - "chalk": "~1.1.0", - "cli-table": "~0.3.1", - "commander": "~2.9.0", - "cst": "^0.4.3", - "estraverse": "^4.1.0", - "exit": "~0.1.2", - "glob": "^5.0.1", - "htmlparser2": "3.8.3", - "js-yaml": "~3.4.0", - "jscs-jsdoc": "^2.0.0", - "jscs-preset-wikimedia": "~1.0.0", - "jsonlint": "~1.6.2", - "lodash": "~3.10.0", - "minimatch": "~3.0.0", - "natural-compare": "~1.2.2", - "pathval": "~0.1.1", - "prompt": "~0.2.14", - "reserved-words": "^0.1.1", - "resolve": "^1.1.6", - "strip-bom": "^2.0.0", - "strip-json-comments": "~1.0.2", - "to-double-quotes": "^2.0.0", - "to-single-quotes": "^2.0.0", - "vow": "~0.4.8", - "vow-fs": "~0.3.4", - "xmlbuilder": "^3.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "commander": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", - "dev": true, - "requires": { - "graceful-readlink": ">= 1.0.0" - } - }, - "domhandler": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", - "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", - "dev": true, - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "entities": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", - "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", - "dev": true - }, - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true - }, - "glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", - "dev": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "htmlparser2": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", - "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", - "dev": true, - "requires": { - "domelementtype": "1", - "domhandler": "2.3", - "domutils": "1.5", - "entities": "1.0", - "readable-stream": "1.1" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "js-yaml": { - "version": "3.4.6", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.4.6.tgz", - "integrity": "sha1-a+GyP2JJ9T0pM3D9TRqqY84bTrA=", - "dev": true, - "requires": { - "argparse": "^1.0.2", - "esprima": "^2.6.0", - "inherit": "^2.2.2" - } - }, - "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", - "dev": true - }, - "natural-compare": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.2.2.tgz", - "integrity": "sha1-H5bWDjFBysG20FZTzg2urHY69qo=", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-json-comments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", - "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "jscs-jsdoc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jscs-jsdoc/-/jscs-jsdoc-2.0.0.tgz", - "integrity": "sha1-9T684CmqMSW9iCkLpQ1k1FEKSHE=", - "dev": true, - "requires": { - "comment-parser": "^0.3.1", - "jsdoctypeparser": "~1.2.0" - } - }, - "jscs-preset-wikimedia": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/jscs-preset-wikimedia/-/jscs-preset-wikimedia-1.0.1.tgz", - "integrity": "sha512-RWqu6IYSUlnYuCRCF0obCOHjJV0vhpLcvKbauwxmLQoZ0PiXDTWBYlfpsEfdhg7pmREAEwrARfDRz5qWD6qknA==", - "dev": true - }, "jsdoc": { "version": "3.5.5", "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.5.5.tgz", @@ -7577,17 +7495,17 @@ "dev": true, "requires": { "babylon": "7.0.0-beta.19", - "bluebird": "~3.5.0", - "catharsis": "~0.8.9", - "escape-string-regexp": "~1.0.5", - "js2xmlparser": "~3.0.0", - "klaw": "~2.0.0", - "marked": "~0.3.6", - "mkdirp": "~0.5.1", - "requizzle": "~0.2.1", - "strip-json-comments": "~2.0.1", + "bluebird": "3.5.1", + "catharsis": "0.8.9", + "escape-string-regexp": "1.0.5", + "js2xmlparser": "3.0.0", + "klaw": "2.0.0", + "marked": "0.3.19", + "mkdirp": "0.5.1", + "requizzle": "0.2.1", + "strip-json-comments": "2.0.1", "taffydb": "2.6.2", - "underscore": "~1.8.3" + "underscore": "1.8.3" }, "dependencies": { "babylon": { @@ -7595,29 +7513,6 @@ "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.19.tgz", "integrity": "sha512-Vg0C9s/REX6/WIXN37UKpv5ZhRi6A4pjHlpkE34+8/a6c2W1Q692n3hmc+SZG5lKRnaExLUbxtJ1SVT+KaCQ/A==", "dev": true - }, - "underscore": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", - "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", - "dev": true - } - } - }, - "jsdoctypeparser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-1.2.0.tgz", - "integrity": "sha1-597cFToRhJ/8UUEUSuhqfvDCU5I=", - "dev": true, - "requires": { - "lodash": "^3.7.0" - }, - "dependencies": { - "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", - "dev": true } } }, @@ -7627,98 +7522,6 @@ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", "dev": true }, - "jshint": { - "version": "2.9.5", - "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.5.tgz", - "integrity": "sha1-HnJSkVzmgbQIJ+4UJIxG006apiw=", - "dev": true, - "requires": { - "cli": "~1.0.0", - "console-browserify": "1.1.x", - "exit": "0.1.x", - "htmlparser2": "3.8.x", - "lodash": "3.7.x", - "minimatch": "~3.0.2", - "shelljs": "0.3.x", - "strip-json-comments": "1.0.x" - }, - "dependencies": { - "domhandler": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", - "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", - "dev": true, - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "entities": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", - "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", - "dev": true - }, - "htmlparser2": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", - "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", - "dev": true, - "requires": { - "domelementtype": "1", - "domhandler": "2.3", - "domutils": "1.5", - "entities": "1.0", - "readable-stream": "1.1" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "lodash": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz", - "integrity": "sha1-Nni9irmVBXwHreg27S7wh9qBHUU=", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "strip-json-comments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", - "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", - "dev": true - } - } - }, "json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", @@ -7764,17 +7567,7 @@ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonlint": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/jsonlint/-/jsonlint-1.6.3.tgz", - "integrity": "sha512-jMVTMzP+7gU/IyC6hvKyWpUU8tmTkK5b3BPNuMI9U8Sit+YAWLlZwB6Y6YrdCxfg2kNz05p3XY3Bmm4m26Nv3A==", - "dev": true, - "requires": { - "JSV": "^4.0.x", - "nomnom": "^1.5.x" + "graceful-fs": "4.1.11" } }, "jsprim": { @@ -7801,7 +7594,7 @@ "requires": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.10", - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "jws": { @@ -7809,8 +7602,8 @@ "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz", "integrity": "sha512-GsCSexFADNQUr8T5HPJvayTjvPIfoyJPtLQBwn5a4WZQchcrPMPMAWcC1AzJVRDKyD6ZPROPAxgv6rfHViO4uQ==", "requires": { - "jwa": "^1.1.5", - "safe-buffer": "^5.0.1" + "jwa": "1.1.6", + "safe-buffer": "5.1.2" } }, "keygrip": { @@ -7834,7 +7627,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "klaw": { @@ -7843,7 +7636,7 @@ "integrity": "sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=", "dev": true, "requires": { - "graceful-fs": "^4.1.9" + "graceful-fs": "4.1.11" } }, "koa": { @@ -7852,30 +7645,30 @@ "integrity": "sha512-cchwbMeG2dv3E2xTAmheDAuvR53tPgJZN/Hf1h7bTzJLSPcFZp8/t5+bNKJ6GaQZoydhZQ+1GNruhKdj3lIrug==", "dev": true, "requires": { - "accepts": "^1.2.2", - "content-disposition": "~0.5.0", - "content-type": "^1.0.0", - "cookies": "~0.7.0", - "debug": "*", - "delegates": "^1.0.0", - "depd": "^1.1.0", - "destroy": "^1.0.3", - "error-inject": "~1.0.0", - "escape-html": "~1.0.1", - "fresh": "^0.5.2", - "http-assert": "^1.1.0", - "http-errors": "^1.2.8", - "is-generator-function": "^1.0.3", - "koa-compose": "^4.0.0", - "koa-convert": "^1.2.0", - "koa-is-json": "^1.0.0", - "mime-types": "^2.0.7", - "on-finished": "^2.1.0", + "accepts": "1.3.5", + "content-disposition": "0.5.2", + "content-type": "1.0.4", + "cookies": "0.7.1", + "debug": "3.1.0", + "delegates": "1.0.0", + "depd": "1.1.2", + "destroy": "1.0.4", + "error-inject": "1.0.0", + "escape-html": "1.0.3", + "fresh": "0.5.2", + "http-assert": "1.3.0", + "http-errors": "1.6.3", + "is-generator-function": "1.0.7", + "koa-compose": "4.0.0", + "koa-convert": "1.2.0", + "koa-is-json": "1.0.0", + "mime-types": "2.1.18", + "on-finished": "2.3.0", "only": "0.0.2", - "parseurl": "^1.3.0", - "statuses": "^1.2.0", - "type-is": "^1.5.5", - "vary": "^1.0.0" + "parseurl": "1.3.2", + "statuses": "1.5.0", + "type-is": "1.6.16", + "vary": "1.1.2" } }, "koa-compose": { @@ -7890,8 +7683,8 @@ "integrity": "sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA=", "dev": true, "requires": { - "co": "^4.6.0", - "koa-compose": "^3.0.0" + "co": "4.6.0", + "koa-compose": "3.2.1" }, "dependencies": { "koa-compose": { @@ -7900,7 +7693,7 @@ "integrity": "sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec=", "dev": true, "requires": { - "any-promise": "^1.1.0" + "any-promise": "1.3.0" } } } @@ -7917,7 +7710,7 @@ "integrity": "sha1-0bZNafhv8kry0EiDos7uFFIKVgA=", "dev": true, "requires": { - "through2": "^2.0.0" + "through2": "2.0.3" } }, "latest-version": { @@ -7926,7 +7719,7 @@ "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", "dev": true, "requires": { - "package-json": "^4.0.0" + "package-json": "4.0.1" } }, "lazy-cache": { @@ -7942,7 +7735,7 @@ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "levn": { @@ -7951,8 +7744,8 @@ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "1.1.2", + "type-check": "0.3.2" } }, "load-json-file": { @@ -7961,10 +7754,10 @@ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" }, "dependencies": { "pify": { @@ -7981,8 +7774,8 @@ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "2.0.0", + "path-exists": "3.0.0" } }, "lodash": { @@ -8038,12 +7831,6 @@ "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", "dev": true }, - "lodash.foreach": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", - "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=", - "dev": true - }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", @@ -8055,12 +7842,6 @@ "resolved": "https://registry.npmjs.org/lodash.has/-/lodash.has-4.5.2.tgz", "integrity": "sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI=" }, - "lodash.indexof": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/lodash.indexof/-/lodash.indexof-4.0.5.tgz", - "integrity": "sha1-U3FK3Czd1u2HY4+JOqm2wk4x7zw=", - "dev": true - }, "lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", @@ -8149,7 +7930,7 @@ "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "dev": true, "requires": { - "js-tokens": "^3.0.0" + "js-tokens": "3.0.2" } }, "loud-rejection": { @@ -8158,8 +7939,8 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" } }, "lowercase-keys": { @@ -8173,8 +7954,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "make-dir": { @@ -8183,7 +7964,7 @@ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dev": true, "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "map-obj": { @@ -8204,7 +7985,7 @@ "integrity": "sha512-aZGv6JBTHqfqAd09jmAlbKnAICTfIvb5Z8gXVxPB5WZtFfHMaAMdACL7tQflD2V+6/8KNcY8s6DYtWLgpJP5lA==", "dev": true, "requires": { - "escape-string-regexp": "^1.0.4" + "escape-string-regexp": "1.0.5" } }, "math-random": { @@ -8219,7 +8000,7 @@ "integrity": "sha1-0FiOnxx0lUSS7NJKwKxs6ZfZLjM=", "dev": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "md5-o-matic": { @@ -8240,7 +8021,7 @@ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "meow": { @@ -8249,16 +8030,16 @@ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" }, "dependencies": { "find-up": { @@ -8267,8 +8048,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } }, "load-json-file": { @@ -8277,11 +8058,11 @@ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" } }, "minimist": { @@ -8296,7 +8077,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } }, "path-type": { @@ -8305,9 +8086,9 @@ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pify": { @@ -8328,7 +8109,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "read-pkg": { @@ -8337,9 +8118,9 @@ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" } }, "read-pkg-up": { @@ -8348,8 +8129,8 @@ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "find-up": "1.1.2", + "read-pkg": "1.1.0" } }, "strip-bom": { @@ -8358,7 +8139,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "^0.2.0" + "is-utf8": "0.2.1" } } } @@ -8375,7 +8156,7 @@ "integrity": "sha1-65aDOLXe1c7tgs7AMH3sui2OqZQ=", "dev": true, "requires": { - "estraverse": "^4.0.0" + "estraverse": "4.2.0" } }, "methmeth": { @@ -8395,19 +8176,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" } }, "mime": { @@ -8425,7 +8206,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", "requires": { - "mime-db": "~1.33.0" + "mime-db": "1.33.0" } }, "mimic-fn": { @@ -8446,8 +8227,8 @@ "integrity": "sha512-JvlvRLqGIlk+AYypWrbrDmhsM+6JVx/xBM5S3AMwTBz1trPCEoPN/swO2L4Wu653fL7oJdgk8DMQyG/Gq3JkZg==", "dev": true, "requires": { - "hoek": "5.x.x", - "mime-db": "1.x.x" + "hoek": "5.0.3", + "mime-db": "1.33.0" }, "dependencies": { "hoek": { @@ -8470,7 +8251,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -8485,8 +8266,8 @@ "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", "dev": true, "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0" + "arrify": "1.0.1", + "is-plain-obj": "1.1.0" } }, "mkdirp": { @@ -8529,7 +8310,7 @@ "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", "dev": true, "requires": { - "has-flag": "^2.0.0" + "has-flag": "2.0.0" } } } @@ -8562,7 +8343,7 @@ "integrity": "sha1-sJ/IWG6qF/gdV1xK0C4Pej9rEQU=", "dev": true, "requires": { - "source-map": "^0.1.34" + "source-map": "0.1.43" }, "dependencies": { "source-map": { @@ -8571,7 +8352,7 @@ "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", "dev": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -8582,10 +8363,10 @@ "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", "dev": true, "requires": { - "array-differ": "^1.0.0", - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "minimatch": "^3.0.0" + "array-differ": "1.0.0", + "array-union": "1.0.2", + "arrify": "1.0.1", + "minimatch": "3.0.4" } }, "mute-stream": { @@ -8601,9 +8382,9 @@ "dev": true, "optional": true, "requires": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" + "mkdirp": "0.5.1", + "ncp": "2.0.0", + "rimraf": "2.4.5" }, "dependencies": { "glob": { @@ -8613,11 +8394,11 @@ "dev": true, "optional": true, "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "rimraf": { @@ -8627,7 +8408,7 @@ "dev": true, "optional": true, "requires": { - "glob": "^6.0.1" + "glob": "6.0.4" } } } @@ -8663,7 +8444,7 @@ "integrity": "sha1-GfYZWRUZ8JZ2mlupqG5u7sgjw88=", "dev": true, "requires": { - "inherits": "~2.0.1" + "inherits": "2.0.3" } }, "next-tick": { @@ -8678,8 +8459,8 @@ "integrity": "sha512-kCVtUG9JyD//tsYrZY+/Y+2gUrANVSba8y23QkM5Znx0FOxlnl9Z4OVPBODmstKWTOvigfTO+Va1VPOu3eWSOQ==", "dev": true, "requires": { - "hoek": "5.x.x", - "vise": "3.x.x" + "hoek": "5.0.3", + "vise": "3.0.0" }, "dependencies": { "hoek": { @@ -8696,11 +8477,11 @@ "integrity": "sha512-v1J/FLUB9PfGqZLGDBhQqODkbLotP0WtLo9R4EJY2PPu5f5Xg4o0rA8FDlmrjFSv9vBBKcfnOSpfYYuu5RTHqg==", "dev": true, "requires": { - "@sinonjs/formatio": "^2.0.0", - "just-extend": "^1.1.27", - "lolex": "^2.3.2", - "path-to-regexp": "^1.7.0", - "text-encoding": "^0.6.4" + "@sinonjs/formatio": "2.0.0", + "just-extend": "1.1.27", + "lolex": "2.6.0", + "path-to-regexp": "1.7.0", + "text-encoding": "0.6.4" } }, "nock": { @@ -8709,15 +8490,15 @@ "integrity": "sha512-loyWSNToPH416mENYcqN/ORNwJvfMs+n1+kk9HS3zO/Eb/ci3TZqoNIWp5oYW9VIFh18jXHxnzYSsrXvA63RYA==", "dev": true, "requires": { - "chai": "^4.1.2", - "debug": "^3.1.0", - "deep-equal": "^1.0.0", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.5", - "mkdirp": "^0.5.0", - "propagate": "^1.0.0", - "qs": "^6.5.1", - "semver": "^5.5.0" + "chai": "4.1.2", + "debug": "3.1.0", + "deep-equal": "1.0.1", + "json-stringify-safe": "5.0.1", + "lodash": "4.17.10", + "mkdirp": "0.5.1", + "propagate": "1.0.0", + "qs": "6.5.2", + "semver": "5.5.0" } }, "node-forge": { @@ -8725,51 +8506,16 @@ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz", "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==" }, - "nomnom": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz", - "integrity": "sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=", - "dev": true, - "requires": { - "chalk": "~0.4.0", - "underscore": "~1.6.0" - }, - "dependencies": { - "ansi-styles": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", - "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=", - "dev": true - }, - "chalk": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", - "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", - "dev": true, - "requires": { - "ansi-styles": "~1.0.0", - "has-color": "~0.1.0", - "strip-ansi": "~0.1.0" - } - }, - "strip-ansi": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", - "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=", - "dev": true - } - } - }, "normalize-package-data": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.6.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" } }, "normalize-path": { @@ -8778,7 +8524,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "^1.0.1" + "remove-trailing-separator": "1.1.0" } }, "normalize-url": { @@ -8787,9 +8533,9 @@ "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", "dev": true, "requires": { - "prepend-http": "^2.0.0", - "query-string": "^5.0.1", - "sort-keys": "^2.0.0" + "prepend-http": "2.0.0", + "query-string": "5.1.1", + "sort-keys": "2.0.0" }, "dependencies": { "prepend-http": { @@ -8806,10 +8552,10 @@ "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", "dev": true, "requires": { - "hosted-git-info": "^2.6.0", - "osenv": "^0.1.5", - "semver": "^5.5.0", - "validate-npm-package-name": "^3.0.0" + "hosted-git-info": "2.6.0", + "osenv": "0.1.5", + "semver": "5.5.0", + "validate-npm-package-name": "3.0.0" } }, "npm-run-path": { @@ -8818,7 +8564,7 @@ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -8833,406 +8579,451 @@ "integrity": "sha512-PUFq1PSsx5OinSk5g5aaZygcDdI3QQT5XUlbR9QRMihtMS6w0Gm8xj4BxmKeeAlpQXC5M2DIhH16Y+KejceivQ==", "dev": true, "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^1.0.0", - "convert-source-map": "^1.5.1", - "debug-log": "^1.0.1", - "default-require-extensions": "^1.0.0", - "find-cache-dir": "^0.1.1", - "find-up": "^2.1.0", - "foreground-child": "^1.5.3", - "glob": "^7.0.6", - "istanbul-lib-coverage": "^1.1.2", - "istanbul-lib-hook": "^1.1.0", - "istanbul-lib-instrument": "^1.10.0", - "istanbul-lib-report": "^1.1.3", - "istanbul-lib-source-maps": "^1.2.3", - "istanbul-reports": "^1.4.0", - "md5-hex": "^1.2.0", - "merge-source-map": "^1.1.0", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.0", - "resolve-from": "^2.0.0", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.1", - "spawn-wrap": "^1.4.2", - "test-exclude": "^4.2.0", + "archy": "1.0.0", + "arrify": "1.0.1", + "caching-transform": "1.0.1", + "convert-source-map": "1.5.1", + "debug-log": "1.0.1", + "default-require-extensions": "1.0.0", + "find-cache-dir": "0.1.1", + "find-up": "2.1.0", + "foreground-child": "1.5.6", + "glob": "7.1.2", + "istanbul-lib-coverage": "1.2.0", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "1.10.1", + "istanbul-lib-report": "1.1.3", + "istanbul-lib-source-maps": "1.2.3", + "istanbul-reports": "1.4.0", + "md5-hex": "1.3.0", + "merge-source-map": "1.1.0", + "micromatch": "3.1.10", + "mkdirp": "0.5.1", + "resolve-from": "2.0.0", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "spawn-wrap": "1.4.2", + "test-exclude": "4.2.1", "yargs": "11.1.0", - "yargs-parser": "^8.0.0" + "yargs-parser": "8.1.0" }, "dependencies": { "align-text": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" } }, "amdefine": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", "dev": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "ansi-styles": { "version": "2.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, "append-transform": { "version": "0.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", "dev": true, "requires": { - "default-require-extensions": "^1.0.0" + "default-require-extensions": "1.0.0" } }, "archy": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", "dev": true }, "arr-diff": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, "arr-flatten": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, "arr-union": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, "array-unique": { "version": "0.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, "arrify": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, "assign-symbols": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true }, "async": { "version": "1.5.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", "dev": true }, "atob": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", + "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", "dev": true }, "babel-code-frame": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" } }, "babel-generator": { "version": "6.26.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "dev": true, "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.10", + "source-map": "0.5.7", + "trim-right": "1.0.1" } }, "babel-messages": { "version": "6.23.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-runtime": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "core-js": "2.5.6", + "regenerator-runtime": "0.11.1" } }, "babel-template": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.10" } }, "babel-traverse": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.4", + "lodash": "4.17.10" } }, "babel-types": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.10", + "to-fast-properties": "1.0.3" } }, "babylon": { "version": "6.18.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", "dev": true }, "balanced-match": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "base": { "version": "0.11.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" }, "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } }, "brace-expansion": { "version": "1.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, "braces": { "version": "2.3.2", - "bundled": true, - "dev": true, - "requires": { - "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "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.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } }, "builtin-modules": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, "cache-base": { "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "1.0.0", + "component-emitter": "1.2.1", + "get-value": "2.0.6", + "has-value": "1.0.0", + "isobject": "3.0.1", + "set-value": "2.0.0", + "to-object-path": "0.3.0", + "union-value": "1.0.0", + "unset-value": "1.0.0" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "caching-transform": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", + "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", "dev": true, "requires": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" } }, "camelcase": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", "dev": true, "optional": true }, "center-align": { "version": "0.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "dev": true, "optional": true, "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "align-text": "0.1.4", + "lazy-cache": "1.0.4" } }, "chalk": { "version": "1.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "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" } }, "class-utils": { "version": "0.3.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" }, "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "cliui": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "dev": true, "optional": true, "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", + "center-align": "0.1.3", + "right-align": "0.1.3", "wordwrap": "0.0.2" }, "dependencies": { "wordwrap": { "version": "0.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", "dev": true, "optional": true } @@ -9240,60 +9031,70 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, "collection-visit": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "map-visit": "1.0.0", + "object-visit": "1.0.1" } }, "commondir": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, "component-emitter": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", "dev": true }, "concat-map": { "version": "0.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "convert-source-map": { "version": "1.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", "dev": true }, "copy-descriptor": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true }, "core-js": { "version": "2.5.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.6.tgz", + "integrity": "sha512-lQUVfQi0aLix2xpyjrrJEvfuYCqPc/HwmTKsC/VNf8q0zsjX7SQZtp4+oRONN5Tsur9GDETPjj+Ub2iDiGZfSQ==", "dev": true }, "cross-spawn": { "version": "4.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", "dev": true, "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "which": "1.3.0" } }, "debug": { "version": "2.6.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" @@ -9301,670 +9102,756 @@ }, "debug-log": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", + "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", "dev": true }, "decamelize": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "decode-uri-component": { "version": "0.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, "default-require-extensions": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", "dev": true, "requires": { - "strip-bom": "^2.0.0" + "strip-bom": "2.0.0" } }, "define-property": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "is-descriptor": "1.0.2", + "isobject": "3.0.1" }, "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } }, "detect-indent": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "error-ex": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "escape-string-regexp": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "esutils": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, "execa": { "version": "0.7.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" }, "dependencies": { "cross-spawn": { "version": "5.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.0" } } } }, "expand-brackets": { "version": "2.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "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" }, "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } }, "extend-shallow": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } }, "extglob": { "version": "2.0.4", - "bundled": true, - "dev": true, - "requires": { - "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.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "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" }, "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } }, "fill-range": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } }, "find-cache-dir": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", "dev": true, "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" + "commondir": "1.0.1", + "mkdirp": "0.5.1", + "pkg-dir": "1.0.0" } }, "find-up": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "for-in": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true }, "foreground-child": { "version": "1.5.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", "dev": true, "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" + "cross-spawn": "4.0.2", + "signal-exit": "3.0.2" } }, "fragment-cache": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { - "map-cache": "^0.2.2" + "map-cache": "0.2.2" } }, "fs.realpath": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "get-caller-file": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", "dev": true }, "get-stream": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true }, "get-value": { "version": "2.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true }, "glob": { "version": "7.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "globals": { "version": "9.18.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", "dev": true }, "graceful-fs": { "version": "4.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, "handlebars": { "version": "4.0.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" }, "dependencies": { "source-map": { "version": "0.4.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } }, "has-ansi": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "has-flag": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", "dev": true }, "has-value": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "has-values": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "is-number": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } }, "kind-of": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } }, "hosted-git-info": { "version": "2.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", + "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", "dev": true }, "imurmurhash": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { "version": "2.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "invariant": { "version": "2.2.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "1.3.1" } }, "invert-kv": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", "dev": true }, "is-accessor-descriptor": { "version": "0.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-arrayish": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, "is-buffer": { "version": "1.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, "is-builtin-module": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-data-descriptor": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-descriptor": { "version": "0.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" }, "dependencies": { "kind-of": { "version": "5.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true } } }, "is-extendable": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true }, "is-finite": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "is-number": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-odd": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", "dev": true, "requires": { - "is-number": "^4.0.0" + "is-number": "4.0.0" }, "dependencies": { "is-number": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", "dev": true } } }, "is-plain-object": { "version": "2.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "is-stream": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "is-utf8": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, "is-windows": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true }, "isarray": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, "istanbul-lib-coverage": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", + "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==", "dev": true }, "istanbul-lib-hook": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", + "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", "dev": true, "requires": { - "append-transform": "^0.4.0" + "append-transform": "0.4.0" } }, "istanbul-lib-instrument": { "version": "1.10.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", + "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", "dev": true, "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.2.0", - "semver": "^5.3.0" + "babel-generator": "6.26.1", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "istanbul-lib-coverage": "1.2.0", + "semver": "5.5.0" } }, "istanbul-lib-report": { "version": "1.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz", + "integrity": "sha512-D4jVbMDtT2dPmloPJS/rmeP626N5Pr3Rp+SovrPn1+zPChGHcggd/0sL29jnbm4oK9W0wHjCRsdch9oLd7cm6g==", "dev": true, "requires": { - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" }, "dependencies": { "supports-color": { "version": "3.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "^1.0.0" + "has-flag": "1.0.0" } } } }, "istanbul-lib-source-maps": { "version": "1.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz", + "integrity": "sha512-fDa0hwU/5sDXwAklXgAoCJCOsFsBplVQ6WBldz5UwaqOzmDhUK4nfuR7/G//G2lERlblUNJB8P6e8cXq3a7MlA==", "dev": true, "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" + "debug": "3.1.0", + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" }, "dependencies": { "debug": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { "ms": "2.0.0" @@ -9974,215 +9861,243 @@ }, "istanbul-reports": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.4.0.tgz", + "integrity": "sha512-OPzVo1fPZ2H+owr8q/LYKLD+vquv9Pj4F+dj808MdHbuQLD7S4ACRjcX+0Tne5Vxt2lxXvdZaL7v+FOOAV281w==", "dev": true, "requires": { - "handlebars": "^4.0.3" + "handlebars": "4.0.11" } }, "js-tokens": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", "dev": true }, "jsesc": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", "dev": true }, "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "lazy-cache": { "version": "1.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", "dev": true, "optional": true }, "lcid": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "load-json-file": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" } }, "locate-path": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "2.0.0", + "path-exists": "3.0.0" }, "dependencies": { "path-exists": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true } } }, "lodash": { "version": "4.17.10", - "bundled": true, + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", "dev": true }, "longest": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", "dev": true }, "loose-envify": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "dev": true, "requires": { - "js-tokens": "^3.0.0" + "js-tokens": "3.0.2" } }, "lru-cache": { "version": "4.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "dev": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "map-cache": { "version": "0.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, "map-visit": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { - "object-visit": "^1.0.0" + "object-visit": "1.0.1" } }, "md5-hex": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", + "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "dev": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "md5-o-matic": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", + "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=", "dev": true }, "mem": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "merge-source-map": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", "dev": true, "requires": { - "source-map": "^0.6.1" + "source-map": "0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "micromatch": { "version": "3.1.10", - "bundled": true, - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "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.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } }, "mimic-fn": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { "version": "0.0.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, "mixin-deep": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "dev": true, "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" + "for-in": "1.0.2", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { "minimist": "0.0.8" @@ -10190,1008 +10105,1133 @@ }, "ms": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "nanomatch": { "version": "1.2.9", - "bundled": true, - "dev": true, - "requires": { - "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-odd": "^2.0.0", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", + "dev": true, + "requires": { + "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-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, "array-unique": { "version": "0.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } }, "normalize-package-data": { "version": "2.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.6.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" } }, "npm-run-path": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, "object-copy": { "version": "0.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" }, "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } }, "object-visit": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { - "isobject": "^3.0.0" + "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "object.pick": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "optimist": { "version": "0.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "minimist": "0.0.8", + "wordwrap": "0.0.3" } }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, "os-locale": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" } }, "p-finally": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, "p-limit": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", + "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", "dev": true, "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.2.0" } }, "p-try": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, "parse-json": { "version": "2.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.1" } }, "pascalcase": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true }, "path-exists": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "path-key": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, "path-parse": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", "dev": true }, "path-type": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pify": { "version": "2.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, "pinkie": { "version": "2.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", "dev": true }, "pinkie-promise": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "pkg-dir": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "dev": true, "requires": { - "find-up": "^1.0.0" + "find-up": "1.1.2" }, "dependencies": { "find-up": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } }, "posix-character-classes": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, "pseudomap": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, "read-pkg": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" } }, "read-pkg-up": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "find-up": "1.1.2", + "read-pkg": "1.1.0" }, "dependencies": { "find-up": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } }, "regenerator-runtime": { "version": "0.11.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true }, "regex-not": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, "repeat-element": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", "dev": true }, "repeat-string": { "version": "1.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, "repeating": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "require-directory": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, "require-main-filename": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", "dev": true }, "resolve-from": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", "dev": true }, "resolve-url": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, "ret": { "version": "0.1.15", - "bundled": true, + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, "right-align": { "version": "0.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "dev": true, "optional": true, "requires": { - "align-text": "^0.1.1" + "align-text": "0.1.4" } }, "rimraf": { "version": "2.6.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "safe-regex": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "ret": "~0.1.10" + "ret": "0.1.15" } }, "semver": { "version": "5.5.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", "dev": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, "set-value": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } }, "shebang-command": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, "slide": { "version": "1.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", "dev": true }, "snapdragon": { "version": "0.8.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "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.1", + "use": "3.1.0" }, "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } }, "snapdragon-node": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } }, "snapdragon-util": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { - "kind-of": "^3.2.0" + "kind-of": "3.2.2" } }, "source-map": { "version": "0.5.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, "source-map-resolve": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", "dev": true, "requires": { - "atob": "^2.0.0", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "atob": "2.1.1", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" } }, "source-map-url": { "version": "0.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, "spawn-wrap": { "version": "1.4.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", + "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", "dev": true, "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.0" } }, "spdx-correct": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "dev": true, "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, "spdx-exceptions": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", "dev": true }, "spdx-expression-parse": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" } }, "spdx-license-ids": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", "dev": true }, "split-string": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { - "extend-shallow": "^3.0.0" + "extend-shallow": "3.0.2" } }, "static-extend": { "version": "0.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" + "define-property": "0.2.5", + "object-copy": "0.1.0" }, "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } }, "string-width": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" }, "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "strip-ansi": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-bom": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "^0.2.0" + "is-utf8": "0.2.1" } }, "strip-eof": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, "supports-color": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, "test-exclude": { "version": "4.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", + "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", "dev": true, "requires": { - "arrify": "^1.0.1", - "micromatch": "^3.1.8", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" + "arrify": "1.0.1", + "micromatch": "3.1.10", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" }, "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, "array-unique": { "version": "0.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, "braces": { "version": "2.3.2", - "bundled": true, - "dev": true, - "requires": { - "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "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.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } }, "expand-brackets": { "version": "2.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "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" }, "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { "version": "0.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } }, "is-data-descriptor": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } }, "is-descriptor": { "version": "0.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { "version": "5.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true } } }, "extglob": { "version": "2.0.4", - "bundled": true, - "dev": true, - "requires": { - "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.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "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" }, "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } }, "fill-range": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } }, "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-number": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } }, "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true }, "micromatch": { "version": "3.1.10", - "bundled": true, - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "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.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } } } }, "to-fast-properties": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", "dev": true }, "to-object-path": { "version": "0.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "to-regex": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" } }, "to-regex-range": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "3.0.0", + "repeat-string": "1.6.1" }, "dependencies": { "is-number": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } } } }, "trim-right": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "dev": true }, "uglify-js": { "version": "2.8.29", - "bundled": true, + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "dev": true, "optional": true, "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" }, "dependencies": { "yargs": { "version": "3.10.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "dev": true, "optional": true, "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", "window-size": "0.1.0" } } @@ -11199,64 +11239,71 @@ }, "uglify-to-browserify": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", "dev": true, "optional": true }, "union-value": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "dev": true, "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "set-value": { "version": "0.4.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" } } } }, "unset-value": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "has-value": "0.3.1", + "isobject": "3.0.1" }, "dependencies": { "has-value": { "version": "0.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" }, "dependencies": { "isobject": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "requires": { "isarray": "1.0.0" @@ -11266,191 +11313,216 @@ }, "has-values": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true }, "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "urix": { "version": "0.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, "use": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", "dev": true, "requires": { - "kind-of": "^6.0.2" + "kind-of": "6.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } }, "validate-npm-package-license": { "version": "3.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", + "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "dev": true, "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "which": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, "window-size": { "version": "0.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", "dev": true }, "wrap-ansi": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } }, "wrappy": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "write-file-atomic": { "version": "1.3.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", + "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" } }, "y18n": { "version": "3.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", "dev": true }, "yallist": { "version": "2.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, "yargs": { "version": "11.1.0", - "bundled": true, - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^9.0.2" + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", + "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", + "dev": true, + "requires": { + "cliui": "4.1.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "9.0.2" }, "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "camelcase": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true }, "cliui": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" } }, "strip-ansi": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } }, "yargs-parser": { "version": "9.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", + "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } } } }, "yargs-parser": { "version": "8.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", + "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" }, "dependencies": { "camelcase": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true } } @@ -11480,8 +11552,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" + "for-own": "0.1.5", + "is-extendable": "0.1.1" } }, "observable-to-promise": { @@ -11490,8 +11562,8 @@ "integrity": "sha1-yCjw8NxH6fhq+KSXfF1VB2znqR8=", "dev": true, "requires": { - "is-observable": "^0.2.0", - "symbol-observable": "^1.0.4" + "is-observable": "0.2.0", + "symbol-observable": "1.2.0" }, "dependencies": { "is-observable": { @@ -11500,7 +11572,7 @@ "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=", "dev": true, "requires": { - "symbol-observable": "^0.2.2" + "symbol-observable": "0.2.4" }, "dependencies": { "symbol-observable": { @@ -11533,7 +11605,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "onetime": { @@ -11542,7 +11614,7 @@ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "only": { @@ -11557,8 +11629,8 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "minimist": "0.0.8", + "wordwrap": "0.0.3" } }, "option-chain": { @@ -11573,12 +11645,12 @@ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" }, "dependencies": { "wordwrap": { @@ -11601,9 +11673,9 @@ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" } }, "os-tmpdir": { @@ -11618,8 +11690,8 @@ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "p-cancelable": { @@ -11646,7 +11718,7 @@ "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", "dev": true, "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { @@ -11655,7 +11727,7 @@ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.2.0" } }, "p-timeout": { @@ -11664,7 +11736,7 @@ "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", "dev": true, "requires": { - "p-finally": "^1.0.0" + "p-finally": "1.0.0" } }, "p-try": { @@ -11679,10 +11751,10 @@ "integrity": "sha1-eK4ybIngWk2BO2hgGXevBcANKg0=", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "lodash.flattendeep": "^4.4.0", - "md5-hex": "^2.0.0", - "release-zalgo": "^1.0.0" + "graceful-fs": "4.1.11", + "lodash.flattendeep": "4.4.0", + "md5-hex": "2.0.0", + "release-zalgo": "1.0.0" } }, "package-json": { @@ -11691,10 +11763,10 @@ "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "dev": true, "requires": { - "got": "^6.7.1", - "registry-auth-token": "^3.0.1", - "registry-url": "^3.0.3", - "semver": "^5.1.0" + "got": "6.7.1", + "registry-auth-token": "3.3.2", + "registry-url": "3.1.0", + "semver": "5.5.0" }, "dependencies": { "got": { @@ -11703,17 +11775,17 @@ "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "requires": { - "create-error-class": "^3.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" + "create-error-class": "3.0.2", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "is-redirect": "1.0.0", + "is-retry-allowed": "1.1.0", + "is-stream": "1.1.0", + "lowercase-keys": "1.0.1", + "safe-buffer": "5.1.2", + "timed-out": "4.0.1", + "unzip-response": "2.0.1", + "url-parse-lax": "1.0.0" } } } @@ -11724,10 +11796,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" } }, "parse-json": { @@ -11736,7 +11808,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.1" } }, "parse-ms": { @@ -11804,7 +11876,7 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { - "pify": "^2.0.0" + "pify": "2.3.0" }, "dependencies": { "pify": { @@ -11816,9 +11888,9 @@ } }, "pathval": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-0.1.1.tgz", - "integrity": "sha1-CPkRzcqczllCiA2ngXvAtyO2bYI=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", "dev": true }, "performance-now": { @@ -11832,11 +11904,11 @@ "integrity": "sha512-HuPxmGxHsEFPWhdkwBs2gIrHhFqktIxMtudISTFN95RQ85ZZAOl8Ki6u3nnN/X8OUaGlIGldk/l8p2IR4/i76w==", "dev": true, "requires": { - "b64": "4.x.x", - "boom": "7.x.x", - "content": "4.x.x", - "hoek": "5.x.x", - "nigel": "3.x.x" + "b64": "4.0.0", + "boom": "7.2.0", + "content": "4.0.5", + "hoek": "5.0.3", + "nigel": "3.0.1" }, "dependencies": { "boom": { @@ -11845,7 +11917,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.x.x" + "hoek": "5.0.3" } }, "hoek": { @@ -11879,7 +11951,7 @@ "integrity": "sha1-0dpn9UglY7t89X8oauKCLs+/NnA=", "dev": true, "requires": { - "pinkie": "^1.0.0" + "pinkie": "1.0.0" } }, "pkg-conf": { @@ -11888,8 +11960,8 @@ "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", "dev": true, "requires": { - "find-up": "^2.0.0", - "load-json-file": "^4.0.0" + "find-up": "2.1.0", + "load-json-file": "4.0.0" }, "dependencies": { "load-json-file": { @@ -11898,10 +11970,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.11", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" } }, "parse-json": { @@ -11910,8 +11982,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "1.3.1", + "json-parse-better-errors": "1.0.2" } } } @@ -11922,22 +11994,16 @@ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "^2.1.0" + "find-up": "2.1.0" } }, - "pkginfo": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz", - "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=", - "dev": true - }, "plur": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/plur/-/plur-2.1.2.tgz", "integrity": "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo=", "dev": true, "requires": { - "irregular-plurals": "^1.0.0" + "irregular-plurals": "1.4.0" } }, "pluralize": { @@ -11952,8 +12018,8 @@ "integrity": "sha512-18VrjJAduIdPv7d9zWsfmKxTj3cQTYC5Pv5gtKxcWujYBpGbV+mhNSPYhlHW5xeWoazYyKfB9FEsPT12r5rY1A==", "dev": true, "requires": { - "hoek": "5.x.x", - "joi": "13.x.x" + "hoek": "5.0.3", + "joi": "13.3.0" }, "dependencies": { "hoek": { @@ -11970,9 +12036,9 @@ "integrity": "sha512-Toc9lLoUASwGqxBSJGTVcOQiDqjK+Z2XlWBg+IgYwQMY9vA2f7iMpXVc1GpPcfTSyM5lkxNo0oDwDRO+wm7XHA==", "dev": true, "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" + "chalk": "2.4.1", + "source-map": "0.6.1", + "supports-color": "5.4.0" }, "dependencies": { "source-map": { @@ -11989,11 +12055,11 @@ "integrity": "sha512-WaWSw+Ts283o6dzxW1BxIxoaHok7aSSGx4SaR6dW62Pk31ynv9DERDieuZpPYv5XaJ+H+zdcOaJQ+PvlasAOVw==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "empower": "^1.2.3", - "power-assert-formatter": "^1.3.1", - "universal-deep-strict-equal": "^1.2.1", - "xtend": "^4.0.0" + "define-properties": "1.1.2", + "empower": "1.2.3", + "power-assert-formatter": "1.4.1", + "universal-deep-strict-equal": "1.2.2", + "xtend": "4.0.1" } }, "power-assert-context-formatter": { @@ -12002,8 +12068,8 @@ "integrity": "sha1-7bo1LT7YpgMRTWZyZazOYNaJzN8=", "dev": true, "requires": { - "core-js": "^2.0.0", - "power-assert-context-traversal": "^1.1.1" + "core-js": "2.5.6", + "power-assert-context-traversal": "1.1.1" } }, "power-assert-context-reducer-ast": { @@ -12012,11 +12078,11 @@ "integrity": "sha1-SEqZ4m9Jc/+IMuXFzHVnAuYJQXQ=", "dev": true, "requires": { - "acorn": "^4.0.0", - "acorn-es7-plugin": "^1.0.12", - "core-js": "^2.0.0", - "espurify": "^1.6.0", - "estraverse": "^4.2.0" + "acorn": "4.0.13", + "acorn-es7-plugin": "1.1.7", + "core-js": "2.5.6", + "espurify": "1.8.0", + "estraverse": "4.2.0" }, "dependencies": { "acorn": { @@ -12033,8 +12099,8 @@ "integrity": "sha1-iMq8oNE7Y1nwfT0+ivppkmRXftk=", "dev": true, "requires": { - "core-js": "^2.0.0", - "estraverse": "^4.1.0" + "core-js": "2.5.6", + "estraverse": "4.2.0" } }, "power-assert-formatter": { @@ -12043,13 +12109,13 @@ "integrity": "sha1-XcEl7VCj37HdomwZNH879Y7CiEo=", "dev": true, "requires": { - "core-js": "^2.0.0", - "power-assert-context-formatter": "^1.0.7", - "power-assert-context-reducer-ast": "^1.0.7", - "power-assert-renderer-assertion": "^1.0.7", - "power-assert-renderer-comparison": "^1.0.7", - "power-assert-renderer-diagram": "^1.0.7", - "power-assert-renderer-file": "^1.0.7" + "core-js": "2.5.6", + "power-assert-context-formatter": "1.1.1", + "power-assert-context-reducer-ast": "1.1.2", + "power-assert-renderer-assertion": "1.1.1", + "power-assert-renderer-comparison": "1.1.1", + "power-assert-renderer-diagram": "1.1.2", + "power-assert-renderer-file": "1.1.1" } }, "power-assert-renderer-assertion": { @@ -12058,8 +12124,8 @@ "integrity": "sha1-y/wOd+AIao+Wrz8djme57n4ozpg=", "dev": true, "requires": { - "power-assert-renderer-base": "^1.1.1", - "power-assert-util-string-width": "^1.1.1" + "power-assert-renderer-base": "1.1.1", + "power-assert-util-string-width": "1.1.1" } }, "power-assert-renderer-base": { @@ -12074,11 +12140,11 @@ "integrity": "sha1-10Odl9hRVr5OMKAPL7WnJRTOPAg=", "dev": true, "requires": { - "core-js": "^2.0.0", - "diff-match-patch": "^1.0.0", - "power-assert-renderer-base": "^1.1.1", - "stringifier": "^1.3.0", - "type-name": "^2.0.1" + "core-js": "2.5.6", + "diff-match-patch": "1.0.1", + "power-assert-renderer-base": "1.1.1", + "stringifier": "1.3.0", + "type-name": "2.0.2" } }, "power-assert-renderer-diagram": { @@ -12087,10 +12153,10 @@ "integrity": "sha1-ZV+PcRk1qbbVQbhjJ2VHF8Y3qYY=", "dev": true, "requires": { - "core-js": "^2.0.0", - "power-assert-renderer-base": "^1.1.1", - "power-assert-util-string-width": "^1.1.1", - "stringifier": "^1.3.0" + "core-js": "2.5.6", + "power-assert-renderer-base": "1.1.1", + "power-assert-util-string-width": "1.1.1", + "stringifier": "1.3.0" } }, "power-assert-renderer-file": { @@ -12099,7 +12165,7 @@ "integrity": "sha1-o34rvReMys0E5427eckv40kzxec=", "dev": true, "requires": { - "power-assert-renderer-base": "^1.1.1" + "power-assert-renderer-base": "1.1.1" } }, "power-assert-util-string-width": { @@ -12108,7 +12174,7 @@ "integrity": "sha1-vmWet5N/3S5smncmjar2S9W3xZI=", "dev": true, "requires": { - "eastasianwidth": "^0.1.1" + "eastasianwidth": "0.1.1" } }, "prelude-ls": { @@ -12141,8 +12207,8 @@ "integrity": "sha1-6crJx2v27lL+lC3ZxsQhMVOxKIE=", "dev": true, "requires": { - "parse-ms": "^1.0.0", - "plur": "^2.1.2" + "parse-ms": "1.0.1", + "plur": "2.1.2" }, "dependencies": { "parse-ms": { @@ -12170,19 +12236,6 @@ "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", "dev": true }, - "prompt": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/prompt/-/prompt-0.2.14.tgz", - "integrity": "sha1-V3VPZPVD/XsIRXB8gY7OYY8F/9w=", - "dev": true, - "requires": { - "pkginfo": "0.x.x", - "read": "1.0.x", - "revalidator": "0.1.x", - "utile": "0.2.x", - "winston": "0.8.x" - } - }, "propagate": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/propagate/-/propagate-1.0.0.tgz", @@ -12195,7 +12248,7 @@ "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", "dev": true, "requires": { - "forwarded": "~0.1.2", + "forwarded": "0.1.2", "ipaddr.js": "1.6.0" } }, @@ -12205,9 +12258,9 @@ "integrity": "sha512-fQr3VQrbdzHrdaDn3XuisVoJlJNDJizHAvUXw9IuXRR8BpV2x0N7LsCxrpJkeKfPbNjiNU/V5vc008cI0TmzzQ==", "dev": true, "requires": { - "fill-keys": "^1.0.2", - "module-not-found-error": "^1.0.0", - "resolve": "~1.5.0" + "fill-keys": "1.0.2", + "module-not-found-error": "1.0.1", + "resolve": "1.5.0" }, "dependencies": { "resolve": { @@ -12216,7 +12269,7 @@ "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", "dev": true, "requires": { - "path-parse": "^1.0.5" + "path-parse": "1.0.5" } } } @@ -12242,9 +12295,9 @@ "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", "dev": true, "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" + "decode-uri-component": "0.2.0", + "object-assign": "4.1.1", + "strict-uri-encode": "1.1.0" } }, "quick-lru": { @@ -12259,9 +12312,9 @@ "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", "dev": true, "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" + "is-number": "4.0.0", + "kind-of": "6.0.2", + "math-random": "1.0.1" }, "dependencies": { "is-number": { @@ -12302,10 +12355,10 @@ "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", "dev": true, "requires": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "deep-extend": "0.5.1", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" }, "dependencies": { "minimist": { @@ -12316,24 +12369,15 @@ } } }, - "read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", - "dev": true, - "requires": { - "mute-stream": "~0.0.4" - } - }, "read-pkg": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" } }, "read-pkg-up": { @@ -12342,8 +12386,8 @@ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "find-up": "2.1.0", + "read-pkg": "2.0.0" } }, "readable-stream": { @@ -12351,13 +12395,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" } }, "readdirp": { @@ -12366,10 +12410,10 @@ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "minimatch": "^3.0.2", - "readable-stream": "^2.0.2", - "set-immediate-shim": "^1.0.1" + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.6", + "set-immediate-shim": "1.0.1" } }, "redent": { @@ -12378,8 +12422,8 @@ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" + "indent-string": "2.1.0", + "strip-indent": "1.0.1" }, "dependencies": { "indent-string": { @@ -12388,7 +12432,7 @@ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } } } @@ -12411,7 +12455,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { - "is-equal-shallow": "^0.1.3" + "is-equal-shallow": "0.1.3" } }, "regexpp": { @@ -12426,9 +12470,9 @@ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "dev": true, "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" + "regenerate": "1.4.0", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" } }, "registry-auth-token": { @@ -12437,8 +12481,8 @@ "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", "dev": true, "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" + "rc": "1.2.7", + "safe-buffer": "5.1.2" } }, "registry-url": { @@ -12447,7 +12491,7 @@ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "dev": true, "requires": { - "rc": "^1.0.1" + "rc": "1.2.7" } }, "regjsgen": { @@ -12462,7 +12506,7 @@ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, "requires": { - "jsesc": "~0.5.0" + "jsesc": "0.5.0" } }, "release-zalgo": { @@ -12471,7 +12515,7 @@ "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", "dev": true, "requires": { - "es6-error": "^4.0.1" + "es6-error": "4.1.1" } }, "remove-trailing-separator": { @@ -12498,7 +12542,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "request": { @@ -12506,27 +12550,27 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.86.0.tgz", "integrity": "sha512-BQZih67o9r+Ys94tcIW4S7Uu8pthjrQVxhsZ/weOwHbDfACxvIyvnAbzFQxjy1jMtvFSzv5zf4my6cZsJBbVzw==", "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", - "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.3", - "hawk": "~6.0.2", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.17", - "oauth-sign": "~0.8.2", - "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" + "aws-sign2": "0.7.0", + "aws4": "1.7.0", + "caseless": "0.12.0", + "combined-stream": "1.0.6", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.3.2", + "har-validator": "5.0.3", + "hawk": "6.0.2", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.18", + "oauth-sign": "0.8.2", + "performance-now": "2.1.0", + "qs": "6.5.2", + "safe-buffer": "5.1.2", + "tough-cookie": "2.3.4", + "tunnel-agent": "0.6.0", + "uuid": "3.2.1" } }, "require-directory": { @@ -12553,8 +12597,8 @@ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "dev": true, "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" + "caller-path": "0.1.0", + "resolve-from": "1.0.1" }, "dependencies": { "resolve-from": { @@ -12571,15 +12615,17 @@ "integrity": "sha1-aUPDUwxNmn5G8c3dUcFY/GcM294=", "dev": true, "requires": { - "underscore": "~1.6.0" + "underscore": "1.6.0" + }, + "dependencies": { + "underscore": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", + "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", + "dev": true + } } }, - "reserved-words": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/reserved-words/-/reserved-words-0.1.2.tgz", - "integrity": "sha1-AKCUD5jNUBrqqsMWQR2a3FKzGrE=", - "dev": true - }, "resolve": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", @@ -12592,7 +12638,7 @@ "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", "dev": true, "requires": { - "resolve-from": "^3.0.0" + "resolve-from": "3.0.0" } }, "resolve-from": { @@ -12607,7 +12653,7 @@ "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", "dev": true, "requires": { - "lowercase-keys": "^1.0.0" + "lowercase-keys": "1.0.1" } }, "restify": { @@ -12616,28 +12662,28 @@ "integrity": "sha512-UXYtu437a5TSim0PgjCiccdUfQS/00VC9gDxqR2/GKaW19OtY3DYDg3HByCAnyO5GiL2y0pBI572wGcxZGP26A==", "dev": true, "requires": { - "assert-plus": "^1.0.0", - "bunyan": "^1.8.12", - "csv": "^1.1.1", - "dtrace-provider": "^0.8.1", - "escape-regexp-component": "^1.0.2", - "ewma": "^2.0.1", - "find-my-way": "^1.12.0", - "formidable": "^1.2.1", - "http-signature": "^1.2.0", - "lodash": "^4.17.10", - "lru-cache": "^4.1.3", - "mime": "^1.5.0", - "negotiator": "^0.6.1", - "once": "^1.4.0", - "pidusage": "^1.2.0", - "qs": "^6.5.2", - "restify-errors": "^5.0.0", - "semver": "^5.4.1", - "spdy": "^3.4.7", - "uuid": "^3.1.0", - "vasync": "^1.6.4", - "verror": "^1.10.0" + "assert-plus": "1.0.0", + "bunyan": "1.8.12", + "csv": "1.2.1", + "dtrace-provider": "0.8.6", + "escape-regexp-component": "1.0.2", + "ewma": "2.0.1", + "find-my-way": "1.12.0", + "formidable": "1.2.1", + "http-signature": "1.2.0", + "lodash": "4.17.10", + "lru-cache": "4.1.3", + "mime": "1.6.0", + "negotiator": "0.6.1", + "once": "1.4.0", + "pidusage": "1.2.0", + "qs": "6.5.2", + "restify-errors": "5.0.0", + "semver": "5.5.0", + "spdy": "3.4.7", + "uuid": "3.2.1", + "vasync": "1.6.4", + "verror": "1.10.0" }, "dependencies": { "mime": { @@ -12654,10 +12700,10 @@ "integrity": "sha512-+vby9Kxf7qlzvbZSTIEGkIixkeHG+pVCl34dk6eKnL+ua4pCezpdLT/1/eabzPZb65ADrgoc04jeWrrF1E1pvQ==", "dev": true, "requires": { - "assert-plus": "^1.0.0", - "lodash": "^4.2.1", - "safe-json-stringify": "^1.0.3", - "verror": "^1.8.1" + "assert-plus": "1.0.0", + "lodash": "4.17.10", + "safe-json-stringify": "1.1.0", + "verror": "1.10.0" } }, "restore-cursor": { @@ -12666,8 +12712,8 @@ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "onetime": "2.0.1", + "signal-exit": "3.0.2" } }, "retry-axios": { @@ -12680,16 +12726,10 @@ "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-3.3.1.tgz", "integrity": "sha512-PjAmtWIxjNj4Co/6FRtBl8afRP3CxrrIAnUzb1dzydfROd+6xt7xAebFeskgQgkfFf8NmzrXIoaB3HxmswXyxw==", "requires": { - "request": "^2.81.0", - "through2": "^2.0.0" + "request": "2.86.0", + "through2": "2.0.3" } }, - "revalidator": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz", - "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=", - "dev": true - }, "right-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", @@ -12697,7 +12737,7 @@ "dev": true, "optional": true, "requires": { - "align-text": "^0.1.1" + "align-text": "0.1.4" } }, "rimraf": { @@ -12706,7 +12746,7 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "run-async": { @@ -12715,7 +12755,7 @@ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "is-promise": "^2.1.0" + "is-promise": "2.1.0" } }, "rx-lite": { @@ -12730,7 +12770,7 @@ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "dev": true, "requires": { - "rx-lite": "*" + "rx-lite": "4.0.8" } }, "rxjs": { @@ -12780,16 +12820,16 @@ "integrity": "sha512-52ThA+Z7h6BnvpSVbURwChl10XZrps5q7ytjTwWcIe9bmJwnVP6cpEVK2NvDOUhGupoqAvNbUz3cpnJDp4+/pg==", "dev": true, "requires": { - "chalk": "^2.3.0", - "htmlparser2": "^3.9.0", - "lodash.clonedeep": "^4.5.0", - "lodash.escaperegexp": "^4.1.2", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.mergewith": "^4.6.0", - "postcss": "^6.0.14", - "srcset": "^1.0.0", - "xtend": "^4.0.0" + "chalk": "2.4.1", + "htmlparser2": "3.9.2", + "lodash.clonedeep": "4.5.0", + "lodash.escaperegexp": "4.1.2", + "lodash.isplainobject": "4.0.6", + "lodash.isstring": "4.0.1", + "lodash.mergewith": "4.6.1", + "postcss": "6.0.22", + "srcset": "1.0.0", + "xtend": "4.0.1" } }, "select-hose": { @@ -12810,7 +12850,7 @@ "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "dev": true, "requires": { - "semver": "^5.0.3" + "semver": "5.5.0" } }, "send": { @@ -12820,18 +12860,18 @@ "dev": true, "requires": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", + "depd": "1.1.2", + "destroy": "1.0.4", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", "fresh": "0.5.2", - "http-errors": "~1.6.2", + "http-errors": "1.6.3", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.4.0" + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.4.0" }, "dependencies": { "debug": { @@ -12869,9 +12909,9 @@ "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "dev": true, "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.2", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "parseurl": "1.3.2", "send": "0.16.2" } }, @@ -12899,7 +12939,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -12908,20 +12948,14 @@ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, - "shelljs": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", - "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=", - "dev": true - }, "shot": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/shot/-/shot-4.0.5.tgz", "integrity": "sha1-x+dFXRHWD2ts08Q+FaO0McF+VWY=", "dev": true, "requires": { - "hoek": "5.x.x", - "joi": "13.x.x" + "hoek": "5.0.3", + "joi": "13.3.0" }, "dependencies": { "hoek": { @@ -12944,13 +12978,13 @@ "integrity": "sha512-pmf05hFgEZUS52AGJcsVjOjqAyJW2yo14cOwVYvzCyw7+inv06YXkLyW75WG6X6p951lzkoKh51L2sNbR9CDvw==", "dev": true, "requires": { - "@sinonjs/formatio": "^2.0.0", - "diff": "^3.1.0", - "lodash.get": "^4.4.2", - "lolex": "^2.2.0", - "nise": "^1.2.0", - "supports-color": "^5.1.0", - "type-detect": "^4.0.5" + "@sinonjs/formatio": "2.0.0", + "diff": "3.5.0", + "lodash.get": "4.4.2", + "lolex": "2.6.0", + "nise": "1.3.3", + "supports-color": "5.4.0", + "type-detect": "4.0.8" } }, "slash": { @@ -12965,7 +12999,7 @@ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0" + "is-fullwidth-code-point": "2.0.0" } }, "slide": { @@ -12979,7 +13013,7 @@ "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", "requires": { - "hoek": "4.x.x" + "hoek": "4.2.1" } }, "sort-keys": { @@ -12988,7 +13022,7 @@ "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", "dev": true, "requires": { - "is-plain-obj": "^1.0.0" + "is-plain-obj": "1.1.0" } }, "source-map": { @@ -13003,8 +13037,8 @@ "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", "dev": true, "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "buffer-from": "1.0.0", + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -13021,9 +13055,9 @@ "integrity": "sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==", "dev": true, "requires": { - "array-find-index": "^1.0.2", - "spdx-expression-parse": "^3.0.0", - "spdx-ranges": "^2.0.0" + "array-find-index": "1.0.2", + "spdx-expression-parse": "3.0.0", + "spdx-ranges": "2.0.0" } }, "spdx-correct": { @@ -13032,8 +13066,8 @@ "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "dev": true, "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, "spdx-exceptions": { @@ -13048,8 +13082,8 @@ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" } }, "spdx-license-ids": { @@ -13070,9 +13104,9 @@ "integrity": "sha512-OcARj6U1OuVv98SVrRqgrR30sVocONtoPpnX8Xz4vXNrFVedqtbgkA+0KmQoXIQ2xjfltPPRVIMeNzKEFLWWKQ==", "dev": true, "requires": { - "spdx-compare": "^1.0.0", - "spdx-expression-parse": "^3.0.0", - "spdx-ranges": "^2.0.0" + "spdx-compare": "1.0.0", + "spdx-expression-parse": "3.0.0", + "spdx-ranges": "2.0.0" } }, "spdy": { @@ -13081,12 +13115,12 @@ "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", "dev": true, "requires": { - "debug": "^2.6.8", - "handle-thing": "^1.2.5", - "http-deceiver": "^1.2.7", - "safe-buffer": "^5.0.1", - "select-hose": "^2.0.0", - "spdy-transport": "^2.0.18" + "debug": "2.6.9", + "handle-thing": "1.2.5", + "http-deceiver": "1.2.7", + "safe-buffer": "5.1.2", + "select-hose": "2.0.0", + "spdy-transport": "2.1.0" }, "dependencies": { "debug": { @@ -13106,13 +13140,13 @@ "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", "dev": true, "requires": { - "debug": "^2.6.8", - "detect-node": "^2.0.3", - "hpack.js": "^2.1.6", - "obuf": "^1.1.1", - "readable-stream": "^2.2.9", - "safe-buffer": "^5.0.1", - "wbuf": "^1.7.2" + "debug": "2.6.9", + "detect-node": "2.0.3", + "hpack.js": "2.1.6", + "obuf": "1.1.2", + "readable-stream": "2.3.6", + "safe-buffer": "5.1.2", + "wbuf": "1.7.3" }, "dependencies": { "debug": { @@ -13131,8 +13165,8 @@ "resolved": "https://registry.npmjs.org/split-array-stream/-/split-array-stream-1.0.3.tgz", "integrity": "sha1-0rdajl4Ngk1S/eyLgiWDncLjXfo=", "requires": { - "async": "^2.4.0", - "is-stream-ended": "^0.1.0" + "async": "2.6.0", + "is-stream-ended": "0.1.4" } }, "sprintf-js": { @@ -13147,8 +13181,8 @@ "integrity": "sha1-pWad4StC87HV6D7QPHEEb8SPQe8=", "dev": true, "requires": { - "array-uniq": "^1.0.2", - "number-is-nan": "^1.0.0" + "array-uniq": "1.0.3", + "number-is-nan": "1.0.1" } }, "sshpk": { @@ -13156,22 +13190,16 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz", "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=", "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "tweetnacl": "~0.14.0" + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" } }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", - "dev": true - }, "stack-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz", @@ -13184,12 +13212,12 @@ "integrity": "sha512-jR45n5ZMAkasw0xoE9j9TuLmJv4Sa3AkXe+6yIFT6a07kXYHgSbuD2OVGECdZGFxTmvNqLwL1iRIgvq6O6rq+A==", "dev": true, "requires": { - "boom": "7.x.x", - "bounce": "1.x.x", - "cryptiles": "4.x.x", - "hoek": "5.x.x", - "iron": "5.x.x", - "joi": "13.x.x" + "boom": "7.2.0", + "bounce": "1.2.0", + "cryptiles": "4.1.1", + "hoek": "5.0.3", + "iron": "5.0.4", + "joi": "13.3.0" }, "dependencies": { "boom": { @@ -13198,7 +13226,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.x.x" + "hoek": "5.0.3" } }, "cryptiles": { @@ -13207,7 +13235,7 @@ "integrity": "sha512-YuQUPbcOmaZsdvxJZ25DCA1W+lLIRoPJKBDKin+St1RCYEERSfoe1d25B1MvWNHN3e8SpFSVsqYvEUjp8J9H2w==", "dev": true, "requires": { - "boom": "7.x.x" + "boom": "7.2.0" } }, "hoek": { @@ -13229,7 +13257,7 @@ "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.4.tgz", "integrity": "sha512-D243NJaYs/xBN2QnoiMDY7IesJFIK7gEhnvAYqJa5JvDdnh2dC4qDBwlCf0ohPpX2QRlA/4gnbnPd3rs3KxVcA==", "requires": { - "stubs": "^3.0.0" + "stubs": "3.0.0" } }, "stream-shift": { @@ -13266,8 +13294,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" } }, "string_decoder": { @@ -13275,7 +13303,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.2" } }, "stringifier": { @@ -13284,9 +13312,9 @@ "integrity": "sha1-3vGDQvaTPbDy2/yaoCF1tEjBeVk=", "dev": true, "requires": { - "core-js": "^2.0.0", - "traverse": "^0.6.6", - "type-name": "^2.0.1" + "core-js": "2.5.6", + "traverse": "0.6.6", + "type-name": "2.0.2" } }, "strip-ansi": { @@ -13295,7 +13323,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" }, "dependencies": { "ansi-regex": { @@ -13318,7 +13346,7 @@ "integrity": "sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=", "dev": true, "requires": { - "is-utf8": "^0.2.1" + "is-utf8": "0.2.1" } }, "strip-eof": { @@ -13333,7 +13361,7 @@ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, "requires": { - "get-stdin": "^4.0.1" + "get-stdin": "4.0.1" } }, "strip-json-comments": { @@ -13353,11 +13381,11 @@ "integrity": "sha512-IcJUvRjeR+NB437Iq+LORFNJW4L6Knqkj3oQrBrkdhIaS2VKJvx/9aYEq7vi+PEx5/OuehOL/40SkSZotLi/MA==", "dev": true, "requires": { - "boom": "7.x.x", - "content": "4.x.x", - "hoek": "5.x.x", - "pez": "4.x.x", - "wreck": "14.x.x" + "boom": "7.2.0", + "content": "4.0.5", + "hoek": "5.0.3", + "pez": "4.0.2", + "wreck": "14.0.2" }, "dependencies": { "boom": { @@ -13366,7 +13394,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.x.x" + "hoek": "5.0.3" } }, "hoek": { @@ -13383,16 +13411,16 @@ "integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==", "dev": true, "requires": { - "component-emitter": "^1.2.0", - "cookiejar": "^2.1.0", - "debug": "^3.1.0", - "extend": "^3.0.0", - "form-data": "^2.3.1", - "formidable": "^1.2.0", - "methods": "^1.1.1", - "mime": "^1.4.1", - "qs": "^6.5.1", - "readable-stream": "^2.3.5" + "component-emitter": "1.2.1", + "cookiejar": "2.1.1", + "debug": "3.1.0", + "extend": "3.0.1", + "form-data": "2.3.2", + "formidable": "1.2.1", + "methods": "1.1.2", + "mime": "1.6.0", + "qs": "6.5.2", + "readable-stream": "2.3.6" }, "dependencies": { "mime": { @@ -13409,11 +13437,11 @@ "integrity": "sha512-HZJ3geIMPgVwKk2VsmO5YHqnnJYl6bV5A9JW2uzqV43WmpgliNEYbuvukfor7URpaqpxuw3CfZ3ONdVbZjCgIA==", "dev": true, "requires": { - "arrify": "^1.0.1", - "indent-string": "^3.2.0", - "js-yaml": "^3.10.0", - "serialize-error": "^2.1.0", - "strip-ansi": "^4.0.0" + "arrify": "1.0.1", + "indent-string": "3.2.0", + "js-yaml": "3.11.0", + "serialize-error": "2.1.0", + "strip-ansi": "4.0.0" } }, "supertest": { @@ -13422,8 +13450,8 @@ "integrity": "sha1-jUu2j9GDDuBwM7HFpamkAhyWUpY=", "dev": true, "requires": { - "methods": "~1.1.2", - "superagent": "^3.0.0" + "methods": "1.1.2", + "superagent": "3.8.3" } }, "supports-color": { @@ -13432,7 +13460,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" }, "dependencies": { "has-flag": { @@ -13455,12 +13483,12 @@ "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "dev": true, "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", + "ajv": "5.5.2", + "ajv-keywords": "2.1.1", + "chalk": "2.4.1", + "lodash": "4.17.10", "slice-ansi": "1.0.0", - "string-width": "^2.1.1" + "string-width": "2.1.1" } }, "taffydb": { @@ -13481,7 +13509,7 @@ "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "dev": true, "requires": { - "execa": "^0.7.0" + "execa": "0.7.0" } }, "text-encoding": { @@ -13507,8 +13535,8 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "requires": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" + "readable-stream": "2.3.6", + "xtend": "4.0.1" } }, "time-zone": { @@ -13529,34 +13557,22 @@ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "os-tmpdir": "~1.0.2" + "os-tmpdir": "1.0.2" } }, - "to-double-quotes": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-double-quotes/-/to-double-quotes-2.0.0.tgz", - "integrity": "sha1-qvIx1vqUiUn4GTAburRITYWI5Kc=", - "dev": true - }, "to-fast-properties": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", "dev": true }, - "to-single-quotes": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/to-single-quotes/-/to-single-quotes-2.0.1.tgz", - "integrity": "sha1-fMKRUfD18sQZRvEZ9ZMv5VQXASU=", - "dev": true - }, "topo": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.0.tgz", "integrity": "sha512-Tlu1fGlR90iCdIPURqPiufqAlCZYzLjHYVVbcFWDMcX7+tK8hdZWAfsMrD/pBul9jqHHwFjNdf1WaxA9vTRRhw==", "dev": true, "requires": { - "hoek": "5.x.x" + "hoek": "5.0.3" }, "dependencies": { "hoek": { @@ -13572,7 +13588,7 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "requires": { - "punycode": "^1.4.1" + "punycode": "1.4.1" } }, "traverse": { @@ -13611,18 +13627,18 @@ "integrity": "sha1-EeJrzLiK+gLdDZlWyuPUVAtfVMM=", "dev": true, "requires": { - "babel-code-frame": "^6.22.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^3.2.0", - "glob": "^7.1.1", - "js-yaml": "^3.7.0", - "minimatch": "^3.0.4", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.8.0", - "tsutils": "^2.12.1" + "babel-code-frame": "6.26.0", + "builtin-modules": "1.1.1", + "chalk": "2.4.1", + "commander": "2.15.1", + "diff": "3.5.0", + "glob": "7.1.2", + "js-yaml": "3.11.0", + "minimatch": "3.0.4", + "resolve": "1.7.1", + "semver": "5.5.0", + "tslib": "1.9.1", + "tsutils": "2.27.1" }, "dependencies": { "resolve": { @@ -13631,18 +13647,18 @@ "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", "dev": true, "requires": { - "path-parse": "^1.0.5" + "path-parse": "1.0.5" } } } }, "tsutils": { - "version": "2.27.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.27.0.tgz", - "integrity": "sha512-JcyX25oM9pFcb3zh60OqG1St8p/uSqC5Bgipdo3ieacB/Ao4dPhm7hAtKT9NrEu23CyYrrgJPV3CqYfo+/+T4w==", + "version": "2.27.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.27.1.tgz", + "integrity": "sha512-AE/7uzp32MmaHvNNFES85hhUDHFdFZp6OAiZcd6y4ZKKIg6orJTm8keYWBhIhrJQH3a4LzNKat7ZPXZt5aTf6w==", "dev": true, "requires": { - "tslib": "^1.8.1" + "tslib": "1.9.1" } }, "tunnel-agent": { @@ -13650,7 +13666,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "tweetnacl": { @@ -13665,7 +13681,7 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "~1.1.2" + "prelude-ls": "1.1.2" } }, "type-detect": { @@ -13681,7 +13697,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "~2.1.18" + "mime-types": "2.1.18" } }, "type-name": { @@ -13708,9 +13724,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" }, "dependencies": { "camelcase": { @@ -13727,9 +13743,9 @@ "dev": true, "optional": true, "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", "window-size": "0.1.0" } } @@ -13749,9 +13765,9 @@ "dev": true }, "underscore": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", - "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", "dev": true }, "underscore-contrib": { @@ -13761,6 +13777,14 @@ "dev": true, "requires": { "underscore": "1.6.0" + }, + "dependencies": { + "underscore": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", + "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", + "dev": true + } } }, "unique-string": { @@ -13769,7 +13793,7 @@ "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", "dev": true, "requires": { - "crypto-random-string": "^1.0.0" + "crypto-random-string": "1.0.0" } }, "unique-temp-dir": { @@ -13778,8 +13802,8 @@ "integrity": "sha1-bc6VsmgcoAPuv7MEpBX5y6vMU4U=", "dev": true, "requires": { - "mkdirp": "^0.5.1", - "os-tmpdir": "^1.0.1", + "mkdirp": "0.5.1", + "os-tmpdir": "1.0.2", "uid2": "0.0.3" } }, @@ -13789,9 +13813,9 @@ "integrity": "sha1-DaSsL3PP95JMgfpN4BjKViyisKc=", "dev": true, "requires": { - "array-filter": "^1.0.0", + "array-filter": "1.0.0", "indexof": "0.0.1", - "object-keys": "^1.0.0" + "object-keys": "1.0.11" } }, "universalify": { @@ -13818,16 +13842,16 @@ "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", "dev": true, "requires": { - "boxen": "^1.2.1", - "chalk": "^2.0.1", - "configstore": "^3.0.0", - "import-lazy": "^2.1.0", - "is-ci": "^1.0.10", - "is-installed-globally": "^0.1.0", - "is-npm": "^1.0.0", - "latest-version": "^3.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" + "boxen": "1.3.0", + "chalk": "2.4.1", + "configstore": "3.1.2", + "import-lazy": "2.1.0", + "is-ci": "1.1.0", + "is-installed-globally": "0.1.0", + "is-npm": "1.0.0", + "latest-version": "3.1.0", + "semver-diff": "2.1.0", + "xdg-basedir": "3.0.0" } }, "url-parse-lax": { @@ -13836,7 +13860,7 @@ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "dev": true, "requires": { - "prepend-http": "^1.0.1" + "prepend-http": "1.0.4" } }, "url-to-options": { @@ -13856,34 +13880,6 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, - "utile": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz", - "integrity": "sha1-kwyI6ZCY1iIINMNWy9mncFItkNc=", - "dev": true, - "requires": { - "async": "~0.2.9", - "deep-equal": "*", - "i": "0.3.x", - "mkdirp": "0.x.x", - "ncp": "0.4.x", - "rimraf": "2.x.x" - }, - "dependencies": { - "async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", - "dev": true - }, - "ncp": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz", - "integrity": "sha1-q8xsvT7C7Spyn/bnwfqPAXhKhXQ=", - "dev": true - } - } - }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", @@ -13901,8 +13897,8 @@ "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "dev": true, "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "validate-npm-package-name": { @@ -13911,7 +13907,7 @@ "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "dev": true, "requires": { - "builtins": "^1.0.3" + "builtins": "1.0.3" } }, "vary": { @@ -13951,9 +13947,9 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "^1.0.0", + "assert-plus": "1.0.0", "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "extsprintf": "1.3.0" } }, "vise": { @@ -13962,7 +13958,7 @@ "integrity": "sha512-kBFZLmiL1Vm3rHXphkhvvAcsjgeQXRrOFCbJb0I50YZZP4HGRNH+xGzK3matIMcpbsfr3I02u9odj4oCD0TWgA==", "dev": true, "requires": { - "hoek": "5.x.x" + "hoek": "5.0.3" }, "dependencies": { "hoek": { @@ -13973,48 +13969,13 @@ } } }, - "vow": { - "version": "0.4.17", - "resolved": "https://registry.npmjs.org/vow/-/vow-0.4.17.tgz", - "integrity": "sha512-A3/9bWFqf6gT0jLR4/+bT+IPTe1mQf+tdsW6+WI5geP9smAp8Kbbu4R6QQCDKZN/8TSCqTlXVQm12QliB4rHfg==", - "dev": true - }, - "vow-fs": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/vow-fs/-/vow-fs-0.3.6.tgz", - "integrity": "sha1-LUxZviLivyYY3fWXq0uqkjvnIA0=", - "dev": true, - "requires": { - "glob": "^7.0.5", - "uuid": "^2.0.2", - "vow": "^0.4.7", - "vow-queue": "^0.4.1" - }, - "dependencies": { - "uuid": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", - "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", - "dev": true - } - } - }, - "vow-queue": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/vow-queue/-/vow-queue-0.4.3.tgz", - "integrity": "sha512-/poAKDTFL3zYbeQg7cl4BGcfP4sGgXKrHnRFSKj97dteUFu8oyXMwIcdwu8NSx/RmPGIuYx1Bik/y5vU4H/VKw==", - "dev": true, - "requires": { - "vow": "^0.4.17" - } - }, "wbuf": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, "requires": { - "minimalistic-assert": "^1.0.0" + "minimalistic-assert": "1.0.1" } }, "well-known-symbols": { @@ -14029,7 +13990,7 @@ "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -14044,7 +14005,7 @@ "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", "dev": true, "requires": { - "string-width": "^2.1.1" + "string-width": "2.1.1" } }, "window-size": { @@ -14054,41 +14015,6 @@ "dev": true, "optional": true }, - "winston": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz", - "integrity": "sha1-ZLar9M0Brcrv1QCTk7HY6L7BnbA=", - "dev": true, - "requires": { - "async": "0.2.x", - "colors": "0.6.x", - "cycle": "1.0.x", - "eyes": "0.1.x", - "isstream": "0.1.x", - "pkginfo": "0.3.x", - "stack-trace": "0.0.x" - }, - "dependencies": { - "async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", - "dev": true - }, - "colors": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", - "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=", - "dev": true - }, - "pkginfo": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", - "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=", - "dev": true - } - } - }, "wordwrap": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", @@ -14101,8 +14027,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -14111,7 +14037,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "string-width": { @@ -14120,9 +14046,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "strip-ansi": { @@ -14131,7 +14057,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } } } @@ -14147,8 +14073,8 @@ "integrity": "sha512-QCm3omWNJUseqrSzwX2QZi1rBbmCfbFHJAXputLLyZ37VSiFnSYQB0ms/mPnSvrlIu7GVm89Y/gBNhSY26uVIQ==", "dev": true, "requires": { - "boom": "7.x.x", - "hoek": "5.x.x" + "boom": "7.2.0", + "hoek": "5.0.3" }, "dependencies": { "boom": { @@ -14157,7 +14083,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.x.x" + "hoek": "5.0.3" } }, "hoek": { @@ -14174,7 +14100,7 @@ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "^0.5.1" + "mkdirp": "0.5.1" } }, "write-file-atomic": { @@ -14183,9 +14109,9 @@ "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "signal-exit": "3.0.2" } }, "write-json-file": { @@ -14194,12 +14120,12 @@ "integrity": "sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=", "dev": true, "requires": { - "detect-indent": "^5.0.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "pify": "^3.0.0", - "sort-keys": "^2.0.0", - "write-file-atomic": "^2.0.0" + "detect-indent": "5.0.0", + "graceful-fs": "4.1.11", + "make-dir": "1.3.0", + "pify": "3.0.0", + "sort-keys": "2.0.0", + "write-file-atomic": "2.3.0" }, "dependencies": { "detect-indent": { @@ -14216,8 +14142,8 @@ "integrity": "sha1-AwqZlMyZk9JbTnWp8aGSNgcpHOk=", "dev": true, "requires": { - "sort-keys": "^2.0.0", - "write-json-file": "^2.2.0" + "sort-keys": "2.0.0", + "write-json-file": "2.3.0" } }, "xdg-basedir": { @@ -14226,23 +14152,6 @@ "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", "dev": true }, - "xmlbuilder": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-3.1.0.tgz", - "integrity": "sha1-LIaIjy1OrehQ+jjKf3Ij9yCVFuE=", - "dev": true, - "requires": { - "lodash": "^3.5.0" - }, - "dependencies": { - "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", - "dev": true - } - } - }, "xmlcreate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-1.0.2.tgz", @@ -14271,18 +14180,18 @@ "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^9.0.2" + "cliui": "4.1.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "9.0.2" }, "dependencies": { "cliui": { @@ -14291,9 +14200,9 @@ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" } } } @@ -14304,7 +14213,7 @@ "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" }, "dependencies": { "camelcase": { diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index fd4718c8d48..fd813c6756b 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -69,9 +69,7 @@ "@types/is": "0.0.20", "@types/koa": "^2.0.43", "@types/lodash.assign": "^4.2.3", - "@types/lodash.foreach": "^4.5.3", "@types/lodash.has": "^4.5.3", - "@types/lodash.indexof": "^4.0.3", "@types/lodash.maxby": "^4.6.3", "@types/lodash.merge": "^4.6.3", "@types/lodash.omit": "^4.5.3", @@ -90,7 +88,6 @@ "@types/restify": "^5.0.6", "@types/rimraf": "^2.0.2", "@types/tmp": "0.0.33", - "async": "^2.6.0", "body-parser": "^1.15.1", "boom": "^4.3.1", "codecov": "^3.0.0", @@ -108,13 +105,9 @@ "ink-docstrap": "^1.3.0", "intelli-espower-loader": "^1.0.1", "js-green-licenses": "^0.5.0", - "jscs": "^3.0.7", "jsdoc": "^3.5.5", - "jshint": "^2.9.2", "koa": "^2.5.0", "lodash.assign": "^4.2.0", - "lodash.foreach": "^4.5.0", - "lodash.indexof": "^4.0.5", "lodash.maxby": "^4.6.0", "lodash.merge": "^4.6.0", "lodash.omit": "^4.5.0", diff --git a/handwritten/error-reporting/src/google-apis/auth-client.ts b/handwritten/error-reporting/src/google-apis/auth-client.ts index fae70d5b48d..a7bb13075d1 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.ts +++ b/handwritten/error-reporting/src/google-apis/auth-client.ts @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/*jshint unused:false*/ import * as types from '../types'; export const common: types.Common = require('@google-cloud/common'); diff --git a/handwritten/error-reporting/src/logger.ts b/handwritten/error-reporting/src/logger.ts index ac645130f1f..abd5c278cb8 100644 --- a/handwritten/error-reporting/src/logger.ts +++ b/handwritten/error-reporting/src/logger.ts @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/*jshint bitwise: false*/ import has = require('lodash.has'); import * as is from 'is'; diff --git a/handwritten/error-reporting/src/request-extractors/express.ts b/handwritten/error-reporting/src/request-extractors/express.ts index 084e82dec65..ab55a5819db 100644 --- a/handwritten/error-reporting/src/request-extractors/express.ts +++ b/handwritten/error-reporting/src/request-extractors/express.ts @@ -13,11 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -// jscs:disable requireEarlyReturn import * as is from 'is'; -// TODO: Address the error where `is` does not have a `fn` property -const isFunction = (is as {} as {fn: Function}).fn; +const isFunction = is.fn; const isObject = is.object; import {RequestInformationContainer} from '../classes/request-information-container'; import * as express from 'express'; diff --git a/handwritten/error-reporting/src/request-extractors/hapi.ts b/handwritten/error-reporting/src/request-extractors/hapi.ts index 31be14f8647..ee98e50617c 100644 --- a/handwritten/error-reporting/src/request-extractors/hapi.ts +++ b/handwritten/error-reporting/src/request-extractors/hapi.ts @@ -13,15 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -// jscs:disable requireEarlyReturn -import has = require('lodash.has'); -import * as is from 'is'; +import is from 'is'; +import has from 'lodash.has'; + const isObject = is.object; const isFunction = is.function; const isArray = is.array; import {RequestInformationContainer} from '../classes/request-information-container'; -import * as hapi from 'hapi'; +import hapi from 'hapi'; /** * This function is used to check for a pending status code on the response diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index 5fed7768f33..bf7b8bccbe2 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -28,7 +28,6 @@ import {ErrorGroupStats, ErrorsApiTransport} from '../utils/errors-api-transport const isObject = is.object; const isString = is.string; const isEmpty = is.empty; -import forEach = require('lodash.foreach'); import assign = require('lodash.assign'); import pick = require('lodash.pick'); import omitBy = require('lodash.omitby'); @@ -63,7 +62,7 @@ class InstancedEnv { } sterilizeProcess() { - forEach(envKeys, (v, k) => delete process.env[k]); + envKeys.forEach(key => delete process.env[key]); return this; } diff --git a/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts index a23591ccbfc..86ee9b76c7a 100644 --- a/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts @@ -13,11 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -// jscs:disable requireEarlyReturn const WARNING_HEADER = '\n!! -WARNING-'; const EXCLAMATION_LN = '\n!!'; -import has = require('lodash.has'); +import has from 'lodash.has'; import express from 'express'; const app = express(); const errorHandler = require('../../src/index.js')({ diff --git a/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts index 94cb9ce83b6..c80a5284185 100644 --- a/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts @@ -13,8 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -// jscs doesn't understand koa.. -// jscs:disable import {ErrorReporting} from '../../src'; const errorHandler = new ErrorReporting({ diff --git a/handwritten/error-reporting/test/unit/classes/error-message.ts b/handwritten/error-reporting/test/unit/classes/error-message.ts index a9a45e5882b..99c6d7e0ac6 100644 --- a/handwritten/error-reporting/test/unit/classes/error-message.ts +++ b/handwritten/error-reporting/test/unit/classes/error-message.ts @@ -13,8 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -// jscs:disable -// jshint ignore: start import assert from 'assert'; import {ErrorMessage} from '../../../src/classes/error-message'; diff --git a/handwritten/error-reporting/test/unit/service-configuration.ts b/handwritten/error-reporting/test/unit/service-configuration.ts index da5007bd894..ce69ace876b 100644 --- a/handwritten/error-reporting/test/unit/service-configuration.ts +++ b/handwritten/error-reporting/test/unit/service-configuration.ts @@ -18,7 +18,6 @@ import assert from 'assert'; import * as is from 'is'; const isString = is.string; const isNumber = is.number; -import forEach = require('lodash.foreach'); import assign = require('lodash.assign'); import omitBy = require('lodash.omitby'); import {FakeConfiguration as Configuration} from '../fixtures/configuration'; @@ -35,7 +34,7 @@ const serviceConfigEnv = { GAE_MODULE_NAME: process.env.GAE_MODULE_NAME, }; function sterilizeServiceConfigEnv() { - forEach(serviceConfigEnv, (val, key) => { + Object.keys(serviceConfigEnv).forEach(key => { delete process.env[key]; }); } diff --git a/handwritten/error-reporting/utils/errors-api-transport.ts b/handwritten/error-reporting/utils/errors-api-transport.ts index 0c7c152abf7..8ff22d34fb5 100644 --- a/handwritten/error-reporting/utils/errors-api-transport.ts +++ b/handwritten/error-reporting/utils/errors-api-transport.ts @@ -61,17 +61,12 @@ export class ErrorsApiTransport extends AuthClient { } const options = {uri: [API, id, 'events'].join('/'), method: 'DELETE'}; - self.request_( - options, - (err, - /* jshint unused:false */ response, - /* jshint unused:false */ body) => { - if (err) { - return cb(err); - } - - cb(null); - }); + self.request_(options, (err, response, body) => { + if (err) { + return cb(err); + } + cb(null); + }); }); } diff --git a/handwritten/error-reporting/utils/fuzzer.ts b/handwritten/error-reporting/utils/fuzzer.ts index 24bfb52745b..3672d74f042 100644 --- a/handwritten/error-reporting/utils/fuzzer.ts +++ b/handwritten/error-reporting/utils/fuzzer.ts @@ -13,10 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -// jscs:disable -// jshint ignore: start -import indexOf = require('lodash.indexof'); import without = require('lodash.without'); import maxBy = require('lodash.maxby'); import random = require('lodash.random'); @@ -102,7 +99,7 @@ export class Fuzzer { allowedDepth?: number) { const lenChecked = (isNumber(len) ? len : random(1, 10))!; let availableTypes = - (isString(ofOneType) && indexOf(this.types(), ofOneType) > -1 ? + (isString(ofOneType) && this.types().indexOf(ofOneType!) > -1 ? [ofOneType] : this.types())!; let currentDepthChecked = (isNumber(currentDepth) ? currentDepth : 0)!; diff --git a/handwritten/error-reporting/yarn.lock b/handwritten/error-reporting/yarn.lock deleted file mode 100644 index bf7bffa34b0..00000000000 --- a/handwritten/error-reporting/yarn.lock +++ /dev/null @@ -1,6998 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@ava/babel-plugin-throws-helper@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@ava/babel-plugin-throws-helper/-/babel-plugin-throws-helper-2.0.0.tgz#2fc1fe3c211a71071a4eca7b8f7af5842cd1ae7c" - -"@ava/babel-preset-stage-4@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@ava/babel-preset-stage-4/-/babel-preset-stage-4-1.1.0.tgz#ae60be881a0babf7d35f52aba770d1f6194f76bd" - dependencies: - babel-plugin-check-es2015-constants "^6.8.0" - babel-plugin-syntax-trailing-function-commas "^6.20.0" - babel-plugin-transform-async-to-generator "^6.16.0" - babel-plugin-transform-es2015-destructuring "^6.19.0" - babel-plugin-transform-es2015-function-name "^6.9.0" - babel-plugin-transform-es2015-modules-commonjs "^6.18.0" - babel-plugin-transform-es2015-parameters "^6.21.0" - babel-plugin-transform-es2015-spread "^6.8.0" - babel-plugin-transform-es2015-sticky-regex "^6.8.0" - babel-plugin-transform-es2015-unicode-regex "^6.11.0" - babel-plugin-transform-exponentiation-operator "^6.8.0" - package-hash "^1.2.0" - -"@ava/babel-preset-transform-test-files@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@ava/babel-preset-transform-test-files/-/babel-preset-transform-test-files-3.0.0.tgz#cded1196a8d8d9381a509240ab92e91a5ec069f7" - dependencies: - "@ava/babel-plugin-throws-helper" "^2.0.0" - babel-plugin-espower "^2.3.2" - -"@ava/write-file-atomic@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@ava/write-file-atomic/-/write-file-atomic-2.2.0.tgz#d625046f3495f1f5e372135f473909684b429247" - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - slide "^1.1.5" - -"@concordance/react@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@concordance/react/-/react-1.0.0.tgz#fcf3cad020e5121bfd1c61d05bc3516aac25f734" - dependencies: - arrify "^1.0.1" - -"@google-cloud/common@^0.16.0": - version "0.16.1" - resolved "https://registry.yarnpkg.com/@google-cloud/common/-/common-0.16.1.tgz#e1f9fc49553362997e1fbff737444f1b460ded78" - dependencies: - array-uniq "^1.0.3" - arrify "^1.0.1" - concat-stream "^1.6.0" - create-error-class "^3.0.2" - duplexify "^3.5.0" - ent "^2.2.0" - extend "^3.0.1" - google-auto-auth "^0.9.0" - is "^3.2.0" - log-driver "1.2.5" - methmeth "^1.1.0" - modelo "^4.2.0" - request "^2.79.0" - retry-request "^3.0.0" - split-array-stream "^1.0.0" - stream-events "^1.0.1" - string-format-obj "^1.1.0" - through2 "^2.0.3" - -"@google-cloud/nodejs-repo-tools@^2.0.11": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@google-cloud/nodejs-repo-tools/-/nodejs-repo-tools-2.2.1.tgz#bb4ad26a86897d84d4f4bd63b11daf7bd4361df7" - dependencies: - ava "0.25.0" - colors "1.1.2" - fs-extra "5.0.0" - got "8.2.0" - handlebars "4.0.11" - lodash "4.17.5" - nyc "11.4.1" - proxyquire "1.8.0" - sinon "4.3.0" - string "3.3.3" - supertest "3.0.0" - yargs "11.0.0" - yargs-parser "9.0.2" - -"@ladjs/time-require@^0.1.4": - version "0.1.4" - resolved "https://registry.yarnpkg.com/@ladjs/time-require/-/time-require-0.1.4.tgz#5c615d75fd647ddd5de9cf6922649558856b21a1" - dependencies: - chalk "^0.4.0" - date-time "^0.1.1" - pretty-ms "^0.2.1" - text-table "^0.2.0" - -"@sindresorhus/is@^0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" - -"@sinonjs/formatio@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-2.0.0.tgz#84db7e9eb5531df18a8c5e0bfb6e449e55e654b2" - dependencies: - samsam "1.3.0" - -"@types/accepts@*": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" - dependencies: - "@types/node" "*" - -"@types/body-parser@*": - version "1.16.8" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.16.8.tgz#687ec34140624a3bec2b1a8ea9268478ae8f3be3" - dependencies: - "@types/express" "*" - "@types/node" "*" - -"@types/boom@^4": - version "4.3.10" - resolved "https://registry.yarnpkg.com/@types/boom/-/boom-4.3.10.tgz#39dad8c0614c26b91ef016a57d7eee4ffe4f8a25" - -"@types/bunyan@*": - version "1.8.4" - resolved "https://registry.yarnpkg.com/@types/bunyan/-/bunyan-1.8.4.tgz#69c11adc7b50538d45fb68d9ae39d062b9432f38" - dependencies: - "@types/events" "*" - "@types/node" "*" - -"@types/caseless@*": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.1.tgz#9794c69c8385d0192acc471a540d1f8e0d16218a" - -"@types/catbox@^7": - version "7.1.6" - resolved "https://registry.yarnpkg.com/@types/catbox/-/catbox-7.1.6.tgz#be44e3cf3137b4c7997998ec60628709d5db904a" - dependencies: - "@types/boom" "^4" - -"@types/connect@*": - version "3.4.31" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.31.tgz#1f92d6b117ecc05076c49ecd024f7976e528bad9" - dependencies: - "@types/node" "*" - -"@types/cookies@*": - version "0.7.1" - resolved "https://registry.yarnpkg.com/@types/cookies/-/cookies-0.7.1.tgz#f9f204bd6767d389eea3b87609e30c090c77a540" - dependencies: - "@types/connect" "*" - "@types/express" "*" - "@types/keygrip" "*" - "@types/node" "*" - -"@types/events@*": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@types/events/-/events-1.2.0.tgz#81a6731ce4df43619e5c8c945383b3e62a89ea86" - -"@types/express-serve-static-core@*": - version "4.11.1" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.11.1.tgz#f6f7212382d59b19d696677bcaa48a37280f5d45" - dependencies: - "@types/events" "*" - "@types/node" "*" - -"@types/express@*", "@types/express@^4.11.0": - version "4.11.1" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.11.1.tgz#f99663b3ab32d04cb11db612ef5dd7933f75465b" - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "*" - "@types/serve-static" "*" - -"@types/form-data@*": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@types/form-data/-/form-data-2.2.1.tgz#ee2b3b8eaa11c0938289953606b745b738c54b1e" - dependencies: - "@types/node" "*" - -"@types/glob@*", "@types/glob@^5.0.35": - version "5.0.35" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-5.0.35.tgz#1ae151c802cece940443b5ac246925c85189f32a" - dependencies: - "@types/events" "*" - "@types/minimatch" "*" - "@types/node" "*" - -"@types/hapi@^16.1.11": - version "16.1.14" - resolved "https://registry.yarnpkg.com/@types/hapi/-/hapi-16.1.14.tgz#cdda84296fc08c02526301f88964fa74ab9090a6" - dependencies: - "@types/boom" "^4" - "@types/catbox" "^7" - "@types/events" "*" - "@types/joi" "*" - "@types/mimos" "*" - "@types/node" "*" - "@types/podium" "*" - "@types/shot" "*" - -"@types/http-assert@*": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@types/http-assert/-/http-assert-1.2.2.tgz#17dfe5a82184a8898935d96fe2eaedd37d22d9a4" - -"@types/is@0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@types/is/-/is-0.0.18.tgz#7d0c575f935109be88c47dc0ea3c5075f81cf3c7" - -"@types/joi@*": - version "13.0.5" - resolved "https://registry.yarnpkg.com/@types/joi/-/joi-13.0.5.tgz#50829402204e8fec8ee287eeb37d79fbff34913c" - -"@types/keygrip@*": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.1.tgz#ff540462d2fb4d0a88441ceaf27d287b01c3d878" - -"@types/koa-compose@*": - version "3.2.2" - resolved "https://registry.yarnpkg.com/@types/koa-compose/-/koa-compose-3.2.2.tgz#dc106e000bbf92a3ac900f756df47344887ee847" - -"@types/koa@^2.0.43": - version "2.0.44" - resolved "https://registry.yarnpkg.com/@types/koa/-/koa-2.0.44.tgz#4d972a3dec4d6eb89bd3c16775de26305d1c51a6" - dependencies: - "@types/accepts" "*" - "@types/cookies" "*" - "@types/events" "*" - "@types/http-assert" "*" - "@types/keygrip" "*" - "@types/koa-compose" "*" - "@types/node" "*" - -"@types/lodash.has@^4.5.3": - version "4.5.3" - resolved "https://registry.yarnpkg.com/@types/lodash.has/-/lodash.has-4.5.3.tgz#79f219a63493454350d860b1e905dfe5d9b1d1e3" - dependencies: - "@types/lodash" "*" - -"@types/lodash@*": - version "4.14.104" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.104.tgz#53ee2357fa2e6e68379341d92eb2ecea4b11bb80" - -"@types/mime-db@*": - version "1.27.0" - resolved "https://registry.yarnpkg.com/@types/mime-db/-/mime-db-1.27.0.tgz#9bc014a1fd1fdf47649c1a54c6dd7966b8284792" - -"@types/mime@*": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.0.tgz#5a7306e367c539b9f6543499de8dd519fac37a8b" - -"@types/mimos@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/mimos/-/mimos-3.0.1.tgz#59d96abe1c9e487e7463fe41e8d86d76b57a441a" - dependencies: - "@types/mime-db" "*" - -"@types/minimatch@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - -"@types/mocha@^2.2.45": - version "2.2.48" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-2.2.48.tgz#3523b126a0b049482e1c3c11877460f76622ffab" - -"@types/ncp@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/ncp/-/ncp-2.0.1.tgz#749432511f6ad747d04e98837b18cca9045567fb" - dependencies: - "@types/node" "*" - -"@types/node@*", "@types/node@^9.4.0": - version "9.4.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-9.4.7.tgz#57d81cd98719df2c9de118f2d5f3b1120dcd7275" - -"@types/once@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@types/once/-/once-1.4.0.tgz#7bfe3d99a0951f3141bac2617c9827525788b8f5" - -"@types/pify@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/pify/-/pify-3.0.1.tgz#6c45127d0279a9518b0ef48971ec95b91dcb5f47" - -"@types/podium@*": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/podium/-/podium-1.0.0.tgz#bfaa2151be2b1d6109cc69f7faa9dac2cba3bb20" - -"@types/request@^2.0.9": - version "2.47.0" - resolved "https://registry.yarnpkg.com/@types/request/-/request-2.47.0.tgz#76a666cee4cb85dcffea6cd4645227926d9e114e" - dependencies: - "@types/caseless" "*" - "@types/form-data" "*" - "@types/node" "*" - "@types/tough-cookie" "*" - -"@types/restify@^5.0.6": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@types/restify/-/restify-5.0.7.tgz#09b736ad96af04814f9501b7b50e84dabcd77228" - dependencies: - "@types/bunyan" "*" - "@types/node" "*" - "@types/spdy" "*" - -"@types/rimraf@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-2.0.2.tgz#7f0fc3cf0ff0ad2a99bb723ae1764f30acaf8b6e" - dependencies: - "@types/glob" "*" - "@types/node" "*" - -"@types/serve-static@*": - version "1.13.1" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.1.tgz#1d2801fa635d274cd97d4ec07e26b21b44127492" - dependencies: - "@types/express-serve-static-core" "*" - "@types/mime" "*" - -"@types/shot@*": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@types/shot/-/shot-3.4.0.tgz#459477c5187d3ebd303660ab099e7e9e0f3b656f" - dependencies: - "@types/node" "*" - -"@types/spdy@*": - version "3.4.4" - resolved "https://registry.yarnpkg.com/@types/spdy/-/spdy-3.4.4.tgz#3282fd4ad8c4603aa49f7017dd520a08a345b2bc" - dependencies: - "@types/node" "*" - -"@types/tmp@0.0.33": - version "0.0.33" - resolved "https://registry.yarnpkg.com/@types/tmp/-/tmp-0.0.33.tgz#1073c4bc824754ae3d10cfab88ab0237ba964e4d" - -"@types/tough-cookie@*": - version "2.3.2" - resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-2.3.2.tgz#e0d481d8bb282ad8a8c9e100ceb72c995fb5e709" - -JSV@^4.0.x: - version "4.0.2" - resolved "https://registry.yarnpkg.com/JSV/-/JSV-4.0.2.tgz#d077f6825571f82132f9dffaed587b4029feff57" - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - -accept@3.x.x: - version "3.0.2" - resolved "https://registry.yarnpkg.com/accept/-/accept-3.0.2.tgz#83e41cec7e1149f3fd474880423873db6c6cc9ac" - dependencies: - boom "7.x.x" - hoek "5.x.x" - -accepts@^1.2.2, accepts@~1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" - dependencies: - mime-types "~2.1.18" - negotiator "0.6.1" - -acorn-es7-plugin@^1.0.10, acorn-es7-plugin@^1.0.12: - version "1.1.7" - resolved "https://registry.yarnpkg.com/acorn-es7-plugin/-/acorn-es7-plugin-1.1.7.tgz#f2ee1f3228a90eead1245f9ab1922eb2e71d336b" - -acorn-jsx@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" - dependencies: - acorn "^3.0.4" - -acorn@^3.0.4: - version "3.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" - -acorn@^4.0.0: - version "4.0.13" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" - -acorn@^5.0.0, acorn@^5.5.0: - version "5.5.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" - -ajv-keywords@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" - -ajv@^4.9.1: - version "4.11.8" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" - dependencies: - co "^4.6.0" - json-stable-stringify "^1.0.1" - -ajv@^5.1.0, ajv@^5.2.3, ajv@^5.3.0: - version "5.5.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" - dependencies: - co "^4.6.0" - fast-deep-equal "^1.0.0" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" - -align-text@^0.1.1, align-text@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" - dependencies: - kind-of "^3.0.2" - longest "^1.0.1" - repeat-string "^1.5.2" - -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - -ammo@3.x.x: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ammo/-/ammo-3.0.0.tgz#30f322f70a0904eaee1788f4d26c5be1d72da181" - dependencies: - boom "6.x.x" - hoek "5.x.x" - -ansi-align@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" - dependencies: - string-width "^2.0.0" - -ansi-escapes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - -ansi-styles@^3.1.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - dependencies: - color-convert "^1.9.0" - -ansi-styles@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" - -any-promise@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" - -anymatch@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" - dependencies: - micromatch "^2.1.5" - normalize-path "^2.0.0" - -append-transform@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" - dependencies: - default-require-extensions "^1.0.0" - -aproba@^1.0.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - -archy@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" - -are-we-there-yet@~1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -argparse@^1.0.2, argparse@^1.0.7, argparse@^1.0.9: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - dependencies: - sprintf-js "~1.0.2" - -argv@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/argv/-/argv-0.0.2.tgz#ecbd16f8949b157183711b1bda334f37840185ab" - -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - dependencies: - arr-flatten "^1.0.1" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - -arr-exclude@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/arr-exclude/-/arr-exclude-1.0.0.tgz#dfc7c2e552a270723ccda04cf3128c8cbfe5c631" - -arr-flatten@^1.0.1, arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - -array-differ@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" - -array-filter@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83" - -array-find-index@^1.0.1, array-find-index@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - -array-find@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-find/-/array-find-1.0.0.tgz#6c8e286d11ed768327f8e62ecee87353ca3e78b8" - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1, array-uniq@^1.0.2, array-uniq@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - -arrify@^1.0.0, arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - -asn1@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - -assert-plus@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" - -assertion-error@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - -async-each@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" - -async@0.2.x, async@~0.2.9: - version "0.2.10" - resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" - -async@^1.4.0, async@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - -async@^2.3.0, async@^2.4.0, async@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" - dependencies: - lodash "^4.14.0" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - -atob@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.0.3.tgz#19c7a760473774468f20b2d2d03372ad7d4cbf5d" - -auto-bind@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/auto-bind/-/auto-bind-1.2.0.tgz#8b7e318aad53d43ba8a8ecaf0066d85d5f798cd6" - -ava-init@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/ava-init/-/ava-init-0.2.1.tgz#75ac4c8553326290d2866e63b62fa7035684bd58" - dependencies: - arr-exclude "^1.0.0" - execa "^0.7.0" - has-yarn "^1.0.0" - read-pkg-up "^2.0.0" - write-pkg "^3.1.0" - -ava@0.25.0: - version "0.25.0" - resolved "https://registry.yarnpkg.com/ava/-/ava-0.25.0.tgz#8ac87780514f96a6fd42e1306eaa0752ce3a407f" - dependencies: - "@ava/babel-preset-stage-4" "^1.1.0" - "@ava/babel-preset-transform-test-files" "^3.0.0" - "@ava/write-file-atomic" "^2.2.0" - "@concordance/react" "^1.0.0" - "@ladjs/time-require" "^0.1.4" - ansi-escapes "^3.0.0" - ansi-styles "^3.1.0" - arr-flatten "^1.0.1" - array-union "^1.0.1" - array-uniq "^1.0.2" - arrify "^1.0.0" - auto-bind "^1.1.0" - ava-init "^0.2.0" - babel-core "^6.17.0" - babel-generator "^6.26.0" - babel-plugin-syntax-object-rest-spread "^6.13.0" - bluebird "^3.0.0" - caching-transform "^1.0.0" - chalk "^2.0.1" - chokidar "^1.4.2" - clean-stack "^1.1.1" - clean-yaml-object "^0.1.0" - cli-cursor "^2.1.0" - cli-spinners "^1.0.0" - cli-truncate "^1.0.0" - co-with-promise "^4.6.0" - code-excerpt "^2.1.1" - common-path-prefix "^1.0.0" - concordance "^3.0.0" - convert-source-map "^1.5.1" - core-assert "^0.2.0" - currently-unhandled "^0.4.1" - debug "^3.0.1" - dot-prop "^4.1.0" - empower-core "^0.6.1" - equal-length "^1.0.0" - figures "^2.0.0" - find-cache-dir "^1.0.0" - fn-name "^2.0.0" - get-port "^3.0.0" - globby "^6.0.0" - has-flag "^2.0.0" - hullabaloo-config-manager "^1.1.0" - ignore-by-default "^1.0.0" - import-local "^0.1.1" - indent-string "^3.0.0" - is-ci "^1.0.7" - is-generator-fn "^1.0.0" - is-obj "^1.0.0" - is-observable "^1.0.0" - is-promise "^2.1.0" - last-line-stream "^1.0.0" - lodash.clonedeepwith "^4.5.0" - lodash.debounce "^4.0.3" - lodash.difference "^4.3.0" - lodash.flatten "^4.2.0" - loud-rejection "^1.2.0" - make-dir "^1.0.0" - matcher "^1.0.0" - md5-hex "^2.0.0" - meow "^3.7.0" - ms "^2.0.0" - multimatch "^2.1.0" - observable-to-promise "^0.5.0" - option-chain "^1.0.0" - package-hash "^2.0.0" - pkg-conf "^2.0.0" - plur "^2.0.0" - pretty-ms "^3.0.0" - require-precompiled "^0.1.0" - resolve-cwd "^2.0.0" - safe-buffer "^5.1.1" - semver "^5.4.1" - slash "^1.0.0" - source-map-support "^0.5.0" - stack-utils "^1.0.1" - strip-ansi "^4.0.0" - strip-bom-buf "^1.0.0" - supertap "^1.0.0" - supports-color "^5.0.0" - trim-off-newlines "^1.0.1" - unique-temp-dir "^1.0.0" - update-notifier "^2.3.0" - -aws-sign2@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - -aws4@^1.2.1, aws4@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" - -axios@^0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.0.tgz#32d53e4851efdc0a11993b6cd000789d70c05102" - dependencies: - follow-redirects "^1.3.0" - is-buffer "^1.1.5" - -b64@4.x.x: - version "4.0.0" - resolved "https://registry.yarnpkg.com/b64/-/b64-4.0.0.tgz#c37f587f0a383c7019e821120e8c3f58f0d22772" - -babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@^6.17.0, babel-core@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.0" - debug "^2.6.8" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.7" - slash "^1.0.0" - source-map "^0.5.6" - -babel-generator@^6.1.0, babel-generator@^6.18.0, babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" - dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-check-es2015-constants@^6.8.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-espower@^2.3.2: - version "2.4.0" - resolved "https://registry.yarnpkg.com/babel-plugin-espower/-/babel-plugin-espower-2.4.0.tgz#9f92c080e9adfe73f69baed7ab3e24f649009373" - dependencies: - babel-generator "^6.1.0" - babylon "^6.1.0" - call-matcher "^1.0.0" - core-js "^2.0.0" - espower-location-detector "^1.0.0" - espurify "^1.6.0" - estraverse "^4.1.1" - -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" - -babel-plugin-syntax-object-rest-spread@^6.13.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" - -babel-plugin-syntax-trailing-function-commas@^6.20.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" - -babel-plugin-transform-async-to-generator@^6.16.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-destructuring@^6.19.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.9.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.18.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-es2015-parameters@^6.21.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-spread@^6.8.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-sticky-regex@^6.8.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-unicode-regex@^6.11.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-exponentiation-operator@^6.8.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" - dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@^6.22.0, babel-runtime@^6.26.0, babel-runtime@^6.9.2: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.18.0, babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.18.0, babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babylon@7.0.0-beta.19: - version "7.0.0-beta.19" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.19.tgz#e928c7e807e970e0536b078ab3e0c48f9e052503" - -babylon@^6.1.0, babylon@^6.18.0, babylon@^6.8.1: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - -base64url@2.0.0, base64url@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/base64url/-/base64url-2.0.0.tgz#eac16e03ea1438eff9423d69baa36262ed1f70bb" - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -bcrypt-pbkdf@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" - dependencies: - tweetnacl "^0.14.3" - -big-time@2.x.x: - version "2.0.0" - resolved "https://registry.yarnpkg.com/big-time/-/big-time-2.0.0.tgz#70193b60faff72c96ed52331b555490e604d7ccc" - -binary-extensions@^1.0.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" - -block-stream@*: - version "0.0.9" - resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - dependencies: - inherits "~2.0.0" - -bluebird@^3.0.0, bluebird@~3.5.0: - version "3.5.1" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" - -body-parser@1.18.2, body-parser@^1.15.1: - version "1.18.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" - dependencies: - bytes "3.0.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.1" - http-errors "~1.6.2" - iconv-lite "0.4.19" - on-finished "~2.3.0" - qs "6.5.1" - raw-body "2.3.2" - type-is "~1.6.15" - -boom@2.x.x: - version "2.10.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" - dependencies: - hoek "2.x.x" - -boom@4.x.x: - version "4.3.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" - dependencies: - hoek "4.x.x" - -boom@5.x.x: - version "5.2.0" - resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" - dependencies: - hoek "4.x.x" - -boom@6.x.x: - version "6.0.0" - resolved "https://registry.yarnpkg.com/boom/-/boom-6.0.0.tgz#9b36c52a12afab3f0e55536131b7fd5021aad0cc" - dependencies: - hoek "5.x.x" - -boom@7.x.x: - version "7.2.0" - resolved "https://registry.yarnpkg.com/boom/-/boom-7.2.0.tgz#2bff24a55565767fde869ec808317eb10c48e966" - dependencies: - hoek "5.x.x" - -bounce@1.x.x: - version "1.2.0" - resolved "https://registry.yarnpkg.com/bounce/-/bounce-1.2.0.tgz#e3bac68c73fd256e38096551efc09f504873c8c8" - dependencies: - boom "7.x.x" - hoek "5.x.x" - -boxen@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" - dependencies: - ansi-align "^2.0.0" - camelcase "^4.0.0" - chalk "^2.0.1" - cli-boxes "^1.0.0" - string-width "^2.0.0" - term-size "^1.2.0" - widest-line "^2.0.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - -braces@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.1.tgz#7086c913b4e5a08dbe37ac0ee6a2500c4ba691bb" - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - define-property "^1.0.0" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - kind-of "^6.0.2" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -browser-stdout@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - -buf-compare@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/buf-compare/-/buf-compare-1.0.1.tgz#fef28da8b8113a0a0db4430b0b6467b69730b34a" - -buffer-equal-constant-time@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" - -builtin-modules@^1.0.0, builtin-modules@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - -builtins@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" - -bunyan@^1.8.12: - version "1.8.12" - resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.12.tgz#f150f0f6748abdd72aeae84f04403be2ef113797" - optionalDependencies: - dtrace-provider "~0.8" - moment "^2.10.6" - mv "~2" - safe-json-stringify "~1" - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cacheable-request@^2.1.1: - version "2.1.4" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" - dependencies: - clone-response "1.0.2" - get-stream "3.0.0" - http-cache-semantics "3.8.1" - keyv "3.0.0" - lowercase-keys "1.0.0" - normalize-url "2.0.1" - responselike "1.0.2" - -caching-transform@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-1.0.1.tgz#6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1" - dependencies: - md5-hex "^1.2.0" - mkdirp "^0.5.1" - write-file-atomic "^1.1.4" - -call-matcher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/call-matcher/-/call-matcher-1.0.1.tgz#5134d077984f712a54dad3cbf62de28dce416ca8" - dependencies: - core-js "^2.0.0" - deep-equal "^1.0.0" - espurify "^1.6.0" - estraverse "^4.0.0" - -call-signature@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/call-signature/-/call-signature-0.0.2.tgz#a84abc825a55ef4cb2b028bd74e205a65b9a4996" - -call@5.x.x: - version "5.0.1" - resolved "https://registry.yarnpkg.com/call/-/call-5.0.1.tgz#ac1b5c106d9edc2a17af2a4a4f74dd4f0c06e910" - dependencies: - boom "7.x.x" - hoek "5.x.x" - -caller-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" - dependencies: - callsites "^0.2.0" - -callsites@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" - -camelcase-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" - dependencies: - camelcase "^2.0.0" - map-obj "^1.0.0" - -camelcase-keys@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" - dependencies: - camelcase "^4.1.0" - map-obj "^2.0.0" - quick-lru "^1.0.0" - -camelcase@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - -camelcase@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - -camelcase@^4.0.0, camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - -capture-stack-trace@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - -catbox-memory@3.x.x: - version "3.1.1" - resolved "https://registry.yarnpkg.com/catbox-memory/-/catbox-memory-3.1.1.tgz#4f398835a3d8f5992c31ddee24378467498a9c9a" - dependencies: - big-time "2.x.x" - boom "7.x.x" - hoek "5.x.x" - -catbox@10.x.x: - version "10.0.2" - resolved "https://registry.yarnpkg.com/catbox/-/catbox-10.0.2.tgz#e6ac1f35102d1a9bd07915b82e508d12b50a8bfa" - dependencies: - boom "7.x.x" - bounce "1.x.x" - hoek "5.x.x" - joi "13.x.x" - -catharsis@~0.8.9: - version "0.8.9" - resolved "https://registry.yarnpkg.com/catharsis/-/catharsis-0.8.9.tgz#98cc890ca652dd2ef0e70b37925310ff9e90fc8b" - dependencies: - underscore-contrib "~0.3.0" - -center-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" - dependencies: - align-text "^0.1.3" - lazy-cache "^1.0.3" - -chai@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c" - dependencies: - assertion-error "^1.0.1" - check-error "^1.0.1" - deep-eql "^3.0.0" - get-func-name "^2.0.0" - pathval "^1.0.0" - type-detect "^4.0.0" - -chalk@^0.4.0, chalk@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" - dependencies: - ansi-styles "~1.0.0" - has-color "~0.1.0" - strip-ansi "~0.1.0" - -chalk@^1.1.3, chalk@~1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.2.tgz#250dc96b07491bfd601e648d66ddf5f60c7a5c65" - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chardet@^0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" - -check-error@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - -chokidar@^1.4.2: - version "1.7.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" - dependencies: - anymatch "^1.3.0" - async-each "^1.0.0" - glob-parent "^2.0.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^2.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - optionalDependencies: - fsevents "^1.0.0" - -ci-info@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.2.tgz#03561259db48d0474c8bdc90f5b47b068b6bbfb4" - -circular-json@^0.3.1: - version "0.3.3" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" - -clang-format@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/clang-format/-/clang-format-1.2.2.tgz#a7277a03fce9aa4e387ddaa83b60d99dab115737" - dependencies: - async "^1.5.2" - glob "^7.0.0" - resolve "^1.1.6" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -clean-stack@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-1.3.0.tgz#9e821501ae979986c46b1d66d2d432db2fd4ae31" - -clean-yaml-object@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz#63fb110dc2ce1a84dc21f6d9334876d010ae8b68" - -cli-boxes@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" - -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - dependencies: - restore-cursor "^2.0.0" - -cli-spinners@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.1.0.tgz#f1847b168844d917a671eb9d147e3df497c90d06" - -cli-table@~0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" - dependencies: - colors "1.0.3" - -cli-truncate@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-1.1.0.tgz#2b2dfd83c53cfd3572b87fc4d430a808afb04086" - dependencies: - slice-ansi "^1.0.0" - string-width "^2.0.0" - -cli-width@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" - -cli@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cli/-/cli-1.0.1.tgz#22817534f24bfa4950c34d532d48ecbc621b8c14" - dependencies: - exit "0.1.2" - glob "^7.1.1" - -cliui@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" - dependencies: - center-align "^0.1.1" - right-align "^0.1.1" - wordwrap "0.0.2" - -cliui@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.0.0.tgz#743d4650e05f36d1ed2575b59638d87322bfbbcc" - dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - wrap-ansi "^2.0.0" - -clone-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-regexp/-/clone-regexp-1.0.0.tgz#eae0a2413f55c0942f818c229fefce845d7f3b1c" - dependencies: - is-regexp "^1.0.0" - is-supported-regexp-flag "^1.0.0" - -clone-response@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - dependencies: - mimic-response "^1.0.0" - -co-with-promise@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co-with-promise/-/co-with-promise-4.6.0.tgz#413e7db6f5893a60b942cf492c4bec93db415ab7" - dependencies: - pinkie-promise "^1.0.0" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - -code-excerpt@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/code-excerpt/-/code-excerpt-2.1.1.tgz#5fe3057bfbb71a5f300f659ef2cc0a47651ba77c" - dependencies: - convert-to-spaces "^1.0.1" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - -codecov@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/codecov/-/codecov-3.0.0.tgz#c273b8c4f12945723e8dc9d25803d89343e5f28e" - dependencies: - argv "0.0.2" - request "2.81.0" - urlgrey "0.4.4" - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" - dependencies: - color-name "^1.1.1" - -color-name@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - -colors@0.6.x: - version "0.6.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-0.6.2.tgz#2423fe6678ac0c5dae8852e5d0e5be08c997abcc" - -colors@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" - -colors@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" - -combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" - dependencies: - delayed-stream "~1.0.0" - -commander@2.11.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" - -commander@^2.12.1: - version "2.15.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.0.tgz#ad2a23a1c3b036e392469b8012cec6b33b4c1322" - -commander@~2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" - dependencies: - graceful-readlink ">= 1.0.0" - -comment-parser@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-0.3.2.tgz#3c03f0776b86a36dfd9a0a2c97c6307f332082fe" - dependencies: - readable-stream "^2.0.4" - -common-path-prefix@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-1.0.0.tgz#cd52f6f0712e0baab97d6f9732874f22f47752c0" - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - -component-emitter@^1.2.0, component-emitter@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - -concat-stream@^1.6.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.1.tgz#261b8f518301f1d834e36342b9fea095d2620a26" - dependencies: - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -concordance@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/concordance/-/concordance-3.0.0.tgz#b2286af54405fc995fc7345b0b106d8dd073cb29" - dependencies: - date-time "^2.1.0" - esutils "^2.0.2" - fast-diff "^1.1.1" - function-name-support "^0.2.0" - js-string-escape "^1.0.1" - lodash.clonedeep "^4.5.0" - lodash.flattendeep "^4.4.0" - lodash.merge "^4.6.0" - md5-hex "^2.0.0" - semver "^5.3.0" - well-known-symbols "^1.0.0" - -configstore@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.1.tgz#094ee662ab83fad9917678de114faaea8fcdca90" - dependencies: - dot-prop "^4.1.0" - graceful-fs "^4.1.2" - make-dir "^1.0.0" - unique-string "^1.0.0" - write-file-atomic "^2.0.0" - xdg-basedir "^3.0.0" - -console-browserify@1.1.x: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - dependencies: - date-now "^0.1.4" - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - -content-disposition@0.5.2, content-disposition@~0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" - -content-type@^1.0.0, content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - -content@4.x.x: - version "4.0.4" - resolved "https://registry.yarnpkg.com/content/-/content-4.0.4.tgz#2941609c89593ed2e1504d72c9a28e9516f163e0" - dependencies: - boom "7.x.x" - -convert-source-map@^1.1.0, convert-source-map@^1.1.1, convert-source-map@^1.3.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" - -convert-to-spaces@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/convert-to-spaces/-/convert-to-spaces-1.0.2.tgz#7e3e48bbe6d997b1417ddca2868204b4d3d85715" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - -cookie@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" - -cookiejar@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.1.tgz#41ad57b1b555951ec171412a81942b1e8200d34a" - -cookies@~0.7.0: - version "0.7.1" - resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.7.1.tgz#7c8a615f5481c61ab9f16c833731bcb8f663b99b" - dependencies: - depd "~1.1.1" - keygrip "~1.0.2" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - -core-assert@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/core-assert/-/core-assert-0.2.1.tgz#f85e2cf9bfed28f773cc8b3fa5c5b69bdc02fe3f" - dependencies: - buf-compare "^1.0.0" - is-error "^2.2.0" - -core-js@^2.0.0, core-js@^2.4.0, core-js@^2.5.0: - version "2.5.3" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.3.tgz#8acc38345824f16d8365b7c9b4259168e8ed603e" - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - -cp-file@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-3.2.0.tgz#6f83616254624f0ad58aa4aa8d076f026be7e188" - dependencies: - graceful-fs "^4.1.2" - mkdirp "^0.5.0" - nested-error-stacks "^1.0.1" - object-assign "^4.0.1" - pify "^2.3.0" - pinkie-promise "^2.0.0" - readable-stream "^2.1.4" - -cpy-cli@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cpy-cli/-/cpy-cli-1.0.1.tgz#67fb5a4a2dec28ca8abff375de4b9e71f6a7561c" - dependencies: - cpy "^4.0.0" - meow "^3.6.0" - -cpy@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cpy/-/cpy-4.0.1.tgz#b67267eba2f3960ba06a5a61ac94033422833424" - dependencies: - cp-file "^3.1.0" - globby "^4.0.0" - meow "^3.6.0" - nested-error-stacks "^1.0.0" - object-assign "^4.0.1" - pinkie-promise "^2.0.0" - -create-error-class@^3.0.0, create-error-class@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" - dependencies: - capture-stack-trace "^1.0.0" - -cross-spawn@^4: - version "4.0.2" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" - dependencies: - lru-cache "^4.0.1" - which "^1.2.9" - -cross-spawn@^5.0.1, cross-spawn@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -cryptiles@2.x.x: - version "2.0.5" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" - dependencies: - boom "2.x.x" - -cryptiles@3.x.x: - version "3.1.2" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" - dependencies: - boom "5.x.x" - -cryptiles@4.x.x: - version "4.1.1" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-4.1.1.tgz#169256b9df9fe3c73f8085c99e30b32247d4ab46" - dependencies: - boom "7.x.x" - -crypto-random-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" - -cst@^0.4.3: - version "0.4.10" - resolved "https://registry.yarnpkg.com/cst/-/cst-0.4.10.tgz#9c05c825290a762f0a85c0aabb8c0fe035ae8516" - dependencies: - babel-runtime "^6.9.2" - babylon "^6.8.1" - source-map-support "^0.4.0" - -csv-generate@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/csv-generate/-/csv-generate-1.1.2.tgz#ec6b00edaed6e59ad9c20582f4c364e28b146240" - -csv-parse@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-1.3.3.tgz#d1cfd8743c2f849a0abb2fd544db56695d19a490" - -csv-stringify@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/csv-stringify/-/csv-stringify-1.1.2.tgz#77a41526581bce3380f12b00d7c5bbac70c82b58" - dependencies: - lodash.get "~4.4.2" - -csv@^1.1.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/csv/-/csv-1.2.1.tgz#5231edfc1c7152512ec45781076a7a97ff525c0c" - dependencies: - csv-generate "^1.1.2" - csv-parse "^1.3.3" - csv-stringify "^1.1.2" - stream-transform "^0.2.2" - -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - dependencies: - array-find-index "^1.0.1" - -cycle@1.0.x: - version "1.0.3" - resolved "https://registry.yarnpkg.com/cycle/-/cycle-1.0.3.tgz#21e80b2be8580f98b468f379430662b046c34ad2" - -d@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" - dependencies: - es5-ext "^0.10.9" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - dependencies: - assert-plus "^1.0.0" - -date-now@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" - -date-time@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/date-time/-/date-time-0.1.1.tgz#ed2f6d93d9790ce2fd66d5b5ff3edd5bbcbf3b07" - -date-time@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/date-time/-/date-time-2.1.0.tgz#0286d1b4c769633b3ca13e1e62558d2dbdc2eba2" - dependencies: - time-zone "^1.0.0" - -debug-log@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" - -debug@*, debug@3.1.0, debug@^3.0.1, debug@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - dependencies: - ms "2.0.0" - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - dependencies: - ms "2.0.0" - -decamelize-keys@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.0.0, decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - dependencies: - mimic-response "^1.0.0" - -deep-eql@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" - dependencies: - type-detect "^4.0.0" - -deep-equal@*, deep-equal@^1.0.0, deep-equal@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" - -deep-extend@~0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" - -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - -default-require-extensions@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" - dependencies: - strip-bom "^2.0.0" - -define-properties@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" - dependencies: - foreach "^2.0.5" - object-keys "^1.0.8" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -del@^2.0.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" - dependencies: - globby "^5.0.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - rimraf "^2.2.8" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - -depd@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" - -depd@^1.1.0, depd@~1.1.1, depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - -destroy@^1.0.3, destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - dependencies: - repeating "^2.0.0" - -detect-indent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" - -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - -detect-node@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127" - -diff-match-patch@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.0.tgz#1cc3c83a490d67f95d91e39f6ad1f2e086b63048" - -diff@3.5.0, diff@^3.1.0, diff@^3.2.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - dependencies: - esutils "^2.0.2" - -dom-serializer@0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" - dependencies: - domelementtype "~1.1.1" - entities "~1.1.1" - -domelementtype@1, domelementtype@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" - -domelementtype@~1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" - -domhandler@2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738" - dependencies: - domelementtype "1" - -domhandler@^2.3.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.1.tgz#892e47000a99be55bbf3774ffea0561d8879c259" - dependencies: - domelementtype "1" - -domutils@1.5: - version "1.5.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - dependencies: - dom-serializer "0" - domelementtype "1" - -domutils@^1.5.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - dependencies: - dom-serializer "0" - domelementtype "1" - -dot-prop@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" - dependencies: - is-obj "^1.0.0" - -dtrace-provider@^0.8.1, dtrace-provider@~0.8: - version "0.8.6" - resolved "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.8.6.tgz#428a223afe03425d2cd6d6347fdf40c66903563d" - dependencies: - nan "^2.3.3" - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - -duplexify@^3.5.0: - version "3.5.4" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.4.tgz#4bb46c1796eabebeec4ca9a2e66b808cb7a3d8b4" - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -eastasianwidth@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.1.1.tgz#44d656de9da415694467335365fb3147b8572b7c" - -ecc-jsbn@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" - dependencies: - jsbn "~0.1.0" - -ecdsa-sig-formatter@1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.9.tgz#4bc926274ec3b5abb5016e7e1d60921ac262b2a1" - dependencies: - base64url "^2.0.0" - safe-buffer "^5.0.1" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - -empower-assert@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/empower-assert/-/empower-assert-1.0.1.tgz#31e310abc065baa7c3a0487e6be5bbcc65f3c1de" - dependencies: - estraverse "^4.2.0" - -empower-core@^0.6.1, empower-core@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/empower-core/-/empower-core-0.6.2.tgz#5adef566088e31fba80ba0a36df47d7094169144" - dependencies: - call-signature "0.0.2" - core-js "^2.0.0" - -empower@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/empower/-/empower-1.2.3.tgz#6f0da73447f4edd838fec5c60313a88ba5cb852b" - dependencies: - core-js "^2.0.0" - empower-core "^0.6.2" - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - -end-of-stream@^1.0.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" - dependencies: - once "^1.4.0" - -ent@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" - -entities@1.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.0.0.tgz#b2987aa3821347fcde642b24fdfc9e4fb712bf26" - -entities@^1.1.1, entities@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" - -equal-length@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/equal-length/-/equal-length-1.0.1.tgz#21ca112d48ab24b4e1e7ffc0e5339d31fdfc274c" - -error-ex@^1.2.0, error-ex@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" - dependencies: - is-arrayish "^0.2.1" - -error-inject@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/error-inject/-/error-inject-1.0.0.tgz#e2b3d91b54aed672f309d950d154850fa11d4f37" - -es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: - version "0.10.40" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.40.tgz#ab3d2179b943008c5e9ef241beb25ef41424c774" - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.1" - -es6-error@^4.0.1, es6-error@^4.0.2: - version "4.1.1" - resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" - -es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-map@^0.1.3: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-set "~0.1.5" - es6-symbol "~3.1.1" - event-emitter "~0.3.5" - -es6-set@~0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-symbol "3.1.1" - event-emitter "~0.3.5" - -es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" - dependencies: - d "1" - es5-ext "~0.10.14" - -es6-weak-map@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" - dependencies: - d "1" - es5-ext "^0.10.14" - es6-iterator "^2.0.1" - es6-symbol "^3.1.1" - -escallmatch@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/escallmatch/-/escallmatch-1.5.0.tgz#50099d86e8091b092df8ddfbc3f9a6fb05a024d0" - dependencies: - call-matcher "^1.0.0" - esprima "^2.0.0" - -escape-html@~1.0.1, escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - -escape-regexp-component@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/escape-regexp-component/-/escape-regexp-component-1.0.2.tgz#9c63b6d0b25ff2a88c3adbd18c5b61acc3b9faa2" - -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.4, escape-string-regexp@^1.0.5, escape-string-regexp@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - -escodegen@^1.6.1, escodegen@^1.7.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.1.tgz#dbae17ef96c8e4bedb1356f4504fa4cc2f7cb7e2" - dependencies: - esprima "^3.1.3" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -escope@^3.3.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" - dependencies: - es6-map "^0.1.3" - es6-weak-map "^2.0.1" - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-config-prettier@^2.6.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-2.9.0.tgz#5ecd65174d486c22dff389fe036febf502d468a3" - dependencies: - get-stdin "^5.0.1" - -eslint-plugin-node@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz#bf19642298064379315d7a4b2a75937376fa05e4" - dependencies: - ignore "^3.3.6" - minimatch "^3.0.4" - resolve "^1.3.3" - semver "^5.4.1" - -eslint-plugin-prettier@^2.3.1: - version "2.6.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.0.tgz#33e4e228bdb06142d03c560ce04ec23f6c767dd7" - dependencies: - fast-diff "^1.1.1" - jest-docblock "^21.0.0" - -eslint-scope@^3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-visitor-keys@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" - -eslint@^4.9.0: - version "4.18.2" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.18.2.tgz#0f81267ad1012e7d2051e186a9004cc2267b8d45" - dependencies: - ajv "^5.3.0" - babel-code-frame "^6.22.0" - chalk "^2.1.0" - concat-stream "^1.6.0" - cross-spawn "^5.1.0" - debug "^3.1.0" - doctrine "^2.1.0" - eslint-scope "^3.7.1" - eslint-visitor-keys "^1.0.0" - espree "^3.5.2" - esquery "^1.0.0" - esutils "^2.0.2" - file-entry-cache "^2.0.0" - functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^11.0.1" - ignore "^3.3.3" - imurmurhash "^0.1.4" - inquirer "^3.0.6" - is-resolvable "^1.0.0" - js-yaml "^3.9.1" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.4" - minimatch "^3.0.2" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.2" - pluralize "^7.0.0" - progress "^2.0.0" - require-uncached "^1.0.3" - semver "^5.3.0" - strip-ansi "^4.0.0" - strip-json-comments "~2.0.1" - table "4.0.2" - text-table "~0.2.0" - -espower-loader@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/espower-loader/-/espower-loader-1.2.2.tgz#edb46c3c59a06bac8ea73a695c86e5c5a0bc82da" - dependencies: - convert-source-map "^1.1.0" - espower-source "^2.0.0" - minimatch "^3.0.0" - source-map-support "^0.4.0" - xtend "^4.0.0" - -espower-location-detector@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/espower-location-detector/-/espower-location-detector-1.0.0.tgz#a17b7ecc59d30e179e2bef73fb4137704cb331b5" - dependencies: - is-url "^1.2.1" - path-is-absolute "^1.0.0" - source-map "^0.5.0" - xtend "^4.0.0" - -espower-source@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/espower-source/-/espower-source-2.2.0.tgz#7e005255ae47b5c136448644b3f3d802d503f752" - dependencies: - acorn "^5.0.0" - acorn-es7-plugin "^1.0.10" - convert-source-map "^1.1.1" - empower-assert "^1.0.0" - escodegen "^1.6.1" - espower "^2.0.0" - estraverse "^4.0.0" - merge-estraverse-visitors "^1.0.0" - multi-stage-sourcemap "^0.2.1" - path-is-absolute "^1.0.0" - xtend "^4.0.0" - -espower@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/espower/-/espower-2.1.0.tgz#ce1edb3d98702841fdf596d1cb8e85bdc4ae8e48" - dependencies: - array-find "^1.0.0" - escallmatch "^1.5.0" - escodegen "^1.7.0" - escope "^3.3.0" - espower-location-detector "^1.0.0" - espurify "^1.3.0" - estraverse "^4.1.0" - source-map "^0.5.0" - type-name "^2.0.0" - xtend "^4.0.0" - -espree@^3.5.2: - version "3.5.4" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" - dependencies: - acorn "^5.5.0" - acorn-jsx "^3.0.0" - -esprima@^2.0.0, esprima@^2.6.0: - version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" - -esprima@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - -esprima@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" - -espurify@^1.3.0, espurify@^1.6.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/espurify/-/espurify-1.7.0.tgz#1c5cf6cbccc32e6f639380bd4f991fab9ba9d226" - dependencies: - core-js "^2.0.0" - -esquery@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" - dependencies: - estraverse "^4.0.0" - -esrecurse@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - dependencies: - estraverse "^4.1.0" - -estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - -esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - -event-emitter@~0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" - dependencies: - d "1" - es5-ext "~0.10.14" - -ewma@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/ewma/-/ewma-2.0.1.tgz#9876c1c491ac5733c8666001a3961a04c97cf1e8" - dependencies: - assert-plus "^1.0.0" - -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -exit@0.1.2, exit@0.1.x, exit@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - dependencies: - is-posix-bracket "^0.1.0" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - dependencies: - fill-range "^2.1.0" - -express@^4.13.4: - version "4.16.3" - resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" - dependencies: - accepts "~1.3.5" - array-flatten "1.1.1" - body-parser "1.18.2" - content-disposition "0.5.2" - content-type "~1.0.4" - cookie "0.3.1" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.1.1" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.2" - path-to-regexp "0.1.7" - proxy-addr "~2.0.3" - qs "6.5.1" - range-parser "~1.2.0" - safe-buffer "5.1.1" - send "0.16.2" - serve-static "1.13.2" - setprototypeof "1.1.0" - statuses "~1.4.0" - type-is "~1.6.16" - utils-merge "1.0.1" - vary "~1.1.2" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@^3.0.0, extend@^3.0.1, extend@~3.0.0, extend@~3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" - -external-editor@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.1.0.tgz#3d026a21b7f95b5726387d4200ac160d372c3b48" - dependencies: - chardet "^0.4.0" - iconv-lite "^0.4.17" - tmp "^0.0.33" - -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - dependencies: - is-extglob "^1.0.0" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - 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.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extsprintf@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.2.0.tgz#5ad946c22f5b32ba7f8cd7426711c6e8a3fc2529" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - -eyes@0.1.x: - version "0.1.8" - resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" - -fast-deep-equal@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" - -fast-diff@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154" - -fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - -fast-levenshtein@~2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" - dependencies: - flat-cache "^1.2.1" - object-assign "^4.0.1" - -filename-regex@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" - -fill-keys@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/fill-keys/-/fill-keys-1.0.2.tgz#9a8fa36f4e8ad634e3bf6b4f3c8882551452eb20" - dependencies: - is-object "~1.0.1" - merge-descriptors "~1.0.0" - -fill-range@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^1.1.3" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -finalhandler@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.2" - statuses "~1.4.0" - unpipe "~1.0.0" - -find-cache-dir@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" - dependencies: - commondir "^1.0.1" - mkdirp "^0.5.1" - pkg-dir "^1.0.0" - -find-cache-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" - dependencies: - commondir "^1.0.1" - make-dir "^1.0.0" - pkg-dir "^2.0.0" - -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -find-up@^2.0.0, find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - dependencies: - locate-path "^2.0.0" - -flat-cache@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" - dependencies: - circular-json "^0.3.1" - del "^2.0.2" - graceful-fs "^4.1.2" - write "^0.2.1" - -fn-name@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fn-name/-/fn-name-2.0.1.tgz#5214d7537a4d06a4a301c0cc262feb84188002e7" - -follow-redirects@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.4.1.tgz#d8120f4518190f55aac65bb6fc7b85fcd666d6aa" - dependencies: - debug "^3.1.0" - -for-in@^1.0.1, for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - -for-own@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" - dependencies: - for-in "^1.0.1" - -foreach@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" - -foreground-child@^1.5.3, foreground-child@^1.5.6: - version "1.5.6" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9" - dependencies: - cross-spawn "^4" - signal-exit "^3.0.0" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - -form-data@^2.3.1, form-data@~2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" - dependencies: - asynckit "^0.4.0" - combined-stream "1.0.6" - mime-types "^2.1.12" - -form-data@~2.1.1: - version "2.1.4" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.12" - -formidable@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.0.tgz#ce291bfec67c176e282f891ece2c37de0c83ae84" - -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2, fresh@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - -from2@^2.1.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-extra@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - -fsevents@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" - dependencies: - nan "^2.3.0" - node-pre-gyp "^0.6.39" - -fstream-ignore@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" - dependencies: - fstream "^1.0.0" - inherits "2" - minimatch "^3.0.0" - -fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: - version "1.0.11" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - -function-name-support@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/function-name-support/-/function-name-support-0.2.0.tgz#55d3bfaa6eafd505a50f9bc81fdf57564a0bb071" - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -gcp-metadata@^0.6.0, gcp-metadata@^0.6.1: - version "0.6.3" - resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-0.6.3.tgz#4550c08859c528b370459bd77a7187ea0bdbc4ab" - dependencies: - axios "^0.18.0" - extend "^3.0.1" - retry-axios "0.3.2" - -get-caller-file@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" - -get-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - -get-port@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" - -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" - -get-stdin@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" - -get-stream@3.0.0, get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - dependencies: - assert-plus "^1.0.0" - -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - dependencies: - is-glob "^2.0.0" - -glob@7.1.2, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1, glob@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^5.0.1: - version "5.0.15" - resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "2 || 3" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^6.0.1: - version "6.0.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "2 || 3" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-dirs@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" - dependencies: - ini "^1.3.4" - -globals@^11.0.1: - version "11.3.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.3.0.tgz#e04fdb7b9796d8adac9c8f64c14837b2313378b0" - -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - -globby@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-4.1.0.tgz#080f54549ec1b82a6c60e631fc82e1211dbe95f8" - dependencies: - array-union "^1.0.1" - arrify "^1.0.0" - glob "^6.0.1" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -globby@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" - dependencies: - array-union "^1.0.1" - arrify "^1.0.0" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -globby@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -google-auth-library@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-1.3.1.tgz#a0456166c9538ee062c51b8e70765a5a0e13e757" - dependencies: - axios "^0.18.0" - gcp-metadata "^0.6.0" - gtoken "^2.1.0" - jws "^3.1.4" - lodash.isstring "^4.0.1" - lru-cache "^4.1.1" - retry-axios "^0.3.2" - -google-auto-auth@^0.9.0: - version "0.9.7" - resolved "https://registry.yarnpkg.com/google-auto-auth/-/google-auto-auth-0.9.7.tgz#70b357ec9ec8e2368cf89a659309a15a1472596b" - dependencies: - async "^2.3.0" - gcp-metadata "^0.6.1" - google-auth-library "^1.3.1" - request "^2.79.0" - -google-p12-pem@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-1.0.2.tgz#c8a3843504012283a0dbffc7430b7c753ecd4b07" - dependencies: - node-forge "^0.7.4" - pify "^3.0.0" - -got@8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/got/-/got-8.2.0.tgz#0d11a071d05046348a2f5c0a5fa047fb687fdfc6" - dependencies: - "@sindresorhus/is" "^0.7.0" - cacheable-request "^2.1.1" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - into-stream "^3.1.0" - is-retry-allowed "^1.1.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - mimic-response "^1.0.0" - p-cancelable "^0.3.0" - p-timeout "^2.0.1" - pify "^3.0.0" - safe-buffer "^5.1.1" - timed-out "^4.0.1" - url-parse-lax "^3.0.0" - url-to-options "^1.0.1" - -got@^6.7.1: - version "6.7.1" - resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" - dependencies: - create-error-class "^3.0.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-redirect "^1.0.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - lowercase-keys "^1.0.0" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - unzip-response "^2.0.1" - url-parse-lax "^1.0.0" - -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: - version "4.1.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" - -"graceful-readlink@>= 1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" - -growl@1.10.3: - version "1.10.3" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.3.tgz#1926ba90cf3edfe2adb4927f5880bc22c66c790f" - -gtoken@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-2.1.1.tgz#8a76e70bdb78c284c582b01deb8354de4b4bab98" - dependencies: - axios "^0.18.0" - google-p12-pem "^1.0.0" - jws "^3.1.4" - mime "^2.2.0" - pify "^3.0.0" - -gts@^0.5.3: - version "0.5.4" - resolved "https://registry.yarnpkg.com/gts/-/gts-0.5.4.tgz#40a8dfa53f019cac2c03f59da8d2a2608319a0bf" - dependencies: - chalk "^2.3.0" - clang-format "1.2.2" - inquirer "^3.2.1" - meow "^4.0.0" - pify "^3.0.0" - rimraf "^2.6.1" - tslint "^5.8.0" - update-notifier "^2.2.0" - write-file-atomic "^2.1.0" - -handle-thing@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" - -handlebars@4.0.11, handlebars@^4.0.3: - version "4.0.11" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc" - dependencies: - async "^1.4.0" - optimist "^0.6.1" - source-map "^0.4.4" - optionalDependencies: - uglify-js "^2.6" - -hapi@^17.1.1: - version "17.2.2" - resolved "https://registry.yarnpkg.com/hapi/-/hapi-17.2.2.tgz#c6c882d698a1a2a2a20e74a0b9f604cf10aac5a5" - dependencies: - accept "3.x.x" - ammo "3.x.x" - boom "7.x.x" - bounce "1.x.x" - call "5.x.x" - catbox "10.x.x" - catbox-memory "3.x.x" - heavy "6.x.x" - hoek "5.x.x" - joi "13.x.x" - mimos "4.x.x" - podium "3.x.x" - shot "4.x.x" - statehood "6.x.x" - subtext "6.x.x" - teamwork "3.x.x" - topo "3.x.x" - -har-schema@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - -har-validator@~4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" - dependencies: - ajv "^4.9.1" - har-schema "^1.0.5" - -har-validator@~5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" - dependencies: - ajv "^5.1.0" - har-schema "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - dependencies: - ansi-regex "^2.0.0" - -has-color@~0.1.0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - -has-flag@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - -has-symbol-support-x@^1.4.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" - -has-to-string-tag-x@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" - dependencies: - has-symbol-support-x "^1.4.1" - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has-yarn@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-1.0.0.tgz#89e25db604b725c8f5976fff0addc921b828a5a7" - -hawk@3.1.3, hawk@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" - dependencies: - boom "2.x.x" - cryptiles "2.x.x" - hoek "2.x.x" - sntp "1.x.x" - -hawk@~6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" - dependencies: - boom "4.x.x" - cryptiles "3.x.x" - hoek "4.x.x" - sntp "2.x.x" - -he@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" - -heavy@6.x.x: - version "6.1.0" - resolved "https://registry.yarnpkg.com/heavy/-/heavy-6.1.0.tgz#1bbfa43dc61dd4b543ede3ff87db8306b7967274" - dependencies: - boom "7.x.x" - hoek "5.x.x" - joi "13.x.x" - -hoek@2.x.x: - version "2.16.3" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" - -hoek@4.x.x: - version "4.2.1" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" - -hoek@5.x.x: - version "5.0.3" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-5.0.3.tgz#b71d40d943d0a95da01956b547f83c4a5b4a34ac" - -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - -hosted-git-info@^2.1.4, hosted-git-info@^2.5.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222" - -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -htmlparser2@3.8.3, htmlparser2@3.8.x: - version "3.8.3" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.8.3.tgz#996c28b191516a8be86501a7d79757e5c70c1068" - dependencies: - domelementtype "1" - domhandler "2.3" - domutils "1.5" - entities "1.0" - readable-stream "1.1" - -htmlparser2@^3.9.0: - version "3.9.2" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" - dependencies: - domelementtype "^1.3.0" - domhandler "^2.3.0" - domutils "^1.5.1" - entities "^1.1.1" - inherits "^2.0.1" - readable-stream "^2.0.2" - -http-assert@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.3.0.tgz#a31a5cf88c873ecbb5796907d4d6f132e8c01e4a" - dependencies: - deep-equal "~1.0.1" - http-errors "~1.6.1" - -http-cache-semantics@3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - -http-errors@1.6.2, http-errors@^1.2.8, http-errors@~1.6.1, http-errors@~1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" - dependencies: - depd "1.1.1" - inherits "2.0.3" - setprototypeof "1.0.3" - statuses ">= 1.3.1 < 2" - -http-signature@^1.2.0, http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -http-signature@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" - dependencies: - assert-plus "^0.2.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -hullabaloo-config-manager@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/hullabaloo-config-manager/-/hullabaloo-config-manager-1.1.1.tgz#1d9117813129ad035fd9e8477eaf066911269fe3" - dependencies: - dot-prop "^4.1.0" - es6-error "^4.0.2" - graceful-fs "^4.1.11" - indent-string "^3.1.0" - json5 "^0.5.1" - lodash.clonedeep "^4.5.0" - lodash.clonedeepwith "^4.5.0" - lodash.isequal "^4.5.0" - lodash.merge "^4.6.0" - md5-hex "^2.0.0" - package-hash "^2.0.0" - pkg-dir "^2.0.0" - resolve-from "^3.0.0" - safe-buffer "^5.0.1" - -i@0.3.x: - version "0.3.6" - resolved "https://registry.yarnpkg.com/i/-/i-0.3.6.tgz#d96c92732076f072711b6b10fd7d4f65ad8ee23d" - -iconv-lite@0.4.19, iconv-lite@^0.4.17: - version "0.4.19" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" - -ignore-by-default@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" - -ignore@^3.3.3, ignore@^3.3.6: - version "3.3.7" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021" - -import-lazy@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" - -import-local@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-0.1.1.tgz#b1179572aacdc11c6a91009fb430dbcab5f668a8" - dependencies: - pkg-dir "^2.0.0" - resolve-cwd "^2.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - -indent-string@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" - dependencies: - repeating "^2.0.0" - -indent-string@^3.0.0, indent-string@^3.1.0, indent-string@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" - -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - dependencies: - once "^1.3.0" - wrappy "1" - -inherit@^2.2.2: - version "2.2.6" - resolved "https://registry.yarnpkg.com/inherit/-/inherit-2.2.6.tgz#f1614b06c8544e8128e4229c86347db73ad9788d" - -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - -ini@^1.3.4, ini@~1.3.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - -ink-docstrap@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/ink-docstrap/-/ink-docstrap-1.3.2.tgz#5923dc48c41c9bccb3a524d10f5924d343448900" - dependencies: - moment "^2.14.1" - sanitize-html "^1.13.0" - -inquirer@^3.0.6, inquirer@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" - dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.0" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^2.0.4" - figures "^2.0.0" - lodash "^4.3.0" - mute-stream "0.0.7" - run-async "^2.2.0" - rx-lite "^4.0.8" - rx-lite-aggregates "^4.0.8" - string-width "^2.1.0" - strip-ansi "^4.0.0" - through "^2.3.6" - -intelli-espower-loader@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/intelli-espower-loader/-/intelli-espower-loader-1.0.1.tgz#2c7b03146bc1d46bf210d0a0397c5c91ab4ca2b0" - dependencies: - espower-loader "^1.0.0" - -into-stream@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" - dependencies: - from2 "^2.1.1" - p-is-promise "^1.1.0" - -invariant@^2.2.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.3.tgz#1a827dfde7dcbd7c323f0ca826be8fa7c5e9d688" - dependencies: - loose-envify "^1.0.0" - -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - -ipaddr.js@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b" - -iron@5.x.x: - version "5.0.4" - resolved "https://registry.yarnpkg.com/iron/-/iron-5.0.4.tgz#003ed822f656f07c2b62762815f5de3947326867" - dependencies: - boom "7.x.x" - cryptiles "4.x.x" - hoek "5.x.x" - -irregular-plurals@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-1.4.0.tgz#2ca9b033651111855412f16be5d77c62a458a766" - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - dependencies: - kind-of "^6.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - dependencies: - binary-extensions "^1.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" - dependencies: - builtin-modules "^1.0.0" - -is-ci@^1.0.7: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.1.0.tgz#247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5" - dependencies: - ci-info "^1.0.0" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - dependencies: - kind-of "^6.0.0" - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-dotfile@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - dependencies: - is-primitive "^2.0.0" - -is-error@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-error/-/is-error-2.2.1.tgz#684a96d84076577c98f4cdb40c6d26a5123bf19c" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - -is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - -is-generator-fn@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a" - -is-generator-function@^1.0.3: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.7.tgz#d2132e529bb0000a7f80794d4bdf5cd5e5813522" - -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - dependencies: - is-extglob "^1.0.0" - -is-installed-globally@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" - dependencies: - global-dirs "^0.1.0" - is-path-inside "^1.0.0" - -is-npm@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" - -is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - dependencies: - kind-of "^3.0.2" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - dependencies: - kind-of "^3.0.2" - -is-number@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" - -is-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - -is-object@^1.0.1, is-object@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" - -is-observable@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-0.2.0.tgz#b361311d83c6e5d726cabf5e250b0237106f5ae2" - dependencies: - symbol-observable "^0.2.2" - -is-observable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" - dependencies: - symbol-observable "^1.1.0" - -is-odd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24" - dependencies: - is-number "^4.0.0" - -is-path-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" - -is-path-in-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" - dependencies: - is-path-inside "^1.0.0" - -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - dependencies: - path-is-inside "^1.0.1" - -is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - -is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - dependencies: - isobject "^3.0.1" - -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - -is-promise@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" - -is-redirect@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" - -is-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - -is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" - -is-stream-ended@^0.1.0: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-stream-ended/-/is-stream-ended-0.1.3.tgz#a0473b267c756635486beedc7e3344e549d152ac" - -is-stream@^1.0.0, is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - -is-supported-regexp-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.0.tgz#8b520c85fae7a253382d4b02652e045576e13bb8" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - -is-url@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.2.tgz#498905a593bf47cc2d9e7f738372bbf7696c7f26" - -is-utf8@^0.2.0, is-utf8@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - -is@^3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/is/-/is-3.2.1.tgz#d0ac2ad55eb7b0bec926a5266f6c662aaa83dca5" - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - -isarray@1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - -isemail@3.x.x: - version "3.1.1" - resolved "https://registry.yarnpkg.com/isemail/-/isemail-3.1.1.tgz#e8450fe78ff1b48347db599122adcd0668bd92b5" - dependencies: - punycode "2.x.x" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - -isstream@0.1.x, isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - -istanbul-lib-coverage@^1.1.1, istanbul-lib-coverage@^1.1.2, istanbul-lib-coverage@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz#f7d8f2e42b97e37fe796114cb0f9d68b5e3a4341" - -istanbul-lib-hook@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz#8538d970372cb3716d53e55523dd54b557a8d89b" - dependencies: - append-transform "^0.4.0" - -istanbul-lib-instrument@^1.9.1: - version "1.10.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz#724b4b6caceba8692d3f1f9d0727e279c401af7b" - dependencies: - babel-generator "^6.18.0" - babel-template "^6.16.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - babylon "^6.18.0" - istanbul-lib-coverage "^1.2.0" - semver "^5.3.0" - -istanbul-lib-report@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz#2df12188c0fa77990c0d2176d2d0ba3394188259" - dependencies: - istanbul-lib-coverage "^1.1.2" - mkdirp "^0.5.1" - path-parse "^1.0.5" - supports-color "^3.1.2" - -istanbul-lib-source-maps@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz#20fb54b14e14b3fb6edb6aca3571fd2143db44e6" - dependencies: - debug "^3.1.0" - istanbul-lib-coverage "^1.1.2" - mkdirp "^0.5.1" - rimraf "^2.6.1" - source-map "^0.5.3" - -istanbul-reports@^1.1.3: - version "1.3.0" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.3.0.tgz#2f322e81e1d9520767597dca3c20a0cce89a3554" - dependencies: - handlebars "^4.0.3" - -isurl@^1.0.0-alpha5: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" - dependencies: - has-to-string-tag-x "^1.2.0" - is-object "^1.0.1" - -jest-docblock@^21.0.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.2.0.tgz#51529c3b30d5fd159da60c27ceedc195faf8d414" - -joi@13.x.x: - version "13.1.2" - resolved "https://registry.yarnpkg.com/joi/-/joi-13.1.2.tgz#b2db260323cc7f919fafa51e09e2275bd089a97e" - dependencies: - hoek "5.x.x" - isemail "3.x.x" - topo "3.x.x" - -js-green-licenses@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/js-green-licenses/-/js-green-licenses-0.5.0.tgz#4ec37c24f6082e9d4ca30a8430e6408063c8db6c" - dependencies: - argparse "^1.0.9" - axios "^0.18.0" - npm-package-arg "^6.0.0" - package-json "^4.0.1" - pify "^3.0.0" - spdx-correct "^3.0.0" - spdx-satisfies "^4.0.0" - strip-json-comments "^2.0.1" - -js-string-escape@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef" - -js-tokens@^3.0.0, js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - -js-yaml@^3.10.0, js-yaml@^3.7.0, js-yaml@^3.9.1: - version "3.11.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef" - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@~3.4.0: - version "3.4.6" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.4.6.tgz#6be1b23f6249f53d293370fd4d1aaa63ce1b4eb0" - dependencies: - argparse "^1.0.2" - esprima "^2.6.0" - inherit "^2.2.2" - -js2xmlparser@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-3.0.0.tgz#3fb60eaa089c5440f9319f51760ccd07e2499733" - dependencies: - xmlcreate "^1.0.1" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - -jscs-jsdoc@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/jscs-jsdoc/-/jscs-jsdoc-2.0.0.tgz#f53ebce029aa3125bd88290ba50d64d4510a4871" - dependencies: - comment-parser "^0.3.1" - jsdoctypeparser "~1.2.0" - -jscs-preset-wikimedia@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/jscs-preset-wikimedia/-/jscs-preset-wikimedia-1.0.0.tgz#fff563342038fc2e8826b7bb7309c3ae3406fc7e" - -jscs@^3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/jscs/-/jscs-3.0.7.tgz#7141b4dff5b86e32d0e99d764b836767c30d201a" - dependencies: - chalk "~1.1.0" - cli-table "~0.3.1" - commander "~2.9.0" - cst "^0.4.3" - estraverse "^4.1.0" - exit "~0.1.2" - glob "^5.0.1" - htmlparser2 "3.8.3" - js-yaml "~3.4.0" - jscs-jsdoc "^2.0.0" - jscs-preset-wikimedia "~1.0.0" - jsonlint "~1.6.2" - lodash "~3.10.0" - minimatch "~3.0.0" - natural-compare "~1.2.2" - pathval "~0.1.1" - prompt "~0.2.14" - reserved-words "^0.1.1" - resolve "^1.1.6" - strip-bom "^2.0.0" - strip-json-comments "~1.0.2" - to-double-quotes "^2.0.0" - to-single-quotes "^2.0.0" - vow "~0.4.8" - vow-fs "~0.3.4" - xmlbuilder "^3.1.0" - -jsdoc@^3.5.5: - version "3.5.5" - resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-3.5.5.tgz#484521b126e81904d632ff83ec9aaa096708fa4d" - dependencies: - babylon "7.0.0-beta.19" - bluebird "~3.5.0" - catharsis "~0.8.9" - escape-string-regexp "~1.0.5" - js2xmlparser "~3.0.0" - klaw "~2.0.0" - marked "~0.3.6" - mkdirp "~0.5.1" - requizzle "~0.2.1" - strip-json-comments "~2.0.1" - taffydb "2.6.2" - underscore "~1.8.3" - -jsdoctypeparser@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/jsdoctypeparser/-/jsdoctypeparser-1.2.0.tgz#e7dedc153a11849ffc5141144ae86a7ef0c25392" - dependencies: - lodash "^3.7.0" - -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - -jshint@^2.9.2: - version "2.9.5" - resolved "https://registry.yarnpkg.com/jshint/-/jshint-2.9.5.tgz#1e7252915ce681b40827ee14248c46d34e9aa62c" - dependencies: - cli "~1.0.0" - console-browserify "1.1.x" - exit "0.1.x" - htmlparser2 "3.8.x" - lodash "3.7.x" - minimatch "~3.0.2" - shelljs "0.3.x" - strip-json-comments "1.0.x" - -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - -json-parse-better-errors@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz#50183cd1b2d25275de069e9e71b467ac9eab973a" - -json-schema-traverse@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - -json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - dependencies: - jsonify "~0.0.0" - -json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - -json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - -jsonlint@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/jsonlint/-/jsonlint-1.6.3.tgz#cb5e31efc0b78291d0d862fbef05900adf212988" - dependencies: - JSV "^4.0.x" - nomnom "^1.5.x" - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -just-extend@^1.1.27: - version "1.1.27" - resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-1.1.27.tgz#ec6e79410ff914e472652abfa0e603c03d60e905" - -jwa@^1.1.4: - version "1.1.5" - resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.1.5.tgz#a0552ce0220742cd52e153774a32905c30e756e5" - dependencies: - base64url "2.0.0" - buffer-equal-constant-time "1.0.1" - ecdsa-sig-formatter "1.0.9" - safe-buffer "^5.0.1" - -jws@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/jws/-/jws-3.1.4.tgz#f9e8b9338e8a847277d6444b1464f61880e050a2" - dependencies: - base64url "^2.0.0" - jwa "^1.1.4" - safe-buffer "^5.0.1" - -keygrip@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.0.2.tgz#ad3297c557069dea8bcfe7a4fa491b75c5ddeb91" - -keyv@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" - dependencies: - json-buffer "3.0.0" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - -klaw@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-2.0.0.tgz#59c128e0dc5ce410201151194eeb9cbf858650f6" - dependencies: - graceful-fs "^4.1.9" - -koa-compose@^3.0.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7" - dependencies: - any-promise "^1.1.0" - -koa-compose@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-4.0.0.tgz#2800a513d9c361ef0d63852b038e4f6f2d5a773c" - -koa-convert@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/koa-convert/-/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0" - dependencies: - co "^4.6.0" - koa-compose "^3.0.0" - -koa-is-json@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/koa-is-json/-/koa-is-json-1.0.0.tgz#273c07edcdcb8df6a2c1ab7d59ee76491451ec14" - -koa@^2.4.1: - version "2.5.0" - resolved "https://registry.yarnpkg.com/koa/-/koa-2.5.0.tgz#b0fbe1e195e43b27588a04fd0be0ddaeca2c154c" - dependencies: - accepts "^1.2.2" - content-disposition "~0.5.0" - content-type "^1.0.0" - cookies "~0.7.0" - debug "*" - delegates "^1.0.0" - depd "^1.1.0" - destroy "^1.0.3" - error-inject "~1.0.0" - escape-html "~1.0.1" - fresh "^0.5.2" - http-assert "^1.1.0" - http-errors "^1.2.8" - is-generator-function "^1.0.3" - koa-compose "^4.0.0" - koa-convert "^1.2.0" - koa-is-json "^1.0.0" - mime-types "^2.0.7" - on-finished "^2.1.0" - only "0.0.2" - parseurl "^1.3.0" - statuses "^1.2.0" - type-is "^1.5.5" - vary "^1.0.0" - -last-line-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/last-line-stream/-/last-line-stream-1.0.0.tgz#d1b64d69f86ff24af2d04883a2ceee14520a5600" - dependencies: - through2 "^2.0.0" - -latest-version@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" - dependencies: - package-json "^4.0.0" - -lazy-cache@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - dependencies: - invert-kv "^1.0.0" - -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -lodash.assign@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" - -lodash.clonedeep@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - -lodash.clonedeepwith@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeepwith/-/lodash.clonedeepwith-4.5.0.tgz#6ee30573a03a1a60d670a62ef33c10cf1afdbdd4" - -lodash.debounce@^4.0.3: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - -lodash.difference@^4.3.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" - -lodash.escaperegexp@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" - -lodash.flatten@^4.2.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" - -lodash.flattendeep@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" - -lodash.foreach@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" - -lodash.get@^4.4.2, lodash.get@~4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - -lodash.has@^4.5.2: - version "4.5.2" - resolved "https://registry.yarnpkg.com/lodash.has/-/lodash.has-4.5.2.tgz#d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862" - -lodash.indexof@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/lodash.indexof/-/lodash.indexof-4.0.5.tgz#53714adc2cddd6ed87638f893aa9b6c24e31ef3c" - -lodash.isequal@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - -lodash.isplainobject@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - -lodash.isstring@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" - -lodash.maxby@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.maxby/-/lodash.maxby-4.6.0.tgz#082240068f3c7a227aa00a8380e4f38cf0786e3d" - -lodash.merge@^4.6.0: - version "4.6.1" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54" - -lodash.mergewith@^4.6.0: - version "4.6.1" - resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927" - -lodash.omit@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" - -lodash.omitby@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.omitby/-/lodash.omitby-4.6.0.tgz#5c15ff4754ad555016b53c041311e8f079204791" - -lodash.pick@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" - -lodash.random@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash.random/-/lodash.random-3.2.0.tgz#96e24e763333199130d2c9e2fd57f91703cc262d" - -lodash.without@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" - -lodash@3.7.x: - version "3.7.0" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.7.0.tgz#3678bd8ab995057c07ade836ed2ef087da811d45" - -lodash@4.17.5, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0: - version "4.17.5" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" - -lodash@^3.5.0, lodash@^3.7.0, lodash@~3.10.0: - version "3.10.1" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" - -log-driver@1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.5.tgz#7ae4ec257302fd790d557cb10c97100d857b0056" - -lolex@^2.2.0, lolex@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.3.2.tgz#85f9450425103bf9e7a60668ea25dc43274ca807" - -longest@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - -loose-envify@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" - dependencies: - js-tokens "^3.0.0" - -loud-rejection@^1.0.0, loud-rejection@^1.2.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - -lowercase-keys@1.0.0, lowercase-keys@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" - -lru-cache@^4.0.1, lru-cache@^4.1.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.2.tgz#45234b2e6e2f2b33da125624c4664929a0224c3f" - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -make-dir@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.2.0.tgz#6d6a49eead4aae296c53bbf3a1a008bd6c89469b" - dependencies: - pify "^3.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - -map-obj@^1.0.0, map-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - -map-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - dependencies: - object-visit "^1.0.0" - -marked@~0.3.6: - version "0.3.17" - resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.17.tgz#607f06668b3c6b1246b28f13da76116ac1aa2d2b" - -matcher@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/matcher/-/matcher-1.1.0.tgz#4ad3a9cb6585186dc95cb8a08c7de936caed17ee" - dependencies: - escape-string-regexp "^1.0.4" - -md5-hex@^1.2.0, md5-hex@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4" - dependencies: - md5-o-matic "^0.1.1" - -md5-hex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-2.0.0.tgz#d0588e9f1c74954492ecd24ac0ac6ce997d92e33" - dependencies: - md5-o-matic "^0.1.1" - -md5-o-matic@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3" - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - -mem@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" - dependencies: - mimic-fn "^1.0.0" - -meow@^3.6.0, meow@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" - dependencies: - camelcase-keys "^2.0.0" - decamelize "^1.1.2" - loud-rejection "^1.0.0" - map-obj "^1.0.1" - minimist "^1.1.3" - normalize-package-data "^2.3.4" - object-assign "^4.0.1" - read-pkg-up "^1.0.1" - redent "^1.0.0" - trim-newlines "^1.0.0" - -meow@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-4.0.0.tgz#fd5855dd008db5b92c552082db1c307cba20b29d" - dependencies: - camelcase-keys "^4.0.0" - decamelize-keys "^1.0.0" - loud-rejection "^1.0.0" - minimist "^1.1.3" - minimist-options "^3.0.1" - normalize-package-data "^2.3.4" - read-pkg-up "^3.0.0" - redent "^2.0.0" - trim-newlines "^2.0.0" - -merge-descriptors@1.0.1, merge-descriptors@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - -merge-estraverse-visitors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/merge-estraverse-visitors/-/merge-estraverse-visitors-1.0.0.tgz#eb968338b5ded5ceed82cec0307decba2d8ea994" - dependencies: - estraverse "^4.0.0" - -merge-source-map@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" - dependencies: - source-map "^0.6.1" - -methmeth@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/methmeth/-/methmeth-1.1.0.tgz#e80a26618e52f5c4222861bb748510bd10e29089" - -methods@^1.1.1, methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - -micromatch@^2.1.5, micromatch@^2.3.11: - version "2.3.11" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - dependencies: - arr-diff "^2.0.0" - array-unique "^0.2.1" - braces "^1.8.2" - expand-brackets "^0.1.4" - extglob "^0.3.1" - filename-regex "^2.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.1" - kind-of "^3.0.2" - normalize-path "^2.0.1" - object.omit "^2.0.0" - parse-glob "^3.0.4" - regex-cache "^0.4.2" - -micromatch@^3.1.8: - version "3.1.9" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.9.tgz#15dc93175ae39e52e93087847096effc73efcf89" - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -mime-db@1.x.x, mime-db@~1.33.0: - version "1.33.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" - -mime-types@^2.0.7, mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.7: - version "2.1.18" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" - dependencies: - mime-db "~1.33.0" - -mime@1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" - -mime@^1.4.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - -mime@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.2.0.tgz#161e541965551d3b549fa1114391e3a3d55b923b" - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - -mimic-response@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.0.tgz#df3d3652a73fded6b9b0b24146e6fd052353458e" - -mimos@4.x.x: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimos/-/mimos-4.0.0.tgz#76e3d27128431cb6482fd15b20475719ad626a5a" - dependencies: - hoek "5.x.x" - mime-db "1.x.x" - -minimalistic-assert@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" - -"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.0, minimatch@~3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - dependencies: - brace-expansion "^1.1.7" - -minimist-options@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - -minimist@^1.1.3, minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - -mixin-deep@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@0.5.1, mkdirp@0.x.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - dependencies: - minimist "0.0.8" - -mocha@^5.0.0: - version "5.0.4" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.0.4.tgz#6b7aa328472da1088e69d47e75925fd3a3bb63c6" - dependencies: - browser-stdout "1.3.1" - commander "2.11.0" - debug "3.1.0" - diff "3.5.0" - escape-string-regexp "1.0.5" - glob "7.1.2" - growl "1.10.3" - he "1.1.1" - mkdirp "0.5.1" - supports-color "4.4.0" - -modelo@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/modelo/-/modelo-4.2.3.tgz#b278588a4db87fc1e5107ae3a277c0876f38d894" - -module-not-found-error@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/module-not-found-error/-/module-not-found-error-1.0.1.tgz#cf8b4ff4f29640674d6cdd02b0e3bc523c2bbdc0" - -moment@^2.10.6, moment@^2.14.1: - version "2.21.0" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.21.0.tgz#2a114b51d2a6ec9e6d83cf803f838a878d8a023a" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - -ms@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - -multi-stage-sourcemap@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/multi-stage-sourcemap/-/multi-stage-sourcemap-0.2.1.tgz#b09fc8586eaa17f81d575c4ad02e0f7a3f6b1105" - dependencies: - source-map "^0.1.34" - -multimatch@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" - dependencies: - array-differ "^1.0.0" - array-union "^1.0.1" - arrify "^1.0.0" - minimatch "^3.0.0" - -mute-stream@0.0.7, mute-stream@~0.0.4: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - -mv@~2: - version "2.1.1" - resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2" - dependencies: - mkdirp "~0.5.1" - ncp "~2.0.0" - rimraf "~2.4.0" - -nan@^2.3.0, nan@^2.3.3: - version "2.9.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.9.2.tgz#f564d75f5f8f36a6d9456cca7a6c4fe488ab7866" - -nanomatch@^1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.9.tgz#879f7150cb2dab7a471259066c104eee6e0fa7c2" - 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-odd "^2.0.0" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - -natural-compare@~1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.2.2.tgz#1f96d60e3141cac1b6d05653ce0daeac763af6aa" - -ncp@0.4.x: - version "0.4.2" - resolved "https://registry.yarnpkg.com/ncp/-/ncp-0.4.2.tgz#abcc6cbd3ec2ed2a729ff6e7c1fa8f01784a8574" - -ncp@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" - -negotiator@0.6.1, negotiator@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" - -nested-error-stacks@^1.0.0, nested-error-stacks@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz#19f619591519f096769a5ba9a86e6eeec823c3cf" - dependencies: - inherits "~2.0.1" - -nigel@3.x.x: - version "3.0.0" - resolved "https://registry.yarnpkg.com/nigel/-/nigel-3.0.0.tgz#a6e3378a8a34281e75ba1641e886a415d4be93ad" - dependencies: - hoek "5.x.x" - vise "3.x.x" - -nise@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/nise/-/nise-1.3.0.tgz#7d6d506e64a0e37959495157f30a799c0436df72" - dependencies: - "@sinonjs/formatio" "^2.0.0" - just-extend "^1.1.27" - lolex "^2.3.2" - path-to-regexp "^1.7.0" - text-encoding "^0.6.4" - -nock@^9.0.0: - version "9.2.3" - resolved "https://registry.yarnpkg.com/nock/-/nock-9.2.3.tgz#39738087d6a0497d3a165fb352612b38a2f9b92f" - dependencies: - chai "^4.1.2" - debug "^3.1.0" - deep-equal "^1.0.0" - json-stringify-safe "^5.0.1" - lodash "^4.17.5" - mkdirp "^0.5.0" - propagate "^1.0.0" - qs "^6.5.1" - semver "^5.5.0" - -node-forge@^0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.4.tgz#8e6e9f563a1e32213aa7508cded22aa791dbf986" - -node-pre-gyp@^0.6.39: - version "0.6.39" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" - dependencies: - detect-libc "^1.0.2" - hawk "3.1.3" - mkdirp "^0.5.1" - nopt "^4.0.1" - npmlog "^4.0.2" - rc "^1.1.7" - request "2.81.0" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^2.2.1" - tar-pack "^3.4.0" - -nomnom@^1.5.x: - version "1.8.1" - resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7" - dependencies: - chalk "~0.4.0" - underscore "~1.6.0" - -nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - dependencies: - abbrev "1" - osenv "^0.1.4" - -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: - version "2.4.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" - dependencies: - hosted-git-info "^2.1.4" - is-builtin-module "^1.0.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.0.0, normalize-path@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-url@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" - dependencies: - prepend-http "^2.0.0" - query-string "^5.0.1" - sort-keys "^2.0.0" - -npm-package-arg@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.0.0.tgz#8cce04b49d3f9faec3f56b0fe5f4391aeb9d2fac" - dependencies: - hosted-git-info "^2.5.0" - osenv "^0.1.4" - semver "^5.4.1" - validate-npm-package-name "^3.0.0" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - dependencies: - path-key "^2.0.0" - -npmlog@^4.0.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - -nyc@11.4.1, nyc@^11.3.0: - version "11.4.1" - resolved "https://registry.yarnpkg.com/nyc/-/nyc-11.4.1.tgz#13fdf7e7ef22d027c61d174758f6978a68f4f5e5" - dependencies: - archy "^1.0.0" - arrify "^1.0.1" - caching-transform "^1.0.0" - convert-source-map "^1.3.0" - debug-log "^1.0.1" - default-require-extensions "^1.0.0" - find-cache-dir "^0.1.1" - find-up "^2.1.0" - foreground-child "^1.5.3" - glob "^7.0.6" - istanbul-lib-coverage "^1.1.1" - istanbul-lib-hook "^1.1.0" - istanbul-lib-instrument "^1.9.1" - istanbul-lib-report "^1.1.2" - istanbul-lib-source-maps "^1.2.2" - istanbul-reports "^1.1.3" - md5-hex "^1.2.0" - merge-source-map "^1.0.2" - micromatch "^2.3.11" - mkdirp "^0.5.0" - resolve-from "^2.0.0" - rimraf "^2.5.4" - signal-exit "^3.0.1" - spawn-wrap "^1.4.2" - test-exclude "^4.1.1" - yargs "^10.0.3" - yargs-parser "^8.0.0" - -oauth-sign@~0.8.1, oauth-sign@~0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" - -object-assign@^4.0.1, object-assign@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-keys@^1.0.0, object-keys@^1.0.8: - version "1.0.11" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - dependencies: - isobject "^3.0.0" - -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - dependencies: - isobject "^3.0.1" - -observable-to-promise@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/observable-to-promise/-/observable-to-promise-0.5.0.tgz#c828f0f0dc47e9f86af8a4977c5d55076ce7a91f" - dependencies: - is-observable "^0.2.0" - symbol-observable "^1.0.4" - -obuf@^1.0.0, obuf@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - -on-finished@^2.1.0, on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - dependencies: - ee-first "1.1.1" - -once@^1.3.0, once@^1.3.3, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - dependencies: - wrappy "1" - -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - dependencies: - mimic-fn "^1.0.0" - -only@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" - -optimist@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - -option-chain@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/option-chain/-/option-chain-1.0.0.tgz#938d73bd4e1783f948d34023644ada23669e30f2" - -optionator@^0.8.1, optionator@^0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.4" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - wordwrap "~1.0.0" - -os-homedir@^1.0.0, os-homedir@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - -os-locale@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" - dependencies: - execa "^0.7.0" - lcid "^1.0.0" - mem "^1.1.0" - -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - -osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -p-cancelable@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - -p-is-promise@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" - -p-limit@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c" - dependencies: - p-try "^1.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - dependencies: - p-limit "^1.1.0" - -p-timeout@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" - dependencies: - p-finally "^1.0.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - -package-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-1.2.0.tgz#003e56cd57b736a6ed6114cc2b81542672770e44" - dependencies: - md5-hex "^1.3.0" - -package-hash@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-2.0.0.tgz#78ae326c89e05a4d813b68601977af05c00d2a0d" - dependencies: - graceful-fs "^4.1.11" - lodash.flattendeep "^4.4.0" - md5-hex "^2.0.0" - release-zalgo "^1.0.0" - -package-json@^4.0.0, package-json@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" - dependencies: - got "^6.7.1" - registry-auth-token "^3.0.1" - registry-url "^3.0.3" - semver "^5.1.0" - -parse-glob@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - dependencies: - error-ex "^1.2.0" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-ms@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-0.1.2.tgz#dd3fa25ed6c2efc7bdde12ad9b46c163aa29224e" - -parse-ms@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-1.0.1.tgz#56346d4749d78f23430ca0c713850aef91aa361d" - -parseurl@^1.3.0, parseurl@~1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - dependencies: - pinkie-promise "^2.0.0" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - -path-is-inside@^1.0.1, path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - -path-key@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - -path-parse@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - -path-to-regexp@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" - dependencies: - isarray "0.0.1" - -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - dependencies: - pify "^2.0.0" - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - dependencies: - pify "^3.0.0" - -pathval@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" - -pathval@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-0.1.1.tgz#08f911cdca9cce5942880da7817bc0b723b66d82" - -performance-now@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - -pez@4.x.x: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pez/-/pez-4.0.1.tgz#d698ecf9a146c9188d74abe5cef7b5cb71deb3b5" - dependencies: - b64 "4.x.x" - boom "7.x.x" - content "4.x.x" - hoek "5.x.x" - nigel "3.x.x" - -pidusage@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pidusage/-/pidusage-1.2.0.tgz#65ee96ace4e08a4cd3f9240996c85b367171ee92" - -pify@^2.0.0, pify@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - -pinkie-promise@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-1.0.0.tgz#d1da67f5482563bb7cf57f286ae2822ecfbf3670" - dependencies: - pinkie "^1.0.0" - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - dependencies: - pinkie "^2.0.0" - -pinkie@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-1.0.0.tgz#5a47f28ba1015d0201bda7bf0f358e47bec8c7e4" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - -pkg-conf@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.1.0.tgz#2126514ca6f2abfebd168596df18ba57867f0058" - dependencies: - find-up "^2.0.0" - load-json-file "^4.0.0" - -pkg-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" - dependencies: - find-up "^1.0.0" - -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - dependencies: - find-up "^2.1.0" - -pkginfo@0.3.x: - version "0.3.1" - resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.3.1.tgz#5b29f6a81f70717142e09e765bbeab97b4f81e21" - -pkginfo@0.x.x: - version "0.4.1" - resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.4.1.tgz#b5418ef0439de5425fc4995042dced14fb2a84ff" - -plur@^2.0.0, plur@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/plur/-/plur-2.1.2.tgz#7482452c1a0f508e3e344eaec312c91c29dc655a" - dependencies: - irregular-plurals "^1.0.0" - -pluralize@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" - -podium@3.x.x: - version "3.1.2" - resolved "https://registry.yarnpkg.com/podium/-/podium-3.1.2.tgz#b701429739cf6bdde6b3015ae6b48d400817ce9e" - dependencies: - hoek "5.x.x" - joi "13.x.x" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - -postcss@^6.0.14: - version "6.0.19" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.19.tgz#76a78386f670b9d9494a655bf23ac012effd1555" - dependencies: - chalk "^2.3.1" - source-map "^0.6.1" - supports-color "^5.2.0" - -power-assert-context-formatter@^1.0.7: - version "1.1.1" - resolved "https://registry.yarnpkg.com/power-assert-context-formatter/-/power-assert-context-formatter-1.1.1.tgz#edba352d3ed8a603114d667265acce60d689ccdf" - dependencies: - core-js "^2.0.0" - power-assert-context-traversal "^1.1.1" - -power-assert-context-reducer-ast@^1.0.7: - version "1.1.2" - resolved "https://registry.yarnpkg.com/power-assert-context-reducer-ast/-/power-assert-context-reducer-ast-1.1.2.tgz#484a99e26f4973ff8832e5c5cc756702e6094174" - dependencies: - acorn "^4.0.0" - acorn-es7-plugin "^1.0.12" - core-js "^2.0.0" - espurify "^1.6.0" - estraverse "^4.2.0" - -power-assert-context-traversal@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/power-assert-context-traversal/-/power-assert-context-traversal-1.1.1.tgz#88cabca0d13b6359f07d3d3e8afa699264577ed9" - dependencies: - core-js "^2.0.0" - estraverse "^4.1.0" - -power-assert-formatter@^1.3.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/power-assert-formatter/-/power-assert-formatter-1.4.1.tgz#5dc125ed50a3dfb1dda26c19347f3bf58ec2884a" - dependencies: - core-js "^2.0.0" - power-assert-context-formatter "^1.0.7" - power-assert-context-reducer-ast "^1.0.7" - power-assert-renderer-assertion "^1.0.7" - power-assert-renderer-comparison "^1.0.7" - power-assert-renderer-diagram "^1.0.7" - power-assert-renderer-file "^1.0.7" - -power-assert-renderer-assertion@^1.0.7: - version "1.1.1" - resolved "https://registry.yarnpkg.com/power-assert-renderer-assertion/-/power-assert-renderer-assertion-1.1.1.tgz#cbfc0e77e0086a8f96af3f1d8e67b9ee7e28ce98" - dependencies: - power-assert-renderer-base "^1.1.1" - power-assert-util-string-width "^1.1.1" - -power-assert-renderer-base@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/power-assert-renderer-base/-/power-assert-renderer-base-1.1.1.tgz#96a650c6fd05ee1bc1f66b54ad61442c8b3f63eb" - -power-assert-renderer-comparison@^1.0.7: - version "1.1.1" - resolved "https://registry.yarnpkg.com/power-assert-renderer-comparison/-/power-assert-renderer-comparison-1.1.1.tgz#d7439d97d85156be4e30a00f2fb5a72514ce3c08" - dependencies: - core-js "^2.0.0" - diff-match-patch "^1.0.0" - power-assert-renderer-base "^1.1.1" - stringifier "^1.3.0" - type-name "^2.0.1" - -power-assert-renderer-diagram@^1.0.7: - version "1.1.2" - resolved "https://registry.yarnpkg.com/power-assert-renderer-diagram/-/power-assert-renderer-diagram-1.1.2.tgz#655f8f711935a9b6d541b86327654717c637a986" - dependencies: - core-js "^2.0.0" - power-assert-renderer-base "^1.1.1" - power-assert-util-string-width "^1.1.1" - stringifier "^1.3.0" - -power-assert-renderer-file@^1.0.7: - version "1.1.1" - resolved "https://registry.yarnpkg.com/power-assert-renderer-file/-/power-assert-renderer-file-1.1.1.tgz#a37e2bbd178ccacd04e78dbb79c92fe34933c5e7" - dependencies: - power-assert-renderer-base "^1.1.1" - -power-assert-util-string-width@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/power-assert-util-string-width/-/power-assert-util-string-width-1.1.1.tgz#be659eb7937fdd2e6c9a77268daaf64bd5b7c592" - dependencies: - eastasianwidth "^0.1.1" - -power-assert@^1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/power-assert/-/power-assert-1.4.4.tgz#9295ea7437196f5a601fde420f042631186d7517" - dependencies: - define-properties "^1.1.2" - empower "^1.2.3" - power-assert-formatter "^1.3.1" - universal-deep-strict-equal "^1.2.1" - xtend "^4.0.0" - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - -prepend-http@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - -prettier@^1.7.4: - version "1.11.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.11.1.tgz#61e43fc4cd44e68f2b0dfc2c38cd4bb0fccdcc75" - -pretty-ms@^0.2.1: - version "0.2.2" - resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-0.2.2.tgz#da879a682ff33a37011046f13d627f67c73b84f6" - dependencies: - parse-ms "^0.1.0" - -pretty-ms@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-3.1.0.tgz#e9cac9c76bf6ee52fe942dd9c6c4213153b12881" - dependencies: - parse-ms "^1.0.0" - plur "^2.1.2" - -private@^0.1.7: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - -process-nextick-args@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" - -progress@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" - -prompt@~0.2.14: - version "0.2.14" - resolved "https://registry.yarnpkg.com/prompt/-/prompt-0.2.14.tgz#57754f64f543fd7b0845707c818ece618f05ffdc" - dependencies: - pkginfo "0.x.x" - read "1.0.x" - revalidator "0.1.x" - utile "0.2.x" - winston "0.8.x" - -propagate@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/propagate/-/propagate-1.0.0.tgz#00c2daeedda20e87e3782b344adba1cddd6ad709" - -proxy-addr@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341" - dependencies: - forwarded "~0.1.2" - ipaddr.js "1.6.0" - -proxyquire@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/proxyquire/-/proxyquire-1.8.0.tgz#02d514a5bed986f04cbb2093af16741535f79edc" - dependencies: - fill-keys "^1.0.2" - module-not-found-error "^1.0.0" - resolve "~1.1.7" - -proxyquire@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/proxyquire/-/proxyquire-2.0.0.tgz#9803bf37b64d538b7ab05c53e839d1ab315905e3" - dependencies: - fill-keys "^1.0.2" - module-not-found-error "^1.0.0" - resolve "~1.1.7" - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - -punycode@2.x.x: - version "2.1.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" - -punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - -qs@6.5.1, qs@^6.5.1, qs@~6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" - -qs@~6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" - -query-string@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.0.tgz#9583b15fd1307f899e973ed418886426a9976469" - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -quick-lru@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" - -randomatic@^1.1.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -range-parser@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" - -raw-body@2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" - dependencies: - bytes "3.0.0" - http-errors "1.6.2" - iconv-lite "0.4.19" - unpipe "1.0.0" - -rc@^1.0.1, rc@^1.1.6, rc@^1.1.7: - version "1.2.5" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.5.tgz#275cd687f6e3b36cc756baa26dfee80a790301fd" - dependencies: - deep-extend "~0.4.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - -read-pkg-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" - dependencies: - find-up "^2.0.0" - read-pkg "^3.0.0" - -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" - -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - -read@1.0.x: - version "1.0.7" - resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" - dependencies: - mute-stream "~0.0.4" - -readable-stream@1.1: - version "1.1.13" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9: - version "2.3.5" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.5.tgz#b4f85003a938cbb6ecbce2a124fb1012bd1a838d" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.0.3" - util-deprecate "~1.0.1" - -readdirp@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" - dependencies: - graceful-fs "^4.1.2" - minimatch "^3.0.2" - readable-stream "^2.0.2" - set-immediate-shim "^1.0.1" - -redent@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" - dependencies: - indent-string "^2.1.0" - strip-indent "^1.0.1" - -redent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" - dependencies: - indent-string "^3.0.0" - strip-indent "^2.0.0" - -regenerate@^1.2.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - -regex-cache@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" - dependencies: - is-equal-shallow "^0.1.3" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -registry-auth-token@^3.0.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20" - dependencies: - rc "^1.1.6" - safe-buffer "^5.0.1" - -registry-url@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" - dependencies: - rc "^1.0.1" - -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - dependencies: - jsesc "~0.5.0" - -release-zalgo@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/release-zalgo/-/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730" - dependencies: - es6-error "^4.0.1" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - -repeat-element@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" - -repeat-string@^1.5.2, repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - dependencies: - is-finite "^1.0.0" - -request@2.81.0: - version "2.81.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~4.2.1" - hawk "~3.1.3" - http-signature "~1.1.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - oauth-sign "~0.8.1" - performance-now "^0.2.0" - qs "~6.4.0" - safe-buffer "^5.0.1" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "^0.6.0" - uuid "^3.0.0" - -request@^2.79.0, request@^2.81.0: - version "2.85.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.85.0.tgz#5a03615a47c61420b3eb99b7dba204f83603e1fa" - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.6.0" - caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.1" - forever-agent "~0.6.1" - form-data "~2.3.1" - har-validator "~5.0.3" - hawk "~6.0.2" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.17" - oauth-sign "~0.8.2" - performance-now "^2.1.0" - qs "~6.5.1" - safe-buffer "^5.1.1" - stringstream "~0.0.5" - tough-cookie "~2.3.3" - tunnel-agent "^0.6.0" - uuid "^3.1.0" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - -require-precompiled@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/require-precompiled/-/require-precompiled-0.1.0.tgz#5a1b52eb70ebed43eb982e974c85ab59571e56fa" - -require-uncached@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" - dependencies: - caller-path "^0.1.0" - resolve-from "^1.0.0" - -requizzle@~0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/requizzle/-/requizzle-0.2.1.tgz#6943c3530c4d9a7e46f1cddd51c158fc670cdbde" - dependencies: - underscore "~1.6.0" - -reserved-words@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/reserved-words/-/reserved-words-0.1.2.tgz#00a0940f98cd501aeaaac316411d9adc52b31ab1" - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - dependencies: - resolve-from "^3.0.0" - -resolve-from@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" - -resolve-from@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - -resolve@^1.1.6, resolve@^1.3.2, resolve@^1.3.3: - version "1.5.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36" - dependencies: - path-parse "^1.0.5" - -resolve@~1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - -responselike@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - dependencies: - lowercase-keys "^1.0.0" - -restify-errors@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/restify-errors/-/restify-errors-5.0.0.tgz#668717e100683eec6ce0d515f89ff1dbec254a8d" - dependencies: - assert-plus "^1.0.0" - lodash "^4.2.1" - verror "^1.8.1" - optionalDependencies: - safe-json-stringify "^1.0.3" - -restify@^6.3.4: - version "6.3.4" - resolved "https://registry.yarnpkg.com/restify/-/restify-6.3.4.tgz#097990b22ba40f02a074a7d4cb1c27690759e288" - dependencies: - assert-plus "^1.0.0" - bunyan "^1.8.12" - clone-regexp "^1.0.0" - csv "^1.1.1" - escape-regexp-component "^1.0.2" - ewma "^2.0.1" - formidable "^1.1.1" - http-signature "^1.2.0" - lodash "^4.17.4" - lru-cache "^4.1.1" - mime "^1.4.1" - negotiator "^0.6.1" - once "^1.4.0" - pidusage "^1.2.0" - qs "^6.5.1" - restify-errors "^5.0.0" - semver "^5.4.1" - spdy "^3.4.7" - uuid "^3.1.0" - vasync "^1.6.4" - verror "^1.10.0" - optionalDependencies: - dtrace-provider "^0.8.1" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - -retry-axios@0.3.2, retry-axios@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/retry-axios/-/retry-axios-0.3.2.tgz#5757c80f585b4cc4c4986aa2ffd47a60c6d35e13" - -retry-request@^3.0.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/retry-request/-/retry-request-3.3.1.tgz#fb71276235a617e97551e9be737ab5b91591fb9e" - dependencies: - request "^2.81.0" - through2 "^2.0.0" - -revalidator@0.1.x: - version "0.1.8" - resolved "https://registry.yarnpkg.com/revalidator/-/revalidator-0.1.8.tgz#fece61bfa0c1b52a206bd6b18198184bdd523a3b" - -right-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" - dependencies: - align-text "^0.1.1" - -rimraf@2, rimraf@2.x.x, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" - dependencies: - glob "^7.0.5" - -rimraf@~2.4.0: - version "2.4.5" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da" - dependencies: - glob "^6.0.1" - -run-async@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" - dependencies: - is-promise "^2.1.0" - -rx-lite-aggregates@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" - dependencies: - rx-lite "*" - -rx-lite@*, rx-lite@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" - -safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" - -safe-json-stringify@^1.0.3, safe-json-stringify@~1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.1.0.tgz#bd2b6dad1ebafab3c24672a395527f01804b7e19" - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - dependencies: - ret "~0.1.10" - -samsam@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.3.0.tgz#8d1d9350e25622da30de3e44ba692b5221ab7c50" - -sanitize-html@^1.13.0: - version "1.18.2" - resolved "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-1.18.2.tgz#61877ba5a910327e42880a28803c2fbafa8e4642" - dependencies: - chalk "^2.3.0" - htmlparser2 "^3.9.0" - lodash.clonedeep "^4.5.0" - lodash.escaperegexp "^4.1.2" - lodash.isplainobject "^4.0.6" - lodash.isstring "^4.0.1" - lodash.mergewith "^4.6.0" - postcss "^6.0.14" - srcset "^1.0.0" - xtend "^4.0.0" - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - -semver-diff@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" - dependencies: - semver "^5.0.3" - -"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" - -send@0.16.2: - version "0.16.2" - resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.6.2" - mime "1.4.1" - ms "2.0.0" - on-finished "~2.3.0" - range-parser "~1.2.0" - statuses "~1.4.0" - -serialize-error@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-2.1.0.tgz#50b679d5635cdf84667bdc8e59af4e5b81d5f60a" - -serve-static@1.13.2: - version "1.13.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.2" - send "0.16.2" - -set-blocking@^2.0.0, set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - -set-immediate-shim@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" - -set-value@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.1" - to-object-path "^0.3.0" - -set-value@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setprototypeof@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - -shelljs@0.3.x: - version "0.3.0" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.3.0.tgz#3596e6307a781544f591f37da618360f31db57b1" - -shot@4.x.x: - version "4.0.5" - resolved "https://registry.yarnpkg.com/shot/-/shot-4.0.5.tgz#c7e7455d11d60f6b6cd3c43e15a3b431c17e5566" - dependencies: - hoek "5.x.x" - joi "13.x.x" - -signal-exit@^3.0.0, signal-exit@^3.0.1, signal-exit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - -sinon@4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-4.3.0.tgz#cec9b27d5f4e2c63c1a79c9dc1c05d34bb088234" - dependencies: - "@sinonjs/formatio" "^2.0.0" - diff "^3.1.0" - lodash.get "^4.4.2" - lolex "^2.2.0" - nise "^1.2.0" - supports-color "^5.1.0" - type-detect "^4.0.5" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - -slice-ansi@1.0.0, slice-ansi@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" - dependencies: - is-fullwidth-code-point "^2.0.0" - -slide@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -sntp@1.x.x: - version "1.0.9" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" - dependencies: - hoek "2.x.x" - -sntp@2.x.x: - version "2.1.0" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" - dependencies: - hoek "4.x.x" - -sort-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" - dependencies: - is-plain-obj "^1.0.0" - -source-map-resolve@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.1.tgz#7ad0f593f2281598e854df80f19aae4b92d7a11a" - dependencies: - atob "^2.0.0" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.4.0, source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - dependencies: - source-map "^0.5.6" - -source-map-support@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.3.tgz#2b3d5fff298cfa4d1afd7d4352d569e9a0158e76" - dependencies: - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - -source-map@^0.1.34: - version "0.1.43" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" - dependencies: - amdefine ">=0.0.4" - -source-map@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" - dependencies: - amdefine ">=0.0.4" - -source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - -spawn-wrap@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.4.2.tgz#cff58e73a8224617b6561abdc32586ea0c82248c" - dependencies: - foreground-child "^1.5.6" - mkdirp "^0.5.0" - os-homedir "^1.0.1" - rimraf "^2.6.2" - signal-exit "^3.0.2" - which "^1.3.0" - -spdx-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/spdx-compare/-/spdx-compare-1.0.0.tgz#2c55f117362078d7409e6d7b08ce70a857cd3ed7" - dependencies: - array-find-index "^1.0.2" - spdx-expression-parse "^3.0.0" - spdx-ranges "^2.0.0" - -spdx-correct@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" - -spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" - -spdx-ranges@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/spdx-ranges/-/spdx-ranges-2.0.0.tgz#257686798e5edb41d45c1aba3d3f1bb47af8d5ec" - -spdx-satisfies@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/spdx-satisfies/-/spdx-satisfies-4.0.0.tgz#ebc79eec88b68ac75618e2e5ee94fbc347587552" - dependencies: - spdx-compare "^1.0.0" - spdx-expression-parse "^3.0.0" - spdx-ranges "^2.0.0" - -spdy-transport@^2.0.18: - version "2.0.20" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.0.20.tgz#735e72054c486b2354fe89e702256004a39ace4d" - dependencies: - debug "^2.6.8" - detect-node "^2.0.3" - hpack.js "^2.1.6" - obuf "^1.1.1" - readable-stream "^2.2.9" - safe-buffer "^5.0.1" - wbuf "^1.7.2" - -spdy@^3.4.7: - version "3.4.7" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-3.4.7.tgz#42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc" - dependencies: - debug "^2.6.8" - handle-thing "^1.2.5" - http-deceiver "^1.2.7" - safe-buffer "^5.0.1" - select-hose "^2.0.0" - spdy-transport "^2.0.18" - -split-array-stream@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/split-array-stream/-/split-array-stream-1.0.3.tgz#d2b75a8e5e0d824d52fdec8b8225839dc2e35dfa" - dependencies: - async "^2.4.0" - is-stream-ended "^0.1.0" - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - -srcset@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/srcset/-/srcset-1.0.0.tgz#a5669de12b42f3b1d5e83ed03c71046fc48f41ef" - dependencies: - array-uniq "^1.0.2" - number-is-nan "^1.0.0" - -sshpk@^1.7.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - dashdash "^1.12.0" - getpass "^0.1.1" - optionalDependencies: - bcrypt-pbkdf "^1.0.0" - ecc-jsbn "~0.1.1" - jsbn "~0.1.0" - tweetnacl "~0.14.0" - -stack-trace@0.0.x: - version "0.0.10" - resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" - -stack-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.1.tgz#d4f33ab54e8e38778b0ca5cfd3b3afb12db68620" - -statehood@6.x.x: - version "6.0.5" - resolved "https://registry.yarnpkg.com/statehood/-/statehood-6.0.5.tgz#bbcdcb3a43a6fb86f4bd04ed48a9309b6cfc1b18" - dependencies: - boom "7.x.x" - bounce "1.x.x" - cryptiles "4.x.x" - hoek "5.x.x" - iron "5.x.x" - joi "13.x.x" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -"statuses@>= 1.3.1 < 2", statuses@^1.2.0, statuses@~1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" - -stream-events@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/stream-events/-/stream-events-1.0.2.tgz#abf39f66c0890a4eb795bc8d5e859b2615b590b2" - dependencies: - stubs "^3.0.0" - -stream-shift@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" - -stream-transform@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/stream-transform/-/stream-transform-0.2.2.tgz#75867487f49528f8bf1d82499658753d02df7838" - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - -string-format-obj@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string-format-obj/-/string-format-obj-1.1.1.tgz#c7612ca4e2ad923812a81db192dc291850aa1f65" - -string-width@^1.0.1, string-width@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string@3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/string/-/string-3.3.3.tgz#5ea211cd92d228e184294990a6cc97b366a77cb0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - -string_decoder@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" - dependencies: - safe-buffer "~5.1.0" - -stringifier@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/stringifier/-/stringifier-1.3.0.tgz#def18342f6933db0f2dbfc9aa02175b448c17959" - dependencies: - core-js "^2.0.0" - traverse "^0.6.6" - type-name "^2.0.1" - -stringstream@~0.0.4, stringstream@~0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" - -strip-bom-buf@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz#1cb45aaf57530f4caf86c7f75179d2c9a51dd572" - dependencies: - is-utf8 "^0.2.1" - -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - dependencies: - is-utf8 "^0.2.0" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - -strip-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" - dependencies: - get-stdin "^4.0.1" - -strip-indent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" - -strip-json-comments@1.0.x, strip-json-comments@~1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" - -strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - -stubs@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/stubs/-/stubs-3.0.0.tgz#e8d2ba1fa9c90570303c030b6900f7d5f89abe5b" - -subtext@6.x.x: - version "6.0.7" - resolved "https://registry.yarnpkg.com/subtext/-/subtext-6.0.7.tgz#8e40a67901a734d598142665c90e398369b885f9" - dependencies: - boom "7.x.x" - content "4.x.x" - hoek "5.x.x" - pez "4.x.x" - wreck "14.x.x" - -superagent@^3.0.0: - version "3.8.2" - resolved "https://registry.yarnpkg.com/superagent/-/superagent-3.8.2.tgz#e4a11b9d047f7d3efeb3bbe536d9ec0021d16403" - dependencies: - component-emitter "^1.2.0" - cookiejar "^2.1.0" - debug "^3.1.0" - extend "^3.0.0" - form-data "^2.3.1" - formidable "^1.1.1" - methods "^1.1.1" - mime "^1.4.1" - qs "^6.5.1" - readable-stream "^2.0.5" - -supertap@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supertap/-/supertap-1.0.0.tgz#bd9751c7fafd68c68cf8222a29892206a119fa9e" - dependencies: - arrify "^1.0.1" - indent-string "^3.2.0" - js-yaml "^3.10.0" - serialize-error "^2.1.0" - strip-ansi "^4.0.0" - -supertest@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/supertest/-/supertest-3.0.0.tgz#8d4bb68fd1830ee07033b1c5a5a9a4021c965296" - dependencies: - methods "~1.1.2" - superagent "^3.0.0" - -supports-color@4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e" - dependencies: - has-flag "^2.0.0" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - -supports-color@^3.1.2: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - dependencies: - has-flag "^1.0.0" - -supports-color@^5.0.0, supports-color@^5.1.0, supports-color@^5.2.0, supports-color@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.3.0.tgz#5b24ac15db80fa927cf5227a4a33fd3c4c7676c0" - dependencies: - has-flag "^3.0.0" - -symbol-observable@^0.2.2: - version "0.2.4" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-0.2.4.tgz#95a83db26186d6af7e7a18dbd9760a2f86d08f40" - -symbol-observable@^1.0.4, symbol-observable@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" - -table@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" - dependencies: - ajv "^5.2.3" - ajv-keywords "^2.1.0" - chalk "^2.1.0" - lodash "^4.17.4" - slice-ansi "1.0.0" - string-width "^2.1.1" - -taffydb@2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/taffydb/-/taffydb-2.6.2.tgz#7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268" - -tar-pack@^3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" - dependencies: - debug "^2.2.0" - fstream "^1.0.10" - fstream-ignore "^1.0.5" - once "^1.3.3" - readable-stream "^2.1.4" - rimraf "^2.5.1" - tar "^2.2.1" - uid-number "^0.0.6" - -tar@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" - dependencies: - block-stream "*" - fstream "^1.0.2" - inherits "2" - -teamwork@3.x.x: - version "3.0.1" - resolved "https://registry.yarnpkg.com/teamwork/-/teamwork-3.0.1.tgz#ff38c7161f41f8070b7813716eb6154036ece196" - -term-size@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" - dependencies: - execa "^0.7.0" - -test-exclude@^4.1.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.1.tgz#dfa222f03480bca69207ca728b37d74b45f724fa" - dependencies: - arrify "^1.0.1" - micromatch "^3.1.8" - object-assign "^4.1.0" - read-pkg-up "^1.0.1" - require-main-filename "^1.0.1" - -text-encoding@^0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/text-encoding/-/text-encoding-0.6.4.tgz#e399a982257a276dae428bb92845cb71bdc26d19" - -text-table@^0.2.0, text-table@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - -through2@^2.0.0, through2@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" - dependencies: - readable-stream "^2.1.5" - xtend "~4.0.1" - -through@^2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - -time-zone@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/time-zone/-/time-zone-1.0.0.tgz#99c5bf55958966af6d06d83bdf3800dc82faec5d" - -timed-out@^4.0.0, timed-out@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - dependencies: - os-tmpdir "~1.0.2" - -to-double-quotes@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-double-quotes/-/to-double-quotes-2.0.0.tgz#aaf231d6fa948949f819301bbab4484d8588e4a7" - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -to-single-quotes@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/to-single-quotes/-/to-single-quotes-2.0.1.tgz#7cc29151f0f5f2c41946f119f5932fe554170125" - -topo@3.x.x: - version "3.0.0" - resolved "https://registry.yarnpkg.com/topo/-/topo-3.0.0.tgz#37e48c330efeac784538e0acd3e62ca5e231fe7a" - dependencies: - hoek "5.x.x" - -tough-cookie@~2.3.0, tough-cookie@~2.3.3: - version "2.3.4" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" - dependencies: - punycode "^1.4.1" - -traverse@^0.6.6: - version "0.6.6" - resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" - -trim-newlines@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" - -trim-newlines@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" - -trim-off-newlines@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - -tslib@^1.8.0, tslib@^1.8.1: - version "1.9.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8" - -tslint@^5.8.0: - version "5.9.1" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.9.1.tgz#1255f87a3ff57eb0b0e1f0e610a8b4748046c9ae" - dependencies: - babel-code-frame "^6.22.0" - builtin-modules "^1.1.1" - chalk "^2.3.0" - commander "^2.12.1" - diff "^3.2.0" - glob "^7.1.1" - js-yaml "^3.7.0" - minimatch "^3.0.4" - resolve "^1.3.2" - semver "^5.3.0" - tslib "^1.8.0" - tsutils "^2.12.1" - -tsutils@^2.12.1: - version "2.22.2" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.22.2.tgz#0b9f3d87aa3eb95bd32d26ce2b88aa329a657951" - dependencies: - tslib "^1.8.1" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - dependencies: - prelude-ls "~1.1.2" - -type-detect@^4.0.0, type-detect@^4.0.5: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - -type-is@^1.5.5, type-is@~1.6.15, type-is@~1.6.16: - version "1.6.16" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" - dependencies: - media-typer "0.3.0" - mime-types "~2.1.18" - -type-name@^2.0.0, type-name@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/type-name/-/type-name-2.0.2.tgz#efe7d4123d8ac52afff7f40c7e4dec5266008fb4" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - -typescript@~2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.6.2.tgz#3c5b6fd7f6de0914269027f03c0946758f7673a4" - -uglify-js@^2.6: - version "2.8.29" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" - dependencies: - source-map "~0.5.1" - yargs "~3.10.0" - optionalDependencies: - uglify-to-browserify "~1.0.0" - -uglify-to-browserify@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" - -uid-number@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" - -uid2@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82" - -underscore-contrib@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/underscore-contrib/-/underscore-contrib-0.3.0.tgz#665b66c24783f8fa2b18c9f8cbb0e2c7d48c26c7" - dependencies: - underscore "1.6.0" - -underscore@1.6.0, underscore@~1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" - -underscore@~1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" - -union-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^0.4.3" - -unique-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" - dependencies: - crypto-random-string "^1.0.0" - -unique-temp-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz#6dce95b2681ca003eebfb304a415f9cbabcc5385" - dependencies: - mkdirp "^0.5.1" - os-tmpdir "^1.0.1" - uid2 "0.0.3" - -universal-deep-strict-equal@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/universal-deep-strict-equal/-/universal-deep-strict-equal-1.2.2.tgz#0da4ac2f73cff7924c81fa4de018ca562ca2b0a7" - dependencies: - array-filter "^1.0.0" - indexof "0.0.1" - object-keys "^1.0.0" - -universalify@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -unzip-response@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" - -update-notifier@^2.2.0, update-notifier@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.3.0.tgz#4e8827a6bb915140ab093559d7014e3ebb837451" - dependencies: - boxen "^1.2.1" - chalk "^2.0.1" - configstore "^3.0.0" - import-lazy "^2.1.0" - is-installed-globally "^0.1.0" - is-npm "^1.0.0" - latest-version "^3.0.0" - semver-diff "^2.0.0" - xdg-basedir "^3.0.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - dependencies: - prepend-http "^1.0.1" - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - dependencies: - prepend-http "^2.0.0" - -url-to-options@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" - -urlgrey@0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/urlgrey/-/urlgrey-0.4.4.tgz#892fe95960805e85519f1cd4389f2cb4cbb7652f" - -use@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544" - dependencies: - kind-of "^6.0.2" - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - -utile@0.2.x: - version "0.2.1" - resolved "https://registry.yarnpkg.com/utile/-/utile-0.2.1.tgz#930c88e99098d6220834c356cbd9a770522d90d7" - dependencies: - async "~0.2.9" - deep-equal "*" - i "0.3.x" - mkdirp "0.x.x" - ncp "0.4.x" - rimraf "2.x.x" - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - -uuid@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" - -uuid@^3.0.0, uuid@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" - -validate-npm-package-license@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338" - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -validate-npm-package-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" - dependencies: - builtins "^1.0.3" - -vary@^1.0.0, vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - -vasync@^1.6.4: - version "1.6.4" - resolved "https://registry.yarnpkg.com/vasync/-/vasync-1.6.4.tgz#dfe93616ad0e7ae801b332a9d88bfc5cdc8e1d1f" - dependencies: - verror "1.6.0" - -verror@1.10.0, verror@^1.10.0, verror@^1.8.1: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -verror@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.6.0.tgz#7d13b27b1facc2e2da90405eb5ea6e5bdd252ea5" - dependencies: - extsprintf "1.2.0" - -vise@3.x.x: - version "3.0.0" - resolved "https://registry.yarnpkg.com/vise/-/vise-3.0.0.tgz#76ad14ab31669c50fbb0817bc0e72fedcbb3bf4c" - dependencies: - hoek "5.x.x" - -vow-fs@~0.3.4: - version "0.3.6" - resolved "https://registry.yarnpkg.com/vow-fs/-/vow-fs-0.3.6.tgz#2d4c59be22e2bf2618ddf597ab4baa923be7200d" - dependencies: - glob "^7.0.5" - uuid "^2.0.2" - vow "^0.4.7" - vow-queue "^0.4.1" - -vow-queue@^0.4.1: - version "0.4.3" - resolved "https://registry.yarnpkg.com/vow-queue/-/vow-queue-0.4.3.tgz#4ba8f64b56e9212c0dbe57f1405aeebd54cce78d" - dependencies: - vow "^0.4.17" - -vow@^0.4.17, vow@^0.4.7, vow@~0.4.8: - version "0.4.17" - resolved "https://registry.yarnpkg.com/vow/-/vow-0.4.17.tgz#b16e08fae58c52f3ebc6875f2441b26a92682904" - -wbuf@^1.1.0, wbuf@^1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - dependencies: - minimalistic-assert "^1.0.0" - -well-known-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/well-known-symbols/-/well-known-symbols-1.0.0.tgz#73c78ae81a7726a8fa598e2880801c8b16225518" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - -which@^1.2.9, which@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" - dependencies: - string-width "^1.0.2" - -widest-line@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.0.tgz#0142a4e8a243f8882c0233aa0e0281aa76152273" - dependencies: - string-width "^2.1.1" - -window-size@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - -winston@0.8.x: - version "0.8.3" - resolved "https://registry.yarnpkg.com/winston/-/winston-0.8.3.tgz#64b6abf4cd01adcaefd5009393b1d8e8bec19db0" - dependencies: - async "0.2.x" - colors "0.6.x" - cycle "1.0.x" - eyes "0.1.x" - isstream "0.1.x" - pkginfo "0.3.x" - stack-trace "0.0.x" - -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - -wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - -wreck@14.x.x: - version "14.0.2" - resolved "https://registry.yarnpkg.com/wreck/-/wreck-14.0.2.tgz#89c17a9061c745ed1c3aebcb66ea181dbaab454c" - dependencies: - boom "7.x.x" - hoek "5.x.x" - -write-file-atomic@^1.1.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - slide "^1.1.5" - -write-file-atomic@^2.0.0, write-file-atomic@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - -write-json-file@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-2.3.0.tgz#2b64c8a33004d54b8698c76d585a77ceb61da32f" - dependencies: - detect-indent "^5.0.0" - graceful-fs "^4.1.2" - make-dir "^1.0.0" - pify "^3.0.0" - sort-keys "^2.0.0" - write-file-atomic "^2.0.0" - -write-pkg@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-3.1.0.tgz#030a9994cc9993d25b4e75a9f1a1923607291ce9" - dependencies: - sort-keys "^2.0.0" - write-json-file "^2.2.0" - -write@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" - dependencies: - mkdirp "^0.5.1" - -xdg-basedir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" - -xmlbuilder@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-3.1.0.tgz#2c86888f2d4eade850fa38ca7f7223f7209516e1" - dependencies: - lodash "^3.5.0" - -xmlcreate@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-1.0.2.tgz#fa6bf762a60a413fb3dd8f4b03c5b269238d308f" - -xtend@^4.0.0, xtend@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - -y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - -yargs-parser@9.0.2, yargs-parser@^9.0.2: - version "9.0.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" - dependencies: - camelcase "^4.1.0" - -yargs-parser@^8.0.0, yargs-parser@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950" - dependencies: - camelcase "^4.1.0" - -yargs@11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.0.0.tgz#c052931006c5eee74610e5fc0354bedfd08a201b" - dependencies: - cliui "^4.0.0" - decamelize "^1.1.1" - find-up "^2.1.0" - get-caller-file "^1.0.1" - os-locale "^2.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^9.0.2" - -yargs@^10.0.3: - version "10.1.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.1.2.tgz#454d074c2b16a51a43e2fb7807e4f9de69ccb5c5" - dependencies: - cliui "^4.0.0" - decamelize "^1.1.1" - find-up "^2.1.0" - get-caller-file "^1.0.1" - os-locale "^2.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^8.1.0" - -yargs@~3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" - dependencies: - camelcase "^1.0.2" - cliui "^2.1.0" - decamelize "^1.0.0" - window-size "0.1.0" From 583d11f309982c27157e18495a103582c68b62d2 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Sat, 19 May 2018 07:21:53 -0700 Subject: [PATCH 100/527] fix: drop support for node.js 4.x (#126) --- handwritten/error-reporting/.circleci/config.yml | 15 ++------------- handwritten/error-reporting/README.md | 3 --- handwritten/error-reporting/package.json | 4 ++-- 3 files changed, 4 insertions(+), 18 deletions(-) diff --git a/handwritten/error-reporting/.circleci/config.yml b/handwritten/error-reporting/.circleci/config.yml index a7aef08dc3d..ad4d33f5e02 100644 --- a/handwritten/error-reporting/.circleci/config.yml +++ b/handwritten/error-reporting/.circleci/config.yml @@ -3,10 +3,6 @@ workflows: version: 2 tests: jobs: &workflow_jobs - - node4: - filters: - tags: - only: /.*/ - node6: filters: tags: @@ -25,7 +21,6 @@ workflows: only: /.*/ - lint: requires: - - node4 - node6 - node8 - node9 @@ -35,7 +30,6 @@ workflows: only: /.*/ - docs: requires: - - node4 - node6 - node8 - node9 @@ -79,9 +73,9 @@ workflows: only: master jobs: *workflow_jobs jobs: - node4: + node6: docker: - - image: 'node:4' + - image: 'node:6' user: node steps: &unit_tests_steps - checkout @@ -106,11 +100,6 @@ jobs: - run: name: Run unit tests. command: npm run test-only - node6: - docker: - - image: 'node:6' - user: node - steps: *unit_tests_steps node8: docker: - image: 'node:8' diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 79584377680..ea2ea86db21 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -68,9 +68,6 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. // Node 6+ const {ErrorReporting} = require('@google-cloud/error-reporting'); - // Node 4+ - // const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; - // Using ES6 style imports via TypeScript or Babel // import {ErrorReporting} from '@google-cloud/error-reporting'; diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index fd813c6756b..041b2257936 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,11 +1,11 @@ { "name": "@google-cloud/error-reporting", "description": "Stackdriver Error Reporting Client Library for Node.js", - "version": "0.4.0", + "version": "0.5.0", "license": "Apache-2.0", "author": "Google Inc.", "engines": { - "node": ">=4.0" + "node": ">=6.0" }, "repository": "googleapis/nodejs-error-reporting", "main": "./build/src/index.js", From 6c4e09d46ad6b69d7b2190b13c938c94ada23d69 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Sat, 19 May 2018 07:31:55 -0700 Subject: [PATCH 101/527] fix: update a variety of dependencies (#124) --- handwritten/error-reporting/package-lock.json | 190 +++++------------- handwritten/error-reporting/package.json | 68 +++---- .../error-reporting/src/interfaces/hapi.ts | 14 +- .../error-reporting/src/interfaces/restify.ts | 2 +- .../src/request-extractors/hapi.ts | 47 +++-- .../test/test-servers/hapi_scaffold_server.ts | 25 +-- .../test/unit/interfaces/hapi.ts | 24 ++- .../test/unit/request-extractors/hapi.ts | 2 +- 8 files changed, 135 insertions(+), 237 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index 8ad09fbd346..dac71ea76e3 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -2028,9 +2028,9 @@ } }, "@types/boom": { - "version": "4.3.10", - "resolved": "https://registry.npmjs.org/@types/boom/-/boom-4.3.10.tgz", - "integrity": "sha512-5iXMLKwCxW0FK0G4XgS5kn0VZQv31DhVAeB36YhxzFpWF4QKa6ZLn4XrziIK2j662p9Azs+lFpFrsuUzC8376g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/boom/-/boom-7.2.0.tgz", + "integrity": "sha512-HonbGsHFbskh9zRAzA6tabcw18mCOsSEOL2ibGAuVqk6e7nElcRmWO5L4UfIHpDbWBWw+eZYFdsQ1+MEGgpcVA==", "dev": true }, "@types/bunyan": { @@ -2050,13 +2050,10 @@ "dev": true }, "@types/catbox": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/@types/catbox/-/catbox-7.1.6.tgz", - "integrity": "sha512-xcLIJdHkkqB6dyclgvFee8GjfeVYzTJAoFiOZlAnZ9R5mv/8VCnUuaQ4z/v3GrlKUL4j9YEbhOimtFawGBe4ng==", - "dev": true, - "requires": { - "@types/boom": "4.3.10" - } + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@types/catbox/-/catbox-10.0.0.tgz", + "integrity": "sha512-FVnKcN80WTKLTaCfUqd+L4h8j/SQdA66MMe1mOrWqOpEMnM0aHbBw1qNbRO1Bfhc4i4YXkFv27QAsP5L4VAgXg==", + "dev": true }, "@types/connect": { "version": "3.4.32", @@ -2133,14 +2130,14 @@ } }, "@types/hapi": { - "version": "16.1.14", - "resolved": "https://registry.npmjs.org/@types/hapi/-/hapi-16.1.14.tgz", - "integrity": "sha512-VeWocvlYrFINg4ZloxSPkg9qtd9aHMkH1Lt4bPqguSLSTrd51D67tcz8+crhsWsClViTylB6deRatxZzOnly7g==", + "version": "17.0.12", + "resolved": "https://registry.npmjs.org/@types/hapi/-/hapi-17.0.12.tgz", + "integrity": "sha512-OdCd3r7IVLM894EGA6jrrxJpbY7r3EG+jJBGveGshMxwxQE58mL7NdRcr4hmdCzsgUl3aVtZkSK4GpAf8C9kMw==", "dev": true, "requires": { - "@types/boom": "4.3.10", - "@types/catbox": "7.1.6", - "@types/events": "1.2.0", + "@types/boom": "7.2.0", + "@types/catbox": "10.0.0", + "@types/iron": "5.0.1", "@types/joi": "13.0.8", "@types/mimos": "3.0.1", "@types/node": "10.1.1", @@ -2154,6 +2151,15 @@ "integrity": "sha512-x1553BFcgBVOD6y3tC/2SOVcNaf6b9eH3BvqniAZZwmHWYhyr8ffXTYygQC/hQxNI4Yfc3q0gGUvyiAHV4tRNg==", "dev": true }, + "@types/iron": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/iron/-/iron-5.0.1.tgz", + "integrity": "sha512-Ng5BkVGPt7Tw9k1OJ6qYwuD9+dmnWgActmsnnrdvs4075N8V2go1f6Pz8omG3q5rbHjXN6yzzZDYo3JOgAE/Ug==", + "dev": true, + "requires": { + "@types/node": "10.1.1" + } + }, "@types/is": { "version": "0.0.20", "resolved": "https://registry.npmjs.org/@types/is/-/is-0.0.20.tgz", @@ -2444,15 +2450,6 @@ "hoek": "5.0.3" }, "dependencies": { - "boom": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", - "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", - "dev": true, - "requires": { - "hoek": "5.0.3" - } - }, "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", @@ -3392,11 +3389,20 @@ } }, "boom": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", - "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", + "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", + "dev": true, "requires": { - "hoek": "4.2.1" + "hoek": "5.0.3" + }, + "dependencies": { + "hoek": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", + "dev": true + } } }, "bounce": { @@ -3409,15 +3415,6 @@ "hoek": "5.0.3" }, "dependencies": { - "boom": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", - "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", - "dev": true, - "requires": { - "hoek": "5.0.3" - } - }, "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", @@ -3588,15 +3585,6 @@ "hoek": "5.0.3" }, "dependencies": { - "boom": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", - "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", - "dev": true, - "requires": { - "hoek": "5.0.3" - } - }, "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", @@ -3676,15 +3664,6 @@ "joi": "13.3.0" }, "dependencies": { - "boom": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", - "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", - "dev": true, - "requires": { - "hoek": "5.0.3" - } - }, "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", @@ -3704,15 +3683,6 @@ "hoek": "5.0.3" }, "dependencies": { - "boom": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", - "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", - "dev": true, - "requires": { - "hoek": "5.0.3" - } - }, "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", @@ -4066,23 +4036,6 @@ "dev": true, "requires": { "boom": "7.2.0" - }, - "dependencies": { - "boom": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", - "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", - "dev": true, - "requires": { - "hoek": "5.0.3" - } - }, - "hoek": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", - "dev": true - } } }, "content-disposition": { @@ -6684,15 +6637,6 @@ "topo": "3.0.0" }, "dependencies": { - "boom": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", - "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", - "dev": true, - "requires": { - "hoek": "5.0.3" - } - }, "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", @@ -6766,6 +6710,16 @@ "cryptiles": "3.1.2", "hoek": "4.2.1", "sntp": "2.1.0" + }, + "dependencies": { + "boom": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", + "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", + "requires": { + "hoek": "4.2.1" + } + } } }, "he": { @@ -6785,15 +6739,6 @@ "joi": "13.3.0" }, "dependencies": { - "boom": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", - "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", - "dev": true, - "requires": { - "hoek": "5.0.3" - } - }, "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", @@ -7074,15 +7019,6 @@ "hoek": "5.0.3" }, "dependencies": { - "boom": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", - "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", - "dev": true, - "requires": { - "hoek": "5.0.3" - } - }, "cryptiles": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-4.1.1.tgz", @@ -11911,15 +11847,6 @@ "nigel": "3.0.1" }, "dependencies": { - "boom": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", - "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", - "dev": true, - "requires": { - "hoek": "5.0.3" - } - }, "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", @@ -13220,15 +13147,6 @@ "joi": "13.3.0" }, "dependencies": { - "boom": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", - "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", - "dev": true, - "requires": { - "hoek": "5.0.3" - } - }, "cryptiles": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-4.1.1.tgz", @@ -13388,15 +13306,6 @@ "wreck": "14.0.2" }, "dependencies": { - "boom": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", - "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", - "dev": true, - "requires": { - "hoek": "5.0.3" - } - }, "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", @@ -14077,15 +13986,6 @@ "hoek": "5.0.3" }, "dependencies": { - "boom": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", - "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", - "dev": true, - "requires": { - "hoek": "5.0.3" - } - }, "hoek": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 041b2257936..70b2da8598e 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -55,19 +55,19 @@ }, "dependencies": { "@google-cloud/common": "^0.17.0", - "is": "^3.2.0", + "is": "^3.2.1", "lodash.has": "^4.5.2" }, "devDependencies": { - "@google-cloud/nodejs-repo-tools": "^2.0.11", - "@types/boom": "^4.3.10", - "@types/express": "^4.11.0", + "@google-cloud/nodejs-repo-tools": "^2.3.0", + "@types/boom": "^7.2.0", + "@types/express": "^4.11.1", "@types/express-serve-static-core": "^4.11.1", "@types/extend": "^3.0.0", "@types/glob": "^5.0.35", - "@types/hapi": "^16.1.11", + "@types/hapi": "^17.0.12", "@types/is": "0.0.20", - "@types/koa": "^2.0.43", + "@types/koa": "^2.0.45", "@types/lodash.assign": "^4.2.3", "@types/lodash.has": "^4.5.3", "@types/lodash.maxby": "^4.6.3", @@ -77,57 +77,57 @@ "@types/lodash.pick": "^4.4.3", "@types/lodash.random": "^3.2.3", "@types/lodash.without": "^4.4.3", - "@types/mocha": "^5.0.0", + "@types/mocha": "^5.2.0", "@types/ncp": "^2.0.1", - "@types/nock": "^9.1.2", - "@types/node": "^10.0.7", + "@types/nock": "^9.1.3", + "@types/node": "^10.1.1", "@types/once": "^1.4.0", - "@types/pify": "^3.0.1", + "@types/pify": "^3.0.2", "@types/proxyquire": "^1.3.28", - "@types/request": "^2.0.9", - "@types/restify": "^5.0.6", + "@types/request": "^2.47.0", + "@types/restify": "^5.0.8", "@types/rimraf": "^2.0.2", "@types/tmp": "0.0.33", - "body-parser": "^1.15.1", - "boom": "^4.3.1", - "codecov": "^3.0.0", + "body-parser": "^1.18.3", + "boom": "^7.2.0", + "codecov": "^3.0.2", "cpy-cli": "^1.0.1", - "eslint": "^4.9.0", - "eslint-config-prettier": "^2.6.0", - "eslint-plugin-node": "^6.0.0", - "eslint-plugin-prettier": "^2.3.1", - "express": "^4.13.4", + "eslint": "^4.19.1", + "eslint-config-prettier": "^2.9.0", + "eslint-plugin-node": "^6.0.1", + "eslint-plugin-prettier": "^2.6.0", + "express": "^4.16.3", "express-serve-static-core": "^0.1.1", - "extend": "^3.0.0", + "extend": "^3.0.1", "glob": "^7.1.2", "gts": "^0.6.0", - "hapi": "^17.1.1", - "ink-docstrap": "^1.3.0", + "hapi": "^17.4.0", + "ink-docstrap": "^1.3.2", "intelli-espower-loader": "^1.0.1", "js-green-licenses": "^0.5.0", "jsdoc": "^3.5.5", - "koa": "^2.5.0", + "koa": "^2.5.1", "lodash.assign": "^4.2.0", "lodash.maxby": "^4.6.0", - "lodash.merge": "^4.6.0", + "lodash.merge": "^4.6.1", "lodash.omit": "^4.5.0", "lodash.omitby": "^4.6.0", "lodash.pick": "^4.4.0", "lodash.random": "^3.2.0", "lodash.without": "^4.4.0", - "mocha": "^5.0.0", + "mocha": "^5.1.1", "ncp": "^2.0.0", - "nock": "^9.0.0", - "nyc": "^11.3.0", + "nock": "^9.2.6", + "nyc": "^11.8.0", "once": "^1.4.0", "pify": "^3.0.0", - "power-assert": "^1.4.4", - "prettier": "^1.7.4", - "proxyquire": "^2.0.0", - "request": "^2.85.0", - "restify": "^7.1.1", + "power-assert": "^1.5.0", + "prettier": "^1.12.1", + "proxyquire": "^2.0.1", + "request": "^2.86.0", + "restify": "^7.2.0", "rimraf": "^2.6.2", "tmp": "0.0.33", - "typescript": "~2.8.1" + "typescript": "~2.8.3" } } diff --git a/handwritten/error-reporting/src/interfaces/hapi.ts b/handwritten/error-reporting/src/interfaces/hapi.ts index a65c3e04fcb..583528aa125 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.ts +++ b/handwritten/error-reporting/src/interfaces/hapi.ts @@ -14,10 +14,11 @@ * limitations under the License. */ -import * as is from 'is'; +import boom from 'boom'; +import is from 'is'; + const isObject = is.object; -// TODO: Address the error where `is` does not have a `fn` property -const isFunction = (is as {} as {fn: Function}).fn; +const isFunction = is.fn; import {ErrorMessage} from '../classes/error-message'; import {hapiRequestInformationExtractor} from '../request-extractors/hapi'; import {populateErrorMessage} from '../populate-error-message'; @@ -25,7 +26,7 @@ const packageJson = require('../../../package.json'); import {RequestHandler} from '../google-apis/auth-client'; import {Configuration} from '../configuration'; -import * as hapi from 'hapi'; +import hapi from 'hapi'; /** * The Hapi error handler function serves simply to create an error message @@ -109,9 +110,10 @@ export function makeHapiPlugin(client: RequestHandler, config: Configuration) { if (isFunction(server.ext)) { server.ext( 'onPreResponse', - (request: hapi.Request, reply: hapi.ReplyWithContinue) => { + (request: hapi.Request, + reply: any) => { // tslint:disable-line:no-any if (isObject(request) && request.response && - request.response.isBoom) { + (request.response as boom).isBoom) { // Cast to {} is necessary, as@types/hapi@16 incorrectly types // response as 'Response | null' instead of 'Response | Boom | // null'. diff --git a/handwritten/error-reporting/src/interfaces/restify.ts b/handwritten/error-reporting/src/interfaces/restify.ts index 582eb8b7988..f093dd9367b 100644 --- a/handwritten/error-reporting/src/interfaces/restify.ts +++ b/handwritten/error-reporting/src/interfaces/restify.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as is from 'is'; +import is from 'is'; const isObject = is.object; const isFunction = is.function; import {ErrorMessage} from '../classes/error-message'; diff --git a/handwritten/error-reporting/src/request-extractors/hapi.ts b/handwritten/error-reporting/src/request-extractors/hapi.ts index ee98e50617c..c28f08447a0 100644 --- a/handwritten/error-reporting/src/request-extractors/hapi.ts +++ b/handwritten/error-reporting/src/request-extractors/hapi.ts @@ -14,6 +14,7 @@ * limitations under the License. */ +import boom from 'boom'; import is from 'is'; import has from 'lodash.has'; @@ -33,17 +34,15 @@ import hapi from 'hapi'; * extractable status code. */ function attemptToExtractStatusCode(req: hapi.Request) { - // TODO: Handle the cases where `req.response` and `req.response.output` - // are `null` in this function - if (has(req, 'response') && isObject(req.response) && - has(req.response, 'statusCode')) { - return req.response!.statusCode; - } else if ( - has(req, 'response') && isObject(req.response) && - isObject(req.response!.output)) { - return req.response!.output!.statusCode; + // TODO: Handle the cases where `req.response` and `req.response.output` are + // `null` in this function + if (has(req, 'response') && is.object(req.response)) { + if (has(req.response, 'statusCode')) { + return (req.response as hapi.ResponseObject).statusCode; + } else if (is.object((req.response as boom).output)) { + return (req.response as boom).output.statusCode; + } } - return 0; } @@ -61,7 +60,7 @@ function attemptToExtractStatusCode(req: hapi.Request) { function extractRemoteAddressFromRequest(req: hapi.Request) { if (has(req.headers, 'x-forwarded-for')) { return req.headers['x-forwarded-for']; - } else if (isObject(req.info)) { + } else if (is.object(req.info)) { return req.info.remoteAddress; } @@ -80,19 +79,19 @@ function extractRemoteAddressFromRequest(req: hapi.Request) { export function hapiRequestInformationExtractor(req?: hapi.Request) { const returnObject = new RequestInformationContainer(); - if (!isObject(req) || !isObject(req!.headers) || isFunction(req) || - isArray(req)) { - return returnObject; - } + if (!is.object(req) || !is.object(req!.headers) || is.function(req) || + is.array(req)) { + return returnObject; + } - returnObject - .setMethod(req!.method) - // TODO: Address the type conflict that requires a cast to string - .setUrl(req!.url as {} as string) - .setUserAgent(req!.headers['user-agent']) - .setReferrer(req!.headers.referrer) - .setStatusCode(attemptToExtractStatusCode(req!)) - .setRemoteAddress(extractRemoteAddressFromRequest(req!)); + returnObject + .setMethod(req!.method) + // TODO: Address the type conflict that requires a cast to string + .setUrl(req!.url as {} as string) + .setUserAgent(req!.headers['user-agent']) + .setReferrer(req!.headers.referrer) + .setStatusCode(attemptToExtractStatusCode(req!)) + .setRemoteAddress(extractRemoteAddressFromRequest(req!)); - return returnObject; + return returnObject; } diff --git a/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts index 0ef1d6012a8..15bc4f66830 100644 --- a/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts @@ -14,12 +14,11 @@ * limitations under the License. */ -import * as hapi from 'hapi'; +import Hapi from 'hapi'; import {ErrorReporting} from '../../src/index'; const errorHandler = new ErrorReporting(); -const server = new hapi.Server(); -server.connection({port: 3000}); +const server = new Hapi.Server({port: 3000}); // eslint-disable-next-line no-console const log = console.log; @@ -27,13 +26,6 @@ const log = console.log; // eslint-disable-next-line no-console const error = console.error; -server.start(err => { - if (err) { - throw err; - } - log('Server running at', server.info!.uri); -}); - server.route({ method: 'GET', path: '/get', @@ -52,9 +44,10 @@ server.route({ }, }); -server.register( - {register: errorHandler.hapi} as {} as hapi.PluginFunction<{}>, err => { - if (err) { - error('There was an error in registering the plugin', err); - } - }); +server.register({plugin: errorHandler.hapi}).then(() => { + log('Plugin registered.'); +}); + +server.start().then(() => { + log('Server running at', server.info!.uri); +}); \ No newline at end of file diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.ts b/handwritten/error-reporting/test/unit/interfaces/hapi.ts index 6c0e148fa1f..f74ca43f9e5 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.ts +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.ts @@ -28,7 +28,7 @@ import {RequestHandler} from '../../../src/google-apis/auth-client'; import {FakeConfiguration as Configuration} from '../../fixtures/configuration'; import * as http from 'http'; import * as hapi from 'hapi'; -import * as boom from 'boom'; +import boom from 'boom'; const packageJson = require('../../../../package.json'); @@ -138,12 +138,13 @@ describe('Hapi interface', () => { it('Should call continue when a boom is emitted if reply is an object', done => { plugin.register(fakeServer, null!, () => {}); - fakeServer.emit(EVENT, {response: boom.create(427, 'message')}, { - continue() { - // The continue function should be called - done(); - }, - }); + fakeServer.emit( + EVENT, {response: new boom('message', {statusCode: 427})}, { + continue() { + // The continue function should be called + done(); + }, + }); }); it('Should call continue when a boom is emitted if reply is a function', done => { @@ -158,7 +159,8 @@ describe('Hapi interface', () => { // The continue function should be called done(); }; - fakeServer.emit(EVENT, {response: boom.create(427, 'message')}, reply); + fakeServer.emit( + EVENT, {response: new boom('message', {statusCode: 427})}, reply); }); it('Should call sendError when a boom is received', done => { const fakeClient = { @@ -169,7 +171,8 @@ describe('Hapi interface', () => { } as {} as RequestHandler; const plugin = hapiInterface(fakeClient, config); plugin.register(fakeServer, null!, () => {}); - fakeServer.emit('onPreResponse', {response: boom.create(427, 'message')}); + fakeServer.emit( + 'onPreResponse', {response: new boom('message', {statusCode: 427})}); }); it('Should call next when completing a request', done => { plugin.register(fakeServer, null!, () => { @@ -177,7 +180,8 @@ describe('Hapi interface', () => { done(); }); fakeServer.emit( - EVENT, {response: boom.create(427, 'message')}, {continue() {}}); + EVENT, {response: new boom('message', {statusCode: 427})}, + {continue() {}}); }); }); describe('Hapi17', () => { diff --git a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts index f9d4c52566e..9c580404cd9 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts @@ -15,7 +15,7 @@ */ import assert from 'assert'; -import * as hapi from 'hapi'; +import hapi from 'hapi'; import {hapiRequestInformationExtractor} from '../../../src/request-extractors/hapi'; import {Fuzzer} from '../../../utils/fuzzer'; From ea874a5f9cdcac452effd20a7a1d84cb52027f3c Mon Sep 17 00:00:00 2001 From: Alexander Fenster Date: Tue, 22 May 2018 12:45:00 -0700 Subject: [PATCH 102/527] chore: link before install in samples (#132) --- handwritten/error-reporting/.circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/.circleci/config.yml b/handwritten/error-reporting/.circleci/config.yml index ad4d33f5e02..db4822300a5 100644 --- a/handwritten/error-reporting/.circleci/config.yml +++ b/handwritten/error-reporting/.circleci/config.yml @@ -154,8 +154,8 @@ jobs: name: Link the module being tested to the samples. command: | cd samples/ - npm install npm link @google-cloud/error-reporting + npm install cd .. environment: NPM_CONFIG_PREFIX: /home/node/.npm-global From 47c4312f10b889584d40f14a7fe425c98402bdd5 Mon Sep 17 00:00:00 2001 From: Alexander Fenster Date: Tue, 22 May 2018 13:57:53 -0700 Subject: [PATCH 103/527] chore: fix samples linting (#133) --- .../error-reporting/.circleci/config.yml | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/handwritten/error-reporting/.circleci/config.yml b/handwritten/error-reporting/.circleci/config.yml index db4822300a5..a6e772b48a2 100644 --- a/handwritten/error-reporting/.circleci/config.yml +++ b/handwritten/error-reporting/.circleci/config.yml @@ -122,9 +122,21 @@ jobs: steps: - checkout - run: *remove_package_lock - - run: npm install - - run: cd samples && npm install && cd ../ - - run: npm run lint + - run: *npm_install_and_link + - run: &samples_npm_install_and_link + name: Link the module being tested to the samples. + command: | + cd samples/ + npm link @google-cloud/error-reporting + npm install + cd .. + environment: + NPM_CONFIG_PREFIX: /home/node/.npm-global + - run: + name: Run linting. + command: npm run lint + environment: + NPM_CONFIG_PREFIX: /home/node/.npm-global docs: docker: - image: 'node:8' @@ -150,15 +162,7 @@ jobs: -out .circleci/key.json \ -k "${SYSTEM_TESTS_ENCRYPTION_KEY}" - run: *npm_install_and_link - - run: &samples_npm_install_and_link - name: Link the module being tested to the samples. - command: | - cd samples/ - npm link @google-cloud/error-reporting - npm install - cd .. - environment: - NPM_CONFIG_PREFIX: /home/node/.npm-global + - run: *samples_npm_install_and_link - run: name: Run sample tests. command: npm run samples-test From 055cecbf240fbe02e9e5aedbf4243a7702fb89e9 Mon Sep 17 00:00:00 2001 From: Alexander Fenster Date: Tue, 22 May 2018 14:13:57 -0700 Subject: [PATCH 104/527] chore: lock files maintenance (#131) * chore: lock files maintenance * chore: lock files maintenance * chore: lock files maintenance --- handwritten/error-reporting/package-lock.json | 2222 ++++++----------- 1 file changed, 699 insertions(+), 1523 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index dac71ea76e3..caf964e9518 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/error-reporting", - "version": "0.4.0", + "version": "0.5.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -97,7 +97,7 @@ "log-driver": "1.2.7", "methmeth": "1.1.0", "modelo": "4.2.3", - "request": "2.86.0", + "request": "2.87.0", "retry-request": "3.3.1", "split-array-stream": "1.0.3", "stream-events": "1.0.4", @@ -170,8 +170,7 @@ "dependencies": { "align-text": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2", @@ -181,26 +180,22 @@ }, "amdefine": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "bundled": true, "dev": true }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "bundled": true, "dev": true }, "ansi-styles": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "bundled": true, "dev": true }, "append-transform": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "bundled": true, "dev": true, "requires": { "default-require-extensions": "1.0.0" @@ -208,14 +203,12 @@ }, "archy": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "bundled": true, "dev": true }, "arr-diff": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "bundled": true, "dev": true, "requires": { "arr-flatten": "1.1.0" @@ -223,32 +216,27 @@ }, "arr-flatten": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "bundled": true, "dev": true }, "array-unique": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "bundled": true, "dev": true }, "arrify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "bundled": true, "dev": true }, "async": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "bundled": true, "dev": true }, "babel-code-frame": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "bundled": true, "dev": true, "requires": { "chalk": "1.1.3", @@ -258,8 +246,7 @@ }, "babel-generator": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", - "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "bundled": true, "dev": true, "requires": { "babel-messages": "6.23.0", @@ -274,8 +261,7 @@ }, "babel-messages": { "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "bundled": true, "dev": true, "requires": { "babel-runtime": "6.26.0" @@ -283,8 +269,7 @@ }, "babel-runtime": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "bundled": true, "dev": true, "requires": { "core-js": "2.5.3", @@ -293,8 +278,7 @@ }, "babel-template": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "bundled": true, "dev": true, "requires": { "babel-runtime": "6.26.0", @@ -306,8 +290,7 @@ }, "babel-traverse": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "bundled": true, "dev": true, "requires": { "babel-code-frame": "6.26.0", @@ -323,8 +306,7 @@ }, "babel-types": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "bundled": true, "dev": true, "requires": { "babel-runtime": "6.26.0", @@ -335,20 +317,17 @@ }, "babylon": { "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "bundled": true, "dev": true }, "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "bundled": true, "dev": true }, "brace-expansion": { "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "bundled": true, "dev": true, "requires": { "balanced-match": "1.0.0", @@ -357,8 +336,7 @@ }, "braces": { "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "bundled": true, "dev": true, "requires": { "expand-range": "1.8.2", @@ -368,14 +346,12 @@ }, "builtin-modules": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "bundled": true, "dev": true }, "caching-transform": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", - "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", + "bundled": true, "dev": true, "requires": { "md5-hex": "1.3.0", @@ -385,15 +361,13 @@ }, "camelcase": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "bundled": true, "dev": true, "optional": true }, "center-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -403,8 +377,7 @@ }, "chalk": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "bundled": true, "dev": true, "requires": { "ansi-styles": "2.2.1", @@ -416,8 +389,7 @@ }, "cliui": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -428,8 +400,7 @@ "dependencies": { "wordwrap": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "bundled": true, "dev": true, "optional": true } @@ -437,38 +408,32 @@ }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "bundled": true, "dev": true }, "commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "bundled": true, "dev": true }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "bundled": true, "dev": true }, "convert-source-map": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "bundled": true, "dev": true }, "core-js": { "version": "2.5.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", - "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "bundled": true, "dev": true }, "cross-spawn": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "bundled": true, "dev": true, "requires": { "lru-cache": "4.1.1", @@ -477,8 +442,7 @@ }, "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "bundled": true, "dev": true, "requires": { "ms": "2.0.0" @@ -486,20 +450,17 @@ }, "debug-log": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", - "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", + "bundled": true, "dev": true }, "decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "bundled": true, "dev": true }, "default-require-extensions": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "bundled": true, "dev": true, "requires": { "strip-bom": "2.0.0" @@ -507,8 +468,7 @@ }, "detect-indent": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "bundled": true, "dev": true, "requires": { "repeating": "2.0.1" @@ -516,8 +476,7 @@ }, "error-ex": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "bundled": true, "dev": true, "requires": { "is-arrayish": "0.2.1" @@ -525,20 +484,17 @@ }, "escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "bundled": true, "dev": true }, "esutils": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "bundled": true, "dev": true }, "execa": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "bundled": true, "dev": true, "requires": { "cross-spawn": "5.1.0", @@ -552,8 +508,7 @@ "dependencies": { "cross-spawn": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "bundled": true, "dev": true, "requires": { "lru-cache": "4.1.1", @@ -565,8 +520,7 @@ }, "expand-brackets": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "bundled": true, "dev": true, "requires": { "is-posix-bracket": "0.1.1" @@ -574,8 +528,7 @@ }, "expand-range": { "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "bundled": true, "dev": true, "requires": { "fill-range": "2.2.3" @@ -583,8 +536,7 @@ }, "extglob": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "bundled": true, "dev": true, "requires": { "is-extglob": "1.0.0" @@ -592,14 +544,12 @@ }, "filename-regex": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "bundled": true, "dev": true }, "fill-range": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "bundled": true, "dev": true, "requires": { "is-number": "2.1.0", @@ -611,8 +561,7 @@ }, "find-cache-dir": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "bundled": true, "dev": true, "requires": { "commondir": "1.0.1", @@ -622,8 +571,7 @@ }, "find-up": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "bundled": true, "dev": true, "requires": { "locate-path": "2.0.0" @@ -631,14 +579,12 @@ }, "for-in": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "bundled": true, "dev": true }, "for-own": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "bundled": true, "dev": true, "requires": { "for-in": "1.0.2" @@ -646,8 +592,7 @@ }, "foreground-child": { "version": "1.5.6", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", - "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "bundled": true, "dev": true, "requires": { "cross-spawn": "4.0.2", @@ -656,26 +601,22 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "bundled": true, "dev": true }, "get-caller-file": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "bundled": true, "dev": true }, "get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "bundled": true, "dev": true }, "glob": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "bundled": true, "dev": true, "requires": { "fs.realpath": "1.0.0", @@ -688,8 +629,7 @@ }, "glob-base": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "bundled": true, "dev": true, "requires": { "glob-parent": "2.0.0", @@ -698,8 +638,7 @@ }, "glob-parent": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "bundled": true, "dev": true, "requires": { "is-glob": "2.0.1" @@ -707,20 +646,17 @@ }, "globals": { "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "bundled": true, "dev": true }, "graceful-fs": { "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "bundled": true, "dev": true }, "handlebars": { "version": "4.0.11", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", - "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "bundled": true, "dev": true, "requires": { "async": "1.5.2", @@ -731,8 +667,7 @@ "dependencies": { "source-map": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "bundled": true, "dev": true, "requires": { "amdefine": "1.0.1" @@ -742,8 +677,7 @@ }, "has-ansi": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "2.1.1" @@ -751,26 +685,22 @@ }, "has-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "bundled": true, "dev": true }, "hosted-git-info": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", + "bundled": true, "dev": true }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "bundled": true, "dev": true }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "dev": true, "requires": { "once": "1.4.0", @@ -779,14 +709,12 @@ }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "bundled": true, "dev": true }, "invariant": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "bundled": true, "dev": true, "requires": { "loose-envify": "1.3.1" @@ -794,26 +722,22 @@ }, "invert-kv": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "bundled": true, "dev": true }, "is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "bundled": true, "dev": true }, "is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "bundled": true, "dev": true }, "is-builtin-module": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "bundled": true, "dev": true, "requires": { "builtin-modules": "1.1.1" @@ -821,14 +745,12 @@ }, "is-dotfile": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "bundled": true, "dev": true }, "is-equal-shallow": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "bundled": true, "dev": true, "requires": { "is-primitive": "2.0.0" @@ -836,20 +758,17 @@ }, "is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "bundled": true, "dev": true }, "is-extglob": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "bundled": true, "dev": true }, "is-finite": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "bundled": true, "dev": true, "requires": { "number-is-nan": "1.0.1" @@ -857,8 +776,7 @@ }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, "dev": true, "requires": { "number-is-nan": "1.0.1" @@ -866,8 +784,7 @@ }, "is-glob": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "bundled": true, "dev": true, "requires": { "is-extglob": "1.0.0" @@ -875,8 +792,7 @@ }, "is-number": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -884,44 +800,37 @@ }, "is-posix-bracket": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "bundled": true, "dev": true }, "is-primitive": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "bundled": true, "dev": true }, "is-stream": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "bundled": true, "dev": true }, "is-utf8": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "bundled": true, "dev": true }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "bundled": true, "dev": true }, "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "bundled": true, "dev": true }, "isobject": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "bundled": true, "dev": true, "requires": { "isarray": "1.0.0" @@ -929,14 +838,12 @@ }, "istanbul-lib-coverage": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz", - "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==", + "bundled": true, "dev": true }, "istanbul-lib-hook": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", - "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", + "bundled": true, "dev": true, "requires": { "append-transform": "0.4.0" @@ -944,8 +851,7 @@ }, "istanbul-lib-instrument": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz", - "integrity": "sha512-RQmXeQ7sphar7k7O1wTNzVczF9igKpaeGQAG9qR2L+BS4DCJNTI9nytRmIVYevwO0bbq+2CXvJmYDuz0gMrywA==", + "bundled": true, "dev": true, "requires": { "babel-generator": "6.26.0", @@ -959,8 +865,7 @@ }, "istanbul-lib-report": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz", - "integrity": "sha512-UTv4VGx+HZivJQwAo1wnRwe1KTvFpfi/NYwN7DcsrdzMXwpRT/Yb6r4SBPoHWj4VuQPakR32g4PUUeyKkdDkBA==", + "bundled": true, "dev": true, "requires": { "istanbul-lib-coverage": "1.1.1", @@ -971,8 +876,7 @@ "dependencies": { "supports-color": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "bundled": true, "dev": true, "requires": { "has-flag": "1.0.0" @@ -982,8 +886,7 @@ }, "istanbul-lib-source-maps": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz", - "integrity": "sha512-8BfdqSfEdtip7/wo1RnrvLpHVEd8zMZEDmOFEnpC6dg0vXflHt9nvoAyQUzig2uMSXfF2OBEYBV3CVjIL9JvaQ==", + "bundled": true, "dev": true, "requires": { "debug": "3.1.0", @@ -995,8 +898,7 @@ "dependencies": { "debug": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "bundled": true, "dev": true, "requires": { "ms": "2.0.0" @@ -1006,8 +908,7 @@ }, "istanbul-reports": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.3.tgz", - "integrity": "sha512-ZEelkHh8hrZNI5xDaKwPMFwDsUf5wIEI2bXAFGp1e6deR2mnEKBPhLJEgr4ZBt8Gi6Mj38E/C8kcy9XLggVO2Q==", + "bundled": true, "dev": true, "requires": { "handlebars": "4.0.11" @@ -1015,20 +916,17 @@ }, "js-tokens": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "bundled": true, "dev": true }, "jsesc": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "bundled": true, "dev": true }, "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -1036,15 +934,13 @@ }, "lazy-cache": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "bundled": true, "dev": true, "optional": true }, "lcid": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "bundled": true, "dev": true, "requires": { "invert-kv": "1.0.0" @@ -1052,8 +948,7 @@ }, "load-json-file": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -1065,8 +960,7 @@ }, "locate-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "bundled": true, "dev": true, "requires": { "p-locate": "2.0.0", @@ -1075,28 +969,24 @@ "dependencies": { "path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "bundled": true, "dev": true } } }, "lodash": { "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "bundled": true, "dev": true }, "longest": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "bundled": true, "dev": true }, "loose-envify": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "bundled": true, "dev": true, "requires": { "js-tokens": "3.0.2" @@ -1104,8 +994,7 @@ }, "lru-cache": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", - "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "bundled": true, "dev": true, "requires": { "pseudomap": "1.0.2", @@ -1114,8 +1003,7 @@ }, "md5-hex": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", - "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", + "bundled": true, "dev": true, "requires": { "md5-o-matic": "0.1.1" @@ -1123,14 +1011,12 @@ }, "md5-o-matic": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", - "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=", + "bundled": true, "dev": true }, "mem": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "bundled": true, "dev": true, "requires": { "mimic-fn": "1.1.0" @@ -1138,8 +1024,7 @@ }, "merge-source-map": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", - "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=", + "bundled": true, "dev": true, "requires": { "source-map": "0.5.7" @@ -1147,8 +1032,7 @@ }, "micromatch": { "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "bundled": true, "dev": true, "requires": { "arr-diff": "2.0.0", @@ -1168,14 +1052,12 @@ }, "mimic-fn": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", - "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", + "bundled": true, "dev": true }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, "dev": true, "requires": { "brace-expansion": "1.1.8" @@ -1183,14 +1065,12 @@ }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "bundled": true, "dev": true }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "dev": true, "requires": { "minimist": "0.0.8" @@ -1198,14 +1078,12 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "bundled": true, "dev": true }, "normalize-package-data": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "bundled": true, "dev": true, "requires": { "hosted-git-info": "2.5.0", @@ -1216,8 +1094,7 @@ }, "normalize-path": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "bundled": true, "dev": true, "requires": { "remove-trailing-separator": "1.1.0" @@ -1225,8 +1102,7 @@ }, "npm-run-path": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "bundled": true, "dev": true, "requires": { "path-key": "2.0.1" @@ -1234,20 +1110,17 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "bundled": true, "dev": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "bundled": true, "dev": true }, "object.omit": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "bundled": true, "dev": true, "requires": { "for-own": "0.1.5", @@ -1256,8 +1129,7 @@ }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "dev": true, "requires": { "wrappy": "1.0.2" @@ -1265,8 +1137,7 @@ }, "optimist": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "bundled": true, "dev": true, "requires": { "minimist": "0.0.8", @@ -1275,14 +1146,12 @@ }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "bundled": true, "dev": true }, "os-locale": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "bundled": true, "dev": true, "requires": { "execa": "0.7.0", @@ -1292,20 +1161,17 @@ }, "p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "bundled": true, "dev": true }, "p-limit": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", - "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", + "bundled": true, "dev": true }, "p-locate": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "bundled": true, "dev": true, "requires": { "p-limit": "1.1.0" @@ -1313,8 +1179,7 @@ }, "parse-glob": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "bundled": true, "dev": true, "requires": { "glob-base": "0.3.0", @@ -1325,8 +1190,7 @@ }, "parse-json": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "bundled": true, "dev": true, "requires": { "error-ex": "1.3.1" @@ -1334,8 +1198,7 @@ }, "path-exists": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "bundled": true, "dev": true, "requires": { "pinkie-promise": "2.0.1" @@ -1343,26 +1206,22 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "bundled": true, "dev": true }, "path-key": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "bundled": true, "dev": true }, "path-parse": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "bundled": true, "dev": true }, "path-type": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -1372,20 +1231,17 @@ }, "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "bundled": true, "dev": true }, "pinkie": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "bundled": true, "dev": true }, "pinkie-promise": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "bundled": true, "dev": true, "requires": { "pinkie": "2.0.4" @@ -1393,8 +1249,7 @@ }, "pkg-dir": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "bundled": true, "dev": true, "requires": { "find-up": "1.1.2" @@ -1402,8 +1257,7 @@ "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "bundled": true, "dev": true, "requires": { "path-exists": "2.1.0", @@ -1414,20 +1268,17 @@ }, "preserve": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "bundled": true, "dev": true }, "pseudomap": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "bundled": true, "dev": true }, "randomatic": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "bundled": true, "dev": true, "requires": { "is-number": "3.0.0", @@ -1436,8 +1287,7 @@ "dependencies": { "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -1445,8 +1295,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -1456,8 +1305,7 @@ }, "kind-of": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -1467,8 +1315,7 @@ }, "read-pkg": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "bundled": true, "dev": true, "requires": { "load-json-file": "1.1.0", @@ -1478,8 +1325,7 @@ }, "read-pkg-up": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "bundled": true, "dev": true, "requires": { "find-up": "1.1.2", @@ -1488,8 +1334,7 @@ "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "bundled": true, "dev": true, "requires": { "path-exists": "2.1.0", @@ -1500,14 +1345,12 @@ }, "regenerator-runtime": { "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "bundled": true, "dev": true }, "regex-cache": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "bundled": true, "dev": true, "requires": { "is-equal-shallow": "0.1.3" @@ -1515,26 +1358,22 @@ }, "remove-trailing-separator": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "bundled": true, "dev": true }, "repeat-element": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "bundled": true, "dev": true }, "repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "bundled": true, "dev": true }, "repeating": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "bundled": true, "dev": true, "requires": { "is-finite": "1.0.2" @@ -1542,26 +1381,22 @@ }, "require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "bundled": true, "dev": true }, "require-main-filename": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "bundled": true, "dev": true }, "resolve-from": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", + "bundled": true, "dev": true }, "right-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -1570,8 +1405,7 @@ }, "rimraf": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "bundled": true, "dev": true, "requires": { "glob": "7.1.2" @@ -1579,20 +1413,17 @@ }, "semver": { "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "bundled": true, "dev": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "bundled": true, "dev": true }, "shebang-command": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "bundled": true, "dev": true, "requires": { "shebang-regex": "1.0.0" @@ -1600,32 +1431,27 @@ }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "bundled": true, "dev": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "bundled": true, "dev": true }, "slide": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "bundled": true, "dev": true }, "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "bundled": true, "dev": true }, "spawn-wrap": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", - "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", + "bundled": true, "dev": true, "requires": { "foreground-child": "1.5.6", @@ -1638,8 +1464,7 @@ }, "spdx-correct": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "bundled": true, "dev": true, "requires": { "spdx-license-ids": "1.2.2" @@ -1647,20 +1472,17 @@ }, "spdx-expression-parse": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "bundled": true, "dev": true }, "spdx-license-ids": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "bundled": true, "dev": true }, "string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "bundled": true, "dev": true, "requires": { "is-fullwidth-code-point": "2.0.0", @@ -1669,20 +1491,17 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "bundled": true, "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "bundled": true, "dev": true }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "3.0.0" @@ -1692,8 +1511,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "2.1.1" @@ -1701,8 +1519,7 @@ }, "strip-bom": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "bundled": true, "dev": true, "requires": { "is-utf8": "0.2.1" @@ -1710,20 +1527,17 @@ }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "bundled": true, "dev": true }, "supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "bundled": true, "dev": true }, "test-exclude": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz", - "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==", + "bundled": true, "dev": true, "requires": { "arrify": "1.0.1", @@ -1735,20 +1549,17 @@ }, "to-fast-properties": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "bundled": true, "dev": true }, "trim-right": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "bundled": true, "dev": true }, "uglify-js": { "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -1759,8 +1570,7 @@ "dependencies": { "yargs": { "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -1774,15 +1584,13 @@ }, "uglify-to-browserify": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "bundled": true, "dev": true, "optional": true }, "validate-npm-package-license": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "bundled": true, "dev": true, "requires": { "spdx-correct": "1.0.2", @@ -1791,8 +1599,7 @@ }, "which": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "bundled": true, "dev": true, "requires": { "isexe": "2.0.0" @@ -1800,27 +1607,23 @@ }, "which-module": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "bundled": true, "dev": true }, "window-size": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "bundled": true, "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "bundled": true, "dev": true }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "bundled": true, "dev": true, "requires": { "string-width": "1.0.2", @@ -1829,8 +1632,7 @@ "dependencies": { "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "dev": true, "requires": { "code-point-at": "1.1.0", @@ -1842,14 +1644,12 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "bundled": true, "dev": true }, "write-file-atomic": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", - "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -1859,20 +1659,17 @@ }, "y18n": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "bundled": true, "dev": true }, "yallist": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "bundled": true, "dev": true }, "yargs": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.0.3.tgz", - "integrity": "sha512-DqBpQ8NAUX4GyPP/ijDGHsJya4tYqLQrjPr95HNsr1YwL3+daCfvBwg7+gIC6IdJhR2kATh3hb61vjzMWEtjdw==", + "bundled": true, "dev": true, "requires": { "cliui": "3.2.0", @@ -1891,8 +1688,7 @@ "dependencies": { "cliui": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "bundled": true, "dev": true, "requires": { "string-width": "1.0.2", @@ -1902,8 +1698,7 @@ "dependencies": { "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "dev": true, "requires": { "code-point-at": "1.1.0", @@ -1917,8 +1712,7 @@ }, "yargs-parser": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.0.0.tgz", - "integrity": "sha1-IdR2Mw5agieaS4gTRb8GYQLiGcY=", + "bundled": true, "dev": true, "requires": { "camelcase": "4.1.0" @@ -1926,8 +1720,7 @@ "dependencies": { "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "bundled": true, "dev": true } } @@ -2014,7 +1807,7 @@ "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", "dev": true, "requires": { - "@types/node": "10.1.1" + "@types/node": "10.1.2" } }, "@types/body-parser": { @@ -2024,7 +1817,7 @@ "dev": true, "requires": { "@types/connect": "3.4.32", - "@types/node": "10.1.1" + "@types/node": "10.1.2" } }, "@types/boom": { @@ -2040,7 +1833,7 @@ "dev": true, "requires": { "@types/events": "1.2.0", - "@types/node": "10.1.1" + "@types/node": "10.1.2" } }, "@types/caseless": { @@ -2061,7 +1854,7 @@ "integrity": "sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg==", "dev": true, "requires": { - "@types/node": "10.1.1" + "@types/node": "10.1.2" } }, "@types/cookies": { @@ -2073,7 +1866,7 @@ "@types/connect": "3.4.32", "@types/express": "4.11.1", "@types/keygrip": "1.0.1", - "@types/node": "10.1.1" + "@types/node": "10.1.2" } }, "@types/events": { @@ -2100,7 +1893,7 @@ "dev": true, "requires": { "@types/events": "1.2.0", - "@types/node": "10.1.1" + "@types/node": "10.1.2" } }, "@types/extend": { @@ -2115,7 +1908,7 @@ "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", "dev": true, "requires": { - "@types/node": "10.1.1" + "@types/node": "10.1.2" } }, "@types/glob": { @@ -2126,7 +1919,7 @@ "requires": { "@types/events": "1.2.0", "@types/minimatch": "3.0.3", - "@types/node": "10.1.1" + "@types/node": "10.1.2" } }, "@types/hapi": { @@ -2140,15 +1933,15 @@ "@types/iron": "5.0.1", "@types/joi": "13.0.8", "@types/mimos": "3.0.1", - "@types/node": "10.1.1", + "@types/node": "10.1.2", "@types/podium": "1.0.0", "@types/shot": "3.4.0" } }, "@types/http-assert": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.2.2.tgz", - "integrity": "sha512-x1553BFcgBVOD6y3tC/2SOVcNaf6b9eH3BvqniAZZwmHWYhyr8ffXTYygQC/hQxNI4Yfc3q0gGUvyiAHV4tRNg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.3.0.tgz", + "integrity": "sha512-RObYTpPMo0IY+ZksPtKHsXlYFRxsYIvUqd68e89Y7otDrXsjBy1VgMd53kxVV0JMsNlkCASjllFOlLlhxEv0iw==", "dev": true }, "@types/iron": { @@ -2157,7 +1950,7 @@ "integrity": "sha512-Ng5BkVGPt7Tw9k1OJ6qYwuD9+dmnWgActmsnnrdvs4075N8V2go1f6Pz8omG3q5rbHjXN6yzzZDYo3JOgAE/Ug==", "dev": true, "requires": { - "@types/node": "10.1.1" + "@types/node": "10.1.2" } }, "@types/is": { @@ -2187,10 +1980,10 @@ "@types/accepts": "1.3.5", "@types/cookies": "0.7.1", "@types/events": "1.2.0", - "@types/http-assert": "1.2.2", + "@types/http-assert": "1.3.0", "@types/keygrip": "1.0.1", "@types/koa-compose": "3.2.2", - "@types/node": "10.1.1" + "@types/node": "10.1.2" } }, "@types/koa-compose": { @@ -2200,9 +1993,9 @@ "dev": true }, "@types/lodash": { - "version": "4.14.108", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.108.tgz", - "integrity": "sha512-WD2vUOKfBBVHxWUV9iMR9RMfpuf8HquxWeAq2yqGVL7Nc4JW2+sQama0pREMqzNI3Tutj0PyxYUJwuoxxvX+xA==", + "version": "4.14.109", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.109.tgz", + "integrity": "sha512-hop8SdPUEzbcJm6aTsmuwjIYQo1tqLseKCM+s2bBqTU2gErwI4fE+aqUVOlscPSQbKHKgtMMPoC+h4AIGOJYvw==", "dev": true }, "@types/lodash.assign": { @@ -2211,7 +2004,7 @@ "integrity": "sha512-L8D6y0a88Uv3/gdqUpmfHPGSFo676ggbtl5an3FgR4AzbvR+PKNdUMPr6F6Q/U3n3lCoCoV+WPt1vqJGbgPZ6Q==", "dev": true, "requires": { - "@types/lodash": "4.14.108" + "@types/lodash": "4.14.109" } }, "@types/lodash.has": { @@ -2220,7 +2013,7 @@ "integrity": "sha512-McmKJoXdSxMYIQzVWKSEGrHnTwJ1ErqXvsTQjFeGEhBmypgCjuANDSqxl4LKaKcoF4mNxMqSzH7wP4yQ0deLeQ==", "dev": true, "requires": { - "@types/lodash": "4.14.108" + "@types/lodash": "4.14.109" } }, "@types/lodash.maxby": { @@ -2229,7 +2022,7 @@ "integrity": "sha512-5AMk6874T1RMxtWkW0I4ORFptU508mTb8jYG0gaNCMDzX6kLn/VNQXewL6dasZd4dj/hSbM8dt7msLuI3rSIPQ==", "dev": true, "requires": { - "@types/lodash": "4.14.108" + "@types/lodash": "4.14.109" } }, "@types/lodash.merge": { @@ -2238,7 +2031,7 @@ "integrity": "sha512-bOCCutkbehfCeiSqJO5XcVKjsJvX28dgvjhs4aMmBAHAsOy2oOJQwHuIZ0elI1E94qQIdEsCvz8oLgUumd6teA==", "dev": true, "requires": { - "@types/lodash": "4.14.108" + "@types/lodash": "4.14.109" } }, "@types/lodash.omit": { @@ -2247,7 +2040,7 @@ "integrity": "sha512-a6VbeE+JjMQ3rKsQVRjle02E+iKPTsT7izzFRk4xJvv4TBcO85Lrpo+8n6iqsiH8yZ8mHy0LOmx7MVgO8OfovQ==", "dev": true, "requires": { - "@types/lodash": "4.14.108" + "@types/lodash": "4.14.109" } }, "@types/lodash.omitby": { @@ -2256,7 +2049,7 @@ "integrity": "sha512-IfMZru9AegVIu0lkOXc/ncCOR3zzC6FKTVuBHBd9PkmKbOCn5zFORT22Wf/fZ9SBr2HmaYLPkFhf5C7A7k/N9A==", "dev": true, "requires": { - "@types/lodash": "4.14.108" + "@types/lodash": "4.14.109" } }, "@types/lodash.pick": { @@ -2265,7 +2058,7 @@ "integrity": "sha512-7VR26qH/bzRBn8DN6HKWYwBB6dNo1dNSdc0nYQwPp5tua6u2dpHHCFccszvFKBdR2CjSEbL5hsqQul03P4COjA==", "dev": true, "requires": { - "@types/lodash": "4.14.108" + "@types/lodash": "4.14.109" } }, "@types/lodash.random": { @@ -2274,7 +2067,7 @@ "integrity": "sha512-JMCA9llou2Ye9mhz0H/7DaPrJ6PgmRb6ClnPGPzfoX7JUu9Q6NuRZON5INrTQH5LWahzqaZdeMwHyn8MGRkXoA==", "dev": true, "requires": { - "@types/lodash": "4.14.108" + "@types/lodash": "4.14.109" } }, "@types/lodash.without": { @@ -2283,7 +2076,7 @@ "integrity": "sha512-oD30pRigg97PfyF8u3WGkRnn3MPS/f2pwYf0s0dNeGOeScbZ1bo4BYBK7dab/lpX6EbUjoWAtLLMQW+LxlJpcQ==", "dev": true, "requires": { - "@types/lodash": "4.14.108" + "@types/lodash": "4.14.109" } }, "@types/mime": { @@ -2325,7 +2118,7 @@ "integrity": "sha512-TeiJ7uvv/92ugSqZ0v9l0eNXzutlki0aK+R1K5bfA5SYUil46ITlxLW4iNTCf55P4L5weCmaOdtxGeGWvudwPg==", "dev": true, "requires": { - "@types/node": "10.1.1" + "@types/node": "10.1.2" } }, "@types/nock": { @@ -2334,13 +2127,13 @@ "integrity": "sha512-S8rJ+SaW82ICX87pZP62UcMifrMfjEdqNzSp+llx4YcvKw6bO650Ye6HwTqER1Dar3S40GIZECQisOrAICDCjA==", "dev": true, "requires": { - "@types/node": "10.1.1" + "@types/node": "10.1.2" } }, "@types/node": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.1.1.tgz", - "integrity": "sha512-n7wxy8r2tjVcrzZoKJlyZmi1C1VhXGHAGhDEO1iqp7fbsTSsDF3dVA50KFsPg77EXqzNJqbzcna8Mi4m7a1lyw==", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.1.2.tgz", + "integrity": "sha512-bjk1RIeZBCe/WukrFToIVegOf91Pebr8cXYBwLBIsfiGWVQ+ifwWsT59H3RxrWzWrzd1l/Amk1/ioY5Fq3/bpA==", "dev": true }, "@types/once": { @@ -2375,7 +2168,7 @@ "requires": { "@types/caseless": "0.12.1", "@types/form-data": "2.2.1", - "@types/node": "10.1.1", + "@types/node": "10.1.2", "@types/tough-cookie": "2.3.3" } }, @@ -2386,7 +2179,7 @@ "dev": true, "requires": { "@types/bunyan": "1.8.4", - "@types/node": "10.1.1", + "@types/node": "10.1.2", "@types/spdy": "3.4.4" } }, @@ -2397,7 +2190,7 @@ "dev": true, "requires": { "@types/glob": "5.0.35", - "@types/node": "10.1.1" + "@types/node": "10.1.2" } }, "@types/serve-static": { @@ -2416,7 +2209,7 @@ "integrity": "sha1-RZR3xRh9Pr0wNmCrCZ5+ng87ZW8=", "dev": true, "requires": { - "@types/node": "10.1.1" + "@types/node": "10.1.2" } }, "@types/spdy": { @@ -2425,7 +2218,7 @@ "integrity": "sha512-N9LBlbVRRYq6HgYpPkqQc3a9HJ/iEtVZToW6xlTtJiMhmRJ7jJdV7TaZQJw/Ve/1ePUsQiCTDc4JMuzzag94GA==", "dev": true, "requires": { - "@types/node": "10.1.1" + "@types/node": "10.1.2" } }, "@types/tmp": { @@ -2448,14 +2241,6 @@ "requires": { "boom": "7.2.0", "hoek": "5.0.3" - }, - "dependencies": { - "hoek": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", - "dev": true - } } }, "accepts": { @@ -2538,14 +2323,6 @@ "dev": true, "requires": { "hoek": "5.0.3" - }, - "dependencies": { - "hoek": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", - "dev": true - } } }, "ansi-align": { @@ -2702,9 +2479,9 @@ "dev": true }, "async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", - "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", "requires": { "lodash": "4.17.10" } @@ -2845,7 +2622,7 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz", "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=", "requires": { - "follow-redirects": "1.4.1", + "follow-redirects": "1.5.0", "is-buffer": "1.1.6" } }, @@ -3395,14 +3172,6 @@ "dev": true, "requires": { "hoek": "5.0.3" - }, - "dependencies": { - "hoek": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", - "dev": true - } } }, "bounce": { @@ -3413,14 +3182,6 @@ "requires": { "boom": "7.2.0", "hoek": "5.0.3" - }, - "dependencies": { - "hoek": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", - "dev": true - } } }, "boxen": { @@ -3583,14 +3344,6 @@ "requires": { "boom": "7.2.0", "hoek": "5.0.3" - }, - "dependencies": { - "hoek": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", - "dev": true - } } }, "call-matcher": { @@ -3662,14 +3415,6 @@ "bounce": "1.2.0", "hoek": "5.0.3", "joi": "13.3.0" - }, - "dependencies": { - "hoek": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", - "dev": true - } } }, "catbox-memory": { @@ -3681,14 +3426,6 @@ "big-time": "2.0.1", "boom": "7.2.0", "hoek": "5.0.3" - }, - "dependencies": { - "hoek": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", - "dev": true - } } }, "catharsis": { @@ -3911,7 +3648,7 @@ "dev": true, "requires": { "argv": "0.0.2", - "request": "2.86.0", + "request": "2.87.0", "urlgrey": "0.4.4" } }, @@ -4243,21 +3980,12 @@ } }, "cryptiles": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", - "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-4.1.1.tgz", + "integrity": "sha512-YuQUPbcOmaZsdvxJZ25DCA1W+lLIRoPJKBDKin+St1RCYEERSfoe1d25B1MvWNHN3e8SpFSVsqYvEUjp8J9H2w==", + "dev": true, "requires": { - "boom": "5.2.0" - }, - "dependencies": { - "boom": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", - "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", - "requires": { - "hoek": "4.2.1" - } - } + "boom": "7.2.0" } }, "crypto-random-string": { @@ -5451,12 +5179,13 @@ } }, "find-my-way": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-1.12.0.tgz", - "integrity": "sha512-d7wZ0IeijAZDA/gvHjCNxxRTDCn5j9hnugcgEbNzYhofbDfogGhyRu93mtcJoAxeB1zemWTz9JB2JzNOar/qbA==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-1.13.0.tgz", + "integrity": "sha512-aIa4UTxZ3klfApaQEJJ5cQvNeqfrxVngcjMgy+G5ygkrOrDPkORhY/RMH6F8mLwBpPt3Z0F03CtzN7gs2Q5H1w==", "dev": true, "requires": { - "fast-decode-uri-component": "1.0.0" + "fast-decode-uri-component": "1.0.0", + "safe-regex": "1.1.0" } }, "find-up": { @@ -5487,9 +5216,9 @@ "dev": true }, "follow-redirects": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.4.1.tgz", - "integrity": "sha512-uxYePVPogtya1ktGnAAXOacnbIuRMB4dkvqeNz2qTtTQsuzSfbDolV+wMMKxAmCx0bLgAKLbBOkjItMbbkR1vg==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.0.tgz", + "integrity": "sha512-fdrt472/9qQ6Kgjvb935ig6vJCuofpBUD14f9Vb+SLlm7xIe4Qva5gey8EKtv8lp7ahE1wilg3xL1znpVGtZIA==", "requires": { "debug": "3.1.0" } @@ -5588,28 +5317,24 @@ "dependencies": { "abbrev": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "bundled": true, "dev": true, "optional": true }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "bundled": true, "dev": true }, "aproba": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "bundled": true, "dev": true, "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -5619,14 +5344,12 @@ }, "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "bundled": true, "dev": true }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "bundled": true, "dev": true, "requires": { "balanced-match": "1.0.0", @@ -5635,40 +5358,34 @@ }, "chownr": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", + "bundled": true, "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "bundled": true, "dev": true }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "bundled": true, "dev": true }, "console-control-strings": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "bundled": true, "dev": true }, "core-util-is": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "bundled": true, "dev": true, "optional": true }, "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -5677,29 +5394,25 @@ }, "deep-extend": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", + "bundled": true, "dev": true, "optional": true }, "delegates": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "bundled": true, "dev": true, "optional": true }, "detect-libc": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "bundled": true, "dev": true, "optional": true }, "fs-minipass": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", - "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -5708,15 +5421,13 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "bundled": true, "dev": true, "optional": true }, "gauge": { "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -5732,8 +5443,7 @@ }, "glob": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -5747,15 +5457,13 @@ }, "has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "bundled": true, "dev": true, "optional": true }, "iconv-lite": { "version": "0.4.21", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz", - "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -5764,8 +5472,7 @@ }, "ignore-walk": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", - "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -5774,8 +5481,7 @@ }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -5785,21 +5491,18 @@ }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "bundled": true, "dev": true }, "ini": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "bundled": true, "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, "dev": true, "requires": { "number-is-nan": "1.0.1" @@ -5807,15 +5510,13 @@ }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "bundled": true, "dev": true, "optional": true }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, "dev": true, "requires": { "brace-expansion": "1.1.11" @@ -5823,14 +5524,12 @@ }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "bundled": true, "dev": true }, "minipass": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.4.tgz", - "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", + "bundled": true, "dev": true, "requires": { "safe-buffer": "5.1.1", @@ -5839,8 +5538,7 @@ }, "minizlib": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", - "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -5849,8 +5547,7 @@ }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "dev": true, "requires": { "minimist": "0.0.8" @@ -5858,15 +5555,13 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "bundled": true, "dev": true, "optional": true }, "needle": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.2.0.tgz", - "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -5877,8 +5572,7 @@ }, "node-pre-gyp": { "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.10.0.tgz", - "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -5896,8 +5590,7 @@ }, "nopt": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -5907,15 +5600,13 @@ }, "npm-bundled": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.3.tgz", - "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", + "bundled": true, "dev": true, "optional": true }, "npm-packlist": { "version": "1.1.10", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.10.tgz", - "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -5925,8 +5616,7 @@ }, "npmlog": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -5938,21 +5628,18 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "bundled": true, "dev": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "bundled": true, "dev": true, "optional": true }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "dev": true, "requires": { "wrappy": "1.0.2" @@ -5960,22 +5647,19 @@ }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "bundled": true, "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "bundled": true, "dev": true, "optional": true }, "osenv": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -5985,22 +5669,19 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "bundled": true, "dev": true, "optional": true }, "process-nextick-args": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "bundled": true, "dev": true, "optional": true }, "rc": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz", - "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6012,8 +5693,7 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "bundled": true, "dev": true, "optional": true } @@ -6021,8 +5701,7 @@ }, "readable-stream": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6037,8 +5716,7 @@ }, "rimraf": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6047,49 +5725,42 @@ }, "safe-buffer": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "bundled": true, "dev": true }, "safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "bundled": true, "dev": true, "optional": true }, "sax": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "bundled": true, "dev": true, "optional": true }, "semver": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "bundled": true, "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "bundled": true, "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "bundled": true, "dev": true, "optional": true }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "dev": true, "requires": { "code-point-at": "1.1.0", @@ -6099,8 +5770,7 @@ }, "string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6109,8 +5779,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "2.1.1" @@ -6118,15 +5787,13 @@ }, "strip-json-comments": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "bundled": true, "dev": true, "optional": true }, "tar": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.1.tgz", - "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6141,15 +5808,13 @@ }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "bundled": true, "dev": true, "optional": true }, "wide-align": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6158,14 +5823,12 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "bundled": true, "dev": true }, "yallist": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", + "bundled": true, "dev": true } } @@ -6333,10 +5996,10 @@ "resolved": "https://registry.npmjs.org/google-auto-auth/-/google-auto-auth-0.10.1.tgz", "integrity": "sha512-iIqSbY7Ypd32mnHGbYctp80vZzXoDlvI9gEfvtl3kmyy5HzOcrZCIGCBdSlIzRsg7nHpQiHE3Zl6Ycur6TSodQ==", "requires": { - "async": "2.6.0", + "async": "2.6.1", "gcp-metadata": "0.6.3", "google-auth-library": "1.5.0", - "request": "2.86.0" + "request": "2.87.0" } }, "google-p12-pem": { @@ -6397,9 +6060,9 @@ "dev": true }, "growl": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", - "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==", + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, "gtoken": { @@ -6613,9 +6276,9 @@ } }, "hapi": { - "version": "17.4.0", - "resolved": "https://registry.npmjs.org/hapi/-/hapi-17.4.0.tgz", - "integrity": "sha512-ZxzvlGVs0lb7MW4AGxFQ/TM4rOvH6aeR4O0kj47eWy0VjGshlTZFPTighstJQPJy/bKTrlMaThn5ES87fwmGTA==", + "version": "17.5.0", + "resolved": "https://registry.npmjs.org/hapi/-/hapi-17.5.0.tgz", + "integrity": "sha512-/btV0jpXb8ldoywsAt+FZg3qUVCx2ZjeA29Mluo3w/gcCJtzUnZfGALS8xR3d2ssVySm7JXVqeepy37Z02gJLQ==", "dev": true, "requires": { "accept": "3.0.2", @@ -6635,14 +6298,6 @@ "subtext": "6.0.7", "teamwork": "3.0.1", "topo": "3.0.0" - }, - "dependencies": { - "hoek": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", - "dev": true - } } }, "har-schema": { @@ -6701,27 +6356,6 @@ "integrity": "sha1-ieJdtgS3Jcj1l2//Ct3JIbgopac=", "dev": true }, - "hawk": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", - "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", - "requires": { - "boom": "4.3.1", - "cryptiles": "3.1.2", - "hoek": "4.2.1", - "sntp": "2.1.0" - }, - "dependencies": { - "boom": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", - "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", - "requires": { - "hoek": "4.2.1" - } - } - } - }, "he": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", @@ -6737,20 +6371,13 @@ "boom": "7.2.0", "hoek": "5.0.3", "joi": "13.3.0" - }, - "dependencies": { - "hoek": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", - "dev": true - } } }, "hoek": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", - "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", + "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", + "dev": true }, "home-or-tmp": { "version": "2.0.0", @@ -7017,23 +6644,6 @@ "boom": "7.2.0", "cryptiles": "4.1.1", "hoek": "5.0.3" - }, - "dependencies": { - "cryptiles": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-4.1.1.tgz", - "integrity": "sha512-YuQUPbcOmaZsdvxJZ25DCA1W+lLIRoPJKBDKin+St1RCYEERSfoe1d25B1MvWNHN3e8SpFSVsqYvEUjp8J9H2w==", - "dev": true, - "requires": { - "boom": "7.2.0" - } - }, - "hoek": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", - "dev": true - } } }, "irregular-plurals": { @@ -7361,14 +6971,6 @@ "hoek": "5.0.3", "isemail": "3.1.2", "topo": "3.0.0" - }, - "dependencies": { - "hoek": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", - "dev": true - } } }, "js-green-licenses": { @@ -7595,7 +7197,7 @@ "http-assert": "1.3.0", "http-errors": "1.6.3", "is-generator-function": "1.0.7", - "koa-compose": "4.0.0", + "koa-compose": "4.1.0", "koa-convert": "1.2.0", "koa-is-json": "1.0.0", "mime-types": "2.1.18", @@ -7608,9 +7210,9 @@ } }, "koa-compose": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.0.0.tgz", - "integrity": "sha1-KAClE9nDYe8NY4UrA45Pby1adzw=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", + "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", "dev": true }, "koa-convert": { @@ -8165,14 +7767,6 @@ "requires": { "hoek": "5.0.3", "mime-db": "1.33.0" - }, - "dependencies": { - "hoek": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", - "dev": true - } } }, "minimalistic-assert": { @@ -8216,39 +7810,22 @@ } }, "mocha": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.1.1.tgz", - "integrity": "sha512-kKKs/H1KrMMQIEsWNxGmb4/BGsmj0dkeyotEvbrAuQ01FcWRLssUNXCEUZk6SZtyJBi6EE7SL0zDDtItw1rGhw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", + "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", "dev": true, "requires": { "browser-stdout": "1.3.1", - "commander": "2.11.0", + "commander": "2.15.1", "debug": "3.1.0", "diff": "3.5.0", "escape-string-regexp": "1.0.5", "glob": "7.1.2", - "growl": "1.10.3", + "growl": "1.10.5", "he": "1.1.1", "minimatch": "3.0.4", "mkdirp": "0.5.1", - "supports-color": "4.4.0" - }, - "dependencies": { - "commander": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", - "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", - "dev": true - }, - "supports-color": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", - "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } - } + "supports-color": "5.4.0" } }, "modelo": { @@ -8397,14 +7974,6 @@ "requires": { "hoek": "5.0.3", "vise": "3.0.0" - }, - "dependencies": { - "hoek": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", - "dev": true - } } }, "nise": { @@ -8546,8 +8115,7 @@ "dependencies": { "align-text": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2", @@ -8557,26 +8125,22 @@ }, "amdefine": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "bundled": true, "dev": true }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "bundled": true, "dev": true }, "ansi-styles": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "bundled": true, "dev": true }, "append-transform": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "bundled": true, "dev": true, "requires": { "default-require-extensions": "1.0.0" @@ -8584,62 +8148,52 @@ }, "archy": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "bundled": true, "dev": true }, "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "bundled": true, "dev": true }, "arr-flatten": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "bundled": true, "dev": true }, "arr-union": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "bundled": true, "dev": true }, "array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "bundled": true, "dev": true }, "arrify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "bundled": true, "dev": true }, "assign-symbols": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "bundled": true, "dev": true }, "async": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "bundled": true, "dev": true }, "atob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", - "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", + "bundled": true, "dev": true }, "babel-code-frame": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "bundled": true, "dev": true, "requires": { "chalk": "1.1.3", @@ -8649,8 +8203,7 @@ }, "babel-generator": { "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "bundled": true, "dev": true, "requires": { "babel-messages": "6.23.0", @@ -8665,8 +8218,7 @@ }, "babel-messages": { "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "bundled": true, "dev": true, "requires": { "babel-runtime": "6.26.0" @@ -8674,8 +8226,7 @@ }, "babel-runtime": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "bundled": true, "dev": true, "requires": { "core-js": "2.5.6", @@ -8684,8 +8235,7 @@ }, "babel-template": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "bundled": true, "dev": true, "requires": { "babel-runtime": "6.26.0", @@ -8697,8 +8247,7 @@ }, "babel-traverse": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "bundled": true, "dev": true, "requires": { "babel-code-frame": "6.26.0", @@ -8714,8 +8263,7 @@ }, "babel-types": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "bundled": true, "dev": true, "requires": { "babel-runtime": "6.26.0", @@ -8726,20 +8274,17 @@ }, "babylon": { "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "bundled": true, "dev": true }, "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "bundled": true, "dev": true }, "base": { "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "bundled": true, "dev": true, "requires": { "cache-base": "1.0.1", @@ -8753,8 +8298,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "1.0.2" @@ -8762,8 +8306,7 @@ }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, "dev": true, "requires": { "kind-of": "6.0.2" @@ -8771,8 +8314,7 @@ }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, "dev": true, "requires": { "kind-of": "6.0.2" @@ -8780,8 +8322,7 @@ }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", @@ -8791,22 +8332,19 @@ }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true } } }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "bundled": true, "dev": true, "requires": { "balanced-match": "1.0.0", @@ -8815,8 +8353,7 @@ }, "braces": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "bundled": true, "dev": true, "requires": { "arr-flatten": "1.1.0", @@ -8833,8 +8370,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "0.1.1" @@ -8844,14 +8380,12 @@ }, "builtin-modules": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "bundled": true, "dev": true }, "cache-base": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "bundled": true, "dev": true, "requires": { "collection-visit": "1.0.0", @@ -8867,16 +8401,14 @@ "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true } } }, "caching-transform": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", - "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", + "bundled": true, "dev": true, "requires": { "md5-hex": "1.3.0", @@ -8886,15 +8418,13 @@ }, "camelcase": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "bundled": true, "dev": true, "optional": true }, "center-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -8904,8 +8434,7 @@ }, "chalk": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "bundled": true, "dev": true, "requires": { "ansi-styles": "2.2.1", @@ -8917,8 +8446,7 @@ }, "class-utils": { "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "bundled": true, "dev": true, "requires": { "arr-union": "3.1.0", @@ -8929,8 +8457,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "0.1.6" @@ -8938,16 +8465,14 @@ }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true } } }, "cliui": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -8958,8 +8483,7 @@ "dependencies": { "wordwrap": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "bundled": true, "dev": true, "optional": true } @@ -8967,14 +8491,12 @@ }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "bundled": true, "dev": true }, "collection-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "bundled": true, "dev": true, "requires": { "map-visit": "1.0.0", @@ -8983,44 +8505,37 @@ }, "commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "bundled": true, "dev": true }, "component-emitter": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "bundled": true, "dev": true }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "bundled": true, "dev": true }, "convert-source-map": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "bundled": true, "dev": true }, "copy-descriptor": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "bundled": true, "dev": true }, "core-js": { "version": "2.5.6", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.6.tgz", - "integrity": "sha512-lQUVfQi0aLix2xpyjrrJEvfuYCqPc/HwmTKsC/VNf8q0zsjX7SQZtp4+oRONN5Tsur9GDETPjj+Ub2iDiGZfSQ==", + "bundled": true, "dev": true }, "cross-spawn": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "bundled": true, "dev": true, "requires": { "lru-cache": "4.1.3", @@ -9029,8 +8544,7 @@ }, "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "bundled": true, "dev": true, "requires": { "ms": "2.0.0" @@ -9038,26 +8552,22 @@ }, "debug-log": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", - "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", + "bundled": true, "dev": true }, "decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "bundled": true, "dev": true }, "decode-uri-component": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "bundled": true, "dev": true }, "default-require-extensions": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "bundled": true, "dev": true, "requires": { "strip-bom": "2.0.0" @@ -9065,8 +8575,7 @@ }, "define-property": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "bundled": true, "dev": true, "requires": { "is-descriptor": "1.0.2", @@ -9075,8 +8584,7 @@ "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, "dev": true, "requires": { "kind-of": "6.0.2" @@ -9084,8 +8592,7 @@ }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, "dev": true, "requires": { "kind-of": "6.0.2" @@ -9093,8 +8600,7 @@ }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", @@ -9104,22 +8610,19 @@ }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true } } }, "detect-indent": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "bundled": true, "dev": true, "requires": { "repeating": "2.0.1" @@ -9127,8 +8630,7 @@ }, "error-ex": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "bundled": true, "dev": true, "requires": { "is-arrayish": "0.2.1" @@ -9136,20 +8638,17 @@ }, "escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "bundled": true, "dev": true }, "esutils": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "bundled": true, "dev": true }, "execa": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "bundled": true, "dev": true, "requires": { "cross-spawn": "5.1.0", @@ -9163,8 +8662,7 @@ "dependencies": { "cross-spawn": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "bundled": true, "dev": true, "requires": { "lru-cache": "4.1.3", @@ -9176,8 +8674,7 @@ }, "expand-brackets": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "bundled": true, "dev": true, "requires": { "debug": "2.6.9", @@ -9191,8 +8688,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "0.1.6" @@ -9200,8 +8696,7 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "0.1.1" @@ -9211,8 +8706,7 @@ }, "extend-shallow": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "bundled": true, "dev": true, "requires": { "assign-symbols": "1.0.0", @@ -9221,8 +8715,7 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "bundled": true, "dev": true, "requires": { "is-plain-object": "2.0.4" @@ -9232,8 +8725,7 @@ }, "extglob": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "bundled": true, "dev": true, "requires": { "array-unique": "0.3.2", @@ -9248,8 +8740,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "1.0.2" @@ -9257,8 +8748,7 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "0.1.1" @@ -9266,8 +8756,7 @@ }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, "dev": true, "requires": { "kind-of": "6.0.2" @@ -9275,8 +8764,7 @@ }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, "dev": true, "requires": { "kind-of": "6.0.2" @@ -9284,8 +8772,7 @@ }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", @@ -9295,16 +8782,14 @@ }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true } } }, "fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "bundled": true, "dev": true, "requires": { "extend-shallow": "2.0.1", @@ -9315,8 +8800,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "0.1.1" @@ -9326,8 +8810,7 @@ }, "find-cache-dir": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "bundled": true, "dev": true, "requires": { "commondir": "1.0.1", @@ -9337,8 +8820,7 @@ }, "find-up": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "bundled": true, "dev": true, "requires": { "locate-path": "2.0.0" @@ -9346,14 +8828,12 @@ }, "for-in": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "bundled": true, "dev": true }, "foreground-child": { "version": "1.5.6", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", - "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "bundled": true, "dev": true, "requires": { "cross-spawn": "4.0.2", @@ -9362,8 +8842,7 @@ }, "fragment-cache": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "bundled": true, "dev": true, "requires": { "map-cache": "0.2.2" @@ -9371,32 +8850,27 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "bundled": true, "dev": true }, "get-caller-file": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "bundled": true, "dev": true }, "get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "bundled": true, "dev": true }, "get-value": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "bundled": true, "dev": true }, "glob": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "bundled": true, "dev": true, "requires": { "fs.realpath": "1.0.0", @@ -9409,20 +8883,17 @@ }, "globals": { "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "bundled": true, "dev": true }, "graceful-fs": { "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "bundled": true, "dev": true }, "handlebars": { "version": "4.0.11", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", - "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "bundled": true, "dev": true, "requires": { "async": "1.5.2", @@ -9433,8 +8904,7 @@ "dependencies": { "source-map": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "bundled": true, "dev": true, "requires": { "amdefine": "1.0.1" @@ -9444,8 +8914,7 @@ }, "has-ansi": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "2.1.1" @@ -9453,14 +8922,12 @@ }, "has-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "bundled": true, "dev": true }, "has-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "bundled": true, "dev": true, "requires": { "get-value": "2.0.6", @@ -9470,16 +8937,14 @@ "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true } } }, "has-values": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "bundled": true, "dev": true, "requires": { "is-number": "3.0.0", @@ -9488,8 +8953,7 @@ "dependencies": { "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -9497,8 +8961,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -9508,8 +8971,7 @@ }, "kind-of": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -9519,20 +8981,17 @@ }, "hosted-git-info": { "version": "2.6.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", - "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", + "bundled": true, "dev": true }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "bundled": true, "dev": true }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "dev": true, "requires": { "once": "1.4.0", @@ -9541,14 +9000,12 @@ }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "bundled": true, "dev": true }, "invariant": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "bundled": true, "dev": true, "requires": { "loose-envify": "1.3.1" @@ -9556,14 +9013,12 @@ }, "invert-kv": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "bundled": true, "dev": true }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -9571,20 +9026,17 @@ }, "is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "bundled": true, "dev": true }, "is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "bundled": true, "dev": true }, "is-builtin-module": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "bundled": true, "dev": true, "requires": { "builtin-modules": "1.1.1" @@ -9592,8 +9044,7 @@ }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -9601,8 +9052,7 @@ }, "is-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "bundled": true, "dev": true, "requires": { "is-accessor-descriptor": "0.1.6", @@ -9612,22 +9062,19 @@ "dependencies": { "kind-of": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "bundled": true, "dev": true } } }, "is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "bundled": true, "dev": true }, "is-finite": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "bundled": true, "dev": true, "requires": { "number-is-nan": "1.0.1" @@ -9635,14 +9082,12 @@ }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "bundled": true, "dev": true }, "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -9650,8 +9095,7 @@ }, "is-odd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", - "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "bundled": true, "dev": true, "requires": { "is-number": "4.0.0" @@ -9659,16 +9103,14 @@ "dependencies": { "is-number": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "bundled": true, "dev": true } } }, "is-plain-object": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "bundled": true, "dev": true, "requires": { "isobject": "3.0.1" @@ -9676,58 +9118,49 @@ "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true } } }, "is-stream": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "bundled": true, "dev": true }, "is-utf8": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "bundled": true, "dev": true }, "is-windows": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "bundled": true, "dev": true }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "bundled": true, "dev": true }, "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "bundled": true, "dev": true }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true }, "istanbul-lib-coverage": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", - "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==", + "bundled": true, "dev": true }, "istanbul-lib-hook": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", - "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", + "bundled": true, "dev": true, "requires": { "append-transform": "0.4.0" @@ -9735,8 +9168,7 @@ }, "istanbul-lib-instrument": { "version": "1.10.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", - "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", + "bundled": true, "dev": true, "requires": { "babel-generator": "6.26.1", @@ -9750,8 +9182,7 @@ }, "istanbul-lib-report": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz", - "integrity": "sha512-D4jVbMDtT2dPmloPJS/rmeP626N5Pr3Rp+SovrPn1+zPChGHcggd/0sL29jnbm4oK9W0wHjCRsdch9oLd7cm6g==", + "bundled": true, "dev": true, "requires": { "istanbul-lib-coverage": "1.2.0", @@ -9762,8 +9193,7 @@ "dependencies": { "supports-color": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "bundled": true, "dev": true, "requires": { "has-flag": "1.0.0" @@ -9773,8 +9203,7 @@ }, "istanbul-lib-source-maps": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz", - "integrity": "sha512-fDa0hwU/5sDXwAklXgAoCJCOsFsBplVQ6WBldz5UwaqOzmDhUK4nfuR7/G//G2lERlblUNJB8P6e8cXq3a7MlA==", + "bundled": true, "dev": true, "requires": { "debug": "3.1.0", @@ -9786,8 +9215,7 @@ "dependencies": { "debug": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "bundled": true, "dev": true, "requires": { "ms": "2.0.0" @@ -9797,8 +9225,7 @@ }, "istanbul-reports": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.4.0.tgz", - "integrity": "sha512-OPzVo1fPZ2H+owr8q/LYKLD+vquv9Pj4F+dj808MdHbuQLD7S4ACRjcX+0Tne5Vxt2lxXvdZaL7v+FOOAV281w==", + "bundled": true, "dev": true, "requires": { "handlebars": "4.0.11" @@ -9806,20 +9233,17 @@ }, "js-tokens": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "bundled": true, "dev": true }, "jsesc": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "bundled": true, "dev": true }, "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -9827,15 +9251,13 @@ }, "lazy-cache": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "bundled": true, "dev": true, "optional": true }, "lcid": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "bundled": true, "dev": true, "requires": { "invert-kv": "1.0.0" @@ -9843,8 +9265,7 @@ }, "load-json-file": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -9856,8 +9277,7 @@ }, "locate-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "bundled": true, "dev": true, "requires": { "p-locate": "2.0.0", @@ -9866,28 +9286,24 @@ "dependencies": { "path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "bundled": true, "dev": true } } }, "lodash": { "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", + "bundled": true, "dev": true }, "longest": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "bundled": true, "dev": true }, "loose-envify": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "bundled": true, "dev": true, "requires": { "js-tokens": "3.0.2" @@ -9895,8 +9311,7 @@ }, "lru-cache": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "bundled": true, "dev": true, "requires": { "pseudomap": "1.0.2", @@ -9905,14 +9320,12 @@ }, "map-cache": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "bundled": true, "dev": true }, "map-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "bundled": true, "dev": true, "requires": { "object-visit": "1.0.1" @@ -9920,8 +9333,7 @@ }, "md5-hex": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", - "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", + "bundled": true, "dev": true, "requires": { "md5-o-matic": "0.1.1" @@ -9929,14 +9341,12 @@ }, "md5-o-matic": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", - "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=", + "bundled": true, "dev": true }, "mem": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "bundled": true, "dev": true, "requires": { "mimic-fn": "1.2.0" @@ -9944,8 +9354,7 @@ }, "merge-source-map": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "bundled": true, "dev": true, "requires": { "source-map": "0.6.1" @@ -9953,16 +9362,14 @@ "dependencies": { "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "bundled": true, "dev": true } } }, "micromatch": { "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "bundled": true, "dev": true, "requires": { "arr-diff": "4.0.0", @@ -9982,22 +9389,19 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true } } }, "mimic-fn": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "bundled": true, "dev": true }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, "dev": true, "requires": { "brace-expansion": "1.1.11" @@ -10005,14 +9409,12 @@ }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "bundled": true, "dev": true }, "mixin-deep": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "bundled": true, "dev": true, "requires": { "for-in": "1.0.2", @@ -10021,8 +9423,7 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "bundled": true, "dev": true, "requires": { "is-plain-object": "2.0.4" @@ -10032,8 +9433,7 @@ }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "dev": true, "requires": { "minimist": "0.0.8" @@ -10041,14 +9441,12 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "bundled": true, "dev": true }, "nanomatch": { "version": "1.2.9", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", - "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", + "bundled": true, "dev": true, "requires": { "arr-diff": "4.0.0", @@ -10067,28 +9465,24 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "bundled": true, "dev": true }, "array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "bundled": true, "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true } } }, "normalize-package-data": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "bundled": true, "dev": true, "requires": { "hosted-git-info": "2.6.0", @@ -10099,8 +9493,7 @@ }, "npm-run-path": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "bundled": true, "dev": true, "requires": { "path-key": "2.0.1" @@ -10108,20 +9501,17 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "bundled": true, "dev": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "bundled": true, "dev": true }, "object-copy": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "bundled": true, "dev": true, "requires": { "copy-descriptor": "0.1.1", @@ -10131,8 +9521,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "0.1.6" @@ -10142,8 +9531,7 @@ }, "object-visit": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "bundled": true, "dev": true, "requires": { "isobject": "3.0.1" @@ -10151,16 +9539,14 @@ "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true } } }, "object.pick": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "bundled": true, "dev": true, "requires": { "isobject": "3.0.1" @@ -10168,16 +9554,14 @@ "dependencies": { "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true } } }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "dev": true, "requires": { "wrappy": "1.0.2" @@ -10185,8 +9569,7 @@ }, "optimist": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "bundled": true, "dev": true, "requires": { "minimist": "0.0.8", @@ -10195,14 +9578,12 @@ }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "bundled": true, "dev": true }, "os-locale": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "bundled": true, "dev": true, "requires": { "execa": "0.7.0", @@ -10212,14 +9593,12 @@ }, "p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "bundled": true, "dev": true }, "p-limit": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "bundled": true, "dev": true, "requires": { "p-try": "1.0.0" @@ -10227,8 +9606,7 @@ }, "p-locate": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "bundled": true, "dev": true, "requires": { "p-limit": "1.2.0" @@ -10236,14 +9614,12 @@ }, "p-try": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "bundled": true, "dev": true }, "parse-json": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "bundled": true, "dev": true, "requires": { "error-ex": "1.3.1" @@ -10251,14 +9627,12 @@ }, "pascalcase": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "bundled": true, "dev": true }, "path-exists": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "bundled": true, "dev": true, "requires": { "pinkie-promise": "2.0.1" @@ -10266,26 +9640,22 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "bundled": true, "dev": true }, "path-key": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "bundled": true, "dev": true }, "path-parse": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "bundled": true, "dev": true }, "path-type": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -10295,20 +9665,17 @@ }, "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "bundled": true, "dev": true }, "pinkie": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "bundled": true, "dev": true }, "pinkie-promise": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "bundled": true, "dev": true, "requires": { "pinkie": "2.0.4" @@ -10316,8 +9683,7 @@ }, "pkg-dir": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "bundled": true, "dev": true, "requires": { "find-up": "1.1.2" @@ -10325,8 +9691,7 @@ "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "bundled": true, "dev": true, "requires": { "path-exists": "2.1.0", @@ -10337,20 +9702,17 @@ }, "posix-character-classes": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "bundled": true, "dev": true }, "pseudomap": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "bundled": true, "dev": true }, "read-pkg": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "bundled": true, "dev": true, "requires": { "load-json-file": "1.1.0", @@ -10360,8 +9722,7 @@ }, "read-pkg-up": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "bundled": true, "dev": true, "requires": { "find-up": "1.1.2", @@ -10370,8 +9731,7 @@ "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "bundled": true, "dev": true, "requires": { "path-exists": "2.1.0", @@ -10382,14 +9742,12 @@ }, "regenerator-runtime": { "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "bundled": true, "dev": true }, "regex-not": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "bundled": true, "dev": true, "requires": { "extend-shallow": "3.0.2", @@ -10398,20 +9756,17 @@ }, "repeat-element": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "bundled": true, "dev": true }, "repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "bundled": true, "dev": true }, "repeating": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "bundled": true, "dev": true, "requires": { "is-finite": "1.0.2" @@ -10419,38 +9774,32 @@ }, "require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "bundled": true, "dev": true }, "require-main-filename": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "bundled": true, "dev": true }, "resolve-from": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", + "bundled": true, "dev": true }, "resolve-url": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "bundled": true, "dev": true }, "ret": { "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "bundled": true, "dev": true }, "right-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -10459,8 +9808,7 @@ }, "rimraf": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "bundled": true, "dev": true, "requires": { "glob": "7.1.2" @@ -10468,8 +9816,7 @@ }, "safe-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "bundled": true, "dev": true, "requires": { "ret": "0.1.15" @@ -10477,20 +9824,17 @@ }, "semver": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "bundled": true, "dev": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "bundled": true, "dev": true }, "set-value": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "bundled": true, "dev": true, "requires": { "extend-shallow": "2.0.1", @@ -10501,8 +9845,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "0.1.1" @@ -10512,8 +9855,7 @@ }, "shebang-command": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "bundled": true, "dev": true, "requires": { "shebang-regex": "1.0.0" @@ -10521,26 +9863,22 @@ }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "bundled": true, "dev": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "bundled": true, "dev": true }, "slide": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "bundled": true, "dev": true }, "snapdragon": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "bundled": true, "dev": true, "requires": { "base": "0.11.2", @@ -10555,8 +9893,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "0.1.6" @@ -10564,8 +9901,7 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "0.1.1" @@ -10575,8 +9911,7 @@ }, "snapdragon-node": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "bundled": true, "dev": true, "requires": { "define-property": "1.0.0", @@ -10586,8 +9921,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "1.0.2" @@ -10595,8 +9929,7 @@ }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, "dev": true, "requires": { "kind-of": "6.0.2" @@ -10604,8 +9937,7 @@ }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, "dev": true, "requires": { "kind-of": "6.0.2" @@ -10613,8 +9945,7 @@ }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", @@ -10624,22 +9955,19 @@ }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true } } }, "snapdragon-util": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -10647,14 +9975,12 @@ }, "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "bundled": true, "dev": true }, "source-map-resolve": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", - "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "bundled": true, "dev": true, "requires": { "atob": "2.1.1", @@ -10666,14 +9992,12 @@ }, "source-map-url": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "bundled": true, "dev": true }, "spawn-wrap": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", - "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", + "bundled": true, "dev": true, "requires": { "foreground-child": "1.5.6", @@ -10686,8 +10010,7 @@ }, "spdx-correct": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "bundled": true, "dev": true, "requires": { "spdx-expression-parse": "3.0.0", @@ -10696,14 +10019,12 @@ }, "spdx-exceptions": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", + "bundled": true, "dev": true }, "spdx-expression-parse": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "bundled": true, "dev": true, "requires": { "spdx-exceptions": "2.1.0", @@ -10712,14 +10033,12 @@ }, "spdx-license-ids": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", + "bundled": true, "dev": true }, "split-string": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "bundled": true, "dev": true, "requires": { "extend-shallow": "3.0.2" @@ -10727,8 +10046,7 @@ }, "static-extend": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "bundled": true, "dev": true, "requires": { "define-property": "0.2.5", @@ -10737,8 +10055,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "0.1.6" @@ -10748,8 +10065,7 @@ }, "string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "bundled": true, "dev": true, "requires": { "is-fullwidth-code-point": "2.0.0", @@ -10758,14 +10074,12 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "bundled": true, "dev": true }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "3.0.0" @@ -10775,8 +10089,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "2.1.1" @@ -10784,8 +10097,7 @@ }, "strip-bom": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "bundled": true, "dev": true, "requires": { "is-utf8": "0.2.1" @@ -10793,20 +10105,17 @@ }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "bundled": true, "dev": true }, "supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "bundled": true, "dev": true }, "test-exclude": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", - "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", + "bundled": true, "dev": true, "requires": { "arrify": "1.0.1", @@ -10818,20 +10127,17 @@ "dependencies": { "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "bundled": true, "dev": true }, "array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "bundled": true, "dev": true }, "braces": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "bundled": true, "dev": true, "requires": { "arr-flatten": "1.1.0", @@ -10848,8 +10154,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "0.1.1" @@ -10859,8 +10164,7 @@ }, "expand-brackets": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "bundled": true, "dev": true, "requires": { "debug": "2.6.9", @@ -10874,8 +10178,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "0.1.6" @@ -10883,8 +10186,7 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "0.1.1" @@ -10892,8 +10194,7 @@ }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -10901,8 +10202,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -10912,8 +10212,7 @@ }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -10921,8 +10220,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -10932,8 +10230,7 @@ }, "is-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "bundled": true, "dev": true, "requires": { "is-accessor-descriptor": "0.1.6", @@ -10943,16 +10240,14 @@ }, "kind-of": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "bundled": true, "dev": true } } }, "extglob": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "bundled": true, "dev": true, "requires": { "array-unique": "0.3.2", @@ -10967,8 +10262,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, "dev": true, "requires": { "is-descriptor": "1.0.2" @@ -10976,8 +10270,7 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "0.1.1" @@ -10987,8 +10280,7 @@ }, "fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "bundled": true, "dev": true, "requires": { "extend-shallow": "2.0.1", @@ -10999,8 +10291,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "0.1.1" @@ -11010,8 +10301,7 @@ }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, "dev": true, "requires": { "kind-of": "6.0.2" @@ -11019,8 +10309,7 @@ }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, "dev": true, "requires": { "kind-of": "6.0.2" @@ -11028,8 +10317,7 @@ }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", @@ -11039,8 +10327,7 @@ }, "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -11048,8 +10335,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { "is-buffer": "1.1.6" @@ -11059,20 +10345,17 @@ }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true }, "micromatch": { "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "bundled": true, "dev": true, "requires": { "arr-diff": "4.0.0", @@ -11094,14 +10377,12 @@ }, "to-fast-properties": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "bundled": true, "dev": true }, "to-object-path": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -11109,8 +10390,7 @@ }, "to-regex": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "bundled": true, "dev": true, "requires": { "define-property": "2.0.2", @@ -11121,8 +10401,7 @@ }, "to-regex-range": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "bundled": true, "dev": true, "requires": { "is-number": "3.0.0", @@ -11131,8 +10410,7 @@ "dependencies": { "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" @@ -11142,14 +10420,12 @@ }, "trim-right": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "bundled": true, "dev": true }, "uglify-js": { "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -11160,8 +10436,7 @@ "dependencies": { "yargs": { "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -11175,15 +10450,13 @@ }, "uglify-to-browserify": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "bundled": true, "dev": true, "optional": true }, "union-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "bundled": true, "dev": true, "requires": { "arr-union": "3.1.0", @@ -11194,8 +10467,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { "is-extendable": "0.1.1" @@ -11203,8 +10475,7 @@ }, "set-value": { "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "bundled": true, "dev": true, "requires": { "extend-shallow": "2.0.1", @@ -11217,8 +10488,7 @@ }, "unset-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "bundled": true, "dev": true, "requires": { "has-value": "0.3.1", @@ -11227,8 +10497,7 @@ "dependencies": { "has-value": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "bundled": true, "dev": true, "requires": { "get-value": "2.0.6", @@ -11238,8 +10507,7 @@ "dependencies": { "isobject": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "bundled": true, "dev": true, "requires": { "isarray": "1.0.0" @@ -11249,28 +10517,24 @@ }, "has-values": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "bundled": true, "dev": true }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true } } }, "urix": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "bundled": true, "dev": true }, "use": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", - "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "bundled": true, "dev": true, "requires": { "kind-of": "6.0.2" @@ -11278,16 +10542,14 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true } } }, "validate-npm-package-license": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", + "bundled": true, "dev": true, "requires": { "spdx-correct": "3.0.0", @@ -11296,8 +10558,7 @@ }, "which": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "bundled": true, "dev": true, "requires": { "isexe": "2.0.0" @@ -11305,27 +10566,23 @@ }, "which-module": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "bundled": true, "dev": true }, "window-size": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "bundled": true, "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "bundled": true, "dev": true }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "bundled": true, "dev": true, "requires": { "string-width": "1.0.2", @@ -11334,8 +10591,7 @@ "dependencies": { "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, "dev": true, "requires": { "number-is-nan": "1.0.1" @@ -11343,8 +10599,7 @@ }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "dev": true, "requires": { "code-point-at": "1.1.0", @@ -11356,14 +10611,12 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "bundled": true, "dev": true }, "write-file-atomic": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", - "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", + "bundled": true, "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -11373,20 +10626,17 @@ }, "y18n": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "bundled": true, "dev": true }, "yallist": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "bundled": true, "dev": true }, "yargs": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", - "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", + "bundled": true, "dev": true, "requires": { "cliui": "4.1.0", @@ -11405,20 +10655,17 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "bundled": true, "dev": true }, "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "bundled": true, "dev": true }, "cliui": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "bundled": true, "dev": true, "requires": { "string-width": "2.1.1", @@ -11428,8 +10675,7 @@ }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "3.0.0" @@ -11437,8 +10683,7 @@ }, "yargs-parser": { "version": "9.0.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "bundled": true, "dev": true, "requires": { "camelcase": "4.1.0" @@ -11448,8 +10693,7 @@ }, "yargs-parser": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", - "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", + "bundled": true, "dev": true, "requires": { "camelcase": "4.1.0" @@ -11457,8 +10701,7 @@ "dependencies": { "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "bundled": true, "dev": true } } @@ -11845,14 +11088,6 @@ "content": "4.0.5", "hoek": "5.0.3", "nigel": "3.0.1" - }, - "dependencies": { - "hoek": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", - "dev": true - } } }, "pidusage": { @@ -11947,14 +11182,6 @@ "requires": { "hoek": "5.0.3", "joi": "13.3.0" - }, - "dependencies": { - "hoek": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", - "dev": true - } } }, "postcss": { @@ -12473,9 +11700,9 @@ } }, "request": { - "version": "2.86.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.86.0.tgz", - "integrity": "sha512-BQZih67o9r+Ys94tcIW4S7Uu8pthjrQVxhsZ/weOwHbDfACxvIyvnAbzFQxjy1jMtvFSzv5zf4my6cZsJBbVzw==", + "version": "2.87.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", + "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", "requires": { "aws-sign2": "0.7.0", "aws4": "1.7.0", @@ -12485,7 +11712,6 @@ "forever-agent": "0.6.1", "form-data": "2.3.2", "har-validator": "5.0.3", - "hawk": "6.0.2", "http-signature": "1.2.0", "is-typedarray": "1.0.0", "isstream": "0.1.2", @@ -12595,7 +11821,7 @@ "dtrace-provider": "0.8.6", "escape-regexp-component": "1.0.2", "ewma": "2.0.1", - "find-my-way": "1.12.0", + "find-my-way": "1.13.0", "formidable": "1.2.1", "http-signature": "1.2.0", "lodash": "4.17.10", @@ -12643,6 +11869,12 @@ "signal-exit": "3.0.2" } }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, "retry-axios": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/retry-axios/-/retry-axios-0.3.2.tgz", @@ -12653,7 +11885,7 @@ "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-3.3.1.tgz", "integrity": "sha512-PjAmtWIxjNj4Co/6FRtBl8afRP3CxrrIAnUzb1dzydfROd+6xt7xAebFeskgQgkfFf8NmzrXIoaB3HxmswXyxw==", "requires": { - "request": "2.86.0", + "request": "2.87.0", "through2": "2.0.3" } }, @@ -12729,6 +11961,15 @@ "dev": true, "optional": true }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -12883,14 +12124,6 @@ "requires": { "hoek": "5.0.3", "joi": "13.3.0" - }, - "dependencies": { - "hoek": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", - "dev": true - } } }, "signal-exit": { @@ -12935,14 +12168,6 @@ "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", "dev": true }, - "sntp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", - "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", - "requires": { - "hoek": "4.2.1" - } - }, "sort-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", @@ -13092,7 +12317,7 @@ "resolved": "https://registry.npmjs.org/split-array-stream/-/split-array-stream-1.0.3.tgz", "integrity": "sha1-0rdajl4Ngk1S/eyLgiWDncLjXfo=", "requires": { - "async": "2.6.0", + "async": "2.6.1", "is-stream-ended": "0.1.4" } }, @@ -13145,23 +12370,6 @@ "hoek": "5.0.3", "iron": "5.0.4", "joi": "13.3.0" - }, - "dependencies": { - "cryptiles": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-4.1.1.tgz", - "integrity": "sha512-YuQUPbcOmaZsdvxJZ25DCA1W+lLIRoPJKBDKin+St1RCYEERSfoe1d25B1MvWNHN3e8SpFSVsqYvEUjp8J9H2w==", - "dev": true, - "requires": { - "boom": "7.2.0" - } - }, - "hoek": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", - "dev": true - } } }, "statuses": { @@ -13304,14 +12512,6 @@ "hoek": "5.0.3", "pez": "4.0.2", "wreck": "14.0.2" - }, - "dependencies": { - "hoek": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", - "dev": true - } } }, "superagent": { @@ -13482,14 +12682,6 @@ "dev": true, "requires": { "hoek": "5.0.3" - }, - "dependencies": { - "hoek": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", - "dev": true - } } }, "tough-cookie": { @@ -13868,14 +13060,6 @@ "dev": true, "requires": { "hoek": "5.0.3" - }, - "dependencies": { - "hoek": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", - "dev": true - } } }, "wbuf": { @@ -13984,14 +13168,6 @@ "requires": { "boom": "7.2.0", "hoek": "5.0.3" - }, - "dependencies": { - "hoek": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", - "dev": true - } } }, "write": { From 5a208e6761a3ecbb5c6356cc2f1fa6b13b6ba1c0 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Tue, 22 May 2018 16:53:44 -0700 Subject: [PATCH 105/527] fix: upgrade to the latest @google-cloud/common (#128) --- handwritten/error-reporting/.gitignore | 1 + handwritten/error-reporting/README.md | 2 - handwritten/error-reporting/package-lock.json | 6651 +++++++++-------- handwritten/error-reporting/package.json | 9 +- .../error-reporting/src/configuration.ts | 17 +- .../src/google-apis/auth-client.ts | 142 +- handwritten/error-reporting/src/index.ts | 9 +- .../error-reporting/src/interfaces/manual.ts | 120 +- handwritten/error-reporting/src/logger.ts | 20 +- handwritten/error-reporting/src/types.d.ts | 89 - .../system-test/error-reporting.ts | 38 +- .../system-test/test-install.ts | 10 +- .../error-reporting/system-test/utils.ts | 8 +- .../test/fixtures/configuration.ts | 3 +- .../test/unit/google-apis/auth-client.ts | 16 +- .../test/unit/interfaces/manual.ts | 6 +- .../utils/errors-api-transport.ts | 30 +- 17 files changed, 3812 insertions(+), 3359 deletions(-) delete mode 100644 handwritten/error-reporting/src/types.d.ts diff --git a/handwritten/error-reporting/.gitignore b/handwritten/error-reporting/.gitignore index 9e73b0fa34f..1405466a5f7 100644 --- a/handwritten/error-reporting/.gitignore +++ b/handwritten/error-reporting/.gitignore @@ -9,3 +9,4 @@ out/ system-test/secrets.js system-test/*key.json build +.vscode diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index ea2ea86db21..f0421ba10db 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -2,8 +2,6 @@ # Stackdriver Error Reporting: Node.js Client -[![Greenkeeper badge](https://badges.greenkeeper.io/googleapis/nodejs-error-reporting.svg)](https://greenkeeper.io/) - [![release level](https://img.shields.io/badge/release%20level-beta-yellow.svg?style=flat)](https://cloud.google.com/terms/launch-stages) [![CircleCI](https://img.shields.io/circleci/project/github/googleapis/nodejs-error-reporting.svg?style=flat)](https://circleci.com/gh/googleapis/nodejs-error-reporting) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/googleapis/nodejs-error-reporting?branch=master&svg=true)](https://ci.appveyor.com/project/googleapis/nodejs-error-reporting) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index caf964e9518..cea29d61dd8 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -16,18 +16,18 @@ "integrity": "sha512-oWqTnIGXW3k72UFidXzW0ONlO7hnO9x02S/QReJ7NBGeiBH9cUHY9+EfV6C8PXC6YJH++WrliEq03wMSJGNZFg==", "dev": true, "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "package-hash": "1.2.0" + "babel-plugin-check-es2015-constants": "^6.8.0", + "babel-plugin-syntax-trailing-function-commas": "^6.20.0", + "babel-plugin-transform-async-to-generator": "^6.16.0", + "babel-plugin-transform-es2015-destructuring": "^6.19.0", + "babel-plugin-transform-es2015-function-name": "^6.9.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.18.0", + "babel-plugin-transform-es2015-parameters": "^6.21.0", + "babel-plugin-transform-es2015-spread": "^6.8.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.8.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.11.0", + "babel-plugin-transform-exponentiation-operator": "^6.8.0", + "package-hash": "^1.2.0" }, "dependencies": { "md5-hex": { @@ -36,7 +36,7 @@ "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "package-hash": { @@ -45,7 +45,7 @@ "integrity": "sha1-AD5WzVe3NqbtYRTMK4FUJnJ3DkQ=", "dev": true, "requires": { - "md5-hex": "1.3.0" + "md5-hex": "^1.3.0" } } } @@ -56,8 +56,8 @@ "integrity": "sha1-ze0RlqjY2TgaUJJAq5LpGl7Aafc=", "dev": true, "requires": { - "@ava/babel-plugin-throws-helper": "2.0.0", - "babel-plugin-espower": "2.4.0" + "@ava/babel-plugin-throws-helper": "^2.0.0", + "babel-plugin-espower": "^2.3.2" } }, "@ava/write-file-atomic": { @@ -66,9 +66,9 @@ "integrity": "sha512-BTNB3nGbEfJT+69wuqXFr/bQH7Vr7ihx2xGOMNqPgDGhwspoZhiWumDDZNjBy7AScmqS5CELIOGtPVXESyrnDA==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, "@concordance/react": { @@ -77,32 +77,28 @@ "integrity": "sha512-htrsRaQX8Iixlsek8zQU7tE8wcsTQJ5UhZkSPEA8slCDAisKpC/2VgU/ucPn32M5/LjGGXRaUEKvEw1Wiuu4zQ==", "dev": true, "requires": { - "arrify": "1.0.1" + "arrify": "^1.0.1" } }, "@google-cloud/common": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.17.0.tgz", - "integrity": "sha512-HRZLSU762E6HaKoGfJGa8W95yRjb9rY7LePhjaHK9ILAnFacMuUGVamDbTHu1csZomm1g3tZTtXfX/aAhtie/Q==", - "requires": { - "array-uniq": "1.0.3", - "arrify": "1.0.1", - "concat-stream": "1.6.2", - "create-error-class": "3.0.2", - "duplexify": "3.6.0", - "ent": "2.2.0", - "extend": "3.0.1", - "google-auto-auth": "0.10.1", - "is": "3.2.1", - "log-driver": "1.2.7", - "methmeth": "1.1.0", - "modelo": "4.2.3", - "request": "2.87.0", - "retry-request": "3.3.1", - "split-array-stream": "1.0.3", - "stream-events": "1.0.4", - "string-format-obj": "1.1.1", - "through2": "2.0.3" + "version": "0.18.9", + "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.18.9.tgz", + "integrity": "sha512-P5jtyfOCF84fzVcT/36XKARRrbCOqozYBliDd7btQ96GuEqKzjPVjxeE4EzdeRQ8QChBpHLrbONsU63Jprw73A==", + "requires": { + "@types/duplexify": "^3.5.0", + "@types/request": "^2.47.0", + "arrify": "^1.0.1", + "axios": "^0.18.0", + "duplexify": "^3.5.4", + "ent": "^2.2.0", + "extend": "^3.0.1", + "google-auth-library": "^1.4.0", + "is": "^3.2.1", + "pify": "^3.0.0", + "request": "^2.85.0", + "retry-request": "^3.3.1", + "split-array-stream": "^2.0.0", + "stream-events": "^1.0.4" } }, "@google-cloud/nodejs-repo-tools": { @@ -119,7 +115,7 @@ "lodash": "4.17.5", "nyc": "11.4.1", "proxyquire": "1.8.0", - "semver": "5.5.0", + "semver": "^5.5.0", "sinon": "4.3.0", "string": "3.3.3", "supertest": "3.0.0", @@ -139,268 +135,297 @@ "integrity": "sha512-5eCZpvaksFVjP2rt1r60cfXmt3MUtsQDw8bAzNqNEr4WLvUMLgiVENMf/B9bE9YAX0mGVvaGA3v9IS9ekNqB1Q==", "dev": true, "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "1.0.1", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "default-require-extensions": "1.0.0", - "find-cache-dir": "0.1.1", - "find-up": "2.1.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "1.1.1", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "1.9.1", - "istanbul-lib-report": "1.1.2", - "istanbul-lib-source-maps": "1.2.2", - "istanbul-reports": "1.1.3", - "md5-hex": "1.3.0", - "merge-source-map": "1.0.4", - "micromatch": "2.3.11", - "mkdirp": "0.5.1", - "resolve-from": "2.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "4.1.1", - "yargs": "10.0.3", - "yargs-parser": "8.0.0" + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.3.0", + "debug-log": "^1.0.1", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^2.1.0", + "foreground-child": "^1.5.3", + "glob": "^7.0.6", + "istanbul-lib-coverage": "^1.1.1", + "istanbul-lib-hook": "^1.1.0", + "istanbul-lib-instrument": "^1.9.1", + "istanbul-lib-report": "^1.1.2", + "istanbul-lib-source-maps": "^1.2.2", + "istanbul-reports": "^1.1.3", + "md5-hex": "^1.2.0", + "merge-source-map": "^1.0.2", + "micromatch": "^2.3.11", + "mkdirp": "^0.5.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.5.4", + "signal-exit": "^3.0.1", + "spawn-wrap": "^1.4.2", + "test-exclude": "^4.1.1", + "yargs": "^10.0.3", + "yargs-parser": "^8.0.0" }, "dependencies": { "align-text": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" } }, "amdefine": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", "dev": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "ansi-styles": { "version": "2.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, "append-transform": { "version": "0.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", "dev": true, "requires": { - "default-require-extensions": "1.0.0" + "default-require-extensions": "^1.0.0" } }, "archy": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", "dev": true }, "arr-diff": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, "array-unique": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", "dev": true }, "arrify": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, "async": { "version": "1.5.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", "dev": true }, "babel-code-frame": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" } }, "babel-generator": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", + "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", "dev": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.4", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.6", + "trim-right": "^1.0.1" } }, "babel-messages": { "version": "6.23.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-runtime": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.5.3", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.4" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, "babel-types": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { "version": "6.18.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", "dev": true }, "balanced-match": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "brace-expansion": { "version": "1.1.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "braces": { "version": "1.8.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "builtin-modules": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, "caching-transform": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", + "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", "dev": true, "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" } }, "camelcase": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", "dev": true, "optional": true }, "center-align": { "version": "0.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "dev": true, "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chalk": { "version": "1.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "cliui": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "dev": true, "optional": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" }, "dependencies": { "wordwrap": { "version": "0.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", "dev": true, "optional": true } @@ -408,41 +433,48 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, "commondir": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, "concat-map": { "version": "0.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "convert-source-map": { "version": "1.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", "dev": true }, "core-js": { "version": "2.5.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", "dev": true }, "cross-spawn": { "version": "4.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", "dev": true, "requires": { - "lru-cache": "4.1.1", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, "debug": { "version": "2.6.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" @@ -450,387 +482,442 @@ }, "debug-log": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", + "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", "dev": true }, "decamelize": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "default-require-extensions": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", "dev": true, "requires": { - "strip-bom": "2.0.0" + "strip-bom": "^2.0.0" } }, "detect-indent": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "error-ex": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "escape-string-regexp": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "esutils": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, "execa": { "version": "0.7.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" }, "dependencies": { "cross-spawn": { "version": "5.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "4.1.1", - "shebang-command": "1.2.0", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } } } }, "expand-brackets": { "version": "0.1.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { "version": "1.8.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "2.2.3" + "fill-range": "^2.1.0" } }, "extglob": { "version": "0.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "filename-regex": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", "dev": true }, "fill-range": { "version": "2.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", "dev": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^1.1.3", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" } }, "find-cache-dir": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", "dev": true, "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" } }, "find-up": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "for-in": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true }, "for-own": { "version": "0.1.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "foreground-child": { "version": "1.5.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", "dev": true, "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" + "cross-spawn": "^4", + "signal-exit": "^3.0.0" } }, "fs.realpath": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "get-caller-file": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", "dev": true }, "get-stream": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true }, "glob": { "version": "7.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-base": { "version": "0.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "globals": { "version": "9.18.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", "dev": true }, "graceful-fs": { "version": "4.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, "handlebars": { "version": "4.0.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" }, "dependencies": { "source-map": { "version": "0.4.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } }, "has-ansi": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", "dev": true }, "hosted-git-info": { "version": "2.5.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", "dev": true }, "imurmurhash": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { "version": "2.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "invariant": { "version": "2.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", "dev": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", "dev": true }, "is-arrayish": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, "is-buffer": { "version": "1.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, "is-builtin-module": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-dotfile": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", "dev": true }, "is-equal-shallow": { "version": "0.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true }, "is-extglob": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", "dev": true }, "is-finite": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-glob": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-number": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-posix-bracket": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", "dev": true }, "is-primitive": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", "dev": true }, "is-stream": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "is-utf8": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, "isarray": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "isobject": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "requires": { "isarray": "1.0.0" @@ -838,67 +925,74 @@ }, "istanbul-lib-coverage": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz", + "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==", "dev": true }, "istanbul-lib-hook": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", + "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", "dev": true, "requires": { - "append-transform": "0.4.0" + "append-transform": "^0.4.0" } }, "istanbul-lib-instrument": { "version": "1.9.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz", + "integrity": "sha512-RQmXeQ7sphar7k7O1wTNzVczF9igKpaeGQAG9qR2L+BS4DCJNTI9nytRmIVYevwO0bbq+2CXvJmYDuz0gMrywA==", "dev": true, "requires": { - "babel-generator": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.1.1", - "semver": "5.4.1" + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.1.1", + "semver": "^5.3.0" } }, "istanbul-lib-report": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz", + "integrity": "sha512-UTv4VGx+HZivJQwAo1wnRwe1KTvFpfi/NYwN7DcsrdzMXwpRT/Yb6r4SBPoHWj4VuQPakR32g4PUUeyKkdDkBA==", "dev": true, "requires": { - "istanbul-lib-coverage": "1.1.1", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" + "istanbul-lib-coverage": "^1.1.1", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" }, "dependencies": { "supports-color": { "version": "3.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } }, "istanbul-lib-source-maps": { "version": "1.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz", + "integrity": "sha512-8BfdqSfEdtip7/wo1RnrvLpHVEd8zMZEDmOFEnpC6dg0vXflHt9nvoAyQUzig2uMSXfF2OBEYBV3CVjIL9JvaQ==", "dev": true, "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.1.1", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.1.1", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" }, "dependencies": { "debug": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { "ms": "2.0.0" @@ -908,169 +1002,191 @@ }, "istanbul-reports": { "version": "1.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.3.tgz", + "integrity": "sha512-ZEelkHh8hrZNI5xDaKwPMFwDsUf5wIEI2bXAFGp1e6deR2mnEKBPhLJEgr4ZBt8Gi6Mj38E/C8kcy9XLggVO2Q==", "dev": true, "requires": { - "handlebars": "4.0.11" + "handlebars": "^4.0.3" } }, "js-tokens": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", "dev": true }, "jsesc": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", "dev": true }, "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lazy-cache": { "version": "1.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", "dev": true, "optional": true }, "lcid": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "load-json-file": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" } }, "locate-path": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" }, "dependencies": { "path-exists": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true } } }, "lodash": { "version": "4.17.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", "dev": true }, "longest": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", "dev": true }, "loose-envify": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "lru-cache": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "md5-hex": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", + "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", + "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=", "dev": true }, "mem": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { - "mimic-fn": "1.1.0" + "mimic-fn": "^1.0.0" } }, "merge-source-map": { "version": "1.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", + "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } }, "micromatch": { "version": "2.3.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" } }, "mimic-fn": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", + "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", "dev": true }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { "minimist": "0.0.8" @@ -1078,505 +1194,575 @@ }, "ms": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "normalize-package-data": { "version": "2.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "2.5.0", - "is-builtin-module": "1.0.0", - "semver": "5.4.1", - "validate-npm-package-license": "3.0.1" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "npm-run-path": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, "object.omit": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "optimist": { "version": "0.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, "os-locale": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" } }, "p-finally": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, "p-limit": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", + "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", "dev": true }, "p-locate": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "1.1.0" + "p-limit": "^1.1.0" } }, "parse-glob": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" } }, "parse-json": { "version": "2.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "path-exists": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "path-key": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, "path-parse": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", "dev": true }, "path-type": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { "version": "2.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, "pinkie": { "version": "2.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", "dev": true }, "pinkie-promise": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "dev": true, "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" }, "dependencies": { "find-up": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } }, "preserve": { "version": "0.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", "dev": true }, "pseudomap": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, "randomatic": { "version": "1.1.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "kind-of": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "read-pkg": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" }, "dependencies": { "find-up": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } }, "regenerator-runtime": { "version": "0.11.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true }, "regex-cache": { "version": "0.4.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "remove-trailing-separator": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", "dev": true }, "repeat-element": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", "dev": true }, "repeat-string": { "version": "1.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, "repeating": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "require-directory": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, "require-main-filename": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", "dev": true }, "resolve-from": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", "dev": true }, "right-align": { "version": "0.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "dev": true, "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { "version": "2.6.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "semver": { "version": "5.4.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", "dev": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, "shebang-command": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, "slide": { "version": "1.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", "dev": true }, "source-map": { "version": "0.5.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, "spawn-wrap": { "version": "1.4.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", + "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", "dev": true, "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.0" + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" } }, "spdx-correct": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", "dev": true, "requires": { - "spdx-license-ids": "1.2.2" + "spdx-license-ids": "^1.0.2" } }, "spdx-expression-parse": { "version": "1.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", "dev": true }, "spdx-license-ids": { "version": "1.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", "dev": true }, "string-width": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" }, "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "strip-ansi": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-eof": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, "supports-color": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, "test-exclude": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz", + "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==", "dev": true, "requires": { - "arrify": "1.0.1", - "micromatch": "2.3.11", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" + "arrify": "^1.0.1", + "micromatch": "^2.3.11", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" } }, "to-fast-properties": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", "dev": true }, "trim-right": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "dev": true }, "uglify-js": { "version": "2.8.29", - "bundled": true, + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "dev": true, "optional": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "yargs": { "version": "3.10.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "dev": true, "optional": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" } } @@ -1584,126 +1770,141 @@ }, "uglify-to-browserify": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", "dev": true, "optional": true }, "validate-npm-package-license": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", "dev": true, "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" } }, "which": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, "window-size": { "version": "0.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", "dev": true }, "wrap-ansi": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } } } }, "wrappy": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "write-file-atomic": { "version": "1.3.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", + "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, "y18n": { "version": "3.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", "dev": true }, "yallist": { "version": "2.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, "yargs": { "version": "10.0.3", - "bundled": true, - "dev": true, - "requires": { - "cliui": "3.2.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "8.0.0" + "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.0.3.tgz", + "integrity": "sha512-DqBpQ8NAUX4GyPP/ijDGHsJya4tYqLQrjPr95HNsr1YwL3+daCfvBwg7+gIC6IdJhR2kATh3hb61vjzMWEtjdw==", + "dev": true, + "requires": { + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^8.0.0" }, "dependencies": { "cliui": { "version": "3.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" }, "dependencies": { "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } } } @@ -1712,15 +1913,17 @@ }, "yargs-parser": { "version": "8.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.0.0.tgz", + "integrity": "sha1-IdR2Mw5agieaS4gTRb8GYQLiGcY=", "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true } } @@ -1733,9 +1936,9 @@ "integrity": "sha1-AtUUpb7ZhvBMuyCTrxZ0FTX3ntw=", "dev": true, "requires": { - "fill-keys": "1.0.2", - "module-not-found-error": "1.0.1", - "resolve": "1.1.7" + "fill-keys": "^1.0.2", + "module-not-found-error": "^1.0.0", + "resolve": "~1.1.7" } } } @@ -1746,10 +1949,10 @@ "integrity": "sha512-weIbJqTMfQ4r1YX85u54DKfjLZs2jwn1XZ6tIOP/pFgMwhIN5BAtaCp/1wn9DzyLsDR9tW0R2NIePcVJ45ivQQ==", "dev": true, "requires": { - "chalk": "0.4.0", - "date-time": "0.1.1", - "pretty-ms": "0.2.2", - "text-table": "0.2.0" + "chalk": "^0.4.0", + "date-time": "^0.1.1", + "pretty-ms": "^0.2.1", + "text-table": "^0.2.0" }, "dependencies": { "ansi-styles": { @@ -1764,9 +1967,9 @@ "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", "dev": true, "requires": { - "ansi-styles": "1.0.0", - "has-color": "0.1.7", - "strip-ansi": "0.1.1" + "ansi-styles": "~1.0.0", + "has-color": "~0.1.0", + "strip-ansi": "~0.1.0" } }, "pretty-ms": { @@ -1775,7 +1978,7 @@ "integrity": "sha1-2oeaaC/zOjcBEEbxPWJ/Z8c7hPY=", "dev": true, "requires": { - "parse-ms": "0.1.2" + "parse-ms": "^0.1.0" } }, "strip-ansi": { @@ -1807,7 +2010,7 @@ "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", "dev": true, "requires": { - "@types/node": "10.1.2" + "@types/node": "*" } }, "@types/body-parser": { @@ -1816,8 +2019,8 @@ "integrity": "sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w==", "dev": true, "requires": { - "@types/connect": "3.4.32", - "@types/node": "10.1.2" + "@types/connect": "*", + "@types/node": "*" } }, "@types/boom": { @@ -1832,15 +2035,14 @@ "integrity": "sha512-bxOF3fsm69ezKxdcJ7Oo/PsZMOJ+JIV/QJO2IADfScmR3sLulR88dpSnz6+q+9JJ1kD7dXFFgUrGRSKHLkOX7w==", "dev": true, "requires": { - "@types/events": "1.2.0", - "@types/node": "10.1.2" + "@types/events": "*", + "@types/node": "*" } }, "@types/caseless": { "version": "0.12.1", "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.1.tgz", - "integrity": "sha512-FhlMa34NHp9K5MY1Uz8yb+ZvuX0pnvn3jScRSNAb75KHGB8d3rEU6hqMs3Z2vjuytcMfRg6c5CHMc3wtYyD2/A==", - "dev": true + "integrity": "sha512-FhlMa34NHp9K5MY1Uz8yb+ZvuX0pnvn3jScRSNAb75KHGB8d3rEU6hqMs3Z2vjuytcMfRg6c5CHMc3wtYyD2/A==" }, "@types/catbox": { "version": "10.0.0", @@ -1854,7 +2056,7 @@ "integrity": "sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg==", "dev": true, "requires": { - "@types/node": "10.1.2" + "@types/node": "*" } }, "@types/cookies": { @@ -1863,10 +2065,18 @@ "integrity": "sha512-ku6IvbucEyuC6i4zAVK/KnuzWNXdbFd1HkXlNLg/zhWDGTtQT5VhumiPruB/BHW34PWVFwyfwGftDQHfWNxu3Q==", "dev": true, "requires": { - "@types/connect": "3.4.32", - "@types/express": "4.11.1", - "@types/keygrip": "1.0.1", - "@types/node": "10.1.2" + "@types/connect": "*", + "@types/express": "*", + "@types/keygrip": "*", + "@types/node": "*" + } + }, + "@types/duplexify": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@types/duplexify/-/duplexify-3.5.0.tgz", + "integrity": "sha512-+aZCCdxuR/Q6n58CBkXyqGqimIqpYUcFLfBXagXv7e9TdJUevqkKhzopBuRz3RB064sQxnJnhttHOkK/O93Ouw==", + "requires": { + "@types/node": "*" } }, "@types/events": { @@ -1881,9 +2091,9 @@ "integrity": "sha512-ttWle8cnPA5rAelauSWeWJimtY2RsUf2aspYZs7xPHiWgOlPn6nnUfBMtrkcnjFJuIHJF4gNOdVvpLK2Zmvh6g==", "dev": true, "requires": { - "@types/body-parser": "1.17.0", - "@types/express-serve-static-core": "4.11.1", - "@types/serve-static": "1.13.2" + "@types/body-parser": "*", + "@types/express-serve-static-core": "*", + "@types/serve-static": "*" } }, "@types/express-serve-static-core": { @@ -1892,8 +2102,8 @@ "integrity": "sha512-EehCl3tpuqiM8RUb+0255M8PhhSwTtLfmO7zBBdv0ay/VTd/zmrqDfQdZFsa5z/PVMbH2yCMZPXsnrImpATyIw==", "dev": true, "requires": { - "@types/events": "1.2.0", - "@types/node": "10.1.2" + "@types/events": "*", + "@types/node": "*" } }, "@types/extend": { @@ -1906,9 +2116,8 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz", "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", - "dev": true, "requires": { - "@types/node": "10.1.2" + "@types/node": "*" } }, "@types/glob": { @@ -1917,9 +2126,9 @@ "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", "dev": true, "requires": { - "@types/events": "1.2.0", - "@types/minimatch": "3.0.3", - "@types/node": "10.1.2" + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" } }, "@types/hapi": { @@ -1928,14 +2137,14 @@ "integrity": "sha512-OdCd3r7IVLM894EGA6jrrxJpbY7r3EG+jJBGveGshMxwxQE58mL7NdRcr4hmdCzsgUl3aVtZkSK4GpAf8C9kMw==", "dev": true, "requires": { - "@types/boom": "7.2.0", - "@types/catbox": "10.0.0", - "@types/iron": "5.0.1", - "@types/joi": "13.0.8", - "@types/mimos": "3.0.1", - "@types/node": "10.1.2", - "@types/podium": "1.0.0", - "@types/shot": "3.4.0" + "@types/boom": "*", + "@types/catbox": "*", + "@types/iron": "*", + "@types/joi": "*", + "@types/mimos": "*", + "@types/node": "*", + "@types/podium": "*", + "@types/shot": "*" } }, "@types/http-assert": { @@ -1950,7 +2159,7 @@ "integrity": "sha512-Ng5BkVGPt7Tw9k1OJ6qYwuD9+dmnWgActmsnnrdvs4075N8V2go1f6Pz8omG3q5rbHjXN6yzzZDYo3JOgAE/Ug==", "dev": true, "requires": { - "@types/node": "10.1.2" + "@types/node": "*" } }, "@types/is": { @@ -1977,13 +2186,13 @@ "integrity": "sha512-emzrfiyQFMtx/dPMVhEMM1GU/p7QbRYWgubp1VGsR+bIC/53ehDf5IATM2fEZhoyHPeLuYyQVAjSPc/YqoWMSQ==", "dev": true, "requires": { - "@types/accepts": "1.3.5", - "@types/cookies": "0.7.1", - "@types/events": "1.2.0", - "@types/http-assert": "1.3.0", - "@types/keygrip": "1.0.1", - "@types/koa-compose": "3.2.2", - "@types/node": "10.1.2" + "@types/accepts": "*", + "@types/cookies": "*", + "@types/events": "*", + "@types/http-assert": "*", + "@types/keygrip": "*", + "@types/koa-compose": "*", + "@types/node": "*" } }, "@types/koa-compose": { @@ -2004,7 +2213,7 @@ "integrity": "sha512-L8D6y0a88Uv3/gdqUpmfHPGSFo676ggbtl5an3FgR4AzbvR+PKNdUMPr6F6Q/U3n3lCoCoV+WPt1vqJGbgPZ6Q==", "dev": true, "requires": { - "@types/lodash": "4.14.109" + "@types/lodash": "*" } }, "@types/lodash.has": { @@ -2013,7 +2222,7 @@ "integrity": "sha512-McmKJoXdSxMYIQzVWKSEGrHnTwJ1ErqXvsTQjFeGEhBmypgCjuANDSqxl4LKaKcoF4mNxMqSzH7wP4yQ0deLeQ==", "dev": true, "requires": { - "@types/lodash": "4.14.109" + "@types/lodash": "*" } }, "@types/lodash.maxby": { @@ -2022,7 +2231,7 @@ "integrity": "sha512-5AMk6874T1RMxtWkW0I4ORFptU508mTb8jYG0gaNCMDzX6kLn/VNQXewL6dasZd4dj/hSbM8dt7msLuI3rSIPQ==", "dev": true, "requires": { - "@types/lodash": "4.14.109" + "@types/lodash": "*" } }, "@types/lodash.merge": { @@ -2031,7 +2240,7 @@ "integrity": "sha512-bOCCutkbehfCeiSqJO5XcVKjsJvX28dgvjhs4aMmBAHAsOy2oOJQwHuIZ0elI1E94qQIdEsCvz8oLgUumd6teA==", "dev": true, "requires": { - "@types/lodash": "4.14.109" + "@types/lodash": "*" } }, "@types/lodash.omit": { @@ -2040,7 +2249,7 @@ "integrity": "sha512-a6VbeE+JjMQ3rKsQVRjle02E+iKPTsT7izzFRk4xJvv4TBcO85Lrpo+8n6iqsiH8yZ8mHy0LOmx7MVgO8OfovQ==", "dev": true, "requires": { - "@types/lodash": "4.14.109" + "@types/lodash": "*" } }, "@types/lodash.omitby": { @@ -2049,7 +2258,7 @@ "integrity": "sha512-IfMZru9AegVIu0lkOXc/ncCOR3zzC6FKTVuBHBd9PkmKbOCn5zFORT22Wf/fZ9SBr2HmaYLPkFhf5C7A7k/N9A==", "dev": true, "requires": { - "@types/lodash": "4.14.109" + "@types/lodash": "*" } }, "@types/lodash.pick": { @@ -2058,7 +2267,7 @@ "integrity": "sha512-7VR26qH/bzRBn8DN6HKWYwBB6dNo1dNSdc0nYQwPp5tua6u2dpHHCFccszvFKBdR2CjSEbL5hsqQul03P4COjA==", "dev": true, "requires": { - "@types/lodash": "4.14.109" + "@types/lodash": "*" } }, "@types/lodash.random": { @@ -2067,7 +2276,7 @@ "integrity": "sha512-JMCA9llou2Ye9mhz0H/7DaPrJ6PgmRb6ClnPGPzfoX7JUu9Q6NuRZON5INrTQH5LWahzqaZdeMwHyn8MGRkXoA==", "dev": true, "requires": { - "@types/lodash": "4.14.109" + "@types/lodash": "*" } }, "@types/lodash.without": { @@ -2076,7 +2285,7 @@ "integrity": "sha512-oD30pRigg97PfyF8u3WGkRnn3MPS/f2pwYf0s0dNeGOeScbZ1bo4BYBK7dab/lpX6EbUjoWAtLLMQW+LxlJpcQ==", "dev": true, "requires": { - "@types/lodash": "4.14.109" + "@types/lodash": "*" } }, "@types/mime": { @@ -2097,7 +2306,7 @@ "integrity": "sha512-MATIRH4VMIJki8lcYUZdNQEHuAG7iQ1FWwoLgxV+4fUOly2xZYdhHtGgvQyWiTeJqq2tZbE0nOOgZD6pR0FpNQ==", "dev": true, "requires": { - "@types/mime-db": "1.27.0" + "@types/mime-db": "*" } }, "@types/minimatch": { @@ -2118,7 +2327,7 @@ "integrity": "sha512-TeiJ7uvv/92ugSqZ0v9l0eNXzutlki0aK+R1K5bfA5SYUil46ITlxLW4iNTCf55P4L5weCmaOdtxGeGWvudwPg==", "dev": true, "requires": { - "@types/node": "10.1.2" + "@types/node": "*" } }, "@types/nock": { @@ -2127,14 +2336,13 @@ "integrity": "sha512-S8rJ+SaW82ICX87pZP62UcMifrMfjEdqNzSp+llx4YcvKw6bO650Ye6HwTqER1Dar3S40GIZECQisOrAICDCjA==", "dev": true, "requires": { - "@types/node": "10.1.2" + "@types/node": "*" } }, "@types/node": { "version": "10.1.2", "resolved": "https://registry.npmjs.org/@types/node/-/node-10.1.2.tgz", - "integrity": "sha512-bjk1RIeZBCe/WukrFToIVegOf91Pebr8cXYBwLBIsfiGWVQ+ifwWsT59H3RxrWzWrzd1l/Amk1/ioY5Fq3/bpA==", - "dev": true + "integrity": "sha512-bjk1RIeZBCe/WukrFToIVegOf91Pebr8cXYBwLBIsfiGWVQ+ifwWsT59H3RxrWzWrzd1l/Amk1/ioY5Fq3/bpA==" }, "@types/once": { "version": "1.4.0", @@ -2164,12 +2372,11 @@ "version": "2.47.0", "resolved": "https://registry.npmjs.org/@types/request/-/request-2.47.0.tgz", "integrity": "sha512-/KXM5oev+nNCLIgBjkwbk8VqxmzI56woD4VUxn95O+YeQ8hJzcSmIZ1IN3WexiqBb6srzDo2bdMbsXxgXNkz5Q==", - "dev": true, "requires": { - "@types/caseless": "0.12.1", - "@types/form-data": "2.2.1", - "@types/node": "10.1.2", - "@types/tough-cookie": "2.3.3" + "@types/caseless": "*", + "@types/form-data": "*", + "@types/node": "*", + "@types/tough-cookie": "*" } }, "@types/restify": { @@ -2178,9 +2385,9 @@ "integrity": "sha512-7nqnFv+M4w0KYajdb0sGy0C5k5OYvPLOPMbacNOM8I2Xm/UQpFnOUluwkkM1FyblVrhgfwHEHVUUZW1VWTXeAQ==", "dev": true, "requires": { - "@types/bunyan": "1.8.4", - "@types/node": "10.1.2", - "@types/spdy": "3.4.4" + "@types/bunyan": "*", + "@types/node": "*", + "@types/spdy": "*" } }, "@types/rimraf": { @@ -2189,8 +2396,8 @@ "integrity": "sha512-Hm/bnWq0TCy7jmjeN5bKYij9vw5GrDFWME4IuxV08278NtU/VdGbzsBohcCUJ7+QMqmUq5hpRKB39HeQWJjztQ==", "dev": true, "requires": { - "@types/glob": "5.0.35", - "@types/node": "10.1.2" + "@types/glob": "*", + "@types/node": "*" } }, "@types/serve-static": { @@ -2199,8 +2406,8 @@ "integrity": "sha512-/BZ4QRLpH/bNYgZgwhKEh+5AsboDBcUdlBYgzoLX0fpj3Y2gp6EApyOlM3bK53wQS/OE1SrdSYBAbux2D1528Q==", "dev": true, "requires": { - "@types/express-serve-static-core": "4.11.1", - "@types/mime": "2.0.0" + "@types/express-serve-static-core": "*", + "@types/mime": "*" } }, "@types/shot": { @@ -2209,7 +2416,7 @@ "integrity": "sha1-RZR3xRh9Pr0wNmCrCZ5+ng87ZW8=", "dev": true, "requires": { - "@types/node": "10.1.2" + "@types/node": "*" } }, "@types/spdy": { @@ -2218,7 +2425,7 @@ "integrity": "sha512-N9LBlbVRRYq6HgYpPkqQc3a9HJ/iEtVZToW6xlTtJiMhmRJ7jJdV7TaZQJw/Ve/1ePUsQiCTDc4JMuzzag94GA==", "dev": true, "requires": { - "@types/node": "10.1.2" + "@types/node": "*" } }, "@types/tmp": { @@ -2230,8 +2437,7 @@ "@types/tough-cookie": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.3.tgz", - "integrity": "sha512-MDQLxNFRLasqS4UlkWMSACMKeSm1x4Q3TxzUC7KQUsh6RK1ZrQ0VEyE3yzXcBu+K8ejVj4wuX32eUG02yNp+YQ==", - "dev": true + "integrity": "sha512-MDQLxNFRLasqS4UlkWMSACMKeSm1x4Q3TxzUC7KQUsh6RK1ZrQ0VEyE3yzXcBu+K8ejVj4wuX32eUG02yNp+YQ==" }, "accept": { "version": "3.0.2", @@ -2239,8 +2445,8 @@ "integrity": "sha512-bghLXFkCOsC1Y2TZ51etWfKDs6q249SAoHTZVfzWWdlZxoij+mgkj9AmUJWQpDY48TfnrTDIe43Xem4zdMe7mQ==", "dev": true, "requires": { - "boom": "7.2.0", - "hoek": "5.0.3" + "boom": "7.x.x", + "hoek": "5.x.x" } }, "accepts": { @@ -2249,7 +2455,7 @@ "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "dev": true, "requires": { - "mime-types": "2.1.18", + "mime-types": "~2.1.18", "negotiator": "0.6.1" } }, @@ -2271,7 +2477,7 @@ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "dev": true, "requires": { - "acorn": "3.3.0" + "acorn": "^3.0.4" }, "dependencies": { "acorn": { @@ -2287,10 +2493,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ajv-keywords": { @@ -2305,9 +2511,9 @@ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" } }, "amdefine": { @@ -2322,7 +2528,7 @@ "integrity": "sha512-4UqoM8xQjwkQ78oiU4NbBK0UgYqeKMAKmwE4ec7Rz3rGU8ZEBFxzgF2sUYKOAlqIXExBDYLN6y1ShF5yQ4hwLQ==", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "ansi-align": { @@ -2331,7 +2537,7 @@ "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "dev": true, "requires": { - "string-width": "2.1.1" + "string-width": "^2.0.0" } }, "ansi-escapes": { @@ -2352,7 +2558,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "^1.9.0" } }, "any-promise": { @@ -2367,8 +2573,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "dev": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "argparse": { @@ -2377,7 +2583,7 @@ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "argv": { @@ -2392,7 +2598,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-exclude": { @@ -2443,13 +2649,14 @@ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true }, "array-unique": { "version": "0.2.1", @@ -2478,14 +2685,6 @@ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, - "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "requires": { - "lodash": "4.17.10" - } - }, "async-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", @@ -2509,89 +2708,89 @@ "integrity": "sha512-4lGNJCf6xL8SvsKVEKxEE46se7JAUIAZoKHw9itTQuwcsydhpAMkBs5gOOiWiwt0JKNIuXWc2/r4r8ZdcNrBEw==", "dev": true, "requires": { - "@ava/babel-preset-stage-4": "1.1.0", - "@ava/babel-preset-transform-test-files": "3.0.0", - "@ava/write-file-atomic": "2.2.0", - "@concordance/react": "1.0.0", - "@ladjs/time-require": "0.1.4", - "ansi-escapes": "3.1.0", - "ansi-styles": "3.2.1", - "arr-flatten": "1.1.0", - "array-union": "1.0.2", - "array-uniq": "1.0.3", - "arrify": "1.0.1", - "auto-bind": "1.2.0", - "ava-init": "0.2.1", - "babel-core": "6.26.3", - "babel-generator": "6.26.1", - "babel-plugin-syntax-object-rest-spread": "6.13.0", - "bluebird": "3.5.1", - "caching-transform": "1.0.1", - "chalk": "2.4.1", - "chokidar": "1.7.0", - "clean-stack": "1.3.0", - "clean-yaml-object": "0.1.0", - "cli-cursor": "2.1.0", - "cli-spinners": "1.3.1", - "cli-truncate": "1.1.0", - "co-with-promise": "4.6.0", - "code-excerpt": "2.1.1", - "common-path-prefix": "1.0.0", - "concordance": "3.0.0", - "convert-source-map": "1.5.1", - "core-assert": "0.2.1", - "currently-unhandled": "0.4.1", - "debug": "3.1.0", - "dot-prop": "4.2.0", - "empower-core": "0.6.2", - "equal-length": "1.0.1", - "figures": "2.0.0", - "find-cache-dir": "1.0.0", - "fn-name": "2.0.1", - "get-port": "3.2.0", - "globby": "6.1.0", - "has-flag": "2.0.0", - "hullabaloo-config-manager": "1.1.1", - "ignore-by-default": "1.0.1", - "import-local": "0.1.1", - "indent-string": "3.2.0", - "is-ci": "1.1.0", - "is-generator-fn": "1.0.0", - "is-obj": "1.0.1", - "is-observable": "1.1.0", - "is-promise": "2.1.0", - "last-line-stream": "1.0.0", - "lodash.clonedeepwith": "4.5.0", - "lodash.debounce": "4.0.8", - "lodash.difference": "4.5.0", - "lodash.flatten": "4.4.0", - "loud-rejection": "1.6.0", - "make-dir": "1.3.0", - "matcher": "1.1.0", - "md5-hex": "2.0.0", - "meow": "3.7.0", - "ms": "2.0.0", - "multimatch": "2.1.0", - "observable-to-promise": "0.5.0", - "option-chain": "1.0.0", - "package-hash": "2.0.0", - "pkg-conf": "2.1.0", - "plur": "2.1.2", - "pretty-ms": "3.1.0", - "require-precompiled": "0.1.0", - "resolve-cwd": "2.0.0", - "safe-buffer": "5.1.2", - "semver": "5.5.0", - "slash": "1.0.0", - "source-map-support": "0.5.6", - "stack-utils": "1.0.1", - "strip-ansi": "4.0.0", - "strip-bom-buf": "1.0.0", - "supertap": "1.0.0", - "supports-color": "5.4.0", - "trim-off-newlines": "1.0.1", - "unique-temp-dir": "1.0.0", - "update-notifier": "2.5.0" + "@ava/babel-preset-stage-4": "^1.1.0", + "@ava/babel-preset-transform-test-files": "^3.0.0", + "@ava/write-file-atomic": "^2.2.0", + "@concordance/react": "^1.0.0", + "@ladjs/time-require": "^0.1.4", + "ansi-escapes": "^3.0.0", + "ansi-styles": "^3.1.0", + "arr-flatten": "^1.0.1", + "array-union": "^1.0.1", + "array-uniq": "^1.0.2", + "arrify": "^1.0.0", + "auto-bind": "^1.1.0", + "ava-init": "^0.2.0", + "babel-core": "^6.17.0", + "babel-generator": "^6.26.0", + "babel-plugin-syntax-object-rest-spread": "^6.13.0", + "bluebird": "^3.0.0", + "caching-transform": "^1.0.0", + "chalk": "^2.0.1", + "chokidar": "^1.4.2", + "clean-stack": "^1.1.1", + "clean-yaml-object": "^0.1.0", + "cli-cursor": "^2.1.0", + "cli-spinners": "^1.0.0", + "cli-truncate": "^1.0.0", + "co-with-promise": "^4.6.0", + "code-excerpt": "^2.1.1", + "common-path-prefix": "^1.0.0", + "concordance": "^3.0.0", + "convert-source-map": "^1.5.1", + "core-assert": "^0.2.0", + "currently-unhandled": "^0.4.1", + "debug": "^3.0.1", + "dot-prop": "^4.1.0", + "empower-core": "^0.6.1", + "equal-length": "^1.0.0", + "figures": "^2.0.0", + "find-cache-dir": "^1.0.0", + "fn-name": "^2.0.0", + "get-port": "^3.0.0", + "globby": "^6.0.0", + "has-flag": "^2.0.0", + "hullabaloo-config-manager": "^1.1.0", + "ignore-by-default": "^1.0.0", + "import-local": "^0.1.1", + "indent-string": "^3.0.0", + "is-ci": "^1.0.7", + "is-generator-fn": "^1.0.0", + "is-obj": "^1.0.0", + "is-observable": "^1.0.0", + "is-promise": "^2.1.0", + "last-line-stream": "^1.0.0", + "lodash.clonedeepwith": "^4.5.0", + "lodash.debounce": "^4.0.3", + "lodash.difference": "^4.3.0", + "lodash.flatten": "^4.2.0", + "loud-rejection": "^1.2.0", + "make-dir": "^1.0.0", + "matcher": "^1.0.0", + "md5-hex": "^2.0.0", + "meow": "^3.7.0", + "ms": "^2.0.0", + "multimatch": "^2.1.0", + "observable-to-promise": "^0.5.0", + "option-chain": "^1.0.0", + "package-hash": "^2.0.0", + "pkg-conf": "^2.0.0", + "plur": "^2.0.0", + "pretty-ms": "^3.0.0", + "require-precompiled": "^0.1.0", + "resolve-cwd": "^2.0.0", + "safe-buffer": "^5.1.1", + "semver": "^5.4.1", + "slash": "^1.0.0", + "source-map-support": "^0.5.0", + "stack-utils": "^1.0.1", + "strip-ansi": "^4.0.0", + "strip-bom-buf": "^1.0.0", + "supertap": "^1.0.0", + "supports-color": "^5.0.0", + "trim-off-newlines": "^1.0.1", + "unique-temp-dir": "^1.0.0", + "update-notifier": "^2.3.0" } }, "ava-init": { @@ -2600,11 +2799,11 @@ "integrity": "sha512-lXwK5LM+2g1euDRqW1mcSX/tqzY1QU7EjKpqayFPPtNRmbSYZ8RzPO5tqluTToijmtjp2M+pNpVdbcHssC4glg==", "dev": true, "requires": { - "arr-exclude": "1.0.0", - "execa": "0.7.0", - "has-yarn": "1.0.0", - "read-pkg-up": "2.0.0", - "write-pkg": "3.1.0" + "arr-exclude": "^1.0.0", + "execa": "^0.7.0", + "has-yarn": "^1.0.0", + "read-pkg-up": "^2.0.0", + "write-pkg": "^3.1.0" } }, "aws-sign2": { @@ -2622,8 +2821,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz", "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=", "requires": { - "follow-redirects": "1.5.0", - "is-buffer": "1.1.6" + "follow-redirects": "^1.3.0", + "is-buffer": "^1.1.5" } }, "b64": { @@ -2638,9 +2837,9 @@ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" }, "dependencies": { "ansi-styles": { @@ -2655,11 +2854,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "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" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "strip-ansi": { @@ -2668,7 +2867,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -2685,25 +2884,25 @@ "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.1", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.5.1", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.10", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" }, "dependencies": { "debug": { @@ -2723,14 +2922,14 @@ "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "dev": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" }, "dependencies": { "jsesc": { @@ -2747,9 +2946,9 @@ "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "dev": true, "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-call-delegate": { @@ -2758,10 +2957,10 @@ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "dev": true, "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-explode-assignable-expression": { @@ -2770,9 +2969,9 @@ "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-function-name": { @@ -2781,11 +2980,11 @@ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "dev": true, "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-get-function-arity": { @@ -2794,8 +2993,8 @@ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-hoist-variables": { @@ -2804,8 +3003,8 @@ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-regex": { @@ -2814,9 +3013,9 @@ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-remap-async-to-generator": { @@ -2825,11 +3024,11 @@ "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helpers": { @@ -2838,8 +3037,8 @@ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-messages": { @@ -2848,7 +3047,7 @@ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { @@ -2857,7 +3056,7 @@ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-espower": { @@ -2866,13 +3065,13 @@ "integrity": "sha512-/+SRpy7pKgTI28oEHfn1wkuM5QFAdRq8WNsOOih1dVrdV6A/WbNbRZyl0eX5eyDgtb0lOE27PeDFuCX2j8OxVg==", "dev": true, "requires": { - "babel-generator": "6.26.1", - "babylon": "6.18.0", - "call-matcher": "1.0.1", - "core-js": "2.5.6", - "espower-location-detector": "1.0.0", - "espurify": "1.8.0", - "estraverse": "4.2.0" + "babel-generator": "^6.1.0", + "babylon": "^6.1.0", + "call-matcher": "^1.0.0", + "core-js": "^2.0.0", + "espower-location-detector": "^1.0.0", + "espurify": "^1.6.0", + "estraverse": "^4.1.1" } }, "babel-plugin-syntax-async-functions": { @@ -2905,9 +3104,9 @@ "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "dev": true, "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-destructuring": { @@ -2916,7 +3115,7 @@ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -2925,9 +3124,9 @@ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -2936,10 +3135,10 @@ "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "dev": true, "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -2948,12 +3147,12 @@ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "dev": true, "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-spread": { @@ -2962,7 +3161,7 @@ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -2971,9 +3170,9 @@ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "dev": true, "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -2982,9 +3181,9 @@ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "dev": true, "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -2993,9 +3192,9 @@ "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "dev": true, "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-strict-mode": { @@ -3004,8 +3203,8 @@ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-register": { @@ -3014,13 +3213,13 @@ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "dev": true, "requires": { - "babel-core": "6.26.3", - "babel-runtime": "6.26.0", - "core-js": "2.5.6", - "home-or-tmp": "2.0.0", - "lodash": "4.17.10", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" }, "dependencies": { "source-map-support": { @@ -3029,7 +3228,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } } } @@ -3040,8 +3239,8 @@ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.5.6", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -3050,11 +3249,11 @@ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { @@ -3063,15 +3262,15 @@ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.10" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" }, "dependencies": { "debug": { @@ -3091,10 +3290,10 @@ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -3115,7 +3314,7 @@ "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "big-time": { @@ -3143,15 +3342,15 @@ "dev": true, "requires": { "bytes": "3.0.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.3", + "depd": "~1.1.2", + "http-errors": "~1.6.3", "iconv-lite": "0.4.23", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.5.2", "raw-body": "2.3.3", - "type-is": "1.6.16" + "type-is": "~1.6.16" }, "dependencies": { "debug": { @@ -3171,7 +3370,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "bounce": { @@ -3180,8 +3379,8 @@ "integrity": "sha512-8syCGe8B2/WC53118/F/tFy5aW00j+eaGPXmAUP7iBhxc+EBZZxS1vKelWyBCH6IqojgS2t1gF0glH30qAJKEw==", "dev": true, "requires": { - "boom": "7.2.0", - "hoek": "5.0.3" + "boom": "7.x.x", + "hoek": "5.x.x" } }, "boxen": { @@ -3190,13 +3389,13 @@ "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", "dev": true, "requires": { - "ansi-align": "2.0.0", - "camelcase": "4.1.0", - "chalk": "2.4.1", - "cli-boxes": "1.0.0", - "string-width": "2.1.1", - "term-size": "1.2.0", - "widest-line": "2.0.0" + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" }, "dependencies": { "camelcase": { @@ -3213,7 +3412,7 @@ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -3223,9 +3422,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "browser-stdout": { @@ -3248,7 +3447,8 @@ "buffer-from": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz", - "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==" + "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==", + "dev": true }, "builtin-modules": { "version": "1.1.1", @@ -3268,10 +3468,10 @@ "integrity": "sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=", "dev": true, "requires": { - "dtrace-provider": "0.8.6", - "moment": "2.22.1", - "mv": "2.1.1", - "safe-json-stringify": "1.1.0" + "dtrace-provider": "~0.8", + "moment": "^2.10.6", + "mv": "~2", + "safe-json-stringify": "~1" } }, "bytes": { @@ -3309,9 +3509,9 @@ "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", "dev": true, "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" }, "dependencies": { "md5-hex": { @@ -3320,7 +3520,7 @@ "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "write-file-atomic": { @@ -3329,9 +3529,9 @@ "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } } } @@ -3342,8 +3542,8 @@ "integrity": "sha512-ollfFPSshiuYLp7AsrmpkQJ/PxCi6AzV81rCjBwWhyF2QGyUY/vPDMzoh4aUcWyucheRglG2LaS5qkIEfLRh6A==", "dev": true, "requires": { - "boom": "7.2.0", - "hoek": "5.0.3" + "boom": "7.x.x", + "hoek": "5.x.x" } }, "call-matcher": { @@ -3352,10 +3552,10 @@ "integrity": "sha1-UTTQd5hPcSpU2tPL9i3ijc5BbKg=", "dev": true, "requires": { - "core-js": "2.5.6", - "deep-equal": "1.0.1", - "espurify": "1.8.0", - "estraverse": "4.2.0" + "core-js": "^2.0.0", + "deep-equal": "^1.0.0", + "espurify": "^1.6.0", + "estraverse": "^4.0.0" } }, "call-signature": { @@ -3370,7 +3570,7 @@ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsites": { @@ -3391,14 +3591,15 @@ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" } }, "capture-stack-trace": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", - "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=" + "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", + "dev": true }, "caseless": { "version": "0.12.0", @@ -3411,10 +3612,10 @@ "integrity": "sha512-cTQTQeKMhWHU0lX8CADE3g1koGJu+AlcWFzAjMX/8P+XbkScGYw3tJsQpe2Oh8q68vOQbOLacz9k+6V/F3Z9DA==", "dev": true, "requires": { - "boom": "7.2.0", - "bounce": "1.2.0", - "hoek": "5.0.3", - "joi": "13.3.0" + "boom": "7.x.x", + "bounce": "1.x.x", + "hoek": "5.x.x", + "joi": "13.x.x" } }, "catbox-memory": { @@ -3423,9 +3624,9 @@ "integrity": "sha512-lhWtutLVhsq3Mucxk2McxBPPibJ34WcHuWFz3xqub9u9Ve/IQYpZv3ijLhQXfQped9DXozURiaq9O3aZpP91eg==", "dev": true, "requires": { - "big-time": "2.0.1", - "boom": "7.2.0", - "hoek": "5.0.3" + "big-time": "2.x.x", + "boom": "7.x.x", + "hoek": "5.x.x" } }, "catharsis": { @@ -3434,7 +3635,7 @@ "integrity": "sha1-mMyJDKZS3S7w5ws3klMQ/56Q/Is=", "dev": true, "requires": { - "underscore-contrib": "0.3.0" + "underscore-contrib": "~0.3.0" } }, "center-align": { @@ -3444,8 +3645,8 @@ "dev": true, "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chai": { @@ -3454,12 +3655,12 @@ "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", "dev": true, "requires": { - "assertion-error": "1.1.0", - "check-error": "1.0.2", - "deep-eql": "3.0.1", - "get-func-name": "2.0.0", - "pathval": "1.1.0", - "type-detect": "4.0.8" + "assertion-error": "^1.0.1", + "check-error": "^1.0.1", + "deep-eql": "^3.0.0", + "get-func-name": "^2.0.0", + "pathval": "^1.0.0", + "type-detect": "^4.0.0" } }, "chalk": { @@ -3468,9 +3669,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "chardet": { @@ -3491,15 +3692,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "dev": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.2.4", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" } }, "ci-info": { @@ -3520,9 +3721,9 @@ "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", "dev": true, "requires": { - "async": "1.5.2", - "glob": "7.1.2", - "resolve": "1.1.7" + "async": "^1.5.2", + "glob": "^7.0.0", + "resolve": "^1.1.6" }, "dependencies": { "async": { @@ -3557,7 +3758,7 @@ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-spinners": { @@ -3572,8 +3773,8 @@ "integrity": "sha512-bAtZo0u82gCfaAGfSNxUdTI9mNyza7D8w4CVCcaOsy7sgwDzvx6ekr6cuWJqY3UGzgnQ1+4wgENup5eIhgxEYA==", "dev": true, "requires": { - "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "slice-ansi": "^1.0.0", + "string-width": "^2.0.0" } }, "cli-width": { @@ -3589,8 +3790,8 @@ "dev": true, "optional": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" }, "dependencies": { @@ -3609,7 +3810,7 @@ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "dev": true, "requires": { - "mimic-response": "1.0.0" + "mimic-response": "^1.0.0" } }, "co": { @@ -3623,7 +3824,7 @@ "integrity": "sha1-QT59tvWJOmC5Qs9JLEvsk9tBWrc=", "dev": true, "requires": { - "pinkie-promise": "1.0.0" + "pinkie-promise": "^1.0.0" } }, "code-excerpt": { @@ -3632,7 +3833,7 @@ "integrity": "sha512-tJLhH3EpFm/1x7heIW0hemXJTUU5EWl2V0EIX558jp05Mt1U6DVryCgkp3l37cxqs+DNbNgxG43SkwJXpQ14Jw==", "dev": true, "requires": { - "convert-to-spaces": "1.0.2" + "convert-to-spaces": "^1.0.1" } }, "code-point-at": { @@ -3648,7 +3849,7 @@ "dev": true, "requires": { "argv": "0.0.2", - "request": "2.87.0", + "request": "^2.81.0", "urlgrey": "0.4.4" } }, @@ -3658,7 +3859,7 @@ "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "^1.1.1" } }, "color-name": { @@ -3678,7 +3879,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -3715,11 +3916,12 @@ "version": "1.6.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, "requires": { - "buffer-from": "1.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, "concordance": { @@ -3728,17 +3930,17 @@ "integrity": "sha512-CZBzJ3/l5QJjlZM20WY7+5GP5pMTw+1UEbThcpMw8/rojsi5sBCiD8ZbBLtD+jYpRGAkwuKuqk108c154V9eyQ==", "dev": true, "requires": { - "date-time": "2.1.0", - "esutils": "2.0.2", - "fast-diff": "1.1.2", - "function-name-support": "0.2.0", - "js-string-escape": "1.0.1", - "lodash.clonedeep": "4.5.0", - "lodash.flattendeep": "4.4.0", - "lodash.merge": "4.6.1", - "md5-hex": "2.0.0", - "semver": "5.5.0", - "well-known-symbols": "1.0.0" + "date-time": "^2.1.0", + "esutils": "^2.0.2", + "fast-diff": "^1.1.1", + "function-name-support": "^0.2.0", + "js-string-escape": "^1.0.1", + "lodash.clonedeep": "^4.5.0", + "lodash.flattendeep": "^4.4.0", + "lodash.merge": "^4.6.0", + "md5-hex": "^2.0.0", + "semver": "^5.3.0", + "well-known-symbols": "^1.0.0" }, "dependencies": { "date-time": { @@ -3747,7 +3949,7 @@ "integrity": "sha512-/9+C44X7lot0IeiyfgJmETtRMhBidBYM2QFFIkGa0U1k+hSyY87Nw7PY3eDqpvCBm7I3WCSfPeZskW/YYq6m4g==", "dev": true, "requires": { - "time-zone": "1.0.0" + "time-zone": "^1.0.0" } } } @@ -3758,12 +3960,12 @@ "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", "dev": true, "requires": { - "dot-prop": "4.2.0", - "graceful-fs": "4.1.11", - "make-dir": "1.3.0", - "unique-string": "1.0.0", - "write-file-atomic": "2.3.0", - "xdg-basedir": "3.0.0" + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" } }, "content": { @@ -3772,7 +3974,7 @@ "integrity": "sha512-wDP6CTWDpwCf791fNxlCCkZGRkrNzSEU/8ju9Hnr3Uc5mF/gFR5W+fcoGm6zUSlVPdSXYn5pCbySADKj7YM4Cg==", "dev": true, "requires": { - "boom": "7.2.0" + "boom": "7.x.x" } }, "content-disposition": { @@ -3823,8 +4025,8 @@ "integrity": "sha1-fIphX1SBxhq58WyDNzG8uPZjuZs=", "dev": true, "requires": { - "depd": "1.1.2", - "keygrip": "1.0.2" + "depd": "~1.1.1", + "keygrip": "~1.0.2" } }, "core-assert": { @@ -3833,8 +4035,8 @@ "integrity": "sha1-+F4s+b/tKPdzzIs/pcW2m9wC/j8=", "dev": true, "requires": { - "buf-compare": "1.0.1", - "is-error": "2.2.1" + "buf-compare": "^1.0.0", + "is-error": "^2.2.0" } }, "core-js": { @@ -3854,13 +4056,13 @@ "integrity": "sha1-b4NhYlRiTwrViqSqjQdvAmvn4Yg=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1", - "nested-error-stacks": "1.0.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "readable-stream": "2.3.6" + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nested-error-stacks": "^1.0.1", + "object-assign": "^4.0.1", + "pify": "^2.3.0", + "pinkie-promise": "^2.0.0", + "readable-stream": "^2.1.4" }, "dependencies": { "pify": { @@ -3881,7 +4083,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } } } @@ -3892,12 +4094,12 @@ "integrity": "sha1-tnJn66LzlgugalphrJQDNCKDNCQ=", "dev": true, "requires": { - "cp-file": "3.2.0", - "globby": "4.1.0", - "meow": "3.7.0", - "nested-error-stacks": "1.0.2", - "object-assign": "4.1.1", - "pinkie-promise": "2.0.1" + "cp-file": "^3.1.0", + "globby": "^4.0.0", + "meow": "^3.6.0", + "nested-error-stacks": "^1.0.0", + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" }, "dependencies": { "glob": { @@ -3906,11 +4108,11 @@ "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", "dev": true, "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "globby": { @@ -3919,12 +4121,12 @@ "integrity": "sha1-CA9UVJ7BuCpsYOYx/ILhIR2+lfg=", "dev": true, "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "6.0.4", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^6.0.1", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -3945,7 +4147,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } } } @@ -3956,16 +4158,17 @@ "integrity": "sha1-Z/taSi3sKMqKv/N13kuecfanVhw=", "dev": true, "requires": { - "cpy": "4.0.1", - "meow": "3.7.0" + "cpy": "^4.0.0", + "meow": "^3.6.0" } }, "create-error-class": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "dev": true, "requires": { - "capture-stack-trace": "1.0.0" + "capture-stack-trace": "^1.0.0" } }, "cross-spawn": { @@ -3974,9 +4177,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "cryptiles": { @@ -3985,7 +4188,7 @@ "integrity": "sha512-YuQUPbcOmaZsdvxJZ25DCA1W+lLIRoPJKBDKin+St1RCYEERSfoe1d25B1MvWNHN3e8SpFSVsqYvEUjp8J9H2w==", "dev": true, "requires": { - "boom": "7.2.0" + "boom": "7.x.x" } }, "crypto-random-string": { @@ -4000,10 +4203,10 @@ "integrity": "sha1-UjHt/BxxUlEuxFeBB2p6l/9SXAw=", "dev": true, "requires": { - "csv-generate": "1.1.2", - "csv-parse": "1.3.3", - "csv-stringify": "1.1.2", - "stream-transform": "0.2.2" + "csv-generate": "^1.1.2", + "csv-parse": "^1.3.3", + "csv-stringify": "^1.1.2", + "stream-transform": "^0.2.2" } }, "csv-generate": { @@ -4024,7 +4227,7 @@ "integrity": "sha1-d6QVJlgbzjOA8SsA18W7rHDIK1g=", "dev": true, "requires": { - "lodash.get": "4.4.2" + "lodash.get": "~4.4.2" } }, "currently-unhandled": { @@ -4033,7 +4236,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "array-find-index": "1.0.2" + "array-find-index": "^1.0.1" } }, "d": { @@ -4042,7 +4245,7 @@ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "dev": true, "requires": { - "es5-ext": "0.10.42" + "es5-ext": "^0.10.9" } }, "dashdash": { @@ -4050,7 +4253,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "date-time": { @@ -4079,8 +4282,8 @@ "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", "dev": true, "requires": { - "decamelize": "1.2.0", - "map-obj": "1.0.1" + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" } }, "decode-uri-component": { @@ -4095,7 +4298,7 @@ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "dev": true, "requires": { - "mimic-response": "1.0.0" + "mimic-response": "^1.0.0" } }, "deep-eql": { @@ -4104,7 +4307,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "4.0.8" + "type-detect": "^4.0.0" } }, "deep-equal": { @@ -4131,8 +4334,8 @@ "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "dev": true, "requires": { - "foreach": "2.0.5", - "object-keys": "1.0.11" + "foreach": "^2.0.5", + "object-keys": "^1.0.8" } }, "del": { @@ -4141,13 +4344,13 @@ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.2" + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" }, "dependencies": { "globby": { @@ -4156,12 +4359,12 @@ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -4182,7 +4385,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } } } @@ -4216,7 +4419,7 @@ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "detect-node": { @@ -4243,7 +4446,7 @@ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "esutils": "2.0.2" + "esutils": "^2.0.2" } }, "dom-serializer": { @@ -4252,8 +4455,8 @@ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "dev": true, "requires": { - "domelementtype": "1.1.3", - "entities": "1.1.1" + "domelementtype": "~1.1.1", + "entities": "~1.1.1" }, "dependencies": { "domelementtype": { @@ -4276,7 +4479,7 @@ "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "dev": true, "requires": { - "domelementtype": "1.3.0" + "domelementtype": "1" } }, "domutils": { @@ -4285,8 +4488,8 @@ "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "dev": true, "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" + "dom-serializer": "0", + "domelementtype": "1" } }, "dot-prop": { @@ -4295,7 +4498,7 @@ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", "dev": true, "requires": { - "is-obj": "1.0.1" + "is-obj": "^1.0.0" } }, "dtrace-provider": { @@ -4305,7 +4508,7 @@ "dev": true, "optional": true, "requires": { - "nan": "2.10.0" + "nan": "^2.3.3" } }, "duplexer3": { @@ -4319,10 +4522,10 @@ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" } }, "eastasianwidth": { @@ -4337,7 +4540,7 @@ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "ecdsa-sig-formatter": { @@ -4345,7 +4548,7 @@ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz", "integrity": "sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "ee-first": { @@ -4360,8 +4563,8 @@ "integrity": "sha1-bw2nNEf07dg4/sXGAxOoi6XLhSs=", "dev": true, "requires": { - "core-js": "2.5.6", - "empower-core": "0.6.2" + "core-js": "^2.0.0", + "empower-core": "^0.6.2" } }, "empower-assert": { @@ -4370,7 +4573,7 @@ "integrity": "sha512-Ylck0Q6p8y/LpNzYeBccaxAPm2ZyuqBgErgZpO9KT0HuQWF0sJckBKCLmgS1/DEXEiyBi9XtYh3clZm5cAdARw==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.2.0" } }, "empower-core": { @@ -4380,7 +4583,7 @@ "dev": true, "requires": { "call-signature": "0.0.2", - "core-js": "2.5.6" + "core-js": "^2.0.0" } }, "encodeurl": { @@ -4394,7 +4597,7 @@ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "requires": { - "once": "1.4.0" + "once": "^1.4.0" } }, "ent": { @@ -4420,7 +4623,7 @@ "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "error-inject": { @@ -4435,9 +4638,9 @@ "integrity": "sha512-AJxO1rmPe1bDEfSR6TJ/FgMFYuTBhR5R57KW58iCkYACMyFbrkqVyzXSurYoScDGvgyMpk7uRF/lPUPPTmsRSA==", "dev": true, "requires": { - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1", - "next-tick": "1.0.0" + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "1" } }, "es6-error": { @@ -4452,9 +4655,9 @@ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" } }, "es6-map": { @@ -4463,12 +4666,12 @@ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42", - "es6-iterator": "2.0.3", - "es6-set": "0.1.5", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" } }, "es6-set": { @@ -4477,11 +4680,11 @@ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42", - "es6-iterator": "2.0.3", + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "event-emitter": "~0.3.5" } }, "es6-symbol": { @@ -4490,8 +4693,8 @@ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42" + "d": "1", + "es5-ext": "~0.10.14" } }, "es6-weak-map": { @@ -4500,10 +4703,10 @@ "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" } }, "escallmatch": { @@ -4512,8 +4715,8 @@ "integrity": "sha1-UAmdhugJGwkt+N37w/mm+wWgJNA=", "dev": true, "requires": { - "call-matcher": "1.0.1", - "esprima": "2.7.3" + "call-matcher": "^1.0.0", + "esprima": "^2.0.0" }, "dependencies": { "esprima": { @@ -4548,11 +4751,11 @@ "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", "dev": true, "requires": { - "esprima": "3.1.3", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.6.1" + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" }, "dependencies": { "esprima": { @@ -4576,10 +4779,10 @@ "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", "dev": true, "requires": { - "es6-map": "0.1.5", - "es6-weak-map": "2.0.2", - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint": { @@ -4588,44 +4791,44 @@ "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", "dev": true, "requires": { - "ajv": "5.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.4.1", - "concat-stream": "1.6.2", - "cross-spawn": "5.1.0", - "debug": "3.1.0", - "doctrine": "2.1.0", - "eslint-scope": "3.7.1", - "eslint-visitor-keys": "1.0.0", - "espree": "3.5.4", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.2", - "globals": "11.5.0", - "ignore": "3.3.8", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.11.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.10", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.0", - "regexpp": "1.1.0", - "require-uncached": "1.0.3", - "semver": "5.5.0", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", "table": "4.0.2", - "text-table": "0.2.0" + "text-table": "~0.2.0" }, "dependencies": { "globals": { @@ -4642,7 +4845,7 @@ "integrity": "sha512-ag8YEyBXsm3nmOv1Hz991VtNNDMRa+MNy8cY47Pl4bw6iuzqKbJajXdqUpiw13STdLLrznxgm1hj9NhxeOYq0A==", "dev": true, "requires": { - "get-stdin": "5.0.1" + "get-stdin": "^5.0.1" }, "dependencies": { "get-stdin": { @@ -4659,10 +4862,10 @@ "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", "dev": true, "requires": { - "ignore": "3.3.8", - "minimatch": "3.0.4", - "resolve": "1.7.1", - "semver": "5.5.0" + "ignore": "^3.3.6", + "minimatch": "^3.0.4", + "resolve": "^1.3.3", + "semver": "^5.4.1" }, "dependencies": { "resolve": { @@ -4671,7 +4874,7 @@ "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } } } @@ -4682,8 +4885,8 @@ "integrity": "sha512-floiaI4F7hRkTrFe8V2ItOK97QYrX75DjmdzmVITZoAP6Cn06oEDPQRsO6MlHEP/u2SxI3xQ52Kpjw6j5WGfeQ==", "dev": true, "requires": { - "fast-diff": "1.1.2", - "jest-docblock": "21.2.0" + "fast-diff": "^1.1.1", + "jest-docblock": "^21.0.0" } }, "eslint-scope": { @@ -4692,8 +4895,8 @@ "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", "dev": true, "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint-visitor-keys": { @@ -4708,16 +4911,16 @@ "integrity": "sha512-F4TY1qYJB1aUyzB03NsZksZzUQmQoEBaTUjRJGR30GxbkbjKI41NhCyYjrF+bGgWN7x/ZsczYppRpz/0WdI0ug==", "dev": true, "requires": { - "array-find": "1.0.0", - "escallmatch": "1.5.0", - "escodegen": "1.9.1", - "escope": "3.6.0", - "espower-location-detector": "1.0.0", - "espurify": "1.8.0", - "estraverse": "4.2.0", - "source-map": "0.5.7", - "type-name": "2.0.2", - "xtend": "4.0.1" + "array-find": "^1.0.0", + "escallmatch": "^1.5.0", + "escodegen": "^1.7.0", + "escope": "^3.3.0", + "espower-location-detector": "^1.0.0", + "espurify": "^1.3.0", + "estraverse": "^4.1.0", + "source-map": "^0.5.0", + "type-name": "^2.0.0", + "xtend": "^4.0.0" } }, "espower-loader": { @@ -4726,11 +4929,11 @@ "integrity": "sha1-7bRsPFmga6yOpzppXIblxaC8gto=", "dev": true, "requires": { - "convert-source-map": "1.5.1", - "espower-source": "2.2.0", - "minimatch": "3.0.4", - "source-map-support": "0.4.18", - "xtend": "4.0.1" + "convert-source-map": "^1.1.0", + "espower-source": "^2.0.0", + "minimatch": "^3.0.0", + "source-map-support": "^0.4.0", + "xtend": "^4.0.0" }, "dependencies": { "source-map-support": { @@ -4739,7 +4942,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } } } @@ -4750,10 +4953,10 @@ "integrity": "sha1-oXt+zFnTDheeK+9z+0E3cEyzMbU=", "dev": true, "requires": { - "is-url": "1.2.4", - "path-is-absolute": "1.0.1", - "source-map": "0.5.7", - "xtend": "4.0.1" + "is-url": "^1.2.1", + "path-is-absolute": "^1.0.0", + "source-map": "^0.5.0", + "xtend": "^4.0.0" } }, "espower-source": { @@ -4762,17 +4965,17 @@ "integrity": "sha1-fgBSVa5HtcE2RIZEs/PYAtUD91I=", "dev": true, "requires": { - "acorn": "5.5.3", - "acorn-es7-plugin": "1.1.7", - "convert-source-map": "1.5.1", - "empower-assert": "1.1.0", - "escodegen": "1.9.1", - "espower": "2.1.1", - "estraverse": "4.2.0", - "merge-estraverse-visitors": "1.0.0", - "multi-stage-sourcemap": "0.2.1", - "path-is-absolute": "1.0.1", - "xtend": "4.0.1" + "acorn": "^5.0.0", + "acorn-es7-plugin": "^1.0.10", + "convert-source-map": "^1.1.1", + "empower-assert": "^1.0.0", + "escodegen": "^1.6.1", + "espower": "^2.0.0", + "estraverse": "^4.0.0", + "merge-estraverse-visitors": "^1.0.0", + "multi-stage-sourcemap": "^0.2.1", + "path-is-absolute": "^1.0.0", + "xtend": "^4.0.0" } }, "espree": { @@ -4781,8 +4984,8 @@ "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "dev": true, "requires": { - "acorn": "5.5.3", - "acorn-jsx": "3.0.1" + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" } }, "esprima": { @@ -4797,7 +5000,7 @@ "integrity": "sha512-jdkJG9jswjKCCDmEridNUuIQei9algr+o66ZZ19610ZoBsiWLRsQGNYS4HGez3Z/DsR0lhANGAqiwBUclPuNag==", "dev": true, "requires": { - "core-js": "2.5.6" + "core-js": "^2.0.0" } }, "esquery": { @@ -4806,7 +5009,7 @@ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "esrecurse": { @@ -4815,7 +5018,7 @@ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.1.0" } }, "estraverse": { @@ -4842,8 +5045,8 @@ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42" + "d": "1", + "es5-ext": "~0.10.14" } }, "ewma": { @@ -4852,7 +5055,7 @@ "integrity": "sha512-MYYK17A76cuuyvkR7MnqLW4iFYPEi5Isl2qb8rXiWpLiwFS9dxW/rncuNnjjgSENuVqZQkIuR4+DChVL4g1lnw==", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "execa": { @@ -4861,13 +5064,13 @@ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } }, "expand-brackets": { @@ -4876,7 +5079,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -4885,7 +5088,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "2.2.4" + "fill-range": "^2.1.0" } }, "express": { @@ -4894,36 +5097,36 @@ "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", "dev": true, "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.5", "array-flatten": "1.1.1", "body-parser": "1.18.2", "content-disposition": "0.5.2", - "content-type": "1.0.4", + "content-type": "~1.0.4", "cookie": "0.3.1", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "1.1.2", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "finalhandler": "1.1.1", "fresh": "0.5.2", "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.3", + "proxy-addr": "~2.0.3", "qs": "6.5.1", - "range-parser": "1.2.0", + "range-parser": "~1.2.0", "safe-buffer": "5.1.1", "send": "0.16.2", "serve-static": "1.13.2", "setprototypeof": "1.1.0", - "statuses": "1.4.0", - "type-is": "1.6.16", + "statuses": "~1.4.0", + "type-is": "~1.6.16", "utils-merge": "1.0.1", - "vary": "1.1.2" + "vary": "~1.1.2" }, "dependencies": { "body-parser": { @@ -4933,15 +5136,15 @@ "dev": true, "requires": { "bytes": "3.0.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.3", + "depd": "~1.1.1", + "http-errors": "~1.6.2", "iconv-lite": "0.4.19", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.5.1", "raw-body": "2.3.2", - "type-is": "1.6.16" + "type-is": "~1.6.15" } }, "debug": { @@ -4998,7 +5201,7 @@ "depd": "1.1.1", "inherits": "2.0.3", "setprototypeof": "1.0.3", - "statuses": "1.4.0" + "statuses": ">= 1.3.1 < 2" } }, "setprototypeof": { @@ -5040,9 +5243,9 @@ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.23", - "tmp": "0.0.33" + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" } }, "extglob": { @@ -5051,7 +5254,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "extsprintf": { @@ -5093,7 +5296,7 @@ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -5102,8 +5305,8 @@ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "dev": true, "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" } }, "filename-regex": { @@ -5118,8 +5321,8 @@ "integrity": "sha1-mo+jb06K1jTjv2tPPIiCVRRS6yA=", "dev": true, "requires": { - "is-object": "1.0.1", - "merge-descriptors": "1.0.1" + "is-object": "~1.0.1", + "merge-descriptors": "~1.0.0" } }, "fill-range": { @@ -5128,11 +5331,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "dev": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.0.0", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" } }, "finalhandler": { @@ -5142,12 +5345,12 @@ "dev": true, "requires": { "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.4.0", - "unpipe": "1.0.0" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" }, "dependencies": { "debug": { @@ -5173,9 +5376,9 @@ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", "dev": true, "requires": { - "commondir": "1.0.1", - "make-dir": "1.3.0", - "pkg-dir": "2.0.0" + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" } }, "find-my-way": { @@ -5184,8 +5387,8 @@ "integrity": "sha512-aIa4UTxZ3klfApaQEJJ5cQvNeqfrxVngcjMgy+G5ygkrOrDPkORhY/RMH6F8mLwBpPt3Z0F03CtzN7gs2Q5H1w==", "dev": true, "requires": { - "fast-decode-uri-component": "1.0.0", - "safe-regex": "1.1.0" + "fast-decode-uri-component": "^1.0.0", + "safe-regex": "^1.1.0" } }, "find-up": { @@ -5194,7 +5397,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "flat-cache": { @@ -5203,10 +5406,10 @@ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "dev": true, "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" } }, "fn-name": { @@ -5220,7 +5423,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.0.tgz", "integrity": "sha512-fdrt472/9qQ6Kgjvb935ig6vJCuofpBUD14f9Vb+SLlm7xIe4Qva5gey8EKtv8lp7ahE1wilg3xL1znpVGtZIA==", "requires": { - "debug": "3.1.0" + "debug": "^3.1.0" } }, "for-in": { @@ -5235,7 +5438,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "foreach": { @@ -5254,9 +5457,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "requires": { - "asynckit": "0.4.0", + "asynckit": "^0.4.0", "combined-stream": "1.0.6", - "mime-types": "2.1.18" + "mime-types": "^2.1.12" } }, "formidable": { @@ -5283,8 +5486,8 @@ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" } }, "fs-extra": { @@ -5293,9 +5496,9 @@ "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "4.0.0", - "universalify": "0.1.1" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, "fs.realpath": { @@ -5311,81 +5514,93 @@ "dev": true, "optional": true, "requires": { - "nan": "2.10.0", - "node-pre-gyp": "0.10.0" + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { "abbrev": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true, "optional": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "aproba": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true, "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "dev": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "balanced-match": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "brace-expansion": { "version": "1.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "chownr": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, "concat-map": { "version": "0.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true }, "core-util-is": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true, "optional": true }, "debug": { "version": "2.6.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "optional": true, "requires": { @@ -5394,160 +5609,180 @@ }, "deep-extend": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", + "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", "dev": true, "optional": true }, "delegates": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true, "optional": true }, "detect-libc": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "dev": true, "optional": true }, "fs-minipass": { "version": "1.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", + "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "dev": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "fs.realpath": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true, "optional": true }, "gauge": { "version": "2.7.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "optional": true, "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" } }, "glob": { "version": "7.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "optional": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "has-unicode": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true, "optional": true }, "iconv-lite": { "version": "0.4.21", - "bundled": true, + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz", + "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", "dev": true, "optional": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "^2.1.0" } }, "ignore-walk": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "dev": true, "optional": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { "version": "2.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "ini": { "version": "1.3.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "isarray": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true, "optional": true }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, "minipass": { "version": "2.2.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.4.tgz", + "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", "dev": true, "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" } }, "minizlib": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", + "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", "dev": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { "minimist": "0.0.8" @@ -5555,145 +5790,162 @@ }, "ms": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true, "optional": true }, "needle": { "version": "2.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/needle/-/needle-2.2.0.tgz", + "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", "dev": true, "optional": true, "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, "node-pre-gyp": { "version": "0.10.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.10.0.tgz", + "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==", "dev": true, "optional": true, "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" } }, "nopt": { "version": "4.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "dev": true, "optional": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npm-bundled": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.3.tgz", + "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", "dev": true, "optional": true }, "npm-packlist": { "version": "1.1.10", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.10.tgz", + "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", "dev": true, "optional": true, "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npmlog": { "version": "4.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "optional": true, "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "number-is-nan": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true, "optional": true }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true, "optional": true }, "osenv": { "version": "0.1.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "optional": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true, "optional": true }, "process-nextick-args": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "dev": true, "optional": true }, "rc": { "version": "1.2.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz", + "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", "dev": true, "optional": true, "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true, "optional": true } @@ -5701,134 +5953,151 @@ }, "readable-stream": { "version": "2.3.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "optional": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "rimraf": { "version": "2.6.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "optional": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { "version": "5.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", "dev": true }, "safer-buffer": { "version": "2.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true, "optional": true }, "sax": { "version": "1.2.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true, "optional": true }, "semver": { "version": "5.5.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true, "optional": true }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "optional": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true, "optional": true }, "tar": { "version": "4.4.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.1.tgz", + "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", "dev": true, "optional": true, "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" } }, "util-deprecate": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true, "optional": true }, "wide-align": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "dev": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "yallist": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", + "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", "dev": true } } @@ -5850,8 +6119,8 @@ "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.6.3.tgz", "integrity": "sha512-MSmczZctbz91AxCvqp9GHBoZOSbJKAICV7Ow/AIWSJZRrRchUd5NL1b2P4OfP+4m490BEUPhhARfpHdqCxuCvg==", "requires": { - "axios": "0.18.0", - "extend": "3.0.1", + "axios": "^0.18.0", + "extend": "^3.0.1", "retry-axios": "0.3.2" } }, @@ -5890,7 +6159,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "glob": { @@ -5899,12 +6168,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-base": { @@ -5913,8 +6182,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -5923,7 +6192,7 @@ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "global-dirs": { @@ -5932,7 +6201,7 @@ "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "dev": true, "requires": { - "ini": "1.3.5" + "ini": "^1.3.4" } }, "globals": { @@ -5947,11 +6216,11 @@ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "dev": true, "requires": { - "array-union": "1.0.2", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "pify": { @@ -5972,7 +6241,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } } } @@ -5982,24 +6251,13 @@ "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-1.5.0.tgz", "integrity": "sha512-xpibA/hkq4waBcpIkSJg4GiDAqcBWjJee3c47zj7xP3RQ0A9mc8MP3Vc9sc8SGRoDYA0OszZxTjW7SbcC4pJIA==", "requires": { - "axios": "0.18.0", - "gcp-metadata": "0.6.3", - "gtoken": "2.3.0", - "jws": "3.1.5", - "lodash.isstring": "4.0.1", - "lru-cache": "4.1.3", - "retry-axios": "0.3.2" - } - }, - "google-auto-auth": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/google-auto-auth/-/google-auto-auth-0.10.1.tgz", - "integrity": "sha512-iIqSbY7Ypd32mnHGbYctp80vZzXoDlvI9gEfvtl3kmyy5HzOcrZCIGCBdSlIzRsg7nHpQiHE3Zl6Ycur6TSodQ==", - "requires": { - "async": "2.6.1", - "gcp-metadata": "0.6.3", - "google-auth-library": "1.5.0", - "request": "2.87.0" + "axios": "^0.18.0", + "gcp-metadata": "^0.6.3", + "gtoken": "^2.3.0", + "jws": "^3.1.4", + "lodash.isstring": "^4.0.1", + "lru-cache": "^4.1.2", + "retry-axios": "^0.3.2" } }, "google-p12-pem": { @@ -6007,8 +6265,8 @@ "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-1.0.2.tgz", "integrity": "sha512-+EuKr4CLlGsnXx4XIJIVkcKYrsa2xkAmCvxRhX2HsazJzUBAJ35wARGeApHUn4nNfPD03Vl057FskNr20VaCyg==", "requires": { - "node-forge": "0.7.5", - "pify": "3.0.0" + "node-forge": "^0.7.4", + "pify": "^3.0.0" } }, "got": { @@ -6017,23 +6275,23 @@ "integrity": "sha512-giadqJpXIwjY+ZsuWys8p2yjZGhOHiU4hiJHjS/oeCxw1u8vANQz3zPlrxW2Zw/siCXsSMI3hvzWGcnFyujyAg==", "dev": true, "requires": { - "@sindresorhus/is": "0.7.0", - "cacheable-request": "2.1.4", - "decompress-response": "3.3.0", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "into-stream": "3.1.0", - "is-retry-allowed": "1.1.0", - "isurl": "1.0.0", - "lowercase-keys": "1.0.1", - "mimic-response": "1.0.0", - "p-cancelable": "0.3.0", - "p-timeout": "2.0.1", - "pify": "3.0.0", - "safe-buffer": "5.1.2", - "timed-out": "4.0.1", - "url-parse-lax": "3.0.0", - "url-to-options": "1.0.1" + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" }, "dependencies": { "prepend-http": { @@ -6048,7 +6306,7 @@ "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "dev": true, "requires": { - "prepend-http": "2.0.0" + "prepend-http": "^2.0.0" } } } @@ -6070,11 +6328,11 @@ "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-2.3.0.tgz", "integrity": "sha512-Jc9/8mV630cZE9FC5tIlJCZNdUjwunvlwOtCz6IDlaiB4Sz68ki29a1+q97sWTnTYroiuF9B135rod9zrQdHLw==", "requires": { - "axios": "0.18.0", - "google-p12-pem": "1.0.2", - "jws": "3.1.5", - "mime": "2.3.1", - "pify": "3.0.0" + "axios": "^0.18.0", + "google-p12-pem": "^1.0.0", + "jws": "^3.1.4", + "mime": "^2.2.0", + "pify": "^3.0.0" } }, "gts": { @@ -6083,15 +6341,15 @@ "integrity": "sha512-MCh3HNzLA1zvnW8lStH58n6U7SaGCJwd0Y2fUWJklHdtpMB9zaGe8SR7l0DqqPf+t0hNoFu2KmRFxHBnkeeKrA==", "dev": true, "requires": { - "chalk": "2.4.1", + "chalk": "^2.4.1", "clang-format": "1.2.3", - "inquirer": "5.2.0", - "meow": "5.0.0", - "pify": "3.0.0", - "rimraf": "2.6.2", - "tslint": "5.10.0", - "update-notifier": "2.5.0", - "write-file-atomic": "2.3.0" + "inquirer": "^5.2.0", + "meow": "^5.0.0", + "pify": "^3.0.0", + "rimraf": "^2.6.2", + "tslint": "^5.9.1", + "update-notifier": "^2.5.0", + "write-file-atomic": "^2.3.0" }, "dependencies": { "camelcase": { @@ -6106,9 +6364,9 @@ "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", "dev": true, "requires": { - "camelcase": "4.1.0", - "map-obj": "2.0.0", - "quick-lru": "1.1.0" + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" } }, "inquirer": { @@ -6117,19 +6375,19 @@ "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==", "dev": true, "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.10", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.1.0", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rxjs": "5.5.10", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rxjs": "^5.5.2", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" } }, "load-json-file": { @@ -6138,10 +6396,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "map-obj": { @@ -6156,15 +6414,15 @@ "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", "dev": true, "requires": { - "camelcase-keys": "4.2.0", - "decamelize-keys": "1.1.0", - "loud-rejection": "1.6.0", - "minimist-options": "3.0.2", - "normalize-package-data": "2.4.0", - "read-pkg-up": "3.0.0", - "redent": "2.0.0", - "trim-newlines": "2.0.0", - "yargs-parser": "10.0.0" + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0", + "yargs-parser": "^10.0.0" } }, "parse-json": { @@ -6173,8 +6431,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.1", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "path-type": { @@ -6183,7 +6441,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "read-pkg": { @@ -6192,9 +6450,9 @@ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.4.0", - "path-type": "3.0.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" } }, "read-pkg-up": { @@ -6203,8 +6461,8 @@ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "3.0.0" + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" } }, "redent": { @@ -6213,8 +6471,8 @@ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", "dev": true, "requires": { - "indent-string": "3.2.0", - "strip-indent": "2.0.0" + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" } }, "strip-indent": { @@ -6235,7 +6493,7 @@ "integrity": "sha512-+DHejWujTVYeMHLff8U96rLc4uE4Emncoftvn5AjhB1Jw1pWxLzgBUT/WYbPrHmy6YPEBTZQx5myHhVcuuu64g==", "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } @@ -6252,10 +6510,10 @@ "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" }, "dependencies": { "async": { @@ -6270,7 +6528,7 @@ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -6281,23 +6539,23 @@ "integrity": "sha512-/btV0jpXb8ldoywsAt+FZg3qUVCx2ZjeA29Mluo3w/gcCJtzUnZfGALS8xR3d2ssVySm7JXVqeepy37Z02gJLQ==", "dev": true, "requires": { - "accept": "3.0.2", - "ammo": "3.0.1", - "boom": "7.2.0", - "bounce": "1.2.0", - "call": "5.0.1", - "catbox": "10.0.2", - "catbox-memory": "3.1.2", - "heavy": "6.1.0", - "hoek": "5.0.3", - "joi": "13.3.0", - "mimos": "4.0.0", - "podium": "3.1.2", - "shot": "4.0.5", - "statehood": "6.0.6", - "subtext": "6.0.7", - "teamwork": "3.0.1", - "topo": "3.0.0" + "accept": "3.x.x", + "ammo": "3.x.x", + "boom": "7.x.x", + "bounce": "1.x.x", + "call": "5.x.x", + "catbox": "10.x.x", + "catbox-memory": "3.x.x", + "heavy": "6.x.x", + "hoek": "5.x.x", + "joi": "13.x.x", + "mimos": "4.x.x", + "podium": "3.x.x", + "shot": "4.x.x", + "statehood": "6.x.x", + "subtext": "6.x.x", + "teamwork": "3.x.x", + "topo": "3.x.x" } }, "har-schema": { @@ -6310,8 +6568,8 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" + "ajv": "^5.1.0", + "har-schema": "^2.0.0" } }, "has-ansi": { @@ -6320,7 +6578,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-color": { @@ -6347,7 +6605,7 @@ "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", "dev": true, "requires": { - "has-symbol-support-x": "1.4.2" + "has-symbol-support-x": "^1.4.1" } }, "has-yarn": { @@ -6368,9 +6626,9 @@ "integrity": "sha512-TKS9DC9NOTGulHQI31Lx+bmeWmNOstbJbGMiN3pX6bF+Zc2GKSpbbym4oasNnB6yPGkqJ9TQXXYDGohqNSJRxA==", "dev": true, "requires": { - "boom": "7.2.0", - "hoek": "5.0.3", - "joi": "13.3.0" + "boom": "7.x.x", + "hoek": "5.x.x", + "joi": "13.x.x" } }, "hoek": { @@ -6385,8 +6643,8 @@ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" } }, "hosted-git-info": { @@ -6401,10 +6659,10 @@ "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "dev": true, "requires": { - "inherits": "2.0.3", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "wbuf": "1.7.3" + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" } }, "htmlparser2": { @@ -6413,12 +6671,12 @@ "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", "dev": true, "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.4.2", - "domutils": "1.7.0", - "entities": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "domelementtype": "^1.3.0", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" } }, "http-assert": { @@ -6427,8 +6685,8 @@ "integrity": "sha1-oxpc+IyHPsu1eWkH1NbxMujAHko=", "dev": true, "requires": { - "deep-equal": "1.0.1", - "http-errors": "1.6.3" + "deep-equal": "~1.0.1", + "http-errors": "~1.6.1" } }, "http-cache-semantics": { @@ -6449,10 +6707,10 @@ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, "requires": { - "depd": "1.1.2", + "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", - "statuses": "1.5.0" + "statuses": ">= 1.4.0 < 2" } }, "http-signature": { @@ -6460,9 +6718,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.14.1" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "hullabaloo-config-manager": { @@ -6471,20 +6729,20 @@ "integrity": "sha512-ztKnkZV0TmxnumCDHHgLGNiDnotu4EHCp9YMkznWuo4uTtCyJ+cu+RNcxUeXYKTllpvLFWnbfWry09yzszgg+A==", "dev": true, "requires": { - "dot-prop": "4.2.0", - "es6-error": "4.1.1", - "graceful-fs": "4.1.11", - "indent-string": "3.2.0", - "json5": "0.5.1", - "lodash.clonedeep": "4.5.0", - "lodash.clonedeepwith": "4.5.0", - "lodash.isequal": "4.5.0", - "lodash.merge": "4.6.1", - "md5-hex": "2.0.0", - "package-hash": "2.0.0", - "pkg-dir": "2.0.0", - "resolve-from": "3.0.0", - "safe-buffer": "5.1.2" + "dot-prop": "^4.1.0", + "es6-error": "^4.0.2", + "graceful-fs": "^4.1.11", + "indent-string": "^3.1.0", + "json5": "^0.5.1", + "lodash.clonedeep": "^4.5.0", + "lodash.clonedeepwith": "^4.5.0", + "lodash.isequal": "^4.5.0", + "lodash.merge": "^4.6.0", + "md5-hex": "^2.0.0", + "package-hash": "^2.0.0", + "pkg-dir": "^2.0.0", + "resolve-from": "^3.0.0", + "safe-buffer": "^5.0.1" } }, "iconv-lite": { @@ -6493,7 +6751,7 @@ "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "dev": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ignore": { @@ -6520,8 +6778,8 @@ "integrity": "sha1-sReVcqrNwRxqkQCftDDbyrX2aKg=", "dev": true, "requires": { - "pkg-dir": "2.0.0", - "resolve-cwd": "2.0.0" + "pkg-dir": "^2.0.0", + "resolve-cwd": "^2.0.0" } }, "imurmurhash": { @@ -6548,8 +6806,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -6569,8 +6827,8 @@ "integrity": "sha512-STx5orGQU1gfrkoI/fMU7lX6CSP7LBGO10gXNgOZhwKhUqbtNjCkYSewJtNnLmWP1tAGN6oyEpG1HFPw5vpa5Q==", "dev": true, "requires": { - "moment": "2.22.1", - "sanitize-html": "1.18.2" + "moment": "^2.14.1", + "sanitize-html": "^1.13.0" } }, "inquirer": { @@ -6579,20 +6837,20 @@ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "dev": true, "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.10", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" } }, "intelli-espower-loader": { @@ -6601,7 +6859,7 @@ "integrity": "sha1-LHsDFGvB1GvyENCgOXxckatMorA=", "dev": true, "requires": { - "espower-loader": "1.2.2" + "espower-loader": "^1.0.0" } }, "into-stream": { @@ -6610,8 +6868,8 @@ "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", "dev": true, "requires": { - "from2": "2.3.0", - "p-is-promise": "1.1.0" + "from2": "^2.1.1", + "p-is-promise": "^1.1.0" } }, "invariant": { @@ -6620,7 +6878,7 @@ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -6641,9 +6899,9 @@ "integrity": "sha512-7iQ5/xFMIYaNt9g2oiNiWdhrOTdRUMFaWENUd0KghxwPUhrIH8DUY8FEyLNTTzf75jaII+jMexLdY/2HfV61RQ==", "dev": true, "requires": { - "boom": "7.2.0", - "cryptiles": "4.1.1", - "hoek": "5.0.3" + "boom": "7.x.x", + "cryptiles": "4.x.x", + "hoek": "5.x.x" } }, "irregular-plurals": { @@ -6669,7 +6927,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "binary-extensions": "1.11.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -6683,7 +6941,7 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-ci": { @@ -6692,7 +6950,7 @@ "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", "dev": true, "requires": { - "ci-info": "1.1.3" + "ci-info": "^1.0.0" } }, "is-dotfile": { @@ -6707,7 +6965,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-error": { @@ -6734,7 +6992,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -6761,7 +7019,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-installed-globally": { @@ -6770,8 +7028,8 @@ "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "dev": true, "requires": { - "global-dirs": "0.1.1", - "is-path-inside": "1.0.1" + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" } }, "is-npm": { @@ -6786,7 +7044,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-obj": { @@ -6807,7 +7065,7 @@ "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", "dev": true, "requires": { - "symbol-observable": "1.2.0" + "symbol-observable": "^1.1.0" } }, "is-path-cwd": { @@ -6822,7 +7080,7 @@ "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, "requires": { - "is-path-inside": "1.0.1" + "is-path-inside": "^1.0.0" } }, "is-path-inside": { @@ -6831,7 +7089,7 @@ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" } }, "is-plain-obj": { @@ -6915,7 +7173,7 @@ "integrity": "sha512-zfRhJn9rFSGhzU5tGZqepRSAj3+g6oTOHxMGGriWNJZzyLPUK8H7VHpqKntegnW8KLyGA9zwuNaCoopl40LTpg==", "dev": true, "requires": { - "punycode": "2.1.0" + "punycode": "2.x.x" }, "dependencies": { "punycode": { @@ -6952,8 +7210,8 @@ "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", "dev": true, "requires": { - "has-to-string-tag-x": "1.4.1", - "is-object": "1.0.1" + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" } }, "jest-docblock": { @@ -6968,9 +7226,9 @@ "integrity": "sha512-iF6jEYVfBIoYXztYymia1JfuoVbxBNuOcwdbsdoGin9/jjhBLhonKmfTQOvePss8r8v4tU4JOcNmYPHZzKEFag==", "dev": true, "requires": { - "hoek": "5.0.3", - "isemail": "3.1.2", - "topo": "3.0.0" + "hoek": "5.x.x", + "isemail": "3.x.x", + "topo": "3.x.x" } }, "js-green-licenses": { @@ -6979,14 +7237,14 @@ "integrity": "sha512-HM/SKwAl1R0y9kkBili6GqKc31ZnjzY7JHC2uO9bAHJNRmY5c/s+2cETyaqX0kBD8gX8QVhS4dJjRtY1nAwb4w==", "dev": true, "requires": { - "argparse": "1.0.10", - "axios": "0.18.0", - "npm-package-arg": "6.1.0", - "package-json": "4.0.1", - "pify": "3.0.0", - "spdx-correct": "3.0.0", - "spdx-satisfies": "4.0.0", - "strip-json-comments": "2.0.1" + "argparse": "^1.0.9", + "axios": "^0.18.0", + "npm-package-arg": "^6.0.0", + "package-json": "^4.0.1", + "pify": "^3.0.0", + "spdx-correct": "^3.0.0", + "spdx-satisfies": "^4.0.0", + "strip-json-comments": "^2.0.1" } }, "js-string-escape": { @@ -7007,8 +7265,8 @@ "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", "dev": true, "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "js2xmlparser": { @@ -7017,7 +7275,7 @@ "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", "dev": true, "requires": { - "xmlcreate": "1.0.2" + "xmlcreate": "^1.0.1" } }, "jsbn": { @@ -7033,17 +7291,17 @@ "dev": true, "requires": { "babylon": "7.0.0-beta.19", - "bluebird": "3.5.1", - "catharsis": "0.8.9", - "escape-string-regexp": "1.0.5", - "js2xmlparser": "3.0.0", - "klaw": "2.0.0", - "marked": "0.3.19", - "mkdirp": "0.5.1", - "requizzle": "0.2.1", - "strip-json-comments": "2.0.1", + "bluebird": "~3.5.0", + "catharsis": "~0.8.9", + "escape-string-regexp": "~1.0.5", + "js2xmlparser": "~3.0.0", + "klaw": "~2.0.0", + "marked": "~0.3.6", + "mkdirp": "~0.5.1", + "requizzle": "~0.2.1", + "strip-json-comments": "~2.0.1", "taffydb": "2.6.2", - "underscore": "1.8.3" + "underscore": "~1.8.3" }, "dependencies": { "babylon": { @@ -7105,7 +7363,7 @@ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } }, "jsprim": { @@ -7132,7 +7390,7 @@ "requires": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.10", - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "jws": { @@ -7140,8 +7398,8 @@ "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz", "integrity": "sha512-GsCSexFADNQUr8T5HPJvayTjvPIfoyJPtLQBwn5a4WZQchcrPMPMAWcC1AzJVRDKyD6ZPROPAxgv6rfHViO4uQ==", "requires": { - "jwa": "1.1.6", - "safe-buffer": "5.1.2" + "jwa": "^1.1.5", + "safe-buffer": "^5.0.1" } }, "keygrip": { @@ -7165,7 +7423,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "klaw": { @@ -7174,7 +7432,7 @@ "integrity": "sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.9" } }, "koa": { @@ -7183,30 +7441,30 @@ "integrity": "sha512-cchwbMeG2dv3E2xTAmheDAuvR53tPgJZN/Hf1h7bTzJLSPcFZp8/t5+bNKJ6GaQZoydhZQ+1GNruhKdj3lIrug==", "dev": true, "requires": { - "accepts": "1.3.5", - "content-disposition": "0.5.2", - "content-type": "1.0.4", - "cookies": "0.7.1", - "debug": "3.1.0", - "delegates": "1.0.0", - "depd": "1.1.2", - "destroy": "1.0.4", - "error-inject": "1.0.0", - "escape-html": "1.0.3", - "fresh": "0.5.2", - "http-assert": "1.3.0", - "http-errors": "1.6.3", - "is-generator-function": "1.0.7", - "koa-compose": "4.1.0", - "koa-convert": "1.2.0", - "koa-is-json": "1.0.0", - "mime-types": "2.1.18", - "on-finished": "2.3.0", + "accepts": "^1.2.2", + "content-disposition": "~0.5.0", + "content-type": "^1.0.0", + "cookies": "~0.7.0", + "debug": "*", + "delegates": "^1.0.0", + "depd": "^1.1.0", + "destroy": "^1.0.3", + "error-inject": "~1.0.0", + "escape-html": "~1.0.1", + "fresh": "^0.5.2", + "http-assert": "^1.1.0", + "http-errors": "^1.2.8", + "is-generator-function": "^1.0.3", + "koa-compose": "^4.0.0", + "koa-convert": "^1.2.0", + "koa-is-json": "^1.0.0", + "mime-types": "^2.0.7", + "on-finished": "^2.1.0", "only": "0.0.2", - "parseurl": "1.3.2", - "statuses": "1.5.0", - "type-is": "1.6.16", - "vary": "1.1.2" + "parseurl": "^1.3.0", + "statuses": "^1.2.0", + "type-is": "^1.5.5", + "vary": "^1.0.0" } }, "koa-compose": { @@ -7221,8 +7479,8 @@ "integrity": "sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA=", "dev": true, "requires": { - "co": "4.6.0", - "koa-compose": "3.2.1" + "co": "^4.6.0", + "koa-compose": "^3.0.0" }, "dependencies": { "koa-compose": { @@ -7231,7 +7489,7 @@ "integrity": "sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec=", "dev": true, "requires": { - "any-promise": "1.3.0" + "any-promise": "^1.1.0" } } } @@ -7248,7 +7506,7 @@ "integrity": "sha1-0bZNafhv8kry0EiDos7uFFIKVgA=", "dev": true, "requires": { - "through2": "2.0.3" + "through2": "^2.0.0" } }, "latest-version": { @@ -7257,7 +7515,7 @@ "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", "dev": true, "requires": { - "package-json": "4.0.1" + "package-json": "^4.0.0" } }, "lazy-cache": { @@ -7273,7 +7531,7 @@ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "levn": { @@ -7282,8 +7540,8 @@ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "load-json-file": { @@ -7292,10 +7550,10 @@ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" }, "dependencies": { "pify": { @@ -7312,14 +7570,15 @@ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { "version": "4.17.10", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", + "dev": true }, "lodash.assign": { "version": "4.2.0", @@ -7445,11 +7704,6 @@ "integrity": "sha1-PNRXSgC2e643OpS3SHcmQFB7eqw=", "dev": true }, - "log-driver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", - "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==" - }, "lolex": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.6.0.tgz", @@ -7468,7 +7722,7 @@ "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "loud-rejection": { @@ -7477,8 +7731,8 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, "lowercase-keys": { @@ -7492,8 +7746,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "make-dir": { @@ -7502,7 +7756,7 @@ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "map-obj": { @@ -7523,7 +7777,7 @@ "integrity": "sha512-aZGv6JBTHqfqAd09jmAlbKnAICTfIvb5Z8gXVxPB5WZtFfHMaAMdACL7tQflD2V+6/8KNcY8s6DYtWLgpJP5lA==", "dev": true, "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.4" } }, "math-random": { @@ -7538,7 +7792,7 @@ "integrity": "sha1-0FiOnxx0lUSS7NJKwKxs6ZfZLjM=", "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { @@ -7559,7 +7813,7 @@ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "meow": { @@ -7568,16 +7822,16 @@ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" }, "dependencies": { "find-up": { @@ -7586,8 +7840,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "load-json-file": { @@ -7596,11 +7850,11 @@ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" } }, "minimist": { @@ -7615,7 +7869,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-type": { @@ -7624,9 +7878,9 @@ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -7647,7 +7901,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "read-pkg": { @@ -7656,9 +7910,9 @@ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -7667,8 +7921,8 @@ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" } }, "strip-bom": { @@ -7677,7 +7931,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } } } @@ -7694,14 +7948,9 @@ "integrity": "sha1-65aDOLXe1c7tgs7AMH3sui2OqZQ=", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, - "methmeth": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/methmeth/-/methmeth-1.1.0.tgz", - "integrity": "sha1-6AomYY5S9cQiKGG7dIUQvRDikIk=" - }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -7714,19 +7963,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" } }, "mime": { @@ -7744,7 +7993,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", "requires": { - "mime-db": "1.33.0" + "mime-db": "~1.33.0" } }, "mimic-fn": { @@ -7765,8 +8014,8 @@ "integrity": "sha512-JvlvRLqGIlk+AYypWrbrDmhsM+6JVx/xBM5S3AMwTBz1trPCEoPN/swO2L4Wu653fL7oJdgk8DMQyG/Gq3JkZg==", "dev": true, "requires": { - "hoek": "5.0.3", - "mime-db": "1.33.0" + "hoek": "5.x.x", + "mime-db": "1.x.x" } }, "minimalistic-assert": { @@ -7781,7 +8030,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -7796,8 +8045,8 @@ "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", "dev": true, "requires": { - "arrify": "1.0.1", - "is-plain-obj": "1.1.0" + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0" } }, "mkdirp": { @@ -7828,11 +8077,6 @@ "supports-color": "5.4.0" } }, - "modelo": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/modelo/-/modelo-4.2.3.tgz", - "integrity": "sha512-9DITV2YEMcw7XojdfvGl3gDD8J9QjZTJ7ZOUuSAkP+F3T6rDbzMJuPktxptsdHYEvZcmXrCD3LMOhdSAEq6zKA==" - }, "module-not-found-error": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/module-not-found-error/-/module-not-found-error-1.0.1.tgz", @@ -7856,7 +8100,7 @@ "integrity": "sha1-sJ/IWG6qF/gdV1xK0C4Pej9rEQU=", "dev": true, "requires": { - "source-map": "0.1.43" + "source-map": "^0.1.34" }, "dependencies": { "source-map": { @@ -7865,7 +8109,7 @@ "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -7876,10 +8120,10 @@ "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", "dev": true, "requires": { - "array-differ": "1.0.0", - "array-union": "1.0.2", - "arrify": "1.0.1", - "minimatch": "3.0.4" + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "minimatch": "^3.0.0" } }, "mute-stream": { @@ -7895,9 +8139,9 @@ "dev": true, "optional": true, "requires": { - "mkdirp": "0.5.1", - "ncp": "2.0.0", - "rimraf": "2.4.5" + "mkdirp": "~0.5.1", + "ncp": "~2.0.0", + "rimraf": "~2.4.0" }, "dependencies": { "glob": { @@ -7907,11 +8151,11 @@ "dev": true, "optional": true, "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "rimraf": { @@ -7921,7 +8165,7 @@ "dev": true, "optional": true, "requires": { - "glob": "6.0.4" + "glob": "^6.0.1" } } } @@ -7957,7 +8201,7 @@ "integrity": "sha1-GfYZWRUZ8JZ2mlupqG5u7sgjw88=", "dev": true, "requires": { - "inherits": "2.0.3" + "inherits": "~2.0.1" } }, "next-tick": { @@ -7972,8 +8216,8 @@ "integrity": "sha512-kCVtUG9JyD//tsYrZY+/Y+2gUrANVSba8y23QkM5Znx0FOxlnl9Z4OVPBODmstKWTOvigfTO+Va1VPOu3eWSOQ==", "dev": true, "requires": { - "hoek": "5.0.3", - "vise": "3.0.0" + "hoek": "5.x.x", + "vise": "3.x.x" } }, "nise": { @@ -7982,11 +8226,11 @@ "integrity": "sha512-v1J/FLUB9PfGqZLGDBhQqODkbLotP0WtLo9R4EJY2PPu5f5Xg4o0rA8FDlmrjFSv9vBBKcfnOSpfYYuu5RTHqg==", "dev": true, "requires": { - "@sinonjs/formatio": "2.0.0", - "just-extend": "1.1.27", - "lolex": "2.6.0", - "path-to-regexp": "1.7.0", - "text-encoding": "0.6.4" + "@sinonjs/formatio": "^2.0.0", + "just-extend": "^1.1.27", + "lolex": "^2.3.2", + "path-to-regexp": "^1.7.0", + "text-encoding": "^0.6.4" } }, "nock": { @@ -7995,15 +8239,15 @@ "integrity": "sha512-loyWSNToPH416mENYcqN/ORNwJvfMs+n1+kk9HS3zO/Eb/ci3TZqoNIWp5oYW9VIFh18jXHxnzYSsrXvA63RYA==", "dev": true, "requires": { - "chai": "4.1.2", - "debug": "3.1.0", - "deep-equal": "1.0.1", - "json-stringify-safe": "5.0.1", - "lodash": "4.17.10", - "mkdirp": "0.5.1", - "propagate": "1.0.0", - "qs": "6.5.2", - "semver": "5.5.0" + "chai": "^4.1.2", + "debug": "^3.1.0", + "deep-equal": "^1.0.0", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.5", + "mkdirp": "^0.5.0", + "propagate": "^1.0.0", + "qs": "^6.5.1", + "semver": "^5.5.0" } }, "node-forge": { @@ -8017,10 +8261,10 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { @@ -8029,7 +8273,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "normalize-url": { @@ -8038,9 +8282,9 @@ "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", "dev": true, "requires": { - "prepend-http": "2.0.0", - "query-string": "5.1.1", - "sort-keys": "2.0.0" + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" }, "dependencies": { "prepend-http": { @@ -8057,10 +8301,10 @@ "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", "dev": true, "requires": { - "hosted-git-info": "2.6.0", - "osenv": "0.1.5", - "semver": "5.5.0", - "validate-npm-package-name": "3.0.0" + "hosted-git-info": "^2.6.0", + "osenv": "^0.1.5", + "semver": "^5.5.0", + "validate-npm-package-name": "^3.0.0" } }, "npm-run-path": { @@ -8069,7 +8313,7 @@ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -8084,406 +8328,451 @@ "integrity": "sha512-PUFq1PSsx5OinSk5g5aaZygcDdI3QQT5XUlbR9QRMihtMS6w0Gm8xj4BxmKeeAlpQXC5M2DIhH16Y+KejceivQ==", "dev": true, "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "1.0.1", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "default-require-extensions": "1.0.0", - "find-cache-dir": "0.1.1", - "find-up": "2.1.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "1.10.1", - "istanbul-lib-report": "1.1.3", - "istanbul-lib-source-maps": "1.2.3", - "istanbul-reports": "1.4.0", - "md5-hex": "1.3.0", - "merge-source-map": "1.1.0", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "resolve-from": "2.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "4.2.1", + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.5.1", + "debug-log": "^1.0.1", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^2.1.0", + "foreground-child": "^1.5.3", + "glob": "^7.0.6", + "istanbul-lib-coverage": "^1.1.2", + "istanbul-lib-hook": "^1.1.0", + "istanbul-lib-instrument": "^1.10.0", + "istanbul-lib-report": "^1.1.3", + "istanbul-lib-source-maps": "^1.2.3", + "istanbul-reports": "^1.4.0", + "md5-hex": "^1.2.0", + "merge-source-map": "^1.1.0", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.1", + "spawn-wrap": "^1.4.2", + "test-exclude": "^4.2.0", "yargs": "11.1.0", - "yargs-parser": "8.1.0" + "yargs-parser": "^8.0.0" }, "dependencies": { "align-text": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" } }, "amdefine": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", "dev": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "ansi-styles": { "version": "2.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, "append-transform": { "version": "0.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", "dev": true, "requires": { - "default-require-extensions": "1.0.0" + "default-require-extensions": "^1.0.0" } }, "archy": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", "dev": true }, "arr-diff": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, "arr-flatten": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, "arr-union": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, "array-unique": { "version": "0.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, "arrify": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, "assign-symbols": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true }, "async": { "version": "1.5.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", "dev": true }, "atob": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", + "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", "dev": true }, "babel-code-frame": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" } }, "babel-generator": { "version": "6.26.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "dev": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" } }, "babel-messages": { "version": "6.23.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-runtime": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.5.6", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.10" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, "babel-types": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { "version": "6.18.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", "dev": true }, "balanced-match": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "base": { "version": "0.11.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } }, "brace-expansion": { "version": "1.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "braces": { "version": "2.3.2", - "bundled": true, - "dev": true, - "requires": { - "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.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "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.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "builtin-modules": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, "cache-base": { "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "caching-transform": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", + "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", "dev": true, "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" } }, "camelcase": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", "dev": true, "optional": true }, "center-align": { "version": "0.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "dev": true, "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chalk": { "version": "1.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "class-utils": { "version": "0.3.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "cliui": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "dev": true, "optional": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" }, "dependencies": { "wordwrap": { "version": "0.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", "dev": true, "optional": true } @@ -8491,60 +8780,70 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, "collection-visit": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "commondir": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, "component-emitter": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", "dev": true }, "concat-map": { "version": "0.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "convert-source-map": { "version": "1.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", "dev": true }, "copy-descriptor": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true }, "core-js": { "version": "2.5.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.6.tgz", + "integrity": "sha512-lQUVfQi0aLix2xpyjrrJEvfuYCqPc/HwmTKsC/VNf8q0zsjX7SQZtp4+oRONN5Tsur9GDETPjj+Ub2iDiGZfSQ==", "dev": true }, "cross-spawn": { "version": "4.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", "dev": true, "requires": { - "lru-cache": "4.1.3", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, "debug": { "version": "2.6.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" @@ -8552,670 +8851,756 @@ }, "debug-log": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", + "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", "dev": true }, "decamelize": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "decode-uri-component": { "version": "0.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, "default-require-extensions": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", "dev": true, "requires": { - "strip-bom": "2.0.0" + "strip-bom": "^2.0.0" } }, "define-property": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } }, "detect-indent": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "error-ex": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "escape-string-regexp": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "esutils": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, "execa": { "version": "0.7.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" }, "dependencies": { "cross-spawn": { "version": "5.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } } } }, "expand-brackets": { "version": "2.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "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" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "extend-shallow": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } }, "extglob": { "version": "2.0.4", - "bundled": true, - "dev": true, - "requires": { - "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" + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "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.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } }, "fill-range": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "find-cache-dir": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", "dev": true, "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" } }, "find-up": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "for-in": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true }, "foreground-child": { "version": "1.5.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", "dev": true, "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" + "cross-spawn": "^4", + "signal-exit": "^3.0.0" } }, "fragment-cache": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fs.realpath": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "get-caller-file": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", "dev": true }, "get-stream": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true }, "get-value": { "version": "2.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true }, "glob": { "version": "7.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "globals": { "version": "9.18.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", "dev": true }, "graceful-fs": { "version": "4.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, "handlebars": { "version": "4.0.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" }, "dependencies": { "source-map": { "version": "0.4.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } }, "has-ansi": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", "dev": true }, "has-value": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "has-values": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "kind-of": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "hosted-git-info": { "version": "2.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", + "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", "dev": true }, "imurmurhash": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { "version": "2.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "invariant": { "version": "2.2.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", "dev": true }, "is-accessor-descriptor": { "version": "0.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, "is-buffer": { "version": "1.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, "is-builtin-module": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-data-descriptor": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-descriptor": { "version": "0.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { "version": "5.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true } } }, "is-extendable": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true }, "is-finite": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "is-number": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-odd": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", "dev": true, "requires": { - "is-number": "4.0.0" + "is-number": "^4.0.0" }, "dependencies": { "is-number": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", "dev": true } } }, "is-plain-object": { "version": "2.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "is-stream": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "is-utf8": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, "is-windows": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true }, "isarray": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, "istanbul-lib-coverage": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", + "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==", "dev": true }, "istanbul-lib-hook": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", + "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", "dev": true, "requires": { - "append-transform": "0.4.0" + "append-transform": "^0.4.0" } }, "istanbul-lib-instrument": { "version": "1.10.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", + "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", "dev": true, "requires": { - "babel-generator": "6.26.1", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.2.0", - "semver": "5.5.0" + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.0", + "semver": "^5.3.0" } }, "istanbul-lib-report": { "version": "1.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz", + "integrity": "sha512-D4jVbMDtT2dPmloPJS/rmeP626N5Pr3Rp+SovrPn1+zPChGHcggd/0sL29jnbm4oK9W0wHjCRsdch9oLd7cm6g==", "dev": true, "requires": { - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" }, "dependencies": { "supports-color": { "version": "3.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } }, "istanbul-lib-source-maps": { "version": "1.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz", + "integrity": "sha512-fDa0hwU/5sDXwAklXgAoCJCOsFsBplVQ6WBldz5UwaqOzmDhUK4nfuR7/G//G2lERlblUNJB8P6e8cXq3a7MlA==", "dev": true, "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" }, "dependencies": { "debug": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { "ms": "2.0.0" @@ -9225,215 +9610,243 @@ }, "istanbul-reports": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.4.0.tgz", + "integrity": "sha512-OPzVo1fPZ2H+owr8q/LYKLD+vquv9Pj4F+dj808MdHbuQLD7S4ACRjcX+0Tne5Vxt2lxXvdZaL7v+FOOAV281w==", "dev": true, "requires": { - "handlebars": "4.0.11" + "handlebars": "^4.0.3" } }, "js-tokens": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", "dev": true }, "jsesc": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", "dev": true }, "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lazy-cache": { "version": "1.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", "dev": true, "optional": true }, "lcid": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "load-json-file": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" } }, "locate-path": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" }, "dependencies": { "path-exists": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true } } }, "lodash": { "version": "4.17.10", - "bundled": true, + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", "dev": true }, "longest": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", "dev": true }, "loose-envify": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "lru-cache": { "version": "4.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "map-cache": { "version": "0.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, "map-visit": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "md5-hex": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", + "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", + "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=", "dev": true }, "mem": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "merge-source-map": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", "dev": true, "requires": { - "source-map": "0.6.1" + "source-map": "^0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "micromatch": { "version": "3.1.10", - "bundled": true, - "dev": true, - "requires": { - "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.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } }, "mimic-fn": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, "mixin-deep": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "dev": true, "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { "minimist": "0.0.8" @@ -9441,1008 +9854,1133 @@ }, "ms": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "nanomatch": { "version": "1.2.9", - "bundled": true, - "dev": true, - "requires": { - "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-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", + "dev": true, + "requires": { + "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-odd": "^2.0.0", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, "array-unique": { "version": "0.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } }, "normalize-package-data": { "version": "2.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "npm-run-path": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, "object-copy": { "version": "0.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } }, "object-visit": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "object.pick": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "optimist": { "version": "0.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, "os-locale": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" } }, "p-finally": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, "p-limit": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", + "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", "dev": true, "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "1.2.0" + "p-limit": "^1.1.0" } }, "p-try": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, "parse-json": { "version": "2.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "pascalcase": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true }, "path-exists": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "path-key": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, "path-parse": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", "dev": true }, "path-type": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { "version": "2.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, "pinkie": { "version": "2.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", "dev": true }, "pinkie-promise": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "dev": true, "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" }, "dependencies": { "find-up": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } }, "posix-character-classes": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, "pseudomap": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, "read-pkg": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" }, "dependencies": { "find-up": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } }, "regenerator-runtime": { "version": "0.11.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true }, "regex-not": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "repeat-element": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", "dev": true }, "repeat-string": { "version": "1.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, "repeating": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "require-directory": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, "require-main-filename": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", "dev": true }, "resolve-from": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", "dev": true }, "resolve-url": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, "ret": { "version": "0.1.15", - "bundled": true, + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, "right-align": { "version": "0.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "dev": true, "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { "version": "2.6.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-regex": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "semver": { "version": "5.5.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", "dev": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, "set-value": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "shebang-command": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, "slide": { "version": "1.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", "dev": true }, "snapdragon": { "version": "0.8.2", - "bundled": true, - "dev": true, - "requires": { - "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.1", - "use": "3.1.0" + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "snapdragon-node": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } }, "snapdragon-util": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "source-map": { "version": "0.5.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, "source-map-resolve": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", "dev": true, "requires": { - "atob": "2.1.1", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.0.0", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-url": { "version": "0.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, "spawn-wrap": { "version": "1.4.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", + "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", "dev": true, "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.0" + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" } }, "spdx-correct": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "dev": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", "dev": true }, "spdx-expression-parse": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", "dev": true }, "split-string": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "static-extend": { "version": "0.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } }, "string-width": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" }, "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "strip-ansi": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-eof": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, "supports-color": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, "test-exclude": { "version": "4.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", + "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", "dev": true, "requires": { - "arrify": "1.0.1", - "micromatch": "3.1.10", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" + "arrify": "^1.0.1", + "micromatch": "^3.1.8", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" }, "dependencies": { "arr-diff": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, "array-unique": { "version": "0.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, "braces": { "version": "2.3.2", - "bundled": true, - "dev": true, - "requires": { - "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.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "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.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "expand-brackets": { "version": "2.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "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" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { "version": "0.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "is-data-descriptor": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "is-descriptor": { "version": "0.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { "version": "5.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true } } }, "extglob": { "version": "2.0.4", - "bundled": true, - "dev": true, - "requires": { - "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" + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "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.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "fill-range": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-number": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true }, "micromatch": { "version": "3.1.10", - "bundled": true, - "dev": true, - "requires": { - "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.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } }, "to-fast-properties": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", "dev": true }, "to-object-path": { "version": "0.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "dependencies": { "is-number": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } }, "trim-right": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "dev": true }, "uglify-js": { "version": "2.8.29", - "bundled": true, + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "dev": true, "optional": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "yargs": { "version": "3.10.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "dev": true, "optional": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" } } @@ -10450,64 +10988,71 @@ }, "uglify-to-browserify": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", "dev": true, "optional": true }, "union-value": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "dev": true, "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { "version": "0.4.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" } } } }, "unset-value": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { "version": "0.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { "isobject": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "requires": { "isarray": "1.0.0" @@ -10517,191 +11062,216 @@ }, "has-values": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true }, "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } }, "urix": { "version": "0.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, "use": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } }, "validate-npm-package-license": { "version": "3.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", + "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "dev": true, "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "which": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, "window-size": { "version": "0.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", "dev": true }, "wrap-ansi": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } } } }, "wrappy": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "write-file-atomic": { "version": "1.3.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", + "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, "y18n": { "version": "3.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", "dev": true }, "yallist": { "version": "2.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, "yargs": { "version": "11.1.0", - "bundled": true, - "dev": true, - "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "9.0.2" + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", + "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" }, "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "camelcase": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true }, "cliui": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } }, "strip-ansi": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "yargs-parser": { "version": "9.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", + "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } }, "yargs-parser": { "version": "8.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", + "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true } } @@ -10731,8 +11301,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "observable-to-promise": { @@ -10741,8 +11311,8 @@ "integrity": "sha1-yCjw8NxH6fhq+KSXfF1VB2znqR8=", "dev": true, "requires": { - "is-observable": "0.2.0", - "symbol-observable": "1.2.0" + "is-observable": "^0.2.0", + "symbol-observable": "^1.0.4" }, "dependencies": { "is-observable": { @@ -10751,7 +11321,7 @@ "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=", "dev": true, "requires": { - "symbol-observable": "0.2.4" + "symbol-observable": "^0.2.2" }, "dependencies": { "symbol-observable": { @@ -10784,7 +11354,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -10793,7 +11363,7 @@ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "only": { @@ -10808,8 +11378,8 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "option-chain": { @@ -10824,12 +11394,12 @@ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" }, "dependencies": { "wordwrap": { @@ -10852,9 +11422,9 @@ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" } }, "os-tmpdir": { @@ -10869,8 +11439,8 @@ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "p-cancelable": { @@ -10897,7 +11467,7 @@ "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", "dev": true, "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -10906,7 +11476,7 @@ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "1.2.0" + "p-limit": "^1.1.0" } }, "p-timeout": { @@ -10915,7 +11485,7 @@ "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", "dev": true, "requires": { - "p-finally": "1.0.0" + "p-finally": "^1.0.0" } }, "p-try": { @@ -10930,10 +11500,10 @@ "integrity": "sha1-eK4ybIngWk2BO2hgGXevBcANKg0=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "lodash.flattendeep": "4.4.0", - "md5-hex": "2.0.0", - "release-zalgo": "1.0.0" + "graceful-fs": "^4.1.11", + "lodash.flattendeep": "^4.4.0", + "md5-hex": "^2.0.0", + "release-zalgo": "^1.0.0" } }, "package-json": { @@ -10942,10 +11512,10 @@ "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "dev": true, "requires": { - "got": "6.7.1", - "registry-auth-token": "3.3.2", - "registry-url": "3.1.0", - "semver": "5.5.0" + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" }, "dependencies": { "got": { @@ -10954,17 +11524,17 @@ "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "requires": { - "create-error-class": "3.0.2", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "is-redirect": "1.0.0", - "is-retry-allowed": "1.1.0", - "is-stream": "1.1.0", - "lowercase-keys": "1.0.1", - "safe-buffer": "5.1.2", - "timed-out": "4.0.1", - "unzip-response": "2.0.1", - "url-parse-lax": "1.0.0" + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" } } } @@ -10975,10 +11545,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" } }, "parse-json": { @@ -10987,7 +11557,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "parse-ms": { @@ -11055,7 +11625,7 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" }, "dependencies": { "pify": { @@ -11083,11 +11653,11 @@ "integrity": "sha512-HuPxmGxHsEFPWhdkwBs2gIrHhFqktIxMtudISTFN95RQ85ZZAOl8Ki6u3nnN/X8OUaGlIGldk/l8p2IR4/i76w==", "dev": true, "requires": { - "b64": "4.0.0", - "boom": "7.2.0", - "content": "4.0.5", - "hoek": "5.0.3", - "nigel": "3.0.1" + "b64": "4.x.x", + "boom": "7.x.x", + "content": "4.x.x", + "hoek": "5.x.x", + "nigel": "3.x.x" } }, "pidusage": { @@ -11113,7 +11683,7 @@ "integrity": "sha1-0dpn9UglY7t89X8oauKCLs+/NnA=", "dev": true, "requires": { - "pinkie": "1.0.0" + "pinkie": "^1.0.0" } }, "pkg-conf": { @@ -11122,8 +11692,8 @@ "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", "dev": true, "requires": { - "find-up": "2.1.0", - "load-json-file": "4.0.0" + "find-up": "^2.0.0", + "load-json-file": "^4.0.0" }, "dependencies": { "load-json-file": { @@ -11132,10 +11702,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "parse-json": { @@ -11144,8 +11714,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.1", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } } } @@ -11156,7 +11726,7 @@ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "2.1.0" + "find-up": "^2.1.0" } }, "plur": { @@ -11165,7 +11735,7 @@ "integrity": "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo=", "dev": true, "requires": { - "irregular-plurals": "1.4.0" + "irregular-plurals": "^1.0.0" } }, "pluralize": { @@ -11180,8 +11750,8 @@ "integrity": "sha512-18VrjJAduIdPv7d9zWsfmKxTj3cQTYC5Pv5gtKxcWujYBpGbV+mhNSPYhlHW5xeWoazYyKfB9FEsPT12r5rY1A==", "dev": true, "requires": { - "hoek": "5.0.3", - "joi": "13.3.0" + "hoek": "5.x.x", + "joi": "13.x.x" } }, "postcss": { @@ -11190,9 +11760,9 @@ "integrity": "sha512-Toc9lLoUASwGqxBSJGTVcOQiDqjK+Z2XlWBg+IgYwQMY9vA2f7iMpXVc1GpPcfTSyM5lkxNo0oDwDRO+wm7XHA==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" }, "dependencies": { "source-map": { @@ -11209,11 +11779,11 @@ "integrity": "sha512-WaWSw+Ts283o6dzxW1BxIxoaHok7aSSGx4SaR6dW62Pk31ynv9DERDieuZpPYv5XaJ+H+zdcOaJQ+PvlasAOVw==", "dev": true, "requires": { - "define-properties": "1.1.2", - "empower": "1.2.3", - "power-assert-formatter": "1.4.1", - "universal-deep-strict-equal": "1.2.2", - "xtend": "4.0.1" + "define-properties": "^1.1.2", + "empower": "^1.2.3", + "power-assert-formatter": "^1.3.1", + "universal-deep-strict-equal": "^1.2.1", + "xtend": "^4.0.0" } }, "power-assert-context-formatter": { @@ -11222,8 +11792,8 @@ "integrity": "sha1-7bo1LT7YpgMRTWZyZazOYNaJzN8=", "dev": true, "requires": { - "core-js": "2.5.6", - "power-assert-context-traversal": "1.1.1" + "core-js": "^2.0.0", + "power-assert-context-traversal": "^1.1.1" } }, "power-assert-context-reducer-ast": { @@ -11232,11 +11802,11 @@ "integrity": "sha1-SEqZ4m9Jc/+IMuXFzHVnAuYJQXQ=", "dev": true, "requires": { - "acorn": "4.0.13", - "acorn-es7-plugin": "1.1.7", - "core-js": "2.5.6", - "espurify": "1.8.0", - "estraverse": "4.2.0" + "acorn": "^4.0.0", + "acorn-es7-plugin": "^1.0.12", + "core-js": "^2.0.0", + "espurify": "^1.6.0", + "estraverse": "^4.2.0" }, "dependencies": { "acorn": { @@ -11253,8 +11823,8 @@ "integrity": "sha1-iMq8oNE7Y1nwfT0+ivppkmRXftk=", "dev": true, "requires": { - "core-js": "2.5.6", - "estraverse": "4.2.0" + "core-js": "^2.0.0", + "estraverse": "^4.1.0" } }, "power-assert-formatter": { @@ -11263,13 +11833,13 @@ "integrity": "sha1-XcEl7VCj37HdomwZNH879Y7CiEo=", "dev": true, "requires": { - "core-js": "2.5.6", - "power-assert-context-formatter": "1.1.1", - "power-assert-context-reducer-ast": "1.1.2", - "power-assert-renderer-assertion": "1.1.1", - "power-assert-renderer-comparison": "1.1.1", - "power-assert-renderer-diagram": "1.1.2", - "power-assert-renderer-file": "1.1.1" + "core-js": "^2.0.0", + "power-assert-context-formatter": "^1.0.7", + "power-assert-context-reducer-ast": "^1.0.7", + "power-assert-renderer-assertion": "^1.0.7", + "power-assert-renderer-comparison": "^1.0.7", + "power-assert-renderer-diagram": "^1.0.7", + "power-assert-renderer-file": "^1.0.7" } }, "power-assert-renderer-assertion": { @@ -11278,8 +11848,8 @@ "integrity": "sha1-y/wOd+AIao+Wrz8djme57n4ozpg=", "dev": true, "requires": { - "power-assert-renderer-base": "1.1.1", - "power-assert-util-string-width": "1.1.1" + "power-assert-renderer-base": "^1.1.1", + "power-assert-util-string-width": "^1.1.1" } }, "power-assert-renderer-base": { @@ -11294,11 +11864,11 @@ "integrity": "sha1-10Odl9hRVr5OMKAPL7WnJRTOPAg=", "dev": true, "requires": { - "core-js": "2.5.6", - "diff-match-patch": "1.0.1", - "power-assert-renderer-base": "1.1.1", - "stringifier": "1.3.0", - "type-name": "2.0.2" + "core-js": "^2.0.0", + "diff-match-patch": "^1.0.0", + "power-assert-renderer-base": "^1.1.1", + "stringifier": "^1.3.0", + "type-name": "^2.0.1" } }, "power-assert-renderer-diagram": { @@ -11307,10 +11877,10 @@ "integrity": "sha1-ZV+PcRk1qbbVQbhjJ2VHF8Y3qYY=", "dev": true, "requires": { - "core-js": "2.5.6", - "power-assert-renderer-base": "1.1.1", - "power-assert-util-string-width": "1.1.1", - "stringifier": "1.3.0" + "core-js": "^2.0.0", + "power-assert-renderer-base": "^1.1.1", + "power-assert-util-string-width": "^1.1.1", + "stringifier": "^1.3.0" } }, "power-assert-renderer-file": { @@ -11319,7 +11889,7 @@ "integrity": "sha1-o34rvReMys0E5427eckv40kzxec=", "dev": true, "requires": { - "power-assert-renderer-base": "1.1.1" + "power-assert-renderer-base": "^1.1.1" } }, "power-assert-util-string-width": { @@ -11328,7 +11898,7 @@ "integrity": "sha1-vmWet5N/3S5smncmjar2S9W3xZI=", "dev": true, "requires": { - "eastasianwidth": "0.1.1" + "eastasianwidth": "^0.1.1" } }, "prelude-ls": { @@ -11361,8 +11931,8 @@ "integrity": "sha1-6crJx2v27lL+lC3ZxsQhMVOxKIE=", "dev": true, "requires": { - "parse-ms": "1.0.1", - "plur": "2.1.2" + "parse-ms": "^1.0.0", + "plur": "^2.1.2" }, "dependencies": { "parse-ms": { @@ -11402,7 +11972,7 @@ "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", "dev": true, "requires": { - "forwarded": "0.1.2", + "forwarded": "~0.1.2", "ipaddr.js": "1.6.0" } }, @@ -11412,9 +11982,9 @@ "integrity": "sha512-fQr3VQrbdzHrdaDn3XuisVoJlJNDJizHAvUXw9IuXRR8BpV2x0N7LsCxrpJkeKfPbNjiNU/V5vc008cI0TmzzQ==", "dev": true, "requires": { - "fill-keys": "1.0.2", - "module-not-found-error": "1.0.1", - "resolve": "1.5.0" + "fill-keys": "^1.0.2", + "module-not-found-error": "^1.0.0", + "resolve": "~1.5.0" }, "dependencies": { "resolve": { @@ -11423,7 +11993,7 @@ "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } } } @@ -11449,9 +12019,9 @@ "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", "dev": true, "requires": { - "decode-uri-component": "0.2.0", - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" } }, "quick-lru": { @@ -11466,9 +12036,9 @@ "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", "dev": true, "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.1" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { "is-number": { @@ -11509,10 +12079,10 @@ "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", "dev": true, "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -11529,9 +12099,9 @@ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" } }, "read-pkg-up": { @@ -11540,8 +12110,8 @@ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" } }, "readable-stream": { @@ -11549,13 +12119,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "readdirp": { @@ -11564,10 +12134,10 @@ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.6", - "set-immediate-shim": "1.0.1" + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" } }, "redent": { @@ -11576,8 +12146,8 @@ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" }, "dependencies": { "indent-string": { @@ -11586,7 +12156,7 @@ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } } } @@ -11609,7 +12179,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regexpp": { @@ -11624,9 +12194,9 @@ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "dev": true, "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "registry-auth-token": { @@ -11635,8 +12205,8 @@ "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", "dev": true, "requires": { - "rc": "1.2.7", - "safe-buffer": "5.1.2" + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" } }, "registry-url": { @@ -11645,7 +12215,7 @@ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "dev": true, "requires": { - "rc": "1.2.7" + "rc": "^1.0.1" } }, "regjsgen": { @@ -11660,7 +12230,7 @@ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" } }, "release-zalgo": { @@ -11669,7 +12239,7 @@ "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", "dev": true, "requires": { - "es6-error": "4.1.1" + "es6-error": "^4.0.1" } }, "remove-trailing-separator": { @@ -11696,7 +12266,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "request": { @@ -11704,26 +12274,26 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.7.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.0.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.18", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.6.0", - "uuid": "3.2.1" + "aws-sign2": "~0.7.0", + "aws4": "^1.6.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.1", + "forever-agent": "~0.6.1", + "form-data": "~2.3.1", + "har-validator": "~5.0.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.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" } }, "require-directory": { @@ -11750,8 +12320,8 @@ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "dev": true, "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" }, "dependencies": { "resolve-from": { @@ -11768,7 +12338,7 @@ "integrity": "sha1-aUPDUwxNmn5G8c3dUcFY/GcM294=", "dev": true, "requires": { - "underscore": "1.6.0" + "underscore": "~1.6.0" }, "dependencies": { "underscore": { @@ -11791,7 +12361,7 @@ "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", "dev": true, "requires": { - "resolve-from": "3.0.0" + "resolve-from": "^3.0.0" } }, "resolve-from": { @@ -11806,7 +12376,7 @@ "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", "dev": true, "requires": { - "lowercase-keys": "1.0.1" + "lowercase-keys": "^1.0.0" } }, "restify": { @@ -11815,28 +12385,28 @@ "integrity": "sha512-UXYtu437a5TSim0PgjCiccdUfQS/00VC9gDxqR2/GKaW19OtY3DYDg3HByCAnyO5GiL2y0pBI572wGcxZGP26A==", "dev": true, "requires": { - "assert-plus": "1.0.0", - "bunyan": "1.8.12", - "csv": "1.2.1", - "dtrace-provider": "0.8.6", - "escape-regexp-component": "1.0.2", - "ewma": "2.0.1", - "find-my-way": "1.13.0", - "formidable": "1.2.1", - "http-signature": "1.2.0", - "lodash": "4.17.10", - "lru-cache": "4.1.3", - "mime": "1.6.0", - "negotiator": "0.6.1", - "once": "1.4.0", - "pidusage": "1.2.0", - "qs": "6.5.2", - "restify-errors": "5.0.0", - "semver": "5.5.0", - "spdy": "3.4.7", - "uuid": "3.2.1", - "vasync": "1.6.4", - "verror": "1.10.0" + "assert-plus": "^1.0.0", + "bunyan": "^1.8.12", + "csv": "^1.1.1", + "dtrace-provider": "^0.8.1", + "escape-regexp-component": "^1.0.2", + "ewma": "^2.0.1", + "find-my-way": "^1.12.0", + "formidable": "^1.2.1", + "http-signature": "^1.2.0", + "lodash": "^4.17.10", + "lru-cache": "^4.1.3", + "mime": "^1.5.0", + "negotiator": "^0.6.1", + "once": "^1.4.0", + "pidusage": "^1.2.0", + "qs": "^6.5.2", + "restify-errors": "^5.0.0", + "semver": "^5.4.1", + "spdy": "^3.4.7", + "uuid": "^3.1.0", + "vasync": "^1.6.4", + "verror": "^1.10.0" }, "dependencies": { "mime": { @@ -11853,10 +12423,10 @@ "integrity": "sha512-+vby9Kxf7qlzvbZSTIEGkIixkeHG+pVCl34dk6eKnL+ua4pCezpdLT/1/eabzPZb65ADrgoc04jeWrrF1E1pvQ==", "dev": true, "requires": { - "assert-plus": "1.0.0", - "lodash": "4.17.10", - "safe-json-stringify": "1.1.0", - "verror": "1.10.0" + "assert-plus": "^1.0.0", + "lodash": "^4.2.1", + "safe-json-stringify": "^1.0.3", + "verror": "^1.8.1" } }, "restore-cursor": { @@ -11865,8 +12435,8 @@ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "ret": { @@ -11885,8 +12455,8 @@ "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-3.3.1.tgz", "integrity": "sha512-PjAmtWIxjNj4Co/6FRtBl8afRP3CxrrIAnUzb1dzydfROd+6xt7xAebFeskgQgkfFf8NmzrXIoaB3HxmswXyxw==", "requires": { - "request": "2.87.0", - "through2": "2.0.3" + "request": "^2.81.0", + "through2": "^2.0.0" } }, "right-align": { @@ -11896,7 +12466,7 @@ "dev": true, "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { @@ -11905,7 +12475,7 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "run-async": { @@ -11914,7 +12484,7 @@ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "rx-lite": { @@ -11929,7 +12499,7 @@ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "dev": true, "requires": { - "rx-lite": "4.0.8" + "rx-lite": "*" } }, "rxjs": { @@ -11967,7 +12537,7 @@ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "safer-buffer": { @@ -11988,16 +12558,16 @@ "integrity": "sha512-52ThA+Z7h6BnvpSVbURwChl10XZrps5q7ytjTwWcIe9bmJwnVP6cpEVK2NvDOUhGupoqAvNbUz3cpnJDp4+/pg==", "dev": true, "requires": { - "chalk": "2.4.1", - "htmlparser2": "3.9.2", - "lodash.clonedeep": "4.5.0", - "lodash.escaperegexp": "4.1.2", - "lodash.isplainobject": "4.0.6", - "lodash.isstring": "4.0.1", - "lodash.mergewith": "4.6.1", - "postcss": "6.0.22", - "srcset": "1.0.0", - "xtend": "4.0.1" + "chalk": "^2.3.0", + "htmlparser2": "^3.9.0", + "lodash.clonedeep": "^4.5.0", + "lodash.escaperegexp": "^4.1.2", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.mergewith": "^4.6.0", + "postcss": "^6.0.14", + "srcset": "^1.0.0", + "xtend": "^4.0.0" } }, "select-hose": { @@ -12018,7 +12588,7 @@ "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "dev": true, "requires": { - "semver": "5.5.0" + "semver": "^5.0.3" } }, "send": { @@ -12028,18 +12598,18 @@ "dev": true, "requires": { "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.6.3", + "http-errors": "~1.6.2", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.4.0" + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" }, "dependencies": { "debug": { @@ -12077,9 +12647,9 @@ "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "dev": true, "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", "send": "0.16.2" } }, @@ -12107,7 +12677,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -12122,8 +12692,8 @@ "integrity": "sha1-x+dFXRHWD2ts08Q+FaO0McF+VWY=", "dev": true, "requires": { - "hoek": "5.0.3", - "joi": "13.3.0" + "hoek": "5.x.x", + "joi": "13.x.x" } }, "signal-exit": { @@ -12138,13 +12708,13 @@ "integrity": "sha512-pmf05hFgEZUS52AGJcsVjOjqAyJW2yo14cOwVYvzCyw7+inv06YXkLyW75WG6X6p951lzkoKh51L2sNbR9CDvw==", "dev": true, "requires": { - "@sinonjs/formatio": "2.0.0", - "diff": "3.5.0", - "lodash.get": "4.4.2", - "lolex": "2.6.0", - "nise": "1.3.3", - "supports-color": "5.4.0", - "type-detect": "4.0.8" + "@sinonjs/formatio": "^2.0.0", + "diff": "^3.1.0", + "lodash.get": "^4.4.2", + "lolex": "^2.2.0", + "nise": "^1.2.0", + "supports-color": "^5.1.0", + "type-detect": "^4.0.5" } }, "slash": { @@ -12159,7 +12729,7 @@ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0" + "is-fullwidth-code-point": "^2.0.0" } }, "slide": { @@ -12174,7 +12744,7 @@ "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", "dev": true, "requires": { - "is-plain-obj": "1.1.0" + "is-plain-obj": "^1.0.0" } }, "source-map": { @@ -12189,8 +12759,8 @@ "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", "dev": true, "requires": { - "buffer-from": "1.0.0", - "source-map": "0.6.1" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" }, "dependencies": { "source-map": { @@ -12207,9 +12777,9 @@ "integrity": "sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==", "dev": true, "requires": { - "array-find-index": "1.0.2", - "spdx-expression-parse": "3.0.0", - "spdx-ranges": "2.0.0" + "array-find-index": "^1.0.2", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" } }, "spdx-correct": { @@ -12218,8 +12788,8 @@ "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "dev": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -12234,8 +12804,8 @@ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -12256,9 +12826,9 @@ "integrity": "sha512-OcARj6U1OuVv98SVrRqgrR30sVocONtoPpnX8Xz4vXNrFVedqtbgkA+0KmQoXIQ2xjfltPPRVIMeNzKEFLWWKQ==", "dev": true, "requires": { - "spdx-compare": "1.0.0", - "spdx-expression-parse": "3.0.0", - "spdx-ranges": "2.0.0" + "spdx-compare": "^1.0.0", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" } }, "spdy": { @@ -12267,12 +12837,12 @@ "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", "dev": true, "requires": { - "debug": "2.6.9", - "handle-thing": "1.2.5", - "http-deceiver": "1.2.7", - "safe-buffer": "5.1.2", - "select-hose": "2.0.0", - "spdy-transport": "2.1.0" + "debug": "^2.6.8", + "handle-thing": "^1.2.5", + "http-deceiver": "^1.2.7", + "safe-buffer": "^5.0.1", + "select-hose": "^2.0.0", + "spdy-transport": "^2.0.18" }, "dependencies": { "debug": { @@ -12292,13 +12862,13 @@ "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", "dev": true, "requires": { - "debug": "2.6.9", - "detect-node": "2.0.3", - "hpack.js": "2.1.6", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "safe-buffer": "5.1.2", - "wbuf": "1.7.3" + "debug": "^2.6.8", + "detect-node": "^2.0.3", + "hpack.js": "^2.1.6", + "obuf": "^1.1.1", + "readable-stream": "^2.2.9", + "safe-buffer": "^5.0.1", + "wbuf": "^1.7.2" }, "dependencies": { "debug": { @@ -12313,12 +12883,11 @@ } }, "split-array-stream": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/split-array-stream/-/split-array-stream-1.0.3.tgz", - "integrity": "sha1-0rdajl4Ngk1S/eyLgiWDncLjXfo=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/split-array-stream/-/split-array-stream-2.0.0.tgz", + "integrity": "sha512-hmMswlVY91WvGMxs0k8MRgq8zb2mSen4FmDNc5AFiTWtrBpdZN6nwD6kROVe4vNL+ywrvbCKsWVCnEd4riELIg==", "requires": { - "async": "2.6.1", - "is-stream-ended": "0.1.4" + "is-stream-ended": "^0.1.4" } }, "sprintf-js": { @@ -12333,8 +12902,8 @@ "integrity": "sha1-pWad4StC87HV6D7QPHEEb8SPQe8=", "dev": true, "requires": { - "array-uniq": "1.0.3", - "number-is-nan": "1.0.1" + "array-uniq": "^1.0.2", + "number-is-nan": "^1.0.0" } }, "sshpk": { @@ -12342,14 +12911,14 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz", "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=", "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" } }, "stack-utils": { @@ -12364,12 +12933,12 @@ "integrity": "sha512-jR45n5ZMAkasw0xoE9j9TuLmJv4Sa3AkXe+6yIFT6a07kXYHgSbuD2OVGECdZGFxTmvNqLwL1iRIgvq6O6rq+A==", "dev": true, "requires": { - "boom": "7.2.0", - "bounce": "1.2.0", - "cryptiles": "4.1.1", - "hoek": "5.0.3", - "iron": "5.0.4", - "joi": "13.3.0" + "boom": "7.x.x", + "bounce": "1.x.x", + "cryptiles": "4.x.x", + "hoek": "5.x.x", + "iron": "5.x.x", + "joi": "13.x.x" } }, "statuses": { @@ -12383,7 +12952,7 @@ "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.4.tgz", "integrity": "sha512-D243NJaYs/xBN2QnoiMDY7IesJFIK7gEhnvAYqJa5JvDdnh2dC4qDBwlCf0ohPpX2QRlA/4gnbnPd3rs3KxVcA==", "requires": { - "stubs": "3.0.0" + "stubs": "^3.0.0" } }, "stream-shift": { @@ -12409,19 +12978,14 @@ "integrity": "sha1-XqIRzZLSKOGEKUmQpsyXs2anfLA=", "dev": true }, - "string-format-obj": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string-format-obj/-/string-format-obj-1.1.1.tgz", - "integrity": "sha512-Mm+sROy+pHJmx0P/0Bs1uxIX6UhGJGj6xDGQZ5zh9v/SZRmLGevp+p0VJxV7lirrkAmQ2mvva/gHKpnF/pTb+Q==" - }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "string_decoder": { @@ -12429,7 +12993,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "stringifier": { @@ -12438,9 +13002,9 @@ "integrity": "sha1-3vGDQvaTPbDy2/yaoCF1tEjBeVk=", "dev": true, "requires": { - "core-js": "2.5.6", - "traverse": "0.6.6", - "type-name": "2.0.2" + "core-js": "^2.0.0", + "traverse": "^0.6.6", + "type-name": "^2.0.1" } }, "strip-ansi": { @@ -12449,7 +13013,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" }, "dependencies": { "ansi-regex": { @@ -12472,7 +13036,7 @@ "integrity": "sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.1" } }, "strip-eof": { @@ -12487,7 +13051,7 @@ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, "requires": { - "get-stdin": "4.0.1" + "get-stdin": "^4.0.1" } }, "strip-json-comments": { @@ -12507,11 +13071,11 @@ "integrity": "sha512-IcJUvRjeR+NB437Iq+LORFNJW4L6Knqkj3oQrBrkdhIaS2VKJvx/9aYEq7vi+PEx5/OuehOL/40SkSZotLi/MA==", "dev": true, "requires": { - "boom": "7.2.0", - "content": "4.0.5", - "hoek": "5.0.3", - "pez": "4.0.2", - "wreck": "14.0.2" + "boom": "7.x.x", + "content": "4.x.x", + "hoek": "5.x.x", + "pez": "4.x.x", + "wreck": "14.x.x" } }, "superagent": { @@ -12520,16 +13084,16 @@ "integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==", "dev": true, "requires": { - "component-emitter": "1.2.1", - "cookiejar": "2.1.1", - "debug": "3.1.0", - "extend": "3.0.1", - "form-data": "2.3.2", - "formidable": "1.2.1", - "methods": "1.1.2", - "mime": "1.6.0", - "qs": "6.5.2", - "readable-stream": "2.3.6" + "component-emitter": "^1.2.0", + "cookiejar": "^2.1.0", + "debug": "^3.1.0", + "extend": "^3.0.0", + "form-data": "^2.3.1", + "formidable": "^1.2.0", + "methods": "^1.1.1", + "mime": "^1.4.1", + "qs": "^6.5.1", + "readable-stream": "^2.3.5" }, "dependencies": { "mime": { @@ -12546,11 +13110,11 @@ "integrity": "sha512-HZJ3geIMPgVwKk2VsmO5YHqnnJYl6bV5A9JW2uzqV43WmpgliNEYbuvukfor7URpaqpxuw3CfZ3ONdVbZjCgIA==", "dev": true, "requires": { - "arrify": "1.0.1", - "indent-string": "3.2.0", - "js-yaml": "3.11.0", - "serialize-error": "2.1.0", - "strip-ansi": "4.0.0" + "arrify": "^1.0.1", + "indent-string": "^3.2.0", + "js-yaml": "^3.10.0", + "serialize-error": "^2.1.0", + "strip-ansi": "^4.0.0" } }, "supertest": { @@ -12559,8 +13123,8 @@ "integrity": "sha1-jUu2j9GDDuBwM7HFpamkAhyWUpY=", "dev": true, "requires": { - "methods": "1.1.2", - "superagent": "3.8.3" + "methods": "~1.1.2", + "superagent": "^3.0.0" } }, "supports-color": { @@ -12569,7 +13133,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" }, "dependencies": { "has-flag": { @@ -12592,12 +13156,12 @@ "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "dev": true, "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.4.1", - "lodash": "4.17.10", + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "string-width": "^2.1.1" } }, "taffydb": { @@ -12618,7 +13182,7 @@ "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "dev": true, "requires": { - "execa": "0.7.0" + "execa": "^0.7.0" } }, "text-encoding": { @@ -12644,8 +13208,8 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" } }, "time-zone": { @@ -12666,7 +13230,7 @@ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-fast-properties": { @@ -12681,7 +13245,7 @@ "integrity": "sha512-Tlu1fGlR90iCdIPURqPiufqAlCZYzLjHYVVbcFWDMcX7+tK8hdZWAfsMrD/pBul9jqHHwFjNdf1WaxA9vTRRhw==", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "tough-cookie": { @@ -12689,7 +13253,7 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" } }, "traverse": { @@ -12728,18 +13292,18 @@ "integrity": "sha1-EeJrzLiK+gLdDZlWyuPUVAtfVMM=", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "builtin-modules": "1.1.1", - "chalk": "2.4.1", - "commander": "2.15.1", - "diff": "3.5.0", - "glob": "7.1.2", - "js-yaml": "3.11.0", - "minimatch": "3.0.4", - "resolve": "1.7.1", - "semver": "5.5.0", - "tslib": "1.9.1", - "tsutils": "2.27.1" + "babel-code-frame": "^6.22.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^3.2.0", + "glob": "^7.1.1", + "js-yaml": "^3.7.0", + "minimatch": "^3.0.4", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.12.1" }, "dependencies": { "resolve": { @@ -12748,7 +13312,7 @@ "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } } } @@ -12759,7 +13323,7 @@ "integrity": "sha512-AE/7uzp32MmaHvNNFES85hhUDHFdFZp6OAiZcd6y4ZKKIg6orJTm8keYWBhIhrJQH3a4LzNKat7ZPXZt5aTf6w==", "dev": true, "requires": { - "tslib": "1.9.1" + "tslib": "^1.8.1" } }, "tunnel-agent": { @@ -12767,7 +13331,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -12782,7 +13346,7 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-detect": { @@ -12798,7 +13362,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.18" + "mime-types": "~2.1.18" } }, "type-name": { @@ -12810,7 +13374,8 @@ "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true }, "typescript": { "version": "2.8.3", @@ -12825,9 +13390,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "camelcase": { @@ -12844,9 +13409,9 @@ "dev": true, "optional": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" } } @@ -12894,7 +13459,7 @@ "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", "dev": true, "requires": { - "crypto-random-string": "1.0.0" + "crypto-random-string": "^1.0.0" } }, "unique-temp-dir": { @@ -12903,8 +13468,8 @@ "integrity": "sha1-bc6VsmgcoAPuv7MEpBX5y6vMU4U=", "dev": true, "requires": { - "mkdirp": "0.5.1", - "os-tmpdir": "1.0.2", + "mkdirp": "^0.5.1", + "os-tmpdir": "^1.0.1", "uid2": "0.0.3" } }, @@ -12914,9 +13479,9 @@ "integrity": "sha1-DaSsL3PP95JMgfpN4BjKViyisKc=", "dev": true, "requires": { - "array-filter": "1.0.0", + "array-filter": "^1.0.0", "indexof": "0.0.1", - "object-keys": "1.0.11" + "object-keys": "^1.0.0" } }, "universalify": { @@ -12943,16 +13508,16 @@ "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", "dev": true, "requires": { - "boxen": "1.3.0", - "chalk": "2.4.1", - "configstore": "3.1.2", - "import-lazy": "2.1.0", - "is-ci": "1.1.0", - "is-installed-globally": "0.1.0", - "is-npm": "1.0.0", - "latest-version": "3.1.0", - "semver-diff": "2.1.0", - "xdg-basedir": "3.0.0" + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" } }, "url-parse-lax": { @@ -12961,7 +13526,7 @@ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "dev": true, "requires": { - "prepend-http": "1.0.4" + "prepend-http": "^1.0.1" } }, "url-to-options": { @@ -12998,8 +13563,8 @@ "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "dev": true, "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "validate-npm-package-name": { @@ -13008,7 +13573,7 @@ "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "dev": true, "requires": { - "builtins": "1.0.3" + "builtins": "^1.0.3" } }, "vary": { @@ -13048,9 +13613,9 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" } }, "vise": { @@ -13059,7 +13624,7 @@ "integrity": "sha512-kBFZLmiL1Vm3rHXphkhvvAcsjgeQXRrOFCbJb0I50YZZP4HGRNH+xGzK3matIMcpbsfr3I02u9odj4oCD0TWgA==", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "wbuf": { @@ -13068,7 +13633,7 @@ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, "requires": { - "minimalistic-assert": "1.0.1" + "minimalistic-assert": "^1.0.0" } }, "well-known-symbols": { @@ -13083,7 +13648,7 @@ "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -13098,7 +13663,7 @@ "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", "dev": true, "requires": { - "string-width": "2.1.1" + "string-width": "^2.1.1" } }, "window-size": { @@ -13120,8 +13685,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -13130,7 +13695,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { @@ -13139,9 +13704,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "strip-ansi": { @@ -13150,7 +13715,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } } } @@ -13166,8 +13731,8 @@ "integrity": "sha512-QCm3omWNJUseqrSzwX2QZi1rBbmCfbFHJAXputLLyZ37VSiFnSYQB0ms/mPnSvrlIu7GVm89Y/gBNhSY26uVIQ==", "dev": true, "requires": { - "boom": "7.2.0", - "hoek": "5.0.3" + "boom": "7.x.x", + "hoek": "5.x.x" } }, "write": { @@ -13176,7 +13741,7 @@ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "write-file-atomic": { @@ -13185,9 +13750,9 @@ "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" } }, "write-json-file": { @@ -13196,12 +13761,12 @@ "integrity": "sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=", "dev": true, "requires": { - "detect-indent": "5.0.0", - "graceful-fs": "4.1.11", - "make-dir": "1.3.0", - "pify": "3.0.0", - "sort-keys": "2.0.0", - "write-file-atomic": "2.3.0" + "detect-indent": "^5.0.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "pify": "^3.0.0", + "sort-keys": "^2.0.0", + "write-file-atomic": "^2.0.0" }, "dependencies": { "detect-indent": { @@ -13218,8 +13783,8 @@ "integrity": "sha1-AwqZlMyZk9JbTnWp8aGSNgcpHOk=", "dev": true, "requires": { - "sort-keys": "2.0.0", - "write-json-file": "2.3.0" + "sort-keys": "^2.0.0", + "write-json-file": "^2.2.0" } }, "xdg-basedir": { @@ -13256,18 +13821,18 @@ "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", "dev": true, "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "9.0.2" + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" }, "dependencies": { "cliui": { @@ -13276,9 +13841,9 @@ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } } } @@ -13289,7 +13854,7 @@ "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 70b2da8598e..82b640f300b 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -36,8 +36,8 @@ "lint": "eslint samples/ && gts check && jsgl --local .", "prettier": "prettier --write samples/*.js samples/*/*.js", "presystem-test": "npm run compile", - "system-test": "nyc --exclude=\"error-message.js\" mocha build/system-test", - "cover": "nyc --exclude=\"fuzzer.js\" --reporter=lcov mocha --require intelli-espower-loader ./build/test/unit ./build/test/unit/**/ && nyc report", + "system-test": "nyc --exclude=\"error-message.js\" mocha --require source-map-support/register build/system-test", + "cover": "nyc --exclude=\"fuzzer.js\" --reporter=lcov mocha --require intelli-espower-loader source-map-support/register build/test/unit build/test/unit/**/ && nyc report", "presamples-test": "npm run compile", "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", "test-no-cover": "mocha build/test/unit build/test/unit/**/ --timeout 20000", @@ -46,7 +46,7 @@ "check": "gts check", "clean": "gts clean", "compile": "tsc -p .", - "postcompile": "cpy src/types.d.ts build/src/ && cpy 'utils/**/*.*' build --parents && cpy 'test/**/*.*' build --parents", + "postcompile": "cpy 'utils/**/*.*' build --parents && cpy 'test/**/*.*' build --parents", "fix": "gts fix", "prepare": "npm run compile", "pretest-only": "npm run compile", @@ -54,7 +54,7 @@ "license-check": "jsgl --local ." }, "dependencies": { - "@google-cloud/common": "^0.17.0", + "@google-cloud/common": "^0.18.8", "is": "^3.2.1", "lodash.has": "^4.5.2" }, @@ -127,6 +127,7 @@ "request": "^2.86.0", "restify": "^7.2.0", "rimraf": "^2.6.2", + "source-map-support": "^0.5.6", "tmp": "0.0.33", "typescript": "~2.8.3" } diff --git a/handwritten/error-reporting/src/configuration.ts b/handwritten/error-reporting/src/configuration.ts index 48373d965fc..07ea84d983c 100644 --- a/handwritten/error-reporting/src/configuration.ts +++ b/handwritten/error-reporting/src/configuration.ts @@ -14,16 +14,16 @@ * limitations under the License. */ -const env = process.env; -import has = require('lodash.has'); -import * as is from 'is'; + +import {Logger} from '@google-cloud/common'; +import is from 'is'; +import has from 'lodash.has'; + const isObject = is.object; const isBoolean = is.boolean; const isString = is.string; const isNumber = is.number; - -import * as types from './types'; -const Logger: types.Logger = require('@google-cloud/common').Logger; +const env = process.env; export interface ConfigurationOptions { projectId?: string; @@ -63,7 +63,7 @@ export interface ServiceContext { * been initialized. */ export class Configuration { - _logger: types.Logger; + _logger: Logger; _shouldReportErrorsToAPI: boolean; _projectId: string|null; _key: string|null; @@ -73,8 +73,7 @@ export class Configuration { _reportUnhandledRejections: boolean; _givenConfiguration: ConfigurationOptions; - constructor( - givenConfig: ConfigurationOptions|undefined, logger: types.Logger) { + constructor(givenConfig: ConfigurationOptions|undefined, logger: Logger) { /** * The _logger property caches the logger instance created at the top-level * for configuration logging purposes. diff --git a/handwritten/error-reporting/src/google-apis/auth-client.ts b/handwritten/error-reporting/src/google-apis/auth-client.ts index a7bb13075d1..07799efc1f5 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.ts +++ b/handwritten/error-reporting/src/google-apis/auth-client.ts @@ -14,17 +14,12 @@ * limitations under the License. */ -import * as types from '../types'; -export const common: types.Common = require('@google-cloud/common'); const pkg = require('../../../package.json'); -import * as is from 'is'; -// TODO: Address the error where `is` does not have a `fn` property -const isFunction = (is as {} as {fn: Function}).fn; -const isString = is.string; - +import is from 'is'; import {Configuration} from '../configuration'; import {ErrorMessage} from '../classes/error-message'; import * as http from 'http'; +import {Service, Logger, ServiceOptions} from '@google-cloud/common'; /* @const {Array} list of scopes needed to work with the errors api. */ const SCOPES = ['https://www.googleapis.com/auth/cloud-platform']; @@ -57,9 +52,9 @@ const API = 'https://clouderrorreporting.googleapis.com/v1beta1'; * address the correct project in the Error Reporting API * @property {Object} _logger - the instance-cached logger instance */ -export class RequestHandler extends common.Service { +export class RequestHandler extends Service { private _config: Configuration; - private _logger: types.Logger; + private _logger: Logger; // TODO: Make this more precise /** @@ -72,7 +67,7 @@ export class RequestHandler extends common.Service { * @static */ static manufactureQueryString(key: string|null) { - if (isString(key)) { + if (is.string(key)) { return {key}; } return null; @@ -94,34 +89,33 @@ export class RequestHandler extends common.Service { * @param {Configuration} config - an instance of the Configuration class * @param {Logger} logger - an instance of logger */ - constructor(config: Configuration, logger: types.Logger) { + constructor(config: Configuration, logger: Logger) { const pid = config.getProjectId(); // If an API key is provided, do not try to authenticate. const tryAuthenticate = !config.getKey(); + const serviceOptions: ServiceOptions = Object.assign(config, { + projectId: pid !== null ? pid : undefined, + customEndpoint: !tryAuthenticate, + }); super( { packageJson: pkg, baseUrl: API, scopes: SCOPES, - projectId: pid !== null ? pid : undefined, projectIdRequired: true, - customEndpoint: !tryAuthenticate, }, - // TODO: Fix the type incompatibilities that require this cast - config as types.ServiceAuthenticationConfig); + serviceOptions); this._config = config; this._logger = logger; const that = this; if (tryAuthenticate) { - this.authClient.getToken((err: Error) => { - if (err) { - that._logger.error([ - 'Unable to find credential information on instance. This library', - 'will be unable to communicate with the Stackdriver API to save', - 'errors. Message: ' + err.message, - ].join(' ')); - } + this.authClient.getAccessToken().then(() => {}, err => { + that._logger.error([ + 'Unable to find credential information on instance. This library', + 'will be unable to communicate with the Stackdriver API to save', + 'errors. Message: ' + err.message, + ].join(' ')); }); } else { this.request( @@ -162,56 +156,56 @@ export class RequestHandler extends common.Service { userCb?: (err: Error|null, response: http.ServerResponse|null, body: {}) => void) { - const cb: Function = (isFunction(userCb) ? userCb : RequestHandler.noOp)!; - if (this._config.getShouldReportErrorsToAPI()) { - this.request( - { - uri: 'events:report', - qs: RequestHandler.manufactureQueryString(this._config.getKey()), - method: 'POST', - json: errorMessage, - }, - (err, body, response) => { - if (err) { - this._logger.error( - [ - 'Encountered an error while attempting to transmit an error to', - 'the Stackdriver Error Reporting API.', - ].join(' '), - err); - } - cb(err, response, body); - }); - } else { - cb(new Error([ - 'Stackdriver error reporting client has not been configured to send', - 'errors, please check the NODE_ENV environment variable and make sure', - 'it is set to "production" or set the ignoreEnvironmentCheck property', - 'to true in the runtime configuration object', - ].join(' ')), - null, null); - } + const cb: Function = (is.function(userCb) ? userCb : RequestHandler.noOp)!; + if (this._config.getShouldReportErrorsToAPI()) { + this.request( + { + uri: 'events:report', + qs: RequestHandler.manufactureQueryString(this._config.getKey()), + method: 'POST', + json: errorMessage, + }, + (err, body, response) => { + if (err) { + this._logger.error( + [ + 'Encountered an error while attempting to transmit an error to', + 'the Stackdriver Error Reporting API.', + ].join(' '), + err); + } + cb(err, response, body); + }); + } else { + cb(new Error([ + 'Stackdriver error reporting client has not been configured to send', + 'errors, please check the NODE_ENV environment variable and make sure', + 'it is set to "production" or set the ignoreEnvironmentCheck property', + 'to true in the runtime configuration object', + ].join(' ')), + null, null); + } + } } -} -/** - * The requestCallback callback function is called on completion of an API - * request whether that completion is success or failure. The request can either - * fail by reaching the max number of retries or encountering an unrecoverable - * response from the API. The first parameter to any invocation of the - * requestCallback function type will be the applicable error if one was - * generated during the request-response transaction. If an error was not - * generated during the transaction then the first parameter will be of type - * Null. The second parameter is the entire response from the transaction, this - * is an object that as well as containing the body of the response from the - * transaction will also include transaction information. The third parameter is - * the body of the response, this can be an object, a string or any type given - * by the response object. - * @callback RequestHandler~requestCallback cb - The function that will be - * invoked once the transaction has completed - * @param {Error|Null} err - The error, if applicable, generated during the - * transaction - * @param {Object|Undefined|Null} response - The response, if applicable, - * received during the transaction - * @param {Any} body - The response body if applicable - */ + /** + * The requestCallback callback function is called on completion of an API + * request whether that completion is success or failure. The request can + * either fail by reaching the max number of retries or encountering an + * unrecoverable response from the API. The first parameter to any invocation + * of the requestCallback function type will be the applicable error if one + * was generated during the request-response transaction. If an error was not + * generated during the transaction then the first parameter will be of type + * Null. The second parameter is the entire response from the transaction, + * this is an object that as well as containing the body of the response from + * the transaction will also include transaction information. The third + * parameter is the body of the response, this can be an object, a string or + * any type given by the response object. + * @callback RequestHandler~requestCallback cb - The function that will be + * invoked once the transaction has completed + * @param {Error|Null} err - The error, if applicable, generated during the + * transaction + * @param {Object|Undefined|Null} response - The response, if applicable, + * received during the transaction + * @param {Any} body - The response body if applicable + */ diff --git a/handwritten/error-reporting/src/index.ts b/handwritten/error-reporting/src/index.ts index 95506e73405..b29eef31137 100644 --- a/handwritten/error-reporting/src/index.ts +++ b/handwritten/error-reporting/src/index.ts @@ -18,14 +18,11 @@ * @module error-reporting */ -import * as types from './types'; -const Logger: types.Logger = require('@google-cloud/common').Logger; +import {Logger} from '@google-cloud/common'; import {ErrorMessage} from './classes/error-message'; import {Configuration, ConfigurationOptions} from './configuration'; import {RequestHandler as AuthClient} from './google-apis/auth-client'; -import {createLogger} from './logger'; - // Begin error reporting interfaces import * as expressInterface from './interfaces/express'; import * as hapiInterface from './interfaces/hapi'; @@ -33,7 +30,7 @@ import * as koaInterface from './interfaces/koa'; import * as manualInterface from './interfaces/manual'; import * as messageBuilderInterface from './interfaces/message-builder'; import * as restifyInterface from './interfaces/restify'; - +import {createLogger} from './logger'; import * as manualRequestExtractor from './request-extractors/manual'; export type RestifyRequestHandler = (req: {}, res: {}, next: {}) => {}; @@ -96,7 +93,7 @@ export type RestifyRequestHandler = (req: {}, res: {}, next: {}) => {}; * reporting configuration. */ export class ErrorReporting { - private _logger: types.Logger; + private _logger: Logger; private _config: Configuration; private _client: AuthClient; // the `err` argument can be anything, including `null` and `undefined` diff --git a/handwritten/error-reporting/src/interfaces/manual.ts b/handwritten/error-reporting/src/interfaces/manual.ts index 5575885b6dd..d2938b1dd3d 100644 --- a/handwritten/error-reporting/src/interfaces/manual.ts +++ b/handwritten/error-reporting/src/interfaces/manual.ts @@ -14,18 +14,15 @@ * limitations under the License. */ -import * as is from 'is'; -const isString = is.string; -const isObject = is.object; -// TODO: Address the error where `is` does not have a `fn` property -const isFunction = (is as {} as {fn: Function}).fn; +import {Logger} from '@google-cloud/common'; +import * as http from 'http'; +import is from 'is'; + import {ErrorMessage} from '../classes/error-message'; -import {manualRequestInformationExtractor} from '../request-extractors/manual'; -import {populateErrorMessage} from '../populate-error-message'; -import {RequestHandler} from '../google-apis/auth-client'; import {Configuration} from '../configuration'; -import * as types from '../types'; -import * as http from 'http'; +import {RequestHandler} from '../google-apis/auth-client'; +import {populateErrorMessage} from '../populate-error-message'; +import {manualRequestInformationExtractor} from '../request-extractors/manual'; import {Request} from '../request-extractors/manual'; export type Callback = @@ -46,7 +43,7 @@ export type Callback = * function */ export function handlerSetup( - client: RequestHandler, config: Configuration, logger: types.Logger) { + client: RequestHandler, config: Configuration, logger: Logger) { /** * The interface for manually reporting errors to the Google Error API in * application code. @@ -70,63 +67,68 @@ export function handlerSetup( request?: Request|Callback|string, additionalMessage?: Callback|string|{}, callback?: Callback|{}|string) { let em; - if (isString(request)) { + if (is.string(request)) { // no request given callback = additionalMessage; additionalMessage = request; request = undefined; - } else if (isFunction(request)) { - // neither request nor additionalMessage given - callback = request; - request = undefined; - additionalMessage = undefined; - } + } else if (is.function(request)) + { + // neither request nor additionalMessage given + callback = request; + request = undefined; + additionalMessage = undefined; + } - if (isFunction(additionalMessage)) { - callback = additionalMessage; - additionalMessage = undefined; - } + if (is.function(additionalMessage)) + { + callback = additionalMessage; + additionalMessage = undefined; + } - if (err instanceof ErrorMessage) { - // The API expects the error to contain a stack trace. Thus we - // append the stack trace of the point where the error was constructed. - // See the `message-builder.js` file for more details. - const stackErr = err as ErrorMessage & {_autoGeneratedStackTrace: string}; - if (stackErr._autoGeneratedStackTrace) { - err.setMessage(err.message + '\n' + stackErr._autoGeneratedStackTrace); - // Delete the property so that if the ErrorMessage is reported a second - // time, the stack trace is not appended a second time. Also, the API - // will not accept the ErrorMessage if it has additional properties. - delete stackErr._autoGeneratedStackTrace; - } else { - logger.warn( - 'Encountered a manually constructed error with message "' + - err.message + '" but without a construction site ' + - 'stack trace. This error might not be visible in the ' + - 'error reporting console.'); - } - em = err; - } else { - em = new ErrorMessage(); - em.setServiceContext( - config.getServiceContext().service, - config.getServiceContext().version); - populateErrorMessage(err, em); - } + if (err instanceof ErrorMessage) { + // The API expects the error to contain a stack trace. Thus we + // append the stack trace of the point where the error was + // constructed. See the `message-builder.js` file for more details. + const stackErr = + err as ErrorMessage & {_autoGeneratedStackTrace: string}; + if (stackErr._autoGeneratedStackTrace) { + err.setMessage( + err.message + '\n' + stackErr._autoGeneratedStackTrace); + // Delete the property so that if the ErrorMessage is reported a + // second time, the stack trace is not appended a second time. Also, + // the API will not accept the ErrorMessage if it has additional + // properties. + delete stackErr._autoGeneratedStackTrace; + } else { + logger.warn( + 'Encountered a manually constructed error with message "' + + err.message + '" but without a construction site ' + + 'stack trace. This error might not be visible in the ' + + 'error reporting console.'); + } + em = err; + } else { + em = new ErrorMessage(); + em.setServiceContext( + config.getServiceContext().service, + config.getServiceContext().version); + populateErrorMessage(err, em); + } - if (isObject(request)) { - // TODO: Address this explicit cast - em.consumeRequestInformation( - manualRequestInformationExtractor(request as Request)); - } + if (is.object(request)) { + // TODO: Address this explicit cast + em.consumeRequestInformation( + manualRequestInformationExtractor(request as Request)); + } - if (isString(additionalMessage)) { - em.setMessage(additionalMessage as string); - } + if (is.string(additionalMessage)) { + em.setMessage(additionalMessage as string); + } - // TODO: Address this type cast - client.sendError(em, callback as Callback); - return em; + // TODO: Address this type cast + client.sendError(em, callback as Callback); + return em; } return reportManualError; diff --git a/handwritten/error-reporting/src/logger.ts b/handwritten/error-reporting/src/logger.ts index abd5c278cb8..2ff15c0647e 100644 --- a/handwritten/error-reporting/src/logger.ts +++ b/handwritten/error-reporting/src/logger.ts @@ -14,18 +14,13 @@ * limitations under the License. */ -import has = require('lodash.has'); -import * as is from 'is'; -import * as types from './types'; - -const isObject = is.object; -const isString = is.string; -const isNumber = is.number; -const logger: types.logger = require('@google-cloud/common').logger; +import is from 'is'; +import has from 'lodash.has'; const packageJson = require('../../package.json'); import {ConfigurationOptions} from './configuration'; +import {logger, Logger} from '@google-cloud/common'; /** * Creates an instance of the Google Cloud Diagnostics logger class. This @@ -53,12 +48,13 @@ export function createLogger(initConfiguration?: ConfigurationOptions) { level = logger.LEVELS[~~process.env.GCLOUD_ERRORS_LOGLEVEL!] || DEFAULT_LEVEL; } else if ( - isObject(initConfiguration) && has(initConfiguration, 'logLevel')) { - if (isString(initConfiguration!.logLevel)) { + is.object(initConfiguration) && has(initConfiguration, 'logLevel')) { + if (is.string(initConfiguration!.logLevel)) { // Cast string as integer level = logger.LEVELS[~~initConfiguration!.logLevel!] || DEFAULT_LEVEL; - } else if (isNumber(initConfiguration!.logLevel)) { - level = logger.LEVELS[initConfiguration!.logLevel!] || DEFAULT_LEVEL; + } else if (is.number(initConfiguration!.logLevel)) { + level = + logger.LEVELS[Number(initConfiguration!.logLevel!)] || DEFAULT_LEVEL; } else { throw new Error( 'config.logLevel must be a number or decimal ' + diff --git a/handwritten/error-reporting/src/types.d.ts b/handwritten/error-reporting/src/types.d.ts deleted file mode 100644 index 7ece3a5a471..00000000000 --- a/handwritten/error-reporting/src/types.d.ts +++ /dev/null @@ -1,89 +0,0 @@ -/** - * Copyright 2018 Google LLC. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - import * as http from 'http'; - -export interface Common { - Service: Service; - logger: Logger; -} - -export type LogFunction = (message: any, ...args: any[]) => void; - -export interface Logger { - error: LogFunction; - warn: LogFunction; - info: LogFunction; - debug: LogFunction; - silly: LogFunction; -} - -export interface LoggerOptions { - level?: string; - levels?: string[]; - tag?: string; -} - -export interface logger { - (options?: LoggerOptions | string): Logger; - LEVELS: string[] & { [key: string]: string; }; -} - -export interface Options { - uri: string; - qs?: { key: string|null} | null; - method: string; - json?: {}; -} - -export interface Service { - new(config: ServiceConfig, options: ServiceAuthenticationConfig): Service; - getProjectId(cb: (err: Error|null, projectId?: string) => void): void; - authClient: {getToken: (err: {}) => void;}; - request(options: Options, - cb: ( - err: Error | null, - body: any, - response: http.IncomingMessage - ) => void): void; - request_(options: Options, - cb: ( - err: Error | null, - body: any, - response: {body: string} - ) => void): void; -} - -export interface ServiceConfig { - packageJson?: any; - projectIdRequired?: boolean; - baseUrl?: string; - scopes?: string[]; - // TODO: `auth-client.ts` assumes that `projectId` and `customEndpoint` - // are properties of `ServiceConfig`. Determine if it is. - projectId?: string; - customEndpoint?: boolean; -} - -export interface ServiceAuthenticationConfig { - projectId?: string; - keyFilename?: string; - email?: string; - credentials?: { - client_email?: string; - private_key?: string; - }; -} diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index bf7b8bccbe2..01d7d525ed3 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -15,23 +15,19 @@ */ import assert from 'assert'; -import * as is from 'is'; +import is from 'is'; import nock from 'nock'; +import {ErrorReporting} from '../src'; import {ErrorMessage} from '../src/classes/error-message'; import {RequestHandler} from '../src/google-apis/auth-client'; -import {ErrorReporting} from '../src/index'; import {createLogger} from '../src/logger'; import {FakeConfiguration as Configuration} from '../test/fixtures/configuration'; import {ErrorGroupStats, ErrorsApiTransport} from '../utils/errors-api-transport'; -const isObject = is.object; -const isString = is.string; -const isEmpty = is.empty; import assign = require('lodash.assign'); import pick = require('lodash.pick'); import omitBy = require('lodash.omitby'); -// eslint-disable-next-line node/no-extraneous-require import * as request from 'request'; import * as util from 'util'; import * as path from 'path'; @@ -58,7 +54,7 @@ class InstancedEnv { } _captureProcessProperties() { - return omitBy(pick(process.env, envKeys), value => !isString(value)); + return omitBy(pick(process.env, envKeys), value => !is.string(value)); } sterilizeProcess() { @@ -114,22 +110,22 @@ const env = new InstancedEnv({ function shouldRun() { let shouldRun = true; - if (!isString(env.injected().projectId)) { + if (!is.string(env.injected().projectId)) { console.log('The project id (projectId) was not set in the env'); shouldRun = false; } - if (!isString(env.injected().apiKey)) { + if (!is.string(env.injected().apiKey)) { console.log('The api key (apiKey) was not set as an env variable'); shouldRun = false; } - if (!isString(env.injected().projectNumber)) { + if (!is.string(env.injected().projectNumber)) { console.log('The project number (projectNumber) was not set in the env'); shouldRun = false; } - if (!isString(env.injected().keyFilename)) { + if (!is.string(env.injected().keyFilename)) { console.log('The key filename (keyFilename) was not set in the env'); shouldRun = false; } @@ -181,7 +177,7 @@ describe('Request/Response lifecycle mocking', () => { assert(err instanceof Error); assert.strictEqual( err!.message.toLowerCase(), 'message cannot be empty.'); - assert(isObject(response)); + assert(is.object(response)); assert.strictEqual(response!.statusCode, 400); done(); }); @@ -253,7 +249,7 @@ describe('Client creation', () => { .sendError(errorMessage, (err, response, body) => { assert.strictEqual(err, null); assert.strictEqual(response!.statusCode, 200); - assert(isObject(body) && isEmpty(body)); + assert(is.object(body) && is.empty(body)); done(); }); }); @@ -271,7 +267,7 @@ describe('Client creation', () => { .sendError(errorMessage, (err, response, body) => { assert.strictEqual(err, null); assert.strictEqual(response!.statusCode, 200); - assert(isObject(body) && isEmpty(body)); + assert(is.object(body) && is.empty(body)); done(); }); }); @@ -294,7 +290,7 @@ describe('Client creation', () => { .sendError(errorMessage, (err, response, body) => { assert.strictEqual(err, null); assert.strictEqual(response!.statusCode, 200); - assert(isObject(body) && isEmpty(body)); + assert(is.object(body) && is.empty(body)); done(); }); }); @@ -312,7 +308,7 @@ describe('Client creation', () => { .sendError(errorMessage, (err, response, body) => { assert.strictEqual(err, null); assert.strictEqual(response!.statusCode, 200); - assert(isObject(body) && isEmpty(body)); + assert(is.object(body) && is.empty(body)); done(); }); }); @@ -362,8 +358,8 @@ describe('Expected Behavior', () => { client.sendError(em, (err, response, body) => { assert.strictEqual(err, null); - assert(isObject(body)); - assert(isEmpty(body)); + assert(is.object(body)); + assert(is.empty(body)); assert.strictEqual(response!.statusCode, 200); done(); }); @@ -381,8 +377,8 @@ describe('Expected Behavior', () => { const client = new RequestHandler(cfg, logger); client.sendError(em, (err, response, body) => { assert.strictEqual(err, null); - assert(isObject(body)); - assert(isEmpty(body)); + assert(is.object(body)); + assert(is.empty(body)); assert.strictEqual(response!.statusCode, 200); done(); }); @@ -552,7 +548,7 @@ describe('error-reporting', () => { (function expectedTopOfStack() { errors.report(errOb, undefined, undefined, (err, response, body) => { assert.ifError(err); - assert(isObject(response)); + assert(is.object(response)); assert.deepEqual(body, {}); verifyServerResponse(messageTest, timeout, cb); }); diff --git a/handwritten/error-reporting/system-test/test-install.ts b/handwritten/error-reporting/system-test/test-install.ts index d49dc48aa1f..284170ca0e7 100644 --- a/handwritten/error-reporting/system-test/test-install.ts +++ b/handwritten/error-reporting/system-test/test-install.ts @@ -16,7 +16,7 @@ import assert from 'assert'; import {SpawnOptions} from 'child_process'; -import * as path from 'path'; +import path from 'path'; import {globP, mkdirP, ncpP, rimrafP, spawnP, tmpDirP, writeFileP} from './utils'; @@ -65,7 +65,7 @@ new ErrorReporting({ devDependencies: [] }, { - code: `import * as express from 'express'; + code: `import express from 'express'; import {ErrorReporting} from '@google-cloud/error-reporting'; const errors = new ErrorReporting(); @@ -112,7 +112,7 @@ server.register(errors.hapi); devDependencies: ['@types/hapi@16.x.x'] }, { - code: `import * as hapi from 'hapi'; + code: `import hapi from 'hapi'; import {ErrorReporting} from '@google-cloud/error-reporting'; const errors = new ErrorReporting(); @@ -141,7 +141,7 @@ start().catch(console.error); devDependencies: ['@types/hapi@17.x.x'] }, { - code: `import * as Koa from 'koa'; + code: `import Koa from 'koa'; import {ErrorReporting} from '@google-cloud/error-reporting'; const errors = new ErrorReporting(); @@ -165,7 +165,7 @@ app.use(function *(this: any): IterableIterator { devDependencies: ['@types/koa'] }, { - code: `import * as restify from 'restify'; + code: `import restify from 'restify'; import {ErrorReporting} from '@google-cloud/error-reporting'; const errors = new ErrorReporting(); diff --git a/handwritten/error-reporting/system-test/utils.ts b/handwritten/error-reporting/system-test/utils.ts index 36a77908976..bddc1d90d7d 100644 --- a/handwritten/error-reporting/system-test/utils.ts +++ b/handwritten/error-reporting/system-test/utils.ts @@ -16,13 +16,13 @@ import {ChildProcess, fork, ForkOptions, spawn, SpawnOptions} from 'child_process'; import {mkdir, readFile, stat, Stats, writeFile} from 'fs'; -import * as glob from 'glob'; +import glob from 'glob'; import {ncp} from 'ncp'; import once from 'once'; -import * as path from 'path'; +import path from 'path'; import pify from 'pify'; -import * as rimraf from 'rimraf'; -import * as tmp from 'tmp'; +import rimraf from 'rimraf'; +import tmp from 'tmp'; export const BUILD_DIRECTORY = 'build'; diff --git a/handwritten/error-reporting/test/fixtures/configuration.ts b/handwritten/error-reporting/test/fixtures/configuration.ts index a858abcf0b1..86391068364 100644 --- a/handwritten/error-reporting/test/fixtures/configuration.ts +++ b/handwritten/error-reporting/test/fixtures/configuration.ts @@ -14,8 +14,9 @@ * limitations under the License. */ +import {Logger} from '@google-cloud/common'; + import {Configuration, ConfigurationOptions} from '../../src/configuration'; -import {Logger} from '../../src/types'; export class FakeConfiguration extends Configuration { constructor(config: ConfigurationOptions|undefined, logger?: Logger) { diff --git a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts index 4a14d3bca2b..02ad2490767 100644 --- a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts +++ b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts @@ -14,11 +14,11 @@ * limitations under the License. */ +import {Logger} from '@google-cloud/common'; import assert from 'assert'; import proxyquire from 'proxyquire'; import {Configuration, ConfigurationOptions} from '../../../src/configuration'; -import {Logger} from '../../../src/types'; function verifyReportedMessage( config1: ConfigurationOptions, errToReturn: Error|null|undefined, @@ -28,15 +28,15 @@ function verifyReportedMessage( request: {}; constructor() { this.authClient = { - getToken(cb: (err?: Error|null) => void) { - cb(errToReturn); + async getAccessToken() { + throw errToReturn; }, }; this.request = () => {}; } } - const RequestHandler = proxyquire('../../../src/google-apis/auth-client.js', { + const RequestHandler = proxyquire('../../../src/google-apis/auth-client', { '@google-cloud/common': { Service: ServiceStub, }, @@ -56,11 +56,13 @@ function verifyReportedMessage( } logs.info += text; }, - }; - const config2 = new Configuration(config1, logger as Logger); + } as {} as Logger; + const config2 = new Configuration(config1, logger); // tslint:disable-next-line:no-unused-expression new RequestHandler(config2, logger); - assert.deepStrictEqual(logs, expectedLogs); + setImmediate(() => { + assert.deepStrictEqual(logs, expectedLogs); + }); } describe('RequestHandler', () => { it('should not request OAuth2 token if key is provided', () => { diff --git a/handwritten/error-reporting/test/unit/interfaces/manual.ts b/handwritten/error-reporting/test/unit/interfaces/manual.ts index f7e76f944cc..328e2fb55cf 100644 --- a/handwritten/error-reporting/test/unit/interfaces/manual.ts +++ b/handwritten/error-reporting/test/unit/interfaces/manual.ts @@ -23,7 +23,7 @@ const config = new Configuration({}); }; import {ErrorMessage} from '../../../src/classes/error-message'; import {RequestHandler} from '../../../src/google-apis/auth-client'; -import {Logger} from '../../../src/types'; +import {Logger} from '@google-cloud/common'; import {RequestInformationContainer} from '../../../src/classes/request-information-container'; describe('Manual handler', () => { @@ -38,7 +38,7 @@ describe('Manual handler', () => { }, } as {} as RequestHandler; const report = manual.handlerSetup(client, config, { - warn(message) { + warn(message: string) { // The use of `report` in this class should issue the following warning // becasue the `report` class is used directly and, as such, cannot // by itself have information where a ErrorMesasge was constructed. It @@ -53,7 +53,7 @@ describe('Manual handler', () => { 'trace. This error might not be visible in the error reporting ' + 'console.'); }, - } as Logger); + } as {} as Logger); describe('Report invocation behaviour', () => { it('Should allow argument-less invocation', () => { const r = report(null!); diff --git a/handwritten/error-reporting/utils/errors-api-transport.ts b/handwritten/error-reporting/utils/errors-api-transport.ts index 8ff22d34fb5..22a78c9ce3a 100644 --- a/handwritten/error-reporting/utils/errors-api-transport.ts +++ b/handwritten/error-reporting/utils/errors-api-transport.ts @@ -14,9 +14,10 @@ * limitations under the License. */ +import {Logger} from '@google-cloud/common'; + import {Configuration} from '../src/configuration'; import {RequestHandler as AuthClient} from '../src/google-apis/auth-client'; -import * as types from '../src/types'; export interface ServiceContext { service: string; @@ -49,45 +50,34 @@ const API = 'https://clouderrorreporting.googleapis.com/v1beta1/projects'; const ONE_HOUR_API = 'timeRange.period=PERIOD_1_HOUR'; export class ErrorsApiTransport extends AuthClient { - constructor(config: Configuration, logger: types.Logger) { + constructor(config: Configuration, logger: Logger) { super(config, logger); } deleteAllEvents(cb: (err: Error|null) => void) { - const self = this; - self.getProjectId((err, id) => { + this.getProjectId((err, id) => { if (err) { return cb(err); } - const options = {uri: [API, id, 'events'].join('/'), method: 'DELETE'}; - self.request_(options, (err, response, body) => { - if (err) { - return cb(err); - } + this.request_(options).then(r => { cb(null); - }); + }, e => cb); }); } getAllGroups(cb: (err: Error|null, data?: ErrorGroupStats[]) => void) { - const self = this; - self.getProjectId((err, id) => { + this.getProjectId((err, id) => { if (err) { return cb(err); } - const options = { uri: [API, id, 'groupStats?' + ONE_HOUR_API].join('/'), method: 'GET' }; - self.request_(options, (err, response, body) => { - if (err) { - return cb(err); - } - - cb(null, JSON.parse(body.body).errorGroupStats || []); - }); + this.request_(options).then(r => { + cb(null, r.body.errorGroupStats || []); + }, cb); }); } } From 1cca566539dbcbc18eef3b530df32ff31f565bf2 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Thu, 31 May 2018 13:36:38 -0700 Subject: [PATCH 106/527] chore(package): update cpy-cli to version 2.0.0 (#134) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 82b640f300b..4d6286022ec 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -91,7 +91,7 @@ "body-parser": "^1.18.3", "boom": "^7.2.0", "codecov": "^3.0.2", - "cpy-cli": "^1.0.1", + "cpy-cli": "^2.0.0", "eslint": "^4.19.1", "eslint-config-prettier": "^2.9.0", "eslint-plugin-node": "^6.0.1", From f091725960c0da51f4ba58f62636c1bf80527f7a Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Sat, 2 Jun 2018 09:35:37 -0700 Subject: [PATCH 107/527] chore(package): update @types/restify to version 7.2.0 (#137) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 4d6286022ec..d4ff0c164e6 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -85,7 +85,7 @@ "@types/pify": "^3.0.2", "@types/proxyquire": "^1.3.28", "@types/request": "^2.47.0", - "@types/restify": "^5.0.8", + "@types/restify": "^7.2.0", "@types/rimraf": "^2.0.2", "@types/tmp": "0.0.33", "body-parser": "^1.18.3", From c879b2bbc9e242defa60e6159c2016157c0293af Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Sun, 3 Jun 2018 20:51:16 -0700 Subject: [PATCH 108/527] chore(package): update nyc to version 12.0.2 (#138) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index d4ff0c164e6..5f9e2fbb018 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -118,7 +118,7 @@ "mocha": "^5.1.1", "ncp": "^2.0.0", "nock": "^9.2.6", - "nyc": "^11.8.0", + "nyc": "^12.0.2", "once": "^1.4.0", "pify": "^3.0.0", "power-assert": "^1.5.0", From 5e90dada63179227fb8963c6eabc83a3e415e0ce Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Thu, 21 Jun 2018 20:00:50 -0700 Subject: [PATCH 109/527] fix: update gts and typescript (#143) --- handwritten/error-reporting/package-lock.json | 3711 ++++++++++------- handwritten/error-reporting/package.json | 4 +- .../system-test/test-install.ts | 2 +- 3 files changed, 2288 insertions(+), 1429 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index cea29d61dd8..35ee59288ca 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -71,6 +71,139 @@ "slide": "^1.1.5" } }, + "@babel/code-frame": { + "version": "7.0.0-beta.49", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.49.tgz", + "integrity": "sha1-vs2AVIJzREDJ0TfkbXc0DmTX9Rs=", + "dev": true, + "requires": { + "@babel/highlight": "7.0.0-beta.49" + } + }, + "@babel/generator": { + "version": "7.0.0-beta.49", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.49.tgz", + "integrity": "sha1-6c/9qROZaszseTu8JauRvBnQv3o=", + "dev": true, + "requires": { + "@babel/types": "7.0.0-beta.49", + "jsesc": "^2.5.1", + "lodash": "^4.17.5", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + }, + "dependencies": { + "jsesc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", + "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=", + "dev": true + } + } + }, + "@babel/helper-function-name": { + "version": "7.0.0-beta.49", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.49.tgz", + "integrity": "sha1-olwRGbnwNSeGcBJuAiXAMEHI3jI=", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "7.0.0-beta.49", + "@babel/template": "7.0.0-beta.49", + "@babel/types": "7.0.0-beta.49" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0-beta.49", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.49.tgz", + "integrity": "sha1-z1Aj8y0q2S0Ic3STnOwJUby1FEE=", + "dev": true, + "requires": { + "@babel/types": "7.0.0-beta.49" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.0.0-beta.49", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.49.tgz", + "integrity": "sha1-QNeO2glo0BGxxShm5XRs+yPldUg=", + "dev": true, + "requires": { + "@babel/types": "7.0.0-beta.49" + } + }, + "@babel/highlight": { + "version": "7.0.0-beta.49", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.49.tgz", + "integrity": "sha1-lr3GtD4TSCASumaRsQGEktOWIsw=", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^3.0.0" + } + }, + "@babel/parser": { + "version": "7.0.0-beta.49", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.0.0-beta.49.tgz", + "integrity": "sha1-lE0MW6KBK7FZ7b0iZ0Ov0mUXm9w=", + "dev": true + }, + "@babel/template": { + "version": "7.0.0-beta.49", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.49.tgz", + "integrity": "sha1-44q+ghfLl5P0YaUwbXrXRdg+HSc=", + "dev": true, + "requires": { + "@babel/code-frame": "7.0.0-beta.49", + "@babel/parser": "7.0.0-beta.49", + "@babel/types": "7.0.0-beta.49", + "lodash": "^4.17.5" + } + }, + "@babel/traverse": { + "version": "7.0.0-beta.49", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.49.tgz", + "integrity": "sha1-TypzaCoYM07WYl0QCo0nMZ98LWg=", + "dev": true, + "requires": { + "@babel/code-frame": "7.0.0-beta.49", + "@babel/generator": "7.0.0-beta.49", + "@babel/helper-function-name": "7.0.0-beta.49", + "@babel/helper-split-export-declaration": "7.0.0-beta.49", + "@babel/parser": "7.0.0-beta.49", + "@babel/types": "7.0.0-beta.49", + "debug": "^3.1.0", + "globals": "^11.1.0", + "invariant": "^2.2.0", + "lodash": "^4.17.5" + }, + "dependencies": { + "globals": { + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", + "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.0.0-beta.49", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.49.tgz", + "integrity": "sha1-t+Oxw/TUz+Eb34yJ8e/V4WF7h6Y=", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.5", + "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, "@concordance/react": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@concordance/react/-/react-1.0.0.tgz", @@ -123,12 +256,6 @@ "yargs-parser": "9.0.2" }, "dependencies": { - "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", - "dev": true - }, "nyc": { "version": "11.4.1", "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.4.1.tgz", @@ -1989,6 +2116,22 @@ } } }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@nodelib/fs.stat": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.0.tgz", + "integrity": "sha512-LAQ1d4OPfSJ/BMbI2DuizmYrrkD9JMaTdi2hQTlI53lQ4kRQPyZQRS4CYQ7O66bnBBnP/oYdRxbk++X0xuFU6A==", + "dev": true + }, "@sindresorhus/is": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", @@ -2086,9 +2229,9 @@ "dev": true }, "@types/express": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.11.1.tgz", - "integrity": "sha512-ttWle8cnPA5rAelauSWeWJimtY2RsUf2aspYZs7xPHiWgOlPn6nnUfBMtrkcnjFJuIHJF4gNOdVvpLK2Zmvh6g==", + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.16.0.tgz", + "integrity": "sha512-TtPEYumsmSTtTetAPXlJVf3kEqb6wZK0bZojpJQrnD/djV4q1oB6QQ8aKvKqwNPACoe02GNiy5zDzcYivR5Z2w==", "dev": true, "requires": { "@types/body-parser": "*", @@ -2097,13 +2240,14 @@ } }, "@types/express-serve-static-core": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.11.1.tgz", - "integrity": "sha512-EehCl3tpuqiM8RUb+0255M8PhhSwTtLfmO7zBBdv0ay/VTd/zmrqDfQdZFsa5z/PVMbH2yCMZPXsnrImpATyIw==", + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.16.0.tgz", + "integrity": "sha512-lTeoCu5NxJU4OD9moCgm0ESZzweAx0YqsAcab6OB0EB3+As1OaHtKnaGJvcngQxYsi9UNv0abn4/DRavrRxt4w==", "dev": true, "requires": { "@types/events": "*", - "@types/node": "*" + "@types/node": "*", + "@types/range-parser": "*" } }, "@types/extend": { @@ -2169,9 +2313,9 @@ "dev": true }, "@types/joi": { - "version": "13.0.8", - "resolved": "https://registry.npmjs.org/@types/joi/-/joi-13.0.8.tgz", - "integrity": "sha512-GXYdIVpwBP5ZBOlHitSYfQdH+vWXVahhkeQwalX0LkoX7Mx0D3L3tg4vXXhr6nYHkEpWlAzWuEjgWEBtcp5NZA==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@types/joi/-/joi-13.3.0.tgz", + "integrity": "sha512-nOnsbHvoo5DsQEh8VGlbQlfg9+/iFSxE5RQKLNkAODIqyupdEkBCZf6RCNxR+9X0egMIkJ43NnwkEJKxLogsIA==", "dev": true }, "@types/keygrip": { @@ -2181,9 +2325,9 @@ "dev": true }, "@types/koa": { - "version": "2.0.45", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.0.45.tgz", - "integrity": "sha512-emzrfiyQFMtx/dPMVhEMM1GU/p7QbRYWgubp1VGsR+bIC/53ehDf5IATM2fEZhoyHPeLuYyQVAjSPc/YqoWMSQ==", + "version": "2.0.46", + "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.0.46.tgz", + "integrity": "sha512-Dw10hYKv3exrc71GmH/Fqnc7dCLzdiP8bM1MLelPYjgIH5kQ6mPFreM3Z0uLK9EFaeCZZUYqsedDLCf3Urrysg==", "dev": true, "requires": { "@types/accepts": "*", @@ -2202,9 +2346,9 @@ "dev": true }, "@types/lodash": { - "version": "4.14.109", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.109.tgz", - "integrity": "sha512-hop8SdPUEzbcJm6aTsmuwjIYQo1tqLseKCM+s2bBqTU2gErwI4fE+aqUVOlscPSQbKHKgtMMPoC+h4AIGOJYvw==", + "version": "4.14.110", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.110.tgz", + "integrity": "sha512-iXYLa6olt4tnsCA+ZXeP6eEW3tk1SulWeYyP/yooWfAtXjozqXgtX4+XUtMuOCfYjKGz3F34++qUc3Q+TJuIIw==", "dev": true }, "@types/lodash.assign": { @@ -2316,9 +2460,9 @@ "dev": true }, "@types/mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-YeDiSEzznwZwwp766SJ6QlrTyBYUGPSIwmREHVTmktUYiT/WADdWtpt9iH0KuUSf8lZLdI4lP0X6PBzPo5//JQ==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.3.tgz", + "integrity": "sha512-C1wVVr7xhKu6c3Mb27dFzNYR05qvHwgtpN+JOYTGc1pKA7dCEDDYpscn7kul+bCUwa3NoGDbzI1pdznSOa397w==", "dev": true }, "@types/ncp": { @@ -2340,9 +2484,9 @@ } }, "@types/node": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.1.2.tgz", - "integrity": "sha512-bjk1RIeZBCe/WukrFToIVegOf91Pebr8cXYBwLBIsfiGWVQ+ifwWsT59H3RxrWzWrzd1l/Amk1/ioY5Fq3/bpA==" + "version": "10.3.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.3.4.tgz", + "integrity": "sha512-YMLlzdeNnAyLrQew39IFRkMacAR5BqKGIEei9ZjdHsIZtv+ZWKYTu1i7QJhetxQ9ReXx8w5f+cixdHZG3zgMQA==" }, "@types/once": { "version": "1.4.0", @@ -2368,10 +2512,16 @@ "integrity": "sha512-SQaNzWQ2YZSr7FqAyPPiA3FYpux2Lqh3HWMZQk47x3xbMCqgC/w0dY3dw9rGqlweDDkrySQBcaScXWeR+Yb11Q==", "dev": true }, + "@types/range-parser": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.2.tgz", + "integrity": "sha512-HtKGu+qG1NPvYe1z7ezLsyIaXYyi8SoAVqWDZgDQ8dLrsZvSzUNCwZyfX33uhWxL/SU0ZDQZ3nwZ0nimt507Kw==", + "dev": true + }, "@types/request": { - "version": "2.47.0", - "resolved": "https://registry.npmjs.org/@types/request/-/request-2.47.0.tgz", - "integrity": "sha512-/KXM5oev+nNCLIgBjkwbk8VqxmzI56woD4VUxn95O+YeQ8hJzcSmIZ1IN3WexiqBb6srzDo2bdMbsXxgXNkz5Q==", + "version": "2.47.1", + "resolved": "https://registry.npmjs.org/@types/request/-/request-2.47.1.tgz", + "integrity": "sha512-TV3XLvDjQbIeVxJ1Z3oCTDk/KuYwwcNKVwz2YaT0F5u86Prgc4syDAp6P96rkTQQ4bIdh+VswQIC9zS6NjY7/g==", "requires": { "@types/caseless": "*", "@types/form-data": "*", @@ -2380,9 +2530,9 @@ } }, "@types/restify": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/@types/restify/-/restify-5.0.8.tgz", - "integrity": "sha512-7nqnFv+M4w0KYajdb0sGy0C5k5OYvPLOPMbacNOM8I2Xm/UQpFnOUluwkkM1FyblVrhgfwHEHVUUZW1VWTXeAQ==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/@types/restify/-/restify-7.2.1.tgz", + "integrity": "sha512-CWIC2i7TCDmUHCuGjTcuuYKQeAkV+sqk6uV36qNVqaGzygT9ZsGrwrJ0He/cmwyRJuSKO34NTivRlP4DijvoaA==", "dev": true, "requires": { "@types/bunyan": "*", @@ -2460,9 +2610,9 @@ } }, "acorn": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz", - "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", + "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", "dev": true }, "acorn-es7-plugin": { @@ -2613,6 +2763,12 @@ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, "array-differ": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", @@ -2685,6 +2841,18 @@ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, "async-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", @@ -2696,10 +2864,16 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, + "atob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", + "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", + "dev": true + }, "auto-bind": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-1.2.0.tgz", - "integrity": "sha512-Zw7pZp7tztvKnWWtoII4AmqH5a2PV3ZN5F0BPRTGcc1kpRm4b6QXQnPU7Znbl6BfPfqOVOV29g4JeMqZQaqqOA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-1.2.1.tgz", + "integrity": "sha512-/W9yj1yKmBLwpexwAujeD9YHwYmRuWFGV8HWE7smQab797VeHa4/cnE2NFeDhA+E+5e/OGBI8763EhLjfZ/MXA==", "dev": true }, "ava": { @@ -3308,6 +3482,73 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, "bcrypt-pbkdf": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", @@ -3445,9 +3686,9 @@ "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" }, "buffer-from": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz", - "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", + "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==", "dev": true }, "builtin-modules": { @@ -3480,6 +3721,31 @@ "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", "dev": true }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "cacheable-request": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", @@ -3558,6 +3824,12 @@ "estraverse": "^4.0.0" } }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, "call-signature": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/call-signature/-/call-signature-0.0.2.tgz", @@ -3724,12 +3996,33 @@ "async": "^1.5.2", "glob": "^7.0.0", "resolve": "^1.1.6" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true } } @@ -3853,19 +4146,29 @@ "urlgrey": "0.4.4" } }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, "color-convert": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", - "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", "dev": true, "requires": { - "color-name": "^1.1.1" + "color-name": "1.1.1" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", "dev": true }, "colors": { @@ -4014,9 +4317,9 @@ "dev": true }, "cookiejar": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.1.tgz", - "integrity": "sha1-Qa1XsbVVlR7BcUEqgZQrHoIA00o=", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==", "dev": true }, "cookies": { @@ -4029,6 +4332,12 @@ "keygrip": "~1.0.2" } }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, "core-assert": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/core-assert/-/core-assert-0.2.1.tgz", @@ -4040,9 +4349,9 @@ } }, "core-js": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.6.tgz", - "integrity": "sha512-lQUVfQi0aLix2xpyjrrJEvfuYCqPc/HwmTKsC/VNf8q0zsjX7SQZtp4+oRONN5Tsur9GDETPjj+Ub2iDiGZfSQ==", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", "dev": true }, "core-util-is": { @@ -4051,117 +4360,182 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cp-file": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-3.2.0.tgz", - "integrity": "sha1-b4NhYlRiTwrViqSqjQdvAmvn4Yg=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-6.0.0.tgz", + "integrity": "sha512-OtHMgPugkgwHlbph25wlMKd358lZNhX1Y2viUpPoFmlBPlEiPIRhztYWha11grbGPnlM+urp5saVmwsChCIOEg==", "dev": true, "requires": { "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nested-error-stacks": "^1.0.1", - "object-assign": "^4.0.1", - "pify": "^2.3.0", - "pinkie-promise": "^2.0.0", - "readable-stream": "^2.1.4" + "make-dir": "^1.0.0", + "nested-error-stacks": "^2.0.0", + "pify": "^3.0.0", + "safe-buffer": "^5.0.1" + } + }, + "cpy": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cpy/-/cpy-7.0.1.tgz", + "integrity": "sha512-Zo52tXKLJcgy/baacn6KaNoRAakkl2wb+R4u6qJ4wlD0uchncwRQcIk66PlGlkzuToCJO6A6PWX27Tdwc8LU2g==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "cp-file": "^6.0.0", + "globby": "^8.0.1", + "nested-error-stacks": "^2.0.0" }, "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "globby": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.1.tgz", + "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", "dev": true, "requires": { - "pinkie": "^2.0.0" + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" } } } }, - "cpy": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cpy/-/cpy-4.0.1.tgz", - "integrity": "sha1-tnJn66LzlgugalphrJQDNCKDNCQ=", + "cpy-cli": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cpy-cli/-/cpy-cli-2.0.0.tgz", + "integrity": "sha512-LzrtY3lBWvFZcw4lXgkEbbDUd7y78juC3C5l7gj3UyezMEZF0Be9fjCVLN1HoZAzdMDeC3KHehWpHBJvgVAPkw==", "dev": true, "requires": { - "cp-file": "^3.1.0", - "globby": "^4.0.0", - "meow": "^3.6.0", - "nested-error-stacks": "^1.0.0", - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" + "cpy": "^7.0.0", + "meow": "^5.0.0" }, "dependencies": { - "glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "camelcase-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", + "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", "dev": true, "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" } }, - "globby": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-4.1.0.tgz", - "integrity": "sha1-CA9UVJ7BuCpsYOYx/ILhIR2+lfg=", + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^6.0.1", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "map-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", + "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", "dev": true }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "meow": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", + "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", + "dev": true, + "requires": { + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0", + "yargs-parser": "^10.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + } + }, + "redent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", + "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", + "dev": true, + "requires": { + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", "dev": true }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "trim-newlines": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", + "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", + "dev": true + }, + "yargs-parser": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.0.0.tgz", + "integrity": "sha512-+DHejWujTVYeMHLff8U96rLc4uE4Emncoftvn5AjhB1Jw1pWxLzgBUT/WYbPrHmy6YPEBTZQx5myHhVcuuu64g==", "dev": true, "requires": { - "pinkie": "^2.0.0" + "camelcase": "^4.1.0" } } } }, - "cpy-cli": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cpy-cli/-/cpy-cli-1.0.1.tgz", - "integrity": "sha1-Z/taSi3sKMqKv/N13kuecfanVhw=", - "dev": true, - "requires": { - "cpy": "^4.0.0", - "meow": "^3.6.0" - } - }, "create-error-class": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", @@ -4317,9 +4691,9 @@ "dev": true }, "deep-extend": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true }, "deep-is": { @@ -4338,6 +4712,59 @@ "object-keys": "^1.0.8" } }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, "del": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", @@ -4440,6 +4867,27 @@ "integrity": "sha512-A0QEhr4PxGUMEtKxd6X+JLnOTFd3BfIPSDpsc4dMvj+CbSaErDwTpoTo/nFJDMSrjxLW4BiNq+FbNisAAHhWeQ==", "dev": true }, + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "path-type": "^3.0.0" + }, + "dependencies": { + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + } + } + }, "doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", @@ -4502,13 +4950,13 @@ } }, "dtrace-provider": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.6.tgz", - "integrity": "sha1-QooiOv4DQl0s1tY0f99AxmkDVj0=", + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.7.tgz", + "integrity": "sha1-3JObTT4GIM/gwc2APQ0tftBP/QQ=", "dev": true, "optional": true, "requires": { - "nan": "^2.3.3" + "nan": "^2.10.0" } }, "duplexer3": { @@ -4529,9 +4977,9 @@ } }, "eastasianwidth": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.1.1.tgz", - "integrity": "sha1-RNZW3p2kFWlEZzNTZfsxR7hXK3w=", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "dev": true }, "ecc-jsbn": { @@ -4558,13 +5006,25 @@ "dev": true }, "empower": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/empower/-/empower-1.2.3.tgz", - "integrity": "sha1-bw2nNEf07dg4/sXGAxOoi6XLhSs=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/empower/-/empower-1.3.0.tgz", + "integrity": "sha512-tP2WqM7QzrPguCCQEQfFFDF+6Pw6YWLQal3+GHQaV+0uIr0S+jyREQPWljE02zFCYPFYLZ3LosiRV+OzTrxPpQ==", "dev": true, "requires": { "core-js": "^2.0.0", - "empower-core": "^0.6.2" + "empower-core": "^1.2.0" + }, + "dependencies": { + "empower-core": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/empower-core/-/empower-core-1.2.0.tgz", + "integrity": "sha512-g6+K6Geyc1o6FdXs9HwrXleCFan7d66G5xSCfSF7x1mJDCes6t0om9lFQG3zOrzh3Bkb/45N0cZ5Gqsf7YrzGQ==", + "dev": true, + "requires": { + "call-signature": "0.0.2", + "core-js": "^2.0.0" + } + } } }, "empower-assert": { @@ -4618,9 +5078,9 @@ "dev": true }, "error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { "is-arrayish": "^0.2.1" @@ -4633,9 +5093,9 @@ "dev": true }, "es5-ext": { - "version": "0.10.42", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.42.tgz", - "integrity": "sha512-AJxO1rmPe1bDEfSR6TJ/FgMFYuTBhR5R57KW58iCkYACMyFbrkqVyzXSurYoScDGvgyMpk7uRF/lPUPPTmsRSA==", + "version": "0.10.45", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz", + "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", "dev": true, "requires": { "es6-iterator": "~2.0.3", @@ -4746,9 +5206,9 @@ "dev": true }, "escodegen": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", - "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.10.0.tgz", + "integrity": "sha512-fjUOf8johsv23WuIKdNQU4P9t9jhQ4Qzx6pC2uW890OloK3Zs1ZAoCNpg/2larNF501jLl3UNy0kIRcF6VI22g==", "dev": true, "requires": { "esprima": "^3.1.3", @@ -4832,9 +5292,9 @@ }, "dependencies": { "globals": { - "version": "11.5.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.5.0.tgz", - "integrity": "sha512-hYyf+kI8dm3nORsiiXUQigOU62hDLfJ9G01uyGMxhc6BKsircrUhC4uJPQPUSuq2GrTmiiEt7ewxlMdBewfmKQ==", + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", + "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", "dev": true } } @@ -4869,9 +5329,9 @@ }, "dependencies": { "resolve": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", - "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", + "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "dev": true, "requires": { "path-parse": "^1.0.5" @@ -4960,17 +5420,17 @@ } }, "espower-source": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/espower-source/-/espower-source-2.2.0.tgz", - "integrity": "sha1-fgBSVa5HtcE2RIZEs/PYAtUD91I=", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/espower-source/-/espower-source-2.3.0.tgz", + "integrity": "sha512-Wc4kC4zUAEV7Qt31JRPoBUc5jjowHRylml2L2VaDQ1XEbnqQofGWx+gPR03TZAPokAMl5dqyL36h3ITyMXy3iA==", "dev": true, "requires": { "acorn": "^5.0.0", "acorn-es7-plugin": "^1.0.10", "convert-source-map": "^1.1.1", "empower-assert": "^1.0.0", - "escodegen": "^1.6.1", - "espower": "^2.0.0", + "escodegen": "^1.10.0", + "espower": "^2.1.1", "estraverse": "^4.0.0", "merge-estraverse-visitors": "^1.0.0", "multi-stage-sourcemap": "^0.2.1", @@ -5237,6 +5697,27 @@ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, "external-editor": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", @@ -5279,66 +5760,401 @@ "integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==", "dev": true }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "dev": true, - "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" - } - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true - }, - "fill-keys": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fill-keys/-/fill-keys-1.0.2.tgz", - "integrity": "sha1-mo+jb06K1jTjv2tPPIiCVRRS6yA=", - "dev": true, - "requires": { - "is-object": "~1.0.1", - "merge-descriptors": "~1.0.0" - } - }, - "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "fast-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.2.tgz", + "integrity": "sha512-TR6zxCKftDQnUAPvkrCWdBgDq/gbqx8A3ApnBrR5rMvpp6+KMJI0Igw7fkWPgeVK0uhRXTXdvO3O+YP0CaUX2g==", "dev": true, "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" - } - }, - "finalhandler": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.0.1", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.1", + "micromatch": "^3.1.10" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "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.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "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.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fill-keys": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fill-keys/-/fill-keys-1.0.2.tgz", + "integrity": "sha1-mo+jb06K1jTjv2tPPIiCVRRS6yA=", + "dev": true, + "requires": { + "is-object": "~1.0.1", + "merge-descriptors": "~1.0.0" + } + }, + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "dev": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "finalhandler": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", @@ -5382,13 +6198,14 @@ } }, "find-my-way": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-1.13.0.tgz", - "integrity": "sha512-aIa4UTxZ3klfApaQEJJ5cQvNeqfrxVngcjMgy+G5ygkrOrDPkORhY/RMH6F8mLwBpPt3Z0F03CtzN7gs2Q5H1w==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-1.14.0.tgz", + "integrity": "sha512-dYVjhSI/7WwM2tPXIpBp4YwPFpFEJOpNCPCTCq2vca/0t0OfqDOdynsWnMizanJ4tvmBpQbEek9ZKGmf24H3Ig==", "dev": true, "requires": { "fast-decode-uri-component": "^1.0.0", - "safe-regex": "^1.1.0" + "safe-regex": "^1.1.0", + "semver-store": "^0.2.0" } }, "find-up": { @@ -5474,6 +6291,15 @@ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", "dev": true }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -6154,6 +6980,12 @@ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -6195,6 +7027,12 @@ "is-glob": "^2.0.0" } }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, "global-dirs": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", @@ -6247,16 +7085,16 @@ } }, "google-auth-library": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-1.5.0.tgz", - "integrity": "sha512-xpibA/hkq4waBcpIkSJg4GiDAqcBWjJee3c47zj7xP3RQ0A9mc8MP3Vc9sc8SGRoDYA0OszZxTjW7SbcC4pJIA==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-1.6.1.tgz", + "integrity": "sha512-jYiWC8NA9n9OtQM7ANn0Tk464do9yhKEtaJ72pKcaBiEwn4LwcGYIYOfwtfsSm3aur/ed3tlSxbmg24IAT6gAg==", "requires": { "axios": "^0.18.0", "gcp-metadata": "^0.6.3", "gtoken": "^2.3.0", - "jws": "^3.1.4", + "jws": "^3.1.5", "lodash.isstring": "^4.0.1", - "lru-cache": "^4.1.2", + "lru-cache": "^4.1.3", "retry-axios": "^0.3.2" } }, @@ -6336,14 +7174,14 @@ } }, "gts": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/gts/-/gts-0.6.0.tgz", - "integrity": "sha512-MCh3HNzLA1zvnW8lStH58n6U7SaGCJwd0Y2fUWJklHdtpMB9zaGe8SR7l0DqqPf+t0hNoFu2KmRFxHBnkeeKrA==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/gts/-/gts-0.7.1.tgz", + "integrity": "sha512-7yMBk3+SmyL4+047vIXOAUWlNfbIkuPH0UnhQYzurM8yj1ufiVH++BdBpZY7AP6/wytvzq7PuVzqAXbk5isn2A==", "dev": true, "requires": { "chalk": "^2.4.1", "clang-format": "1.2.3", - "inquirer": "^5.2.0", + "inquirer": "^6.0.0", "meow": "^5.0.0", "pify": "^3.0.0", "rimraf": "^2.6.2", @@ -6369,22 +7207,39 @@ "quick-lru": "^1.0.0" } }, + "chardet": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.5.0.tgz", + "integrity": "sha512-9ZTaoBaePSCFvNlNGrsyI8ZVACP2svUtq0DkM7t4K2ClAa96sqOIRjAzDTc8zXzFt1cZR46rRzLTiHFSJ+Qw0g==", + "dev": true + }, + "external-editor": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.0.tgz", + "integrity": "sha512-mpkfj0FEdxrIhOC04zk85X7StNtr0yXnG7zCb+8ikO8OJi2jsHh5YGoknNTyXgsbHOf1WOOcVU3kPFWT2WgCkQ==", + "dev": true, + "requires": { + "chardet": "^0.5.0", + "iconv-lite": "^0.4.22", + "tmp": "^0.0.33" + } + }, "inquirer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz", - "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.0.0.tgz", + "integrity": "sha512-tISQWRwtcAgrz+SHPhTH7d3e73k31gsOy6i1csonLc0u1dVK/wYvuOnFeiWqC5OXFIYbmrIFInef31wbT8MEJg==", "dev": true, "requires": { "ansi-escapes": "^3.0.0", "chalk": "^2.0.0", "cli-cursor": "^2.1.0", "cli-width": "^2.0.0", - "external-editor": "^2.1.0", + "external-editor": "^3.0.0", "figures": "^2.0.0", "lodash": "^4.3.0", "mute-stream": "0.0.7", "run-async": "^2.2.0", - "rxjs": "^5.5.2", + "rxjs": "^6.1.0", "string-width": "^2.1.0", "strip-ansi": "^4.0.0", "through": "^2.3.6" @@ -6516,12 +7371,6 @@ "uglify-js": "^2.6" }, "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, "source-map": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", @@ -6534,9 +7383,9 @@ } }, "hapi": { - "version": "17.5.0", - "resolved": "https://registry.npmjs.org/hapi/-/hapi-17.5.0.tgz", - "integrity": "sha512-/btV0jpXb8ldoywsAt+FZg3qUVCx2ZjeA29Mluo3w/gcCJtzUnZfGALS8xR3d2ssVySm7JXVqeepy37Z02gJLQ==", + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/hapi/-/hapi-17.5.1.tgz", + "integrity": "sha512-IOOCwH75JMw28Spd9tMjYi9QsIqSGiJKH/GHwsmUV5ZgyyQIgVbWxbeuUFUwxcei4KIw1Gb1wJIDRF4jKlRq8w==", "dev": true, "requires": { "accept": "3.x.x", @@ -6608,6 +7457,66 @@ "has-symbol-support-x": "^1.4.1" } }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "has-yarn": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-1.0.0.tgz", @@ -6755,9 +7664,9 @@ } }, "ignore": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.8.tgz", - "integrity": "sha512-pUh+xUQQhQzevjRHHFqqcTy0/dP/kS9I8HSrUydhihjuD09W6ldVWFtIrwhXdUJHis3i2rZNqEHpZH/cbinFbg==", + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", "dev": true }, "ignore-by-default": { @@ -6915,6 +7824,15 @@ "resolved": "https://registry.npmjs.org/is/-/is-3.2.1.tgz", "integrity": "sha1-0Kwq1V63sL7JJqUmb2xmKqqD3KU=" }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -6953,6 +7871,34 @@ "ci-info": "^1.0.0" } }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, "is-dotfile": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", @@ -7068,6 +8014,23 @@ "symbol-observable": "^1.1.0" } }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "dev": true, + "requires": { + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, "is-path-cwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", @@ -7098,6 +8061,23 @@ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", "dev": true }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "is-posix-bracket": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", @@ -7162,6 +8142,12 @@ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -7177,9 +8163,9 @@ }, "dependencies": { "punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true } } @@ -7204,6 +8190,27 @@ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, + "istanbul-lib-coverage": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.0.tgz", + "integrity": "sha512-yMSw5xLIbdaxiVXHk3amfNM2WeBxLrwH/BCyZ9HvA/fylwziAIJOG2rKqWyLqEJqwKT725vxxqidv+SyynnGAA==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.2.0.tgz", + "integrity": "sha512-ozQGtlIw+/a/F3n6QwWiuuyRAPp64+g2GVsKYsIez0sgIEzkU5ZpL2uZ5pmAzbEJ82anlRaPlOQZzkRXspgJyg==", + "dev": true, + "requires": { + "@babel/generator": "7.0.0-beta.49", + "@babel/parser": "7.0.0-beta.49", + "@babel/template": "7.0.0-beta.49", + "@babel/traverse": "7.0.0-beta.49", + "@babel/types": "7.0.0-beta.49", + "istanbul-lib-coverage": "^2.0.0", + "semver": "^5.5.0" + } + }, "isurl": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", @@ -7221,9 +8228,9 @@ "dev": true }, "joi": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-13.3.0.tgz", - "integrity": "sha512-iF6jEYVfBIoYXztYymia1JfuoVbxBNuOcwdbsdoGin9/jjhBLhonKmfTQOvePss8r8v4tU4JOcNmYPHZzKEFag==", + "version": "13.4.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-13.4.0.tgz", + "integrity": "sha512-JuK4GjEu6j7zr9FuVe2MAseZ6si/8/HaY0qMAejfDFHp7jcH4OKE937mIHM5VT4xDS0q7lpQbszbxKV9rm0yUg==", "dev": true, "requires": { "hoek": "5.x.x", @@ -7260,9 +8267,9 @@ "dev": true }, "js-yaml": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz", - "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -7575,9 +8582,9 @@ } }, "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", "dev": true }, "lodash.assign": { @@ -7705,9 +8712,9 @@ "dev": true }, "lolex": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.6.0.tgz", - "integrity": "sha512-e1UtIo1pbrIqEXib/yMjHciyqkng5lc0rrIbytgjmRgDR9+2ceNIAcwOWSgylRjoEP9VdVguCSRwnNmlbnOUwA==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.0.tgz", + "integrity": "sha512-uJkH2e0BVfU5KOJUevbTOtpDduooSarH5PopO+LfM/vZf8Z9sJzODqKev804JYM2i++ktJfUmC1le4LwFQ1VMg==", "dev": true }, "longest": { @@ -7759,12 +8766,27 @@ "pify": "^3.0.0" } }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", "dev": true }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, "marked": { "version": "0.3.19", "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.19.tgz", @@ -7772,9 +8794,9 @@ "dev": true }, "matcher": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/matcher/-/matcher-1.1.0.tgz", - "integrity": "sha512-aZGv6JBTHqfqAd09jmAlbKnAICTfIvb5Z8gXVxPB5WZtFfHMaAMdACL7tQflD2V+6/8KNcY8s6DYtWLgpJP5lA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-1.1.1.tgz", + "integrity": "sha512-+BmqxWIubKTRKNWx/ahnCkk3mG8m7OturVlqq6HiojGJTd5hVYbgZm6WzcYPCoB+KBT4Vd6R7WSRG2OADNaCjg==", "dev": true, "requires": { "escape-string-regexp": "^1.0.4" @@ -7951,6 +8973,12 @@ "estraverse": "^4.0.0" } }, + "merge2": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.2.tgz", + "integrity": "sha512-bgM8twH86rWni21thii6WCMQMRMmwqqdW3sGWi9IipnVAszdLXRjwDwAnyrVXo6DuP3AjRMMttZKUB48QWIFGg==", + "dev": true + }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -8049,6 +9077,27 @@ "is-plain-obj": "^1.1.0" } }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", @@ -8084,9 +9133,9 @@ "dev": true }, "moment": { - "version": "2.22.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.1.tgz", - "integrity": "sha512-shJkRTSebXvsVqk56I+lkb2latjBs8I+pc2TzWc545y2iFnSjm7Wg0QMh+ZWcdSLQyGEau5jI8ocnmkyTgr9YQ==", + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", + "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=", "dev": true }, "ms": { @@ -8170,13 +9219,53 @@ } } }, - "nan": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", - "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", - "dev": true, - "optional": true - }, + "nan": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", + "dev": true, + "requires": { + "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-odd": "^2.0.0", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -8196,13 +9285,10 @@ "dev": true }, "nested-error-stacks": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz", - "integrity": "sha1-GfYZWRUZ8JZ2mlupqG5u7sgjw88=", - "dev": true, - "requires": { - "inherits": "~2.0.1" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz", + "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==", + "dev": true }, "next-tick": { "version": "1.0.0", @@ -8221,9 +9307,9 @@ } }, "nise": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.3.3.tgz", - "integrity": "sha512-v1J/FLUB9PfGqZLGDBhQqODkbLotP0WtLo9R4EJY2PPu5f5Xg4o0rA8FDlmrjFSv9vBBKcfnOSpfYYuu5RTHqg==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.2.tgz", + "integrity": "sha512-BxH/DxoQYYdhKgVAfqVy4pzXRZELHOIewzoesxpjYvpU+7YOalQhGNPf7wAx8pLrTNPrHRDlLOkAl8UI0ZpXjw==", "dev": true, "requires": { "@sinonjs/formatio": "^2.0.0", @@ -8234,9 +9320,9 @@ } }, "nock": { - "version": "9.2.6", - "resolved": "https://registry.npmjs.org/nock/-/nock-9.2.6.tgz", - "integrity": "sha512-loyWSNToPH416mENYcqN/ORNwJvfMs+n1+kk9HS3zO/Eb/ci3TZqoNIWp5oYW9VIFh18jXHxnzYSsrXvA63RYA==", + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/nock/-/nock-9.3.3.tgz", + "integrity": "sha512-FBgnx25er2ly7KBr0Est5F0z5g+lnyr6a72vZI1KMi7nTL4ojU6XpFhlrfw6CXRdnT2FA5i8exHiT1uVNUM1qA==", "dev": true, "requires": { "chai": "^4.1.2", @@ -8323,9 +9409,9 @@ "dev": true }, "nyc": { - "version": "11.8.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.8.0.tgz", - "integrity": "sha512-PUFq1PSsx5OinSk5g5aaZygcDdI3QQT5XUlbR9QRMihtMS6w0Gm8xj4BxmKeeAlpQXC5M2DIhH16Y+KejceivQ==", + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-12.0.2.tgz", + "integrity": "sha1-ikpO1pCWbBHsWH/4fuoMEsl0upk=", "dev": true, "requires": { "archy": "^1.0.0", @@ -8338,12 +9424,12 @@ "find-up": "^2.1.0", "foreground-child": "^1.5.3", "glob": "^7.0.6", - "istanbul-lib-coverage": "^1.1.2", + "istanbul-lib-coverage": "^1.2.0", "istanbul-lib-hook": "^1.1.0", - "istanbul-lib-instrument": "^1.10.0", + "istanbul-lib-instrument": "^2.1.0", "istanbul-lib-report": "^1.1.3", - "istanbul-lib-source-maps": "^1.2.3", - "istanbul-reports": "^1.4.0", + "istanbul-lib-source-maps": "^1.2.5", + "istanbul-reports": "^1.4.1", "md5-hex": "^1.2.0", "merge-source-map": "^1.1.0", "micromatch": "^3.1.10", @@ -8375,15 +9461,9 @@ "dev": true }, "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "append-transform": { @@ -8410,7 +9490,7 @@ "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=", "dev": true }, "arr-union": { @@ -8449,100 +9529,6 @@ "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", "dev": true }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "dev": true, - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -8552,7 +9538,7 @@ "base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", "dev": true, "requires": { "cache-base": "^1.0.1", @@ -8576,7 +9562,7 @@ "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "dev": true, "requires": { "kind-of": "^6.0.0" @@ -8585,7 +9571,7 @@ "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "dev": true, "requires": { "kind-of": "^6.0.0" @@ -8594,7 +9580,7 @@ "is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", @@ -8602,16 +9588,10 @@ "kind-of": "^6.0.2" } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", "dev": true } } @@ -8619,7 +9599,7 @@ "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", "dev": true, "requires": { "balanced-match": "^1.0.0", @@ -8629,7 +9609,7 @@ "braces": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", "dev": true, "requires": { "arr-flatten": "^1.1.0", @@ -8664,7 +9644,7 @@ "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", "dev": true, "requires": { "collection-visit": "^1.0.0", @@ -8676,14 +9656,6 @@ "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } } }, "caching-transform": { @@ -8715,23 +9687,10 @@ "lazy-cache": "^1.0.3" } }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", "dev": true, "requires": { "arr-union": "^3.1.0", @@ -8748,12 +9707,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true } } }, @@ -8824,12 +9777,6 @@ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true }, - "core-js": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.6.tgz", - "integrity": "sha512-lQUVfQi0aLix2xpyjrrJEvfuYCqPc/HwmTKsC/VNf8q0zsjX7SQZtp4+oRONN5Tsur9GDETPjj+Ub2iDiGZfSQ==", - "dev": true - }, "cross-spawn": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", @@ -8841,9 +9788,9 @@ } }, "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", "dev": true, "requires": { "ms": "2.0.0" @@ -8879,7 +9826,7 @@ "define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", "dev": true, "requires": { "is-descriptor": "^1.0.2", @@ -8889,7 +9836,7 @@ "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "dev": true, "requires": { "kind-of": "^6.0.0" @@ -8898,7 +9845,7 @@ "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "dev": true, "requires": { "kind-of": "^6.0.0" @@ -8907,7 +9854,7 @@ "is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", @@ -8915,29 +9862,14 @@ "kind-of": "^6.0.2" } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", "dev": true } } }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, "error-ex": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", @@ -8947,18 +9879,6 @@ "is-arrayish": "^0.2.1" } }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true - }, "execa": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", @@ -9002,6 +9922,15 @@ "to-regex": "^3.0.1" }, "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", @@ -9035,7 +9964,7 @@ "is-extendable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", "dev": true, "requires": { "is-plain-object": "^2.0.4" @@ -9046,7 +9975,7 @@ "extglob": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", "dev": true, "requires": { "array-unique": "^0.3.2", @@ -9080,7 +10009,7 @@ "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "dev": true, "requires": { "kind-of": "^6.0.0" @@ -9089,7 +10018,7 @@ "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "dev": true, "requires": { "kind-of": "^6.0.0" @@ -9098,7 +10027,7 @@ "is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", @@ -9109,7 +10038,7 @@ "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", "dev": true } } @@ -9209,7 +10138,7 @@ "glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -9220,12 +10149,6 @@ "path-is-absolute": "^1.0.0" } }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, "graceful-fs": { "version": "4.1.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", @@ -9255,21 +10178,6 @@ } } }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -9279,14 +10187,6 @@ "get-value": "^2.0.6", "has-values": "^1.0.0", "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } } }, "has-values": { @@ -9299,26 +10199,6 @@ "kind-of": "^4.0.0" }, "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", @@ -9333,7 +10213,7 @@ "hosted-git-info": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", - "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", + "integrity": "sha1-IyNbKasjDFdqqw1PE/wEawsDgiI=", "dev": true }, "imurmurhash": { @@ -9358,15 +10238,6 @@ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "requires": { - "loose-envify": "^1.0.0" - } - }, "invert-kv": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", @@ -9391,7 +10262,7 @@ "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", "dev": true }, "is-builtin-module": { @@ -9415,7 +10286,7 @@ "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", @@ -9426,7 +10297,7 @@ "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", "dev": true } } @@ -9437,15 +10308,6 @@ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", @@ -9464,7 +10326,7 @@ "is-odd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", - "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "integrity": "sha1-dkZiRnH9fqVYzNmieVGC8pWPGyQ=", "dev": true, "requires": { "is-number": "^4.0.0" @@ -9473,7 +10335,7 @@ "is-number": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "integrity": "sha1-ACbjf1RU1z41bf5lZGmYZ8an8P8=", "dev": true } } @@ -9481,18 +10343,10 @@ "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", "dev": true, "requires": { "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } } }, "is-stream": { @@ -9510,7 +10364,7 @@ "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=", "dev": true }, "isarray": { @@ -9534,37 +10388,22 @@ "istanbul-lib-coverage": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", - "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==", + "integrity": "sha1-99jy5CuX43/nlhFMsPnWi146Q0E=", "dev": true }, "istanbul-lib-hook": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", - "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", + "integrity": "sha1-hTjZcDcss3FtU+VVI91UtVeo2Js=", "dev": true, "requires": { "append-transform": "^0.4.0" } }, - "istanbul-lib-instrument": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", - "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", - "dev": true, - "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.2.0", - "semver": "^5.3.0" - } - }, "istanbul-lib-report": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz", - "integrity": "sha512-D4jVbMDtT2dPmloPJS/rmeP626N5Pr3Rp+SovrPn1+zPChGHcggd/0sL29jnbm4oK9W0wHjCRsdch9oLd7cm6g==", + "integrity": "sha1-LfEhiMD6d5kMDSF20tC6M5QYglk=", "dev": true, "requires": { "istanbul-lib-coverage": "^1.1.2", @@ -9573,6 +10412,12 @@ "supports-color": "^3.1.2" }, "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, "supports-color": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", @@ -9585,50 +10430,27 @@ } }, "istanbul-lib-source-maps": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz", - "integrity": "sha512-fDa0hwU/5sDXwAklXgAoCJCOsFsBplVQ6WBldz5UwaqOzmDhUK4nfuR7/G//G2lERlblUNJB8P6e8cXq3a7MlA==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.5.tgz", + "integrity": "sha1-/+a+Tnq4bTYD5CkNVJkLFFBvybE=", "dev": true, "requires": { "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.1.2", + "istanbul-lib-coverage": "^1.2.0", "mkdirp": "^0.5.1", "rimraf": "^2.6.1", "source-map": "^0.5.3" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } } }, "istanbul-reports": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.4.0.tgz", - "integrity": "sha512-OPzVo1fPZ2H+owr8q/LYKLD+vquv9Pj4F+dj808MdHbuQLD7S4ACRjcX+0Tne5Vxt2lxXvdZaL7v+FOOAV281w==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.4.1.tgz", + "integrity": "sha1-Ty6OkoqnoF0dpsQn1AmLJlXsczQ=", "dev": true, "requires": { "handlebars": "^4.0.3" } }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -9685,31 +10507,16 @@ } } }, - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - }, "longest": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", "dev": true }, - "loose-envify": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", - "dev": true, - "requires": { - "js-tokens": "^3.0.0" - } - }, "lru-cache": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "integrity": "sha1-oRdc80lt/IQ2wVbDNLSVWZK85pw=", "dev": true, "requires": { "pseudomap": "^1.0.2", @@ -9758,7 +10565,7 @@ "merge-source-map": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "integrity": "sha1-L93n5gIJOfcJBqaPLXrmheTIxkY=", "dev": true, "requires": { "source-map": "^0.6.1" @@ -9767,7 +10574,7 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", "dev": true } } @@ -9775,7 +10582,7 @@ "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", "dev": true, "requires": { "arr-diff": "^4.0.0", @@ -9796,7 +10603,7 @@ "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", "dev": true } } @@ -9804,13 +10611,13 @@ "mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=", "dev": true }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", "dev": true, "requires": { "brace-expansion": "^1.1.7" @@ -9825,7 +10632,7 @@ "mixin-deep": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "integrity": "sha1-pJ5yaNzhoNlpjkUybFYm3zVD0P4=", "dev": true, "requires": { "for-in": "^1.0.2", @@ -9835,7 +10642,7 @@ "is-extendable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", "dev": true, "requires": { "is-plain-object": "^2.0.4" @@ -9861,7 +10668,7 @@ "nanomatch": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", - "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", + "integrity": "sha1-h59xUMstq3pHElkGbBBO7m4Pp8I=", "dev": true, "requires": { "arr-diff": "^4.0.0", @@ -9878,22 +10685,10 @@ "to-regex": "^3.0.1" }, "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", "dev": true } } @@ -9901,7 +10696,7 @@ "normalize-package-data": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "integrity": "sha1-EvlaMH1YNSB1oEkHuErIvpisAS8=", "dev": true, "requires": { "hosted-git-info": "^2.1.4", @@ -9960,31 +10755,15 @@ "dev": true, "requires": { "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } } }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } + "dev": true, + "requires": { + "isobject": "^3.0.1" } }, "once": { @@ -10015,7 +10794,7 @@ "os-locale": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "integrity": "sha1-QrwpAKa1uL0XN2yOiCtlr8zyS/I=", "dev": true, "requires": { "execa": "^0.7.0", @@ -10032,7 +10811,7 @@ "p-limit": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "integrity": "sha1-DpK2vty1nwIsE9DxlJ3ILRWQnxw=", "dev": true, "requires": { "p-try": "^1.0.0" @@ -10193,16 +10972,10 @@ } } }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, "regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", "dev": true, "requires": { "extend-shallow": "^3.0.2", @@ -10221,15 +10994,6 @@ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -10257,7 +11021,7 @@ "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=", "dev": true }, "right-align": { @@ -10273,558 +11037,152 @@ "rimraf": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "integrity": "sha1-LtgVDSShbqhlHm1u8PR8QVjOejY=", "dev": true, "requires": { "glob": "^7.0.5" } - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "slide": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", - "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", - "dev": true, - "requires": { - "atob": "^2.0.0", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "spawn-wrap": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", - "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", - "dev": true, - "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" - } - }, - "spdx-correct": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", - "dev": true - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } + "ret": "~0.1.10" } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha1-3Eu8emyp2Rbe5dQ1FvAJK1j3uKs=", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha1-ca5KiPD+77v1LR6mBPP7MV67YnQ=", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "is-extendable": "^0.1.0" } } } }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "is-utf8": "^0.2.0" + "shebang-regex": "^1.0.0" } }, - "strip-eof": { + "shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, - "test-exclude": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", - "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", + "slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", "dev": true, "requires": { - "arrify": "^1.0.1", - "micromatch": "^3.1.8", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { - "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "ms": "2.0.0" } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } + "is-descriptor": "^0.1.0" } }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "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.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "is-extendable": "^0.1.0" } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "dev": true, "requires": { "kind-of": "^6.0.0" @@ -10833,7 +11191,7 @@ "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "dev": true, "requires": { "kind-of": "^6.0.0" @@ -10842,75 +11200,179 @@ "is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha1-cuLMNAlVQ+Q7LGKyxMENSpBU8lk=", + "dev": true, + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "spawn-wrap": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", + "integrity": "sha1-z/WOc6giRhe2Vhq9wyWG6gyCJIw=", + "dev": true, + "requires": { + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" + } + }, + "spdx-correct": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha1-BaW01xU6GVvJLDxCW2nzsqlSTII=", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha1-LHrmEFbHFKW5ubKyr30xHvXHj+k=", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha1-enzShHDMbToc/m1miG9rxDDTrIc=", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" } } } }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, + "test-exclude": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", + "integrity": "sha1-36Ii8DSAvKaSB8pyizfXS0X3JPo=", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "micromatch": "^3.1.8", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" + } + }, "to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", @@ -10923,7 +11385,7 @@ "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", "dev": true, "requires": { "define-property": "^2.0.2", @@ -10940,25 +11402,8 @@ "requires": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - } } }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, "uglify-js": { "version": "2.8.29", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", @@ -11065,12 +11510,6 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true } } }, @@ -11083,7 +11522,7 @@ "use": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", - "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "integrity": "sha1-FHFr8D/f79AwQK71jYtLhfOnxUQ=", "dev": true, "requires": { "kind-of": "^6.0.2" @@ -11092,7 +11531,7 @@ "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", "dev": true } } @@ -11100,7 +11539,7 @@ "validate-npm-package-license": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", + "integrity": "sha1-gWQ7y+8b3+zUYjeT3EZIlIupgzg=", "dev": true, "requires": { "spdx-correct": "^3.0.0", @@ -11108,9 +11547,9 @@ } }, "which": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", "dev": true, "requires": { "isexe": "^2.0.0" @@ -11145,6 +11584,12 @@ "strip-ansi": "^3.0.1" }, "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", @@ -11164,6 +11609,15 @@ "is-fullwidth-code-point": "^1.0.0", "strip-ansi": "^3.0.0" } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } } } }, @@ -11199,7 +11653,7 @@ "yargs": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", - "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", + "integrity": "sha1-kLhpk07W6HERXqL/WLA/RyTtLXc=", "dev": true, "requires": { "cliui": "^4.0.0", @@ -11216,12 +11670,6 @@ "yargs-parser": "^9.0.2" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, "camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", @@ -11231,7 +11679,7 @@ "cliui": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "integrity": "sha1-NIQi2+gtgAswIu709qwQvy5NG0k=", "dev": true, "requires": { "string-width": "^2.1.1", @@ -11239,15 +11687,6 @@ "wrap-ansi": "^2.0.0" } }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, "yargs-parser": { "version": "9.0.2", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", @@ -11262,7 +11701,7 @@ "yargs-parser": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", - "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", + "integrity": "sha1-8TdqM7Ziml0GN4KUTacyYx6WaVA=", "dev": true, "requires": { "camelcase": "^4.1.0" @@ -11289,12 +11728,51 @@ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, "object-keys": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", - "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", + "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", "dev": true }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "object.omit": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", @@ -11305,6 +11783,23 @@ "is-extendable": "^0.1.1" } }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "observable-to-promise": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/observable-to-promise/-/observable-to-promise-0.5.0.tgz", @@ -11462,9 +11957,9 @@ "dev": true }, "p-limit": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { "p-try": "^1.0.0" @@ -11572,6 +12067,18 @@ "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", "dev": true }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -11754,10 +12261,16 @@ "joi": "13.x.x" } }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, "postcss": { - "version": "6.0.22", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.22.tgz", - "integrity": "sha512-Toc9lLoUASwGqxBSJGTVcOQiDqjK+Z2XlWBg+IgYwQMY9vA2f7iMpXVc1GpPcfTSyM5lkxNo0oDwDRO+wm7XHA==", + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { "chalk": "^2.4.1", @@ -11774,53 +12287,45 @@ } }, "power-assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/power-assert/-/power-assert-1.5.0.tgz", - "integrity": "sha512-WaWSw+Ts283o6dzxW1BxIxoaHok7aSSGx4SaR6dW62Pk31ynv9DERDieuZpPYv5XaJ+H+zdcOaJQ+PvlasAOVw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/power-assert/-/power-assert-1.6.0.tgz", + "integrity": "sha512-nDb6a+p2C7Wj8Y2zmFtLpuv+xobXz4+bzT5s7dr0nn71tLozn7nRMQqzwbefzwZN5qOm0N7Cxhw4kXP75xboKA==", "dev": true, "requires": { "define-properties": "^1.1.2", - "empower": "^1.2.3", - "power-assert-formatter": "^1.3.1", + "empower": "^1.3.0", + "power-assert-formatter": "^1.4.1", "universal-deep-strict-equal": "^1.2.1", "xtend": "^4.0.0" } }, "power-assert-context-formatter": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/power-assert-context-formatter/-/power-assert-context-formatter-1.1.1.tgz", - "integrity": "sha1-7bo1LT7YpgMRTWZyZazOYNaJzN8=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/power-assert-context-formatter/-/power-assert-context-formatter-1.2.0.tgz", + "integrity": "sha512-HLNEW8Bin+BFCpk/zbyKwkEu9W8/zThIStxGo7weYcFkKgMuGCHUJhvJeBGXDZf0Qm2xis4pbnnciGZiX0EpSg==", "dev": true, "requires": { "core-js": "^2.0.0", - "power-assert-context-traversal": "^1.1.1" + "power-assert-context-traversal": "^1.2.0" } }, "power-assert-context-reducer-ast": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/power-assert-context-reducer-ast/-/power-assert-context-reducer-ast-1.1.2.tgz", - "integrity": "sha1-SEqZ4m9Jc/+IMuXFzHVnAuYJQXQ=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/power-assert-context-reducer-ast/-/power-assert-context-reducer-ast-1.2.0.tgz", + "integrity": "sha512-EgOxmZ/Lb7tw4EwSKX7ZnfC0P/qRZFEG28dx/690qvhmOJ6hgThYFm5TUWANDLK5NiNKlPBi5WekVGd2+5wPrw==", "dev": true, "requires": { - "acorn": "^4.0.0", + "acorn": "^5.0.0", "acorn-es7-plugin": "^1.0.12", "core-js": "^2.0.0", "espurify": "^1.6.0", "estraverse": "^4.2.0" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - } } }, "power-assert-context-traversal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/power-assert-context-traversal/-/power-assert-context-traversal-1.1.1.tgz", - "integrity": "sha1-iMq8oNE7Y1nwfT0+ivppkmRXftk=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/power-assert-context-traversal/-/power-assert-context-traversal-1.2.0.tgz", + "integrity": "sha512-NFoHU6g2umNajiP2l4qb0BRWD773Aw9uWdWYH9EQsVwIZnog5bd2YYLFCVvaxWpwNzWeEfZIon2xtyc63026pQ==", "dev": true, "requires": { "core-js": "^2.0.0", @@ -11843,13 +12348,13 @@ } }, "power-assert-renderer-assertion": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/power-assert-renderer-assertion/-/power-assert-renderer-assertion-1.1.1.tgz", - "integrity": "sha1-y/wOd+AIao+Wrz8djme57n4ozpg=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/power-assert-renderer-assertion/-/power-assert-renderer-assertion-1.2.0.tgz", + "integrity": "sha512-3F7Q1ZLmV2ZCQv7aV7NJLNK9G7QsostrhOU7U0RhEQS/0vhEqrRg2jEJl1jtUL4ZyL2dXUlaaqrmPv5r9kRvIg==", "dev": true, "requires": { "power-assert-renderer-base": "^1.1.1", - "power-assert-util-string-width": "^1.1.1" + "power-assert-util-string-width": "^1.2.0" } }, "power-assert-renderer-base": { @@ -11859,9 +12364,9 @@ "dev": true }, "power-assert-renderer-comparison": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/power-assert-renderer-comparison/-/power-assert-renderer-comparison-1.1.1.tgz", - "integrity": "sha1-10Odl9hRVr5OMKAPL7WnJRTOPAg=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/power-assert-renderer-comparison/-/power-assert-renderer-comparison-1.2.0.tgz", + "integrity": "sha512-7c3RKPDBKK4E3JqdPtYRE9cM8AyX4LC4yfTvvTYyx8zSqmT5kJnXwzR0yWQLOavACllZfwrAGQzFiXPc5sWa+g==", "dev": true, "requires": { "core-js": "^2.0.0", @@ -11872,33 +12377,33 @@ } }, "power-assert-renderer-diagram": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/power-assert-renderer-diagram/-/power-assert-renderer-diagram-1.1.2.tgz", - "integrity": "sha1-ZV+PcRk1qbbVQbhjJ2VHF8Y3qYY=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/power-assert-renderer-diagram/-/power-assert-renderer-diagram-1.2.0.tgz", + "integrity": "sha512-JZ6PC+DJPQqfU6dwSmpcoD7gNnb/5U77bU5KgNwPPa+i1Pxiz6UuDeM3EUBlhZ1HvH9tMjI60anqVyi5l2oNdg==", "dev": true, "requires": { "core-js": "^2.0.0", "power-assert-renderer-base": "^1.1.1", - "power-assert-util-string-width": "^1.1.1", + "power-assert-util-string-width": "^1.2.0", "stringifier": "^1.3.0" } }, "power-assert-renderer-file": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/power-assert-renderer-file/-/power-assert-renderer-file-1.1.1.tgz", - "integrity": "sha1-o34rvReMys0E5427eckv40kzxec=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/power-assert-renderer-file/-/power-assert-renderer-file-1.2.0.tgz", + "integrity": "sha512-/oaVrRbeOtGoyyd7e4IdLP/jIIUFJdqJtsYzP9/88R39CMnfF/S/rUc8ZQalENfUfQ/wQHu+XZYRMaCEZmEesg==", "dev": true, "requires": { "power-assert-renderer-base": "^1.1.1" } }, "power-assert-util-string-width": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/power-assert-util-string-width/-/power-assert-util-string-width-1.1.1.tgz", - "integrity": "sha1-vmWet5N/3S5smncmjar2S9W3xZI=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/power-assert-util-string-width/-/power-assert-util-string-width-1.2.0.tgz", + "integrity": "sha512-lX90G0igAW0iyORTILZ/QjZWsa1MZ6VVY3L0K86e2eKun3S4LKPH4xZIl8fdeMYLfOjkaszbNSzf1uugLeAm2A==", "dev": true, "requires": { - "eastasianwidth": "^0.1.1" + "eastasianwidth": "^0.2.0" } }, "prelude-ls": { @@ -11920,19 +12425,18 @@ "dev": true }, "prettier": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.12.1.tgz", - "integrity": "sha1-wa0g6APndJ+vkFpAnSNn4Gu+cyU=", + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.13.5.tgz", + "integrity": "sha512-4M90mfvLz6yRf2Dhzd+xPIE6b4xkI8nHMJhsSm9IlfG17g6wujrrm7+H1X8x52tC4cSNm6HmuhCUSNe6Hd5wfw==", "dev": true }, "pretty-ms": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-3.1.0.tgz", - "integrity": "sha1-6crJx2v27lL+lC3ZxsQhMVOxKIE=", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-3.2.0.tgz", + "integrity": "sha512-ZypexbfVUGTFxb0v+m1bUyy92DHe5SyYlnyY0msyms5zd3RwyvNgyxZZsXXgoyzlxjx5MiqtXUdhUfvQbe0A2Q==", "dev": true, "requires": { - "parse-ms": "^1.0.0", - "plur": "^2.1.2" + "parse-ms": "^1.0.0" }, "dependencies": { "parse-ms": { @@ -12074,12 +12578,12 @@ } }, "rc": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz", - "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "requires": { - "deep-extend": "^0.5.1", + "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" @@ -12182,6 +12686,16 @@ "is-equal-shallow": "^0.1.3" } }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, "regexpp": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", @@ -12370,6 +12884,12 @@ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "dev": true }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, "responselike": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", @@ -12380,9 +12900,9 @@ } }, "restify": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/restify/-/restify-7.2.0.tgz", - "integrity": "sha512-UXYtu437a5TSim0PgjCiccdUfQS/00VC9gDxqR2/GKaW19OtY3DYDg3HByCAnyO5GiL2y0pBI572wGcxZGP26A==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/restify/-/restify-7.2.1.tgz", + "integrity": "sha512-xygVfQn/FiyzSPNIiOlzos6+RVcmTTK/bN0/m4z6vQwUY1yXntAsXM8ckq6hMxYfkhZfbPMM5hvBf75B8zLE1g==", "dev": true, "requires": { "assert-plus": "^1.0.0", @@ -12391,7 +12911,7 @@ "dtrace-provider": "^0.8.1", "escape-regexp-component": "^1.0.2", "ewma": "^2.0.1", - "find-my-way": "^1.12.0", + "find-my-way": "^1.13.0", "formidable": "^1.2.1", "http-signature": "^1.2.0", "lodash": "^4.17.10", @@ -12409,6 +12929,12 @@ "verror": "^1.10.0" }, "dependencies": { + "lodash": { + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", + "dev": true + }, "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -12451,9 +12977,9 @@ "integrity": "sha512-jp4YlI0qyDFfXiXGhkCOliBN1G7fRH03Nqy8YdShzGqbY5/9S2x/IR6C88ls2DFkbWuL3ASkP7QD3pVrNpPgwQ==" }, "retry-request": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-3.3.1.tgz", - "integrity": "sha512-PjAmtWIxjNj4Co/6FRtBl8afRP3CxrrIAnUzb1dzydfROd+6xt7xAebFeskgQgkfFf8NmzrXIoaB3HxmswXyxw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-3.3.2.tgz", + "integrity": "sha512-WIiGp37XXDC6e7ku3LFoi7LCL/Gs9luGeeqvbPRb+Zl6OQMw4RCRfSaW+aLfE6lhz1R941UavE6Svl3Dm5xGIQ==", "requires": { "request": "^2.81.0", "through2": "^2.0.0" @@ -12503,20 +13029,12 @@ } }, "rxjs": { - "version": "5.5.10", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.10.tgz", - "integrity": "sha512-SRjimIDUHJkon+2hFo7xnvNC4ZEHGzCRwh9P7nzX3zPkCGFEg/tuElrNR7L/rZMagnK2JeH2jQwPRpmyXyLB6A==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.1.tgz", + "integrity": "sha512-OwMxHxmnmHTUpgO+V7dZChf3Tixf4ih95cmXjzzadULziVl/FKhHScGLj4goEw9weePVOH2Q0+GcCBUhKCZc/g==", "dev": true, "requires": { - "symbol-observable": "1.0.1" - }, - "dependencies": { - "symbol-observable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", - "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", - "dev": true - } + "tslib": "^1.9.0" } }, "safe-buffer": { @@ -12525,9 +13043,9 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "safe-json-stringify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.1.0.tgz", - "integrity": "sha512-EzBtUaFH9bHYPc69wqjp0efJI/DPNHdFbGE3uIMn4sVbO0zx8vZ8cG4WKxQfOpUOKsQyGBiT2mTqnCw+6nLswA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", + "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", "dev": true, "optional": true }, @@ -12543,8 +13061,7 @@ "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "samsam": { "version": "1.3.0", @@ -12591,6 +13108,12 @@ "semver": "^5.0.3" } }, + "semver-store": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/semver-store/-/semver-store-0.2.2.tgz", + "integrity": "sha512-+cXXIIkMjw1O6MJFlsQgHokDtz3PeCfY2YZVP3D6LmKjKotUOzAeRYGCjEPiR3QivM7Jkacme+66EqwptG1HMg==", + "dev": true + }, "send": { "version": "0.16.2", "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", @@ -12665,6 +13188,29 @@ "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", "dev": true }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, "setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", @@ -12738,6 +13284,123 @@ "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", "dev": true }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + } + }, "sort-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", @@ -12753,6 +13416,19 @@ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "dev": true, + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, "source-map-support": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.6.tgz", @@ -12771,6 +13447,12 @@ } } }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, "spdx-compare": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/spdx-compare/-/spdx-compare-1.0.0.tgz", @@ -12890,6 +13572,15 @@ "is-stream-ended": "^0.1.4" } }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -12907,9 +13598,9 @@ } }, "sshpk": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz", - "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=", + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", + "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -12918,6 +13609,7 @@ "ecc-jsbn": "~0.1.1", "getpass": "^0.1.1", "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", "tweetnacl": "~0.14.0" } }, @@ -12941,6 +13633,27 @@ "joi": "13.x.x" } }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -13239,6 +13952,48 @@ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", "dev": true }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + } + } + }, "topo": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.0.tgz", @@ -13281,9 +14036,9 @@ "dev": true }, "tslib": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.1.tgz", - "integrity": "sha512-avfPS28HmGLLc2o4elcc2EIq2FcH++Yo5YxpBZi9Yw93BCTGFthI4HPE4Rpep6vSYQaK8e69PelM44tPj+RaQg==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.2.tgz", + "integrity": "sha512-AVP5Xol3WivEr7hnssHDsaM+lVrVXWUvd1cfXTRkTj80b//6g2wIFEH6hZG0muGZRnHGrfttpdzRk3YlBkWjKw==", "dev": true }, "tslint": { @@ -13307,9 +14062,9 @@ }, "dependencies": { "resolve": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", - "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", + "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "dev": true, "requires": { "path-parse": "^1.0.5" @@ -13378,9 +14133,9 @@ "dev": true }, "typescript": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.8.3.tgz", - "integrity": "sha512-K7g15Bb6Ra4lKf7Iq2l/I5/En+hLIHmxWZGq3D4DIRNFxMNV6j2SHSvDOqs2tGd4UvD/fJvrwopzQXjLrT7Itw==", + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", + "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", "dev": true }, "uglify-js": { @@ -13453,6 +14208,41 @@ } } }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } + } + }, "unique-string": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", @@ -13485,9 +14275,9 @@ } }, "universalify": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", - "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true }, "unpipe": { @@ -13496,6 +14286,52 @@ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", "dev": true }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, "unzip-response": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", @@ -13520,6 +14356,12 @@ "xdg-basedir": "^3.0.0" } }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, "url-parse-lax": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", @@ -13541,6 +14383,23 @@ "integrity": "sha1-iS/pWWCAXoVRnxzUOJ8stMu3ZS8=", "dev": true }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -13643,9 +14502,9 @@ "dev": true }, "which": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -13778,9 +14637,9 @@ } }, "write-pkg": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-3.1.0.tgz", - "integrity": "sha1-AwqZlMyZk9JbTnWp8aGSNgcpHOk=", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-3.2.0.tgz", + "integrity": "sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw==", "dev": true, "requires": { "sort-keys": "^2.0.0", diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 5f9e2fbb018..7c0e91e8bd7 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -100,7 +100,7 @@ "express-serve-static-core": "^0.1.1", "extend": "^3.0.1", "glob": "^7.1.2", - "gts": "^0.6.0", + "gts": "^0.7.1", "hapi": "^17.4.0", "ink-docstrap": "^1.3.2", "intelli-espower-loader": "^1.0.1", @@ -129,6 +129,6 @@ "rimraf": "^2.6.2", "source-map-support": "^0.5.6", "tmp": "0.0.33", - "typescript": "~2.8.3" + "typescript": "~2.9.2" } } diff --git a/handwritten/error-reporting/system-test/test-install.ts b/handwritten/error-reporting/system-test/test-install.ts index 284170ca0e7..8f9de8d1c9a 100644 --- a/handwritten/error-reporting/system-test/test-install.ts +++ b/handwritten/error-reporting/system-test/test-install.ts @@ -407,7 +407,7 @@ describe('Installation', () => { if (installDir) { await rimrafP(installDir); } - if (this.currentTest.state === 'failed') { + if (this.currentTest!.state === 'failed') { console.log(text); } }); From f35b5ad39e09a91a3d8c776f1d342b80f6744cc1 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Thu, 21 Jun 2018 20:37:50 -0700 Subject: [PATCH 110/527] fix: repair linting issues (#142) --- handwritten/error-reporting/.circleci/config.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/handwritten/error-reporting/.circleci/config.yml b/handwritten/error-reporting/.circleci/config.yml index a6e772b48a2..b57a2be4399 100644 --- a/handwritten/error-reporting/.circleci/config.yml +++ b/handwritten/error-reporting/.circleci/config.yml @@ -92,9 +92,7 @@ jobs: fi - run: &npm_install_and_link name: Install and link the module. - command: | - npm install - npm link + command: npm install environment: NPM_CONFIG_PREFIX: /home/node/.npm-global - run: @@ -127,12 +125,12 @@ jobs: name: Link the module being tested to the samples. command: | cd samples/ - npm link @google-cloud/error-reporting + npm link ../ npm install cd .. environment: NPM_CONFIG_PREFIX: /home/node/.npm-global - - run: + - run: name: Run linting. command: npm run lint environment: From 50b7b283a742ad7885570f45eb53fec14996345f Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Sat, 23 Jun 2018 12:35:57 -0700 Subject: [PATCH 111/527] chore: update `@google-cloud/common` to `0.20.0` (#139) --- .../error-reporting/.circleci/config.yml | 25 +- handwritten/error-reporting/package-lock.json | 6628 ++++++++--------- handwritten/error-reporting/package.json | 2 +- handwritten/error-reporting/src/logger.ts | 12 +- .../system-test/test-install.ts | 2 +- 5 files changed, 3071 insertions(+), 3598 deletions(-) diff --git a/handwritten/error-reporting/.circleci/config.yml b/handwritten/error-reporting/.circleci/config.yml index b57a2be4399..985b292a732 100644 --- a/handwritten/error-reporting/.circleci/config.yml +++ b/handwritten/error-reporting/.circleci/config.yml @@ -123,18 +123,19 @@ jobs: - run: *npm_install_and_link - run: &samples_npm_install_and_link name: Link the module being tested to the samples. - command: | - cd samples/ - npm link ../ - npm install - cd .. - environment: - NPM_CONFIG_PREFIX: /home/node/.npm-global - - run: - name: Run linting. - command: npm run lint - environment: - NPM_CONFIG_PREFIX: /home/node/.npm-global + command: echo 'Disabled' +# command: | +# cd samples/ +# npm link ../ +# npm install +# cd .. +# environment: +# NPM_CONFIG_PREFIX: /home/node/.npm-global +# - run: +# name: Run linting. +# command: npm run lint +# environment: +# NPM_CONFIG_PREFIX: /home/node/.npm-global docs: docker: - image: 'node:8' diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index 35ee59288ca..d8b3ce28dc7 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -16,18 +16,18 @@ "integrity": "sha512-oWqTnIGXW3k72UFidXzW0ONlO7hnO9x02S/QReJ7NBGeiBH9cUHY9+EfV6C8PXC6YJH++WrliEq03wMSJGNZFg==", "dev": true, "requires": { - "babel-plugin-check-es2015-constants": "^6.8.0", - "babel-plugin-syntax-trailing-function-commas": "^6.20.0", - "babel-plugin-transform-async-to-generator": "^6.16.0", - "babel-plugin-transform-es2015-destructuring": "^6.19.0", - "babel-plugin-transform-es2015-function-name": "^6.9.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.18.0", - "babel-plugin-transform-es2015-parameters": "^6.21.0", - "babel-plugin-transform-es2015-spread": "^6.8.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.8.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.11.0", - "babel-plugin-transform-exponentiation-operator": "^6.8.0", - "package-hash": "^1.2.0" + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-to-generator": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-exponentiation-operator": "6.24.1", + "package-hash": "1.2.0" }, "dependencies": { "md5-hex": { @@ -36,7 +36,7 @@ "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "dev": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "package-hash": { @@ -45,7 +45,7 @@ "integrity": "sha1-AD5WzVe3NqbtYRTMK4FUJnJ3DkQ=", "dev": true, "requires": { - "md5-hex": "^1.3.0" + "md5-hex": "1.3.0" } } } @@ -56,8 +56,8 @@ "integrity": "sha1-ze0RlqjY2TgaUJJAq5LpGl7Aafc=", "dev": true, "requires": { - "@ava/babel-plugin-throws-helper": "^2.0.0", - "babel-plugin-espower": "^2.3.2" + "@ava/babel-plugin-throws-helper": "2.0.0", + "babel-plugin-espower": "2.4.0" } }, "@ava/write-file-atomic": { @@ -66,9 +66,9 @@ "integrity": "sha512-BTNB3nGbEfJT+69wuqXFr/bQH7Vr7ihx2xGOMNqPgDGhwspoZhiWumDDZNjBy7AScmqS5CELIOGtPVXESyrnDA==", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" } }, "@babel/code-frame": { @@ -87,10 +87,10 @@ "dev": true, "requires": { "@babel/types": "7.0.0-beta.49", - "jsesc": "^2.5.1", - "lodash": "^4.17.5", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" + "jsesc": "2.5.1", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" }, "dependencies": { "jsesc": { @@ -136,9 +136,9 @@ "integrity": "sha1-lr3GtD4TSCASumaRsQGEktOWIsw=", "dev": true, "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^3.0.0" + "chalk": "2.4.1", + "esutils": "2.0.2", + "js-tokens": "3.0.2" } }, "@babel/parser": { @@ -156,7 +156,7 @@ "@babel/code-frame": "7.0.0-beta.49", "@babel/parser": "7.0.0-beta.49", "@babel/types": "7.0.0-beta.49", - "lodash": "^4.17.5" + "lodash": "4.17.5" } }, "@babel/traverse": { @@ -171,10 +171,10 @@ "@babel/helper-split-export-declaration": "7.0.0-beta.49", "@babel/parser": "7.0.0-beta.49", "@babel/types": "7.0.0-beta.49", - "debug": "^3.1.0", - "globals": "^11.1.0", - "invariant": "^2.2.0", - "lodash": "^4.17.5" + "debug": "3.1.0", + "globals": "11.7.0", + "invariant": "2.2.4", + "lodash": "4.17.5" }, "dependencies": { "globals": { @@ -191,9 +191,9 @@ "integrity": "sha1-t+Oxw/TUz+Eb34yJ8e/V4WF7h6Y=", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.5", - "to-fast-properties": "^2.0.0" + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "2.0.0" }, "dependencies": { "to-fast-properties": { @@ -210,28 +210,29 @@ "integrity": "sha512-htrsRaQX8Iixlsek8zQU7tE8wcsTQJ5UhZkSPEA8slCDAisKpC/2VgU/ucPn32M5/LjGGXRaUEKvEw1Wiuu4zQ==", "dev": true, "requires": { - "arrify": "^1.0.1" + "arrify": "1.0.1" } }, "@google-cloud/common": { - "version": "0.18.9", - "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.18.9.tgz", - "integrity": "sha512-P5jtyfOCF84fzVcT/36XKARRrbCOqozYBliDd7btQ96GuEqKzjPVjxeE4EzdeRQ8QChBpHLrbONsU63Jprw73A==", - "requires": { - "@types/duplexify": "^3.5.0", - "@types/request": "^2.47.0", - "arrify": "^1.0.1", - "axios": "^0.18.0", - "duplexify": "^3.5.4", - "ent": "^2.2.0", - "extend": "^3.0.1", - "google-auth-library": "^1.4.0", - "is": "^3.2.1", - "pify": "^3.0.0", - "request": "^2.85.0", - "retry-request": "^3.3.1", - "split-array-stream": "^2.0.0", - "stream-events": "^1.0.4" + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.20.1.tgz", + "integrity": "sha512-LJB7CoNXEXY0mDWtF8E2cl3Y0kuMQ3wjH9Xr+Y7vH5gHgN82dDh1BMUOizRf9oXQFDWUgGERD5SdfBcjUhHmwA==", + "requires": { + "@types/duplexify": "3.5.0", + "@types/request": "2.47.1", + "arrify": "1.0.1", + "axios": "0.18.0", + "duplexify": "3.6.0", + "ent": "2.2.0", + "extend": "3.0.1", + "google-auth-library": "1.6.1", + "is": "3.2.1", + "pify": "3.0.0", + "request": "2.87.0", + "retry-request": "3.3.2", + "split-array-stream": "2.0.0", + "stream-events": "1.0.4", + "through2": "2.0.3" } }, "@google-cloud/nodejs-repo-tools": { @@ -248,7 +249,7 @@ "lodash": "4.17.5", "nyc": "11.4.1", "proxyquire": "1.8.0", - "semver": "^5.5.0", + "semver": "5.5.0", "sinon": "4.3.0", "string": "3.3.3", "supertest": "3.0.0", @@ -262,297 +263,268 @@ "integrity": "sha512-5eCZpvaksFVjP2rt1r60cfXmt3MUtsQDw8bAzNqNEr4WLvUMLgiVENMf/B9bE9YAX0mGVvaGA3v9IS9ekNqB1Q==", "dev": true, "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^1.0.0", - "convert-source-map": "^1.3.0", - "debug-log": "^1.0.1", - "default-require-extensions": "^1.0.0", - "find-cache-dir": "^0.1.1", - "find-up": "^2.1.0", - "foreground-child": "^1.5.3", - "glob": "^7.0.6", - "istanbul-lib-coverage": "^1.1.1", - "istanbul-lib-hook": "^1.1.0", - "istanbul-lib-instrument": "^1.9.1", - "istanbul-lib-report": "^1.1.2", - "istanbul-lib-source-maps": "^1.2.2", - "istanbul-reports": "^1.1.3", - "md5-hex": "^1.2.0", - "merge-source-map": "^1.0.2", - "micromatch": "^2.3.11", - "mkdirp": "^0.5.0", - "resolve-from": "^2.0.0", - "rimraf": "^2.5.4", - "signal-exit": "^3.0.1", - "spawn-wrap": "^1.4.2", - "test-exclude": "^4.1.1", - "yargs": "^10.0.3", - "yargs-parser": "^8.0.0" + "archy": "1.0.0", + "arrify": "1.0.1", + "caching-transform": "1.0.1", + "convert-source-map": "1.5.1", + "debug-log": "1.0.1", + "default-require-extensions": "1.0.0", + "find-cache-dir": "0.1.1", + "find-up": "2.1.0", + "foreground-child": "1.5.6", + "glob": "7.1.2", + "istanbul-lib-coverage": "1.1.1", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "1.9.1", + "istanbul-lib-report": "1.1.2", + "istanbul-lib-source-maps": "1.2.2", + "istanbul-reports": "1.1.3", + "md5-hex": "1.3.0", + "merge-source-map": "1.0.4", + "micromatch": "2.3.11", + "mkdirp": "0.5.1", + "resolve-from": "2.0.0", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "spawn-wrap": "1.4.2", + "test-exclude": "4.1.1", + "yargs": "10.0.3", + "yargs-parser": "8.0.0" }, "dependencies": { "align-text": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" } }, "amdefine": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "bundled": true, "dev": true }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "bundled": true, "dev": true }, "ansi-styles": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "bundled": true, "dev": true }, "append-transform": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "bundled": true, "dev": true, "requires": { - "default-require-extensions": "^1.0.0" + "default-require-extensions": "1.0.0" } }, "archy": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "bundled": true, "dev": true }, "arr-diff": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "bundled": true, "dev": true, "requires": { - "arr-flatten": "^1.0.1" + "arr-flatten": "1.1.0" } }, "arr-flatten": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "bundled": true, "dev": true }, "array-unique": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "bundled": true, "dev": true }, "arrify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "bundled": true, "dev": true }, "async": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "bundled": true, "dev": true }, "babel-code-frame": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "bundled": true, "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" } }, "babel-generator": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", - "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "bundled": true, "dev": true, "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.6", - "trim-right": "^1.0.1" + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.4", + "source-map": "0.5.7", + "trim-right": "1.0.1" } }, "babel-messages": { "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "bundled": true, "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-runtime": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "bundled": true, "dev": true, "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" } }, "babel-template": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "bundled": true, "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" } }, "babel-traverse": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "bundled": true, "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" } }, "babel-types": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "bundled": true, "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" } }, "babylon": { "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "bundled": true, "dev": true }, "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "bundled": true, "dev": true }, "brace-expansion": { "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "bundled": true, "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, "braces": { "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "bundled": true, "dev": true, "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" } }, "builtin-modules": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "bundled": true, "dev": true }, "caching-transform": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", - "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", + "bundled": true, "dev": true, "requires": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" } }, "camelcase": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "bundled": true, "dev": true, "optional": true }, "center-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "bundled": true, "dev": true, "optional": true, "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "align-text": "0.1.4", + "lazy-cache": "1.0.4" } }, "chalk": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "bundled": true, "dev": true, "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "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" } }, "cliui": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "bundled": true, "dev": true, "optional": true, "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", + "center-align": "0.1.3", + "right-align": "0.1.3", "wordwrap": "0.0.2" }, "dependencies": { "wordwrap": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "bundled": true, "dev": true, "optional": true } @@ -560,48 +532,41 @@ }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "bundled": true, "dev": true }, "commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "bundled": true, "dev": true }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "bundled": true, "dev": true }, "convert-source-map": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "bundled": true, "dev": true }, "core-js": { "version": "2.5.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", - "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "bundled": true, "dev": true }, "cross-spawn": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "bundled": true, "dev": true, "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" + "lru-cache": "4.1.1", + "which": "1.3.0" } }, "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "bundled": true, "dev": true, "requires": { "ms": "2.0.0" @@ -609,442 +574,387 @@ }, "debug-log": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", - "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", + "bundled": true, "dev": true }, "decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "bundled": true, "dev": true }, "default-require-extensions": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "bundled": true, "dev": true, "requires": { - "strip-bom": "^2.0.0" + "strip-bom": "2.0.0" } }, "detect-indent": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "bundled": true, "dev": true, "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "error-ex": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "bundled": true, "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "bundled": true, "dev": true }, "esutils": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "bundled": true, "dev": true }, "execa": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "bundled": true, "dev": true, "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" }, "dependencies": { "cross-spawn": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "bundled": true, "dev": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.3.0" } } } }, "expand-brackets": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "bundled": true, "dev": true, "requires": { - "is-posix-bracket": "^0.1.0" + "is-posix-bracket": "0.1.1" } }, "expand-range": { "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "bundled": true, "dev": true, "requires": { - "fill-range": "^2.1.0" + "fill-range": "2.2.3" } }, "extglob": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "bundled": true, "dev": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "filename-regex": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "bundled": true, "dev": true }, "fill-range": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "bundled": true, "dev": true, "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^1.1.3", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" } }, "find-cache-dir": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "bundled": true, "dev": true, "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" + "commondir": "1.0.1", + "mkdirp": "0.5.1", + "pkg-dir": "1.0.0" } }, "find-up": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "bundled": true, "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "for-in": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "bundled": true, "dev": true }, "for-own": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "bundled": true, "dev": true, "requires": { - "for-in": "^1.0.1" + "for-in": "1.0.2" } }, "foreground-child": { "version": "1.5.6", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", - "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "bundled": true, "dev": true, "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" + "cross-spawn": "4.0.2", + "signal-exit": "3.0.2" } }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "bundled": true, "dev": true }, "get-caller-file": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "bundled": true, "dev": true }, "get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "bundled": true, "dev": true }, "glob": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "bundled": true, "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "glob-base": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "bundled": true, "dev": true, "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" + "glob-parent": "2.0.0", + "is-glob": "2.0.1" } }, "glob-parent": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "bundled": true, "dev": true, "requires": { - "is-glob": "^2.0.0" + "is-glob": "2.0.1" } }, "globals": { "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "bundled": true, "dev": true }, "graceful-fs": { "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "bundled": true, "dev": true }, "handlebars": { "version": "4.0.11", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", - "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "bundled": true, "dev": true, "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" }, "dependencies": { "source-map": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "bundled": true, "dev": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } }, "has-ansi": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "bundled": true, "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "has-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "bundled": true, "dev": true }, "hosted-git-info": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", + "bundled": true, "dev": true }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "bundled": true, "dev": true }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "bundled": true, "dev": true }, "invariant": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "bundled": true, "dev": true, "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "1.3.1" } }, "invert-kv": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "bundled": true, "dev": true }, "is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "bundled": true, "dev": true }, "is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "bundled": true, "dev": true }, "is-builtin-module": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "bundled": true, "dev": true, "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-dotfile": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "bundled": true, "dev": true }, "is-equal-shallow": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "bundled": true, "dev": true, "requires": { - "is-primitive": "^2.0.0" + "is-primitive": "2.0.0" } }, "is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "bundled": true, "dev": true }, "is-extglob": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "bundled": true, "dev": true }, "is-finite": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "bundled": true, "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-glob": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "bundled": true, "dev": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "is-number": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-posix-bracket": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "bundled": true, "dev": true }, "is-primitive": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "bundled": true, "dev": true }, "is-stream": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "bundled": true, "dev": true }, "is-utf8": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "bundled": true, "dev": true }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "bundled": true, "dev": true }, "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "bundled": true, "dev": true }, "isobject": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "bundled": true, "dev": true, "requires": { "isarray": "1.0.0" @@ -1052,74 +962,67 @@ }, "istanbul-lib-coverage": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz", - "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==", + "bundled": true, "dev": true }, "istanbul-lib-hook": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", - "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", + "bundled": true, "dev": true, "requires": { - "append-transform": "^0.4.0" + "append-transform": "0.4.0" } }, "istanbul-lib-instrument": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz", - "integrity": "sha512-RQmXeQ7sphar7k7O1wTNzVczF9igKpaeGQAG9qR2L+BS4DCJNTI9nytRmIVYevwO0bbq+2CXvJmYDuz0gMrywA==", + "bundled": true, "dev": true, "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.1.1", - "semver": "^5.3.0" + "babel-generator": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "istanbul-lib-coverage": "1.1.1", + "semver": "5.4.1" } }, "istanbul-lib-report": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz", - "integrity": "sha512-UTv4VGx+HZivJQwAo1wnRwe1KTvFpfi/NYwN7DcsrdzMXwpRT/Yb6r4SBPoHWj4VuQPakR32g4PUUeyKkdDkBA==", + "bundled": true, "dev": true, "requires": { - "istanbul-lib-coverage": "^1.1.1", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" + "istanbul-lib-coverage": "1.1.1", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" }, "dependencies": { "supports-color": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "bundled": true, "dev": true, "requires": { - "has-flag": "^1.0.0" + "has-flag": "1.0.0" } } } }, "istanbul-lib-source-maps": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz", - "integrity": "sha512-8BfdqSfEdtip7/wo1RnrvLpHVEd8zMZEDmOFEnpC6dg0vXflHt9nvoAyQUzig2uMSXfF2OBEYBV3CVjIL9JvaQ==", + "bundled": true, "dev": true, "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.1.1", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" + "debug": "3.1.0", + "istanbul-lib-coverage": "1.1.1", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" }, "dependencies": { "debug": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "bundled": true, "dev": true, "requires": { "ms": "2.0.0" @@ -1129,191 +1032,169 @@ }, "istanbul-reports": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.3.tgz", - "integrity": "sha512-ZEelkHh8hrZNI5xDaKwPMFwDsUf5wIEI2bXAFGp1e6deR2mnEKBPhLJEgr4ZBt8Gi6Mj38E/C8kcy9XLggVO2Q==", + "bundled": true, "dev": true, "requires": { - "handlebars": "^4.0.3" + "handlebars": "4.0.11" } }, "js-tokens": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "bundled": true, "dev": true }, "jsesc": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "bundled": true, "dev": true }, "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "lazy-cache": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "bundled": true, "dev": true, "optional": true }, "lcid": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "bundled": true, "dev": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "load-json-file": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" } }, "locate-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "bundled": true, "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "2.0.0", + "path-exists": "3.0.0" }, "dependencies": { "path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "bundled": true, "dev": true } } }, "lodash": { "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "bundled": true, "dev": true }, "longest": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "bundled": true, "dev": true }, "loose-envify": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "bundled": true, "dev": true, "requires": { - "js-tokens": "^3.0.0" + "js-tokens": "3.0.2" } }, "lru-cache": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", - "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "bundled": true, "dev": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "md5-hex": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", - "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", + "bundled": true, "dev": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "md5-o-matic": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", - "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=", + "bundled": true, "dev": true }, "mem": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "bundled": true, "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.1.0" } }, "merge-source-map": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", - "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=", + "bundled": true, "dev": true, "requires": { - "source-map": "^0.5.6" + "source-map": "0.5.7" } }, "micromatch": { "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "bundled": true, "dev": true, "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" } }, "mimic-fn": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", - "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", + "bundled": true, "dev": true }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.8" } }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "bundled": true, "dev": true }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "dev": true, "requires": { "minimist": "0.0.8" @@ -1321,575 +1202,505 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "bundled": true, "dev": true }, "normalize-package-data": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "bundled": true, "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.5.0", + "is-builtin-module": "1.0.0", + "semver": "5.4.1", + "validate-npm-package-license": "3.0.1" } }, "normalize-path": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "bundled": true, "dev": true, "requires": { - "remove-trailing-separator": "^1.0.1" + "remove-trailing-separator": "1.1.0" } }, "npm-run-path": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "bundled": true, "dev": true, "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "bundled": true, "dev": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "bundled": true, "dev": true }, "object.omit": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "bundled": true, "dev": true, "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" + "for-own": "0.1.5", + "is-extendable": "0.1.1" } }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "dev": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "optimist": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "bundled": true, "dev": true, "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "minimist": "0.0.8", + "wordwrap": "0.0.3" } }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "bundled": true, "dev": true }, "os-locale": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "bundled": true, "dev": true, "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" } }, "p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "bundled": true, "dev": true }, "p-limit": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", - "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", + "bundled": true, "dev": true }, "p-locate": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "bundled": true, "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.1.0" } }, "parse-glob": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "bundled": true, "dev": true, "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" } }, "parse-json": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "bundled": true, "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.1" } }, "path-exists": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "bundled": true, "dev": true, "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "bundled": true, "dev": true }, "path-key": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "bundled": true, "dev": true }, "path-parse": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "bundled": true, "dev": true }, "path-type": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "bundled": true, "dev": true }, "pinkie": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "bundled": true, "dev": true }, "pinkie-promise": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "bundled": true, "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "pkg-dir": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "bundled": true, "dev": true, "requires": { - "find-up": "^1.0.0" + "find-up": "1.1.2" }, "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "bundled": true, "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } }, "preserve": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "bundled": true, "dev": true }, "pseudomap": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "bundled": true, "dev": true }, "randomatic": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "bundled": true, "dev": true, "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } }, "kind-of": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } }, "read-pkg": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "bundled": true, "dev": true, "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" } }, "read-pkg-up": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "bundled": true, "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "find-up": "1.1.2", + "read-pkg": "1.1.0" }, "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "bundled": true, "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } }, "regenerator-runtime": { "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "bundled": true, "dev": true }, "regex-cache": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "bundled": true, "dev": true, "requires": { - "is-equal-shallow": "^0.1.3" + "is-equal-shallow": "0.1.3" } }, "remove-trailing-separator": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "bundled": true, "dev": true }, "repeat-element": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "bundled": true, "dev": true }, "repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "bundled": true, "dev": true }, "repeating": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "bundled": true, "dev": true, "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "bundled": true, "dev": true }, "require-main-filename": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "bundled": true, "dev": true }, "resolve-from": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", + "bundled": true, "dev": true }, "right-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "bundled": true, "dev": true, "optional": true, "requires": { - "align-text": "^0.1.1" + "align-text": "0.1.4" } }, "rimraf": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "bundled": true, "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "semver": { "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "bundled": true, "dev": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "bundled": true, "dev": true }, "shebang-command": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "bundled": true, "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "bundled": true, "dev": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "bundled": true, "dev": true }, "slide": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "bundled": true, "dev": true }, "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "bundled": true, "dev": true }, "spawn-wrap": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", - "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", + "bundled": true, "dev": true, "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.0" } }, "spdx-correct": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "bundled": true, "dev": true, "requires": { - "spdx-license-ids": "^1.0.2" + "spdx-license-ids": "1.2.2" } }, "spdx-expression-parse": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "bundled": true, "dev": true }, "spdx-license-ids": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "bundled": true, "dev": true }, "string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "bundled": true, "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" }, "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "bundled": true, "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "bundled": true, "dev": true }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-bom": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "bundled": true, "dev": true, "requires": { - "is-utf8": "^0.2.0" + "is-utf8": "0.2.1" } }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "bundled": true, "dev": true }, "supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "bundled": true, "dev": true }, "test-exclude": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz", - "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==", + "bundled": true, "dev": true, "requires": { - "arrify": "^1.0.1", - "micromatch": "^2.3.11", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" + "arrify": "1.0.1", + "micromatch": "2.3.11", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" } }, "to-fast-properties": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "bundled": true, "dev": true }, "trim-right": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "bundled": true, "dev": true }, "uglify-js": { "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "bundled": true, "dev": true, "optional": true, "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" }, "dependencies": { "yargs": { "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "bundled": true, "dev": true, "optional": true, "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", "window-size": "0.1.0" } } @@ -1897,141 +1708,126 @@ }, "uglify-to-browserify": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "bundled": true, "dev": true, "optional": true }, "validate-npm-package-license": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "bundled": true, "dev": true, "requires": { - "spdx-correct": "~1.0.0", - "spdx-expression-parse": "~1.0.0" + "spdx-correct": "1.0.2", + "spdx-expression-parse": "1.0.4" } }, "which": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "bundled": true, "dev": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "bundled": true, "dev": true }, "window-size": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "bundled": true, "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "bundled": true, "dev": true }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "bundled": true, "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "bundled": true, "dev": true }, "write-file-atomic": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", - "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", + "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" } }, "y18n": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "bundled": true, "dev": true }, "yallist": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "bundled": true, "dev": true }, "yargs": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.0.3.tgz", - "integrity": "sha512-DqBpQ8NAUX4GyPP/ijDGHsJya4tYqLQrjPr95HNsr1YwL3+daCfvBwg7+gIC6IdJhR2kATh3hb61vjzMWEtjdw==", - "dev": true, - "requires": { - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^8.0.0" + "bundled": true, + "dev": true, + "requires": { + "cliui": "3.2.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "8.0.0" }, "dependencies": { "cliui": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "bundled": true, "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" }, "dependencies": { "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -2040,17 +1836,15 @@ }, "yargs-parser": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.0.0.tgz", - "integrity": "sha1-IdR2Mw5agieaS4gTRb8GYQLiGcY=", + "bundled": true, "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" }, "dependencies": { "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "bundled": true, "dev": true } } @@ -2063,9 +1857,9 @@ "integrity": "sha1-AtUUpb7ZhvBMuyCTrxZ0FTX3ntw=", "dev": true, "requires": { - "fill-keys": "^1.0.2", - "module-not-found-error": "^1.0.0", - "resolve": "~1.1.7" + "fill-keys": "1.0.2", + "module-not-found-error": "1.0.1", + "resolve": "1.1.7" } } } @@ -2076,10 +1870,10 @@ "integrity": "sha512-weIbJqTMfQ4r1YX85u54DKfjLZs2jwn1XZ6tIOP/pFgMwhIN5BAtaCp/1wn9DzyLsDR9tW0R2NIePcVJ45ivQQ==", "dev": true, "requires": { - "chalk": "^0.4.0", - "date-time": "^0.1.1", - "pretty-ms": "^0.2.1", - "text-table": "^0.2.0" + "chalk": "0.4.0", + "date-time": "0.1.1", + "pretty-ms": "0.2.2", + "text-table": "0.2.0" }, "dependencies": { "ansi-styles": { @@ -2094,9 +1888,9 @@ "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", "dev": true, "requires": { - "ansi-styles": "~1.0.0", - "has-color": "~0.1.0", - "strip-ansi": "~0.1.0" + "ansi-styles": "1.0.0", + "has-color": "0.1.7", + "strip-ansi": "0.1.1" } }, "pretty-ms": { @@ -2105,7 +1899,7 @@ "integrity": "sha1-2oeaaC/zOjcBEEbxPWJ/Z8c7hPY=", "dev": true, "requires": { - "parse-ms": "^0.1.0" + "parse-ms": "0.1.2" } }, "strip-ansi": { @@ -2122,8 +1916,8 @@ "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", "dev": true, "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" } }, "@nodelib/fs.stat": { @@ -2153,7 +1947,7 @@ "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "10.3.5" } }, "@types/body-parser": { @@ -2162,8 +1956,8 @@ "integrity": "sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w==", "dev": true, "requires": { - "@types/connect": "*", - "@types/node": "*" + "@types/connect": "3.4.32", + "@types/node": "10.3.5" } }, "@types/boom": { @@ -2178,8 +1972,8 @@ "integrity": "sha512-bxOF3fsm69ezKxdcJ7Oo/PsZMOJ+JIV/QJO2IADfScmR3sLulR88dpSnz6+q+9JJ1kD7dXFFgUrGRSKHLkOX7w==", "dev": true, "requires": { - "@types/events": "*", - "@types/node": "*" + "@types/events": "1.2.0", + "@types/node": "10.3.5" } }, "@types/caseless": { @@ -2199,7 +1993,7 @@ "integrity": "sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg==", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "10.3.5" } }, "@types/cookies": { @@ -2208,10 +2002,10 @@ "integrity": "sha512-ku6IvbucEyuC6i4zAVK/KnuzWNXdbFd1HkXlNLg/zhWDGTtQT5VhumiPruB/BHW34PWVFwyfwGftDQHfWNxu3Q==", "dev": true, "requires": { - "@types/connect": "*", - "@types/express": "*", - "@types/keygrip": "*", - "@types/node": "*" + "@types/connect": "3.4.32", + "@types/express": "4.16.0", + "@types/keygrip": "1.0.1", + "@types/node": "10.3.5" } }, "@types/duplexify": { @@ -2219,7 +2013,7 @@ "resolved": "https://registry.npmjs.org/@types/duplexify/-/duplexify-3.5.0.tgz", "integrity": "sha512-+aZCCdxuR/Q6n58CBkXyqGqimIqpYUcFLfBXagXv7e9TdJUevqkKhzopBuRz3RB064sQxnJnhttHOkK/O93Ouw==", "requires": { - "@types/node": "*" + "@types/node": "10.3.5" } }, "@types/events": { @@ -2234,9 +2028,9 @@ "integrity": "sha512-TtPEYumsmSTtTetAPXlJVf3kEqb6wZK0bZojpJQrnD/djV4q1oB6QQ8aKvKqwNPACoe02GNiy5zDzcYivR5Z2w==", "dev": true, "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "*", - "@types/serve-static": "*" + "@types/body-parser": "1.17.0", + "@types/express-serve-static-core": "4.16.0", + "@types/serve-static": "1.13.2" } }, "@types/express-serve-static-core": { @@ -2245,9 +2039,9 @@ "integrity": "sha512-lTeoCu5NxJU4OD9moCgm0ESZzweAx0YqsAcab6OB0EB3+As1OaHtKnaGJvcngQxYsi9UNv0abn4/DRavrRxt4w==", "dev": true, "requires": { - "@types/events": "*", - "@types/node": "*", - "@types/range-parser": "*" + "@types/events": "1.2.0", + "@types/node": "10.3.5", + "@types/range-parser": "1.2.2" } }, "@types/extend": { @@ -2261,7 +2055,7 @@ "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz", "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", "requires": { - "@types/node": "*" + "@types/node": "10.3.5" } }, "@types/glob": { @@ -2270,9 +2064,9 @@ "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", "dev": true, "requires": { - "@types/events": "*", - "@types/minimatch": "*", - "@types/node": "*" + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "10.3.5" } }, "@types/hapi": { @@ -2281,14 +2075,14 @@ "integrity": "sha512-OdCd3r7IVLM894EGA6jrrxJpbY7r3EG+jJBGveGshMxwxQE58mL7NdRcr4hmdCzsgUl3aVtZkSK4GpAf8C9kMw==", "dev": true, "requires": { - "@types/boom": "*", - "@types/catbox": "*", - "@types/iron": "*", - "@types/joi": "*", - "@types/mimos": "*", - "@types/node": "*", - "@types/podium": "*", - "@types/shot": "*" + "@types/boom": "7.2.0", + "@types/catbox": "10.0.0", + "@types/iron": "5.0.1", + "@types/joi": "13.3.0", + "@types/mimos": "3.0.1", + "@types/node": "10.3.5", + "@types/podium": "1.0.0", + "@types/shot": "3.4.0" } }, "@types/http-assert": { @@ -2303,7 +2097,7 @@ "integrity": "sha512-Ng5BkVGPt7Tw9k1OJ6qYwuD9+dmnWgActmsnnrdvs4075N8V2go1f6Pz8omG3q5rbHjXN6yzzZDYo3JOgAE/Ug==", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "10.3.5" } }, "@types/is": { @@ -2330,13 +2124,13 @@ "integrity": "sha512-Dw10hYKv3exrc71GmH/Fqnc7dCLzdiP8bM1MLelPYjgIH5kQ6mPFreM3Z0uLK9EFaeCZZUYqsedDLCf3Urrysg==", "dev": true, "requires": { - "@types/accepts": "*", - "@types/cookies": "*", - "@types/events": "*", - "@types/http-assert": "*", - "@types/keygrip": "*", - "@types/koa-compose": "*", - "@types/node": "*" + "@types/accepts": "1.3.5", + "@types/cookies": "0.7.1", + "@types/events": "1.2.0", + "@types/http-assert": "1.3.0", + "@types/keygrip": "1.0.1", + "@types/koa-compose": "3.2.2", + "@types/node": "10.3.5" } }, "@types/koa-compose": { @@ -2357,7 +2151,7 @@ "integrity": "sha512-L8D6y0a88Uv3/gdqUpmfHPGSFo676ggbtl5an3FgR4AzbvR+PKNdUMPr6F6Q/U3n3lCoCoV+WPt1vqJGbgPZ6Q==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.110" } }, "@types/lodash.has": { @@ -2366,7 +2160,7 @@ "integrity": "sha512-McmKJoXdSxMYIQzVWKSEGrHnTwJ1ErqXvsTQjFeGEhBmypgCjuANDSqxl4LKaKcoF4mNxMqSzH7wP4yQ0deLeQ==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.110" } }, "@types/lodash.maxby": { @@ -2375,7 +2169,7 @@ "integrity": "sha512-5AMk6874T1RMxtWkW0I4ORFptU508mTb8jYG0gaNCMDzX6kLn/VNQXewL6dasZd4dj/hSbM8dt7msLuI3rSIPQ==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.110" } }, "@types/lodash.merge": { @@ -2384,7 +2178,7 @@ "integrity": "sha512-bOCCutkbehfCeiSqJO5XcVKjsJvX28dgvjhs4aMmBAHAsOy2oOJQwHuIZ0elI1E94qQIdEsCvz8oLgUumd6teA==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.110" } }, "@types/lodash.omit": { @@ -2393,7 +2187,7 @@ "integrity": "sha512-a6VbeE+JjMQ3rKsQVRjle02E+iKPTsT7izzFRk4xJvv4TBcO85Lrpo+8n6iqsiH8yZ8mHy0LOmx7MVgO8OfovQ==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.110" } }, "@types/lodash.omitby": { @@ -2402,7 +2196,7 @@ "integrity": "sha512-IfMZru9AegVIu0lkOXc/ncCOR3zzC6FKTVuBHBd9PkmKbOCn5zFORT22Wf/fZ9SBr2HmaYLPkFhf5C7A7k/N9A==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.110" } }, "@types/lodash.pick": { @@ -2411,7 +2205,7 @@ "integrity": "sha512-7VR26qH/bzRBn8DN6HKWYwBB6dNo1dNSdc0nYQwPp5tua6u2dpHHCFccszvFKBdR2CjSEbL5hsqQul03P4COjA==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.110" } }, "@types/lodash.random": { @@ -2420,7 +2214,7 @@ "integrity": "sha512-JMCA9llou2Ye9mhz0H/7DaPrJ6PgmRb6ClnPGPzfoX7JUu9Q6NuRZON5INrTQH5LWahzqaZdeMwHyn8MGRkXoA==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.110" } }, "@types/lodash.without": { @@ -2429,7 +2223,7 @@ "integrity": "sha512-oD30pRigg97PfyF8u3WGkRnn3MPS/f2pwYf0s0dNeGOeScbZ1bo4BYBK7dab/lpX6EbUjoWAtLLMQW+LxlJpcQ==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.110" } }, "@types/mime": { @@ -2450,7 +2244,7 @@ "integrity": "sha512-MATIRH4VMIJki8lcYUZdNQEHuAG7iQ1FWwoLgxV+4fUOly2xZYdhHtGgvQyWiTeJqq2tZbE0nOOgZD6pR0FpNQ==", "dev": true, "requires": { - "@types/mime-db": "*" + "@types/mime-db": "1.27.0" } }, "@types/minimatch": { @@ -2471,7 +2265,7 @@ "integrity": "sha512-TeiJ7uvv/92ugSqZ0v9l0eNXzutlki0aK+R1K5bfA5SYUil46ITlxLW4iNTCf55P4L5weCmaOdtxGeGWvudwPg==", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "10.3.5" } }, "@types/nock": { @@ -2480,13 +2274,13 @@ "integrity": "sha512-S8rJ+SaW82ICX87pZP62UcMifrMfjEdqNzSp+llx4YcvKw6bO650Ye6HwTqER1Dar3S40GIZECQisOrAICDCjA==", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "10.3.5" } }, "@types/node": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.3.4.tgz", - "integrity": "sha512-YMLlzdeNnAyLrQew39IFRkMacAR5BqKGIEei9ZjdHsIZtv+ZWKYTu1i7QJhetxQ9ReXx8w5f+cixdHZG3zgMQA==" + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.3.5.tgz", + "integrity": "sha512-6lRwZN0Y3TuglwaaZN2XPocobmzLlhxcqDjKFjNYSsXG/TFAGYkCqkzZh4+ms8iTHHQE6gJXLHPV7TziVGeWhg==" }, "@types/once": { "version": "1.4.0", @@ -2523,10 +2317,10 @@ "resolved": "https://registry.npmjs.org/@types/request/-/request-2.47.1.tgz", "integrity": "sha512-TV3XLvDjQbIeVxJ1Z3oCTDk/KuYwwcNKVwz2YaT0F5u86Prgc4syDAp6P96rkTQQ4bIdh+VswQIC9zS6NjY7/g==", "requires": { - "@types/caseless": "*", - "@types/form-data": "*", - "@types/node": "*", - "@types/tough-cookie": "*" + "@types/caseless": "0.12.1", + "@types/form-data": "2.2.1", + "@types/node": "10.3.5", + "@types/tough-cookie": "2.3.3" } }, "@types/restify": { @@ -2535,9 +2329,9 @@ "integrity": "sha512-CWIC2i7TCDmUHCuGjTcuuYKQeAkV+sqk6uV36qNVqaGzygT9ZsGrwrJ0He/cmwyRJuSKO34NTivRlP4DijvoaA==", "dev": true, "requires": { - "@types/bunyan": "*", - "@types/node": "*", - "@types/spdy": "*" + "@types/bunyan": "1.8.4", + "@types/node": "10.3.5", + "@types/spdy": "3.4.4" } }, "@types/rimraf": { @@ -2546,8 +2340,8 @@ "integrity": "sha512-Hm/bnWq0TCy7jmjeN5bKYij9vw5GrDFWME4IuxV08278NtU/VdGbzsBohcCUJ7+QMqmUq5hpRKB39HeQWJjztQ==", "dev": true, "requires": { - "@types/glob": "*", - "@types/node": "*" + "@types/glob": "5.0.35", + "@types/node": "10.3.5" } }, "@types/serve-static": { @@ -2556,8 +2350,8 @@ "integrity": "sha512-/BZ4QRLpH/bNYgZgwhKEh+5AsboDBcUdlBYgzoLX0fpj3Y2gp6EApyOlM3bK53wQS/OE1SrdSYBAbux2D1528Q==", "dev": true, "requires": { - "@types/express-serve-static-core": "*", - "@types/mime": "*" + "@types/express-serve-static-core": "4.16.0", + "@types/mime": "2.0.0" } }, "@types/shot": { @@ -2566,7 +2360,7 @@ "integrity": "sha1-RZR3xRh9Pr0wNmCrCZ5+ng87ZW8=", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "10.3.5" } }, "@types/spdy": { @@ -2575,7 +2369,7 @@ "integrity": "sha512-N9LBlbVRRYq6HgYpPkqQc3a9HJ/iEtVZToW6xlTtJiMhmRJ7jJdV7TaZQJw/Ve/1ePUsQiCTDc4JMuzzag94GA==", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "10.3.5" } }, "@types/tmp": { @@ -2595,8 +2389,8 @@ "integrity": "sha512-bghLXFkCOsC1Y2TZ51etWfKDs6q249SAoHTZVfzWWdlZxoij+mgkj9AmUJWQpDY48TfnrTDIe43Xem4zdMe7mQ==", "dev": true, "requires": { - "boom": "7.x.x", - "hoek": "5.x.x" + "boom": "7.2.0", + "hoek": "5.0.3" } }, "accepts": { @@ -2605,7 +2399,7 @@ "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "dev": true, "requires": { - "mime-types": "~2.1.18", + "mime-types": "2.1.18", "negotiator": "0.6.1" } }, @@ -2627,7 +2421,7 @@ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "dev": true, "requires": { - "acorn": "^3.0.4" + "acorn": "3.3.0" }, "dependencies": { "acorn": { @@ -2643,10 +2437,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" } }, "ajv-keywords": { @@ -2661,9 +2455,9 @@ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" } }, "amdefine": { @@ -2678,7 +2472,7 @@ "integrity": "sha512-4UqoM8xQjwkQ78oiU4NbBK0UgYqeKMAKmwE4ec7Rz3rGU8ZEBFxzgF2sUYKOAlqIXExBDYLN6y1ShF5yQ4hwLQ==", "dev": true, "requires": { - "hoek": "5.x.x" + "hoek": "5.0.3" } }, "ansi-align": { @@ -2687,7 +2481,7 @@ "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "dev": true, "requires": { - "string-width": "^2.0.0" + "string-width": "2.1.1" } }, "ansi-escapes": { @@ -2708,7 +2502,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "color-convert": "1.9.2" } }, "any-promise": { @@ -2723,8 +2517,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "dev": true, "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" + "micromatch": "2.3.11", + "normalize-path": "2.1.1" } }, "argparse": { @@ -2733,7 +2527,7 @@ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "sprintf-js": "~1.0.2" + "sprintf-js": "1.0.3" } }, "argv": { @@ -2748,7 +2542,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "^1.0.1" + "arr-flatten": "1.1.0" } }, "arr-exclude": { @@ -2805,7 +2599,7 @@ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "array-uniq": "^1.0.1" + "array-uniq": "1.0.3" } }, "array-uniq": { @@ -2882,89 +2676,89 @@ "integrity": "sha512-4lGNJCf6xL8SvsKVEKxEE46se7JAUIAZoKHw9itTQuwcsydhpAMkBs5gOOiWiwt0JKNIuXWc2/r4r8ZdcNrBEw==", "dev": true, "requires": { - "@ava/babel-preset-stage-4": "^1.1.0", - "@ava/babel-preset-transform-test-files": "^3.0.0", - "@ava/write-file-atomic": "^2.2.0", - "@concordance/react": "^1.0.0", - "@ladjs/time-require": "^0.1.4", - "ansi-escapes": "^3.0.0", - "ansi-styles": "^3.1.0", - "arr-flatten": "^1.0.1", - "array-union": "^1.0.1", - "array-uniq": "^1.0.2", - "arrify": "^1.0.0", - "auto-bind": "^1.1.0", - "ava-init": "^0.2.0", - "babel-core": "^6.17.0", - "babel-generator": "^6.26.0", - "babel-plugin-syntax-object-rest-spread": "^6.13.0", - "bluebird": "^3.0.0", - "caching-transform": "^1.0.0", - "chalk": "^2.0.1", - "chokidar": "^1.4.2", - "clean-stack": "^1.1.1", - "clean-yaml-object": "^0.1.0", - "cli-cursor": "^2.1.0", - "cli-spinners": "^1.0.0", - "cli-truncate": "^1.0.0", - "co-with-promise": "^4.6.0", - "code-excerpt": "^2.1.1", - "common-path-prefix": "^1.0.0", - "concordance": "^3.0.0", - "convert-source-map": "^1.5.1", - "core-assert": "^0.2.0", - "currently-unhandled": "^0.4.1", - "debug": "^3.0.1", - "dot-prop": "^4.1.0", - "empower-core": "^0.6.1", - "equal-length": "^1.0.0", - "figures": "^2.0.0", - "find-cache-dir": "^1.0.0", - "fn-name": "^2.0.0", - "get-port": "^3.0.0", - "globby": "^6.0.0", - "has-flag": "^2.0.0", - "hullabaloo-config-manager": "^1.1.0", - "ignore-by-default": "^1.0.0", - "import-local": "^0.1.1", - "indent-string": "^3.0.0", - "is-ci": "^1.0.7", - "is-generator-fn": "^1.0.0", - "is-obj": "^1.0.0", - "is-observable": "^1.0.0", - "is-promise": "^2.1.0", - "last-line-stream": "^1.0.0", - "lodash.clonedeepwith": "^4.5.0", - "lodash.debounce": "^4.0.3", - "lodash.difference": "^4.3.0", - "lodash.flatten": "^4.2.0", - "loud-rejection": "^1.2.0", - "make-dir": "^1.0.0", - "matcher": "^1.0.0", - "md5-hex": "^2.0.0", - "meow": "^3.7.0", - "ms": "^2.0.0", - "multimatch": "^2.1.0", - "observable-to-promise": "^0.5.0", - "option-chain": "^1.0.0", - "package-hash": "^2.0.0", - "pkg-conf": "^2.0.0", - "plur": "^2.0.0", - "pretty-ms": "^3.0.0", - "require-precompiled": "^0.1.0", - "resolve-cwd": "^2.0.0", - "safe-buffer": "^5.1.1", - "semver": "^5.4.1", - "slash": "^1.0.0", - "source-map-support": "^0.5.0", - "stack-utils": "^1.0.1", - "strip-ansi": "^4.0.0", - "strip-bom-buf": "^1.0.0", - "supertap": "^1.0.0", - "supports-color": "^5.0.0", - "trim-off-newlines": "^1.0.1", - "unique-temp-dir": "^1.0.0", - "update-notifier": "^2.3.0" + "@ava/babel-preset-stage-4": "1.1.0", + "@ava/babel-preset-transform-test-files": "3.0.0", + "@ava/write-file-atomic": "2.2.0", + "@concordance/react": "1.0.0", + "@ladjs/time-require": "0.1.4", + "ansi-escapes": "3.1.0", + "ansi-styles": "3.2.1", + "arr-flatten": "1.1.0", + "array-union": "1.0.2", + "array-uniq": "1.0.3", + "arrify": "1.0.1", + "auto-bind": "1.2.1", + "ava-init": "0.2.1", + "babel-core": "6.26.3", + "babel-generator": "6.26.1", + "babel-plugin-syntax-object-rest-spread": "6.13.0", + "bluebird": "3.5.1", + "caching-transform": "1.0.1", + "chalk": "2.4.1", + "chokidar": "1.7.0", + "clean-stack": "1.3.0", + "clean-yaml-object": "0.1.0", + "cli-cursor": "2.1.0", + "cli-spinners": "1.3.1", + "cli-truncate": "1.1.0", + "co-with-promise": "4.6.0", + "code-excerpt": "2.1.1", + "common-path-prefix": "1.0.0", + "concordance": "3.0.0", + "convert-source-map": "1.5.1", + "core-assert": "0.2.1", + "currently-unhandled": "0.4.1", + "debug": "3.1.0", + "dot-prop": "4.2.0", + "empower-core": "0.6.2", + "equal-length": "1.0.1", + "figures": "2.0.0", + "find-cache-dir": "1.0.0", + "fn-name": "2.0.1", + "get-port": "3.2.0", + "globby": "6.1.0", + "has-flag": "2.0.0", + "hullabaloo-config-manager": "1.1.1", + "ignore-by-default": "1.0.1", + "import-local": "0.1.1", + "indent-string": "3.2.0", + "is-ci": "1.1.0", + "is-generator-fn": "1.0.0", + "is-obj": "1.0.1", + "is-observable": "1.1.0", + "is-promise": "2.1.0", + "last-line-stream": "1.0.0", + "lodash.clonedeepwith": "4.5.0", + "lodash.debounce": "4.0.8", + "lodash.difference": "4.5.0", + "lodash.flatten": "4.4.0", + "loud-rejection": "1.6.0", + "make-dir": "1.3.0", + "matcher": "1.1.1", + "md5-hex": "2.0.0", + "meow": "3.7.0", + "ms": "2.0.0", + "multimatch": "2.1.0", + "observable-to-promise": "0.5.0", + "option-chain": "1.0.0", + "package-hash": "2.0.0", + "pkg-conf": "2.1.0", + "plur": "2.1.2", + "pretty-ms": "3.2.0", + "require-precompiled": "0.1.0", + "resolve-cwd": "2.0.0", + "safe-buffer": "5.1.2", + "semver": "5.5.0", + "slash": "1.0.0", + "source-map-support": "0.5.6", + "stack-utils": "1.0.1", + "strip-ansi": "4.0.0", + "strip-bom-buf": "1.0.0", + "supertap": "1.0.0", + "supports-color": "5.4.0", + "trim-off-newlines": "1.0.1", + "unique-temp-dir": "1.0.0", + "update-notifier": "2.5.0" } }, "ava-init": { @@ -2973,11 +2767,11 @@ "integrity": "sha512-lXwK5LM+2g1euDRqW1mcSX/tqzY1QU7EjKpqayFPPtNRmbSYZ8RzPO5tqluTToijmtjp2M+pNpVdbcHssC4glg==", "dev": true, "requires": { - "arr-exclude": "^1.0.0", - "execa": "^0.7.0", - "has-yarn": "^1.0.0", - "read-pkg-up": "^2.0.0", - "write-pkg": "^3.1.0" + "arr-exclude": "1.0.0", + "execa": "0.7.0", + "has-yarn": "1.0.0", + "read-pkg-up": "2.0.0", + "write-pkg": "3.2.0" } }, "aws-sign2": { @@ -2995,8 +2789,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz", "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=", "requires": { - "follow-redirects": "^1.3.0", - "is-buffer": "^1.1.5" + "follow-redirects": "1.5.0", + "is-buffer": "1.1.6" } }, "b64": { @@ -3011,9 +2805,9 @@ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" }, "dependencies": { "ansi-styles": { @@ -3028,11 +2822,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "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" } }, "strip-ansi": { @@ -3041,7 +2835,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "supports-color": { @@ -3058,25 +2852,25 @@ "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.1", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.5.1", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.5", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" }, "dependencies": { "debug": { @@ -3096,14 +2890,14 @@ "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "dev": true, "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" }, "dependencies": { "jsesc": { @@ -3120,9 +2914,9 @@ "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "dev": true, "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-explode-assignable-expression": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-call-delegate": { @@ -3131,10 +2925,10 @@ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "dev": true, "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-explode-assignable-expression": { @@ -3143,9 +2937,9 @@ "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-function-name": { @@ -3154,11 +2948,11 @@ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "dev": true, "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-get-function-arity": { @@ -3167,8 +2961,8 @@ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-hoist-variables": { @@ -3177,8 +2971,8 @@ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-regex": { @@ -3187,9 +2981,9 @@ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.5" } }, "babel-helper-remap-async-to-generator": { @@ -3198,11 +2992,11 @@ "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "dev": true, "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helpers": { @@ -3211,8 +3005,8 @@ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-messages": { @@ -3221,7 +3015,7 @@ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-check-es2015-constants": { @@ -3230,7 +3024,7 @@ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-espower": { @@ -3239,13 +3033,13 @@ "integrity": "sha512-/+SRpy7pKgTI28oEHfn1wkuM5QFAdRq8WNsOOih1dVrdV6A/WbNbRZyl0eX5eyDgtb0lOE27PeDFuCX2j8OxVg==", "dev": true, "requires": { - "babel-generator": "^6.1.0", - "babylon": "^6.1.0", - "call-matcher": "^1.0.0", - "core-js": "^2.0.0", - "espower-location-detector": "^1.0.0", - "espurify": "^1.6.0", - "estraverse": "^4.1.1" + "babel-generator": "6.26.1", + "babylon": "6.18.0", + "call-matcher": "1.0.1", + "core-js": "2.5.7", + "espower-location-detector": "1.0.0", + "espurify": "1.8.0", + "estraverse": "4.2.0" } }, "babel-plugin-syntax-async-functions": { @@ -3278,9 +3072,9 @@ "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "dev": true, "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-destructuring": { @@ -3289,7 +3083,7 @@ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -3298,9 +3092,9 @@ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "dev": true, "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -3309,10 +3103,10 @@ "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "dev": true, "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -3321,12 +3115,12 @@ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "dev": true, "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-spread": { @@ -3335,7 +3129,7 @@ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -3344,9 +3138,9 @@ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "dev": true, "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -3355,9 +3149,9 @@ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "dev": true, "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "regexpu-core": "2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -3366,9 +3160,9 @@ "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "dev": true, "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", + "babel-plugin-syntax-exponentiation-operator": "6.13.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-strict-mode": { @@ -3377,8 +3171,8 @@ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-register": { @@ -3387,13 +3181,13 @@ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "dev": true, "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" + "babel-core": "6.26.3", + "babel-runtime": "6.26.0", + "core-js": "2.5.7", + "home-or-tmp": "2.0.0", + "lodash": "4.17.5", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" }, "dependencies": { "source-map-support": { @@ -3402,7 +3196,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "^0.5.6" + "source-map": "0.5.7" } } } @@ -3413,8 +3207,8 @@ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "babel-template": { @@ -3423,11 +3217,11 @@ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.5" } }, "babel-traverse": { @@ -3436,15 +3230,15 @@ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.4", + "lodash": "4.17.5" }, "dependencies": { "debug": { @@ -3464,10 +3258,10 @@ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" } }, "babylon": { @@ -3488,13 +3282,13 @@ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" }, "dependencies": { "define-property": { @@ -3503,7 +3297,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -3512,7 +3306,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -3521,7 +3315,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -3530,9 +3324,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -3555,7 +3349,7 @@ "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "optional": true, "requires": { - "tweetnacl": "^0.14.3" + "tweetnacl": "0.14.5" } }, "big-time": { @@ -3583,15 +3377,15 @@ "dev": true, "requires": { "bytes": "3.0.0", - "content-type": "~1.0.4", + "content-type": "1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "~1.6.3", + "depd": "1.1.2", + "http-errors": "1.6.3", "iconv-lite": "0.4.23", - "on-finished": "~2.3.0", + "on-finished": "2.3.0", "qs": "6.5.2", "raw-body": "2.3.3", - "type-is": "~1.6.16" + "type-is": "1.6.16" }, "dependencies": { "debug": { @@ -3611,7 +3405,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.x.x" + "hoek": "5.0.3" } }, "bounce": { @@ -3620,8 +3414,8 @@ "integrity": "sha512-8syCGe8B2/WC53118/F/tFy5aW00j+eaGPXmAUP7iBhxc+EBZZxS1vKelWyBCH6IqojgS2t1gF0glH30qAJKEw==", "dev": true, "requires": { - "boom": "7.x.x", - "hoek": "5.x.x" + "boom": "7.2.0", + "hoek": "5.0.3" } }, "boxen": { @@ -3630,13 +3424,13 @@ "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", "dev": true, "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" + "ansi-align": "2.0.0", + "camelcase": "4.1.0", + "chalk": "2.4.1", + "cli-boxes": "1.0.0", + "string-width": "2.1.1", + "term-size": "1.2.0", + "widest-line": "2.0.0" }, "dependencies": { "camelcase": { @@ -3653,7 +3447,7 @@ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -3663,9 +3457,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" } }, "browser-stdout": { @@ -3709,10 +3503,10 @@ "integrity": "sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=", "dev": true, "requires": { - "dtrace-provider": "~0.8", - "moment": "^2.10.6", - "mv": "~2", - "safe-json-stringify": "~1" + "dtrace-provider": "0.8.7", + "moment": "2.22.2", + "mv": "2.1.1", + "safe-json-stringify": "1.2.0" } }, "bytes": { @@ -3727,15 +3521,15 @@ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" + "collection-visit": "1.0.0", + "component-emitter": "1.2.1", + "get-value": "2.0.6", + "has-value": "1.0.0", + "isobject": "3.0.1", + "set-value": "2.0.0", + "to-object-path": "0.3.0", + "union-value": "1.0.0", + "unset-value": "1.0.0" }, "dependencies": { "isobject": { @@ -3775,9 +3569,9 @@ "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", "dev": true, "requires": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" }, "dependencies": { "md5-hex": { @@ -3786,7 +3580,7 @@ "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "dev": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "write-file-atomic": { @@ -3795,9 +3589,9 @@ "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" } } } @@ -3808,8 +3602,8 @@ "integrity": "sha512-ollfFPSshiuYLp7AsrmpkQJ/PxCi6AzV81rCjBwWhyF2QGyUY/vPDMzoh4aUcWyucheRglG2LaS5qkIEfLRh6A==", "dev": true, "requires": { - "boom": "7.x.x", - "hoek": "5.x.x" + "boom": "7.2.0", + "hoek": "5.0.3" } }, "call-matcher": { @@ -3818,10 +3612,10 @@ "integrity": "sha1-UTTQd5hPcSpU2tPL9i3ijc5BbKg=", "dev": true, "requires": { - "core-js": "^2.0.0", - "deep-equal": "^1.0.0", - "espurify": "^1.6.0", - "estraverse": "^4.0.0" + "core-js": "2.5.7", + "deep-equal": "1.0.1", + "espurify": "1.8.0", + "estraverse": "4.2.0" } }, "call-me-maybe": { @@ -3842,7 +3636,7 @@ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { - "callsites": "^0.2.0" + "callsites": "0.2.0" } }, "callsites": { @@ -3863,8 +3657,8 @@ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" + "camelcase": "2.1.1", + "map-obj": "1.0.1" } }, "capture-stack-trace": { @@ -3884,10 +3678,10 @@ "integrity": "sha512-cTQTQeKMhWHU0lX8CADE3g1koGJu+AlcWFzAjMX/8P+XbkScGYw3tJsQpe2Oh8q68vOQbOLacz9k+6V/F3Z9DA==", "dev": true, "requires": { - "boom": "7.x.x", - "bounce": "1.x.x", - "hoek": "5.x.x", - "joi": "13.x.x" + "boom": "7.2.0", + "bounce": "1.2.0", + "hoek": "5.0.3", + "joi": "13.4.0" } }, "catbox-memory": { @@ -3896,9 +3690,9 @@ "integrity": "sha512-lhWtutLVhsq3Mucxk2McxBPPibJ34WcHuWFz3xqub9u9Ve/IQYpZv3ijLhQXfQped9DXozURiaq9O3aZpP91eg==", "dev": true, "requires": { - "big-time": "2.x.x", - "boom": "7.x.x", - "hoek": "5.x.x" + "big-time": "2.0.1", + "boom": "7.2.0", + "hoek": "5.0.3" } }, "catharsis": { @@ -3907,7 +3701,7 @@ "integrity": "sha1-mMyJDKZS3S7w5ws3klMQ/56Q/Is=", "dev": true, "requires": { - "underscore-contrib": "~0.3.0" + "underscore-contrib": "0.3.0" } }, "center-align": { @@ -3917,8 +3711,8 @@ "dev": true, "optional": true, "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "align-text": "0.1.4", + "lazy-cache": "1.0.4" } }, "chai": { @@ -3927,12 +3721,12 @@ "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", "dev": true, "requires": { - "assertion-error": "^1.0.1", - "check-error": "^1.0.1", - "deep-eql": "^3.0.0", - "get-func-name": "^2.0.0", - "pathval": "^1.0.0", - "type-detect": "^4.0.0" + "assertion-error": "1.1.0", + "check-error": "1.0.2", + "deep-eql": "3.0.1", + "get-func-name": "2.0.0", + "pathval": "1.1.0", + "type-detect": "4.0.8" } }, "chalk": { @@ -3941,9 +3735,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.0" } }, "chardet": { @@ -3964,15 +3758,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "dev": true, "requires": { - "anymatch": "^1.3.0", - "async-each": "^1.0.0", - "fsevents": "^1.0.0", - "glob-parent": "^2.0.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0" + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.2.4", + "glob-parent": "2.0.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" } }, "ci-info": { @@ -3993,9 +3787,9 @@ "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", "dev": true, "requires": { - "async": "^1.5.2", - "glob": "^7.0.0", - "resolve": "^1.1.6" + "async": "1.5.2", + "glob": "7.1.2", + "resolve": "1.1.7" } }, "class-utils": { @@ -4004,10 +3798,10 @@ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" }, "dependencies": { "define-property": { @@ -4016,7 +3810,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "isobject": { @@ -4051,7 +3845,7 @@ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "restore-cursor": "^2.0.0" + "restore-cursor": "2.0.0" } }, "cli-spinners": { @@ -4066,8 +3860,8 @@ "integrity": "sha512-bAtZo0u82gCfaAGfSNxUdTI9mNyza7D8w4CVCcaOsy7sgwDzvx6ekr6cuWJqY3UGzgnQ1+4wgENup5eIhgxEYA==", "dev": true, "requires": { - "slice-ansi": "^1.0.0", - "string-width": "^2.0.0" + "slice-ansi": "1.0.0", + "string-width": "2.1.1" } }, "cli-width": { @@ -4083,8 +3877,8 @@ "dev": true, "optional": true, "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", + "center-align": "0.1.3", + "right-align": "0.1.3", "wordwrap": "0.0.2" }, "dependencies": { @@ -4103,7 +3897,7 @@ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "dev": true, "requires": { - "mimic-response": "^1.0.0" + "mimic-response": "1.0.0" } }, "co": { @@ -4117,7 +3911,7 @@ "integrity": "sha1-QT59tvWJOmC5Qs9JLEvsk9tBWrc=", "dev": true, "requires": { - "pinkie-promise": "^1.0.0" + "pinkie-promise": "1.0.0" } }, "code-excerpt": { @@ -4126,7 +3920,7 @@ "integrity": "sha512-tJLhH3EpFm/1x7heIW0hemXJTUU5EWl2V0EIX558jp05Mt1U6DVryCgkp3l37cxqs+DNbNgxG43SkwJXpQ14Jw==", "dev": true, "requires": { - "convert-to-spaces": "^1.0.1" + "convert-to-spaces": "1.0.2" } }, "code-point-at": { @@ -4142,7 +3936,7 @@ "dev": true, "requires": { "argv": "0.0.2", - "request": "^2.81.0", + "request": "2.87.0", "urlgrey": "0.4.4" } }, @@ -4152,8 +3946,8 @@ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "map-visit": "1.0.0", + "object-visit": "1.0.1" } }, "color-convert": { @@ -4182,7 +3976,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "requires": { - "delayed-stream": "~1.0.0" + "delayed-stream": "1.0.0" } }, "commander": { @@ -4221,10 +4015,10 @@ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "buffer-from": "1.1.0", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "typedarray": "0.0.6" } }, "concordance": { @@ -4233,17 +4027,17 @@ "integrity": "sha512-CZBzJ3/l5QJjlZM20WY7+5GP5pMTw+1UEbThcpMw8/rojsi5sBCiD8ZbBLtD+jYpRGAkwuKuqk108c154V9eyQ==", "dev": true, "requires": { - "date-time": "^2.1.0", - "esutils": "^2.0.2", - "fast-diff": "^1.1.1", - "function-name-support": "^0.2.0", - "js-string-escape": "^1.0.1", - "lodash.clonedeep": "^4.5.0", - "lodash.flattendeep": "^4.4.0", - "lodash.merge": "^4.6.0", - "md5-hex": "^2.0.0", - "semver": "^5.3.0", - "well-known-symbols": "^1.0.0" + "date-time": "2.1.0", + "esutils": "2.0.2", + "fast-diff": "1.1.2", + "function-name-support": "0.2.0", + "js-string-escape": "1.0.1", + "lodash.clonedeep": "4.5.0", + "lodash.flattendeep": "4.4.0", + "lodash.merge": "4.6.1", + "md5-hex": "2.0.0", + "semver": "5.5.0", + "well-known-symbols": "1.0.0" }, "dependencies": { "date-time": { @@ -4252,7 +4046,7 @@ "integrity": "sha512-/9+C44X7lot0IeiyfgJmETtRMhBidBYM2QFFIkGa0U1k+hSyY87Nw7PY3eDqpvCBm7I3WCSfPeZskW/YYq6m4g==", "dev": true, "requires": { - "time-zone": "^1.0.0" + "time-zone": "1.0.0" } } } @@ -4263,12 +4057,12 @@ "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", "dev": true, "requires": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" + "dot-prop": "4.2.0", + "graceful-fs": "4.1.11", + "make-dir": "1.3.0", + "unique-string": "1.0.0", + "write-file-atomic": "2.3.0", + "xdg-basedir": "3.0.0" } }, "content": { @@ -4277,7 +4071,7 @@ "integrity": "sha512-wDP6CTWDpwCf791fNxlCCkZGRkrNzSEU/8ju9Hnr3Uc5mF/gFR5W+fcoGm6zUSlVPdSXYn5pCbySADKj7YM4Cg==", "dev": true, "requires": { - "boom": "7.x.x" + "boom": "7.2.0" } }, "content-disposition": { @@ -4328,8 +4122,8 @@ "integrity": "sha1-fIphX1SBxhq58WyDNzG8uPZjuZs=", "dev": true, "requires": { - "depd": "~1.1.1", - "keygrip": "~1.0.2" + "depd": "1.1.2", + "keygrip": "1.0.2" } }, "copy-descriptor": { @@ -4344,8 +4138,8 @@ "integrity": "sha1-+F4s+b/tKPdzzIs/pcW2m9wC/j8=", "dev": true, "requires": { - "buf-compare": "^1.0.0", - "is-error": "^2.2.0" + "buf-compare": "1.0.1", + "is-error": "2.2.1" } }, "core-js": { @@ -4365,11 +4159,11 @@ "integrity": "sha512-OtHMgPugkgwHlbph25wlMKd358lZNhX1Y2viUpPoFmlBPlEiPIRhztYWha11grbGPnlM+urp5saVmwsChCIOEg==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "nested-error-stacks": "^2.0.0", - "pify": "^3.0.0", - "safe-buffer": "^5.0.1" + "graceful-fs": "4.1.11", + "make-dir": "1.3.0", + "nested-error-stacks": "2.0.1", + "pify": "3.0.0", + "safe-buffer": "5.1.2" } }, "cpy": { @@ -4378,10 +4172,10 @@ "integrity": "sha512-Zo52tXKLJcgy/baacn6KaNoRAakkl2wb+R4u6qJ4wlD0uchncwRQcIk66PlGlkzuToCJO6A6PWX27Tdwc8LU2g==", "dev": true, "requires": { - "arrify": "^1.0.1", - "cp-file": "^6.0.0", - "globby": "^8.0.1", - "nested-error-stacks": "^2.0.0" + "arrify": "1.0.1", + "cp-file": "6.0.0", + "globby": "8.0.1", + "nested-error-stacks": "2.0.1" }, "dependencies": { "globby": { @@ -4390,13 +4184,13 @@ "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", "dev": true, "requires": { - "array-union": "^1.0.1", - "dir-glob": "^2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" + "array-union": "1.0.2", + "dir-glob": "2.0.0", + "fast-glob": "2.2.2", + "glob": "7.1.2", + "ignore": "3.3.10", + "pify": "3.0.0", + "slash": "1.0.0" } } } @@ -4407,8 +4201,8 @@ "integrity": "sha512-LzrtY3lBWvFZcw4lXgkEbbDUd7y78juC3C5l7gj3UyezMEZF0Be9fjCVLN1HoZAzdMDeC3KHehWpHBJvgVAPkw==", "dev": true, "requires": { - "cpy": "^7.0.0", - "meow": "^5.0.0" + "cpy": "7.0.1", + "meow": "5.0.0" }, "dependencies": { "camelcase": { @@ -4423,9 +4217,9 @@ "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", "dev": true, "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" + "camelcase": "4.1.0", + "map-obj": "2.0.0", + "quick-lru": "1.1.0" } }, "load-json-file": { @@ -4434,10 +4228,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.11", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" } }, "map-obj": { @@ -4452,15 +4246,15 @@ "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", "dev": true, "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0", - "yargs-parser": "^10.0.0" + "camelcase-keys": "4.2.0", + "decamelize-keys": "1.1.0", + "loud-rejection": "1.6.0", + "minimist-options": "3.0.2", + "normalize-package-data": "2.4.0", + "read-pkg-up": "3.0.0", + "redent": "2.0.0", + "trim-newlines": "2.0.0", + "yargs-parser": "10.0.0" } }, "parse-json": { @@ -4469,8 +4263,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" } }, "path-type": { @@ -4479,7 +4273,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "read-pkg": { @@ -4488,9 +4282,9 @@ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" + "load-json-file": "4.0.0", + "normalize-package-data": "2.4.0", + "path-type": "3.0.0" } }, "read-pkg-up": { @@ -4499,8 +4293,8 @@ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" + "find-up": "2.1.0", + "read-pkg": "3.0.0" } }, "redent": { @@ -4509,8 +4303,8 @@ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", "dev": true, "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" + "indent-string": "3.2.0", + "strip-indent": "2.0.0" } }, "strip-indent": { @@ -4531,7 +4325,7 @@ "integrity": "sha512-+DHejWujTVYeMHLff8U96rLc4uE4Emncoftvn5AjhB1Jw1pWxLzgBUT/WYbPrHmy6YPEBTZQx5myHhVcuuu64g==", "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } } } @@ -4542,7 +4336,7 @@ "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "dev": true, "requires": { - "capture-stack-trace": "^1.0.0" + "capture-stack-trace": "1.0.0" } }, "cross-spawn": { @@ -4551,9 +4345,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.1" } }, "cryptiles": { @@ -4562,7 +4356,7 @@ "integrity": "sha512-YuQUPbcOmaZsdvxJZ25DCA1W+lLIRoPJKBDKin+St1RCYEERSfoe1d25B1MvWNHN3e8SpFSVsqYvEUjp8J9H2w==", "dev": true, "requires": { - "boom": "7.x.x" + "boom": "7.2.0" } }, "crypto-random-string": { @@ -4577,10 +4371,10 @@ "integrity": "sha1-UjHt/BxxUlEuxFeBB2p6l/9SXAw=", "dev": true, "requires": { - "csv-generate": "^1.1.2", - "csv-parse": "^1.3.3", - "csv-stringify": "^1.1.2", - "stream-transform": "^0.2.2" + "csv-generate": "1.1.2", + "csv-parse": "1.3.3", + "csv-stringify": "1.1.2", + "stream-transform": "0.2.2" } }, "csv-generate": { @@ -4601,7 +4395,7 @@ "integrity": "sha1-d6QVJlgbzjOA8SsA18W7rHDIK1g=", "dev": true, "requires": { - "lodash.get": "~4.4.2" + "lodash.get": "4.4.2" } }, "currently-unhandled": { @@ -4610,7 +4404,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "array-find-index": "^1.0.1" + "array-find-index": "1.0.2" } }, "d": { @@ -4619,7 +4413,7 @@ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "dev": true, "requires": { - "es5-ext": "^0.10.9" + "es5-ext": "0.10.45" } }, "dashdash": { @@ -4627,7 +4421,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "date-time": { @@ -4656,8 +4450,8 @@ "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", "dev": true, "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" + "decamelize": "1.2.0", + "map-obj": "1.0.1" } }, "decode-uri-component": { @@ -4672,7 +4466,7 @@ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "dev": true, "requires": { - "mimic-response": "^1.0.0" + "mimic-response": "1.0.0" } }, "deep-eql": { @@ -4681,7 +4475,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "^4.0.0" + "type-detect": "4.0.8" } }, "deep-equal": { @@ -4708,8 +4502,8 @@ "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "dev": true, "requires": { - "foreach": "^2.0.5", - "object-keys": "^1.0.8" + "foreach": "2.0.5", + "object-keys": "1.0.12" } }, "define-property": { @@ -4718,8 +4512,8 @@ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "is-descriptor": "1.0.2", + "isobject": "3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -4728,7 +4522,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -4737,7 +4531,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -4746,9 +4540,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -4771,13 +4565,13 @@ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" + "globby": "5.0.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.1", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "rimraf": "2.6.2" }, "dependencies": { "globby": { @@ -4786,12 +4580,12 @@ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pify": { @@ -4812,7 +4606,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } } } @@ -4846,7 +4640,7 @@ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "detect-node": { @@ -4873,8 +4667,8 @@ "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", "dev": true, "requires": { - "arrify": "^1.0.1", - "path-type": "^3.0.0" + "arrify": "1.0.1", + "path-type": "3.0.0" }, "dependencies": { "path-type": { @@ -4883,7 +4677,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } } } @@ -4894,7 +4688,7 @@ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "esutils": "^2.0.2" + "esutils": "2.0.2" } }, "dom-serializer": { @@ -4903,8 +4697,8 @@ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "dev": true, "requires": { - "domelementtype": "~1.1.1", - "entities": "~1.1.1" + "domelementtype": "1.1.3", + "entities": "1.1.1" }, "dependencies": { "domelementtype": { @@ -4927,7 +4721,7 @@ "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "dev": true, "requires": { - "domelementtype": "1" + "domelementtype": "1.3.0" } }, "domutils": { @@ -4936,8 +4730,8 @@ "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "dev": true, "requires": { - "dom-serializer": "0", - "domelementtype": "1" + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" } }, "dot-prop": { @@ -4946,7 +4740,7 @@ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", "dev": true, "requires": { - "is-obj": "^1.0.0" + "is-obj": "1.0.1" } }, "dtrace-provider": { @@ -4956,7 +4750,7 @@ "dev": true, "optional": true, "requires": { - "nan": "^2.10.0" + "nan": "2.10.0" } }, "duplexer3": { @@ -4970,10 +4764,10 @@ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" + "end-of-stream": "1.4.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "stream-shift": "1.0.0" } }, "eastasianwidth": { @@ -4988,7 +4782,7 @@ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "optional": true, "requires": { - "jsbn": "~0.1.0" + "jsbn": "0.1.1" } }, "ecdsa-sig-formatter": { @@ -4996,7 +4790,7 @@ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz", "integrity": "sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM=", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "ee-first": { @@ -5011,8 +4805,8 @@ "integrity": "sha512-tP2WqM7QzrPguCCQEQfFFDF+6Pw6YWLQal3+GHQaV+0uIr0S+jyREQPWljE02zFCYPFYLZ3LosiRV+OzTrxPpQ==", "dev": true, "requires": { - "core-js": "^2.0.0", - "empower-core": "^1.2.0" + "core-js": "2.5.7", + "empower-core": "1.2.0" }, "dependencies": { "empower-core": { @@ -5022,7 +4816,7 @@ "dev": true, "requires": { "call-signature": "0.0.2", - "core-js": "^2.0.0" + "core-js": "2.5.7" } } } @@ -5033,7 +4827,7 @@ "integrity": "sha512-Ylck0Q6p8y/LpNzYeBccaxAPm2ZyuqBgErgZpO9KT0HuQWF0sJckBKCLmgS1/DEXEiyBi9XtYh3clZm5cAdARw==", "dev": true, "requires": { - "estraverse": "^4.2.0" + "estraverse": "4.2.0" } }, "empower-core": { @@ -5043,7 +4837,7 @@ "dev": true, "requires": { "call-signature": "0.0.2", - "core-js": "^2.0.0" + "core-js": "2.5.7" } }, "encodeurl": { @@ -5057,7 +4851,7 @@ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "requires": { - "once": "^1.4.0" + "once": "1.4.0" } }, "ent": { @@ -5083,7 +4877,7 @@ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "error-inject": { @@ -5098,9 +4892,9 @@ "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", "dev": true, "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.1", - "next-tick": "1" + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1", + "next-tick": "1.0.0" } }, "es6-error": { @@ -5115,9 +4909,9 @@ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "dev": true, "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" + "d": "1.0.0", + "es5-ext": "0.10.45", + "es6-symbol": "3.1.1" } }, "es6-map": { @@ -5126,12 +4920,12 @@ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", "dev": true, "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-set": "~0.1.5", - "es6-symbol": "~3.1.1", - "event-emitter": "~0.3.5" + "d": "1.0.0", + "es5-ext": "0.10.45", + "es6-iterator": "2.0.3", + "es6-set": "0.1.5", + "es6-symbol": "3.1.1", + "event-emitter": "0.3.5" } }, "es6-set": { @@ -5140,11 +4934,11 @@ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", "dev": true, "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", + "d": "1.0.0", + "es5-ext": "0.10.45", + "es6-iterator": "2.0.3", "es6-symbol": "3.1.1", - "event-emitter": "~0.3.5" + "event-emitter": "0.3.5" } }, "es6-symbol": { @@ -5153,8 +4947,8 @@ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", "dev": true, "requires": { - "d": "1", - "es5-ext": "~0.10.14" + "d": "1.0.0", + "es5-ext": "0.10.45" } }, "es6-weak-map": { @@ -5163,10 +4957,10 @@ "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", "dev": true, "requires": { - "d": "1", - "es5-ext": "^0.10.14", - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" + "d": "1.0.0", + "es5-ext": "0.10.45", + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1" } }, "escallmatch": { @@ -5175,8 +4969,8 @@ "integrity": "sha1-UAmdhugJGwkt+N37w/mm+wWgJNA=", "dev": true, "requires": { - "call-matcher": "^1.0.0", - "esprima": "^2.0.0" + "call-matcher": "1.0.1", + "esprima": "2.7.3" }, "dependencies": { "esprima": { @@ -5211,11 +5005,11 @@ "integrity": "sha512-fjUOf8johsv23WuIKdNQU4P9t9jhQ4Qzx6pC2uW890OloK3Zs1ZAoCNpg/2larNF501jLl3UNy0kIRcF6VI22g==", "dev": true, "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.6.1" }, "dependencies": { "esprima": { @@ -5239,10 +5033,10 @@ "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", "dev": true, "requires": { - "es6-map": "^0.1.3", - "es6-weak-map": "^2.0.1", - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "es6-map": "0.1.5", + "es6-weak-map": "2.0.2", + "esrecurse": "4.2.1", + "estraverse": "4.2.0" } }, "eslint": { @@ -5251,44 +5045,44 @@ "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", "dev": true, "requires": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.4", - "esquery": "^1.0.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "regexpp": "^1.0.1", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", + "ajv": "5.5.2", + "babel-code-frame": "6.26.0", + "chalk": "2.4.1", + "concat-stream": "1.6.2", + "cross-spawn": "5.1.0", + "debug": "3.1.0", + "doctrine": "2.1.0", + "eslint-scope": "3.7.1", + "eslint-visitor-keys": "1.0.0", + "espree": "3.5.4", + "esquery": "1.0.1", + "esutils": "2.0.2", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.2", + "globals": "11.7.0", + "ignore": "3.3.10", + "imurmurhash": "0.1.4", + "inquirer": "3.3.0", + "is-resolvable": "1.1.0", + "js-yaml": "3.12.0", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.5", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.0", + "regexpp": "1.1.0", + "require-uncached": "1.0.3", + "semver": "5.5.0", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", "table": "4.0.2", - "text-table": "~0.2.0" + "text-table": "0.2.0" }, "dependencies": { "globals": { @@ -5305,7 +5099,7 @@ "integrity": "sha512-ag8YEyBXsm3nmOv1Hz991VtNNDMRa+MNy8cY47Pl4bw6iuzqKbJajXdqUpiw13STdLLrznxgm1hj9NhxeOYq0A==", "dev": true, "requires": { - "get-stdin": "^5.0.1" + "get-stdin": "5.0.1" }, "dependencies": { "get-stdin": { @@ -5322,10 +5116,10 @@ "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", "dev": true, "requires": { - "ignore": "^3.3.6", - "minimatch": "^3.0.4", - "resolve": "^1.3.3", - "semver": "^5.4.1" + "ignore": "3.3.10", + "minimatch": "3.0.4", + "resolve": "1.8.1", + "semver": "5.5.0" }, "dependencies": { "resolve": { @@ -5334,19 +5128,19 @@ "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "dev": true, "requires": { - "path-parse": "^1.0.5" + "path-parse": "1.0.5" } } } }, "eslint-plugin-prettier": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.0.tgz", - "integrity": "sha512-floiaI4F7hRkTrFe8V2ItOK97QYrX75DjmdzmVITZoAP6Cn06oEDPQRsO6MlHEP/u2SxI3xQ52Kpjw6j5WGfeQ==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.1.tgz", + "integrity": "sha512-wNZ2z0oVCWnf+3BSI7roS+z4gGu2AwcPKUek+SlLZMZg+X0KbZLsB2knul7fd0K3iuIp402HIYzm4f2+OyfXxA==", "dev": true, "requires": { - "fast-diff": "^1.1.1", - "jest-docblock": "^21.0.0" + "fast-diff": "1.1.2", + "jest-docblock": "21.2.0" } }, "eslint-scope": { @@ -5355,8 +5149,8 @@ "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", "dev": true, "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "esrecurse": "4.2.1", + "estraverse": "4.2.0" } }, "eslint-visitor-keys": { @@ -5371,16 +5165,16 @@ "integrity": "sha512-F4TY1qYJB1aUyzB03NsZksZzUQmQoEBaTUjRJGR30GxbkbjKI41NhCyYjrF+bGgWN7x/ZsczYppRpz/0WdI0ug==", "dev": true, "requires": { - "array-find": "^1.0.0", - "escallmatch": "^1.5.0", - "escodegen": "^1.7.0", - "escope": "^3.3.0", - "espower-location-detector": "^1.0.0", - "espurify": "^1.3.0", - "estraverse": "^4.1.0", - "source-map": "^0.5.0", - "type-name": "^2.0.0", - "xtend": "^4.0.0" + "array-find": "1.0.0", + "escallmatch": "1.5.0", + "escodegen": "1.10.0", + "escope": "3.6.0", + "espower-location-detector": "1.0.0", + "espurify": "1.8.0", + "estraverse": "4.2.0", + "source-map": "0.5.7", + "type-name": "2.0.2", + "xtend": "4.0.1" } }, "espower-loader": { @@ -5389,11 +5183,11 @@ "integrity": "sha1-7bRsPFmga6yOpzppXIblxaC8gto=", "dev": true, "requires": { - "convert-source-map": "^1.1.0", - "espower-source": "^2.0.0", - "minimatch": "^3.0.0", - "source-map-support": "^0.4.0", - "xtend": "^4.0.0" + "convert-source-map": "1.5.1", + "espower-source": "2.3.0", + "minimatch": "3.0.4", + "source-map-support": "0.4.18", + "xtend": "4.0.1" }, "dependencies": { "source-map-support": { @@ -5402,7 +5196,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "^0.5.6" + "source-map": "0.5.7" } } } @@ -5413,10 +5207,10 @@ "integrity": "sha1-oXt+zFnTDheeK+9z+0E3cEyzMbU=", "dev": true, "requires": { - "is-url": "^1.2.1", - "path-is-absolute": "^1.0.0", - "source-map": "^0.5.0", - "xtend": "^4.0.0" + "is-url": "1.2.4", + "path-is-absolute": "1.0.1", + "source-map": "0.5.7", + "xtend": "4.0.1" } }, "espower-source": { @@ -5425,17 +5219,17 @@ "integrity": "sha512-Wc4kC4zUAEV7Qt31JRPoBUc5jjowHRylml2L2VaDQ1XEbnqQofGWx+gPR03TZAPokAMl5dqyL36h3ITyMXy3iA==", "dev": true, "requires": { - "acorn": "^5.0.0", - "acorn-es7-plugin": "^1.0.10", - "convert-source-map": "^1.1.1", - "empower-assert": "^1.0.0", - "escodegen": "^1.10.0", - "espower": "^2.1.1", - "estraverse": "^4.0.0", - "merge-estraverse-visitors": "^1.0.0", - "multi-stage-sourcemap": "^0.2.1", - "path-is-absolute": "^1.0.0", - "xtend": "^4.0.0" + "acorn": "5.7.1", + "acorn-es7-plugin": "1.1.7", + "convert-source-map": "1.5.1", + "empower-assert": "1.1.0", + "escodegen": "1.10.0", + "espower": "2.1.1", + "estraverse": "4.2.0", + "merge-estraverse-visitors": "1.0.0", + "multi-stage-sourcemap": "0.2.1", + "path-is-absolute": "1.0.1", + "xtend": "4.0.1" } }, "espree": { @@ -5444,8 +5238,8 @@ "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "dev": true, "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" + "acorn": "5.7.1", + "acorn-jsx": "3.0.1" } }, "esprima": { @@ -5460,7 +5254,7 @@ "integrity": "sha512-jdkJG9jswjKCCDmEridNUuIQei9algr+o66ZZ19610ZoBsiWLRsQGNYS4HGez3Z/DsR0lhANGAqiwBUclPuNag==", "dev": true, "requires": { - "core-js": "^2.0.0" + "core-js": "2.5.7" } }, "esquery": { @@ -5469,7 +5263,7 @@ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { - "estraverse": "^4.0.0" + "estraverse": "4.2.0" } }, "esrecurse": { @@ -5478,7 +5272,7 @@ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "^4.1.0" + "estraverse": "4.2.0" } }, "estraverse": { @@ -5505,8 +5299,8 @@ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", "dev": true, "requires": { - "d": "1", - "es5-ext": "~0.10.14" + "d": "1.0.0", + "es5-ext": "0.10.45" } }, "ewma": { @@ -5515,7 +5309,7 @@ "integrity": "sha512-MYYK17A76cuuyvkR7MnqLW4iFYPEi5Isl2qb8rXiWpLiwFS9dxW/rncuNnjjgSENuVqZQkIuR4+DChVL4g1lnw==", "dev": true, "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "execa": { @@ -5524,13 +5318,13 @@ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" } }, "expand-brackets": { @@ -5539,7 +5333,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "^0.1.0" + "is-posix-bracket": "0.1.1" } }, "expand-range": { @@ -5548,7 +5342,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "^2.1.0" + "fill-range": "2.2.4" } }, "express": { @@ -5557,36 +5351,36 @@ "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", "dev": true, "requires": { - "accepts": "~1.3.5", + "accepts": "1.3.5", "array-flatten": "1.1.1", "body-parser": "1.18.2", "content-disposition": "0.5.2", - "content-type": "~1.0.4", + "content-type": "1.0.4", "cookie": "0.3.1", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", + "depd": "1.1.2", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", "finalhandler": "1.1.1", "fresh": "0.5.2", "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", + "methods": "1.1.2", + "on-finished": "2.3.0", + "parseurl": "1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.3", + "proxy-addr": "2.0.3", "qs": "6.5.1", - "range-parser": "~1.2.0", + "range-parser": "1.2.0", "safe-buffer": "5.1.1", "send": "0.16.2", "serve-static": "1.13.2", "setprototypeof": "1.1.0", - "statuses": "~1.4.0", - "type-is": "~1.6.16", + "statuses": "1.4.0", + "type-is": "1.6.16", "utils-merge": "1.0.1", - "vary": "~1.1.2" + "vary": "1.1.2" }, "dependencies": { "body-parser": { @@ -5596,15 +5390,15 @@ "dev": true, "requires": { "bytes": "3.0.0", - "content-type": "~1.0.4", + "content-type": "1.0.4", "debug": "2.6.9", - "depd": "~1.1.1", - "http-errors": "~1.6.2", + "depd": "1.1.2", + "http-errors": "1.6.3", "iconv-lite": "0.4.19", - "on-finished": "~2.3.0", + "on-finished": "2.3.0", "qs": "6.5.1", "raw-body": "2.3.2", - "type-is": "~1.6.15" + "type-is": "1.6.16" } }, "debug": { @@ -5661,7 +5455,7 @@ "depd": "1.1.1", "inherits": "2.0.3", "setprototypeof": "1.0.3", - "statuses": ">= 1.3.1 < 2" + "statuses": "1.4.0" } }, "setprototypeof": { @@ -5703,8 +5497,8 @@ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -5713,7 +5507,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -5724,9 +5518,9 @@ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" + "chardet": "0.4.2", + "iconv-lite": "0.4.23", + "tmp": "0.0.33" } }, "extglob": { @@ -5735,7 +5529,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "extsprintf": { @@ -5766,12 +5560,12 @@ "integrity": "sha512-TR6zxCKftDQnUAPvkrCWdBgDq/gbqx8A3ApnBrR5rMvpp6+KMJI0Igw7fkWPgeVK0uhRXTXdvO3O+YP0CaUX2g==", "dev": true, "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.0.1", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.1", - "micromatch": "^3.1.10" + "@mrmlnc/readdir-enhanced": "2.2.1", + "@nodelib/fs.stat": "1.1.0", + "glob-parent": "3.1.0", + "is-glob": "4.0.0", + "merge2": "1.2.2", + "micromatch": "3.1.10" }, "dependencies": { "arr-diff": { @@ -5792,16 +5586,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "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.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -5810,7 +5604,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -5830,13 +5624,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "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" }, "dependencies": { "define-property": { @@ -5845,7 +5639,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -5854,7 +5648,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -5863,7 +5657,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -5872,7 +5666,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -5883,7 +5677,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -5892,7 +5686,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -5903,9 +5697,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -5922,14 +5716,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "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.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "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" }, "dependencies": { "define-property": { @@ -5938,7 +5732,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -5947,7 +5741,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -5958,10 +5752,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -5970,7 +5764,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -5981,8 +5775,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "is-glob": "3.1.0", + "path-dirname": "1.0.2" }, "dependencies": { "is-glob": { @@ -5991,7 +5785,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "^2.1.0" + "is-extglob": "2.1.1" } } } @@ -6002,7 +5796,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -6011,7 +5805,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -6020,9 +5814,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-extglob": { @@ -6037,7 +5831,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "is-extglob": "2.1.1" } }, "is-number": { @@ -6046,7 +5840,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -6055,7 +5849,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -6078,19 +5872,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "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.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } } } @@ -6112,7 +5906,7 @@ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "escape-string-regexp": "^1.0.5" + "escape-string-regexp": "1.0.5" } }, "file-entry-cache": { @@ -6121,8 +5915,8 @@ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "dev": true, "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" + "flat-cache": "1.3.0", + "object-assign": "4.1.1" } }, "filename-regex": { @@ -6137,8 +5931,8 @@ "integrity": "sha1-mo+jb06K1jTjv2tPPIiCVRRS6yA=", "dev": true, "requires": { - "is-object": "~1.0.1", - "merge-descriptors": "~1.0.0" + "is-object": "1.0.1", + "merge-descriptors": "1.0.1" } }, "fill-range": { @@ -6147,11 +5941,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "dev": true, "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "3.0.0", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" } }, "finalhandler": { @@ -6161,12 +5955,12 @@ "dev": true, "requires": { "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "statuses": "~1.4.0", - "unpipe": "~1.0.0" + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.4.0", + "unpipe": "1.0.0" }, "dependencies": { "debug": { @@ -6192,9 +5986,9 @@ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", "dev": true, "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^2.0.0" + "commondir": "1.0.1", + "make-dir": "1.3.0", + "pkg-dir": "2.0.0" } }, "find-my-way": { @@ -6203,9 +5997,9 @@ "integrity": "sha512-dYVjhSI/7WwM2tPXIpBp4YwPFpFEJOpNCPCTCq2vca/0t0OfqDOdynsWnMizanJ4tvmBpQbEek9ZKGmf24H3Ig==", "dev": true, "requires": { - "fast-decode-uri-component": "^1.0.0", - "safe-regex": "^1.1.0", - "semver-store": "^0.2.0" + "fast-decode-uri-component": "1.0.0", + "safe-regex": "1.1.0", + "semver-store": "0.2.2" } }, "find-up": { @@ -6214,7 +6008,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "flat-cache": { @@ -6223,10 +6017,10 @@ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "dev": true, "requires": { - "circular-json": "^0.3.1", - "del": "^2.0.2", - "graceful-fs": "^4.1.2", - "write": "^0.2.1" + "circular-json": "0.3.3", + "del": "2.2.2", + "graceful-fs": "4.1.11", + "write": "0.2.1" } }, "fn-name": { @@ -6240,7 +6034,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.0.tgz", "integrity": "sha512-fdrt472/9qQ6Kgjvb935ig6vJCuofpBUD14f9Vb+SLlm7xIe4Qva5gey8EKtv8lp7ahE1wilg3xL1znpVGtZIA==", "requires": { - "debug": "^3.1.0" + "debug": "3.1.0" } }, "for-in": { @@ -6255,7 +6049,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { - "for-in": "^1.0.1" + "for-in": "1.0.2" } }, "foreach": { @@ -6274,9 +6068,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "requires": { - "asynckit": "^0.4.0", + "asynckit": "0.4.0", "combined-stream": "1.0.6", - "mime-types": "^2.1.12" + "mime-types": "2.1.18" } }, "formidable": { @@ -6297,7 +6091,7 @@ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { - "map-cache": "^0.2.2" + "map-cache": "0.2.2" } }, "fresh": { @@ -6312,8 +6106,8 @@ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "inherits": "2.0.3", + "readable-stream": "2.3.6" } }, "fs-extra": { @@ -6322,9 +6116,9 @@ "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.2" } }, "fs.realpath": { @@ -6340,93 +6134,81 @@ "dev": true, "optional": true, "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" + "nan": "2.10.0", + "node-pre-gyp": "0.10.0" }, "dependencies": { "abbrev": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "bundled": true, "dev": true, "optional": true }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "bundled": true, "dev": true }, "aproba": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "bundled": true, "dev": true, "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "bundled": true, "dev": true, "optional": true, "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "delegates": "1.0.0", + "readable-stream": "2.3.6" } }, "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "bundled": true, "dev": true }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "bundled": true, "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, "chownr": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", + "bundled": true, "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "bundled": true, "dev": true }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "bundled": true, "dev": true }, "console-control-strings": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "bundled": true, "dev": true }, "core-util-is": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "bundled": true, "dev": true, "optional": true }, "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -6435,180 +6217,160 @@ }, "deep-extend": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", + "bundled": true, "dev": true, "optional": true }, "delegates": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "bundled": true, "dev": true, "optional": true }, "detect-libc": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "bundled": true, "dev": true, "optional": true }, "fs-minipass": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", - "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", + "bundled": true, "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.2.4" } }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "bundled": true, "dev": true, "optional": true }, "gauge": { "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "bundled": true, "dev": true, "optional": true, "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" + "aproba": "1.2.0", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" } }, "glob": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "bundled": true, "dev": true, "optional": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "bundled": true, "dev": true, "optional": true }, "iconv-lite": { "version": "0.4.21", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz", - "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", + "bundled": true, "dev": true, "optional": true, "requires": { - "safer-buffer": "^2.1.0" + "safer-buffer": "2.1.2" } }, "ignore-walk": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", - "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", + "bundled": true, "dev": true, "optional": true, "requires": { - "minimatch": "^3.0.4" + "minimatch": "3.0.4" } }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "dev": true, "optional": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "bundled": true, "dev": true }, "ini": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "bundled": true, "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "bundled": true, "dev": true, "optional": true }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "bundled": true, "dev": true }, "minipass": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.4.tgz", - "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", + "bundled": true, "dev": true, "requires": { - "safe-buffer": "^5.1.1", - "yallist": "^3.0.0" + "safe-buffer": "5.1.1", + "yallist": "3.0.2" } }, "minizlib": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", - "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", + "bundled": true, "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.2.4" } }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "dev": true, "requires": { "minimist": "0.0.8" @@ -6616,162 +6378,145 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "bundled": true, "dev": true, "optional": true }, "needle": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.2.0.tgz", - "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", + "bundled": true, "dev": true, "optional": true, "requires": { - "debug": "^2.1.2", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" + "debug": "2.6.9", + "iconv-lite": "0.4.21", + "sax": "1.2.4" } }, "node-pre-gyp": { "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.10.0.tgz", - "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==", + "bundled": true, "dev": true, "optional": true, "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.0", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.1.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" + "detect-libc": "1.0.3", + "mkdirp": "0.5.1", + "needle": "2.2.0", + "nopt": "4.0.1", + "npm-packlist": "1.1.10", + "npmlog": "4.1.2", + "rc": "1.2.7", + "rimraf": "2.6.2", + "semver": "5.5.0", + "tar": "4.4.1" } }, "nopt": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "bundled": true, "dev": true, "optional": true, "requires": { - "abbrev": "1", - "osenv": "^0.1.4" + "abbrev": "1.1.1", + "osenv": "0.1.5" } }, "npm-bundled": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.3.tgz", - "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", + "bundled": true, "dev": true, "optional": true }, "npm-packlist": { "version": "1.1.10", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.10.tgz", - "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", + "bundled": true, "dev": true, "optional": true, "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.3" } }, "npmlog": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "bundled": true, "dev": true, "optional": true, "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" } }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "bundled": true, "dev": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "bundled": true, "dev": true, "optional": true }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "dev": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "bundled": true, "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "bundled": true, "dev": true, "optional": true }, "osenv": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "bundled": true, "dev": true, "optional": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "bundled": true, "dev": true, "optional": true }, "process-nextick-args": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "bundled": true, "dev": true, "optional": true }, "rc": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz", - "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", + "bundled": true, "dev": true, "optional": true, "requires": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "deep-extend": "0.5.1", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" }, "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "bundled": true, "dev": true, "optional": true } @@ -6779,151 +6524,134 @@ }, "readable-stream": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "bundled": true, "dev": true, "optional": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" } }, "rimraf": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "bundled": true, "dev": true, "optional": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "safe-buffer": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "bundled": true, "dev": true }, "safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "bundled": true, "dev": true, "optional": true }, "sax": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "bundled": true, "dev": true, "optional": true }, "semver": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "bundled": true, "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "bundled": true, "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "bundled": true, "dev": true, "optional": true }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "bundled": true, "dev": true, "optional": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.1" } }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-json-comments": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "bundled": true, "dev": true, "optional": true }, "tar": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.1.tgz", - "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", + "bundled": true, "dev": true, "optional": true, "requires": { - "chownr": "^1.0.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.2.4", - "minizlib": "^1.1.0", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.1", - "yallist": "^3.0.2" + "chownr": "1.0.1", + "fs-minipass": "1.2.5", + "minipass": "2.2.4", + "minizlib": "1.1.0", + "mkdirp": "0.5.1", + "safe-buffer": "5.1.1", + "yallist": "3.0.2" } }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "bundled": true, "dev": true, "optional": true }, "wide-align": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "bundled": true, "dev": true, "optional": true, "requires": { - "string-width": "^1.0.2" + "string-width": "1.0.2" } }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "bundled": true, "dev": true }, "yallist": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", + "bundled": true, "dev": true } } @@ -6945,8 +6673,8 @@ "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.6.3.tgz", "integrity": "sha512-MSmczZctbz91AxCvqp9GHBoZOSbJKAICV7Ow/AIWSJZRrRchUd5NL1b2P4OfP+4m490BEUPhhARfpHdqCxuCvg==", "requires": { - "axios": "^0.18.0", - "extend": "^3.0.1", + "axios": "0.18.0", + "extend": "3.0.1", "retry-axios": "0.3.2" } }, @@ -6991,7 +6719,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "glob": { @@ -7000,12 +6728,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "glob-base": { @@ -7014,8 +6742,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" + "glob-parent": "2.0.0", + "is-glob": "2.0.1" } }, "glob-parent": { @@ -7024,7 +6752,7 @@ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { - "is-glob": "^2.0.0" + "is-glob": "2.0.1" } }, "glob-to-regexp": { @@ -7039,7 +6767,7 @@ "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "dev": true, "requires": { - "ini": "^1.3.4" + "ini": "1.3.5" } }, "globals": { @@ -7054,11 +6782,11 @@ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "dev": true, "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "array-union": "1.0.2", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" }, "dependencies": { "pify": { @@ -7079,7 +6807,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } } } @@ -7089,13 +6817,13 @@ "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-1.6.1.tgz", "integrity": "sha512-jYiWC8NA9n9OtQM7ANn0Tk464do9yhKEtaJ72pKcaBiEwn4LwcGYIYOfwtfsSm3aur/ed3tlSxbmg24IAT6gAg==", "requires": { - "axios": "^0.18.0", - "gcp-metadata": "^0.6.3", - "gtoken": "^2.3.0", - "jws": "^3.1.5", - "lodash.isstring": "^4.0.1", - "lru-cache": "^4.1.3", - "retry-axios": "^0.3.2" + "axios": "0.18.0", + "gcp-metadata": "0.6.3", + "gtoken": "2.3.0", + "jws": "3.1.5", + "lodash.isstring": "4.0.1", + "lru-cache": "4.1.3", + "retry-axios": "0.3.2" } }, "google-p12-pem": { @@ -7103,8 +6831,8 @@ "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-1.0.2.tgz", "integrity": "sha512-+EuKr4CLlGsnXx4XIJIVkcKYrsa2xkAmCvxRhX2HsazJzUBAJ35wARGeApHUn4nNfPD03Vl057FskNr20VaCyg==", "requires": { - "node-forge": "^0.7.4", - "pify": "^3.0.0" + "node-forge": "0.7.5", + "pify": "3.0.0" } }, "got": { @@ -7113,23 +6841,23 @@ "integrity": "sha512-giadqJpXIwjY+ZsuWys8p2yjZGhOHiU4hiJHjS/oeCxw1u8vANQz3zPlrxW2Zw/siCXsSMI3hvzWGcnFyujyAg==", "dev": true, "requires": { - "@sindresorhus/is": "^0.7.0", - "cacheable-request": "^2.1.1", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "into-stream": "^3.1.0", - "is-retry-allowed": "^1.1.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "mimic-response": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^2.0.1", - "pify": "^3.0.0", - "safe-buffer": "^5.1.1", - "timed-out": "^4.0.1", - "url-parse-lax": "^3.0.0", - "url-to-options": "^1.0.1" + "@sindresorhus/is": "0.7.0", + "cacheable-request": "2.1.4", + "decompress-response": "3.3.0", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "into-stream": "3.1.0", + "is-retry-allowed": "1.1.0", + "isurl": "1.0.0", + "lowercase-keys": "1.0.1", + "mimic-response": "1.0.0", + "p-cancelable": "0.3.0", + "p-timeout": "2.0.1", + "pify": "3.0.0", + "safe-buffer": "5.1.2", + "timed-out": "4.0.1", + "url-parse-lax": "3.0.0", + "url-to-options": "1.0.1" }, "dependencies": { "prepend-http": { @@ -7144,7 +6872,7 @@ "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "dev": true, "requires": { - "prepend-http": "^2.0.0" + "prepend-http": "2.0.0" } } } @@ -7166,11 +6894,11 @@ "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-2.3.0.tgz", "integrity": "sha512-Jc9/8mV630cZE9FC5tIlJCZNdUjwunvlwOtCz6IDlaiB4Sz68ki29a1+q97sWTnTYroiuF9B135rod9zrQdHLw==", "requires": { - "axios": "^0.18.0", - "google-p12-pem": "^1.0.0", - "jws": "^3.1.4", - "mime": "^2.2.0", - "pify": "^3.0.0" + "axios": "0.18.0", + "google-p12-pem": "1.0.2", + "jws": "3.1.5", + "mime": "2.3.1", + "pify": "3.0.0" } }, "gts": { @@ -7179,15 +6907,15 @@ "integrity": "sha512-7yMBk3+SmyL4+047vIXOAUWlNfbIkuPH0UnhQYzurM8yj1ufiVH++BdBpZY7AP6/wytvzq7PuVzqAXbk5isn2A==", "dev": true, "requires": { - "chalk": "^2.4.1", + "chalk": "2.4.1", "clang-format": "1.2.3", - "inquirer": "^6.0.0", - "meow": "^5.0.0", - "pify": "^3.0.0", - "rimraf": "^2.6.2", - "tslint": "^5.9.1", - "update-notifier": "^2.5.0", - "write-file-atomic": "^2.3.0" + "inquirer": "6.0.0", + "meow": "5.0.0", + "pify": "3.0.0", + "rimraf": "2.6.2", + "tslint": "5.10.0", + "update-notifier": "2.5.0", + "write-file-atomic": "2.3.0" }, "dependencies": { "camelcase": { @@ -7202,9 +6930,9 @@ "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", "dev": true, "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" + "camelcase": "4.1.0", + "map-obj": "2.0.0", + "quick-lru": "1.1.0" } }, "chardet": { @@ -7219,9 +6947,9 @@ "integrity": "sha512-mpkfj0FEdxrIhOC04zk85X7StNtr0yXnG7zCb+8ikO8OJi2jsHh5YGoknNTyXgsbHOf1WOOcVU3kPFWT2WgCkQ==", "dev": true, "requires": { - "chardet": "^0.5.0", - "iconv-lite": "^0.4.22", - "tmp": "^0.0.33" + "chardet": "0.5.0", + "iconv-lite": "0.4.23", + "tmp": "0.0.33" } }, "inquirer": { @@ -7230,19 +6958,19 @@ "integrity": "sha512-tISQWRwtcAgrz+SHPhTH7d3e73k31gsOy6i1csonLc0u1dVK/wYvuOnFeiWqC5OXFIYbmrIFInef31wbT8MEJg==", "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.0", - "figures": "^2.0.0", - "lodash": "^4.3.0", + "ansi-escapes": "3.1.0", + "chalk": "2.4.1", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "3.0.0", + "figures": "2.0.0", + "lodash": "4.17.5", "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.1.0", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" + "run-async": "2.3.0", + "rxjs": "6.2.1", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" } }, "load-json-file": { @@ -7251,10 +6979,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.11", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" } }, "map-obj": { @@ -7269,15 +6997,15 @@ "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", "dev": true, "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0", - "yargs-parser": "^10.0.0" + "camelcase-keys": "4.2.0", + "decamelize-keys": "1.1.0", + "loud-rejection": "1.6.0", + "minimist-options": "3.0.2", + "normalize-package-data": "2.4.0", + "read-pkg-up": "3.0.0", + "redent": "2.0.0", + "trim-newlines": "2.0.0", + "yargs-parser": "10.0.0" } }, "parse-json": { @@ -7286,8 +7014,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" } }, "path-type": { @@ -7296,7 +7024,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "read-pkg": { @@ -7305,9 +7033,9 @@ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" + "load-json-file": "4.0.0", + "normalize-package-data": "2.4.0", + "path-type": "3.0.0" } }, "read-pkg-up": { @@ -7316,8 +7044,8 @@ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" + "find-up": "2.1.0", + "read-pkg": "3.0.0" } }, "redent": { @@ -7326,8 +7054,8 @@ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", "dev": true, "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" + "indent-string": "3.2.0", + "strip-indent": "2.0.0" } }, "strip-indent": { @@ -7348,7 +7076,7 @@ "integrity": "sha512-+DHejWujTVYeMHLff8U96rLc4uE4Emncoftvn5AjhB1Jw1pWxLzgBUT/WYbPrHmy6YPEBTZQx5myHhVcuuu64g==", "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } } } @@ -7365,10 +7093,10 @@ "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" }, "dependencies": { "source-map": { @@ -7377,7 +7105,7 @@ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -7388,23 +7116,23 @@ "integrity": "sha512-IOOCwH75JMw28Spd9tMjYi9QsIqSGiJKH/GHwsmUV5ZgyyQIgVbWxbeuUFUwxcei4KIw1Gb1wJIDRF4jKlRq8w==", "dev": true, "requires": { - "accept": "3.x.x", - "ammo": "3.x.x", - "boom": "7.x.x", - "bounce": "1.x.x", - "call": "5.x.x", - "catbox": "10.x.x", - "catbox-memory": "3.x.x", - "heavy": "6.x.x", - "hoek": "5.x.x", - "joi": "13.x.x", - "mimos": "4.x.x", - "podium": "3.x.x", - "shot": "4.x.x", - "statehood": "6.x.x", - "subtext": "6.x.x", - "teamwork": "3.x.x", - "topo": "3.x.x" + "accept": "3.0.2", + "ammo": "3.0.1", + "boom": "7.2.0", + "bounce": "1.2.0", + "call": "5.0.1", + "catbox": "10.0.2", + "catbox-memory": "3.1.2", + "heavy": "6.1.0", + "hoek": "5.0.3", + "joi": "13.4.0", + "mimos": "4.0.0", + "podium": "3.1.2", + "shot": "4.0.5", + "statehood": "6.0.6", + "subtext": "6.0.7", + "teamwork": "3.0.1", + "topo": "3.0.0" } }, "har-schema": { @@ -7417,8 +7145,8 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "requires": { - "ajv": "^5.1.0", - "har-schema": "^2.0.0" + "ajv": "5.5.2", + "har-schema": "2.0.0" } }, "has-ansi": { @@ -7427,7 +7155,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "has-color": { @@ -7454,7 +7182,7 @@ "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", "dev": true, "requires": { - "has-symbol-support-x": "^1.4.1" + "has-symbol-support-x": "1.4.2" } }, "has-value": { @@ -7463,9 +7191,9 @@ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -7482,8 +7210,8 @@ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "is-number": { @@ -7492,7 +7220,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -7501,7 +7229,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -7512,7 +7240,7 @@ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -7535,9 +7263,9 @@ "integrity": "sha512-TKS9DC9NOTGulHQI31Lx+bmeWmNOstbJbGMiN3pX6bF+Zc2GKSpbbym4oasNnB6yPGkqJ9TQXXYDGohqNSJRxA==", "dev": true, "requires": { - "boom": "7.x.x", - "hoek": "5.x.x", - "joi": "13.x.x" + "boom": "7.2.0", + "hoek": "5.0.3", + "joi": "13.4.0" } }, "hoek": { @@ -7552,8 +7280,8 @@ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "dev": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "hosted-git-info": { @@ -7568,10 +7296,10 @@ "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "dev": true, "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" + "inherits": "2.0.3", + "obuf": "1.1.2", + "readable-stream": "2.3.6", + "wbuf": "1.7.3" } }, "htmlparser2": { @@ -7580,12 +7308,12 @@ "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", "dev": true, "requires": { - "domelementtype": "^1.3.0", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^2.0.2" + "domelementtype": "1.3.0", + "domhandler": "2.4.2", + "domutils": "1.7.0", + "entities": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6" } }, "http-assert": { @@ -7594,8 +7322,8 @@ "integrity": "sha1-oxpc+IyHPsu1eWkH1NbxMujAHko=", "dev": true, "requires": { - "deep-equal": "~1.0.1", - "http-errors": "~1.6.1" + "deep-equal": "1.0.1", + "http-errors": "1.6.3" } }, "http-cache-semantics": { @@ -7616,10 +7344,10 @@ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, "requires": { - "depd": "~1.1.2", + "depd": "1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "statuses": "1.5.0" } }, "http-signature": { @@ -7627,9 +7355,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.14.2" } }, "hullabaloo-config-manager": { @@ -7638,20 +7366,20 @@ "integrity": "sha512-ztKnkZV0TmxnumCDHHgLGNiDnotu4EHCp9YMkznWuo4uTtCyJ+cu+RNcxUeXYKTllpvLFWnbfWry09yzszgg+A==", "dev": true, "requires": { - "dot-prop": "^4.1.0", - "es6-error": "^4.0.2", - "graceful-fs": "^4.1.11", - "indent-string": "^3.1.0", - "json5": "^0.5.1", - "lodash.clonedeep": "^4.5.0", - "lodash.clonedeepwith": "^4.5.0", - "lodash.isequal": "^4.5.0", - "lodash.merge": "^4.6.0", - "md5-hex": "^2.0.0", - "package-hash": "^2.0.0", - "pkg-dir": "^2.0.0", - "resolve-from": "^3.0.0", - "safe-buffer": "^5.0.1" + "dot-prop": "4.2.0", + "es6-error": "4.1.1", + "graceful-fs": "4.1.11", + "indent-string": "3.2.0", + "json5": "0.5.1", + "lodash.clonedeep": "4.5.0", + "lodash.clonedeepwith": "4.5.0", + "lodash.isequal": "4.5.0", + "lodash.merge": "4.6.1", + "md5-hex": "2.0.0", + "package-hash": "2.0.0", + "pkg-dir": "2.0.0", + "resolve-from": "3.0.0", + "safe-buffer": "5.1.2" } }, "iconv-lite": { @@ -7660,7 +7388,7 @@ "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "dev": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": "2.1.2" } }, "ignore": { @@ -7687,8 +7415,8 @@ "integrity": "sha1-sReVcqrNwRxqkQCftDDbyrX2aKg=", "dev": true, "requires": { - "pkg-dir": "^2.0.0", - "resolve-cwd": "^2.0.0" + "pkg-dir": "2.0.0", + "resolve-cwd": "2.0.0" } }, "imurmurhash": { @@ -7715,8 +7443,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -7736,8 +7464,8 @@ "integrity": "sha512-STx5orGQU1gfrkoI/fMU7lX6CSP7LBGO10gXNgOZhwKhUqbtNjCkYSewJtNnLmWP1tAGN6oyEpG1HFPw5vpa5Q==", "dev": true, "requires": { - "moment": "^2.14.1", - "sanitize-html": "^1.13.0" + "moment": "2.22.2", + "sanitize-html": "1.18.2" } }, "inquirer": { @@ -7746,20 +7474,20 @@ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", + "ansi-escapes": "3.1.0", + "chalk": "2.4.1", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.2.0", + "figures": "2.0.0", + "lodash": "4.17.5", "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" + "run-async": "2.3.0", + "rx-lite": "4.0.8", + "rx-lite-aggregates": "4.0.8", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" } }, "intelli-espower-loader": { @@ -7768,7 +7496,7 @@ "integrity": "sha1-LHsDFGvB1GvyENCgOXxckatMorA=", "dev": true, "requires": { - "espower-loader": "^1.0.0" + "espower-loader": "1.2.2" } }, "into-stream": { @@ -7777,8 +7505,8 @@ "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", "dev": true, "requires": { - "from2": "^2.1.1", - "p-is-promise": "^1.1.0" + "from2": "2.3.0", + "p-is-promise": "1.1.0" } }, "invariant": { @@ -7787,7 +7515,7 @@ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "1.3.1" } }, "invert-kv": { @@ -7808,9 +7536,9 @@ "integrity": "sha512-7iQ5/xFMIYaNt9g2oiNiWdhrOTdRUMFaWENUd0KghxwPUhrIH8DUY8FEyLNTTzf75jaII+jMexLdY/2HfV61RQ==", "dev": true, "requires": { - "boom": "7.x.x", - "cryptiles": "4.x.x", - "hoek": "5.x.x" + "boom": "7.2.0", + "cryptiles": "4.1.1", + "hoek": "5.0.3" } }, "irregular-plurals": { @@ -7830,7 +7558,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-arrayish": { @@ -7845,7 +7573,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "binary-extensions": "^1.0.0" + "binary-extensions": "1.11.0" } }, "is-buffer": { @@ -7859,7 +7587,7 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-ci": { @@ -7868,7 +7596,7 @@ "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", "dev": true, "requires": { - "ci-info": "^1.0.0" + "ci-info": "1.1.3" } }, "is-data-descriptor": { @@ -7877,7 +7605,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-descriptor": { @@ -7886,9 +7614,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" }, "dependencies": { "kind-of": { @@ -7911,7 +7639,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { - "is-primitive": "^2.0.0" + "is-primitive": "2.0.0" } }, "is-error": { @@ -7938,7 +7666,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { @@ -7965,7 +7693,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "is-installed-globally": { @@ -7974,8 +7702,8 @@ "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "dev": true, "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" + "global-dirs": "0.1.1", + "is-path-inside": "1.0.1" } }, "is-npm": { @@ -7990,7 +7718,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-obj": { @@ -8011,7 +7739,7 @@ "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", "dev": true, "requires": { - "symbol-observable": "^1.1.0" + "symbol-observable": "1.2.0" } }, "is-odd": { @@ -8020,7 +7748,7 @@ "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", "dev": true, "requires": { - "is-number": "^4.0.0" + "is-number": "4.0.0" }, "dependencies": { "is-number": { @@ -8043,7 +7771,7 @@ "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, "requires": { - "is-path-inside": "^1.0.0" + "is-path-inside": "1.0.1" } }, "is-path-inside": { @@ -8052,7 +7780,7 @@ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { - "path-is-inside": "^1.0.1" + "path-is-inside": "1.0.2" } }, "is-plain-obj": { @@ -8067,7 +7795,7 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -8159,7 +7887,7 @@ "integrity": "sha512-zfRhJn9rFSGhzU5tGZqepRSAj3+g6oTOHxMGGriWNJZzyLPUK8H7VHpqKntegnW8KLyGA9zwuNaCoopl40LTpg==", "dev": true, "requires": { - "punycode": "2.x.x" + "punycode": "2.1.1" }, "dependencies": { "punycode": { @@ -8207,8 +7935,8 @@ "@babel/template": "7.0.0-beta.49", "@babel/traverse": "7.0.0-beta.49", "@babel/types": "7.0.0-beta.49", - "istanbul-lib-coverage": "^2.0.0", - "semver": "^5.5.0" + "istanbul-lib-coverage": "2.0.0", + "semver": "5.5.0" } }, "isurl": { @@ -8217,8 +7945,8 @@ "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", "dev": true, "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" + "has-to-string-tag-x": "1.4.1", + "is-object": "1.0.1" } }, "jest-docblock": { @@ -8233,9 +7961,9 @@ "integrity": "sha512-JuK4GjEu6j7zr9FuVe2MAseZ6si/8/HaY0qMAejfDFHp7jcH4OKE937mIHM5VT4xDS0q7lpQbszbxKV9rm0yUg==", "dev": true, "requires": { - "hoek": "5.x.x", - "isemail": "3.x.x", - "topo": "3.x.x" + "hoek": "5.0.3", + "isemail": "3.1.2", + "topo": "3.0.0" } }, "js-green-licenses": { @@ -8244,14 +7972,14 @@ "integrity": "sha512-HM/SKwAl1R0y9kkBili6GqKc31ZnjzY7JHC2uO9bAHJNRmY5c/s+2cETyaqX0kBD8gX8QVhS4dJjRtY1nAwb4w==", "dev": true, "requires": { - "argparse": "^1.0.9", - "axios": "^0.18.0", - "npm-package-arg": "^6.0.0", - "package-json": "^4.0.1", - "pify": "^3.0.0", - "spdx-correct": "^3.0.0", - "spdx-satisfies": "^4.0.0", - "strip-json-comments": "^2.0.1" + "argparse": "1.0.10", + "axios": "0.18.0", + "npm-package-arg": "6.1.0", + "package-json": "4.0.1", + "pify": "3.0.0", + "spdx-correct": "3.0.0", + "spdx-satisfies": "4.0.0", + "strip-json-comments": "2.0.1" } }, "js-string-escape": { @@ -8272,8 +8000,8 @@ "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "1.0.10", + "esprima": "4.0.0" } }, "js2xmlparser": { @@ -8282,7 +8010,7 @@ "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", "dev": true, "requires": { - "xmlcreate": "^1.0.1" + "xmlcreate": "1.0.2" } }, "jsbn": { @@ -8298,17 +8026,17 @@ "dev": true, "requires": { "babylon": "7.0.0-beta.19", - "bluebird": "~3.5.0", - "catharsis": "~0.8.9", - "escape-string-regexp": "~1.0.5", - "js2xmlparser": "~3.0.0", - "klaw": "~2.0.0", - "marked": "~0.3.6", - "mkdirp": "~0.5.1", - "requizzle": "~0.2.1", - "strip-json-comments": "~2.0.1", + "bluebird": "3.5.1", + "catharsis": "0.8.9", + "escape-string-regexp": "1.0.5", + "js2xmlparser": "3.0.0", + "klaw": "2.0.0", + "marked": "0.3.19", + "mkdirp": "0.5.1", + "requizzle": "0.2.1", + "strip-json-comments": "2.0.1", "taffydb": "2.6.2", - "underscore": "~1.8.3" + "underscore": "1.8.3" }, "dependencies": { "babylon": { @@ -8370,7 +8098,7 @@ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { - "graceful-fs": "^4.1.6" + "graceful-fs": "4.1.11" } }, "jsprim": { @@ -8397,7 +8125,7 @@ "requires": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.10", - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "jws": { @@ -8405,8 +8133,8 @@ "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz", "integrity": "sha512-GsCSexFADNQUr8T5HPJvayTjvPIfoyJPtLQBwn5a4WZQchcrPMPMAWcC1AzJVRDKyD6ZPROPAxgv6rfHViO4uQ==", "requires": { - "jwa": "^1.1.5", - "safe-buffer": "^5.0.1" + "jwa": "1.1.6", + "safe-buffer": "5.1.2" } }, "keygrip": { @@ -8430,7 +8158,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "klaw": { @@ -8439,7 +8167,7 @@ "integrity": "sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=", "dev": true, "requires": { - "graceful-fs": "^4.1.9" + "graceful-fs": "4.1.11" } }, "koa": { @@ -8448,30 +8176,30 @@ "integrity": "sha512-cchwbMeG2dv3E2xTAmheDAuvR53tPgJZN/Hf1h7bTzJLSPcFZp8/t5+bNKJ6GaQZoydhZQ+1GNruhKdj3lIrug==", "dev": true, "requires": { - "accepts": "^1.2.2", - "content-disposition": "~0.5.0", - "content-type": "^1.0.0", - "cookies": "~0.7.0", - "debug": "*", - "delegates": "^1.0.0", - "depd": "^1.1.0", - "destroy": "^1.0.3", - "error-inject": "~1.0.0", - "escape-html": "~1.0.1", - "fresh": "^0.5.2", - "http-assert": "^1.1.0", - "http-errors": "^1.2.8", - "is-generator-function": "^1.0.3", - "koa-compose": "^4.0.0", - "koa-convert": "^1.2.0", - "koa-is-json": "^1.0.0", - "mime-types": "^2.0.7", - "on-finished": "^2.1.0", + "accepts": "1.3.5", + "content-disposition": "0.5.2", + "content-type": "1.0.4", + "cookies": "0.7.1", + "debug": "3.1.0", + "delegates": "1.0.0", + "depd": "1.1.2", + "destroy": "1.0.4", + "error-inject": "1.0.0", + "escape-html": "1.0.3", + "fresh": "0.5.2", + "http-assert": "1.3.0", + "http-errors": "1.6.3", + "is-generator-function": "1.0.7", + "koa-compose": "4.1.0", + "koa-convert": "1.2.0", + "koa-is-json": "1.0.0", + "mime-types": "2.1.18", + "on-finished": "2.3.0", "only": "0.0.2", - "parseurl": "^1.3.0", - "statuses": "^1.2.0", - "type-is": "^1.5.5", - "vary": "^1.0.0" + "parseurl": "1.3.2", + "statuses": "1.5.0", + "type-is": "1.6.16", + "vary": "1.1.2" } }, "koa-compose": { @@ -8486,8 +8214,8 @@ "integrity": "sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA=", "dev": true, "requires": { - "co": "^4.6.0", - "koa-compose": "^3.0.0" + "co": "4.6.0", + "koa-compose": "3.2.1" }, "dependencies": { "koa-compose": { @@ -8496,7 +8224,7 @@ "integrity": "sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec=", "dev": true, "requires": { - "any-promise": "^1.1.0" + "any-promise": "1.3.0" } } } @@ -8513,7 +8241,7 @@ "integrity": "sha1-0bZNafhv8kry0EiDos7uFFIKVgA=", "dev": true, "requires": { - "through2": "^2.0.0" + "through2": "2.0.3" } }, "latest-version": { @@ -8522,7 +8250,7 @@ "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", "dev": true, "requires": { - "package-json": "^4.0.0" + "package-json": "4.0.1" } }, "lazy-cache": { @@ -8538,7 +8266,7 @@ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "levn": { @@ -8547,8 +8275,8 @@ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "1.1.2", + "type-check": "0.3.2" } }, "load-json-file": { @@ -8557,10 +8285,10 @@ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" }, "dependencies": { "pify": { @@ -8577,8 +8305,8 @@ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "2.0.0", + "path-exists": "3.0.0" } }, "lodash": { @@ -8729,7 +8457,7 @@ "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "dev": true, "requires": { - "js-tokens": "^3.0.0" + "js-tokens": "3.0.2" } }, "loud-rejection": { @@ -8738,8 +8466,8 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" } }, "lowercase-keys": { @@ -8753,8 +8481,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "make-dir": { @@ -8763,7 +8491,7 @@ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dev": true, "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "map-cache": { @@ -8784,7 +8512,7 @@ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { - "object-visit": "^1.0.0" + "object-visit": "1.0.1" } }, "marked": { @@ -8799,7 +8527,7 @@ "integrity": "sha512-+BmqxWIubKTRKNWx/ahnCkk3mG8m7OturVlqq6HiojGJTd5hVYbgZm6WzcYPCoB+KBT4Vd6R7WSRG2OADNaCjg==", "dev": true, "requires": { - "escape-string-regexp": "^1.0.4" + "escape-string-regexp": "1.0.5" } }, "math-random": { @@ -8814,7 +8542,7 @@ "integrity": "sha1-0FiOnxx0lUSS7NJKwKxs6ZfZLjM=", "dev": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "md5-o-matic": { @@ -8835,7 +8563,7 @@ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "meow": { @@ -8844,16 +8572,16 @@ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" }, "dependencies": { "find-up": { @@ -8862,8 +8590,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } }, "load-json-file": { @@ -8872,11 +8600,11 @@ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" } }, "minimist": { @@ -8891,7 +8619,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } }, "path-type": { @@ -8900,9 +8628,9 @@ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pify": { @@ -8923,7 +8651,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "read-pkg": { @@ -8932,9 +8660,9 @@ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" } }, "read-pkg-up": { @@ -8943,8 +8671,8 @@ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "find-up": "1.1.2", + "read-pkg": "1.1.0" } }, "strip-bom": { @@ -8953,7 +8681,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "^0.2.0" + "is-utf8": "0.2.1" } } } @@ -8970,7 +8698,7 @@ "integrity": "sha1-65aDOLXe1c7tgs7AMH3sui2OqZQ=", "dev": true, "requires": { - "estraverse": "^4.0.0" + "estraverse": "4.2.0" } }, "merge2": { @@ -8991,19 +8719,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" } }, "mime": { @@ -9021,7 +8749,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", "requires": { - "mime-db": "~1.33.0" + "mime-db": "1.33.0" } }, "mimic-fn": { @@ -9042,8 +8770,8 @@ "integrity": "sha512-JvlvRLqGIlk+AYypWrbrDmhsM+6JVx/xBM5S3AMwTBz1trPCEoPN/swO2L4Wu653fL7oJdgk8DMQyG/Gq3JkZg==", "dev": true, "requires": { - "hoek": "5.x.x", - "mime-db": "1.x.x" + "hoek": "5.0.3", + "mime-db": "1.33.0" } }, "minimalistic-assert": { @@ -9058,7 +8786,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -9073,8 +8801,8 @@ "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", "dev": true, "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0" + "arrify": "1.0.1", + "is-plain-obj": "1.1.0" } }, "mixin-deep": { @@ -9083,8 +8811,8 @@ "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "dev": true, "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" + "for-in": "1.0.2", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -9093,7 +8821,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -9149,7 +8877,7 @@ "integrity": "sha1-sJ/IWG6qF/gdV1xK0C4Pej9rEQU=", "dev": true, "requires": { - "source-map": "^0.1.34" + "source-map": "0.1.43" }, "dependencies": { "source-map": { @@ -9158,7 +8886,7 @@ "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", "dev": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -9169,10 +8897,10 @@ "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", "dev": true, "requires": { - "array-differ": "^1.0.0", - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "minimatch": "^3.0.0" + "array-differ": "1.0.0", + "array-union": "1.0.2", + "arrify": "1.0.1", + "minimatch": "3.0.4" } }, "mute-stream": { @@ -9188,9 +8916,9 @@ "dev": true, "optional": true, "requires": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" + "mkdirp": "0.5.1", + "ncp": "2.0.0", + "rimraf": "2.4.5" }, "dependencies": { "glob": { @@ -9200,11 +8928,11 @@ "dev": true, "optional": true, "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "rimraf": { @@ -9214,7 +8942,7 @@ "dev": true, "optional": true, "requires": { - "glob": "^6.0.1" + "glob": "6.0.4" } } } @@ -9232,18 +8960,18 @@ "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", "dev": true, "requires": { - "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-odd": "^2.0.0", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "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-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "arr-diff": { @@ -9302,8 +9030,8 @@ "integrity": "sha512-kCVtUG9JyD//tsYrZY+/Y+2gUrANVSba8y23QkM5Znx0FOxlnl9Z4OVPBODmstKWTOvigfTO+Va1VPOu3eWSOQ==", "dev": true, "requires": { - "hoek": "5.x.x", - "vise": "3.x.x" + "hoek": "5.0.3", + "vise": "3.0.0" } }, "nise": { @@ -9312,11 +9040,11 @@ "integrity": "sha512-BxH/DxoQYYdhKgVAfqVy4pzXRZELHOIewzoesxpjYvpU+7YOalQhGNPf7wAx8pLrTNPrHRDlLOkAl8UI0ZpXjw==", "dev": true, "requires": { - "@sinonjs/formatio": "^2.0.0", - "just-extend": "^1.1.27", - "lolex": "^2.3.2", - "path-to-regexp": "^1.7.0", - "text-encoding": "^0.6.4" + "@sinonjs/formatio": "2.0.0", + "just-extend": "1.1.27", + "lolex": "2.7.0", + "path-to-regexp": "1.7.0", + "text-encoding": "0.6.4" } }, "nock": { @@ -9325,15 +9053,15 @@ "integrity": "sha512-FBgnx25er2ly7KBr0Est5F0z5g+lnyr6a72vZI1KMi7nTL4ojU6XpFhlrfw6CXRdnT2FA5i8exHiT1uVNUM1qA==", "dev": true, "requires": { - "chai": "^4.1.2", - "debug": "^3.1.0", - "deep-equal": "^1.0.0", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.5", - "mkdirp": "^0.5.0", - "propagate": "^1.0.0", - "qs": "^6.5.1", - "semver": "^5.5.0" + "chai": "4.1.2", + "debug": "3.1.0", + "deep-equal": "1.0.1", + "json-stringify-safe": "5.0.1", + "lodash": "4.17.5", + "mkdirp": "0.5.1", + "propagate": "1.0.0", + "qs": "6.5.2", + "semver": "5.5.0" } }, "node-forge": { @@ -9347,10 +9075,10 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.6.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" } }, "normalize-path": { @@ -9359,7 +9087,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "^1.0.1" + "remove-trailing-separator": "1.1.0" } }, "normalize-url": { @@ -9368,9 +9096,9 @@ "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", "dev": true, "requires": { - "prepend-http": "^2.0.0", - "query-string": "^5.0.1", - "sort-keys": "^2.0.0" + "prepend-http": "2.0.0", + "query-string": "5.1.1", + "sort-keys": "2.0.0" }, "dependencies": { "prepend-http": { @@ -9387,10 +9115,10 @@ "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", "dev": true, "requires": { - "hosted-git-info": "^2.6.0", - "osenv": "^0.1.5", - "semver": "^5.5.0", - "validate-npm-package-name": "^3.0.0" + "hosted-git-info": "2.6.0", + "osenv": "0.1.5", + "semver": "5.5.0", + "validate-npm-package-name": "3.0.0" } }, "npm-run-path": { @@ -9399,7 +9127,7 @@ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -9414,318 +9142,286 @@ "integrity": "sha1-ikpO1pCWbBHsWH/4fuoMEsl0upk=", "dev": true, "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^1.0.0", - "convert-source-map": "^1.5.1", - "debug-log": "^1.0.1", - "default-require-extensions": "^1.0.0", - "find-cache-dir": "^0.1.1", - "find-up": "^2.1.0", - "foreground-child": "^1.5.3", - "glob": "^7.0.6", - "istanbul-lib-coverage": "^1.2.0", - "istanbul-lib-hook": "^1.1.0", - "istanbul-lib-instrument": "^2.1.0", - "istanbul-lib-report": "^1.1.3", - "istanbul-lib-source-maps": "^1.2.5", - "istanbul-reports": "^1.4.1", - "md5-hex": "^1.2.0", - "merge-source-map": "^1.1.0", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.0", - "resolve-from": "^2.0.0", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.1", - "spawn-wrap": "^1.4.2", - "test-exclude": "^4.2.0", + "archy": "1.0.0", + "arrify": "1.0.1", + "caching-transform": "1.0.1", + "convert-source-map": "1.5.1", + "debug-log": "1.0.1", + "default-require-extensions": "1.0.0", + "find-cache-dir": "0.1.1", + "find-up": "2.1.0", + "foreground-child": "1.5.6", + "glob": "7.1.2", + "istanbul-lib-coverage": "1.2.0", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "2.2.0", + "istanbul-lib-report": "1.1.3", + "istanbul-lib-source-maps": "1.2.5", + "istanbul-reports": "1.4.1", + "md5-hex": "1.3.0", + "merge-source-map": "1.1.0", + "micromatch": "3.1.10", + "mkdirp": "0.5.1", + "resolve-from": "2.0.0", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "spawn-wrap": "1.4.2", + "test-exclude": "4.2.1", "yargs": "11.1.0", - "yargs-parser": "^8.0.0" + "yargs-parser": "8.1.0" }, "dependencies": { "align-text": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" } }, "amdefine": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "bundled": true, "dev": true }, "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "bundled": true, "dev": true }, "append-transform": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "bundled": true, "dev": true, "requires": { - "default-require-extensions": "^1.0.0" + "default-require-extensions": "1.0.0" } }, "archy": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "bundled": true, "dev": true }, "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "bundled": true, "dev": true }, "arr-flatten": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=", + "bundled": true, "dev": true }, "arr-union": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "bundled": true, "dev": true }, "array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "bundled": true, "dev": true }, "arrify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "bundled": true, "dev": true }, "assign-symbols": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "bundled": true, "dev": true }, "async": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "bundled": true, "dev": true }, "atob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", - "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", + "bundled": true, "dev": true }, "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "bundled": true, "dev": true }, "base": { "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", + "bundled": true, "dev": true, "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" }, "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", + "bundled": true, "dev": true } } }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "bundled": true, "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, "braces": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", - "dev": true, - "requires": { - "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "bundled": true, + "dev": true, + "requires": { + "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.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } }, "builtin-modules": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "bundled": true, "dev": true }, "cache-base": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", + "bundled": true, "dev": true, "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" + "collection-visit": "1.0.0", + "component-emitter": "1.2.1", + "get-value": "2.0.6", + "has-value": "1.0.0", + "isobject": "3.0.1", + "set-value": "2.0.0", + "to-object-path": "0.3.0", + "union-value": "1.0.0", + "unset-value": "1.0.0" } }, "caching-transform": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", - "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", + "bundled": true, "dev": true, "requires": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" } }, "camelcase": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "bundled": true, "dev": true, "optional": true }, "center-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "bundled": true, "dev": true, "optional": true, "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "align-text": "0.1.4", + "lazy-cache": "1.0.4" } }, "class-utils": { "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", + "bundled": true, "dev": true, "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" }, "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } }, "cliui": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "bundled": true, "dev": true, "optional": true, "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", + "center-align": "0.1.3", + "right-align": "0.1.3", "wordwrap": "0.0.2" }, "dependencies": { "wordwrap": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "bundled": true, "dev": true, "optional": true } @@ -9733,64 +9429,55 @@ }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "bundled": true, "dev": true }, "collection-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "bundled": true, "dev": true, "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "map-visit": "1.0.0", + "object-visit": "1.0.1" } }, "commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "bundled": true, "dev": true }, "component-emitter": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "bundled": true, "dev": true }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "bundled": true, "dev": true }, "convert-source-map": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "bundled": true, "dev": true }, "copy-descriptor": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "bundled": true, "dev": true }, "cross-spawn": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "bundled": true, "dev": true, "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "which": "1.3.1" } }, "debug": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", + "bundled": true, "dev": true, "requires": { "ms": "2.0.0" @@ -9798,134 +9485,120 @@ }, "debug-log": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", - "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", + "bundled": true, "dev": true }, "decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "bundled": true, "dev": true }, "decode-uri-component": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "bundled": true, "dev": true }, "default-require-extensions": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "bundled": true, "dev": true, "requires": { - "strip-bom": "^2.0.0" + "strip-bom": "2.0.0" } }, "define-property": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", + "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "is-descriptor": "1.0.2", + "isobject": "3.0.1" }, "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", + "bundled": true, "dev": true } } }, "error-ex": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "bundled": true, "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "execa": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "bundled": true, "dev": true, "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" }, "dependencies": { "cross-spawn": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "bundled": true, "dev": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.1" } } } }, "expand-brackets": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "bundled": true, "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "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" }, "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "bundled": true, "dev": true, "requires": { "ms": "2.0.0" @@ -9933,727 +9606,644 @@ }, "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } }, "extend-shallow": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "bundled": true, "dev": true, "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "bundled": true, "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } }, "extglob": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", + "bundled": true, "dev": true, "requires": { - "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.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "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" }, "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", + "bundled": true, "dev": true } } }, "fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } }, "find-cache-dir": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "bundled": true, "dev": true, "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" + "commondir": "1.0.1", + "mkdirp": "0.5.1", + "pkg-dir": "1.0.0" } }, "find-up": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "bundled": true, "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "for-in": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "bundled": true, "dev": true }, "foreground-child": { "version": "1.5.6", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", - "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "bundled": true, "dev": true, "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" + "cross-spawn": "4.0.2", + "signal-exit": "3.0.2" } }, "fragment-cache": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "bundled": true, "dev": true, "requires": { - "map-cache": "^0.2.2" + "map-cache": "0.2.2" } }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "bundled": true, "dev": true }, "get-caller-file": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "bundled": true, "dev": true }, "get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "bundled": true, "dev": true }, "get-value": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "bundled": true, "dev": true }, "glob": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", + "bundled": true, "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "graceful-fs": { "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "bundled": true, "dev": true }, "handlebars": { "version": "4.0.11", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", - "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "bundled": true, "dev": true, "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" }, "dependencies": { "source-map": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "bundled": true, "dev": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } }, "has-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "bundled": true, "dev": true, "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" } }, "has-values": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "bundled": true, "dev": true, "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "kind-of": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } }, "hosted-git-info": { "version": "2.6.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", - "integrity": "sha1-IyNbKasjDFdqqw1PE/wEawsDgiI=", + "bundled": true, "dev": true }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "bundled": true, "dev": true }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "bundled": true, "dev": true }, "invert-kv": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "bundled": true, "dev": true }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "bundled": true, "dev": true }, "is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", + "bundled": true, "dev": true }, "is-builtin-module": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "bundled": true, "dev": true, "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", + "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" }, "dependencies": { "kind-of": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", + "bundled": true, "dev": true } } }, "is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "bundled": true, "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "bundled": true, "dev": true }, "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-odd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", - "integrity": "sha1-dkZiRnH9fqVYzNmieVGC8pWPGyQ=", + "bundled": true, "dev": true, "requires": { - "is-number": "^4.0.0" + "is-number": "4.0.0" }, "dependencies": { "is-number": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha1-ACbjf1RU1z41bf5lZGmYZ8an8P8=", + "bundled": true, "dev": true } } }, "is-plain-object": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", + "bundled": true, "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" } }, "is-stream": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "bundled": true, "dev": true }, "is-utf8": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "bundled": true, "dev": true }, "is-windows": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=", + "bundled": true, "dev": true }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "bundled": true, "dev": true }, "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "bundled": true, "dev": true }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true }, "istanbul-lib-coverage": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", - "integrity": "sha1-99jy5CuX43/nlhFMsPnWi146Q0E=", + "bundled": true, "dev": true }, "istanbul-lib-hook": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", - "integrity": "sha1-hTjZcDcss3FtU+VVI91UtVeo2Js=", + "bundled": true, "dev": true, "requires": { - "append-transform": "^0.4.0" + "append-transform": "0.4.0" } }, "istanbul-lib-report": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz", - "integrity": "sha1-LfEhiMD6d5kMDSF20tC6M5QYglk=", + "bundled": true, "dev": true, "requires": { - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" }, "dependencies": { "has-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "bundled": true, "dev": true }, "supports-color": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "bundled": true, "dev": true, "requires": { - "has-flag": "^1.0.0" + "has-flag": "1.0.0" } } } }, "istanbul-lib-source-maps": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.5.tgz", - "integrity": "sha1-/+a+Tnq4bTYD5CkNVJkLFFBvybE=", + "bundled": true, "dev": true, "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.2.0", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" + "debug": "3.1.0", + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" } }, "istanbul-reports": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.4.1.tgz", - "integrity": "sha1-Ty6OkoqnoF0dpsQn1AmLJlXsczQ=", + "bundled": true, "dev": true, "requires": { - "handlebars": "^4.0.3" + "handlebars": "4.0.11" } }, "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "lazy-cache": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "bundled": true, "dev": true, "optional": true }, "lcid": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "bundled": true, "dev": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "load-json-file": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" } }, "locate-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "bundled": true, "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "2.0.0", + "path-exists": "3.0.0" }, "dependencies": { "path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "bundled": true, "dev": true } } }, "longest": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "bundled": true, "dev": true }, "lru-cache": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha1-oRdc80lt/IQ2wVbDNLSVWZK85pw=", + "bundled": true, "dev": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "map-cache": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "bundled": true, "dev": true }, "map-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "bundled": true, "dev": true, "requires": { - "object-visit": "^1.0.0" + "object-visit": "1.0.1" } }, "md5-hex": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", - "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", + "bundled": true, "dev": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "md5-o-matic": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", - "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=", + "bundled": true, "dev": true }, "mem": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "bundled": true, "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "merge-source-map": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha1-L93n5gIJOfcJBqaPLXrmheTIxkY=", + "bundled": true, "dev": true, "requires": { - "source-map": "^0.6.1" + "source-map": "0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "bundled": true, "dev": true } } }, "micromatch": { "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "bundled": true, + "dev": true, + "requires": { + "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.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", + "bundled": true, "dev": true } } }, "mimic-fn": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=", + "bundled": true, "dev": true }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "bundled": true, "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "bundled": true, "dev": true }, "mixin-deep": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha1-pJ5yaNzhoNlpjkUybFYm3zVD0P4=", + "bundled": true, "dev": true, "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" + "for-in": "1.0.2", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "bundled": true, "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "dev": true, "requires": { "minimist": "0.0.8" @@ -10661,479 +10251,422 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "bundled": true, "dev": true }, "nanomatch": { "version": "1.2.9", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", - "integrity": "sha1-h59xUMstq3pHElkGbBBO7m4Pp8I=", - "dev": true, - "requires": { - "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-odd": "^2.0.0", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "bundled": true, + "dev": true, + "requires": { + "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-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", + "bundled": true, "dev": true } } }, "normalize-package-data": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha1-EvlaMH1YNSB1oEkHuErIvpisAS8=", + "bundled": true, "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.6.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" } }, "npm-run-path": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "bundled": true, "dev": true, "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "bundled": true, "dev": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "bundled": true, "dev": true }, "object-copy": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "bundled": true, "dev": true, "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" }, "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } }, "object-visit": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "bundled": true, "dev": true, "requires": { - "isobject": "^3.0.0" + "isobject": "3.0.1" } }, "object.pick": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "bundled": true, "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" } }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "dev": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "optimist": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "bundled": true, "dev": true, "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "minimist": "0.0.8", + "wordwrap": "0.0.3" } }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "bundled": true, "dev": true }, "os-locale": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha1-QrwpAKa1uL0XN2yOiCtlr8zyS/I=", + "bundled": true, "dev": true, "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" } }, "p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "bundled": true, "dev": true }, "p-limit": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha1-DpK2vty1nwIsE9DxlJ3ILRWQnxw=", + "bundled": true, "dev": true, "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "bundled": true, "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.2.0" } }, "p-try": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "bundled": true, "dev": true }, "parse-json": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "bundled": true, "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.1" } }, "pascalcase": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "bundled": true, "dev": true }, "path-exists": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "bundled": true, "dev": true, "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "bundled": true, "dev": true }, "path-key": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "bundled": true, "dev": true }, "path-parse": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "bundled": true, "dev": true }, "path-type": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "bundled": true, "dev": true }, "pinkie": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "bundled": true, "dev": true }, "pinkie-promise": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "bundled": true, "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "pkg-dir": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "bundled": true, "dev": true, "requires": { - "find-up": "^1.0.0" + "find-up": "1.1.2" }, "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "bundled": true, "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } }, "posix-character-classes": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "bundled": true, "dev": true }, "pseudomap": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "bundled": true, "dev": true }, "read-pkg": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "bundled": true, "dev": true, "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" } }, "read-pkg-up": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "bundled": true, "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "find-up": "1.1.2", + "read-pkg": "1.1.0" }, "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "bundled": true, "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } }, "regex-not": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", + "bundled": true, "dev": true, "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, "repeat-element": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "bundled": true, "dev": true }, "repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "bundled": true, "dev": true }, "require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "bundled": true, "dev": true }, "require-main-filename": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "bundled": true, "dev": true }, "resolve-from": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", + "bundled": true, "dev": true }, "resolve-url": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "bundled": true, "dev": true }, "ret": { "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=", + "bundled": true, "dev": true }, "right-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "bundled": true, "dev": true, "optional": true, "requires": { - "align-text": "^0.1.1" + "align-text": "0.1.4" } }, "rimraf": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha1-LtgVDSShbqhlHm1u8PR8QVjOejY=", + "bundled": true, "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "safe-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "bundled": true, "dev": true, "requires": { - "ret": "~0.1.10" + "ret": "0.1.15" } }, "semver": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha1-3Eu8emyp2Rbe5dQ1FvAJK1j3uKs=", + "bundled": true, "dev": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "bundled": true, "dev": true }, "set-value": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha1-ca5KiPD+77v1LR6mBPP7MV67YnQ=", + "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } }, "shebang-command": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "bundled": true, "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "bundled": true, "dev": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "bundled": true, "dev": true }, "slide": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "bundled": true, "dev": true }, "snapdragon": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "bundled": true, + "dev": true, + "requires": { + "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.2", + "use": "3.1.0" }, "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "bundled": true, "dev": true, "requires": { "ms": "2.0.0" @@ -11141,291 +10674,261 @@ }, "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } }, "snapdragon-node": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", + "bundled": true, "dev": true, "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", + "bundled": true, "dev": true } } }, "snapdragon-util": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", + "bundled": true, "dev": true, "requires": { - "kind-of": "^3.2.0" + "kind-of": "3.2.2" } }, "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "bundled": true, "dev": true }, "source-map-resolve": { "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha1-cuLMNAlVQ+Q7LGKyxMENSpBU8lk=", + "bundled": true, "dev": true, "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "atob": "2.1.1", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" } }, "source-map-url": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "bundled": true, "dev": true }, "spawn-wrap": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", - "integrity": "sha1-z/WOc6giRhe2Vhq9wyWG6gyCJIw=", + "bundled": true, "dev": true, "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.1" } }, "spdx-correct": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha1-BaW01xU6GVvJLDxCW2nzsqlSTII=", + "bundled": true, "dev": true, "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, "spdx-exceptions": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha1-LHrmEFbHFKW5ubKyr30xHvXHj+k=", + "bundled": true, "dev": true }, "spdx-expression-parse": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=", + "bundled": true, "dev": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" } }, "spdx-license-ids": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha1-enzShHDMbToc/m1miG9rxDDTrIc=", + "bundled": true, "dev": true }, "split-string": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", + "bundled": true, "dev": true, "requires": { - "extend-shallow": "^3.0.0" + "extend-shallow": "3.0.2" } }, "static-extend": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "bundled": true, "dev": true, "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" + "define-property": "0.2.5", + "object-copy": "0.1.0" }, "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } }, "string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "bundled": true, "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" } }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } }, "strip-bom": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "bundled": true, "dev": true, "requires": { - "is-utf8": "^0.2.0" + "is-utf8": "0.2.1" } }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "bundled": true, "dev": true }, "test-exclude": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", - "integrity": "sha1-36Ii8DSAvKaSB8pyizfXS0X3JPo=", + "bundled": true, "dev": true, "requires": { - "arrify": "^1.0.1", - "micromatch": "^3.1.8", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" + "arrify": "1.0.1", + "micromatch": "3.1.10", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" } }, "to-object-path": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "to-regex": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", + "bundled": true, "dev": true, "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" } }, "to-regex-range": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "bundled": true, "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "3.0.0", + "repeat-string": "1.6.1" } }, "uglify-js": { "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "bundled": true, "dev": true, "optional": true, "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" }, "dependencies": { "yargs": { "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "bundled": true, "dev": true, "optional": true, "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", "window-size": "0.1.0" } } @@ -11433,71 +10936,64 @@ }, "uglify-to-browserify": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "bundled": true, "dev": true, "optional": true }, "union-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "bundled": true, "dev": true, "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "set-value": { "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" } } } }, "unset-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "bundled": true, "dev": true, "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "has-value": "0.3.1", + "isobject": "3.0.1" }, "dependencies": { "has-value": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "bundled": true, "dev": true, "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" }, "dependencies": { "isobject": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "bundled": true, "dev": true, "requires": { "isarray": "1.0.0" @@ -11507,210 +11003,186 @@ }, "has-values": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "bundled": true, "dev": true } } }, "urix": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "bundled": true, "dev": true }, "use": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", - "integrity": "sha1-FHFr8D/f79AwQK71jYtLhfOnxUQ=", + "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.2" + "kind-of": "6.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", + "bundled": true, "dev": true } } }, "validate-npm-package-license": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha1-gWQ7y+8b3+zUYjeT3EZIlIupgzg=", + "bundled": true, "dev": true, "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "which": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "bundled": true, "dev": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "bundled": true, "dev": true }, "window-size": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "bundled": true, "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "bundled": true, "dev": true }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "bundled": true, "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "bundled": true, "dev": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } } } }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "bundled": true, "dev": true }, "write-file-atomic": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", - "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", + "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" } }, "y18n": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "bundled": true, "dev": true }, "yallist": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "bundled": true, "dev": true }, "yargs": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", - "integrity": "sha1-kLhpk07W6HERXqL/WLA/RyTtLXc=", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^9.0.2" + "bundled": true, + "dev": true, + "requires": { + "cliui": "4.1.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "9.0.2" }, "dependencies": { "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "bundled": true, "dev": true }, "cliui": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha1-NIQi2+gtgAswIu709qwQvy5NG0k=", + "bundled": true, "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" } }, "yargs-parser": { "version": "9.0.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "bundled": true, "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } } } }, "yargs-parser": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", - "integrity": "sha1-8TdqM7Ziml0GN4KUTacyYx6WaVA=", + "bundled": true, "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" }, "dependencies": { "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "bundled": true, "dev": true } } @@ -11734,9 +11206,9 @@ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" }, "dependencies": { "define-property": { @@ -11745,7 +11217,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -11762,7 +11234,7 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { - "isobject": "^3.0.0" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -11779,8 +11251,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" + "for-own": "0.1.5", + "is-extendable": "0.1.1" } }, "object.pick": { @@ -11789,7 +11261,7 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -11806,8 +11278,8 @@ "integrity": "sha1-yCjw8NxH6fhq+KSXfF1VB2znqR8=", "dev": true, "requires": { - "is-observable": "^0.2.0", - "symbol-observable": "^1.0.4" + "is-observable": "0.2.0", + "symbol-observable": "1.2.0" }, "dependencies": { "is-observable": { @@ -11816,7 +11288,7 @@ "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=", "dev": true, "requires": { - "symbol-observable": "^0.2.2" + "symbol-observable": "0.2.4" }, "dependencies": { "symbol-observable": { @@ -11849,7 +11321,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "onetime": { @@ -11858,7 +11330,7 @@ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "only": { @@ -11873,8 +11345,8 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "minimist": "0.0.8", + "wordwrap": "0.0.3" } }, "option-chain": { @@ -11889,12 +11361,12 @@ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" }, "dependencies": { "wordwrap": { @@ -11917,9 +11389,9 @@ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" } }, "os-tmpdir": { @@ -11934,8 +11406,8 @@ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "p-cancelable": { @@ -11962,7 +11434,7 @@ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { @@ -11971,7 +11443,7 @@ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.3.0" } }, "p-timeout": { @@ -11980,7 +11452,7 @@ "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", "dev": true, "requires": { - "p-finally": "^1.0.0" + "p-finally": "1.0.0" } }, "p-try": { @@ -11995,10 +11467,10 @@ "integrity": "sha1-eK4ybIngWk2BO2hgGXevBcANKg0=", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "lodash.flattendeep": "^4.4.0", - "md5-hex": "^2.0.0", - "release-zalgo": "^1.0.0" + "graceful-fs": "4.1.11", + "lodash.flattendeep": "4.4.0", + "md5-hex": "2.0.0", + "release-zalgo": "1.0.0" } }, "package-json": { @@ -12007,10 +11479,10 @@ "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "dev": true, "requires": { - "got": "^6.7.1", - "registry-auth-token": "^3.0.1", - "registry-url": "^3.0.3", - "semver": "^5.1.0" + "got": "6.7.1", + "registry-auth-token": "3.3.2", + "registry-url": "3.1.0", + "semver": "5.5.0" }, "dependencies": { "got": { @@ -12019,17 +11491,17 @@ "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "requires": { - "create-error-class": "^3.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" + "create-error-class": "3.0.2", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "is-redirect": "1.0.0", + "is-retry-allowed": "1.1.0", + "is-stream": "1.1.0", + "lowercase-keys": "1.0.1", + "safe-buffer": "5.1.2", + "timed-out": "4.0.1", + "unzip-response": "2.0.1", + "url-parse-lax": "1.0.0" } } } @@ -12040,10 +11512,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" } }, "parse-json": { @@ -12052,7 +11524,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.2" } }, "parse-ms": { @@ -12132,7 +11604,7 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { - "pify": "^2.0.0" + "pify": "2.3.0" }, "dependencies": { "pify": { @@ -12160,11 +11632,11 @@ "integrity": "sha512-HuPxmGxHsEFPWhdkwBs2gIrHhFqktIxMtudISTFN95RQ85ZZAOl8Ki6u3nnN/X8OUaGlIGldk/l8p2IR4/i76w==", "dev": true, "requires": { - "b64": "4.x.x", - "boom": "7.x.x", - "content": "4.x.x", - "hoek": "5.x.x", - "nigel": "3.x.x" + "b64": "4.0.0", + "boom": "7.2.0", + "content": "4.0.5", + "hoek": "5.0.3", + "nigel": "3.0.1" } }, "pidusage": { @@ -12190,7 +11662,7 @@ "integrity": "sha1-0dpn9UglY7t89X8oauKCLs+/NnA=", "dev": true, "requires": { - "pinkie": "^1.0.0" + "pinkie": "1.0.0" } }, "pkg-conf": { @@ -12199,8 +11671,8 @@ "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", "dev": true, "requires": { - "find-up": "^2.0.0", - "load-json-file": "^4.0.0" + "find-up": "2.1.0", + "load-json-file": "4.0.0" }, "dependencies": { "load-json-file": { @@ -12209,10 +11681,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.11", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" } }, "parse-json": { @@ -12221,8 +11693,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" } } } @@ -12233,7 +11705,7 @@ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "^2.1.0" + "find-up": "2.1.0" } }, "plur": { @@ -12242,7 +11714,7 @@ "integrity": "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo=", "dev": true, "requires": { - "irregular-plurals": "^1.0.0" + "irregular-plurals": "1.4.0" } }, "pluralize": { @@ -12257,8 +11729,8 @@ "integrity": "sha512-18VrjJAduIdPv7d9zWsfmKxTj3cQTYC5Pv5gtKxcWujYBpGbV+mhNSPYhlHW5xeWoazYyKfB9FEsPT12r5rY1A==", "dev": true, "requires": { - "hoek": "5.x.x", - "joi": "13.x.x" + "hoek": "5.0.3", + "joi": "13.4.0" } }, "posix-character-classes": { @@ -12273,9 +11745,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" + "chalk": "2.4.1", + "source-map": "0.6.1", + "supports-color": "5.4.0" }, "dependencies": { "source-map": { @@ -12292,11 +11764,11 @@ "integrity": "sha512-nDb6a+p2C7Wj8Y2zmFtLpuv+xobXz4+bzT5s7dr0nn71tLozn7nRMQqzwbefzwZN5qOm0N7Cxhw4kXP75xboKA==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "empower": "^1.3.0", - "power-assert-formatter": "^1.4.1", - "universal-deep-strict-equal": "^1.2.1", - "xtend": "^4.0.0" + "define-properties": "1.1.2", + "empower": "1.3.0", + "power-assert-formatter": "1.4.1", + "universal-deep-strict-equal": "1.2.2", + "xtend": "4.0.1" } }, "power-assert-context-formatter": { @@ -12305,8 +11777,8 @@ "integrity": "sha512-HLNEW8Bin+BFCpk/zbyKwkEu9W8/zThIStxGo7weYcFkKgMuGCHUJhvJeBGXDZf0Qm2xis4pbnnciGZiX0EpSg==", "dev": true, "requires": { - "core-js": "^2.0.0", - "power-assert-context-traversal": "^1.2.0" + "core-js": "2.5.7", + "power-assert-context-traversal": "1.2.0" } }, "power-assert-context-reducer-ast": { @@ -12315,11 +11787,11 @@ "integrity": "sha512-EgOxmZ/Lb7tw4EwSKX7ZnfC0P/qRZFEG28dx/690qvhmOJ6hgThYFm5TUWANDLK5NiNKlPBi5WekVGd2+5wPrw==", "dev": true, "requires": { - "acorn": "^5.0.0", - "acorn-es7-plugin": "^1.0.12", - "core-js": "^2.0.0", - "espurify": "^1.6.0", - "estraverse": "^4.2.0" + "acorn": "5.7.1", + "acorn-es7-plugin": "1.1.7", + "core-js": "2.5.7", + "espurify": "1.8.0", + "estraverse": "4.2.0" } }, "power-assert-context-traversal": { @@ -12328,8 +11800,8 @@ "integrity": "sha512-NFoHU6g2umNajiP2l4qb0BRWD773Aw9uWdWYH9EQsVwIZnog5bd2YYLFCVvaxWpwNzWeEfZIon2xtyc63026pQ==", "dev": true, "requires": { - "core-js": "^2.0.0", - "estraverse": "^4.1.0" + "core-js": "2.5.7", + "estraverse": "4.2.0" } }, "power-assert-formatter": { @@ -12338,13 +11810,13 @@ "integrity": "sha1-XcEl7VCj37HdomwZNH879Y7CiEo=", "dev": true, "requires": { - "core-js": "^2.0.0", - "power-assert-context-formatter": "^1.0.7", - "power-assert-context-reducer-ast": "^1.0.7", - "power-assert-renderer-assertion": "^1.0.7", - "power-assert-renderer-comparison": "^1.0.7", - "power-assert-renderer-diagram": "^1.0.7", - "power-assert-renderer-file": "^1.0.7" + "core-js": "2.5.7", + "power-assert-context-formatter": "1.2.0", + "power-assert-context-reducer-ast": "1.2.0", + "power-assert-renderer-assertion": "1.2.0", + "power-assert-renderer-comparison": "1.2.0", + "power-assert-renderer-diagram": "1.2.0", + "power-assert-renderer-file": "1.2.0" } }, "power-assert-renderer-assertion": { @@ -12353,8 +11825,8 @@ "integrity": "sha512-3F7Q1ZLmV2ZCQv7aV7NJLNK9G7QsostrhOU7U0RhEQS/0vhEqrRg2jEJl1jtUL4ZyL2dXUlaaqrmPv5r9kRvIg==", "dev": true, "requires": { - "power-assert-renderer-base": "^1.1.1", - "power-assert-util-string-width": "^1.2.0" + "power-assert-renderer-base": "1.1.1", + "power-assert-util-string-width": "1.2.0" } }, "power-assert-renderer-base": { @@ -12369,11 +11841,11 @@ "integrity": "sha512-7c3RKPDBKK4E3JqdPtYRE9cM8AyX4LC4yfTvvTYyx8zSqmT5kJnXwzR0yWQLOavACllZfwrAGQzFiXPc5sWa+g==", "dev": true, "requires": { - "core-js": "^2.0.0", - "diff-match-patch": "^1.0.0", - "power-assert-renderer-base": "^1.1.1", - "stringifier": "^1.3.0", - "type-name": "^2.0.1" + "core-js": "2.5.7", + "diff-match-patch": "1.0.1", + "power-assert-renderer-base": "1.1.1", + "stringifier": "1.3.0", + "type-name": "2.0.2" } }, "power-assert-renderer-diagram": { @@ -12382,10 +11854,10 @@ "integrity": "sha512-JZ6PC+DJPQqfU6dwSmpcoD7gNnb/5U77bU5KgNwPPa+i1Pxiz6UuDeM3EUBlhZ1HvH9tMjI60anqVyi5l2oNdg==", "dev": true, "requires": { - "core-js": "^2.0.0", - "power-assert-renderer-base": "^1.1.1", - "power-assert-util-string-width": "^1.2.0", - "stringifier": "^1.3.0" + "core-js": "2.5.7", + "power-assert-renderer-base": "1.1.1", + "power-assert-util-string-width": "1.2.0", + "stringifier": "1.3.0" } }, "power-assert-renderer-file": { @@ -12394,7 +11866,7 @@ "integrity": "sha512-/oaVrRbeOtGoyyd7e4IdLP/jIIUFJdqJtsYzP9/88R39CMnfF/S/rUc8ZQalENfUfQ/wQHu+XZYRMaCEZmEesg==", "dev": true, "requires": { - "power-assert-renderer-base": "^1.1.1" + "power-assert-renderer-base": "1.1.1" } }, "power-assert-util-string-width": { @@ -12403,7 +11875,7 @@ "integrity": "sha512-lX90G0igAW0iyORTILZ/QjZWsa1MZ6VVY3L0K86e2eKun3S4LKPH4xZIl8fdeMYLfOjkaszbNSzf1uugLeAm2A==", "dev": true, "requires": { - "eastasianwidth": "^0.2.0" + "eastasianwidth": "0.2.0" } }, "prelude-ls": { @@ -12436,7 +11908,7 @@ "integrity": "sha512-ZypexbfVUGTFxb0v+m1bUyy92DHe5SyYlnyY0msyms5zd3RwyvNgyxZZsXXgoyzlxjx5MiqtXUdhUfvQbe0A2Q==", "dev": true, "requires": { - "parse-ms": "^1.0.0" + "parse-ms": "1.0.1" }, "dependencies": { "parse-ms": { @@ -12476,7 +11948,7 @@ "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", "dev": true, "requires": { - "forwarded": "~0.1.2", + "forwarded": "0.1.2", "ipaddr.js": "1.6.0" } }, @@ -12486,9 +11958,9 @@ "integrity": "sha512-fQr3VQrbdzHrdaDn3XuisVoJlJNDJizHAvUXw9IuXRR8BpV2x0N7LsCxrpJkeKfPbNjiNU/V5vc008cI0TmzzQ==", "dev": true, "requires": { - "fill-keys": "^1.0.2", - "module-not-found-error": "^1.0.0", - "resolve": "~1.5.0" + "fill-keys": "1.0.2", + "module-not-found-error": "1.0.1", + "resolve": "1.5.0" }, "dependencies": { "resolve": { @@ -12497,7 +11969,7 @@ "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", "dev": true, "requires": { - "path-parse": "^1.0.5" + "path-parse": "1.0.5" } } } @@ -12523,9 +11995,9 @@ "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", "dev": true, "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" + "decode-uri-component": "0.2.0", + "object-assign": "4.1.1", + "strict-uri-encode": "1.1.0" } }, "quick-lru": { @@ -12540,9 +12012,9 @@ "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", "dev": true, "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" + "is-number": "4.0.0", + "kind-of": "6.0.2", + "math-random": "1.0.1" }, "dependencies": { "is-number": { @@ -12583,10 +12055,10 @@ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "deep-extend": "0.6.0", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" }, "dependencies": { "minimist": { @@ -12603,9 +12075,9 @@ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" } }, "read-pkg-up": { @@ -12614,8 +12086,8 @@ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "find-up": "2.1.0", + "read-pkg": "2.0.0" } }, "readable-stream": { @@ -12623,13 +12095,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" } }, "readdirp": { @@ -12638,10 +12110,10 @@ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "minimatch": "^3.0.2", - "readable-stream": "^2.0.2", - "set-immediate-shim": "^1.0.1" + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.6", + "set-immediate-shim": "1.0.1" } }, "redent": { @@ -12650,8 +12122,8 @@ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" + "indent-string": "2.1.0", + "strip-indent": "1.0.1" }, "dependencies": { "indent-string": { @@ -12660,7 +12132,7 @@ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } } } @@ -12683,7 +12155,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { - "is-equal-shallow": "^0.1.3" + "is-equal-shallow": "0.1.3" } }, "regex-not": { @@ -12692,8 +12164,8 @@ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, "regexpp": { @@ -12708,9 +12180,9 @@ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "dev": true, "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" + "regenerate": "1.4.0", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" } }, "registry-auth-token": { @@ -12719,8 +12191,8 @@ "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", "dev": true, "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" + "rc": "1.2.8", + "safe-buffer": "5.1.2" } }, "registry-url": { @@ -12729,7 +12201,7 @@ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "dev": true, "requires": { - "rc": "^1.0.1" + "rc": "1.2.8" } }, "regjsgen": { @@ -12744,7 +12216,7 @@ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, "requires": { - "jsesc": "~0.5.0" + "jsesc": "0.5.0" } }, "release-zalgo": { @@ -12753,7 +12225,7 @@ "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", "dev": true, "requires": { - "es6-error": "^4.0.1" + "es6-error": "4.1.1" } }, "remove-trailing-separator": { @@ -12780,7 +12252,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "request": { @@ -12788,26 +12260,26 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", - "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.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.17", - "oauth-sign": "~0.8.2", - "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" + "aws-sign2": "0.7.0", + "aws4": "1.7.0", + "caseless": "0.12.0", + "combined-stream": "1.0.6", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.3.2", + "har-validator": "5.0.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.18", + "oauth-sign": "0.8.2", + "performance-now": "2.1.0", + "qs": "6.5.2", + "safe-buffer": "5.1.2", + "tough-cookie": "2.3.4", + "tunnel-agent": "0.6.0", + "uuid": "3.2.1" } }, "require-directory": { @@ -12834,8 +12306,8 @@ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "dev": true, "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" + "caller-path": "0.1.0", + "resolve-from": "1.0.1" }, "dependencies": { "resolve-from": { @@ -12852,7 +12324,7 @@ "integrity": "sha1-aUPDUwxNmn5G8c3dUcFY/GcM294=", "dev": true, "requires": { - "underscore": "~1.6.0" + "underscore": "1.6.0" }, "dependencies": { "underscore": { @@ -12875,7 +12347,7 @@ "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", "dev": true, "requires": { - "resolve-from": "^3.0.0" + "resolve-from": "3.0.0" } }, "resolve-from": { @@ -12896,7 +12368,7 @@ "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", "dev": true, "requires": { - "lowercase-keys": "^1.0.0" + "lowercase-keys": "1.0.1" } }, "restify": { @@ -12905,28 +12377,28 @@ "integrity": "sha512-xygVfQn/FiyzSPNIiOlzos6+RVcmTTK/bN0/m4z6vQwUY1yXntAsXM8ckq6hMxYfkhZfbPMM5hvBf75B8zLE1g==", "dev": true, "requires": { - "assert-plus": "^1.0.0", - "bunyan": "^1.8.12", - "csv": "^1.1.1", - "dtrace-provider": "^0.8.1", - "escape-regexp-component": "^1.0.2", - "ewma": "^2.0.1", - "find-my-way": "^1.13.0", - "formidable": "^1.2.1", - "http-signature": "^1.2.0", - "lodash": "^4.17.10", - "lru-cache": "^4.1.3", - "mime": "^1.5.0", - "negotiator": "^0.6.1", - "once": "^1.4.0", - "pidusage": "^1.2.0", - "qs": "^6.5.2", - "restify-errors": "^5.0.0", - "semver": "^5.4.1", - "spdy": "^3.4.7", - "uuid": "^3.1.0", - "vasync": "^1.6.4", - "verror": "^1.10.0" + "assert-plus": "1.0.0", + "bunyan": "1.8.12", + "csv": "1.2.1", + "dtrace-provider": "0.8.7", + "escape-regexp-component": "1.0.2", + "ewma": "2.0.1", + "find-my-way": "1.14.0", + "formidable": "1.2.1", + "http-signature": "1.2.0", + "lodash": "4.17.10", + "lru-cache": "4.1.3", + "mime": "1.6.0", + "negotiator": "0.6.1", + "once": "1.4.0", + "pidusage": "1.2.0", + "qs": "6.5.2", + "restify-errors": "5.0.0", + "semver": "5.5.0", + "spdy": "3.4.7", + "uuid": "3.2.1", + "vasync": "1.6.4", + "verror": "1.10.0" }, "dependencies": { "lodash": { @@ -12949,10 +12421,10 @@ "integrity": "sha512-+vby9Kxf7qlzvbZSTIEGkIixkeHG+pVCl34dk6eKnL+ua4pCezpdLT/1/eabzPZb65ADrgoc04jeWrrF1E1pvQ==", "dev": true, "requires": { - "assert-plus": "^1.0.0", - "lodash": "^4.2.1", - "safe-json-stringify": "^1.0.3", - "verror": "^1.8.1" + "assert-plus": "1.0.0", + "lodash": "4.17.5", + "safe-json-stringify": "1.2.0", + "verror": "1.10.0" } }, "restore-cursor": { @@ -12961,8 +12433,8 @@ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "onetime": "2.0.1", + "signal-exit": "3.0.2" } }, "ret": { @@ -12981,8 +12453,8 @@ "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-3.3.2.tgz", "integrity": "sha512-WIiGp37XXDC6e7ku3LFoi7LCL/Gs9luGeeqvbPRb+Zl6OQMw4RCRfSaW+aLfE6lhz1R941UavE6Svl3Dm5xGIQ==", "requires": { - "request": "^2.81.0", - "through2": "^2.0.0" + "request": "2.87.0", + "through2": "2.0.3" } }, "right-align": { @@ -12992,7 +12464,7 @@ "dev": true, "optional": true, "requires": { - "align-text": "^0.1.1" + "align-text": "0.1.4" } }, "rimraf": { @@ -13001,7 +12473,7 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "run-async": { @@ -13010,7 +12482,7 @@ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "is-promise": "^2.1.0" + "is-promise": "2.1.0" } }, "rx-lite": { @@ -13025,7 +12497,7 @@ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "dev": true, "requires": { - "rx-lite": "*" + "rx-lite": "4.0.8" } }, "rxjs": { @@ -13034,7 +12506,7 @@ "integrity": "sha512-OwMxHxmnmHTUpgO+V7dZChf3Tixf4ih95cmXjzzadULziVl/FKhHScGLj4goEw9weePVOH2Q0+GcCBUhKCZc/g==", "dev": true, "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.3" } }, "safe-buffer": { @@ -13055,7 +12527,7 @@ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "ret": "~0.1.10" + "ret": "0.1.15" } }, "safer-buffer": { @@ -13075,16 +12547,16 @@ "integrity": "sha512-52ThA+Z7h6BnvpSVbURwChl10XZrps5q7ytjTwWcIe9bmJwnVP6cpEVK2NvDOUhGupoqAvNbUz3cpnJDp4+/pg==", "dev": true, "requires": { - "chalk": "^2.3.0", - "htmlparser2": "^3.9.0", - "lodash.clonedeep": "^4.5.0", - "lodash.escaperegexp": "^4.1.2", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.mergewith": "^4.6.0", - "postcss": "^6.0.14", - "srcset": "^1.0.0", - "xtend": "^4.0.0" + "chalk": "2.4.1", + "htmlparser2": "3.9.2", + "lodash.clonedeep": "4.5.0", + "lodash.escaperegexp": "4.1.2", + "lodash.isplainobject": "4.0.6", + "lodash.isstring": "4.0.1", + "lodash.mergewith": "4.6.1", + "postcss": "6.0.23", + "srcset": "1.0.0", + "xtend": "4.0.1" } }, "select-hose": { @@ -13105,7 +12577,7 @@ "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "dev": true, "requires": { - "semver": "^5.0.3" + "semver": "5.5.0" } }, "semver-store": { @@ -13121,18 +12593,18 @@ "dev": true, "requires": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", + "depd": "1.1.2", + "destroy": "1.0.4", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", "fresh": "0.5.2", - "http-errors": "~1.6.2", + "http-errors": "1.6.3", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.4.0" + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.4.0" }, "dependencies": { "debug": { @@ -13170,9 +12642,9 @@ "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "dev": true, "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.2", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "parseurl": "1.3.2", "send": "0.16.2" } }, @@ -13194,10 +12666,10 @@ "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" }, "dependencies": { "extend-shallow": { @@ -13206,7 +12678,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -13223,7 +12695,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -13238,8 +12710,8 @@ "integrity": "sha1-x+dFXRHWD2ts08Q+FaO0McF+VWY=", "dev": true, "requires": { - "hoek": "5.x.x", - "joi": "13.x.x" + "hoek": "5.0.3", + "joi": "13.4.0" } }, "signal-exit": { @@ -13254,13 +12726,13 @@ "integrity": "sha512-pmf05hFgEZUS52AGJcsVjOjqAyJW2yo14cOwVYvzCyw7+inv06YXkLyW75WG6X6p951lzkoKh51L2sNbR9CDvw==", "dev": true, "requires": { - "@sinonjs/formatio": "^2.0.0", - "diff": "^3.1.0", - "lodash.get": "^4.4.2", - "lolex": "^2.2.0", - "nise": "^1.2.0", - "supports-color": "^5.1.0", - "type-detect": "^4.0.5" + "@sinonjs/formatio": "2.0.0", + "diff": "3.5.0", + "lodash.get": "4.4.2", + "lolex": "2.7.0", + "nise": "1.4.2", + "supports-color": "5.4.0", + "type-detect": "4.0.8" } }, "slash": { @@ -13275,7 +12747,7 @@ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0" + "is-fullwidth-code-point": "2.0.0" } }, "slide": { @@ -13290,14 +12762,14 @@ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "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.2", + "use": "3.1.0" }, "dependencies": { "debug": { @@ -13315,7 +12787,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -13324,7 +12796,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -13335,9 +12807,9 @@ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "dependencies": { "define-property": { @@ -13346,7 +12818,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -13355,7 +12827,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -13364,7 +12836,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -13373,9 +12845,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -13398,7 +12870,7 @@ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { - "kind-of": "^3.2.0" + "kind-of": "3.2.2" } }, "sort-keys": { @@ -13407,7 +12879,7 @@ "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", "dev": true, "requires": { - "is-plain-obj": "^1.0.0" + "is-plain-obj": "1.1.0" } }, "source-map": { @@ -13422,11 +12894,11 @@ "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "dev": true, "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "atob": "2.1.1", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" } }, "source-map-support": { @@ -13435,8 +12907,8 @@ "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", "dev": true, "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "buffer-from": "1.1.0", + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -13459,9 +12931,9 @@ "integrity": "sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==", "dev": true, "requires": { - "array-find-index": "^1.0.2", - "spdx-expression-parse": "^3.0.0", - "spdx-ranges": "^2.0.0" + "array-find-index": "1.0.2", + "spdx-expression-parse": "3.0.0", + "spdx-ranges": "2.0.0" } }, "spdx-correct": { @@ -13470,8 +12942,8 @@ "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "dev": true, "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, "spdx-exceptions": { @@ -13486,8 +12958,8 @@ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" } }, "spdx-license-ids": { @@ -13508,9 +12980,9 @@ "integrity": "sha512-OcARj6U1OuVv98SVrRqgrR30sVocONtoPpnX8Xz4vXNrFVedqtbgkA+0KmQoXIQ2xjfltPPRVIMeNzKEFLWWKQ==", "dev": true, "requires": { - "spdx-compare": "^1.0.0", - "spdx-expression-parse": "^3.0.0", - "spdx-ranges": "^2.0.0" + "spdx-compare": "1.0.0", + "spdx-expression-parse": "3.0.0", + "spdx-ranges": "2.0.0" } }, "spdy": { @@ -13519,12 +12991,12 @@ "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", "dev": true, "requires": { - "debug": "^2.6.8", - "handle-thing": "^1.2.5", - "http-deceiver": "^1.2.7", - "safe-buffer": "^5.0.1", - "select-hose": "^2.0.0", - "spdy-transport": "^2.0.18" + "debug": "2.6.9", + "handle-thing": "1.2.5", + "http-deceiver": "1.2.7", + "safe-buffer": "5.1.2", + "select-hose": "2.0.0", + "spdy-transport": "2.1.0" }, "dependencies": { "debug": { @@ -13544,13 +13016,13 @@ "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", "dev": true, "requires": { - "debug": "^2.6.8", - "detect-node": "^2.0.3", - "hpack.js": "^2.1.6", - "obuf": "^1.1.1", - "readable-stream": "^2.2.9", - "safe-buffer": "^5.0.1", - "wbuf": "^1.7.2" + "debug": "2.6.9", + "detect-node": "2.0.3", + "hpack.js": "2.1.6", + "obuf": "1.1.2", + "readable-stream": "2.3.6", + "safe-buffer": "5.1.2", + "wbuf": "1.7.3" }, "dependencies": { "debug": { @@ -13569,7 +13041,7 @@ "resolved": "https://registry.npmjs.org/split-array-stream/-/split-array-stream-2.0.0.tgz", "integrity": "sha512-hmMswlVY91WvGMxs0k8MRgq8zb2mSen4FmDNc5AFiTWtrBpdZN6nwD6kROVe4vNL+ywrvbCKsWVCnEd4riELIg==", "requires": { - "is-stream-ended": "^0.1.4" + "is-stream-ended": "0.1.4" } }, "split-string": { @@ -13578,7 +13050,7 @@ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { - "extend-shallow": "^3.0.0" + "extend-shallow": "3.0.2" } }, "sprintf-js": { @@ -13593,8 +13065,8 @@ "integrity": "sha1-pWad4StC87HV6D7QPHEEb8SPQe8=", "dev": true, "requires": { - "array-uniq": "^1.0.2", - "number-is-nan": "^1.0.0" + "array-uniq": "1.0.3", + "number-is-nan": "1.0.1" } }, "sshpk": { @@ -13602,15 +13074,15 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "safer-buffer": "2.1.2", + "tweetnacl": "0.14.5" } }, "stack-utils": { @@ -13625,12 +13097,12 @@ "integrity": "sha512-jR45n5ZMAkasw0xoE9j9TuLmJv4Sa3AkXe+6yIFT6a07kXYHgSbuD2OVGECdZGFxTmvNqLwL1iRIgvq6O6rq+A==", "dev": true, "requires": { - "boom": "7.x.x", - "bounce": "1.x.x", - "cryptiles": "4.x.x", - "hoek": "5.x.x", - "iron": "5.x.x", - "joi": "13.x.x" + "boom": "7.2.0", + "bounce": "1.2.0", + "cryptiles": "4.1.1", + "hoek": "5.0.3", + "iron": "5.0.4", + "joi": "13.4.0" } }, "static-extend": { @@ -13639,8 +13111,8 @@ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" + "define-property": "0.2.5", + "object-copy": "0.1.0" }, "dependencies": { "define-property": { @@ -13649,7 +13121,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -13665,7 +13137,7 @@ "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.4.tgz", "integrity": "sha512-D243NJaYs/xBN2QnoiMDY7IesJFIK7gEhnvAYqJa5JvDdnh2dC4qDBwlCf0ohPpX2QRlA/4gnbnPd3rs3KxVcA==", "requires": { - "stubs": "^3.0.0" + "stubs": "3.0.0" } }, "stream-shift": { @@ -13697,8 +13169,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" } }, "string_decoder": { @@ -13706,7 +13178,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.2" } }, "stringifier": { @@ -13715,9 +13187,9 @@ "integrity": "sha1-3vGDQvaTPbDy2/yaoCF1tEjBeVk=", "dev": true, "requires": { - "core-js": "^2.0.0", - "traverse": "^0.6.6", - "type-name": "^2.0.1" + "core-js": "2.5.7", + "traverse": "0.6.6", + "type-name": "2.0.2" } }, "strip-ansi": { @@ -13726,7 +13198,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" }, "dependencies": { "ansi-regex": { @@ -13749,7 +13221,7 @@ "integrity": "sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=", "dev": true, "requires": { - "is-utf8": "^0.2.1" + "is-utf8": "0.2.1" } }, "strip-eof": { @@ -13764,7 +13236,7 @@ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, "requires": { - "get-stdin": "^4.0.1" + "get-stdin": "4.0.1" } }, "strip-json-comments": { @@ -13784,11 +13256,11 @@ "integrity": "sha512-IcJUvRjeR+NB437Iq+LORFNJW4L6Knqkj3oQrBrkdhIaS2VKJvx/9aYEq7vi+PEx5/OuehOL/40SkSZotLi/MA==", "dev": true, "requires": { - "boom": "7.x.x", - "content": "4.x.x", - "hoek": "5.x.x", - "pez": "4.x.x", - "wreck": "14.x.x" + "boom": "7.2.0", + "content": "4.0.5", + "hoek": "5.0.3", + "pez": "4.0.2", + "wreck": "14.0.2" } }, "superagent": { @@ -13797,16 +13269,16 @@ "integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==", "dev": true, "requires": { - "component-emitter": "^1.2.0", - "cookiejar": "^2.1.0", - "debug": "^3.1.0", - "extend": "^3.0.0", - "form-data": "^2.3.1", - "formidable": "^1.2.0", - "methods": "^1.1.1", - "mime": "^1.4.1", - "qs": "^6.5.1", - "readable-stream": "^2.3.5" + "component-emitter": "1.2.1", + "cookiejar": "2.1.2", + "debug": "3.1.0", + "extend": "3.0.1", + "form-data": "2.3.2", + "formidable": "1.2.1", + "methods": "1.1.2", + "mime": "1.6.0", + "qs": "6.5.2", + "readable-stream": "2.3.6" }, "dependencies": { "mime": { @@ -13823,11 +13295,11 @@ "integrity": "sha512-HZJ3geIMPgVwKk2VsmO5YHqnnJYl6bV5A9JW2uzqV43WmpgliNEYbuvukfor7URpaqpxuw3CfZ3ONdVbZjCgIA==", "dev": true, "requires": { - "arrify": "^1.0.1", - "indent-string": "^3.2.0", - "js-yaml": "^3.10.0", - "serialize-error": "^2.1.0", - "strip-ansi": "^4.0.0" + "arrify": "1.0.1", + "indent-string": "3.2.0", + "js-yaml": "3.12.0", + "serialize-error": "2.1.0", + "strip-ansi": "4.0.0" } }, "supertest": { @@ -13836,8 +13308,8 @@ "integrity": "sha1-jUu2j9GDDuBwM7HFpamkAhyWUpY=", "dev": true, "requires": { - "methods": "~1.1.2", - "superagent": "^3.0.0" + "methods": "1.1.2", + "superagent": "3.8.3" } }, "supports-color": { @@ -13846,7 +13318,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" }, "dependencies": { "has-flag": { @@ -13869,12 +13341,12 @@ "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "dev": true, "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", + "ajv": "5.5.2", + "ajv-keywords": "2.1.1", + "chalk": "2.4.1", + "lodash": "4.17.5", "slice-ansi": "1.0.0", - "string-width": "^2.1.1" + "string-width": "2.1.1" } }, "taffydb": { @@ -13895,7 +13367,7 @@ "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "dev": true, "requires": { - "execa": "^0.7.0" + "execa": "0.7.0" } }, "text-encoding": { @@ -13921,8 +13393,8 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "requires": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" + "readable-stream": "2.3.6", + "xtend": "4.0.1" } }, "time-zone": { @@ -13943,7 +13415,7 @@ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "os-tmpdir": "~1.0.2" + "os-tmpdir": "1.0.2" } }, "to-fast-properties": { @@ -13958,7 +13430,7 @@ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "to-regex": { @@ -13967,10 +13439,10 @@ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" } }, "to-regex-range": { @@ -13979,8 +13451,8 @@ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "3.0.0", + "repeat-string": "1.6.1" }, "dependencies": { "is-number": { @@ -13989,7 +13461,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } } } @@ -14000,7 +13472,7 @@ "integrity": "sha512-Tlu1fGlR90iCdIPURqPiufqAlCZYzLjHYVVbcFWDMcX7+tK8hdZWAfsMrD/pBul9jqHHwFjNdf1WaxA9vTRRhw==", "dev": true, "requires": { - "hoek": "5.x.x" + "hoek": "5.0.3" } }, "tough-cookie": { @@ -14008,7 +13480,7 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "requires": { - "punycode": "^1.4.1" + "punycode": "1.4.1" } }, "traverse": { @@ -14036,9 +13508,9 @@ "dev": true }, "tslib": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.2.tgz", - "integrity": "sha512-AVP5Xol3WivEr7hnssHDsaM+lVrVXWUvd1cfXTRkTj80b//6g2wIFEH6hZG0muGZRnHGrfttpdzRk3YlBkWjKw==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", "dev": true }, "tslint": { @@ -14047,18 +13519,18 @@ "integrity": "sha1-EeJrzLiK+gLdDZlWyuPUVAtfVMM=", "dev": true, "requires": { - "babel-code-frame": "^6.22.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^3.2.0", - "glob": "^7.1.1", - "js-yaml": "^3.7.0", - "minimatch": "^3.0.4", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.8.0", - "tsutils": "^2.12.1" + "babel-code-frame": "6.26.0", + "builtin-modules": "1.1.1", + "chalk": "2.4.1", + "commander": "2.15.1", + "diff": "3.5.0", + "glob": "7.1.2", + "js-yaml": "3.12.0", + "minimatch": "3.0.4", + "resolve": "1.8.1", + "semver": "5.5.0", + "tslib": "1.9.3", + "tsutils": "2.27.1" }, "dependencies": { "resolve": { @@ -14067,7 +13539,7 @@ "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "dev": true, "requires": { - "path-parse": "^1.0.5" + "path-parse": "1.0.5" } } } @@ -14078,7 +13550,7 @@ "integrity": "sha512-AE/7uzp32MmaHvNNFES85hhUDHFdFZp6OAiZcd6y4ZKKIg6orJTm8keYWBhIhrJQH3a4LzNKat7ZPXZt5aTf6w==", "dev": true, "requires": { - "tslib": "^1.8.1" + "tslib": "1.9.3" } }, "tunnel-agent": { @@ -14086,7 +13558,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "tweetnacl": { @@ -14101,7 +13573,7 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "~1.1.2" + "prelude-ls": "1.1.2" } }, "type-detect": { @@ -14117,7 +13589,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "~2.1.18" + "mime-types": "2.1.18" } }, "type-name": { @@ -14145,9 +13617,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" }, "dependencies": { "camelcase": { @@ -14164,9 +13636,9 @@ "dev": true, "optional": true, "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", "window-size": "0.1.0" } } @@ -14214,10 +13686,10 @@ "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "dev": true, "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" }, "dependencies": { "extend-shallow": { @@ -14226,7 +13698,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "set-value": { @@ -14235,10 +13707,10 @@ "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" } } } @@ -14249,7 +13721,7 @@ "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", "dev": true, "requires": { - "crypto-random-string": "^1.0.0" + "crypto-random-string": "1.0.0" } }, "unique-temp-dir": { @@ -14258,8 +13730,8 @@ "integrity": "sha1-bc6VsmgcoAPuv7MEpBX5y6vMU4U=", "dev": true, "requires": { - "mkdirp": "^0.5.1", - "os-tmpdir": "^1.0.1", + "mkdirp": "0.5.1", + "os-tmpdir": "1.0.2", "uid2": "0.0.3" } }, @@ -14269,9 +13741,9 @@ "integrity": "sha1-DaSsL3PP95JMgfpN4BjKViyisKc=", "dev": true, "requires": { - "array-filter": "^1.0.0", + "array-filter": "1.0.0", "indexof": "0.0.1", - "object-keys": "^1.0.0" + "object-keys": "1.0.12" } }, "universalify": { @@ -14292,8 +13764,8 @@ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "has-value": "0.3.1", + "isobject": "3.0.1" }, "dependencies": { "has-value": { @@ -14302,9 +13774,9 @@ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" }, "dependencies": { "isobject": { @@ -14344,16 +13816,16 @@ "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", "dev": true, "requires": { - "boxen": "^1.2.1", - "chalk": "^2.0.1", - "configstore": "^3.0.0", - "import-lazy": "^2.1.0", - "is-ci": "^1.0.10", - "is-installed-globally": "^0.1.0", - "is-npm": "^1.0.0", - "latest-version": "^3.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" + "boxen": "1.3.0", + "chalk": "2.4.1", + "configstore": "3.1.2", + "import-lazy": "2.1.0", + "is-ci": "1.1.0", + "is-installed-globally": "0.1.0", + "is-npm": "1.0.0", + "latest-version": "3.1.0", + "semver-diff": "2.1.0", + "xdg-basedir": "3.0.0" } }, "urix": { @@ -14368,7 +13840,7 @@ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "dev": true, "requires": { - "prepend-http": "^1.0.1" + "prepend-http": "1.0.4" } }, "url-to-options": { @@ -14389,7 +13861,7 @@ "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", "dev": true, "requires": { - "kind-of": "^6.0.2" + "kind-of": "6.0.2" }, "dependencies": { "kind-of": { @@ -14422,8 +13894,8 @@ "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "dev": true, "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "validate-npm-package-name": { @@ -14432,7 +13904,7 @@ "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "dev": true, "requires": { - "builtins": "^1.0.3" + "builtins": "1.0.3" } }, "vary": { @@ -14472,9 +13944,9 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "^1.0.0", + "assert-plus": "1.0.0", "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "extsprintf": "1.3.0" } }, "vise": { @@ -14483,7 +13955,7 @@ "integrity": "sha512-kBFZLmiL1Vm3rHXphkhvvAcsjgeQXRrOFCbJb0I50YZZP4HGRNH+xGzK3matIMcpbsfr3I02u9odj4oCD0TWgA==", "dev": true, "requires": { - "hoek": "5.x.x" + "hoek": "5.0.3" } }, "wbuf": { @@ -14492,7 +13964,7 @@ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, "requires": { - "minimalistic-assert": "^1.0.0" + "minimalistic-assert": "1.0.1" } }, "well-known-symbols": { @@ -14507,7 +13979,7 @@ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -14522,7 +13994,7 @@ "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", "dev": true, "requires": { - "string-width": "^2.1.1" + "string-width": "2.1.1" } }, "window-size": { @@ -14544,8 +14016,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -14554,7 +14026,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "string-width": { @@ -14563,9 +14035,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "strip-ansi": { @@ -14574,7 +14046,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } } } @@ -14590,8 +14062,8 @@ "integrity": "sha512-QCm3omWNJUseqrSzwX2QZi1rBbmCfbFHJAXputLLyZ37VSiFnSYQB0ms/mPnSvrlIu7GVm89Y/gBNhSY26uVIQ==", "dev": true, "requires": { - "boom": "7.x.x", - "hoek": "5.x.x" + "boom": "7.2.0", + "hoek": "5.0.3" } }, "write": { @@ -14600,7 +14072,7 @@ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "^0.5.1" + "mkdirp": "0.5.1" } }, "write-file-atomic": { @@ -14609,9 +14081,9 @@ "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "signal-exit": "3.0.2" } }, "write-json-file": { @@ -14620,12 +14092,12 @@ "integrity": "sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=", "dev": true, "requires": { - "detect-indent": "^5.0.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "pify": "^3.0.0", - "sort-keys": "^2.0.0", - "write-file-atomic": "^2.0.0" + "detect-indent": "5.0.0", + "graceful-fs": "4.1.11", + "make-dir": "1.3.0", + "pify": "3.0.0", + "sort-keys": "2.0.0", + "write-file-atomic": "2.3.0" }, "dependencies": { "detect-indent": { @@ -14642,8 +14114,8 @@ "integrity": "sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw==", "dev": true, "requires": { - "sort-keys": "^2.0.0", - "write-json-file": "^2.2.0" + "sort-keys": "2.0.0", + "write-json-file": "2.3.0" } }, "xdg-basedir": { @@ -14680,18 +14152,18 @@ "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^9.0.2" + "cliui": "4.1.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "9.0.2" }, "dependencies": { "cliui": { @@ -14700,9 +14172,9 @@ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" } } } @@ -14713,7 +14185,7 @@ "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" }, "dependencies": { "camelcase": { diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 7c0e91e8bd7..7d170ec5e88 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -54,7 +54,7 @@ "license-check": "jsgl --local ." }, "dependencies": { - "@google-cloud/common": "^0.18.8", + "@google-cloud/common": "^0.20.0", "is": "^3.2.1", "lodash.has": "^4.5.2" }, diff --git a/handwritten/error-reporting/src/logger.ts b/handwritten/error-reporting/src/logger.ts index 2ff15c0647e..befb66a5020 100644 --- a/handwritten/error-reporting/src/logger.ts +++ b/handwritten/error-reporting/src/logger.ts @@ -20,7 +20,7 @@ import has from 'lodash.has'; const packageJson = require('../../package.json'); import {ConfigurationOptions} from './configuration'; -import {logger, Logger} from '@google-cloud/common'; +import {Logger} from '@google-cloud/common'; /** * Creates an instance of the Google Cloud Diagnostics logger class. This @@ -41,25 +41,25 @@ import {logger, Logger} from '@google-cloud/common'; */ export function createLogger(initConfiguration?: ConfigurationOptions) { // Default to log level: warn (2) - const DEFAULT_LEVEL = logger.LEVELS[2]; + const DEFAULT_LEVEL = Logger.LEVELS[2]; let level = DEFAULT_LEVEL; if (has(process.env, 'GCLOUD_ERRORS_LOGLEVEL')) { // Cast env string as integer level = - logger.LEVELS[~~process.env.GCLOUD_ERRORS_LOGLEVEL!] || DEFAULT_LEVEL; + Logger.LEVELS[~~process.env.GCLOUD_ERRORS_LOGLEVEL!] || DEFAULT_LEVEL; } else if ( is.object(initConfiguration) && has(initConfiguration, 'logLevel')) { if (is.string(initConfiguration!.logLevel)) { // Cast string as integer - level = logger.LEVELS[~~initConfiguration!.logLevel!] || DEFAULT_LEVEL; + level = Logger.LEVELS[~~initConfiguration!.logLevel!] || DEFAULT_LEVEL; } else if (is.number(initConfiguration!.logLevel)) { level = - logger.LEVELS[Number(initConfiguration!.logLevel!)] || DEFAULT_LEVEL; + Logger.LEVELS[Number(initConfiguration!.logLevel!)] || DEFAULT_LEVEL; } else { throw new Error( 'config.logLevel must be a number or decimal ' + 'representation of a number in string form'); } } - return logger({level, tag: packageJson.name}); + return new Logger({level, tag: packageJson.name}); } diff --git a/handwritten/error-reporting/system-test/test-install.ts b/handwritten/error-reporting/system-test/test-install.ts index 8f9de8d1c9a..f59ae0a66cf 100644 --- a/handwritten/error-reporting/system-test/test-install.ts +++ b/handwritten/error-reporting/system-test/test-install.ts @@ -407,7 +407,7 @@ describe('Installation', () => { if (installDir) { await rimrafP(installDir); } - if (this.currentTest!.state === 'failed') { + if (this.currentTest && this.currentTest.state === 'failed') { console.log(text); } }); From ab7804115324db9bd8bf413862ccc0b213cef5bf Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Tue, 26 Jun 2018 07:41:18 -0700 Subject: [PATCH 112/527] chore(package): update eslint to version 5.0.0 (#145) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 7d170ec5e88..62c14559eaa 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -92,7 +92,7 @@ "boom": "^7.2.0", "codecov": "^3.0.2", "cpy-cli": "^2.0.0", - "eslint": "^4.19.1", + "eslint": "^5.0.0", "eslint-config-prettier": "^2.9.0", "eslint-plugin-node": "^6.0.1", "eslint-plugin-prettier": "^2.6.0", From 3f69de30af7854baef4ad538d6507f96712e2bc2 Mon Sep 17 00:00:00 2001 From: Christopher Wilcox Date: Wed, 27 Jun 2018 15:21:30 -0700 Subject: [PATCH 113/527] bump version to 0.5.0 (#149) --- handwritten/error-reporting/package-lock.json | 5449 +++++++++-------- 1 file changed, 2793 insertions(+), 2656 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index d8b3ce28dc7..c56360fdfa5 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -16,18 +16,18 @@ "integrity": "sha512-oWqTnIGXW3k72UFidXzW0ONlO7hnO9x02S/QReJ7NBGeiBH9cUHY9+EfV6C8PXC6YJH++WrliEq03wMSJGNZFg==", "dev": true, "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "package-hash": "1.2.0" + "babel-plugin-check-es2015-constants": "^6.8.0", + "babel-plugin-syntax-trailing-function-commas": "^6.20.0", + "babel-plugin-transform-async-to-generator": "^6.16.0", + "babel-plugin-transform-es2015-destructuring": "^6.19.0", + "babel-plugin-transform-es2015-function-name": "^6.9.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.18.0", + "babel-plugin-transform-es2015-parameters": "^6.21.0", + "babel-plugin-transform-es2015-spread": "^6.8.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.8.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.11.0", + "babel-plugin-transform-exponentiation-operator": "^6.8.0", + "package-hash": "^1.2.0" }, "dependencies": { "md5-hex": { @@ -36,7 +36,7 @@ "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "package-hash": { @@ -45,7 +45,7 @@ "integrity": "sha1-AD5WzVe3NqbtYRTMK4FUJnJ3DkQ=", "dev": true, "requires": { - "md5-hex": "1.3.0" + "md5-hex": "^1.3.0" } } } @@ -56,8 +56,8 @@ "integrity": "sha1-ze0RlqjY2TgaUJJAq5LpGl7Aafc=", "dev": true, "requires": { - "@ava/babel-plugin-throws-helper": "2.0.0", - "babel-plugin-espower": "2.4.0" + "@ava/babel-plugin-throws-helper": "^2.0.0", + "babel-plugin-espower": "^2.3.2" } }, "@ava/write-file-atomic": { @@ -66,31 +66,31 @@ "integrity": "sha512-BTNB3nGbEfJT+69wuqXFr/bQH7Vr7ihx2xGOMNqPgDGhwspoZhiWumDDZNjBy7AScmqS5CELIOGtPVXESyrnDA==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, "@babel/code-frame": { - "version": "7.0.0-beta.49", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.49.tgz", - "integrity": "sha1-vs2AVIJzREDJ0TfkbXc0DmTX9Rs=", + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz", + "integrity": "sha1-vXHZsZKvl435FYKdOdQJRFZDmgw=", "dev": true, "requires": { - "@babel/highlight": "7.0.0-beta.49" + "@babel/highlight": "7.0.0-beta.51" } }, "@babel/generator": { - "version": "7.0.0-beta.49", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.49.tgz", - "integrity": "sha1-6c/9qROZaszseTu8JauRvBnQv3o=", + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.51.tgz", + "integrity": "sha1-bHV1/952HQdIXgS67cA5LG2eMPY=", "dev": true, "requires": { - "@babel/types": "7.0.0-beta.49", - "jsesc": "2.5.1", - "lodash": "4.17.5", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "@babel/types": "7.0.0-beta.51", + "jsesc": "^2.5.1", + "lodash": "^4.17.5", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" }, "dependencies": { "jsesc": { @@ -102,79 +102,79 @@ } }, "@babel/helper-function-name": { - "version": "7.0.0-beta.49", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.49.tgz", - "integrity": "sha1-olwRGbnwNSeGcBJuAiXAMEHI3jI=", + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.51.tgz", + "integrity": "sha1-IbSHSiJ8+Z7K/MMKkDAtpaJkBWE=", "dev": true, "requires": { - "@babel/helper-get-function-arity": "7.0.0-beta.49", - "@babel/template": "7.0.0-beta.49", - "@babel/types": "7.0.0-beta.49" + "@babel/helper-get-function-arity": "7.0.0-beta.51", + "@babel/template": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51" } }, "@babel/helper-get-function-arity": { - "version": "7.0.0-beta.49", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.49.tgz", - "integrity": "sha1-z1Aj8y0q2S0Ic3STnOwJUby1FEE=", + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.51.tgz", + "integrity": "sha1-MoGy0EWvlcFyzpGyCCXYXqRnZBE=", "dev": true, "requires": { - "@babel/types": "7.0.0-beta.49" + "@babel/types": "7.0.0-beta.51" } }, "@babel/helper-split-export-declaration": { - "version": "7.0.0-beta.49", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.49.tgz", - "integrity": "sha1-QNeO2glo0BGxxShm5XRs+yPldUg=", + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.51.tgz", + "integrity": "sha1-imw/ZsTSZTUvwHdIT59ugKUauXg=", "dev": true, "requires": { - "@babel/types": "7.0.0-beta.49" + "@babel/types": "7.0.0-beta.51" } }, "@babel/highlight": { - "version": "7.0.0-beta.49", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.49.tgz", - "integrity": "sha1-lr3GtD4TSCASumaRsQGEktOWIsw=", + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.51.tgz", + "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=", "dev": true, "requires": { - "chalk": "2.4.1", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^3.0.0" } }, "@babel/parser": { - "version": "7.0.0-beta.49", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.0.0-beta.49.tgz", - "integrity": "sha1-lE0MW6KBK7FZ7b0iZ0Ov0mUXm9w=", + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.0.0-beta.51.tgz", + "integrity": "sha1-J87C30Cd9gr1gnDtj2qlVAnqhvY=", "dev": true }, "@babel/template": { - "version": "7.0.0-beta.49", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.49.tgz", - "integrity": "sha1-44q+ghfLl5P0YaUwbXrXRdg+HSc=", + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.51.tgz", + "integrity": "sha1-lgKkCuvPNXrpZ34lMu9fyBD1+/8=", "dev": true, "requires": { - "@babel/code-frame": "7.0.0-beta.49", - "@babel/parser": "7.0.0-beta.49", - "@babel/types": "7.0.0-beta.49", - "lodash": "4.17.5" + "@babel/code-frame": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "lodash": "^4.17.5" } }, "@babel/traverse": { - "version": "7.0.0-beta.49", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.49.tgz", - "integrity": "sha1-TypzaCoYM07WYl0QCo0nMZ98LWg=", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0-beta.49", - "@babel/generator": "7.0.0-beta.49", - "@babel/helper-function-name": "7.0.0-beta.49", - "@babel/helper-split-export-declaration": "7.0.0-beta.49", - "@babel/parser": "7.0.0-beta.49", - "@babel/types": "7.0.0-beta.49", - "debug": "3.1.0", - "globals": "11.7.0", - "invariant": "2.2.4", - "lodash": "4.17.5" + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.51.tgz", + "integrity": "sha1-mB2vLOw0emIx06odnhgDsDqqpKg=", + "dev": true, + "requires": { + "@babel/code-frame": "7.0.0-beta.51", + "@babel/generator": "7.0.0-beta.51", + "@babel/helper-function-name": "7.0.0-beta.51", + "@babel/helper-split-export-declaration": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "debug": "^3.1.0", + "globals": "^11.1.0", + "invariant": "^2.2.0", + "lodash": "^4.17.5" }, "dependencies": { "globals": { @@ -186,14 +186,14 @@ } }, "@babel/types": { - "version": "7.0.0-beta.49", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.49.tgz", - "integrity": "sha1-t+Oxw/TUz+Eb34yJ8e/V4WF7h6Y=", + "version": "7.0.0-beta.51", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.51.tgz", + "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=", "dev": true, "requires": { - "esutils": "2.0.2", - "lodash": "4.17.5", - "to-fast-properties": "2.0.0" + "esutils": "^2.0.2", + "lodash": "^4.17.5", + "to-fast-properties": "^2.0.0" }, "dependencies": { "to-fast-properties": { @@ -210,7 +210,7 @@ "integrity": "sha512-htrsRaQX8Iixlsek8zQU7tE8wcsTQJ5UhZkSPEA8slCDAisKpC/2VgU/ucPn32M5/LjGGXRaUEKvEw1Wiuu4zQ==", "dev": true, "requires": { - "arrify": "1.0.1" + "arrify": "^1.0.1" } }, "@google-cloud/common": { @@ -218,21 +218,21 @@ "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.20.1.tgz", "integrity": "sha512-LJB7CoNXEXY0mDWtF8E2cl3Y0kuMQ3wjH9Xr+Y7vH5gHgN82dDh1BMUOizRf9oXQFDWUgGERD5SdfBcjUhHmwA==", "requires": { - "@types/duplexify": "3.5.0", - "@types/request": "2.47.1", - "arrify": "1.0.1", - "axios": "0.18.0", - "duplexify": "3.6.0", - "ent": "2.2.0", - "extend": "3.0.1", - "google-auth-library": "1.6.1", - "is": "3.2.1", - "pify": "3.0.0", - "request": "2.87.0", - "retry-request": "3.3.2", - "split-array-stream": "2.0.0", - "stream-events": "1.0.4", - "through2": "2.0.3" + "@types/duplexify": "^3.5.0", + "@types/request": "^2.47.0", + "arrify": "^1.0.1", + "axios": "^0.18.0", + "duplexify": "^3.6.0", + "ent": "^2.2.0", + "extend": "^3.0.1", + "google-auth-library": "^1.6.0", + "is": "^3.2.1", + "pify": "^3.0.0", + "request": "^2.87.0", + "retry-request": "^3.3.1", + "split-array-stream": "^2.0.0", + "stream-events": "^1.0.4", + "through2": "^2.0.3" } }, "@google-cloud/nodejs-repo-tools": { @@ -249,7 +249,7 @@ "lodash": "4.17.5", "nyc": "11.4.1", "proxyquire": "1.8.0", - "semver": "5.5.0", + "semver": "^5.5.0", "sinon": "4.3.0", "string": "3.3.3", "supertest": "3.0.0", @@ -263,33 +263,33 @@ "integrity": "sha512-5eCZpvaksFVjP2rt1r60cfXmt3MUtsQDw8bAzNqNEr4WLvUMLgiVENMf/B9bE9YAX0mGVvaGA3v9IS9ekNqB1Q==", "dev": true, "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "1.0.1", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "default-require-extensions": "1.0.0", - "find-cache-dir": "0.1.1", - "find-up": "2.1.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "1.1.1", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "1.9.1", - "istanbul-lib-report": "1.1.2", - "istanbul-lib-source-maps": "1.2.2", - "istanbul-reports": "1.1.3", - "md5-hex": "1.3.0", - "merge-source-map": "1.0.4", - "micromatch": "2.3.11", - "mkdirp": "0.5.1", - "resolve-from": "2.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "4.1.1", - "yargs": "10.0.3", - "yargs-parser": "8.0.0" + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.3.0", + "debug-log": "^1.0.1", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^2.1.0", + "foreground-child": "^1.5.3", + "glob": "^7.0.6", + "istanbul-lib-coverage": "^1.1.1", + "istanbul-lib-hook": "^1.1.0", + "istanbul-lib-instrument": "^1.9.1", + "istanbul-lib-report": "^1.1.2", + "istanbul-lib-source-maps": "^1.2.2", + "istanbul-reports": "^1.1.3", + "md5-hex": "^1.2.0", + "merge-source-map": "^1.0.2", + "micromatch": "^2.3.11", + "mkdirp": "^0.5.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.5.4", + "signal-exit": "^3.0.1", + "spawn-wrap": "^1.4.2", + "test-exclude": "^4.1.1", + "yargs": "^10.0.3", + "yargs-parser": "^8.0.0" }, "dependencies": { "align-text": { @@ -297,9 +297,9 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" } }, "amdefine": { @@ -322,7 +322,7 @@ "bundled": true, "dev": true, "requires": { - "default-require-extensions": "1.0.0" + "default-require-extensions": "^1.0.0" } }, "archy": { @@ -335,7 +335,7 @@ "bundled": true, "dev": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -363,9 +363,9 @@ "bundled": true, "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" } }, "babel-generator": { @@ -373,14 +373,14 @@ "bundled": true, "dev": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.4", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.6", + "trim-right": "^1.0.1" } }, "babel-messages": { @@ -388,7 +388,7 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-runtime": { @@ -396,8 +396,8 @@ "bundled": true, "dev": true, "requires": { - "core-js": "2.5.3", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -405,11 +405,11 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.4" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { @@ -417,15 +417,15 @@ "bundled": true, "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, "babel-types": { @@ -433,10 +433,10 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -454,7 +454,7 @@ "bundled": true, "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -463,9 +463,9 @@ "bundled": true, "dev": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "builtin-modules": { @@ -478,9 +478,9 @@ "bundled": true, "dev": true, "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" } }, "camelcase": { @@ -495,8 +495,8 @@ "dev": true, "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chalk": { @@ -504,11 +504,11 @@ "bundled": true, "dev": true, "requires": { - "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" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "cliui": { @@ -517,8 +517,8 @@ "dev": true, "optional": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" }, "dependencies": { @@ -560,8 +560,8 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.1", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, "debug": { @@ -587,7 +587,7 @@ "bundled": true, "dev": true, "requires": { - "strip-bom": "2.0.0" + "strip-bom": "^2.0.0" } }, "detect-indent": { @@ -595,7 +595,7 @@ "bundled": true, "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "error-ex": { @@ -603,7 +603,7 @@ "bundled": true, "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "escape-string-regexp": { @@ -621,13 +621,13 @@ "bundled": true, "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" }, "dependencies": { "cross-spawn": { @@ -635,9 +635,9 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.1", - "shebang-command": "1.2.0", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } } } @@ -647,7 +647,7 @@ "bundled": true, "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -655,7 +655,7 @@ "bundled": true, "dev": true, "requires": { - "fill-range": "2.2.3" + "fill-range": "^2.1.0" } }, "extglob": { @@ -663,7 +663,7 @@ "bundled": true, "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "filename-regex": { @@ -676,11 +676,11 @@ "bundled": true, "dev": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^1.1.3", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" } }, "find-cache-dir": { @@ -688,9 +688,9 @@ "bundled": true, "dev": true, "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" } }, "find-up": { @@ -698,7 +698,7 @@ "bundled": true, "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "for-in": { @@ -711,7 +711,7 @@ "bundled": true, "dev": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "foreground-child": { @@ -719,8 +719,8 @@ "bundled": true, "dev": true, "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" + "cross-spawn": "^4", + "signal-exit": "^3.0.0" } }, "fs.realpath": { @@ -743,12 +743,12 @@ "bundled": true, "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-base": { @@ -756,8 +756,8 @@ "bundled": true, "dev": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -765,7 +765,7 @@ "bundled": true, "dev": true, "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "globals": { @@ -783,10 +783,10 @@ "bundled": true, "dev": true, "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" }, "dependencies": { "source-map": { @@ -794,7 +794,7 @@ "bundled": true, "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -804,7 +804,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { @@ -827,8 +827,8 @@ "bundled": true, "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -841,7 +841,7 @@ "bundled": true, "dev": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -864,7 +864,7 @@ "bundled": true, "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-dotfile": { @@ -877,7 +877,7 @@ "bundled": true, "dev": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -895,7 +895,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -903,7 +903,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-glob": { @@ -911,7 +911,7 @@ "bundled": true, "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-number": { @@ -919,7 +919,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-posix-bracket": { @@ -970,7 +970,7 @@ "bundled": true, "dev": true, "requires": { - "append-transform": "0.4.0" + "append-transform": "^0.4.0" } }, "istanbul-lib-instrument": { @@ -978,13 +978,13 @@ "bundled": true, "dev": true, "requires": { - "babel-generator": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.1.1", - "semver": "5.4.1" + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.1.1", + "semver": "^5.3.0" } }, "istanbul-lib-report": { @@ -992,10 +992,10 @@ "bundled": true, "dev": true, "requires": { - "istanbul-lib-coverage": "1.1.1", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" + "istanbul-lib-coverage": "^1.1.1", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" }, "dependencies": { "supports-color": { @@ -1003,7 +1003,7 @@ "bundled": true, "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -1013,11 +1013,11 @@ "bundled": true, "dev": true, "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.1.1", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.1.1", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" }, "dependencies": { "debug": { @@ -1035,7 +1035,7 @@ "bundled": true, "dev": true, "requires": { - "handlebars": "4.0.11" + "handlebars": "^4.0.3" } }, "js-tokens": { @@ -1053,7 +1053,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lazy-cache": { @@ -1067,7 +1067,7 @@ "bundled": true, "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "load-json-file": { @@ -1075,11 +1075,11 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" } }, "locate-path": { @@ -1087,8 +1087,8 @@ "bundled": true, "dev": true, "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" }, "dependencies": { "path-exists": { @@ -1113,7 +1113,7 @@ "bundled": true, "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "lru-cache": { @@ -1121,8 +1121,8 @@ "bundled": true, "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "md5-hex": { @@ -1130,7 +1130,7 @@ "bundled": true, "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { @@ -1143,7 +1143,7 @@ "bundled": true, "dev": true, "requires": { - "mimic-fn": "1.1.0" + "mimic-fn": "^1.0.0" } }, "merge-source-map": { @@ -1151,7 +1151,7 @@ "bundled": true, "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } }, "micromatch": { @@ -1159,19 +1159,19 @@ "bundled": true, "dev": true, "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" } }, "mimic-fn": { @@ -1184,7 +1184,7 @@ "bundled": true, "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -1210,10 +1210,10 @@ "bundled": true, "dev": true, "requires": { - "hosted-git-info": "2.5.0", - "is-builtin-module": "1.0.0", - "semver": "5.4.1", - "validate-npm-package-license": "3.0.1" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { @@ -1221,7 +1221,7 @@ "bundled": true, "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "npm-run-path": { @@ -1229,7 +1229,7 @@ "bundled": true, "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -1247,8 +1247,8 @@ "bundled": true, "dev": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "once": { @@ -1256,7 +1256,7 @@ "bundled": true, "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "optimist": { @@ -1264,8 +1264,8 @@ "bundled": true, "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "os-homedir": { @@ -1278,9 +1278,9 @@ "bundled": true, "dev": true, "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" } }, "p-finally": { @@ -1298,7 +1298,7 @@ "bundled": true, "dev": true, "requires": { - "p-limit": "1.1.0" + "p-limit": "^1.1.0" } }, "parse-glob": { @@ -1306,10 +1306,10 @@ "bundled": true, "dev": true, "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" } }, "parse-json": { @@ -1317,7 +1317,7 @@ "bundled": true, "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "path-exists": { @@ -1325,7 +1325,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { @@ -1348,9 +1348,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -1368,7 +1368,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { @@ -1376,7 +1376,7 @@ "bundled": true, "dev": true, "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" }, "dependencies": { "find-up": { @@ -1384,8 +1384,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } @@ -1405,8 +1405,8 @@ "bundled": true, "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { @@ -1414,7 +1414,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -1422,7 +1422,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -1432,7 +1432,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -1442,9 +1442,9 @@ "bundled": true, "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -1452,8 +1452,8 @@ "bundled": true, "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" }, "dependencies": { "find-up": { @@ -1461,8 +1461,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } @@ -1477,7 +1477,7 @@ "bundled": true, "dev": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "remove-trailing-separator": { @@ -1500,7 +1500,7 @@ "bundled": true, "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "require-directory": { @@ -1524,7 +1524,7 @@ "dev": true, "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { @@ -1532,7 +1532,7 @@ "bundled": true, "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "semver": { @@ -1550,7 +1550,7 @@ "bundled": true, "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -1578,12 +1578,12 @@ "bundled": true, "dev": true, "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.0" + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" } }, "spdx-correct": { @@ -1591,7 +1591,7 @@ "bundled": true, "dev": true, "requires": { - "spdx-license-ids": "1.2.2" + "spdx-license-ids": "^1.0.2" } }, "spdx-expression-parse": { @@ -1609,8 +1609,8 @@ "bundled": true, "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" }, "dependencies": { "ansi-regex": { @@ -1628,7 +1628,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -1638,7 +1638,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -1646,7 +1646,7 @@ "bundled": true, "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-eof": { @@ -1664,11 +1664,11 @@ "bundled": true, "dev": true, "requires": { - "arrify": "1.0.1", - "micromatch": "2.3.11", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" + "arrify": "^1.0.1", + "micromatch": "^2.3.11", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" } }, "to-fast-properties": { @@ -1687,9 +1687,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "yargs": { @@ -1698,9 +1698,9 @@ "dev": true, "optional": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" } } @@ -1717,8 +1717,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" } }, "which": { @@ -1726,7 +1726,7 @@ "bundled": true, "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -1750,8 +1750,8 @@ "bundled": true, "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "string-width": { @@ -1759,9 +1759,9 @@ "bundled": true, "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } } } @@ -1776,9 +1776,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, "y18n": { @@ -1796,18 +1796,18 @@ "bundled": true, "dev": true, "requires": { - "cliui": "3.2.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "8.0.0" + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^8.0.0" }, "dependencies": { "cliui": { @@ -1815,9 +1815,9 @@ "bundled": true, "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" }, "dependencies": { "string-width": { @@ -1825,9 +1825,9 @@ "bundled": true, "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } } } @@ -1839,7 +1839,7 @@ "bundled": true, "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { @@ -1857,9 +1857,9 @@ "integrity": "sha1-AtUUpb7ZhvBMuyCTrxZ0FTX3ntw=", "dev": true, "requires": { - "fill-keys": "1.0.2", - "module-not-found-error": "1.0.1", - "resolve": "1.1.7" + "fill-keys": "^1.0.2", + "module-not-found-error": "^1.0.0", + "resolve": "~1.1.7" } } } @@ -1870,10 +1870,10 @@ "integrity": "sha512-weIbJqTMfQ4r1YX85u54DKfjLZs2jwn1XZ6tIOP/pFgMwhIN5BAtaCp/1wn9DzyLsDR9tW0R2NIePcVJ45ivQQ==", "dev": true, "requires": { - "chalk": "0.4.0", - "date-time": "0.1.1", - "pretty-ms": "0.2.2", - "text-table": "0.2.0" + "chalk": "^0.4.0", + "date-time": "^0.1.1", + "pretty-ms": "^0.2.1", + "text-table": "^0.2.0" }, "dependencies": { "ansi-styles": { @@ -1888,9 +1888,9 @@ "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", "dev": true, "requires": { - "ansi-styles": "1.0.0", - "has-color": "0.1.7", - "strip-ansi": "0.1.1" + "ansi-styles": "~1.0.0", + "has-color": "~0.1.0", + "strip-ansi": "~0.1.0" } }, "pretty-ms": { @@ -1899,7 +1899,7 @@ "integrity": "sha1-2oeaaC/zOjcBEEbxPWJ/Z8c7hPY=", "dev": true, "requires": { - "parse-ms": "0.1.2" + "parse-ms": "^0.1.0" } }, "strip-ansi": { @@ -1916,8 +1916,8 @@ "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", "dev": true, "requires": { - "call-me-maybe": "1.0.1", - "glob-to-regexp": "0.3.0" + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" } }, "@nodelib/fs.stat": { @@ -1947,7 +1947,7 @@ "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", "dev": true, "requires": { - "@types/node": "10.3.5" + "@types/node": "*" } }, "@types/body-parser": { @@ -1956,8 +1956,8 @@ "integrity": "sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w==", "dev": true, "requires": { - "@types/connect": "3.4.32", - "@types/node": "10.3.5" + "@types/connect": "*", + "@types/node": "*" } }, "@types/boom": { @@ -1972,8 +1972,8 @@ "integrity": "sha512-bxOF3fsm69ezKxdcJ7Oo/PsZMOJ+JIV/QJO2IADfScmR3sLulR88dpSnz6+q+9JJ1kD7dXFFgUrGRSKHLkOX7w==", "dev": true, "requires": { - "@types/events": "1.2.0", - "@types/node": "10.3.5" + "@types/events": "*", + "@types/node": "*" } }, "@types/caseless": { @@ -1993,7 +1993,7 @@ "integrity": "sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg==", "dev": true, "requires": { - "@types/node": "10.3.5" + "@types/node": "*" } }, "@types/cookies": { @@ -2002,10 +2002,10 @@ "integrity": "sha512-ku6IvbucEyuC6i4zAVK/KnuzWNXdbFd1HkXlNLg/zhWDGTtQT5VhumiPruB/BHW34PWVFwyfwGftDQHfWNxu3Q==", "dev": true, "requires": { - "@types/connect": "3.4.32", - "@types/express": "4.16.0", - "@types/keygrip": "1.0.1", - "@types/node": "10.3.5" + "@types/connect": "*", + "@types/express": "*", + "@types/keygrip": "*", + "@types/node": "*" } }, "@types/duplexify": { @@ -2013,7 +2013,7 @@ "resolved": "https://registry.npmjs.org/@types/duplexify/-/duplexify-3.5.0.tgz", "integrity": "sha512-+aZCCdxuR/Q6n58CBkXyqGqimIqpYUcFLfBXagXv7e9TdJUevqkKhzopBuRz3RB064sQxnJnhttHOkK/O93Ouw==", "requires": { - "@types/node": "10.3.5" + "@types/node": "*" } }, "@types/events": { @@ -2028,9 +2028,9 @@ "integrity": "sha512-TtPEYumsmSTtTetAPXlJVf3kEqb6wZK0bZojpJQrnD/djV4q1oB6QQ8aKvKqwNPACoe02GNiy5zDzcYivR5Z2w==", "dev": true, "requires": { - "@types/body-parser": "1.17.0", - "@types/express-serve-static-core": "4.16.0", - "@types/serve-static": "1.13.2" + "@types/body-parser": "*", + "@types/express-serve-static-core": "*", + "@types/serve-static": "*" } }, "@types/express-serve-static-core": { @@ -2039,9 +2039,9 @@ "integrity": "sha512-lTeoCu5NxJU4OD9moCgm0ESZzweAx0YqsAcab6OB0EB3+As1OaHtKnaGJvcngQxYsi9UNv0abn4/DRavrRxt4w==", "dev": true, "requires": { - "@types/events": "1.2.0", - "@types/node": "10.3.5", - "@types/range-parser": "1.2.2" + "@types/events": "*", + "@types/node": "*", + "@types/range-parser": "*" } }, "@types/extend": { @@ -2055,7 +2055,7 @@ "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz", "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", "requires": { - "@types/node": "10.3.5" + "@types/node": "*" } }, "@types/glob": { @@ -2064,9 +2064,9 @@ "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", "dev": true, "requires": { - "@types/events": "1.2.0", - "@types/minimatch": "3.0.3", - "@types/node": "10.3.5" + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" } }, "@types/hapi": { @@ -2075,14 +2075,14 @@ "integrity": "sha512-OdCd3r7IVLM894EGA6jrrxJpbY7r3EG+jJBGveGshMxwxQE58mL7NdRcr4hmdCzsgUl3aVtZkSK4GpAf8C9kMw==", "dev": true, "requires": { - "@types/boom": "7.2.0", - "@types/catbox": "10.0.0", - "@types/iron": "5.0.1", - "@types/joi": "13.3.0", - "@types/mimos": "3.0.1", - "@types/node": "10.3.5", - "@types/podium": "1.0.0", - "@types/shot": "3.4.0" + "@types/boom": "*", + "@types/catbox": "*", + "@types/iron": "*", + "@types/joi": "*", + "@types/mimos": "*", + "@types/node": "*", + "@types/podium": "*", + "@types/shot": "*" } }, "@types/http-assert": { @@ -2097,7 +2097,7 @@ "integrity": "sha512-Ng5BkVGPt7Tw9k1OJ6qYwuD9+dmnWgActmsnnrdvs4075N8V2go1f6Pz8omG3q5rbHjXN6yzzZDYo3JOgAE/Ug==", "dev": true, "requires": { - "@types/node": "10.3.5" + "@types/node": "*" } }, "@types/is": { @@ -2124,13 +2124,13 @@ "integrity": "sha512-Dw10hYKv3exrc71GmH/Fqnc7dCLzdiP8bM1MLelPYjgIH5kQ6mPFreM3Z0uLK9EFaeCZZUYqsedDLCf3Urrysg==", "dev": true, "requires": { - "@types/accepts": "1.3.5", - "@types/cookies": "0.7.1", - "@types/events": "1.2.0", - "@types/http-assert": "1.3.0", - "@types/keygrip": "1.0.1", - "@types/koa-compose": "3.2.2", - "@types/node": "10.3.5" + "@types/accepts": "*", + "@types/cookies": "*", + "@types/events": "*", + "@types/http-assert": "*", + "@types/keygrip": "*", + "@types/koa-compose": "*", + "@types/node": "*" } }, "@types/koa-compose": { @@ -2151,7 +2151,7 @@ "integrity": "sha512-L8D6y0a88Uv3/gdqUpmfHPGSFo676ggbtl5an3FgR4AzbvR+PKNdUMPr6F6Q/U3n3lCoCoV+WPt1vqJGbgPZ6Q==", "dev": true, "requires": { - "@types/lodash": "4.14.110" + "@types/lodash": "*" } }, "@types/lodash.has": { @@ -2160,7 +2160,7 @@ "integrity": "sha512-McmKJoXdSxMYIQzVWKSEGrHnTwJ1ErqXvsTQjFeGEhBmypgCjuANDSqxl4LKaKcoF4mNxMqSzH7wP4yQ0deLeQ==", "dev": true, "requires": { - "@types/lodash": "4.14.110" + "@types/lodash": "*" } }, "@types/lodash.maxby": { @@ -2169,7 +2169,7 @@ "integrity": "sha512-5AMk6874T1RMxtWkW0I4ORFptU508mTb8jYG0gaNCMDzX6kLn/VNQXewL6dasZd4dj/hSbM8dt7msLuI3rSIPQ==", "dev": true, "requires": { - "@types/lodash": "4.14.110" + "@types/lodash": "*" } }, "@types/lodash.merge": { @@ -2178,7 +2178,7 @@ "integrity": "sha512-bOCCutkbehfCeiSqJO5XcVKjsJvX28dgvjhs4aMmBAHAsOy2oOJQwHuIZ0elI1E94qQIdEsCvz8oLgUumd6teA==", "dev": true, "requires": { - "@types/lodash": "4.14.110" + "@types/lodash": "*" } }, "@types/lodash.omit": { @@ -2187,7 +2187,7 @@ "integrity": "sha512-a6VbeE+JjMQ3rKsQVRjle02E+iKPTsT7izzFRk4xJvv4TBcO85Lrpo+8n6iqsiH8yZ8mHy0LOmx7MVgO8OfovQ==", "dev": true, "requires": { - "@types/lodash": "4.14.110" + "@types/lodash": "*" } }, "@types/lodash.omitby": { @@ -2196,7 +2196,7 @@ "integrity": "sha512-IfMZru9AegVIu0lkOXc/ncCOR3zzC6FKTVuBHBd9PkmKbOCn5zFORT22Wf/fZ9SBr2HmaYLPkFhf5C7A7k/N9A==", "dev": true, "requires": { - "@types/lodash": "4.14.110" + "@types/lodash": "*" } }, "@types/lodash.pick": { @@ -2205,7 +2205,7 @@ "integrity": "sha512-7VR26qH/bzRBn8DN6HKWYwBB6dNo1dNSdc0nYQwPp5tua6u2dpHHCFccszvFKBdR2CjSEbL5hsqQul03P4COjA==", "dev": true, "requires": { - "@types/lodash": "4.14.110" + "@types/lodash": "*" } }, "@types/lodash.random": { @@ -2214,7 +2214,7 @@ "integrity": "sha512-JMCA9llou2Ye9mhz0H/7DaPrJ6PgmRb6ClnPGPzfoX7JUu9Q6NuRZON5INrTQH5LWahzqaZdeMwHyn8MGRkXoA==", "dev": true, "requires": { - "@types/lodash": "4.14.110" + "@types/lodash": "*" } }, "@types/lodash.without": { @@ -2223,7 +2223,7 @@ "integrity": "sha512-oD30pRigg97PfyF8u3WGkRnn3MPS/f2pwYf0s0dNeGOeScbZ1bo4BYBK7dab/lpX6EbUjoWAtLLMQW+LxlJpcQ==", "dev": true, "requires": { - "@types/lodash": "4.14.110" + "@types/lodash": "*" } }, "@types/mime": { @@ -2244,7 +2244,7 @@ "integrity": "sha512-MATIRH4VMIJki8lcYUZdNQEHuAG7iQ1FWwoLgxV+4fUOly2xZYdhHtGgvQyWiTeJqq2tZbE0nOOgZD6pR0FpNQ==", "dev": true, "requires": { - "@types/mime-db": "1.27.0" + "@types/mime-db": "*" } }, "@types/minimatch": { @@ -2265,7 +2265,7 @@ "integrity": "sha512-TeiJ7uvv/92ugSqZ0v9l0eNXzutlki0aK+R1K5bfA5SYUil46ITlxLW4iNTCf55P4L5weCmaOdtxGeGWvudwPg==", "dev": true, "requires": { - "@types/node": "10.3.5" + "@types/node": "*" } }, "@types/nock": { @@ -2274,13 +2274,13 @@ "integrity": "sha512-S8rJ+SaW82ICX87pZP62UcMifrMfjEdqNzSp+llx4YcvKw6bO650Ye6HwTqER1Dar3S40GIZECQisOrAICDCjA==", "dev": true, "requires": { - "@types/node": "10.3.5" + "@types/node": "*" } }, "@types/node": { - "version": "10.3.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.3.5.tgz", - "integrity": "sha512-6lRwZN0Y3TuglwaaZN2XPocobmzLlhxcqDjKFjNYSsXG/TFAGYkCqkzZh4+ms8iTHHQE6gJXLHPV7TziVGeWhg==" + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.0.tgz", + "integrity": "sha512-baXPuqA7EVcBUpA5so2K26DTzk7NCWBc9xrPMu9PbUMwgusJRm9zJBPhiDmJVEcnTQ3aOxUZeuFHpd9qMYDNRg==" }, "@types/once": { "version": "1.4.0", @@ -2317,10 +2317,10 @@ "resolved": "https://registry.npmjs.org/@types/request/-/request-2.47.1.tgz", "integrity": "sha512-TV3XLvDjQbIeVxJ1Z3oCTDk/KuYwwcNKVwz2YaT0F5u86Prgc4syDAp6P96rkTQQ4bIdh+VswQIC9zS6NjY7/g==", "requires": { - "@types/caseless": "0.12.1", - "@types/form-data": "2.2.1", - "@types/node": "10.3.5", - "@types/tough-cookie": "2.3.3" + "@types/caseless": "*", + "@types/form-data": "*", + "@types/node": "*", + "@types/tough-cookie": "*" } }, "@types/restify": { @@ -2329,9 +2329,9 @@ "integrity": "sha512-CWIC2i7TCDmUHCuGjTcuuYKQeAkV+sqk6uV36qNVqaGzygT9ZsGrwrJ0He/cmwyRJuSKO34NTivRlP4DijvoaA==", "dev": true, "requires": { - "@types/bunyan": "1.8.4", - "@types/node": "10.3.5", - "@types/spdy": "3.4.4" + "@types/bunyan": "*", + "@types/node": "*", + "@types/spdy": "*" } }, "@types/rimraf": { @@ -2340,8 +2340,8 @@ "integrity": "sha512-Hm/bnWq0TCy7jmjeN5bKYij9vw5GrDFWME4IuxV08278NtU/VdGbzsBohcCUJ7+QMqmUq5hpRKB39HeQWJjztQ==", "dev": true, "requires": { - "@types/glob": "5.0.35", - "@types/node": "10.3.5" + "@types/glob": "*", + "@types/node": "*" } }, "@types/serve-static": { @@ -2350,8 +2350,8 @@ "integrity": "sha512-/BZ4QRLpH/bNYgZgwhKEh+5AsboDBcUdlBYgzoLX0fpj3Y2gp6EApyOlM3bK53wQS/OE1SrdSYBAbux2D1528Q==", "dev": true, "requires": { - "@types/express-serve-static-core": "4.16.0", - "@types/mime": "2.0.0" + "@types/express-serve-static-core": "*", + "@types/mime": "*" } }, "@types/shot": { @@ -2360,7 +2360,7 @@ "integrity": "sha1-RZR3xRh9Pr0wNmCrCZ5+ng87ZW8=", "dev": true, "requires": { - "@types/node": "10.3.5" + "@types/node": "*" } }, "@types/spdy": { @@ -2369,7 +2369,7 @@ "integrity": "sha512-N9LBlbVRRYq6HgYpPkqQc3a9HJ/iEtVZToW6xlTtJiMhmRJ7jJdV7TaZQJw/Ve/1ePUsQiCTDc4JMuzzag94GA==", "dev": true, "requires": { - "@types/node": "10.3.5" + "@types/node": "*" } }, "@types/tmp": { @@ -2389,8 +2389,8 @@ "integrity": "sha512-bghLXFkCOsC1Y2TZ51etWfKDs6q249SAoHTZVfzWWdlZxoij+mgkj9AmUJWQpDY48TfnrTDIe43Xem4zdMe7mQ==", "dev": true, "requires": { - "boom": "7.2.0", - "hoek": "5.0.3" + "boom": "7.x.x", + "hoek": "5.x.x" } }, "accepts": { @@ -2399,7 +2399,7 @@ "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "dev": true, "requires": { - "mime-types": "2.1.18", + "mime-types": "~2.1.18", "negotiator": "0.6.1" } }, @@ -2416,20 +2416,12 @@ "dev": true }, "acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-4.1.1.tgz", + "integrity": "sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw==", "dev": true, "requires": { - "acorn": "3.3.0" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true - } + "acorn": "^5.0.3" } }, "ajv": { @@ -2437,16 +2429,16 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", "dev": true }, "align-text": { @@ -2455,9 +2447,9 @@ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" } }, "amdefine": { @@ -2472,7 +2464,7 @@ "integrity": "sha512-4UqoM8xQjwkQ78oiU4NbBK0UgYqeKMAKmwE4ec7Rz3rGU8ZEBFxzgF2sUYKOAlqIXExBDYLN6y1ShF5yQ4hwLQ==", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "ansi-align": { @@ -2481,7 +2473,7 @@ "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "dev": true, "requires": { - "string-width": "2.1.1" + "string-width": "^2.0.0" } }, "ansi-escapes": { @@ -2502,7 +2494,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.2" + "color-convert": "^1.9.0" } }, "any-promise": { @@ -2517,8 +2509,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "dev": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "argparse": { @@ -2527,7 +2519,7 @@ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "argv": { @@ -2542,7 +2534,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-exclude": { @@ -2599,7 +2591,7 @@ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -2676,89 +2668,89 @@ "integrity": "sha512-4lGNJCf6xL8SvsKVEKxEE46se7JAUIAZoKHw9itTQuwcsydhpAMkBs5gOOiWiwt0JKNIuXWc2/r4r8ZdcNrBEw==", "dev": true, "requires": { - "@ava/babel-preset-stage-4": "1.1.0", - "@ava/babel-preset-transform-test-files": "3.0.0", - "@ava/write-file-atomic": "2.2.0", - "@concordance/react": "1.0.0", - "@ladjs/time-require": "0.1.4", - "ansi-escapes": "3.1.0", - "ansi-styles": "3.2.1", - "arr-flatten": "1.1.0", - "array-union": "1.0.2", - "array-uniq": "1.0.3", - "arrify": "1.0.1", - "auto-bind": "1.2.1", - "ava-init": "0.2.1", - "babel-core": "6.26.3", - "babel-generator": "6.26.1", - "babel-plugin-syntax-object-rest-spread": "6.13.0", - "bluebird": "3.5.1", - "caching-transform": "1.0.1", - "chalk": "2.4.1", - "chokidar": "1.7.0", - "clean-stack": "1.3.0", - "clean-yaml-object": "0.1.0", - "cli-cursor": "2.1.0", - "cli-spinners": "1.3.1", - "cli-truncate": "1.1.0", - "co-with-promise": "4.6.0", - "code-excerpt": "2.1.1", - "common-path-prefix": "1.0.0", - "concordance": "3.0.0", - "convert-source-map": "1.5.1", - "core-assert": "0.2.1", - "currently-unhandled": "0.4.1", - "debug": "3.1.0", - "dot-prop": "4.2.0", - "empower-core": "0.6.2", - "equal-length": "1.0.1", - "figures": "2.0.0", - "find-cache-dir": "1.0.0", - "fn-name": "2.0.1", - "get-port": "3.2.0", - "globby": "6.1.0", - "has-flag": "2.0.0", - "hullabaloo-config-manager": "1.1.1", - "ignore-by-default": "1.0.1", - "import-local": "0.1.1", - "indent-string": "3.2.0", - "is-ci": "1.1.0", - "is-generator-fn": "1.0.0", - "is-obj": "1.0.1", - "is-observable": "1.1.0", - "is-promise": "2.1.0", - "last-line-stream": "1.0.0", - "lodash.clonedeepwith": "4.5.0", - "lodash.debounce": "4.0.8", - "lodash.difference": "4.5.0", - "lodash.flatten": "4.4.0", - "loud-rejection": "1.6.0", - "make-dir": "1.3.0", - "matcher": "1.1.1", - "md5-hex": "2.0.0", - "meow": "3.7.0", - "ms": "2.0.0", - "multimatch": "2.1.0", - "observable-to-promise": "0.5.0", - "option-chain": "1.0.0", - "package-hash": "2.0.0", - "pkg-conf": "2.1.0", - "plur": "2.1.2", - "pretty-ms": "3.2.0", - "require-precompiled": "0.1.0", - "resolve-cwd": "2.0.0", - "safe-buffer": "5.1.2", - "semver": "5.5.0", - "slash": "1.0.0", - "source-map-support": "0.5.6", - "stack-utils": "1.0.1", - "strip-ansi": "4.0.0", - "strip-bom-buf": "1.0.0", - "supertap": "1.0.0", - "supports-color": "5.4.0", - "trim-off-newlines": "1.0.1", - "unique-temp-dir": "1.0.0", - "update-notifier": "2.5.0" + "@ava/babel-preset-stage-4": "^1.1.0", + "@ava/babel-preset-transform-test-files": "^3.0.0", + "@ava/write-file-atomic": "^2.2.0", + "@concordance/react": "^1.0.0", + "@ladjs/time-require": "^0.1.4", + "ansi-escapes": "^3.0.0", + "ansi-styles": "^3.1.0", + "arr-flatten": "^1.0.1", + "array-union": "^1.0.1", + "array-uniq": "^1.0.2", + "arrify": "^1.0.0", + "auto-bind": "^1.1.0", + "ava-init": "^0.2.0", + "babel-core": "^6.17.0", + "babel-generator": "^6.26.0", + "babel-plugin-syntax-object-rest-spread": "^6.13.0", + "bluebird": "^3.0.0", + "caching-transform": "^1.0.0", + "chalk": "^2.0.1", + "chokidar": "^1.4.2", + "clean-stack": "^1.1.1", + "clean-yaml-object": "^0.1.0", + "cli-cursor": "^2.1.0", + "cli-spinners": "^1.0.0", + "cli-truncate": "^1.0.0", + "co-with-promise": "^4.6.0", + "code-excerpt": "^2.1.1", + "common-path-prefix": "^1.0.0", + "concordance": "^3.0.0", + "convert-source-map": "^1.5.1", + "core-assert": "^0.2.0", + "currently-unhandled": "^0.4.1", + "debug": "^3.0.1", + "dot-prop": "^4.1.0", + "empower-core": "^0.6.1", + "equal-length": "^1.0.0", + "figures": "^2.0.0", + "find-cache-dir": "^1.0.0", + "fn-name": "^2.0.0", + "get-port": "^3.0.0", + "globby": "^6.0.0", + "has-flag": "^2.0.0", + "hullabaloo-config-manager": "^1.1.0", + "ignore-by-default": "^1.0.0", + "import-local": "^0.1.1", + "indent-string": "^3.0.0", + "is-ci": "^1.0.7", + "is-generator-fn": "^1.0.0", + "is-obj": "^1.0.0", + "is-observable": "^1.0.0", + "is-promise": "^2.1.0", + "last-line-stream": "^1.0.0", + "lodash.clonedeepwith": "^4.5.0", + "lodash.debounce": "^4.0.3", + "lodash.difference": "^4.3.0", + "lodash.flatten": "^4.2.0", + "loud-rejection": "^1.2.0", + "make-dir": "^1.0.0", + "matcher": "^1.0.0", + "md5-hex": "^2.0.0", + "meow": "^3.7.0", + "ms": "^2.0.0", + "multimatch": "^2.1.0", + "observable-to-promise": "^0.5.0", + "option-chain": "^1.0.0", + "package-hash": "^2.0.0", + "pkg-conf": "^2.0.0", + "plur": "^2.0.0", + "pretty-ms": "^3.0.0", + "require-precompiled": "^0.1.0", + "resolve-cwd": "^2.0.0", + "safe-buffer": "^5.1.1", + "semver": "^5.4.1", + "slash": "^1.0.0", + "source-map-support": "^0.5.0", + "stack-utils": "^1.0.1", + "strip-ansi": "^4.0.0", + "strip-bom-buf": "^1.0.0", + "supertap": "^1.0.0", + "supports-color": "^5.0.0", + "trim-off-newlines": "^1.0.1", + "unique-temp-dir": "^1.0.0", + "update-notifier": "^2.3.0" } }, "ava-init": { @@ -2767,11 +2759,11 @@ "integrity": "sha512-lXwK5LM+2g1euDRqW1mcSX/tqzY1QU7EjKpqayFPPtNRmbSYZ8RzPO5tqluTToijmtjp2M+pNpVdbcHssC4glg==", "dev": true, "requires": { - "arr-exclude": "1.0.0", - "execa": "0.7.0", - "has-yarn": "1.0.0", - "read-pkg-up": "2.0.0", - "write-pkg": "3.2.0" + "arr-exclude": "^1.0.0", + "execa": "^0.7.0", + "has-yarn": "^1.0.0", + "read-pkg-up": "^2.0.0", + "write-pkg": "^3.1.0" } }, "aws-sign2": { @@ -2789,8 +2781,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz", "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=", "requires": { - "follow-redirects": "1.5.0", - "is-buffer": "1.1.6" + "follow-redirects": "^1.3.0", + "is-buffer": "^1.1.5" } }, "b64": { @@ -2805,9 +2797,9 @@ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" }, "dependencies": { "ansi-styles": { @@ -2822,11 +2814,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "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" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "strip-ansi": { @@ -2835,7 +2827,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -2852,25 +2844,25 @@ "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.1", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.5.1", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.5", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" }, "dependencies": { "debug": { @@ -2890,14 +2882,14 @@ "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "dev": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.5", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" }, "dependencies": { "jsesc": { @@ -2914,9 +2906,9 @@ "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "dev": true, "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-call-delegate": { @@ -2925,10 +2917,10 @@ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "dev": true, "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-explode-assignable-expression": { @@ -2937,9 +2929,9 @@ "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-function-name": { @@ -2948,11 +2940,11 @@ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "dev": true, "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-get-function-arity": { @@ -2961,8 +2953,8 @@ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-hoist-variables": { @@ -2971,8 +2963,8 @@ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-regex": { @@ -2981,9 +2973,9 @@ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.5" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-remap-async-to-generator": { @@ -2992,11 +2984,11 @@ "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helpers": { @@ -3005,8 +2997,8 @@ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-messages": { @@ -3015,7 +3007,7 @@ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { @@ -3024,7 +3016,7 @@ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-espower": { @@ -3033,13 +3025,13 @@ "integrity": "sha512-/+SRpy7pKgTI28oEHfn1wkuM5QFAdRq8WNsOOih1dVrdV6A/WbNbRZyl0eX5eyDgtb0lOE27PeDFuCX2j8OxVg==", "dev": true, "requires": { - "babel-generator": "6.26.1", - "babylon": "6.18.0", - "call-matcher": "1.0.1", - "core-js": "2.5.7", - "espower-location-detector": "1.0.0", - "espurify": "1.8.0", - "estraverse": "4.2.0" + "babel-generator": "^6.1.0", + "babylon": "^6.1.0", + "call-matcher": "^1.0.0", + "core-js": "^2.0.0", + "espower-location-detector": "^1.0.0", + "espurify": "^1.6.0", + "estraverse": "^4.1.1" } }, "babel-plugin-syntax-async-functions": { @@ -3072,9 +3064,9 @@ "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "dev": true, "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-destructuring": { @@ -3083,7 +3075,7 @@ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -3092,9 +3084,9 @@ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -3103,10 +3095,10 @@ "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "dev": true, "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -3115,12 +3107,12 @@ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "dev": true, "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-spread": { @@ -3129,7 +3121,7 @@ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -3138,9 +3130,9 @@ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "dev": true, "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -3149,9 +3141,9 @@ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "dev": true, "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -3160,9 +3152,9 @@ "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "dev": true, "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-strict-mode": { @@ -3171,8 +3163,8 @@ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-register": { @@ -3181,13 +3173,13 @@ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "dev": true, "requires": { - "babel-core": "6.26.3", - "babel-runtime": "6.26.0", - "core-js": "2.5.7", - "home-or-tmp": "2.0.0", - "lodash": "4.17.5", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" }, "dependencies": { "source-map-support": { @@ -3196,7 +3188,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } } } @@ -3207,8 +3199,8 @@ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.5.7", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -3217,11 +3209,11 @@ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.5" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { @@ -3230,15 +3222,15 @@ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.5" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" }, "dependencies": { "debug": { @@ -3258,10 +3250,10 @@ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.5", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -3282,13 +3274,13 @@ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { "define-property": { @@ -3297,7 +3289,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -3306,7 +3298,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -3315,7 +3307,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -3324,9 +3316,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -3349,7 +3341,7 @@ "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "big-time": { @@ -3377,15 +3369,15 @@ "dev": true, "requires": { "bytes": "3.0.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.3", + "depd": "~1.1.2", + "http-errors": "~1.6.3", "iconv-lite": "0.4.23", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.5.2", "raw-body": "2.3.3", - "type-is": "1.6.16" + "type-is": "~1.6.16" }, "dependencies": { "debug": { @@ -3405,7 +3397,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "bounce": { @@ -3414,8 +3406,8 @@ "integrity": "sha512-8syCGe8B2/WC53118/F/tFy5aW00j+eaGPXmAUP7iBhxc+EBZZxS1vKelWyBCH6IqojgS2t1gF0glH30qAJKEw==", "dev": true, "requires": { - "boom": "7.2.0", - "hoek": "5.0.3" + "boom": "7.x.x", + "hoek": "5.x.x" } }, "boxen": { @@ -3424,13 +3416,13 @@ "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", "dev": true, "requires": { - "ansi-align": "2.0.0", - "camelcase": "4.1.0", - "chalk": "2.4.1", - "cli-boxes": "1.0.0", - "string-width": "2.1.1", - "term-size": "1.2.0", - "widest-line": "2.0.0" + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" }, "dependencies": { "camelcase": { @@ -3447,7 +3439,7 @@ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -3457,9 +3449,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "browser-stdout": { @@ -3503,10 +3495,10 @@ "integrity": "sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=", "dev": true, "requires": { - "dtrace-provider": "0.8.7", - "moment": "2.22.2", - "mv": "2.1.1", - "safe-json-stringify": "1.2.0" + "dtrace-provider": "~0.8", + "moment": "^2.10.6", + "mv": "~2", + "safe-json-stringify": "~1" } }, "bytes": { @@ -3521,15 +3513,15 @@ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" }, "dependencies": { "isobject": { @@ -3569,9 +3561,9 @@ "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", "dev": true, "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" }, "dependencies": { "md5-hex": { @@ -3580,7 +3572,7 @@ "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "write-file-atomic": { @@ -3589,9 +3581,9 @@ "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } } } @@ -3602,8 +3594,8 @@ "integrity": "sha512-ollfFPSshiuYLp7AsrmpkQJ/PxCi6AzV81rCjBwWhyF2QGyUY/vPDMzoh4aUcWyucheRglG2LaS5qkIEfLRh6A==", "dev": true, "requires": { - "boom": "7.2.0", - "hoek": "5.0.3" + "boom": "7.x.x", + "hoek": "5.x.x" } }, "call-matcher": { @@ -3612,10 +3604,10 @@ "integrity": "sha1-UTTQd5hPcSpU2tPL9i3ijc5BbKg=", "dev": true, "requires": { - "core-js": "2.5.7", - "deep-equal": "1.0.1", - "espurify": "1.8.0", - "estraverse": "4.2.0" + "core-js": "^2.0.0", + "deep-equal": "^1.0.0", + "espurify": "^1.6.0", + "estraverse": "^4.0.0" } }, "call-me-maybe": { @@ -3636,7 +3628,7 @@ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsites": { @@ -3657,8 +3649,8 @@ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" } }, "capture-stack-trace": { @@ -3678,10 +3670,10 @@ "integrity": "sha512-cTQTQeKMhWHU0lX8CADE3g1koGJu+AlcWFzAjMX/8P+XbkScGYw3tJsQpe2Oh8q68vOQbOLacz9k+6V/F3Z9DA==", "dev": true, "requires": { - "boom": "7.2.0", - "bounce": "1.2.0", - "hoek": "5.0.3", - "joi": "13.4.0" + "boom": "7.x.x", + "bounce": "1.x.x", + "hoek": "5.x.x", + "joi": "13.x.x" } }, "catbox-memory": { @@ -3690,9 +3682,9 @@ "integrity": "sha512-lhWtutLVhsq3Mucxk2McxBPPibJ34WcHuWFz3xqub9u9Ve/IQYpZv3ijLhQXfQped9DXozURiaq9O3aZpP91eg==", "dev": true, "requires": { - "big-time": "2.0.1", - "boom": "7.2.0", - "hoek": "5.0.3" + "big-time": "2.x.x", + "boom": "7.x.x", + "hoek": "5.x.x" } }, "catharsis": { @@ -3701,7 +3693,7 @@ "integrity": "sha1-mMyJDKZS3S7w5ws3klMQ/56Q/Is=", "dev": true, "requires": { - "underscore-contrib": "0.3.0" + "underscore-contrib": "~0.3.0" } }, "center-align": { @@ -3711,8 +3703,8 @@ "dev": true, "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chai": { @@ -3721,12 +3713,12 @@ "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", "dev": true, "requires": { - "assertion-error": "1.1.0", - "check-error": "1.0.2", - "deep-eql": "3.0.1", - "get-func-name": "2.0.0", - "pathval": "1.1.0", - "type-detect": "4.0.8" + "assertion-error": "^1.0.1", + "check-error": "^1.0.1", + "deep-eql": "^3.0.0", + "get-func-name": "^2.0.0", + "pathval": "^1.0.0", + "type-detect": "^4.0.0" } }, "chalk": { @@ -3735,9 +3727,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "chardet": { @@ -3758,15 +3750,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "dev": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.2.4", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" } }, "ci-info": { @@ -3787,9 +3779,9 @@ "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", "dev": true, "requires": { - "async": "1.5.2", - "glob": "7.1.2", - "resolve": "1.1.7" + "async": "^1.5.2", + "glob": "^7.0.0", + "resolve": "^1.1.6" } }, "class-utils": { @@ -3798,10 +3790,10 @@ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -3810,7 +3802,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "isobject": { @@ -3845,7 +3837,7 @@ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-spinners": { @@ -3860,8 +3852,8 @@ "integrity": "sha512-bAtZo0u82gCfaAGfSNxUdTI9mNyza7D8w4CVCcaOsy7sgwDzvx6ekr6cuWJqY3UGzgnQ1+4wgENup5eIhgxEYA==", "dev": true, "requires": { - "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "slice-ansi": "^1.0.0", + "string-width": "^2.0.0" } }, "cli-width": { @@ -3877,8 +3869,8 @@ "dev": true, "optional": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" }, "dependencies": { @@ -3897,7 +3889,7 @@ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "dev": true, "requires": { - "mimic-response": "1.0.0" + "mimic-response": "^1.0.0" } }, "co": { @@ -3911,7 +3903,7 @@ "integrity": "sha1-QT59tvWJOmC5Qs9JLEvsk9tBWrc=", "dev": true, "requires": { - "pinkie-promise": "1.0.0" + "pinkie-promise": "^1.0.0" } }, "code-excerpt": { @@ -3920,7 +3912,7 @@ "integrity": "sha512-tJLhH3EpFm/1x7heIW0hemXJTUU5EWl2V0EIX558jp05Mt1U6DVryCgkp3l37cxqs+DNbNgxG43SkwJXpQ14Jw==", "dev": true, "requires": { - "convert-to-spaces": "1.0.2" + "convert-to-spaces": "^1.0.1" } }, "code-point-at": { @@ -3936,7 +3928,7 @@ "dev": true, "requires": { "argv": "0.0.2", - "request": "2.87.0", + "request": "^2.81.0", "urlgrey": "0.4.4" } }, @@ -3946,8 +3938,8 @@ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "color-convert": { @@ -3976,7 +3968,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -4009,35 +4001,23 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "1.1.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" - } - }, "concordance": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/concordance/-/concordance-3.0.0.tgz", "integrity": "sha512-CZBzJ3/l5QJjlZM20WY7+5GP5pMTw+1UEbThcpMw8/rojsi5sBCiD8ZbBLtD+jYpRGAkwuKuqk108c154V9eyQ==", "dev": true, "requires": { - "date-time": "2.1.0", - "esutils": "2.0.2", - "fast-diff": "1.1.2", - "function-name-support": "0.2.0", - "js-string-escape": "1.0.1", - "lodash.clonedeep": "4.5.0", - "lodash.flattendeep": "4.4.0", - "lodash.merge": "4.6.1", - "md5-hex": "2.0.0", - "semver": "5.5.0", - "well-known-symbols": "1.0.0" + "date-time": "^2.1.0", + "esutils": "^2.0.2", + "fast-diff": "^1.1.1", + "function-name-support": "^0.2.0", + "js-string-escape": "^1.0.1", + "lodash.clonedeep": "^4.5.0", + "lodash.flattendeep": "^4.4.0", + "lodash.merge": "^4.6.0", + "md5-hex": "^2.0.0", + "semver": "^5.3.0", + "well-known-symbols": "^1.0.0" }, "dependencies": { "date-time": { @@ -4046,7 +4026,7 @@ "integrity": "sha512-/9+C44X7lot0IeiyfgJmETtRMhBidBYM2QFFIkGa0U1k+hSyY87Nw7PY3eDqpvCBm7I3WCSfPeZskW/YYq6m4g==", "dev": true, "requires": { - "time-zone": "1.0.0" + "time-zone": "^1.0.0" } } } @@ -4057,12 +4037,12 @@ "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", "dev": true, "requires": { - "dot-prop": "4.2.0", - "graceful-fs": "4.1.11", - "make-dir": "1.3.0", - "unique-string": "1.0.0", - "write-file-atomic": "2.3.0", - "xdg-basedir": "3.0.0" + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" } }, "content": { @@ -4071,7 +4051,7 @@ "integrity": "sha512-wDP6CTWDpwCf791fNxlCCkZGRkrNzSEU/8ju9Hnr3Uc5mF/gFR5W+fcoGm6zUSlVPdSXYn5pCbySADKj7YM4Cg==", "dev": true, "requires": { - "boom": "7.2.0" + "boom": "7.x.x" } }, "content-disposition": { @@ -4122,8 +4102,8 @@ "integrity": "sha1-fIphX1SBxhq58WyDNzG8uPZjuZs=", "dev": true, "requires": { - "depd": "1.1.2", - "keygrip": "1.0.2" + "depd": "~1.1.1", + "keygrip": "~1.0.2" } }, "copy-descriptor": { @@ -4138,8 +4118,8 @@ "integrity": "sha1-+F4s+b/tKPdzzIs/pcW2m9wC/j8=", "dev": true, "requires": { - "buf-compare": "1.0.1", - "is-error": "2.2.1" + "buf-compare": "^1.0.0", + "is-error": "^2.2.0" } }, "core-js": { @@ -4159,11 +4139,11 @@ "integrity": "sha512-OtHMgPugkgwHlbph25wlMKd358lZNhX1Y2viUpPoFmlBPlEiPIRhztYWha11grbGPnlM+urp5saVmwsChCIOEg==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "make-dir": "1.3.0", - "nested-error-stacks": "2.0.1", - "pify": "3.0.0", - "safe-buffer": "5.1.2" + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "nested-error-stacks": "^2.0.0", + "pify": "^3.0.0", + "safe-buffer": "^5.0.1" } }, "cpy": { @@ -4172,10 +4152,10 @@ "integrity": "sha512-Zo52tXKLJcgy/baacn6KaNoRAakkl2wb+R4u6qJ4wlD0uchncwRQcIk66PlGlkzuToCJO6A6PWX27Tdwc8LU2g==", "dev": true, "requires": { - "arrify": "1.0.1", - "cp-file": "6.0.0", - "globby": "8.0.1", - "nested-error-stacks": "2.0.1" + "arrify": "^1.0.1", + "cp-file": "^6.0.0", + "globby": "^8.0.1", + "nested-error-stacks": "^2.0.0" }, "dependencies": { "globby": { @@ -4184,13 +4164,13 @@ "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", "dev": true, "requires": { - "array-union": "1.0.2", - "dir-glob": "2.0.0", - "fast-glob": "2.2.2", - "glob": "7.1.2", - "ignore": "3.3.10", - "pify": "3.0.0", - "slash": "1.0.0" + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" } } } @@ -4201,8 +4181,8 @@ "integrity": "sha512-LzrtY3lBWvFZcw4lXgkEbbDUd7y78juC3C5l7gj3UyezMEZF0Be9fjCVLN1HoZAzdMDeC3KHehWpHBJvgVAPkw==", "dev": true, "requires": { - "cpy": "7.0.1", - "meow": "5.0.0" + "cpy": "^7.0.0", + "meow": "^5.0.0" }, "dependencies": { "camelcase": { @@ -4217,9 +4197,9 @@ "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", "dev": true, "requires": { - "camelcase": "4.1.0", - "map-obj": "2.0.0", - "quick-lru": "1.1.0" + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" } }, "load-json-file": { @@ -4228,10 +4208,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "map-obj": { @@ -4246,15 +4226,15 @@ "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", "dev": true, "requires": { - "camelcase-keys": "4.2.0", - "decamelize-keys": "1.1.0", - "loud-rejection": "1.6.0", - "minimist-options": "3.0.2", - "normalize-package-data": "2.4.0", - "read-pkg-up": "3.0.0", - "redent": "2.0.0", - "trim-newlines": "2.0.0", - "yargs-parser": "10.0.0" + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0", + "yargs-parser": "^10.0.0" } }, "parse-json": { @@ -4263,8 +4243,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "path-type": { @@ -4273,7 +4253,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "read-pkg": { @@ -4282,9 +4262,9 @@ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.4.0", - "path-type": "3.0.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" } }, "read-pkg-up": { @@ -4293,8 +4273,8 @@ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "3.0.0" + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" } }, "redent": { @@ -4303,8 +4283,8 @@ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", "dev": true, "requires": { - "indent-string": "3.2.0", - "strip-indent": "2.0.0" + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" } }, "strip-indent": { @@ -4325,7 +4305,7 @@ "integrity": "sha512-+DHejWujTVYeMHLff8U96rLc4uE4Emncoftvn5AjhB1Jw1pWxLzgBUT/WYbPrHmy6YPEBTZQx5myHhVcuuu64g==", "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } @@ -4336,7 +4316,7 @@ "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "dev": true, "requires": { - "capture-stack-trace": "1.0.0" + "capture-stack-trace": "^1.0.0" } }, "cross-spawn": { @@ -4345,18 +4325,18 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "cryptiles": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-4.1.1.tgz", - "integrity": "sha512-YuQUPbcOmaZsdvxJZ25DCA1W+lLIRoPJKBDKin+St1RCYEERSfoe1d25B1MvWNHN3e8SpFSVsqYvEUjp8J9H2w==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-4.1.2.tgz", + "integrity": "sha512-U2ALcoAHvA1oO2xOreyHvtkQ+IELqDG2WVWRI1GH/XEmmfGIOalnM5MU5Dd2ITyWfr3m6kNqXiy8XuYyd4wKJw==", "dev": true, "requires": { - "boom": "7.2.0" + "boom": "7.x.x" } }, "crypto-random-string": { @@ -4371,10 +4351,10 @@ "integrity": "sha1-UjHt/BxxUlEuxFeBB2p6l/9SXAw=", "dev": true, "requires": { - "csv-generate": "1.1.2", - "csv-parse": "1.3.3", - "csv-stringify": "1.1.2", - "stream-transform": "0.2.2" + "csv-generate": "^1.1.2", + "csv-parse": "^1.3.3", + "csv-stringify": "^1.1.2", + "stream-transform": "^0.2.2" } }, "csv-generate": { @@ -4395,7 +4375,7 @@ "integrity": "sha1-d6QVJlgbzjOA8SsA18W7rHDIK1g=", "dev": true, "requires": { - "lodash.get": "4.4.2" + "lodash.get": "~4.4.2" } }, "currently-unhandled": { @@ -4404,7 +4384,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "array-find-index": "1.0.2" + "array-find-index": "^1.0.1" } }, "d": { @@ -4413,7 +4393,7 @@ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "dev": true, "requires": { - "es5-ext": "0.10.45" + "es5-ext": "^0.10.9" } }, "dashdash": { @@ -4421,7 +4401,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "date-time": { @@ -4450,8 +4430,8 @@ "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", "dev": true, "requires": { - "decamelize": "1.2.0", - "map-obj": "1.0.1" + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" } }, "decode-uri-component": { @@ -4466,7 +4446,7 @@ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "dev": true, "requires": { - "mimic-response": "1.0.0" + "mimic-response": "^1.0.0" } }, "deep-eql": { @@ -4475,7 +4455,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "4.0.8" + "type-detect": "^4.0.0" } }, "deep-equal": { @@ -4502,8 +4482,8 @@ "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "dev": true, "requires": { - "foreach": "2.0.5", - "object-keys": "1.0.12" + "foreach": "^2.0.5", + "object-keys": "^1.0.8" } }, "define-property": { @@ -4512,8 +4492,8 @@ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -4522,7 +4502,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -4531,7 +4511,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -4540,9 +4520,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -4565,13 +4545,13 @@ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.2" + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" }, "dependencies": { "globby": { @@ -4580,12 +4560,12 @@ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -4606,7 +4586,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } } } @@ -4640,7 +4620,7 @@ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "detect-node": { @@ -4667,8 +4647,8 @@ "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", "dev": true, "requires": { - "arrify": "1.0.1", - "path-type": "3.0.0" + "arrify": "^1.0.1", + "path-type": "^3.0.0" }, "dependencies": { "path-type": { @@ -4677,7 +4657,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } } } @@ -4688,7 +4668,7 @@ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "esutils": "2.0.2" + "esutils": "^2.0.2" } }, "dom-serializer": { @@ -4697,8 +4677,8 @@ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "dev": true, "requires": { - "domelementtype": "1.1.3", - "entities": "1.1.1" + "domelementtype": "~1.1.1", + "entities": "~1.1.1" }, "dependencies": { "domelementtype": { @@ -4721,7 +4701,7 @@ "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "dev": true, "requires": { - "domelementtype": "1.3.0" + "domelementtype": "1" } }, "domutils": { @@ -4730,8 +4710,8 @@ "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "dev": true, "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" + "dom-serializer": "0", + "domelementtype": "1" } }, "dot-prop": { @@ -4740,7 +4720,7 @@ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", "dev": true, "requires": { - "is-obj": "1.0.1" + "is-obj": "^1.0.0" } }, "dtrace-provider": { @@ -4750,7 +4730,7 @@ "dev": true, "optional": true, "requires": { - "nan": "2.10.0" + "nan": "^2.10.0" } }, "duplexer3": { @@ -4764,10 +4744,10 @@ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" } }, "eastasianwidth": { @@ -4782,7 +4762,7 @@ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "ecdsa-sig-formatter": { @@ -4790,7 +4770,7 @@ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz", "integrity": "sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "ee-first": { @@ -4805,8 +4785,8 @@ "integrity": "sha512-tP2WqM7QzrPguCCQEQfFFDF+6Pw6YWLQal3+GHQaV+0uIr0S+jyREQPWljE02zFCYPFYLZ3LosiRV+OzTrxPpQ==", "dev": true, "requires": { - "core-js": "2.5.7", - "empower-core": "1.2.0" + "core-js": "^2.0.0", + "empower-core": "^1.2.0" }, "dependencies": { "empower-core": { @@ -4816,7 +4796,7 @@ "dev": true, "requires": { "call-signature": "0.0.2", - "core-js": "2.5.7" + "core-js": "^2.0.0" } } } @@ -4827,7 +4807,7 @@ "integrity": "sha512-Ylck0Q6p8y/LpNzYeBccaxAPm2ZyuqBgErgZpO9KT0HuQWF0sJckBKCLmgS1/DEXEiyBi9XtYh3clZm5cAdARw==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.2.0" } }, "empower-core": { @@ -4837,7 +4817,7 @@ "dev": true, "requires": { "call-signature": "0.0.2", - "core-js": "2.5.7" + "core-js": "^2.0.0" } }, "encodeurl": { @@ -4851,7 +4831,7 @@ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "requires": { - "once": "1.4.0" + "once": "^1.4.0" } }, "ent": { @@ -4877,7 +4857,7 @@ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "error-inject": { @@ -4886,15 +4866,39 @@ "integrity": "sha1-4rPZG1Su1nLzCdlQ0VSFD6EdTzc=", "dev": true }, + "es-abstract": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", + "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" + } + }, + "es-to-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "dev": true, + "requires": { + "is-callable": "^1.1.1", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.1" + } + }, "es5-ext": { "version": "0.10.45", "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz", "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", "dev": true, "requires": { - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1", - "next-tick": "1.0.0" + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "1" } }, "es6-error": { @@ -4909,9 +4913,9 @@ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" } }, "es6-map": { @@ -4920,12 +4924,12 @@ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45", - "es6-iterator": "2.0.3", - "es6-set": "0.1.5", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" } }, "es6-set": { @@ -4934,11 +4938,11 @@ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45", - "es6-iterator": "2.0.3", + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "event-emitter": "~0.3.5" } }, "es6-symbol": { @@ -4947,8 +4951,8 @@ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45" + "d": "1", + "es5-ext": "~0.10.14" } }, "es6-weak-map": { @@ -4957,10 +4961,10 @@ "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" } }, "escallmatch": { @@ -4969,8 +4973,8 @@ "integrity": "sha1-UAmdhugJGwkt+N37w/mm+wWgJNA=", "dev": true, "requires": { - "call-matcher": "1.0.1", - "esprima": "2.7.3" + "call-matcher": "^1.0.0", + "esprima": "^2.0.0" }, "dependencies": { "esprima": { @@ -5005,11 +5009,11 @@ "integrity": "sha512-fjUOf8johsv23WuIKdNQU4P9t9jhQ4Qzx6pC2uW890OloK3Zs1ZAoCNpg/2larNF501jLl3UNy0kIRcF6VI22g==", "dev": true, "requires": { - "esprima": "3.1.3", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.6.1" + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" }, "dependencies": { "esprima": { @@ -5033,63 +5037,100 @@ "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", "dev": true, "requires": { - "es6-map": "0.1.5", - "es6-weak-map": "2.0.2", - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", - "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", - "dev": true, - "requires": { - "ajv": "5.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.4.1", - "concat-stream": "1.6.2", - "cross-spawn": "5.1.0", - "debug": "3.1.0", - "doctrine": "2.1.0", - "eslint-scope": "3.7.1", - "eslint-visitor-keys": "1.0.0", - "espree": "3.5.4", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.2", - "globals": "11.7.0", - "ignore": "3.3.10", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.12.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.5", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.0", - "regexpp": "1.1.0", - "require-uncached": "1.0.3", - "semver": "5.5.0", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", - "table": "4.0.2", - "text-table": "0.2.0" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.0.1.tgz", + "integrity": "sha512-D5nG2rErquLUstgUaxJlWB5+gu+U/3VDY0fk/Iuq8y9CUFy/7Y6oF4N2cR1tV8knzQvciIbfqfohd359xTLIKQ==", + "dev": true, + "requires": { + "ajv": "^6.5.0", + "babel-code-frame": "^6.26.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^4.0.0", + "eslint-visitor-keys": "^1.0.0", + "espree": "^4.0.0", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.5.0", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^5.2.0", + "is-resolvable": "^1.1.0", + "js-yaml": "^3.11.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.5", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.1.0", + "require-uncached": "^1.0.3", + "semver": "^5.5.0", + "string.prototype.matchall": "^2.0.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "^2.0.1", + "table": "^4.0.3", + "text-table": "^0.2.0" }, "dependencies": { + "ajv": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.1.tgz", + "integrity": "sha512-pgZos1vgOHDiC7gKNbZW8eKvCnNXARv2oqrGQT7Hzbq5Azp7aZG6DJzADnkuSq7RH6qkXp4J/m68yPX/2uBHyQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.1" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, "globals": { "version": "11.7.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true } } }, @@ -5099,7 +5140,7 @@ "integrity": "sha512-ag8YEyBXsm3nmOv1Hz991VtNNDMRa+MNy8cY47Pl4bw6iuzqKbJajXdqUpiw13STdLLrznxgm1hj9NhxeOYq0A==", "dev": true, "requires": { - "get-stdin": "5.0.1" + "get-stdin": "^5.0.1" }, "dependencies": { "get-stdin": { @@ -5116,10 +5157,10 @@ "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", "dev": true, "requires": { - "ignore": "3.3.10", - "minimatch": "3.0.4", - "resolve": "1.8.1", - "semver": "5.5.0" + "ignore": "^3.3.6", + "minimatch": "^3.0.4", + "resolve": "^1.3.3", + "semver": "^5.4.1" }, "dependencies": { "resolve": { @@ -5128,7 +5169,7 @@ "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } } } @@ -5139,18 +5180,18 @@ "integrity": "sha512-wNZ2z0oVCWnf+3BSI7roS+z4gGu2AwcPKUek+SlLZMZg+X0KbZLsB2knul7fd0K3iuIp402HIYzm4f2+OyfXxA==", "dev": true, "requires": { - "fast-diff": "1.1.2", - "jest-docblock": "21.2.0" + "fast-diff": "^1.1.1", + "jest-docblock": "^21.0.0" } }, "eslint-scope": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", - "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", + "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", "dev": true, "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint-visitor-keys": { @@ -5165,16 +5206,16 @@ "integrity": "sha512-F4TY1qYJB1aUyzB03NsZksZzUQmQoEBaTUjRJGR30GxbkbjKI41NhCyYjrF+bGgWN7x/ZsczYppRpz/0WdI0ug==", "dev": true, "requires": { - "array-find": "1.0.0", - "escallmatch": "1.5.0", - "escodegen": "1.10.0", - "escope": "3.6.0", - "espower-location-detector": "1.0.0", - "espurify": "1.8.0", - "estraverse": "4.2.0", - "source-map": "0.5.7", - "type-name": "2.0.2", - "xtend": "4.0.1" + "array-find": "^1.0.0", + "escallmatch": "^1.5.0", + "escodegen": "^1.7.0", + "escope": "^3.3.0", + "espower-location-detector": "^1.0.0", + "espurify": "^1.3.0", + "estraverse": "^4.1.0", + "source-map": "^0.5.0", + "type-name": "^2.0.0", + "xtend": "^4.0.0" } }, "espower-loader": { @@ -5183,11 +5224,11 @@ "integrity": "sha1-7bRsPFmga6yOpzppXIblxaC8gto=", "dev": true, "requires": { - "convert-source-map": "1.5.1", - "espower-source": "2.3.0", - "minimatch": "3.0.4", - "source-map-support": "0.4.18", - "xtend": "4.0.1" + "convert-source-map": "^1.1.0", + "espower-source": "^2.0.0", + "minimatch": "^3.0.0", + "source-map-support": "^0.4.0", + "xtend": "^4.0.0" }, "dependencies": { "source-map-support": { @@ -5196,7 +5237,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } } } @@ -5207,10 +5248,10 @@ "integrity": "sha1-oXt+zFnTDheeK+9z+0E3cEyzMbU=", "dev": true, "requires": { - "is-url": "1.2.4", - "path-is-absolute": "1.0.1", - "source-map": "0.5.7", - "xtend": "4.0.1" + "is-url": "^1.2.1", + "path-is-absolute": "^1.0.0", + "source-map": "^0.5.0", + "xtend": "^4.0.0" } }, "espower-source": { @@ -5219,27 +5260,27 @@ "integrity": "sha512-Wc4kC4zUAEV7Qt31JRPoBUc5jjowHRylml2L2VaDQ1XEbnqQofGWx+gPR03TZAPokAMl5dqyL36h3ITyMXy3iA==", "dev": true, "requires": { - "acorn": "5.7.1", - "acorn-es7-plugin": "1.1.7", - "convert-source-map": "1.5.1", - "empower-assert": "1.1.0", - "escodegen": "1.10.0", - "espower": "2.1.1", - "estraverse": "4.2.0", - "merge-estraverse-visitors": "1.0.0", - "multi-stage-sourcemap": "0.2.1", - "path-is-absolute": "1.0.1", - "xtend": "4.0.1" + "acorn": "^5.0.0", + "acorn-es7-plugin": "^1.0.10", + "convert-source-map": "^1.1.1", + "empower-assert": "^1.0.0", + "escodegen": "^1.10.0", + "espower": "^2.1.1", + "estraverse": "^4.0.0", + "merge-estraverse-visitors": "^1.0.0", + "multi-stage-sourcemap": "^0.2.1", + "path-is-absolute": "^1.0.0", + "xtend": "^4.0.0" } }, "espree": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", - "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-4.0.0.tgz", + "integrity": "sha512-kapdTCt1bjmspxStVKX6huolXVV5ZfyZguY1lcfhVVZstce3bqxH9mcLzNn3/mlgW6wQ732+0fuG9v7h0ZQoKg==", "dev": true, "requires": { - "acorn": "5.7.1", - "acorn-jsx": "3.0.1" + "acorn": "^5.6.0", + "acorn-jsx": "^4.1.1" } }, "esprima": { @@ -5254,7 +5295,7 @@ "integrity": "sha512-jdkJG9jswjKCCDmEridNUuIQei9algr+o66ZZ19610ZoBsiWLRsQGNYS4HGez3Z/DsR0lhANGAqiwBUclPuNag==", "dev": true, "requires": { - "core-js": "2.5.7" + "core-js": "^2.0.0" } }, "esquery": { @@ -5263,7 +5304,7 @@ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "esrecurse": { @@ -5272,7 +5313,7 @@ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.1.0" } }, "estraverse": { @@ -5299,8 +5340,8 @@ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45" + "d": "1", + "es5-ext": "~0.10.14" } }, "ewma": { @@ -5309,7 +5350,7 @@ "integrity": "sha512-MYYK17A76cuuyvkR7MnqLW4iFYPEi5Isl2qb8rXiWpLiwFS9dxW/rncuNnjjgSENuVqZQkIuR4+DChVL4g1lnw==", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "execa": { @@ -5318,13 +5359,13 @@ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } }, "expand-brackets": { @@ -5333,7 +5374,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -5342,7 +5383,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "2.2.4" + "fill-range": "^2.1.0" } }, "express": { @@ -5351,36 +5392,36 @@ "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", "dev": true, "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.5", "array-flatten": "1.1.1", "body-parser": "1.18.2", "content-disposition": "0.5.2", - "content-type": "1.0.4", + "content-type": "~1.0.4", "cookie": "0.3.1", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "1.1.2", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "finalhandler": "1.1.1", "fresh": "0.5.2", "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.3", + "proxy-addr": "~2.0.3", "qs": "6.5.1", - "range-parser": "1.2.0", + "range-parser": "~1.2.0", "safe-buffer": "5.1.1", "send": "0.16.2", "serve-static": "1.13.2", "setprototypeof": "1.1.0", - "statuses": "1.4.0", - "type-is": "1.6.16", + "statuses": "~1.4.0", + "type-is": "~1.6.16", "utils-merge": "1.0.1", - "vary": "1.1.2" + "vary": "~1.1.2" }, "dependencies": { "body-parser": { @@ -5390,15 +5431,15 @@ "dev": true, "requires": { "bytes": "3.0.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.3", + "depd": "~1.1.1", + "http-errors": "~1.6.2", "iconv-lite": "0.4.19", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.5.1", "raw-body": "2.3.2", - "type-is": "1.6.16" + "type-is": "~1.6.15" } }, "debug": { @@ -5455,7 +5496,7 @@ "depd": "1.1.1", "inherits": "2.0.3", "setprototypeof": "1.0.3", - "statuses": "1.4.0" + "statuses": ">= 1.3.1 < 2" } }, "setprototypeof": { @@ -5497,8 +5538,8 @@ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -5507,7 +5548,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -5518,9 +5559,9 @@ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.23", - "tmp": "0.0.33" + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" } }, "extglob": { @@ -5529,7 +5570,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "extsprintf": { @@ -5560,12 +5601,12 @@ "integrity": "sha512-TR6zxCKftDQnUAPvkrCWdBgDq/gbqx8A3ApnBrR5rMvpp6+KMJI0Igw7fkWPgeVK0uhRXTXdvO3O+YP0CaUX2g==", "dev": true, "requires": { - "@mrmlnc/readdir-enhanced": "2.2.1", - "@nodelib/fs.stat": "1.1.0", - "glob-parent": "3.1.0", - "is-glob": "4.0.0", - "merge2": "1.2.2", - "micromatch": "3.1.10" + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.0.1", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.1", + "micromatch": "^3.1.10" }, "dependencies": { "arr-diff": { @@ -5586,16 +5627,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "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.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "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.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -5604,7 +5645,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5624,13 +5665,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "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" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -5639,7 +5680,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -5648,7 +5689,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -5657,7 +5698,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5666,7 +5707,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5677,7 +5718,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5686,7 +5727,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5697,9 +5738,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -5716,14 +5757,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "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" + "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.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -5732,7 +5773,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -5741,7 +5782,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5752,10 +5793,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -5764,7 +5805,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5775,8 +5816,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { @@ -5785,7 +5826,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -5796,7 +5837,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -5805,7 +5846,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -5814,9 +5855,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-extglob": { @@ -5831,7 +5872,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "is-number": { @@ -5840,7 +5881,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5849,7 +5890,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5872,19 +5913,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "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.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } @@ -5906,7 +5947,7 @@ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -5915,8 +5956,8 @@ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "dev": true, "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" } }, "filename-regex": { @@ -5931,8 +5972,8 @@ "integrity": "sha1-mo+jb06K1jTjv2tPPIiCVRRS6yA=", "dev": true, "requires": { - "is-object": "1.0.1", - "merge-descriptors": "1.0.1" + "is-object": "~1.0.1", + "merge-descriptors": "~1.0.0" } }, "fill-range": { @@ -5941,11 +5982,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "dev": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.0.0", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" } }, "finalhandler": { @@ -5955,12 +5996,12 @@ "dev": true, "requires": { "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.4.0", - "unpipe": "1.0.0" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" }, "dependencies": { "debug": { @@ -5986,9 +6027,9 @@ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", "dev": true, "requires": { - "commondir": "1.0.1", - "make-dir": "1.3.0", - "pkg-dir": "2.0.0" + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" } }, "find-my-way": { @@ -5997,9 +6038,9 @@ "integrity": "sha512-dYVjhSI/7WwM2tPXIpBp4YwPFpFEJOpNCPCTCq2vca/0t0OfqDOdynsWnMizanJ4tvmBpQbEek9ZKGmf24H3Ig==", "dev": true, "requires": { - "fast-decode-uri-component": "1.0.0", - "safe-regex": "1.1.0", - "semver-store": "0.2.2" + "fast-decode-uri-component": "^1.0.0", + "safe-regex": "^1.1.0", + "semver-store": "^0.2.0" } }, "find-up": { @@ -6008,7 +6049,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "flat-cache": { @@ -6017,10 +6058,10 @@ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "dev": true, "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" } }, "fn-name": { @@ -6034,7 +6075,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.0.tgz", "integrity": "sha512-fdrt472/9qQ6Kgjvb935ig6vJCuofpBUD14f9Vb+SLlm7xIe4Qva5gey8EKtv8lp7ahE1wilg3xL1znpVGtZIA==", "requires": { - "debug": "3.1.0" + "debug": "^3.1.0" } }, "for-in": { @@ -6049,7 +6090,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "foreach": { @@ -6068,9 +6109,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "requires": { - "asynckit": "0.4.0", + "asynckit": "^0.4.0", "combined-stream": "1.0.6", - "mime-types": "2.1.18" + "mime-types": "^2.1.12" } }, "formidable": { @@ -6091,7 +6132,7 @@ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fresh": { @@ -6106,8 +6147,8 @@ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" } }, "fs-extra": { @@ -6116,9 +6157,9 @@ "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "4.0.0", - "universalify": "0.1.2" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, "fs.realpath": { @@ -6134,8 +6175,8 @@ "dev": true, "optional": true, "requires": { - "nan": "2.10.0", - "node-pre-gyp": "0.10.0" + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { "abbrev": { @@ -6161,8 +6202,8 @@ "dev": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "balanced-match": { @@ -6175,7 +6216,7 @@ "bundled": true, "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -6239,7 +6280,7 @@ "dev": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "fs.realpath": { @@ -6254,14 +6295,14 @@ "dev": true, "optional": true, "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" } }, "glob": { @@ -6270,12 +6311,12 @@ "dev": true, "optional": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "has-unicode": { @@ -6290,7 +6331,7 @@ "dev": true, "optional": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "^2.1.0" } }, "ignore-walk": { @@ -6299,7 +6340,7 @@ "dev": true, "optional": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "inflight": { @@ -6308,8 +6349,8 @@ "dev": true, "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -6328,7 +6369,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "isarray": { @@ -6342,7 +6383,7 @@ "bundled": true, "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -6355,8 +6396,8 @@ "bundled": true, "dev": true, "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" } }, "minizlib": { @@ -6365,7 +6406,7 @@ "dev": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "mkdirp": { @@ -6388,9 +6429,9 @@ "dev": true, "optional": true, "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, "node-pre-gyp": { @@ -6399,16 +6440,16 @@ "dev": true, "optional": true, "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" } }, "nopt": { @@ -6417,8 +6458,8 @@ "dev": true, "optional": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npm-bundled": { @@ -6433,8 +6474,8 @@ "dev": true, "optional": true, "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npmlog": { @@ -6443,10 +6484,10 @@ "dev": true, "optional": true, "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "number-is-nan": { @@ -6465,7 +6506,7 @@ "bundled": true, "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -6486,8 +6527,8 @@ "dev": true, "optional": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { @@ -6508,10 +6549,10 @@ "dev": true, "optional": true, "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -6528,13 +6569,13 @@ "dev": true, "optional": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "rimraf": { @@ -6543,7 +6584,7 @@ "dev": true, "optional": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { @@ -6586,9 +6627,9 @@ "bundled": true, "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { @@ -6597,7 +6638,7 @@ "dev": true, "optional": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -6605,7 +6646,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -6620,13 +6661,13 @@ "dev": true, "optional": true, "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" } }, "util-deprecate": { @@ -6641,7 +6682,7 @@ "dev": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { @@ -6656,6 +6697,12 @@ } } }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, "function-name-support": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/function-name-support/-/function-name-support-0.2.0.tgz", @@ -6673,8 +6720,8 @@ "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.6.3.tgz", "integrity": "sha512-MSmczZctbz91AxCvqp9GHBoZOSbJKAICV7Ow/AIWSJZRrRchUd5NL1b2P4OfP+4m490BEUPhhARfpHdqCxuCvg==", "requires": { - "axios": "0.18.0", - "extend": "3.0.1", + "axios": "^0.18.0", + "extend": "^3.0.1", "retry-axios": "0.3.2" } }, @@ -6719,7 +6766,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "glob": { @@ -6728,12 +6775,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-base": { @@ -6742,8 +6789,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -6752,7 +6799,7 @@ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "glob-to-regexp": { @@ -6767,7 +6814,7 @@ "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "dev": true, "requires": { - "ini": "1.3.5" + "ini": "^1.3.4" } }, "globals": { @@ -6782,11 +6829,11 @@ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "dev": true, "requires": { - "array-union": "1.0.2", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "pify": { @@ -6807,7 +6854,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } } } @@ -6817,13 +6864,13 @@ "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-1.6.1.tgz", "integrity": "sha512-jYiWC8NA9n9OtQM7ANn0Tk464do9yhKEtaJ72pKcaBiEwn4LwcGYIYOfwtfsSm3aur/ed3tlSxbmg24IAT6gAg==", "requires": { - "axios": "0.18.0", - "gcp-metadata": "0.6.3", - "gtoken": "2.3.0", - "jws": "3.1.5", - "lodash.isstring": "4.0.1", - "lru-cache": "4.1.3", - "retry-axios": "0.3.2" + "axios": "^0.18.0", + "gcp-metadata": "^0.6.3", + "gtoken": "^2.3.0", + "jws": "^3.1.5", + "lodash.isstring": "^4.0.1", + "lru-cache": "^4.1.3", + "retry-axios": "^0.3.2" } }, "google-p12-pem": { @@ -6831,8 +6878,8 @@ "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-1.0.2.tgz", "integrity": "sha512-+EuKr4CLlGsnXx4XIJIVkcKYrsa2xkAmCvxRhX2HsazJzUBAJ35wARGeApHUn4nNfPD03Vl057FskNr20VaCyg==", "requires": { - "node-forge": "0.7.5", - "pify": "3.0.0" + "node-forge": "^0.7.4", + "pify": "^3.0.0" } }, "got": { @@ -6841,23 +6888,23 @@ "integrity": "sha512-giadqJpXIwjY+ZsuWys8p2yjZGhOHiU4hiJHjS/oeCxw1u8vANQz3zPlrxW2Zw/siCXsSMI3hvzWGcnFyujyAg==", "dev": true, "requires": { - "@sindresorhus/is": "0.7.0", - "cacheable-request": "2.1.4", - "decompress-response": "3.3.0", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "into-stream": "3.1.0", - "is-retry-allowed": "1.1.0", - "isurl": "1.0.0", - "lowercase-keys": "1.0.1", - "mimic-response": "1.0.0", - "p-cancelable": "0.3.0", - "p-timeout": "2.0.1", - "pify": "3.0.0", - "safe-buffer": "5.1.2", - "timed-out": "4.0.1", - "url-parse-lax": "3.0.0", - "url-to-options": "1.0.1" + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" }, "dependencies": { "prepend-http": { @@ -6872,7 +6919,7 @@ "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "dev": true, "requires": { - "prepend-http": "2.0.0" + "prepend-http": "^2.0.0" } } } @@ -6894,11 +6941,11 @@ "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-2.3.0.tgz", "integrity": "sha512-Jc9/8mV630cZE9FC5tIlJCZNdUjwunvlwOtCz6IDlaiB4Sz68ki29a1+q97sWTnTYroiuF9B135rod9zrQdHLw==", "requires": { - "axios": "0.18.0", - "google-p12-pem": "1.0.2", - "jws": "3.1.5", - "mime": "2.3.1", - "pify": "3.0.0" + "axios": "^0.18.0", + "google-p12-pem": "^1.0.0", + "jws": "^3.1.4", + "mime": "^2.2.0", + "pify": "^3.0.0" } }, "gts": { @@ -6907,15 +6954,15 @@ "integrity": "sha512-7yMBk3+SmyL4+047vIXOAUWlNfbIkuPH0UnhQYzurM8yj1ufiVH++BdBpZY7AP6/wytvzq7PuVzqAXbk5isn2A==", "dev": true, "requires": { - "chalk": "2.4.1", + "chalk": "^2.4.1", "clang-format": "1.2.3", - "inquirer": "6.0.0", - "meow": "5.0.0", - "pify": "3.0.0", - "rimraf": "2.6.2", - "tslint": "5.10.0", - "update-notifier": "2.5.0", - "write-file-atomic": "2.3.0" + "inquirer": "^6.0.0", + "meow": "^5.0.0", + "pify": "^3.0.0", + "rimraf": "^2.6.2", + "tslint": "^5.9.1", + "update-notifier": "^2.5.0", + "write-file-atomic": "^2.3.0" }, "dependencies": { "camelcase": { @@ -6930,9 +6977,9 @@ "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", "dev": true, "requires": { - "camelcase": "4.1.0", - "map-obj": "2.0.0", - "quick-lru": "1.1.0" + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" } }, "chardet": { @@ -6947,9 +6994,9 @@ "integrity": "sha512-mpkfj0FEdxrIhOC04zk85X7StNtr0yXnG7zCb+8ikO8OJi2jsHh5YGoknNTyXgsbHOf1WOOcVU3kPFWT2WgCkQ==", "dev": true, "requires": { - "chardet": "0.5.0", - "iconv-lite": "0.4.23", - "tmp": "0.0.33" + "chardet": "^0.5.0", + "iconv-lite": "^0.4.22", + "tmp": "^0.0.33" } }, "inquirer": { @@ -6958,19 +7005,19 @@ "integrity": "sha512-tISQWRwtcAgrz+SHPhTH7d3e73k31gsOy6i1csonLc0u1dVK/wYvuOnFeiWqC5OXFIYbmrIFInef31wbT8MEJg==", "dev": true, "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "3.0.0", - "figures": "2.0.0", - "lodash": "4.17.5", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.0", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rxjs": "6.2.1", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rxjs": "^6.1.0", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" } }, "load-json-file": { @@ -6979,10 +7026,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "map-obj": { @@ -6997,15 +7044,15 @@ "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", "dev": true, "requires": { - "camelcase-keys": "4.2.0", - "decamelize-keys": "1.1.0", - "loud-rejection": "1.6.0", - "minimist-options": "3.0.2", - "normalize-package-data": "2.4.0", - "read-pkg-up": "3.0.0", - "redent": "2.0.0", - "trim-newlines": "2.0.0", - "yargs-parser": "10.0.0" + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0", + "yargs-parser": "^10.0.0" } }, "parse-json": { @@ -7014,8 +7061,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "path-type": { @@ -7024,7 +7071,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "read-pkg": { @@ -7033,9 +7080,9 @@ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.4.0", - "path-type": "3.0.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" } }, "read-pkg-up": { @@ -7044,8 +7091,8 @@ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "3.0.0" + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" } }, "redent": { @@ -7054,8 +7101,17 @@ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", "dev": true, "requires": { - "indent-string": "3.2.0", - "strip-indent": "2.0.0" + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" + } + }, + "rxjs": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.1.tgz", + "integrity": "sha512-OwMxHxmnmHTUpgO+V7dZChf3Tixf4ih95cmXjzzadULziVl/FKhHScGLj4goEw9weePVOH2Q0+GcCBUhKCZc/g==", + "dev": true, + "requires": { + "tslib": "^1.9.0" } }, "strip-indent": { @@ -7076,7 +7132,7 @@ "integrity": "sha512-+DHejWujTVYeMHLff8U96rLc4uE4Emncoftvn5AjhB1Jw1pWxLzgBUT/WYbPrHmy6YPEBTZQx5myHhVcuuu64g==", "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } @@ -7093,10 +7149,10 @@ "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" }, "dependencies": { "source-map": { @@ -7105,34 +7161,34 @@ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } }, "hapi": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/hapi/-/hapi-17.5.1.tgz", - "integrity": "sha512-IOOCwH75JMw28Spd9tMjYi9QsIqSGiJKH/GHwsmUV5ZgyyQIgVbWxbeuUFUwxcei4KIw1Gb1wJIDRF4jKlRq8w==", - "dev": true, - "requires": { - "accept": "3.0.2", - "ammo": "3.0.1", - "boom": "7.2.0", - "bounce": "1.2.0", - "call": "5.0.1", - "catbox": "10.0.2", - "catbox-memory": "3.1.2", - "heavy": "6.1.0", - "hoek": "5.0.3", - "joi": "13.4.0", - "mimos": "4.0.0", - "podium": "3.1.2", - "shot": "4.0.5", - "statehood": "6.0.6", - "subtext": "6.0.7", - "teamwork": "3.0.1", - "topo": "3.0.0" + "version": "17.5.2", + "resolved": "https://registry.npmjs.org/hapi/-/hapi-17.5.2.tgz", + "integrity": "sha512-UxMKYzrjfXlcztJQPEB3os5rM3SKgSQVxoOym4KI3JdP4pxl5WUdZYF8it4Kga2OMTGwB+ZTy+DU9b/oDaQHRQ==", + "dev": true, + "requires": { + "accept": "3.x.x", + "ammo": "3.x.x", + "boom": "7.x.x", + "bounce": "1.x.x", + "call": "5.x.x", + "catbox": "10.x.x", + "catbox-memory": "3.x.x", + "heavy": "6.x.x", + "hoek": "5.x.x", + "joi": "13.x.x", + "mimos": "4.x.x", + "podium": "3.x.x", + "shot": "4.x.x", + "statehood": "6.x.x", + "subtext": "6.x.x", + "teamwork": "3.x.x", + "topo": "3.x.x" } }, "har-schema": { @@ -7145,8 +7201,17 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" + "ajv": "^5.1.0", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" } }, "has-ansi": { @@ -7155,7 +7220,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-color": { @@ -7176,13 +7241,19 @@ "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", "dev": true }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, "has-to-string-tag-x": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", "dev": true, "requires": { - "has-symbol-support-x": "1.4.2" + "has-symbol-support-x": "^1.4.1" } }, "has-value": { @@ -7191,9 +7262,9 @@ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -7210,8 +7281,8 @@ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { @@ -7220,7 +7291,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -7229,7 +7300,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7240,7 +7311,7 @@ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7263,9 +7334,9 @@ "integrity": "sha512-TKS9DC9NOTGulHQI31Lx+bmeWmNOstbJbGMiN3pX6bF+Zc2GKSpbbym4oasNnB6yPGkqJ9TQXXYDGohqNSJRxA==", "dev": true, "requires": { - "boom": "7.2.0", - "hoek": "5.0.3", - "joi": "13.4.0" + "boom": "7.x.x", + "hoek": "5.x.x", + "joi": "13.x.x" } }, "hoek": { @@ -7280,14 +7351,14 @@ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" } }, "hosted-git-info": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", - "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.1.tgz", + "integrity": "sha512-Ba4+0M4YvIDUUsprMjhVTU1yN9F2/LJSAl69ZpzaLT4l4j5mwTS6jqqW9Ojvj6lKz/veqPzpJBqGbXspOb533A==", "dev": true }, "hpack.js": { @@ -7296,10 +7367,10 @@ "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "dev": true, "requires": { - "inherits": "2.0.3", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "wbuf": "1.7.3" + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" } }, "htmlparser2": { @@ -7308,12 +7379,12 @@ "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", "dev": true, "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.4.2", - "domutils": "1.7.0", - "entities": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "domelementtype": "^1.3.0", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" } }, "http-assert": { @@ -7322,8 +7393,8 @@ "integrity": "sha1-oxpc+IyHPsu1eWkH1NbxMujAHko=", "dev": true, "requires": { - "deep-equal": "1.0.1", - "http-errors": "1.6.3" + "deep-equal": "~1.0.1", + "http-errors": "~1.6.1" } }, "http-cache-semantics": { @@ -7344,10 +7415,10 @@ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, "requires": { - "depd": "1.1.2", + "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", - "statuses": "1.5.0" + "statuses": ">= 1.4.0 < 2" } }, "http-signature": { @@ -7355,9 +7426,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.14.2" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "hullabaloo-config-manager": { @@ -7366,20 +7437,20 @@ "integrity": "sha512-ztKnkZV0TmxnumCDHHgLGNiDnotu4EHCp9YMkznWuo4uTtCyJ+cu+RNcxUeXYKTllpvLFWnbfWry09yzszgg+A==", "dev": true, "requires": { - "dot-prop": "4.2.0", - "es6-error": "4.1.1", - "graceful-fs": "4.1.11", - "indent-string": "3.2.0", - "json5": "0.5.1", - "lodash.clonedeep": "4.5.0", - "lodash.clonedeepwith": "4.5.0", - "lodash.isequal": "4.5.0", - "lodash.merge": "4.6.1", - "md5-hex": "2.0.0", - "package-hash": "2.0.0", - "pkg-dir": "2.0.0", - "resolve-from": "3.0.0", - "safe-buffer": "5.1.2" + "dot-prop": "^4.1.0", + "es6-error": "^4.0.2", + "graceful-fs": "^4.1.11", + "indent-string": "^3.1.0", + "json5": "^0.5.1", + "lodash.clonedeep": "^4.5.0", + "lodash.clonedeepwith": "^4.5.0", + "lodash.isequal": "^4.5.0", + "lodash.merge": "^4.6.0", + "md5-hex": "^2.0.0", + "package-hash": "^2.0.0", + "pkg-dir": "^2.0.0", + "resolve-from": "^3.0.0", + "safe-buffer": "^5.0.1" } }, "iconv-lite": { @@ -7388,7 +7459,7 @@ "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "dev": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ignore": { @@ -7415,8 +7486,8 @@ "integrity": "sha1-sReVcqrNwRxqkQCftDDbyrX2aKg=", "dev": true, "requires": { - "pkg-dir": "2.0.0", - "resolve-cwd": "2.0.0" + "pkg-dir": "^2.0.0", + "resolve-cwd": "^2.0.0" } }, "imurmurhash": { @@ -7443,8 +7514,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -7464,30 +7535,29 @@ "integrity": "sha512-STx5orGQU1gfrkoI/fMU7lX6CSP7LBGO10gXNgOZhwKhUqbtNjCkYSewJtNnLmWP1tAGN6oyEpG1HFPw5vpa5Q==", "dev": true, "requires": { - "moment": "2.22.2", - "sanitize-html": "1.18.2" + "moment": "^2.14.1", + "sanitize-html": "^1.13.0" } }, "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz", + "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==", "dev": true, "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.5", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.1.0", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rxjs": "^5.5.2", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" } }, "intelli-espower-loader": { @@ -7496,7 +7566,7 @@ "integrity": "sha1-LHsDFGvB1GvyENCgOXxckatMorA=", "dev": true, "requires": { - "espower-loader": "1.2.2" + "espower-loader": "^1.0.0" } }, "into-stream": { @@ -7505,8 +7575,8 @@ "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", "dev": true, "requires": { - "from2": "2.3.0", - "p-is-promise": "1.1.0" + "from2": "^2.1.1", + "p-is-promise": "^1.1.0" } }, "invariant": { @@ -7515,7 +7585,7 @@ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -7536,9 +7606,9 @@ "integrity": "sha512-7iQ5/xFMIYaNt9g2oiNiWdhrOTdRUMFaWENUd0KghxwPUhrIH8DUY8FEyLNTTzf75jaII+jMexLdY/2HfV61RQ==", "dev": true, "requires": { - "boom": "7.2.0", - "cryptiles": "4.1.1", - "hoek": "5.0.3" + "boom": "7.x.x", + "cryptiles": "4.x.x", + "hoek": "5.x.x" } }, "irregular-plurals": { @@ -7558,7 +7628,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { @@ -7573,7 +7643,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "binary-extensions": "1.11.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -7587,16 +7657,22 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, + "is-callable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", + "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", + "dev": true + }, "is-ci": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz", "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", "dev": true, "requires": { - "ci-info": "1.1.3" + "ci-info": "^1.0.0" } }, "is-data-descriptor": { @@ -7605,18 +7681,24 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { @@ -7639,7 +7721,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-error": { @@ -7666,7 +7748,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -7693,7 +7775,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-installed-globally": { @@ -7702,8 +7784,8 @@ "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "dev": true, "requires": { - "global-dirs": "0.1.1", - "is-path-inside": "1.0.1" + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" } }, "is-npm": { @@ -7718,7 +7800,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-obj": { @@ -7739,24 +7821,7 @@ "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", "dev": true, "requires": { - "symbol-observable": "1.2.0" - } - }, - "is-odd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", - "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", - "dev": true, - "requires": { - "is-number": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } + "symbol-observable": "^1.1.0" } }, "is-path-cwd": { @@ -7771,7 +7836,7 @@ "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, "requires": { - "is-path-inside": "1.0.1" + "is-path-inside": "^1.0.0" } }, "is-path-inside": { @@ -7780,7 +7845,7 @@ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" } }, "is-plain-obj": { @@ -7795,7 +7860,7 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -7830,6 +7895,15 @@ "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", "dev": true }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "^1.0.1" + } + }, "is-resolvable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", @@ -7853,6 +7927,12 @@ "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz", "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==" }, + "is-symbol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", + "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", + "dev": true + }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -7887,7 +7967,7 @@ "integrity": "sha512-zfRhJn9rFSGhzU5tGZqepRSAj3+g6oTOHxMGGriWNJZzyLPUK8H7VHpqKntegnW8KLyGA9zwuNaCoopl40LTpg==", "dev": true, "requires": { - "punycode": "2.1.1" + "punycode": "2.x.x" }, "dependencies": { "punycode": { @@ -7925,18 +8005,18 @@ "dev": true }, "istanbul-lib-instrument": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.2.0.tgz", - "integrity": "sha512-ozQGtlIw+/a/F3n6QwWiuuyRAPp64+g2GVsKYsIez0sgIEzkU5ZpL2uZ5pmAzbEJ82anlRaPlOQZzkRXspgJyg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.0.tgz", + "integrity": "sha512-Ie1LGWJVCFDDJKKH4g1ffpFcZTEXEd6ay5l9fE8539y4qPErJnzo4psnGzDH92tcKvdUDdbxrKySYIbt6zB9hw==", "dev": true, "requires": { - "@babel/generator": "7.0.0-beta.49", - "@babel/parser": "7.0.0-beta.49", - "@babel/template": "7.0.0-beta.49", - "@babel/traverse": "7.0.0-beta.49", - "@babel/types": "7.0.0-beta.49", - "istanbul-lib-coverage": "2.0.0", - "semver": "5.5.0" + "@babel/generator": "7.0.0-beta.51", + "@babel/parser": "7.0.0-beta.51", + "@babel/template": "7.0.0-beta.51", + "@babel/traverse": "7.0.0-beta.51", + "@babel/types": "7.0.0-beta.51", + "istanbul-lib-coverage": "^2.0.0", + "semver": "^5.5.0" } }, "isurl": { @@ -7945,8 +8025,8 @@ "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", "dev": true, "requires": { - "has-to-string-tag-x": "1.4.1", - "is-object": "1.0.1" + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" } }, "jest-docblock": { @@ -7961,9 +8041,9 @@ "integrity": "sha512-JuK4GjEu6j7zr9FuVe2MAseZ6si/8/HaY0qMAejfDFHp7jcH4OKE937mIHM5VT4xDS0q7lpQbszbxKV9rm0yUg==", "dev": true, "requires": { - "hoek": "5.0.3", - "isemail": "3.1.2", - "topo": "3.0.0" + "hoek": "5.x.x", + "isemail": "3.x.x", + "topo": "3.x.x" } }, "js-green-licenses": { @@ -7972,14 +8052,14 @@ "integrity": "sha512-HM/SKwAl1R0y9kkBili6GqKc31ZnjzY7JHC2uO9bAHJNRmY5c/s+2cETyaqX0kBD8gX8QVhS4dJjRtY1nAwb4w==", "dev": true, "requires": { - "argparse": "1.0.10", - "axios": "0.18.0", - "npm-package-arg": "6.1.0", - "package-json": "4.0.1", - "pify": "3.0.0", - "spdx-correct": "3.0.0", - "spdx-satisfies": "4.0.0", - "strip-json-comments": "2.0.1" + "argparse": "^1.0.9", + "axios": "^0.18.0", + "npm-package-arg": "^6.0.0", + "package-json": "^4.0.1", + "pify": "^3.0.0", + "spdx-correct": "^3.0.0", + "spdx-satisfies": "^4.0.0", + "strip-json-comments": "^2.0.1" } }, "js-string-escape": { @@ -8000,8 +8080,8 @@ "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "dev": true, "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "js2xmlparser": { @@ -8010,7 +8090,7 @@ "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", "dev": true, "requires": { - "xmlcreate": "1.0.2" + "xmlcreate": "^1.0.1" } }, "jsbn": { @@ -8026,17 +8106,17 @@ "dev": true, "requires": { "babylon": "7.0.0-beta.19", - "bluebird": "3.5.1", - "catharsis": "0.8.9", - "escape-string-regexp": "1.0.5", - "js2xmlparser": "3.0.0", - "klaw": "2.0.0", - "marked": "0.3.19", - "mkdirp": "0.5.1", - "requizzle": "0.2.1", - "strip-json-comments": "2.0.1", + "bluebird": "~3.5.0", + "catharsis": "~0.8.9", + "escape-string-regexp": "~1.0.5", + "js2xmlparser": "~3.0.0", + "klaw": "~2.0.0", + "marked": "~0.3.6", + "mkdirp": "~0.5.1", + "requizzle": "~0.2.1", + "strip-json-comments": "~2.0.1", "taffydb": "2.6.2", - "underscore": "1.8.3" + "underscore": "~1.8.3" }, "dependencies": { "babylon": { @@ -8098,7 +8178,7 @@ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } }, "jsprim": { @@ -8125,7 +8205,7 @@ "requires": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.10", - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "jws": { @@ -8133,8 +8213,8 @@ "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz", "integrity": "sha512-GsCSexFADNQUr8T5HPJvayTjvPIfoyJPtLQBwn5a4WZQchcrPMPMAWcC1AzJVRDKyD6ZPROPAxgv6rfHViO4uQ==", "requires": { - "jwa": "1.1.6", - "safe-buffer": "5.1.2" + "jwa": "^1.1.5", + "safe-buffer": "^5.0.1" } }, "keygrip": { @@ -8158,7 +8238,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "klaw": { @@ -8167,7 +8247,7 @@ "integrity": "sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.9" } }, "koa": { @@ -8176,30 +8256,30 @@ "integrity": "sha512-cchwbMeG2dv3E2xTAmheDAuvR53tPgJZN/Hf1h7bTzJLSPcFZp8/t5+bNKJ6GaQZoydhZQ+1GNruhKdj3lIrug==", "dev": true, "requires": { - "accepts": "1.3.5", - "content-disposition": "0.5.2", - "content-type": "1.0.4", - "cookies": "0.7.1", - "debug": "3.1.0", - "delegates": "1.0.0", - "depd": "1.1.2", - "destroy": "1.0.4", - "error-inject": "1.0.0", - "escape-html": "1.0.3", - "fresh": "0.5.2", - "http-assert": "1.3.0", - "http-errors": "1.6.3", - "is-generator-function": "1.0.7", - "koa-compose": "4.1.0", - "koa-convert": "1.2.0", - "koa-is-json": "1.0.0", - "mime-types": "2.1.18", - "on-finished": "2.3.0", + "accepts": "^1.2.2", + "content-disposition": "~0.5.0", + "content-type": "^1.0.0", + "cookies": "~0.7.0", + "debug": "*", + "delegates": "^1.0.0", + "depd": "^1.1.0", + "destroy": "^1.0.3", + "error-inject": "~1.0.0", + "escape-html": "~1.0.1", + "fresh": "^0.5.2", + "http-assert": "^1.1.0", + "http-errors": "^1.2.8", + "is-generator-function": "^1.0.3", + "koa-compose": "^4.0.0", + "koa-convert": "^1.2.0", + "koa-is-json": "^1.0.0", + "mime-types": "^2.0.7", + "on-finished": "^2.1.0", "only": "0.0.2", - "parseurl": "1.3.2", - "statuses": "1.5.0", - "type-is": "1.6.16", - "vary": "1.1.2" + "parseurl": "^1.3.0", + "statuses": "^1.2.0", + "type-is": "^1.5.5", + "vary": "^1.0.0" } }, "koa-compose": { @@ -8214,8 +8294,8 @@ "integrity": "sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA=", "dev": true, "requires": { - "co": "4.6.0", - "koa-compose": "3.2.1" + "co": "^4.6.0", + "koa-compose": "^3.0.0" }, "dependencies": { "koa-compose": { @@ -8224,7 +8304,7 @@ "integrity": "sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec=", "dev": true, "requires": { - "any-promise": "1.3.0" + "any-promise": "^1.1.0" } } } @@ -8241,7 +8321,7 @@ "integrity": "sha1-0bZNafhv8kry0EiDos7uFFIKVgA=", "dev": true, "requires": { - "through2": "2.0.3" + "through2": "^2.0.0" } }, "latest-version": { @@ -8250,7 +8330,7 @@ "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", "dev": true, "requires": { - "package-json": "4.0.1" + "package-json": "^4.0.0" } }, "lazy-cache": { @@ -8266,7 +8346,7 @@ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "levn": { @@ -8275,8 +8355,8 @@ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "load-json-file": { @@ -8285,10 +8365,10 @@ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" }, "dependencies": { "pify": { @@ -8305,8 +8385,8 @@ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -8457,7 +8537,7 @@ "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "loud-rejection": { @@ -8466,8 +8546,8 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, "lowercase-keys": { @@ -8481,8 +8561,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "make-dir": { @@ -8491,7 +8571,7 @@ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "map-cache": { @@ -8512,7 +8592,7 @@ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "marked": { @@ -8527,7 +8607,7 @@ "integrity": "sha512-+BmqxWIubKTRKNWx/ahnCkk3mG8m7OturVlqq6HiojGJTd5hVYbgZm6WzcYPCoB+KBT4Vd6R7WSRG2OADNaCjg==", "dev": true, "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.4" } }, "math-random": { @@ -8542,7 +8622,7 @@ "integrity": "sha1-0FiOnxx0lUSS7NJKwKxs6ZfZLjM=", "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { @@ -8563,7 +8643,7 @@ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "meow": { @@ -8572,16 +8652,16 @@ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" }, "dependencies": { "find-up": { @@ -8590,8 +8670,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "load-json-file": { @@ -8600,11 +8680,11 @@ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" } }, "minimist": { @@ -8619,7 +8699,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-type": { @@ -8628,9 +8708,9 @@ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -8651,7 +8731,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "read-pkg": { @@ -8660,9 +8740,9 @@ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -8671,8 +8751,8 @@ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" } }, "strip-bom": { @@ -8681,7 +8761,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } } } @@ -8698,7 +8778,7 @@ "integrity": "sha1-65aDOLXe1c7tgs7AMH3sui2OqZQ=", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "merge2": { @@ -8719,19 +8799,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" } }, "mime": { @@ -8749,7 +8829,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", "requires": { - "mime-db": "1.33.0" + "mime-db": "~1.33.0" } }, "mimic-fn": { @@ -8770,8 +8850,8 @@ "integrity": "sha512-JvlvRLqGIlk+AYypWrbrDmhsM+6JVx/xBM5S3AMwTBz1trPCEoPN/swO2L4Wu653fL7oJdgk8DMQyG/Gq3JkZg==", "dev": true, "requires": { - "hoek": "5.0.3", - "mime-db": "1.33.0" + "hoek": "5.x.x", + "mime-db": "1.x.x" } }, "minimalistic-assert": { @@ -8786,7 +8866,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -8801,8 +8881,8 @@ "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", "dev": true, "requires": { - "arrify": "1.0.1", - "is-plain-obj": "1.1.0" + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0" } }, "mixin-deep": { @@ -8811,8 +8891,8 @@ "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "dev": true, "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -8821,7 +8901,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -8877,7 +8957,7 @@ "integrity": "sha1-sJ/IWG6qF/gdV1xK0C4Pej9rEQU=", "dev": true, "requires": { - "source-map": "0.1.43" + "source-map": "^0.1.34" }, "dependencies": { "source-map": { @@ -8886,7 +8966,7 @@ "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -8897,10 +8977,10 @@ "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", "dev": true, "requires": { - "array-differ": "1.0.0", - "array-union": "1.0.2", - "arrify": "1.0.1", - "minimatch": "3.0.4" + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "minimatch": "^3.0.0" } }, "mute-stream": { @@ -8916,9 +8996,9 @@ "dev": true, "optional": true, "requires": { - "mkdirp": "0.5.1", - "ncp": "2.0.0", - "rimraf": "2.4.5" + "mkdirp": "~0.5.1", + "ncp": "~2.0.0", + "rimraf": "~2.4.0" }, "dependencies": { "glob": { @@ -8928,11 +9008,11 @@ "dev": true, "optional": true, "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "rimraf": { @@ -8942,7 +9022,7 @@ "dev": true, "optional": true, "requires": { - "glob": "6.0.4" + "glob": "^6.0.1" } } } @@ -8955,23 +9035,22 @@ "optional": true }, "nanomatch": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", - "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", - "dev": true, - "requires": { - "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-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "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.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "arr-diff": { @@ -9024,14 +9103,20 @@ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", "dev": true }, + "nice-try": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz", + "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==", + "dev": true + }, "nigel": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/nigel/-/nigel-3.0.1.tgz", "integrity": "sha512-kCVtUG9JyD//tsYrZY+/Y+2gUrANVSba8y23QkM5Znx0FOxlnl9Z4OVPBODmstKWTOvigfTO+Va1VPOu3eWSOQ==", "dev": true, "requires": { - "hoek": "5.0.3", - "vise": "3.0.0" + "hoek": "5.x.x", + "vise": "3.x.x" } }, "nise": { @@ -9040,11 +9125,11 @@ "integrity": "sha512-BxH/DxoQYYdhKgVAfqVy4pzXRZELHOIewzoesxpjYvpU+7YOalQhGNPf7wAx8pLrTNPrHRDlLOkAl8UI0ZpXjw==", "dev": true, "requires": { - "@sinonjs/formatio": "2.0.0", - "just-extend": "1.1.27", - "lolex": "2.7.0", - "path-to-regexp": "1.7.0", - "text-encoding": "0.6.4" + "@sinonjs/formatio": "^2.0.0", + "just-extend": "^1.1.27", + "lolex": "^2.3.2", + "path-to-regexp": "^1.7.0", + "text-encoding": "^0.6.4" } }, "nock": { @@ -9053,15 +9138,15 @@ "integrity": "sha512-FBgnx25er2ly7KBr0Est5F0z5g+lnyr6a72vZI1KMi7nTL4ojU6XpFhlrfw6CXRdnT2FA5i8exHiT1uVNUM1qA==", "dev": true, "requires": { - "chai": "4.1.2", - "debug": "3.1.0", - "deep-equal": "1.0.1", - "json-stringify-safe": "5.0.1", - "lodash": "4.17.5", - "mkdirp": "0.5.1", - "propagate": "1.0.0", - "qs": "6.5.2", - "semver": "5.5.0" + "chai": "^4.1.2", + "debug": "^3.1.0", + "deep-equal": "^1.0.0", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.5", + "mkdirp": "^0.5.0", + "propagate": "^1.0.0", + "qs": "^6.5.1", + "semver": "^5.5.0" } }, "node-forge": { @@ -9075,10 +9160,10 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { @@ -9087,7 +9172,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "normalize-url": { @@ -9096,9 +9181,9 @@ "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", "dev": true, "requires": { - "prepend-http": "2.0.0", - "query-string": "5.1.1", - "sort-keys": "2.0.0" + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" }, "dependencies": { "prepend-http": { @@ -9115,10 +9200,10 @@ "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", "dev": true, "requires": { - "hosted-git-info": "2.6.0", - "osenv": "0.1.5", - "semver": "5.5.0", - "validate-npm-package-name": "3.0.0" + "hosted-git-info": "^2.6.0", + "osenv": "^0.1.5", + "semver": "^5.5.0", + "validate-npm-package-name": "^3.0.0" } }, "npm-run-path": { @@ -9127,7 +9212,7 @@ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -9142,33 +9227,33 @@ "integrity": "sha1-ikpO1pCWbBHsWH/4fuoMEsl0upk=", "dev": true, "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "1.0.1", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "default-require-extensions": "1.0.0", - "find-cache-dir": "0.1.1", - "find-up": "2.1.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "2.2.0", - "istanbul-lib-report": "1.1.3", - "istanbul-lib-source-maps": "1.2.5", - "istanbul-reports": "1.4.1", - "md5-hex": "1.3.0", - "merge-source-map": "1.1.0", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "resolve-from": "2.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "4.2.1", + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.5.1", + "debug-log": "^1.0.1", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^2.1.0", + "foreground-child": "^1.5.3", + "glob": "^7.0.6", + "istanbul-lib-coverage": "^1.2.0", + "istanbul-lib-hook": "^1.1.0", + "istanbul-lib-instrument": "^2.1.0", + "istanbul-lib-report": "^1.1.3", + "istanbul-lib-source-maps": "^1.2.5", + "istanbul-reports": "^1.4.1", + "md5-hex": "^1.2.0", + "merge-source-map": "^1.1.0", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.1", + "spawn-wrap": "^1.4.2", + "test-exclude": "^4.2.0", "yargs": "11.1.0", - "yargs-parser": "8.1.0" + "yargs-parser": "^8.0.0" }, "dependencies": { "align-text": { @@ -9176,9 +9261,9 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" } }, "amdefine": { @@ -9196,7 +9281,7 @@ "bundled": true, "dev": true, "requires": { - "default-require-extensions": "1.0.0" + "default-require-extensions": "^1.0.0" } }, "archy": { @@ -9254,13 +9339,13 @@ "bundled": true, "dev": true, "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { "define-property": { @@ -9268,7 +9353,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -9276,7 +9361,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -9284,7 +9369,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -9292,9 +9377,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { @@ -9309,7 +9394,7 @@ "bundled": true, "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -9318,16 +9403,16 @@ "bundled": true, "dev": true, "requires": { - "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.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "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.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -9335,7 +9420,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -9350,15 +9435,15 @@ "bundled": true, "dev": true, "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" } }, "caching-transform": { @@ -9366,9 +9451,9 @@ "bundled": true, "dev": true, "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" } }, "camelcase": { @@ -9383,8 +9468,8 @@ "dev": true, "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "class-utils": { @@ -9392,10 +9477,10 @@ "bundled": true, "dev": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -9403,7 +9488,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -9414,8 +9499,8 @@ "dev": true, "optional": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" }, "dependencies": { @@ -9437,8 +9522,8 @@ "bundled": true, "dev": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "commondir": { @@ -9471,8 +9556,8 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.3", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, "debug": { @@ -9503,7 +9588,7 @@ "bundled": true, "dev": true, "requires": { - "strip-bom": "2.0.0" + "strip-bom": "^2.0.0" } }, "define-property": { @@ -9511,8 +9596,8 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -9520,7 +9605,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -9528,7 +9613,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -9536,9 +9621,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { @@ -9553,7 +9638,7 @@ "bundled": true, "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "execa": { @@ -9561,13 +9646,13 @@ "bundled": true, "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" }, "dependencies": { "cross-spawn": { @@ -9575,9 +9660,9 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } } } @@ -9587,13 +9672,13 @@ "bundled": true, "dev": true, "requires": { - "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" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "debug": { @@ -9609,7 +9694,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -9617,7 +9702,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -9627,8 +9712,8 @@ "bundled": true, "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -9636,7 +9721,7 @@ "bundled": true, "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -9646,14 +9731,14 @@ "bundled": true, "dev": true, "requires": { - "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" + "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.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -9661,7 +9746,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -9669,7 +9754,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -9677,7 +9762,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -9685,7 +9770,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -9693,9 +9778,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { @@ -9710,10 +9795,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -9721,7 +9806,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -9731,9 +9816,9 @@ "bundled": true, "dev": true, "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" } }, "find-up": { @@ -9741,7 +9826,7 @@ "bundled": true, "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "for-in": { @@ -9754,8 +9839,8 @@ "bundled": true, "dev": true, "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" + "cross-spawn": "^4", + "signal-exit": "^3.0.0" } }, "fragment-cache": { @@ -9763,7 +9848,7 @@ "bundled": true, "dev": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fs.realpath": { @@ -9791,12 +9876,12 @@ "bundled": true, "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "graceful-fs": { @@ -9809,10 +9894,10 @@ "bundled": true, "dev": true, "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" }, "dependencies": { "source-map": { @@ -9820,7 +9905,7 @@ "bundled": true, "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -9830,9 +9915,9 @@ "bundled": true, "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" } }, "has-values": { @@ -9840,8 +9925,8 @@ "bundled": true, "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "kind-of": { @@ -9849,7 +9934,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -9869,8 +9954,8 @@ "bundled": true, "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -9888,7 +9973,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { @@ -9906,7 +9991,7 @@ "bundled": true, "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-data-descriptor": { @@ -9914,7 +9999,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-descriptor": { @@ -9922,9 +10007,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { @@ -9949,7 +10034,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-odd": { @@ -9957,7 +10042,7 @@ "bundled": true, "dev": true, "requires": { - "is-number": "4.0.0" + "is-number": "^4.0.0" }, "dependencies": { "is-number": { @@ -9972,7 +10057,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "is-stream": { @@ -10015,7 +10100,7 @@ "bundled": true, "dev": true, "requires": { - "append-transform": "0.4.0" + "append-transform": "^0.4.0" } }, "istanbul-lib-report": { @@ -10023,10 +10108,10 @@ "bundled": true, "dev": true, "requires": { - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" }, "dependencies": { "has-flag": { @@ -10039,7 +10124,7 @@ "bundled": true, "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -10049,11 +10134,11 @@ "bundled": true, "dev": true, "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.2.0", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" } }, "istanbul-reports": { @@ -10061,7 +10146,7 @@ "bundled": true, "dev": true, "requires": { - "handlebars": "4.0.11" + "handlebars": "^4.0.3" } }, "kind-of": { @@ -10069,7 +10154,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lazy-cache": { @@ -10083,7 +10168,7 @@ "bundled": true, "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "load-json-file": { @@ -10091,11 +10176,11 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" } }, "locate-path": { @@ -10103,8 +10188,8 @@ "bundled": true, "dev": true, "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" }, "dependencies": { "path-exists": { @@ -10124,8 +10209,8 @@ "bundled": true, "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "map-cache": { @@ -10138,7 +10223,7 @@ "bundled": true, "dev": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "md5-hex": { @@ -10146,7 +10231,7 @@ "bundled": true, "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { @@ -10159,7 +10244,7 @@ "bundled": true, "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "merge-source-map": { @@ -10167,7 +10252,7 @@ "bundled": true, "dev": true, "requires": { - "source-map": "0.6.1" + "source-map": "^0.6.1" }, "dependencies": { "source-map": { @@ -10182,19 +10267,19 @@ "bundled": true, "dev": true, "requires": { - "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.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "dependencies": { "kind-of": { @@ -10214,7 +10299,7 @@ "bundled": true, "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -10227,8 +10312,8 @@ "bundled": true, "dev": true, "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -10236,7 +10321,7 @@ "bundled": true, "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -10259,18 +10344,18 @@ "bundled": true, "dev": true, "requires": { - "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-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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-odd": "^2.0.0", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "kind-of": { @@ -10285,10 +10370,10 @@ "bundled": true, "dev": true, "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "npm-run-path": { @@ -10296,7 +10381,7 @@ "bundled": true, "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -10314,9 +10399,9 @@ "bundled": true, "dev": true, "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { "define-property": { @@ -10324,7 +10409,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -10334,7 +10419,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" } }, "object.pick": { @@ -10342,7 +10427,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "once": { @@ -10350,7 +10435,7 @@ "bundled": true, "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "optimist": { @@ -10358,8 +10443,8 @@ "bundled": true, "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "os-homedir": { @@ -10372,9 +10457,9 @@ "bundled": true, "dev": true, "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" } }, "p-finally": { @@ -10387,7 +10472,7 @@ "bundled": true, "dev": true, "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -10395,7 +10480,7 @@ "bundled": true, "dev": true, "requires": { - "p-limit": "1.2.0" + "p-limit": "^1.1.0" } }, "p-try": { @@ -10408,7 +10493,7 @@ "bundled": true, "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "pascalcase": { @@ -10421,7 +10506,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { @@ -10444,9 +10529,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -10464,7 +10549,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { @@ -10472,7 +10557,7 @@ "bundled": true, "dev": true, "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" }, "dependencies": { "find-up": { @@ -10480,8 +10565,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } @@ -10501,9 +10586,9 @@ "bundled": true, "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -10511,8 +10596,8 @@ "bundled": true, "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" }, "dependencies": { "find-up": { @@ -10520,8 +10605,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } @@ -10531,8 +10616,8 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "repeat-element": { @@ -10576,7 +10661,7 @@ "dev": true, "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { @@ -10584,7 +10669,7 @@ "bundled": true, "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-regex": { @@ -10592,7 +10677,7 @@ "bundled": true, "dev": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "semver": { @@ -10610,10 +10695,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -10621,7 +10706,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -10631,7 +10716,7 @@ "bundled": true, "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -10654,14 +10739,14 @@ "bundled": true, "dev": true, "requires": { - "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.2", - "use": "3.1.0" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "debug": { @@ -10677,7 +10762,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -10685,7 +10770,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -10695,9 +10780,9 @@ "bundled": true, "dev": true, "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { @@ -10705,7 +10790,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -10713,7 +10798,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -10721,7 +10806,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -10729,9 +10814,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { @@ -10746,7 +10831,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "source-map": { @@ -10759,11 +10844,11 @@ "bundled": true, "dev": true, "requires": { - "atob": "2.1.1", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-url": { @@ -10776,12 +10861,12 @@ "bundled": true, "dev": true, "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.1" + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" } }, "spdx-correct": { @@ -10789,8 +10874,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -10803,8 +10888,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -10817,7 +10902,7 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "static-extend": { @@ -10825,8 +10910,8 @@ "bundled": true, "dev": true, "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -10834,7 +10919,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -10844,8 +10929,8 @@ "bundled": true, "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "strip-ansi": { @@ -10853,7 +10938,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "strip-bom": { @@ -10861,7 +10946,7 @@ "bundled": true, "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-eof": { @@ -10874,11 +10959,11 @@ "bundled": true, "dev": true, "requires": { - "arrify": "1.0.1", - "micromatch": "3.1.10", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" + "arrify": "^1.0.1", + "micromatch": "^3.1.8", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" } }, "to-object-path": { @@ -10886,7 +10971,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { @@ -10894,10 +10979,10 @@ "bundled": true, "dev": true, "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { @@ -10905,8 +10990,8 @@ "bundled": true, "dev": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } }, "uglify-js": { @@ -10915,9 +11000,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "yargs": { @@ -10926,9 +11011,9 @@ "dev": true, "optional": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" } } @@ -10945,10 +11030,10 @@ "bundled": true, "dev": true, "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" }, "dependencies": { "extend-shallow": { @@ -10956,7 +11041,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { @@ -10964,10 +11049,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" } } } @@ -10977,8 +11062,8 @@ "bundled": true, "dev": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -10986,9 +11071,9 @@ "bundled": true, "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { "isobject": { @@ -11018,7 +11103,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.2" }, "dependencies": { "kind-of": { @@ -11033,8 +11118,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "which": { @@ -11042,7 +11127,7 @@ "bundled": true, "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -11066,8 +11151,8 @@ "bundled": true, "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "ansi-regex": { @@ -11080,7 +11165,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { @@ -11088,9 +11173,9 @@ "bundled": true, "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "strip-ansi": { @@ -11098,7 +11183,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } } } @@ -11113,9 +11198,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, "y18n": { @@ -11133,18 +11218,18 @@ "bundled": true, "dev": true, "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "9.0.2" + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" }, "dependencies": { "camelcase": { @@ -11157,9 +11242,9 @@ "bundled": true, "dev": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } }, "yargs-parser": { @@ -11167,7 +11252,7 @@ "bundled": true, "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } @@ -11177,7 +11262,7 @@ "bundled": true, "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { @@ -11206,9 +11291,9 @@ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { "define-property": { @@ -11217,7 +11302,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -11234,7 +11319,7 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -11251,8 +11336,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "object.pick": { @@ -11261,7 +11346,7 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -11278,8 +11363,8 @@ "integrity": "sha1-yCjw8NxH6fhq+KSXfF1VB2znqR8=", "dev": true, "requires": { - "is-observable": "0.2.0", - "symbol-observable": "1.2.0" + "is-observable": "^0.2.0", + "symbol-observable": "^1.0.4" }, "dependencies": { "is-observable": { @@ -11288,7 +11373,7 @@ "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=", "dev": true, "requires": { - "symbol-observable": "0.2.4" + "symbol-observable": "^0.2.2" }, "dependencies": { "symbol-observable": { @@ -11321,7 +11406,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -11330,7 +11415,7 @@ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "only": { @@ -11345,8 +11430,8 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "option-chain": { @@ -11361,12 +11446,12 @@ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" }, "dependencies": { "wordwrap": { @@ -11389,9 +11474,9 @@ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" } }, "os-tmpdir": { @@ -11406,8 +11491,8 @@ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "p-cancelable": { @@ -11434,7 +11519,7 @@ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -11443,7 +11528,7 @@ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "1.3.0" + "p-limit": "^1.1.0" } }, "p-timeout": { @@ -11452,7 +11537,7 @@ "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", "dev": true, "requires": { - "p-finally": "1.0.0" + "p-finally": "^1.0.0" } }, "p-try": { @@ -11467,10 +11552,10 @@ "integrity": "sha1-eK4ybIngWk2BO2hgGXevBcANKg0=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "lodash.flattendeep": "4.4.0", - "md5-hex": "2.0.0", - "release-zalgo": "1.0.0" + "graceful-fs": "^4.1.11", + "lodash.flattendeep": "^4.4.0", + "md5-hex": "^2.0.0", + "release-zalgo": "^1.0.0" } }, "package-json": { @@ -11479,10 +11564,10 @@ "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "dev": true, "requires": { - "got": "6.7.1", - "registry-auth-token": "3.3.2", - "registry-url": "3.1.0", - "semver": "5.5.0" + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" }, "dependencies": { "got": { @@ -11491,17 +11576,17 @@ "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "requires": { - "create-error-class": "3.0.2", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "is-redirect": "1.0.0", - "is-retry-allowed": "1.1.0", - "is-stream": "1.1.0", - "lowercase-keys": "1.0.1", - "safe-buffer": "5.1.2", - "timed-out": "4.0.1", - "unzip-response": "2.0.1", - "url-parse-lax": "1.0.0" + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" } } } @@ -11512,10 +11597,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" } }, "parse-json": { @@ -11524,7 +11609,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "1.3.2" + "error-ex": "^1.2.0" } }, "parse-ms": { @@ -11604,7 +11689,7 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" }, "dependencies": { "pify": { @@ -11632,11 +11717,11 @@ "integrity": "sha512-HuPxmGxHsEFPWhdkwBs2gIrHhFqktIxMtudISTFN95RQ85ZZAOl8Ki6u3nnN/X8OUaGlIGldk/l8p2IR4/i76w==", "dev": true, "requires": { - "b64": "4.0.0", - "boom": "7.2.0", - "content": "4.0.5", - "hoek": "5.0.3", - "nigel": "3.0.1" + "b64": "4.x.x", + "boom": "7.x.x", + "content": "4.x.x", + "hoek": "5.x.x", + "nigel": "3.x.x" } }, "pidusage": { @@ -11662,7 +11747,7 @@ "integrity": "sha1-0dpn9UglY7t89X8oauKCLs+/NnA=", "dev": true, "requires": { - "pinkie": "1.0.0" + "pinkie": "^1.0.0" } }, "pkg-conf": { @@ -11671,8 +11756,8 @@ "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", "dev": true, "requires": { - "find-up": "2.1.0", - "load-json-file": "4.0.0" + "find-up": "^2.0.0", + "load-json-file": "^4.0.0" }, "dependencies": { "load-json-file": { @@ -11681,10 +11766,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "parse-json": { @@ -11693,8 +11778,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } } } @@ -11705,7 +11790,7 @@ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "2.1.0" + "find-up": "^2.1.0" } }, "plur": { @@ -11714,7 +11799,7 @@ "integrity": "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo=", "dev": true, "requires": { - "irregular-plurals": "1.4.0" + "irregular-plurals": "^1.0.0" } }, "pluralize": { @@ -11729,8 +11814,8 @@ "integrity": "sha512-18VrjJAduIdPv7d9zWsfmKxTj3cQTYC5Pv5gtKxcWujYBpGbV+mhNSPYhlHW5xeWoazYyKfB9FEsPT12r5rY1A==", "dev": true, "requires": { - "hoek": "5.0.3", - "joi": "13.4.0" + "hoek": "5.x.x", + "joi": "13.x.x" } }, "posix-character-classes": { @@ -11745,9 +11830,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" }, "dependencies": { "source-map": { @@ -11764,11 +11849,11 @@ "integrity": "sha512-nDb6a+p2C7Wj8Y2zmFtLpuv+xobXz4+bzT5s7dr0nn71tLozn7nRMQqzwbefzwZN5qOm0N7Cxhw4kXP75xboKA==", "dev": true, "requires": { - "define-properties": "1.1.2", - "empower": "1.3.0", - "power-assert-formatter": "1.4.1", - "universal-deep-strict-equal": "1.2.2", - "xtend": "4.0.1" + "define-properties": "^1.1.2", + "empower": "^1.3.0", + "power-assert-formatter": "^1.4.1", + "universal-deep-strict-equal": "^1.2.1", + "xtend": "^4.0.0" } }, "power-assert-context-formatter": { @@ -11777,8 +11862,8 @@ "integrity": "sha512-HLNEW8Bin+BFCpk/zbyKwkEu9W8/zThIStxGo7weYcFkKgMuGCHUJhvJeBGXDZf0Qm2xis4pbnnciGZiX0EpSg==", "dev": true, "requires": { - "core-js": "2.5.7", - "power-assert-context-traversal": "1.2.0" + "core-js": "^2.0.0", + "power-assert-context-traversal": "^1.2.0" } }, "power-assert-context-reducer-ast": { @@ -11787,11 +11872,11 @@ "integrity": "sha512-EgOxmZ/Lb7tw4EwSKX7ZnfC0P/qRZFEG28dx/690qvhmOJ6hgThYFm5TUWANDLK5NiNKlPBi5WekVGd2+5wPrw==", "dev": true, "requires": { - "acorn": "5.7.1", - "acorn-es7-plugin": "1.1.7", - "core-js": "2.5.7", - "espurify": "1.8.0", - "estraverse": "4.2.0" + "acorn": "^5.0.0", + "acorn-es7-plugin": "^1.0.12", + "core-js": "^2.0.0", + "espurify": "^1.6.0", + "estraverse": "^4.2.0" } }, "power-assert-context-traversal": { @@ -11800,8 +11885,8 @@ "integrity": "sha512-NFoHU6g2umNajiP2l4qb0BRWD773Aw9uWdWYH9EQsVwIZnog5bd2YYLFCVvaxWpwNzWeEfZIon2xtyc63026pQ==", "dev": true, "requires": { - "core-js": "2.5.7", - "estraverse": "4.2.0" + "core-js": "^2.0.0", + "estraverse": "^4.1.0" } }, "power-assert-formatter": { @@ -11810,13 +11895,13 @@ "integrity": "sha1-XcEl7VCj37HdomwZNH879Y7CiEo=", "dev": true, "requires": { - "core-js": "2.5.7", - "power-assert-context-formatter": "1.2.0", - "power-assert-context-reducer-ast": "1.2.0", - "power-assert-renderer-assertion": "1.2.0", - "power-assert-renderer-comparison": "1.2.0", - "power-assert-renderer-diagram": "1.2.0", - "power-assert-renderer-file": "1.2.0" + "core-js": "^2.0.0", + "power-assert-context-formatter": "^1.0.7", + "power-assert-context-reducer-ast": "^1.0.7", + "power-assert-renderer-assertion": "^1.0.7", + "power-assert-renderer-comparison": "^1.0.7", + "power-assert-renderer-diagram": "^1.0.7", + "power-assert-renderer-file": "^1.0.7" } }, "power-assert-renderer-assertion": { @@ -11825,8 +11910,8 @@ "integrity": "sha512-3F7Q1ZLmV2ZCQv7aV7NJLNK9G7QsostrhOU7U0RhEQS/0vhEqrRg2jEJl1jtUL4ZyL2dXUlaaqrmPv5r9kRvIg==", "dev": true, "requires": { - "power-assert-renderer-base": "1.1.1", - "power-assert-util-string-width": "1.2.0" + "power-assert-renderer-base": "^1.1.1", + "power-assert-util-string-width": "^1.2.0" } }, "power-assert-renderer-base": { @@ -11841,11 +11926,11 @@ "integrity": "sha512-7c3RKPDBKK4E3JqdPtYRE9cM8AyX4LC4yfTvvTYyx8zSqmT5kJnXwzR0yWQLOavACllZfwrAGQzFiXPc5sWa+g==", "dev": true, "requires": { - "core-js": "2.5.7", - "diff-match-patch": "1.0.1", - "power-assert-renderer-base": "1.1.1", - "stringifier": "1.3.0", - "type-name": "2.0.2" + "core-js": "^2.0.0", + "diff-match-patch": "^1.0.0", + "power-assert-renderer-base": "^1.1.1", + "stringifier": "^1.3.0", + "type-name": "^2.0.1" } }, "power-assert-renderer-diagram": { @@ -11854,10 +11939,10 @@ "integrity": "sha512-JZ6PC+DJPQqfU6dwSmpcoD7gNnb/5U77bU5KgNwPPa+i1Pxiz6UuDeM3EUBlhZ1HvH9tMjI60anqVyi5l2oNdg==", "dev": true, "requires": { - "core-js": "2.5.7", - "power-assert-renderer-base": "1.1.1", - "power-assert-util-string-width": "1.2.0", - "stringifier": "1.3.0" + "core-js": "^2.0.0", + "power-assert-renderer-base": "^1.1.1", + "power-assert-util-string-width": "^1.2.0", + "stringifier": "^1.3.0" } }, "power-assert-renderer-file": { @@ -11866,7 +11951,7 @@ "integrity": "sha512-/oaVrRbeOtGoyyd7e4IdLP/jIIUFJdqJtsYzP9/88R39CMnfF/S/rUc8ZQalENfUfQ/wQHu+XZYRMaCEZmEesg==", "dev": true, "requires": { - "power-assert-renderer-base": "1.1.1" + "power-assert-renderer-base": "^1.1.1" } }, "power-assert-util-string-width": { @@ -11875,7 +11960,7 @@ "integrity": "sha512-lX90G0igAW0iyORTILZ/QjZWsa1MZ6VVY3L0K86e2eKun3S4LKPH4xZIl8fdeMYLfOjkaszbNSzf1uugLeAm2A==", "dev": true, "requires": { - "eastasianwidth": "0.2.0" + "eastasianwidth": "^0.2.0" } }, "prelude-ls": { @@ -11897,9 +11982,9 @@ "dev": true }, "prettier": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.13.5.tgz", - "integrity": "sha512-4M90mfvLz6yRf2Dhzd+xPIE6b4xkI8nHMJhsSm9IlfG17g6wujrrm7+H1X8x52tC4cSNm6HmuhCUSNe6Hd5wfw==", + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.13.6.tgz", + "integrity": "sha512-p5eqCNiohWZN++7aJXUVj0JgLqHCPLf9GLIcLBHGNWs4Y9FJOPs6+KNO2WT0udJIQJTbeZFrJkjzjcb8fkAYYQ==", "dev": true }, "pretty-ms": { @@ -11908,7 +11993,7 @@ "integrity": "sha512-ZypexbfVUGTFxb0v+m1bUyy92DHe5SyYlnyY0msyms5zd3RwyvNgyxZZsXXgoyzlxjx5MiqtXUdhUfvQbe0A2Q==", "dev": true, "requires": { - "parse-ms": "1.0.1" + "parse-ms": "^1.0.0" }, "dependencies": { "parse-ms": { @@ -11948,7 +12033,7 @@ "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", "dev": true, "requires": { - "forwarded": "0.1.2", + "forwarded": "~0.1.2", "ipaddr.js": "1.6.0" } }, @@ -11958,9 +12043,9 @@ "integrity": "sha512-fQr3VQrbdzHrdaDn3XuisVoJlJNDJizHAvUXw9IuXRR8BpV2x0N7LsCxrpJkeKfPbNjiNU/V5vc008cI0TmzzQ==", "dev": true, "requires": { - "fill-keys": "1.0.2", - "module-not-found-error": "1.0.1", - "resolve": "1.5.0" + "fill-keys": "^1.0.2", + "module-not-found-error": "^1.0.0", + "resolve": "~1.5.0" }, "dependencies": { "resolve": { @@ -11969,7 +12054,7 @@ "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } } } @@ -11995,9 +12080,9 @@ "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", "dev": true, "requires": { - "decode-uri-component": "0.2.0", - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" } }, "quick-lru": { @@ -12012,9 +12097,9 @@ "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", "dev": true, "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.1" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { "is-number": { @@ -12055,10 +12140,10 @@ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "requires": { - "deep-extend": "0.6.0", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -12075,9 +12160,9 @@ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" } }, "read-pkg-up": { @@ -12086,8 +12171,8 @@ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" } }, "readable-stream": { @@ -12095,13 +12180,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "readdirp": { @@ -12110,10 +12195,10 @@ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.6", - "set-immediate-shim": "1.0.1" + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" } }, "redent": { @@ -12122,8 +12207,8 @@ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" }, "dependencies": { "indent-string": { @@ -12132,7 +12217,7 @@ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } } } @@ -12155,7 +12240,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regex-not": { @@ -12164,8 +12249,17 @@ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp.prototype.flags": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz", + "integrity": "sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2" } }, "regexpp": { @@ -12180,9 +12274,9 @@ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "dev": true, "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "registry-auth-token": { @@ -12191,8 +12285,8 @@ "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", "dev": true, "requires": { - "rc": "1.2.8", - "safe-buffer": "5.1.2" + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" } }, "registry-url": { @@ -12201,7 +12295,7 @@ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "dev": true, "requires": { - "rc": "1.2.8" + "rc": "^1.0.1" } }, "regjsgen": { @@ -12216,7 +12310,7 @@ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" } }, "release-zalgo": { @@ -12225,7 +12319,7 @@ "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", "dev": true, "requires": { - "es6-error": "4.1.1" + "es6-error": "^4.0.1" } }, "remove-trailing-separator": { @@ -12252,7 +12346,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "request": { @@ -12260,26 +12354,26 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.7.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.0.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.18", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.6.0", - "uuid": "3.2.1" + "aws-sign2": "~0.7.0", + "aws4": "^1.6.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.1", + "forever-agent": "~0.6.1", + "form-data": "~2.3.1", + "har-validator": "~5.0.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.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" } }, "require-directory": { @@ -12306,8 +12400,8 @@ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "dev": true, "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" }, "dependencies": { "resolve-from": { @@ -12324,7 +12418,7 @@ "integrity": "sha1-aUPDUwxNmn5G8c3dUcFY/GcM294=", "dev": true, "requires": { - "underscore": "1.6.0" + "underscore": "~1.6.0" }, "dependencies": { "underscore": { @@ -12347,7 +12441,7 @@ "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", "dev": true, "requires": { - "resolve-from": "3.0.0" + "resolve-from": "^3.0.0" } }, "resolve-from": { @@ -12368,7 +12462,7 @@ "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", "dev": true, "requires": { - "lowercase-keys": "1.0.1" + "lowercase-keys": "^1.0.0" } }, "restify": { @@ -12377,28 +12471,28 @@ "integrity": "sha512-xygVfQn/FiyzSPNIiOlzos6+RVcmTTK/bN0/m4z6vQwUY1yXntAsXM8ckq6hMxYfkhZfbPMM5hvBf75B8zLE1g==", "dev": true, "requires": { - "assert-plus": "1.0.0", - "bunyan": "1.8.12", - "csv": "1.2.1", - "dtrace-provider": "0.8.7", - "escape-regexp-component": "1.0.2", - "ewma": "2.0.1", - "find-my-way": "1.14.0", - "formidable": "1.2.1", - "http-signature": "1.2.0", - "lodash": "4.17.10", - "lru-cache": "4.1.3", - "mime": "1.6.0", - "negotiator": "0.6.1", - "once": "1.4.0", - "pidusage": "1.2.0", - "qs": "6.5.2", - "restify-errors": "5.0.0", - "semver": "5.5.0", - "spdy": "3.4.7", - "uuid": "3.2.1", - "vasync": "1.6.4", - "verror": "1.10.0" + "assert-plus": "^1.0.0", + "bunyan": "^1.8.12", + "csv": "^1.1.1", + "dtrace-provider": "^0.8.1", + "escape-regexp-component": "^1.0.2", + "ewma": "^2.0.1", + "find-my-way": "^1.13.0", + "formidable": "^1.2.1", + "http-signature": "^1.2.0", + "lodash": "^4.17.10", + "lru-cache": "^4.1.3", + "mime": "^1.5.0", + "negotiator": "^0.6.1", + "once": "^1.4.0", + "pidusage": "^1.2.0", + "qs": "^6.5.2", + "restify-errors": "^5.0.0", + "semver": "^5.4.1", + "spdy": "^3.4.7", + "uuid": "^3.1.0", + "vasync": "^1.6.4", + "verror": "^1.10.0" }, "dependencies": { "lodash": { @@ -12421,10 +12515,10 @@ "integrity": "sha512-+vby9Kxf7qlzvbZSTIEGkIixkeHG+pVCl34dk6eKnL+ua4pCezpdLT/1/eabzPZb65ADrgoc04jeWrrF1E1pvQ==", "dev": true, "requires": { - "assert-plus": "1.0.0", - "lodash": "4.17.5", - "safe-json-stringify": "1.2.0", - "verror": "1.10.0" + "assert-plus": "^1.0.0", + "lodash": "^4.2.1", + "safe-json-stringify": "^1.0.3", + "verror": "^1.8.1" } }, "restore-cursor": { @@ -12433,8 +12527,8 @@ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "ret": { @@ -12453,8 +12547,8 @@ "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-3.3.2.tgz", "integrity": "sha512-WIiGp37XXDC6e7ku3LFoi7LCL/Gs9luGeeqvbPRb+Zl6OQMw4RCRfSaW+aLfE6lhz1R941UavE6Svl3Dm5xGIQ==", "requires": { - "request": "2.87.0", - "through2": "2.0.3" + "request": "^2.81.0", + "through2": "^2.0.0" } }, "right-align": { @@ -12464,7 +12558,7 @@ "dev": true, "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { @@ -12473,7 +12567,7 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "run-async": { @@ -12482,31 +12576,24 @@ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "is-promise": "2.1.0" - } - }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "dev": true - }, - "rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "dev": true, - "requires": { - "rx-lite": "4.0.8" + "is-promise": "^2.1.0" } }, "rxjs": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.1.tgz", - "integrity": "sha512-OwMxHxmnmHTUpgO+V7dZChf3Tixf4ih95cmXjzzadULziVl/FKhHScGLj4goEw9weePVOH2Q0+GcCBUhKCZc/g==", + "version": "5.5.11", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.11.tgz", + "integrity": "sha512-3bjO7UwWfA2CV7lmwYMBzj4fQ6Cq+ftHc2MvUe+WMS7wcdJ1LosDWmdjPQanYp2dBRj572p7PeU81JUxHKOcBA==", "dev": true, "requires": { - "tslib": "1.9.3" + "symbol-observable": "1.0.1" + }, + "dependencies": { + "symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", + "dev": true + } } }, "safe-buffer": { @@ -12527,7 +12614,7 @@ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "safer-buffer": { @@ -12547,16 +12634,16 @@ "integrity": "sha512-52ThA+Z7h6BnvpSVbURwChl10XZrps5q7ytjTwWcIe9bmJwnVP6cpEVK2NvDOUhGupoqAvNbUz3cpnJDp4+/pg==", "dev": true, "requires": { - "chalk": "2.4.1", - "htmlparser2": "3.9.2", - "lodash.clonedeep": "4.5.0", - "lodash.escaperegexp": "4.1.2", - "lodash.isplainobject": "4.0.6", - "lodash.isstring": "4.0.1", - "lodash.mergewith": "4.6.1", - "postcss": "6.0.23", - "srcset": "1.0.0", - "xtend": "4.0.1" + "chalk": "^2.3.0", + "htmlparser2": "^3.9.0", + "lodash.clonedeep": "^4.5.0", + "lodash.escaperegexp": "^4.1.2", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.mergewith": "^4.6.0", + "postcss": "^6.0.14", + "srcset": "^1.0.0", + "xtend": "^4.0.0" } }, "select-hose": { @@ -12577,7 +12664,7 @@ "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "dev": true, "requires": { - "semver": "5.5.0" + "semver": "^5.0.3" } }, "semver-store": { @@ -12593,18 +12680,18 @@ "dev": true, "requires": { "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.6.3", + "http-errors": "~1.6.2", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.4.0" + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" }, "dependencies": { "debug": { @@ -12642,9 +12729,9 @@ "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "dev": true, "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", "send": "0.16.2" } }, @@ -12666,10 +12753,10 @@ "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -12678,7 +12765,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -12695,7 +12782,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -12710,8 +12797,8 @@ "integrity": "sha1-x+dFXRHWD2ts08Q+FaO0McF+VWY=", "dev": true, "requires": { - "hoek": "5.0.3", - "joi": "13.4.0" + "hoek": "5.x.x", + "joi": "13.x.x" } }, "signal-exit": { @@ -12726,13 +12813,13 @@ "integrity": "sha512-pmf05hFgEZUS52AGJcsVjOjqAyJW2yo14cOwVYvzCyw7+inv06YXkLyW75WG6X6p951lzkoKh51L2sNbR9CDvw==", "dev": true, "requires": { - "@sinonjs/formatio": "2.0.0", - "diff": "3.5.0", - "lodash.get": "4.4.2", - "lolex": "2.7.0", - "nise": "1.4.2", - "supports-color": "5.4.0", - "type-detect": "4.0.8" + "@sinonjs/formatio": "^2.0.0", + "diff": "^3.1.0", + "lodash.get": "^4.4.2", + "lolex": "^2.2.0", + "nise": "^1.2.0", + "supports-color": "^5.1.0", + "type-detect": "^4.0.5" } }, "slash": { @@ -12747,7 +12834,7 @@ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0" + "is-fullwidth-code-point": "^2.0.0" } }, "slide": { @@ -12762,14 +12849,14 @@ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { - "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.2", - "use": "3.1.0" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "debug": { @@ -12787,7 +12874,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -12796,7 +12883,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -12807,9 +12894,9 @@ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { @@ -12818,7 +12905,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -12827,7 +12914,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -12836,7 +12923,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -12845,9 +12932,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -12870,7 +12957,7 @@ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "sort-keys": { @@ -12879,7 +12966,7 @@ "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", "dev": true, "requires": { - "is-plain-obj": "1.1.0" + "is-plain-obj": "^1.0.0" } }, "source-map": { @@ -12894,11 +12981,11 @@ "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "dev": true, "requires": { - "atob": "2.1.1", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -12907,8 +12994,8 @@ "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", "dev": true, "requires": { - "buffer-from": "1.1.0", - "source-map": "0.6.1" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" }, "dependencies": { "source-map": { @@ -12931,9 +13018,9 @@ "integrity": "sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==", "dev": true, "requires": { - "array-find-index": "1.0.2", - "spdx-expression-parse": "3.0.0", - "spdx-ranges": "2.0.0" + "array-find-index": "^1.0.2", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" } }, "spdx-correct": { @@ -12942,8 +13029,8 @@ "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "dev": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -12958,8 +13045,8 @@ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -12980,9 +13067,9 @@ "integrity": "sha512-OcARj6U1OuVv98SVrRqgrR30sVocONtoPpnX8Xz4vXNrFVedqtbgkA+0KmQoXIQ2xjfltPPRVIMeNzKEFLWWKQ==", "dev": true, "requires": { - "spdx-compare": "1.0.0", - "spdx-expression-parse": "3.0.0", - "spdx-ranges": "2.0.0" + "spdx-compare": "^1.0.0", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" } }, "spdy": { @@ -12991,12 +13078,12 @@ "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", "dev": true, "requires": { - "debug": "2.6.9", - "handle-thing": "1.2.5", - "http-deceiver": "1.2.7", - "safe-buffer": "5.1.2", - "select-hose": "2.0.0", - "spdy-transport": "2.1.0" + "debug": "^2.6.8", + "handle-thing": "^1.2.5", + "http-deceiver": "^1.2.7", + "safe-buffer": "^5.0.1", + "select-hose": "^2.0.0", + "spdy-transport": "^2.0.18" }, "dependencies": { "debug": { @@ -13016,13 +13103,13 @@ "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", "dev": true, "requires": { - "debug": "2.6.9", - "detect-node": "2.0.3", - "hpack.js": "2.1.6", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "safe-buffer": "5.1.2", - "wbuf": "1.7.3" + "debug": "^2.6.8", + "detect-node": "^2.0.3", + "hpack.js": "^2.1.6", + "obuf": "^1.1.1", + "readable-stream": "^2.2.9", + "safe-buffer": "^5.0.1", + "wbuf": "^1.7.2" }, "dependencies": { "debug": { @@ -13041,7 +13128,7 @@ "resolved": "https://registry.npmjs.org/split-array-stream/-/split-array-stream-2.0.0.tgz", "integrity": "sha512-hmMswlVY91WvGMxs0k8MRgq8zb2mSen4FmDNc5AFiTWtrBpdZN6nwD6kROVe4vNL+ywrvbCKsWVCnEd4riELIg==", "requires": { - "is-stream-ended": "0.1.4" + "is-stream-ended": "^0.1.4" } }, "split-string": { @@ -13050,7 +13137,7 @@ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "sprintf-js": { @@ -13065,8 +13152,8 @@ "integrity": "sha1-pWad4StC87HV6D7QPHEEb8SPQe8=", "dev": true, "requires": { - "array-uniq": "1.0.3", - "number-is-nan": "1.0.1" + "array-uniq": "^1.0.2", + "number-is-nan": "^1.0.0" } }, "sshpk": { @@ -13074,15 +13161,15 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "tweetnacl": "0.14.5" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, "stack-utils": { @@ -13097,12 +13184,12 @@ "integrity": "sha512-jR45n5ZMAkasw0xoE9j9TuLmJv4Sa3AkXe+6yIFT6a07kXYHgSbuD2OVGECdZGFxTmvNqLwL1iRIgvq6O6rq+A==", "dev": true, "requires": { - "boom": "7.2.0", - "bounce": "1.2.0", - "cryptiles": "4.1.1", - "hoek": "5.0.3", - "iron": "5.0.4", - "joi": "13.4.0" + "boom": "7.x.x", + "bounce": "1.x.x", + "cryptiles": "4.x.x", + "hoek": "5.x.x", + "iron": "5.x.x", + "joi": "13.x.x" } }, "static-extend": { @@ -13111,8 +13198,8 @@ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -13121,7 +13208,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -13137,7 +13224,7 @@ "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.4.tgz", "integrity": "sha512-D243NJaYs/xBN2QnoiMDY7IesJFIK7gEhnvAYqJa5JvDdnh2dC4qDBwlCf0ohPpX2QRlA/4gnbnPd3rs3KxVcA==", "requires": { - "stubs": "3.0.0" + "stubs": "^3.0.0" } }, "stream-shift": { @@ -13169,8 +13256,21 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "string.prototype.matchall": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-2.0.0.tgz", + "integrity": "sha512-WoZ+B2ypng1dp4iFLF2kmZlwwlE19gmjgKuhL1FJfDgCREWb3ye3SDVHSzLH6bxfnvYmkCxbzkmWcQZHA4P//Q==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.10.0", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "regexp.prototype.flags": "^1.2.0" } }, "string_decoder": { @@ -13178,7 +13278,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "stringifier": { @@ -13187,9 +13287,9 @@ "integrity": "sha1-3vGDQvaTPbDy2/yaoCF1tEjBeVk=", "dev": true, "requires": { - "core-js": "2.5.7", - "traverse": "0.6.6", - "type-name": "2.0.2" + "core-js": "^2.0.0", + "traverse": "^0.6.6", + "type-name": "^2.0.1" } }, "strip-ansi": { @@ -13198,7 +13298,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" }, "dependencies": { "ansi-regex": { @@ -13221,7 +13321,7 @@ "integrity": "sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.1" } }, "strip-eof": { @@ -13236,7 +13336,7 @@ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, "requires": { - "get-stdin": "4.0.1" + "get-stdin": "^4.0.1" } }, "strip-json-comments": { @@ -13256,11 +13356,11 @@ "integrity": "sha512-IcJUvRjeR+NB437Iq+LORFNJW4L6Knqkj3oQrBrkdhIaS2VKJvx/9aYEq7vi+PEx5/OuehOL/40SkSZotLi/MA==", "dev": true, "requires": { - "boom": "7.2.0", - "content": "4.0.5", - "hoek": "5.0.3", - "pez": "4.0.2", - "wreck": "14.0.2" + "boom": "7.x.x", + "content": "4.x.x", + "hoek": "5.x.x", + "pez": "4.x.x", + "wreck": "14.x.x" } }, "superagent": { @@ -13269,16 +13369,16 @@ "integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==", "dev": true, "requires": { - "component-emitter": "1.2.1", - "cookiejar": "2.1.2", - "debug": "3.1.0", - "extend": "3.0.1", - "form-data": "2.3.2", - "formidable": "1.2.1", - "methods": "1.1.2", - "mime": "1.6.0", - "qs": "6.5.2", - "readable-stream": "2.3.6" + "component-emitter": "^1.2.0", + "cookiejar": "^2.1.0", + "debug": "^3.1.0", + "extend": "^3.0.0", + "form-data": "^2.3.1", + "formidable": "^1.2.0", + "methods": "^1.1.1", + "mime": "^1.4.1", + "qs": "^6.5.1", + "readable-stream": "^2.3.5" }, "dependencies": { "mime": { @@ -13295,11 +13395,11 @@ "integrity": "sha512-HZJ3geIMPgVwKk2VsmO5YHqnnJYl6bV5A9JW2uzqV43WmpgliNEYbuvukfor7URpaqpxuw3CfZ3ONdVbZjCgIA==", "dev": true, "requires": { - "arrify": "1.0.1", - "indent-string": "3.2.0", - "js-yaml": "3.12.0", - "serialize-error": "2.1.0", - "strip-ansi": "4.0.0" + "arrify": "^1.0.1", + "indent-string": "^3.2.0", + "js-yaml": "^3.10.0", + "serialize-error": "^2.1.0", + "strip-ansi": "^4.0.0" } }, "supertest": { @@ -13308,8 +13408,8 @@ "integrity": "sha1-jUu2j9GDDuBwM7HFpamkAhyWUpY=", "dev": true, "requires": { - "methods": "1.1.2", - "superagent": "3.8.3" + "methods": "~1.1.2", + "superagent": "^3.0.0" } }, "supports-color": { @@ -13318,7 +13418,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" }, "dependencies": { "has-flag": { @@ -13336,17 +13436,43 @@ "dev": true }, "table": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", - "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.3.tgz", + "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", "dev": true, "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.4.1", - "lodash": "4.17.5", + "ajv": "^6.0.1", + "ajv-keywords": "^3.0.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "string-width": "^2.1.1" + }, + "dependencies": { + "ajv": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.1.tgz", + "integrity": "sha512-pgZos1vgOHDiC7gKNbZW8eKvCnNXARv2oqrGQT7Hzbq5Azp7aZG6DJzADnkuSq7RH6qkXp4J/m68yPX/2uBHyQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.1" + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + } } }, "taffydb": { @@ -13367,7 +13493,7 @@ "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "dev": true, "requires": { - "execa": "0.7.0" + "execa": "^0.7.0" } }, "text-encoding": { @@ -13393,8 +13519,8 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" } }, "time-zone": { @@ -13415,7 +13541,7 @@ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-fast-properties": { @@ -13430,7 +13556,7 @@ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { @@ -13439,10 +13565,10 @@ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { @@ -13451,8 +13577,8 @@ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "dependencies": { "is-number": { @@ -13461,7 +13587,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } @@ -13472,7 +13598,7 @@ "integrity": "sha512-Tlu1fGlR90iCdIPURqPiufqAlCZYzLjHYVVbcFWDMcX7+tK8hdZWAfsMrD/pBul9jqHHwFjNdf1WaxA9vTRRhw==", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "tough-cookie": { @@ -13480,7 +13606,7 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" } }, "traverse": { @@ -13519,18 +13645,18 @@ "integrity": "sha1-EeJrzLiK+gLdDZlWyuPUVAtfVMM=", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "builtin-modules": "1.1.1", - "chalk": "2.4.1", - "commander": "2.15.1", - "diff": "3.5.0", - "glob": "7.1.2", - "js-yaml": "3.12.0", - "minimatch": "3.0.4", - "resolve": "1.8.1", - "semver": "5.5.0", - "tslib": "1.9.3", - "tsutils": "2.27.1" + "babel-code-frame": "^6.22.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^3.2.0", + "glob": "^7.1.1", + "js-yaml": "^3.7.0", + "minimatch": "^3.0.4", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.12.1" }, "dependencies": { "resolve": { @@ -13539,7 +13665,7 @@ "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } } } @@ -13550,7 +13676,7 @@ "integrity": "sha512-AE/7uzp32MmaHvNNFES85hhUDHFdFZp6OAiZcd6y4ZKKIg6orJTm8keYWBhIhrJQH3a4LzNKat7ZPXZt5aTf6w==", "dev": true, "requires": { - "tslib": "1.9.3" + "tslib": "^1.8.1" } }, "tunnel-agent": { @@ -13558,7 +13684,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -13573,7 +13699,7 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-detect": { @@ -13589,7 +13715,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.18" + "mime-types": "~2.1.18" } }, "type-name": { @@ -13598,12 +13724,6 @@ "integrity": "sha1-7+fUEj2KxSr/9/QMfk3sUmYAj7Q=", "dev": true }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, "typescript": { "version": "2.9.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", @@ -13617,9 +13737,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "camelcase": { @@ -13636,9 +13756,9 @@ "dev": true, "optional": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" } } @@ -13686,10 +13806,10 @@ "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "dev": true, "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" }, "dependencies": { "extend-shallow": { @@ -13698,7 +13818,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { @@ -13707,10 +13827,10 @@ "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" } } } @@ -13721,7 +13841,7 @@ "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", "dev": true, "requires": { - "crypto-random-string": "1.0.0" + "crypto-random-string": "^1.0.0" } }, "unique-temp-dir": { @@ -13730,8 +13850,8 @@ "integrity": "sha1-bc6VsmgcoAPuv7MEpBX5y6vMU4U=", "dev": true, "requires": { - "mkdirp": "0.5.1", - "os-tmpdir": "1.0.2", + "mkdirp": "^0.5.1", + "os-tmpdir": "^1.0.1", "uid2": "0.0.3" } }, @@ -13741,9 +13861,9 @@ "integrity": "sha1-DaSsL3PP95JMgfpN4BjKViyisKc=", "dev": true, "requires": { - "array-filter": "1.0.0", + "array-filter": "^1.0.0", "indexof": "0.0.1", - "object-keys": "1.0.12" + "object-keys": "^1.0.0" } }, "universalify": { @@ -13764,8 +13884,8 @@ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -13774,9 +13894,9 @@ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { "isobject": { @@ -13816,16 +13936,33 @@ "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", "dev": true, "requires": { - "boxen": "1.3.0", - "chalk": "2.4.1", - "configstore": "3.1.2", - "import-lazy": "2.1.0", - "is-ci": "1.1.0", - "is-installed-globally": "0.1.0", - "is-npm": "1.0.0", - "latest-version": "3.1.0", - "semver-diff": "2.1.0", - "xdg-basedir": "3.0.0" + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + } } }, "urix": { @@ -13840,7 +13977,7 @@ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "dev": true, "requires": { - "prepend-http": "1.0.4" + "prepend-http": "^1.0.1" } }, "url-to-options": { @@ -13861,7 +13998,7 @@ "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.2" }, "dependencies": { "kind-of": { @@ -13884,9 +14021,9 @@ "dev": true }, "uuid": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", - "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==" + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.0.tgz", + "integrity": "sha512-ijO9N2xY/YaOqQ5yz5c4sy2ZjWmA6AR6zASb/gdpeKZ8+948CxwfMW9RrKVk5may6ev8c0/Xguu32e2Llelpqw==" }, "validate-npm-package-license": { "version": "3.0.3", @@ -13894,8 +14031,8 @@ "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "dev": true, "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "validate-npm-package-name": { @@ -13904,7 +14041,7 @@ "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "dev": true, "requires": { - "builtins": "1.0.3" + "builtins": "^1.0.3" } }, "vary": { @@ -13944,9 +14081,9 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" } }, "vise": { @@ -13955,7 +14092,7 @@ "integrity": "sha512-kBFZLmiL1Vm3rHXphkhvvAcsjgeQXRrOFCbJb0I50YZZP4HGRNH+xGzK3matIMcpbsfr3I02u9odj4oCD0TWgA==", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "wbuf": { @@ -13964,7 +14101,7 @@ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, "requires": { - "minimalistic-assert": "1.0.1" + "minimalistic-assert": "^1.0.0" } }, "well-known-symbols": { @@ -13979,7 +14116,7 @@ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -13994,7 +14131,7 @@ "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", "dev": true, "requires": { - "string-width": "2.1.1" + "string-width": "^2.1.1" } }, "window-size": { @@ -14016,8 +14153,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -14026,7 +14163,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { @@ -14035,9 +14172,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "strip-ansi": { @@ -14046,7 +14183,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } } } @@ -14062,8 +14199,8 @@ "integrity": "sha512-QCm3omWNJUseqrSzwX2QZi1rBbmCfbFHJAXputLLyZ37VSiFnSYQB0ms/mPnSvrlIu7GVm89Y/gBNhSY26uVIQ==", "dev": true, "requires": { - "boom": "7.2.0", - "hoek": "5.0.3" + "boom": "7.x.x", + "hoek": "5.x.x" } }, "write": { @@ -14072,7 +14209,7 @@ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "write-file-atomic": { @@ -14081,9 +14218,9 @@ "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" } }, "write-json-file": { @@ -14092,12 +14229,12 @@ "integrity": "sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=", "dev": true, "requires": { - "detect-indent": "5.0.0", - "graceful-fs": "4.1.11", - "make-dir": "1.3.0", - "pify": "3.0.0", - "sort-keys": "2.0.0", - "write-file-atomic": "2.3.0" + "detect-indent": "^5.0.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "pify": "^3.0.0", + "sort-keys": "^2.0.0", + "write-file-atomic": "^2.0.0" }, "dependencies": { "detect-indent": { @@ -14114,8 +14251,8 @@ "integrity": "sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw==", "dev": true, "requires": { - "sort-keys": "2.0.0", - "write-json-file": "2.3.0" + "sort-keys": "^2.0.0", + "write-json-file": "^2.2.0" } }, "xdg-basedir": { @@ -14152,18 +14289,18 @@ "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", "dev": true, "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "9.0.2" + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" }, "dependencies": { "cliui": { @@ -14172,9 +14309,9 @@ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } } } @@ -14185,7 +14322,7 @@ "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { From a3958e619ca7cd7ccb2288f9ef270f7c8fbaa606 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Mon, 2 Jul 2018 17:41:33 -0700 Subject: [PATCH 114/527] chore(deps): lock file maintenance (#156) --- handwritten/error-reporting/package-lock.json | 113 ++++++++++-------- 1 file changed, 60 insertions(+), 53 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index c56360fdfa5..755696b7c07 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -214,9 +214,9 @@ } }, "@google-cloud/common": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.20.1.tgz", - "integrity": "sha512-LJB7CoNXEXY0mDWtF8E2cl3Y0kuMQ3wjH9Xr+Y7vH5gHgN82dDh1BMUOizRf9oXQFDWUgGERD5SdfBcjUhHmwA==", + "version": "0.20.3", + "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.20.3.tgz", + "integrity": "sha512-jt8/R4EqDTQccv5WA9AEaS65llM5+mlxsuWu57G5Os8HTIpgPbcsOVMUeIvmTrBuPUYSoRIMW8d/pvv/95n0+g==", "requires": { "@types/duplexify": "^3.5.0", "@types/request": "^2.47.0", @@ -229,7 +229,7 @@ "is": "^3.2.1", "pify": "^3.0.0", "request": "^2.87.0", - "retry-request": "^3.3.1", + "retry-request": "^4.0.0", "split-array-stream": "^2.0.0", "stream-events": "^1.0.4", "through2": "^2.0.3" @@ -2070,9 +2070,9 @@ } }, "@types/hapi": { - "version": "17.0.12", - "resolved": "https://registry.npmjs.org/@types/hapi/-/hapi-17.0.12.tgz", - "integrity": "sha512-OdCd3r7IVLM894EGA6jrrxJpbY7r3EG+jJBGveGshMxwxQE58mL7NdRcr4hmdCzsgUl3aVtZkSK4GpAf8C9kMw==", + "version": "17.0.14", + "resolved": "https://registry.npmjs.org/@types/hapi/-/hapi-17.0.14.tgz", + "integrity": "sha512-eOoAlOlTu75k0KH1LHqWQKFHBA6tFbeOpUiDSzNrG/QGDVT2weUHmDKOaePzsvPpMZN3pCg/P5MZwAkFykfg/w==", "dev": true, "requires": { "@types/boom": "*", @@ -2254,9 +2254,9 @@ "dev": true }, "@types/mocha": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.3.tgz", - "integrity": "sha512-C1wVVr7xhKu6c3Mb27dFzNYR05qvHwgtpN+JOYTGc1pKA7dCEDDYpscn7kul+bCUwa3NoGDbzI1pdznSOa397w==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.4.tgz", + "integrity": "sha512-XMHApnKWI0jvXU5gLcSTsRjJBpSzP0BG+2oGv98JFyS4a5R0tRy0oshHBRndb3BuHb9AwDKaUL8Ja7GfUvsG4g==", "dev": true }, "@types/ncp": { @@ -2269,18 +2269,18 @@ } }, "@types/nock": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@types/nock/-/nock-9.1.3.tgz", - "integrity": "sha512-S8rJ+SaW82ICX87pZP62UcMifrMfjEdqNzSp+llx4YcvKw6bO650Ye6HwTqER1Dar3S40GIZECQisOrAICDCjA==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@types/nock/-/nock-9.3.0.tgz", + "integrity": "sha512-ZHf/X8rTQ5Tb1rHjxIJYqm55uO265agE3G7NoSXVa2ep+EcJXgB2fsme+zBvK7MhrxTwkC/xkB6THyv50u0MGw==", "dev": true, "requires": { "@types/node": "*" } }, "@types/node": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.0.tgz", - "integrity": "sha512-baXPuqA7EVcBUpA5so2K26DTzk7NCWBc9xrPMu9PbUMwgusJRm9zJBPhiDmJVEcnTQ3aOxUZeuFHpd9qMYDNRg==" + "version": "10.5.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.1.tgz", + "integrity": "sha512-AFLl1IALIuyt6oK4AYZsgWVJ/5rnyzQWud7IebaZWWV3YmgtPZkQmYio9R5Ze/2pdd7XfqF5bP+hWS11mAKoOQ==" }, "@types/once": { "version": "1.4.0", @@ -2324,9 +2324,9 @@ } }, "@types/restify": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/@types/restify/-/restify-7.2.1.tgz", - "integrity": "sha512-CWIC2i7TCDmUHCuGjTcuuYKQeAkV+sqk6uV36qNVqaGzygT9ZsGrwrJ0He/cmwyRJuSKO34NTivRlP4DijvoaA==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@types/restify/-/restify-7.2.2.tgz", + "integrity": "sha512-HbRJpI9ThZOL3EQTrfDF9jY844yiI57GM39raoKtmdeRNG2eLuxS+OTdnzpEOHMZ6IhsOin5sf4r9DI+BCRkpw==", "dev": true, "requires": { "@types/bunyan": "*", @@ -3336,9 +3336,9 @@ } }, "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "optional": true, "requires": { "tweetnacl": "^0.14.3" @@ -3972,9 +3972,9 @@ } }, "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz", + "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==", "dev": true }, "common-path-prefix": { @@ -4300,9 +4300,9 @@ "dev": true }, "yargs-parser": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.0.0.tgz", - "integrity": "sha512-+DHejWujTVYeMHLff8U96rLc4uE4Emncoftvn5AjhB1Jw1pWxLzgBUT/WYbPrHmy6YPEBTZQx5myHhVcuuu64g==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", + "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", "dev": true, "requires": { "camelcase": "^4.1.0" @@ -5090,9 +5090,9 @@ }, "dependencies": { "ajv": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.1.tgz", - "integrity": "sha512-pgZos1vgOHDiC7gKNbZW8eKvCnNXARv2oqrGQT7Hzbq5Azp7aZG6DJzADnkuSq7RH6qkXp4J/m68yPX/2uBHyQ==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz", + "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", "dev": true, "requires": { "fast-deep-equal": "^2.0.1", @@ -6033,9 +6033,9 @@ } }, "find-my-way": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-1.14.0.tgz", - "integrity": "sha512-dYVjhSI/7WwM2tPXIpBp4YwPFpFEJOpNCPCTCq2vca/0t0OfqDOdynsWnMizanJ4tvmBpQbEek9ZKGmf24H3Ig==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-1.15.0.tgz", + "integrity": "sha512-SaCxI478M8lYhOU/icMFeZMlIhY0Wy0i5g0vgmFV4KYaZXjF+FhIGgMpfoWgzAyq+Si8hWraXwqeQ0KJT5kL+g==", "dev": true, "requires": { "fast-decode-uri-component": "^1.0.0", @@ -7127,9 +7127,9 @@ "dev": true }, "yargs-parser": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.0.0.tgz", - "integrity": "sha512-+DHejWujTVYeMHLff8U96rLc4uE4Emncoftvn5AjhB1Jw1pWxLzgBUT/WYbPrHmy6YPEBTZQx5myHhVcuuu64g==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", + "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", "dev": true, "requires": { "camelcase": "^4.1.0" @@ -8932,6 +8932,14 @@ "minimatch": "3.0.4", "mkdirp": "0.5.1", "supports-color": "5.4.0" + }, + "dependencies": { + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "dev": true + } } }, "module-not-found-error": { @@ -9133,9 +9141,9 @@ } }, "nock": { - "version": "9.3.3", - "resolved": "https://registry.npmjs.org/nock/-/nock-9.3.3.tgz", - "integrity": "sha512-FBgnx25er2ly7KBr0Est5F0z5g+lnyr6a72vZI1KMi7nTL4ojU6XpFhlrfw6CXRdnT2FA5i8exHiT1uVNUM1qA==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/nock/-/nock-9.4.1.tgz", + "integrity": "sha512-VJ/02wdCfqJP8syNI5q2CFbejAqN0NLEPvA/nNcGXn3U8GoivtmICmTK3BOqLbfJyaDCXF0Jq+lkQUXBJ1ZMtw==", "dev": true, "requires": { "chai": "^4.1.2", @@ -11982,9 +11990,9 @@ "dev": true }, "prettier": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.13.6.tgz", - "integrity": "sha512-p5eqCNiohWZN++7aJXUVj0JgLqHCPLf9GLIcLBHGNWs4Y9FJOPs6+KNO2WT0udJIQJTbeZFrJkjzjcb8fkAYYQ==", + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.13.7.tgz", + "integrity": "sha512-KIU72UmYPGk4MujZGYMFwinB7lOf2LsDNGSOC8ufevsrPLISrZbNJlWstRi3m0AMuszbH+EFSQ/r6w56RSPK6w==", "dev": true }, "pretty-ms": { @@ -12543,11 +12551,10 @@ "integrity": "sha512-jp4YlI0qyDFfXiXGhkCOliBN1G7fRH03Nqy8YdShzGqbY5/9S2x/IR6C88ls2DFkbWuL3ASkP7QD3pVrNpPgwQ==" }, "retry-request": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-3.3.2.tgz", - "integrity": "sha512-WIiGp37XXDC6e7ku3LFoi7LCL/Gs9luGeeqvbPRb+Zl6OQMw4RCRfSaW+aLfE6lhz1R941UavE6Svl3Dm5xGIQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.0.0.tgz", + "integrity": "sha512-S4HNLaWcMP6r8E4TMH52Y7/pM8uNayOcTDDQNBwsCccL1uI+Ol2TljxRDPzaNfbhOB30+XWP5NnZkB3LiJxi1w==", "requires": { - "request": "^2.81.0", "through2": "^2.0.0" } }, @@ -13450,9 +13457,9 @@ }, "dependencies": { "ajv": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.1.tgz", - "integrity": "sha512-pgZos1vgOHDiC7gKNbZW8eKvCnNXARv2oqrGQT7Hzbq5Azp7aZG6DJzADnkuSq7RH6qkXp4J/m68yPX/2uBHyQ==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz", + "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", "dev": true, "requires": { "fast-deep-equal": "^2.0.1", @@ -14021,9 +14028,9 @@ "dev": true }, "uuid": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.0.tgz", - "integrity": "sha512-ijO9N2xY/YaOqQ5yz5c4sy2ZjWmA6AR6zASb/gdpeKZ8+948CxwfMW9RrKVk5may6ev8c0/Xguu32e2Llelpqw==" + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" }, "validate-npm-package-license": { "version": "3.0.3", From 4b0cba79ce7b4e2c368a3b5ce67b8e1d91b9a285 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Tue, 3 Jul 2018 07:07:58 -0700 Subject: [PATCH 115/527] chore(deps): lock file maintenance (#157) --- handwritten/error-reporting/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index 755696b7c07..bb93f4be3e9 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -7661,9 +7661,9 @@ } }, "is-callable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", - "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", "dev": true }, "is-ci": { From ce06a3e480fbc71dc80da0ad346cc1763462b1e4 Mon Sep 17 00:00:00 2001 From: Ali Ijaz Sheikh Date: Sat, 7 Jul 2018 09:20:00 -0700 Subject: [PATCH 116/527] fix: upgrade to @google-cloud/common@0.20.3 (#158) Fixes: https://github.com/googleapis/nodejs-error-reporting/issues/155 --- handwritten/error-reporting/package-lock.json | 2 +- handwritten/error-reporting/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index bb93f4be3e9..177ae84b13c 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -1934,7 +1934,7 @@ }, "@sinonjs/formatio": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", + "resolved": "http://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", "integrity": "sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg==", "dev": true, "requires": { diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 62c14559eaa..92d40866460 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -54,7 +54,7 @@ "license-check": "jsgl --local ." }, "dependencies": { - "@google-cloud/common": "^0.20.0", + "@google-cloud/common": "^0.20.3", "is": "^3.2.1", "lodash.has": "^4.5.2" }, From 41a1fea70c1b120830e22676423882e53ac0ae87 Mon Sep 17 00:00:00 2001 From: Ali Ijaz Sheikh Date: Mon, 9 Jul 2018 12:29:24 -0700 Subject: [PATCH 117/527] chore(release): bump version to 0.5.1 (#159) --- handwritten/error-reporting/package-lock.json | 2 +- handwritten/error-reporting/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index 177ae84b13c..47716ed2e82 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/error-reporting", - "version": "0.5.0", + "version": "0.5.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 92d40866460..be7327c491d 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/error-reporting", "description": "Stackdriver Error Reporting Client Library for Node.js", - "version": "0.5.0", + "version": "0.5.1", "license": "Apache-2.0", "author": "Google Inc.", "engines": { From feca565b9f6744513abe5680266254bc511d954a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Mon, 9 Jul 2018 17:38:57 -0700 Subject: [PATCH 118/527] chore(deps): lock file maintenance (#160) --- handwritten/error-reporting/package-lock.json | 121 ++++++++++-------- 1 file changed, 69 insertions(+), 52 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index 47716ed2e82..377e0da8ec1 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -1934,7 +1934,7 @@ }, "@sinonjs/formatio": { "version": "2.0.0", - "resolved": "http://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", "integrity": "sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg==", "dev": true, "requires": { @@ -2070,9 +2070,9 @@ } }, "@types/hapi": { - "version": "17.0.14", - "resolved": "https://registry.npmjs.org/@types/hapi/-/hapi-17.0.14.tgz", - "integrity": "sha512-eOoAlOlTu75k0KH1LHqWQKFHBA6tFbeOpUiDSzNrG/QGDVT2weUHmDKOaePzsvPpMZN3pCg/P5MZwAkFykfg/w==", + "version": "17.0.15", + "resolved": "https://registry.npmjs.org/@types/hapi/-/hapi-17.0.15.tgz", + "integrity": "sha512-vau1TQRjOrGIPtVGDdI3czXNueB8H98/6Vz4wlYvwaWfbrbym3NX42goQQ6LFYsyicqS3URJG7/gS+YssCHSAA==", "dev": true, "requires": { "@types/boom": "*", @@ -2140,9 +2140,9 @@ "dev": true }, "@types/lodash": { - "version": "4.14.110", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.110.tgz", - "integrity": "sha512-iXYLa6olt4tnsCA+ZXeP6eEW3tk1SulWeYyP/yooWfAtXjozqXgtX4+XUtMuOCfYjKGz3F34++qUc3Q+TJuIIw==", + "version": "4.14.111", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.111.tgz", + "integrity": "sha512-t2FwnkdqdZNYPJHTEF+Zf//j5d2I7UbM2Ng+vqqmUCE2RuiVVINJi9RlVdpKvqPqVItsJa0X+ra/tvmwLzlcgg==", "dev": true }, "@types/lodash.assign": { @@ -2278,9 +2278,9 @@ } }, "@types/node": { - "version": "10.5.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.1.tgz", - "integrity": "sha512-AFLl1IALIuyt6oK4AYZsgWVJ/5rnyzQWud7IebaZWWV3YmgtPZkQmYio9R5Ze/2pdd7XfqF5bP+hWS11mAKoOQ==" + "version": "10.5.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.2.tgz", + "integrity": "sha512-m9zXmifkZsMHZBOyxZWilMwmTlpC8x5Ty360JKTiXvlXZfBWYpsg9ZZvP/Ye+iZUh+Q+MxDLjItVTWIsfwz+8Q==" }, "@types/once": { "version": "1.4.0", @@ -2324,9 +2324,9 @@ } }, "@types/restify": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@types/restify/-/restify-7.2.2.tgz", - "integrity": "sha512-HbRJpI9ThZOL3EQTrfDF9jY844yiI57GM39raoKtmdeRNG2eLuxS+OTdnzpEOHMZ6IhsOin5sf4r9DI+BCRkpw==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@types/restify/-/restify-7.2.3.tgz", + "integrity": "sha512-k4O09swQnADEoj9B+ug7xBWkAdo7smv5W2IChW4wvC0ye2LUgyfbTjzzLTQLjd1OoLh/DdQACq0kOyZyjvNcrQ==", "dev": true, "requires": { "@types/bunyan": "*", @@ -3922,14 +3922,15 @@ "dev": true }, "codecov": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.0.2.tgz", - "integrity": "sha512-9ljtIROIjPIUmMRqO+XuDITDoV8xRrZmA0jcEq6p2hg2+wY9wGmLfreAZGIL72IzUfdEDZaU8+Vjidg1fBQ8GQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.0.4.tgz", + "integrity": "sha512-KJyzHdg9B8U9LxXa7hS6jnEW5b1cNckLYc2YpnJ1nEFiOW+/iSzDHp+5MYEIQd9fN3/tC6WmGZmYiwxzkuGp/A==", "dev": true, "requires": { - "argv": "0.0.2", - "request": "^2.81.0", - "urlgrey": "0.4.4" + "argv": "^0.0.2", + "ignore-walk": "^3.0.1", + "request": "^2.87.0", + "urlgrey": "^0.4.4" } }, "collection-visit": { @@ -5044,9 +5045,9 @@ } }, "eslint": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.0.1.tgz", - "integrity": "sha512-D5nG2rErquLUstgUaxJlWB5+gu+U/3VDY0fk/Iuq8y9CUFy/7Y6oF4N2cR1tV8knzQvciIbfqfohd359xTLIKQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.1.0.tgz", + "integrity": "sha512-DyH6JsoA1KzA5+OSWFjg56DFJT+sDLO0yokaPZ9qY0UEmYrPA1gEX/G1MnVkmRDsksG4H1foIVz2ZXXM3hHYvw==", "dev": true, "requires": { "ajv": "^6.5.0", @@ -5056,6 +5057,7 @@ "debug": "^3.1.0", "doctrine": "^2.1.0", "eslint-scope": "^4.0.0", + "eslint-utils": "^1.3.1", "eslint-visitor-keys": "^1.0.0", "espree": "^4.0.0", "esquery": "^1.0.1", @@ -5063,7 +5065,7 @@ "file-entry-cache": "^2.0.0", "functional-red-black-tree": "^1.0.1", "glob": "^7.1.2", - "globals": "^11.5.0", + "globals": "^11.7.0", "ignore": "^3.3.3", "imurmurhash": "^0.1.4", "inquirer": "^5.2.0", @@ -5175,9 +5177,9 @@ } }, "eslint-plugin-prettier": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.1.tgz", - "integrity": "sha512-wNZ2z0oVCWnf+3BSI7roS+z4gGu2AwcPKUek+SlLZMZg+X0KbZLsB2knul7fd0K3iuIp402HIYzm4f2+OyfXxA==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.2.tgz", + "integrity": "sha512-tGek5clmW5swrAx1mdPYM8oThrBE83ePh7LeseZHBWfHVGrHPhKn7Y5zgRMbU/9D5Td9K4CEmUPjGxA7iw98Og==", "dev": true, "requires": { "fast-diff": "^1.1.1", @@ -5194,6 +5196,12 @@ "estraverse": "^4.1.1" } }, + "eslint-utils": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz", + "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==", + "dev": true + }, "eslint-visitor-keys": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", @@ -6033,14 +6041,14 @@ } }, "find-my-way": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-1.15.0.tgz", - "integrity": "sha512-SaCxI478M8lYhOU/icMFeZMlIhY0Wy0i5g0vgmFV4KYaZXjF+FhIGgMpfoWgzAyq+Si8hWraXwqeQ0KJT5kL+g==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-1.15.1.tgz", + "integrity": "sha512-cwR1IxkB1JIIGxWpX3TQC1U/51htT4dps536rno7fkszeSSevvZGkl1dpIANRNq+X6/VDSF/S4JAuDPSTepHBA==", "dev": true, "requires": { "fast-decode-uri-component": "^1.0.0", "safe-regex": "^1.1.0", - "semver-store": "^0.2.0" + "semver-store": "^0.3.0" } }, "find-up": { @@ -6071,9 +6079,9 @@ "dev": true }, "follow-redirects": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.0.tgz", - "integrity": "sha512-fdrt472/9qQ6Kgjvb935ig6vJCuofpBUD14f9Vb+SLlm7xIe4Qva5gey8EKtv8lp7ahE1wilg3xL1znpVGtZIA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.1.tgz", + "integrity": "sha512-v9GI1hpaqq1ZZR6pBD1+kI7O24PhDvNGNodjS3MdcEqyrahCp8zbtpv+2B/krUnSmUH80lbAS7MrdeK5IylgKg==", "requires": { "debug": "^3.1.0" } @@ -7356,9 +7364,9 @@ } }, "hosted-git-info": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.1.tgz", - "integrity": "sha512-Ba4+0M4YvIDUUsprMjhVTU1yN9F2/LJSAl69ZpzaLT4l4j5mwTS6jqqW9Ojvj6lKz/veqPzpJBqGbXspOb533A==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", "dev": true }, "hpack.js": { @@ -7474,6 +7482,15 @@ "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", "dev": true }, + "ignore-walk": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, "import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", @@ -7999,15 +8016,15 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "istanbul-lib-coverage": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.0.tgz", - "integrity": "sha512-yMSw5xLIbdaxiVXHk3amfNM2WeBxLrwH/BCyZ9HvA/fylwziAIJOG2rKqWyLqEJqwKT725vxxqidv+SyynnGAA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", + "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==", "dev": true }, "istanbul-lib-instrument": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.0.tgz", - "integrity": "sha512-Ie1LGWJVCFDDJKKH4g1ffpFcZTEXEd6ay5l9fE8539y4qPErJnzo4psnGzDH92tcKvdUDdbxrKySYIbt6zB9hw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.1.tgz", + "integrity": "sha512-h9Vg3nfbxrF0PK0kZiNiMAyL8zXaLiBP/BXniaKSwVvAi1TaumYV2b0wPdmy1CRX3irYbYD1p4Wjbv4uyECiiQ==", "dev": true, "requires": { "@babel/generator": "7.0.0-beta.51", @@ -8015,7 +8032,7 @@ "@babel/template": "7.0.0-beta.51", "@babel/traverse": "7.0.0-beta.51", "@babel/types": "7.0.0-beta.51", - "istanbul-lib-coverage": "^2.0.0", + "istanbul-lib-coverage": "^2.0.1", "semver": "^5.5.0" } }, @@ -8520,9 +8537,9 @@ "dev": true }, "lolex": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.0.tgz", - "integrity": "sha512-uJkH2e0BVfU5KOJUevbTOtpDduooSarH5PopO+LfM/vZf8Z9sJzODqKev804JYM2i++ktJfUmC1le4LwFQ1VMg==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.1.tgz", + "integrity": "sha512-Oo2Si3RMKV3+lV5MsSWplDQFoTClz/24S0MMHYcgGWWmFXr6TMlqcqk/l1GtH+d5wLBwNRiqGnwDRMirtFalJw==", "dev": true }, "longest": { @@ -12675,9 +12692,9 @@ } }, "semver-store": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/semver-store/-/semver-store-0.2.2.tgz", - "integrity": "sha512-+cXXIIkMjw1O6MJFlsQgHokDtz3PeCfY2YZVP3D6LmKjKotUOzAeRYGCjEPiR3QivM7Jkacme+66EqwptG1HMg==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/semver-store/-/semver-store-0.3.0.tgz", + "integrity": "sha512-TcZvGMMy9vodEFSse30lWinkj+JgOBvPn8wRItpQRSayhc+4ssDs335uklkfvQQJgL/WvmHLVj4Ycv2s7QCQMg==", "dev": true }, "send": { @@ -13678,9 +13695,9 @@ } }, "tsutils": { - "version": "2.27.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.27.1.tgz", - "integrity": "sha512-AE/7uzp32MmaHvNNFES85hhUDHFdFZp6OAiZcd6y4ZKKIg6orJTm8keYWBhIhrJQH3a4LzNKat7ZPXZt5aTf6w==", + "version": "2.27.2", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.27.2.tgz", + "integrity": "sha512-qf6rmT84TFMuxAKez2pIfR8UCai49iQsfB7YWVjV1bKpy/d0PWT5rEOSM6La9PiHZ0k1RRZQiwVdVJfQ3BPHgg==", "dev": true, "requires": { "tslib": "^1.8.1" From 12b487114b8a27ca4d9e9fdaa07088f489ce1fca Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Mon, 9 Jul 2018 23:13:40 -0700 Subject: [PATCH 119/527] fix: drop support for nodejs 9.x (#161) * fix: drop support for node.js 4.x and 9.x * moar fixing --- .../error-reporting/.circleci/config.yml | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/handwritten/error-reporting/.circleci/config.yml b/handwritten/error-reporting/.circleci/config.yml index 985b292a732..e578a9589f4 100644 --- a/handwritten/error-reporting/.circleci/config.yml +++ b/handwritten/error-reporting/.circleci/config.yml @@ -11,10 +11,6 @@ workflows: filters: tags: only: /.*/ - - node9: - filters: - tags: - only: /.*/ - node10: filters: tags: @@ -23,7 +19,6 @@ workflows: requires: - node6 - node8 - - node9 - node10 filters: tags: @@ -32,7 +27,6 @@ workflows: requires: - node6 - node8 - - node9 - node10 filters: tags: @@ -103,11 +97,6 @@ jobs: - image: 'node:8' user: node steps: *unit_tests_steps - node9: - docker: - - image: 'node:9' - user: node - steps: *unit_tests_steps node10: docker: - image: 'node:10' @@ -205,10 +194,6 @@ jobs: user: node steps: - checkout - - run: - name: Set NPM authentication. - command: 'echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc' + - run: 'echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc' - run: *npm_install_and_link - - run: - name: Publish the module to npm. - command: npm publish + - run: npm publish From da7c10ce0354569153ec6250a3e945e7b13e1c23 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Tue, 10 Jul 2018 08:06:41 -0700 Subject: [PATCH 120/527] chore(deps): lock file maintenance (#163) --- handwritten/error-reporting/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index 377e0da8ec1..825aa0ba628 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -5298,9 +5298,9 @@ "dev": true }, "espurify": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/espurify/-/espurify-1.8.0.tgz", - "integrity": "sha512-jdkJG9jswjKCCDmEridNUuIQei9algr+o66ZZ19610ZoBsiWLRsQGNYS4HGez3Z/DsR0lhANGAqiwBUclPuNag==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/espurify/-/espurify-1.8.1.tgz", + "integrity": "sha512-ZDko6eY/o+D/gHCWyHTU85mKDgYcS4FJj7S+YD6WIInm7GQ6AnOjmcL4+buFV/JOztVLELi/7MmuGU5NHta0Mg==", "dev": true, "requires": { "core-js": "^2.0.0" From 6fcf17052867fc21aa7df36c333730787c830dad Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Tue, 10 Jul 2018 09:40:36 -0700 Subject: [PATCH 121/527] chore(deps): lock file maintenance (#164) --- handwritten/error-reporting/package-lock.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index 825aa0ba628..36dc8e9b174 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -8549,12 +8549,12 @@ "dev": true }, "loose-envify": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, "requires": { - "js-tokens": "^3.0.0" + "js-tokens": "^3.0.0 || ^4.0.0" } }, "loud-rejection": { From 471aa4b4a7bcc1e6beb403c4ce3c9687a6a59780 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Tue, 10 Jul 2018 10:08:43 -0700 Subject: [PATCH 122/527] chore(deps): lock file maintenance (#165) --- handwritten/error-reporting/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index 36dc8e9b174..ed6d1e5d05f 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -9158,9 +9158,9 @@ } }, "nock": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/nock/-/nock-9.4.1.tgz", - "integrity": "sha512-VJ/02wdCfqJP8syNI5q2CFbejAqN0NLEPvA/nNcGXn3U8GoivtmICmTK3BOqLbfJyaDCXF0Jq+lkQUXBJ1ZMtw==", + "version": "9.4.2", + "resolved": "https://registry.npmjs.org/nock/-/nock-9.4.2.tgz", + "integrity": "sha512-WFRlGfJJ17uyXKAIFKXqoq5o49W7aYjfH3Zges133kYGwL6PuSjthP50osQJJNMQoz0f0SodmREjzo8eLh/Bxw==", "dev": true, "requires": { "chai": "^4.1.2", From b03855a890eab98346c944169a7648e557757236 Mon Sep 17 00:00:00 2001 From: Ali Ijaz Sheikh Date: Tue, 10 Jul 2018 15:50:54 -0700 Subject: [PATCH 123/527] test: fix system tests (#162) These tests could not pass because they expected gcloud default credentials to be available (typically on a developer machine). They could not pass in the CI. --- handwritten/error-reporting/system-test/error-reporting.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index 01d7d525ed3..61276dcd62a 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -346,7 +346,7 @@ describe('Expected Behavior', () => { }); it('Should succeed in its request given a valid project id', done => { - env.sterilizeProcess(); + env.sterilizeProcess().setKeyFilename(); const logger = createLogger({logLevel: 5}); const cfg = new Configuration( { @@ -366,7 +366,7 @@ describe('Expected Behavior', () => { }); it('Should succeed in its request given a valid project number', done => { - env.sterilizeProcess(); + env.sterilizeProcess().setKeyFilename(); const logger = createLogger({logLevel: 5}); const cfg = new Configuration( { @@ -469,6 +469,8 @@ describe('error-reporting', () => { service: SERVICE, version: VERSION, }, + projectId: env.projectId, + keyFilename: process.env.GCLOUD_TESTS_KEY, }, extraConfig || {}); errors = new ErrorReporting(initConfiguration); From 3c15d1ca674cf038d71ab08c2c4be3431f550ae1 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Thu, 12 Jul 2018 20:24:56 -0700 Subject: [PATCH 124/527] chore: use post-install-check (#166) --- handwritten/error-reporting/package-lock.json | 5059 +++++++++-------- handwritten/error-reporting/package.json | 1 + .../system-test/test-install.ts | 150 +- 3 files changed, 2546 insertions(+), 2664 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index ed6d1e5d05f..4791357728e 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -16,18 +16,18 @@ "integrity": "sha512-oWqTnIGXW3k72UFidXzW0ONlO7hnO9x02S/QReJ7NBGeiBH9cUHY9+EfV6C8PXC6YJH++WrliEq03wMSJGNZFg==", "dev": true, "requires": { - "babel-plugin-check-es2015-constants": "^6.8.0", - "babel-plugin-syntax-trailing-function-commas": "^6.20.0", - "babel-plugin-transform-async-to-generator": "^6.16.0", - "babel-plugin-transform-es2015-destructuring": "^6.19.0", - "babel-plugin-transform-es2015-function-name": "^6.9.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.18.0", - "babel-plugin-transform-es2015-parameters": "^6.21.0", - "babel-plugin-transform-es2015-spread": "^6.8.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.8.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.11.0", - "babel-plugin-transform-exponentiation-operator": "^6.8.0", - "package-hash": "^1.2.0" + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-to-generator": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-exponentiation-operator": "6.24.1", + "package-hash": "1.2.0" }, "dependencies": { "md5-hex": { @@ -36,7 +36,7 @@ "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "dev": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "package-hash": { @@ -45,7 +45,7 @@ "integrity": "sha1-AD5WzVe3NqbtYRTMK4FUJnJ3DkQ=", "dev": true, "requires": { - "md5-hex": "^1.3.0" + "md5-hex": "1.3.0" } } } @@ -56,8 +56,8 @@ "integrity": "sha1-ze0RlqjY2TgaUJJAq5LpGl7Aafc=", "dev": true, "requires": { - "@ava/babel-plugin-throws-helper": "^2.0.0", - "babel-plugin-espower": "^2.3.2" + "@ava/babel-plugin-throws-helper": "2.0.0", + "babel-plugin-espower": "2.4.0" } }, "@ava/write-file-atomic": { @@ -66,9 +66,9 @@ "integrity": "sha512-BTNB3nGbEfJT+69wuqXFr/bQH7Vr7ihx2xGOMNqPgDGhwspoZhiWumDDZNjBy7AScmqS5CELIOGtPVXESyrnDA==", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" } }, "@babel/code-frame": { @@ -87,10 +87,10 @@ "dev": true, "requires": { "@babel/types": "7.0.0-beta.51", - "jsesc": "^2.5.1", - "lodash": "^4.17.5", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" + "jsesc": "2.5.1", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" }, "dependencies": { "jsesc": { @@ -136,9 +136,9 @@ "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=", "dev": true, "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^3.0.0" + "chalk": "2.4.1", + "esutils": "2.0.2", + "js-tokens": "3.0.2" } }, "@babel/parser": { @@ -156,7 +156,7 @@ "@babel/code-frame": "7.0.0-beta.51", "@babel/parser": "7.0.0-beta.51", "@babel/types": "7.0.0-beta.51", - "lodash": "^4.17.5" + "lodash": "4.17.5" } }, "@babel/traverse": { @@ -171,10 +171,10 @@ "@babel/helper-split-export-declaration": "7.0.0-beta.51", "@babel/parser": "7.0.0-beta.51", "@babel/types": "7.0.0-beta.51", - "debug": "^3.1.0", - "globals": "^11.1.0", - "invariant": "^2.2.0", - "lodash": "^4.17.5" + "debug": "3.1.0", + "globals": "11.7.0", + "invariant": "2.2.4", + "lodash": "4.17.5" }, "dependencies": { "globals": { @@ -191,9 +191,9 @@ "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.5", - "to-fast-properties": "^2.0.0" + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "2.0.0" }, "dependencies": { "to-fast-properties": { @@ -210,7 +210,7 @@ "integrity": "sha512-htrsRaQX8Iixlsek8zQU7tE8wcsTQJ5UhZkSPEA8slCDAisKpC/2VgU/ucPn32M5/LjGGXRaUEKvEw1Wiuu4zQ==", "dev": true, "requires": { - "arrify": "^1.0.1" + "arrify": "1.0.1" } }, "@google-cloud/common": { @@ -218,21 +218,21 @@ "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.20.3.tgz", "integrity": "sha512-jt8/R4EqDTQccv5WA9AEaS65llM5+mlxsuWu57G5Os8HTIpgPbcsOVMUeIvmTrBuPUYSoRIMW8d/pvv/95n0+g==", "requires": { - "@types/duplexify": "^3.5.0", - "@types/request": "^2.47.0", - "arrify": "^1.0.1", - "axios": "^0.18.0", - "duplexify": "^3.6.0", - "ent": "^2.2.0", - "extend": "^3.0.1", - "google-auth-library": "^1.6.0", - "is": "^3.2.1", - "pify": "^3.0.0", - "request": "^2.87.0", - "retry-request": "^4.0.0", - "split-array-stream": "^2.0.0", - "stream-events": "^1.0.4", - "through2": "^2.0.3" + "@types/duplexify": "3.5.0", + "@types/request": "2.47.1", + "arrify": "1.0.1", + "axios": "0.18.0", + "duplexify": "3.6.0", + "ent": "2.2.0", + "extend": "3.0.1", + "google-auth-library": "1.6.1", + "is": "3.2.1", + "pify": "3.0.0", + "request": "2.87.0", + "retry-request": "4.0.0", + "split-array-stream": "2.0.0", + "stream-events": "1.0.4", + "through2": "2.0.3" } }, "@google-cloud/nodejs-repo-tools": { @@ -249,7 +249,7 @@ "lodash": "4.17.5", "nyc": "11.4.1", "proxyquire": "1.8.0", - "semver": "^5.5.0", + "semver": "5.5.0", "sinon": "4.3.0", "string": "3.3.3", "supertest": "3.0.0", @@ -263,33 +263,33 @@ "integrity": "sha512-5eCZpvaksFVjP2rt1r60cfXmt3MUtsQDw8bAzNqNEr4WLvUMLgiVENMf/B9bE9YAX0mGVvaGA3v9IS9ekNqB1Q==", "dev": true, "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^1.0.0", - "convert-source-map": "^1.3.0", - "debug-log": "^1.0.1", - "default-require-extensions": "^1.0.0", - "find-cache-dir": "^0.1.1", - "find-up": "^2.1.0", - "foreground-child": "^1.5.3", - "glob": "^7.0.6", - "istanbul-lib-coverage": "^1.1.1", - "istanbul-lib-hook": "^1.1.0", - "istanbul-lib-instrument": "^1.9.1", - "istanbul-lib-report": "^1.1.2", - "istanbul-lib-source-maps": "^1.2.2", - "istanbul-reports": "^1.1.3", - "md5-hex": "^1.2.0", - "merge-source-map": "^1.0.2", - "micromatch": "^2.3.11", - "mkdirp": "^0.5.0", - "resolve-from": "^2.0.0", - "rimraf": "^2.5.4", - "signal-exit": "^3.0.1", - "spawn-wrap": "^1.4.2", - "test-exclude": "^4.1.1", - "yargs": "^10.0.3", - "yargs-parser": "^8.0.0" + "archy": "1.0.0", + "arrify": "1.0.1", + "caching-transform": "1.0.1", + "convert-source-map": "1.5.1", + "debug-log": "1.0.1", + "default-require-extensions": "1.0.0", + "find-cache-dir": "0.1.1", + "find-up": "2.1.0", + "foreground-child": "1.5.6", + "glob": "7.1.2", + "istanbul-lib-coverage": "1.1.1", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "1.9.1", + "istanbul-lib-report": "1.1.2", + "istanbul-lib-source-maps": "1.2.2", + "istanbul-reports": "1.1.3", + "md5-hex": "1.3.0", + "merge-source-map": "1.0.4", + "micromatch": "2.3.11", + "mkdirp": "0.5.1", + "resolve-from": "2.0.0", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "spawn-wrap": "1.4.2", + "test-exclude": "4.1.1", + "yargs": "10.0.3", + "yargs-parser": "8.0.0" }, "dependencies": { "align-text": { @@ -297,9 +297,9 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" } }, "amdefine": { @@ -322,7 +322,7 @@ "bundled": true, "dev": true, "requires": { - "default-require-extensions": "^1.0.0" + "default-require-extensions": "1.0.0" } }, "archy": { @@ -335,7 +335,7 @@ "bundled": true, "dev": true, "requires": { - "arr-flatten": "^1.0.1" + "arr-flatten": "1.1.0" } }, "arr-flatten": { @@ -363,9 +363,9 @@ "bundled": true, "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" } }, "babel-generator": { @@ -373,14 +373,14 @@ "bundled": true, "dev": true, "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.6", - "trim-right": "^1.0.1" + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.4", + "source-map": "0.5.7", + "trim-right": "1.0.1" } }, "babel-messages": { @@ -388,7 +388,7 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-runtime": { @@ -396,8 +396,8 @@ "bundled": true, "dev": true, "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" } }, "babel-template": { @@ -405,11 +405,11 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" } }, "babel-traverse": { @@ -417,15 +417,15 @@ "bundled": true, "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" } }, "babel-types": { @@ -433,10 +433,10 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" } }, "babylon": { @@ -454,7 +454,7 @@ "bundled": true, "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -463,9 +463,9 @@ "bundled": true, "dev": true, "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" } }, "builtin-modules": { @@ -478,9 +478,9 @@ "bundled": true, "dev": true, "requires": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" } }, "camelcase": { @@ -495,8 +495,8 @@ "dev": true, "optional": true, "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "align-text": "0.1.4", + "lazy-cache": "1.0.4" } }, "chalk": { @@ -504,11 +504,11 @@ "bundled": true, "dev": true, "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "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" } }, "cliui": { @@ -517,8 +517,8 @@ "dev": true, "optional": true, "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", + "center-align": "0.1.3", + "right-align": "0.1.3", "wordwrap": "0.0.2" }, "dependencies": { @@ -560,8 +560,8 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" + "lru-cache": "4.1.1", + "which": "1.3.0" } }, "debug": { @@ -587,7 +587,7 @@ "bundled": true, "dev": true, "requires": { - "strip-bom": "^2.0.0" + "strip-bom": "2.0.0" } }, "detect-indent": { @@ -595,7 +595,7 @@ "bundled": true, "dev": true, "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "error-ex": { @@ -603,7 +603,7 @@ "bundled": true, "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "escape-string-regexp": { @@ -621,13 +621,13 @@ "bundled": true, "dev": true, "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" }, "dependencies": { "cross-spawn": { @@ -635,9 +635,9 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.3.0" } } } @@ -647,7 +647,7 @@ "bundled": true, "dev": true, "requires": { - "is-posix-bracket": "^0.1.0" + "is-posix-bracket": "0.1.1" } }, "expand-range": { @@ -655,7 +655,7 @@ "bundled": true, "dev": true, "requires": { - "fill-range": "^2.1.0" + "fill-range": "2.2.3" } }, "extglob": { @@ -663,7 +663,7 @@ "bundled": true, "dev": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "filename-regex": { @@ -676,11 +676,11 @@ "bundled": true, "dev": true, "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^1.1.3", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" } }, "find-cache-dir": { @@ -688,9 +688,9 @@ "bundled": true, "dev": true, "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" + "commondir": "1.0.1", + "mkdirp": "0.5.1", + "pkg-dir": "1.0.0" } }, "find-up": { @@ -698,7 +698,7 @@ "bundled": true, "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "for-in": { @@ -711,7 +711,7 @@ "bundled": true, "dev": true, "requires": { - "for-in": "^1.0.1" + "for-in": "1.0.2" } }, "foreground-child": { @@ -719,8 +719,8 @@ "bundled": true, "dev": true, "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" + "cross-spawn": "4.0.2", + "signal-exit": "3.0.2" } }, "fs.realpath": { @@ -743,12 +743,12 @@ "bundled": true, "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "glob-base": { @@ -756,8 +756,8 @@ "bundled": true, "dev": true, "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" + "glob-parent": "2.0.0", + "is-glob": "2.0.1" } }, "glob-parent": { @@ -765,7 +765,7 @@ "bundled": true, "dev": true, "requires": { - "is-glob": "^2.0.0" + "is-glob": "2.0.1" } }, "globals": { @@ -783,10 +783,10 @@ "bundled": true, "dev": true, "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" }, "dependencies": { "source-map": { @@ -794,7 +794,7 @@ "bundled": true, "dev": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -804,7 +804,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "has-flag": { @@ -827,8 +827,8 @@ "bundled": true, "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -841,7 +841,7 @@ "bundled": true, "dev": true, "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "1.3.1" } }, "invert-kv": { @@ -864,7 +864,7 @@ "bundled": true, "dev": true, "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-dotfile": { @@ -877,7 +877,7 @@ "bundled": true, "dev": true, "requires": { - "is-primitive": "^2.0.0" + "is-primitive": "2.0.0" } }, "is-extendable": { @@ -895,7 +895,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { @@ -903,7 +903,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-glob": { @@ -911,7 +911,7 @@ "bundled": true, "dev": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "is-number": { @@ -919,7 +919,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-posix-bracket": { @@ -970,7 +970,7 @@ "bundled": true, "dev": true, "requires": { - "append-transform": "^0.4.0" + "append-transform": "0.4.0" } }, "istanbul-lib-instrument": { @@ -978,13 +978,13 @@ "bundled": true, "dev": true, "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.1.1", - "semver": "^5.3.0" + "babel-generator": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "istanbul-lib-coverage": "1.1.1", + "semver": "5.4.1" } }, "istanbul-lib-report": { @@ -992,10 +992,10 @@ "bundled": true, "dev": true, "requires": { - "istanbul-lib-coverage": "^1.1.1", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" + "istanbul-lib-coverage": "1.1.1", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" }, "dependencies": { "supports-color": { @@ -1003,7 +1003,7 @@ "bundled": true, "dev": true, "requires": { - "has-flag": "^1.0.0" + "has-flag": "1.0.0" } } } @@ -1013,11 +1013,11 @@ "bundled": true, "dev": true, "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.1.1", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" + "debug": "3.1.0", + "istanbul-lib-coverage": "1.1.1", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" }, "dependencies": { "debug": { @@ -1035,7 +1035,7 @@ "bundled": true, "dev": true, "requires": { - "handlebars": "^4.0.3" + "handlebars": "4.0.11" } }, "js-tokens": { @@ -1053,7 +1053,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "lazy-cache": { @@ -1067,7 +1067,7 @@ "bundled": true, "dev": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "load-json-file": { @@ -1075,11 +1075,11 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" } }, "locate-path": { @@ -1087,8 +1087,8 @@ "bundled": true, "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "2.0.0", + "path-exists": "3.0.0" }, "dependencies": { "path-exists": { @@ -1113,7 +1113,7 @@ "bundled": true, "dev": true, "requires": { - "js-tokens": "^3.0.0" + "js-tokens": "3.0.2" } }, "lru-cache": { @@ -1121,8 +1121,8 @@ "bundled": true, "dev": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "md5-hex": { @@ -1130,7 +1130,7 @@ "bundled": true, "dev": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "md5-o-matic": { @@ -1143,7 +1143,7 @@ "bundled": true, "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.1.0" } }, "merge-source-map": { @@ -1151,7 +1151,7 @@ "bundled": true, "dev": true, "requires": { - "source-map": "^0.5.6" + "source-map": "0.5.7" } }, "micromatch": { @@ -1159,19 +1159,19 @@ "bundled": true, "dev": true, "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" } }, "mimic-fn": { @@ -1184,7 +1184,7 @@ "bundled": true, "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.8" } }, "minimist": { @@ -1210,10 +1210,10 @@ "bundled": true, "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.5.0", + "is-builtin-module": "1.0.0", + "semver": "5.4.1", + "validate-npm-package-license": "3.0.1" } }, "normalize-path": { @@ -1221,7 +1221,7 @@ "bundled": true, "dev": true, "requires": { - "remove-trailing-separator": "^1.0.1" + "remove-trailing-separator": "1.1.0" } }, "npm-run-path": { @@ -1229,7 +1229,7 @@ "bundled": true, "dev": true, "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -1247,8 +1247,8 @@ "bundled": true, "dev": true, "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" + "for-own": "0.1.5", + "is-extendable": "0.1.1" } }, "once": { @@ -1256,7 +1256,7 @@ "bundled": true, "dev": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "optimist": { @@ -1264,8 +1264,8 @@ "bundled": true, "dev": true, "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "minimist": "0.0.8", + "wordwrap": "0.0.3" } }, "os-homedir": { @@ -1278,9 +1278,9 @@ "bundled": true, "dev": true, "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" } }, "p-finally": { @@ -1298,7 +1298,7 @@ "bundled": true, "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.1.0" } }, "parse-glob": { @@ -1306,10 +1306,10 @@ "bundled": true, "dev": true, "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" } }, "parse-json": { @@ -1317,7 +1317,7 @@ "bundled": true, "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.1" } }, "path-exists": { @@ -1325,7 +1325,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } }, "path-is-absolute": { @@ -1348,9 +1348,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pify": { @@ -1368,7 +1368,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "pkg-dir": { @@ -1376,7 +1376,7 @@ "bundled": true, "dev": true, "requires": { - "find-up": "^1.0.0" + "find-up": "1.1.2" }, "dependencies": { "find-up": { @@ -1384,8 +1384,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } @@ -1405,8 +1405,8 @@ "bundled": true, "dev": true, "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "is-number": { @@ -1414,7 +1414,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -1422,7 +1422,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -1432,7 +1432,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -1442,9 +1442,9 @@ "bundled": true, "dev": true, "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" } }, "read-pkg-up": { @@ -1452,8 +1452,8 @@ "bundled": true, "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "find-up": "1.1.2", + "read-pkg": "1.1.0" }, "dependencies": { "find-up": { @@ -1461,8 +1461,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } @@ -1477,7 +1477,7 @@ "bundled": true, "dev": true, "requires": { - "is-equal-shallow": "^0.1.3" + "is-equal-shallow": "0.1.3" } }, "remove-trailing-separator": { @@ -1500,7 +1500,7 @@ "bundled": true, "dev": true, "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "require-directory": { @@ -1524,7 +1524,7 @@ "dev": true, "optional": true, "requires": { - "align-text": "^0.1.1" + "align-text": "0.1.4" } }, "rimraf": { @@ -1532,7 +1532,7 @@ "bundled": true, "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "semver": { @@ -1550,7 +1550,7 @@ "bundled": true, "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -1578,12 +1578,12 @@ "bundled": true, "dev": true, "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.0" } }, "spdx-correct": { @@ -1591,7 +1591,7 @@ "bundled": true, "dev": true, "requires": { - "spdx-license-ids": "^1.0.2" + "spdx-license-ids": "1.2.2" } }, "spdx-expression-parse": { @@ -1609,8 +1609,8 @@ "bundled": true, "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" }, "dependencies": { "ansi-regex": { @@ -1628,7 +1628,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -1638,7 +1638,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-bom": { @@ -1646,7 +1646,7 @@ "bundled": true, "dev": true, "requires": { - "is-utf8": "^0.2.0" + "is-utf8": "0.2.1" } }, "strip-eof": { @@ -1664,11 +1664,11 @@ "bundled": true, "dev": true, "requires": { - "arrify": "^1.0.1", - "micromatch": "^2.3.11", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" + "arrify": "1.0.1", + "micromatch": "2.3.11", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" } }, "to-fast-properties": { @@ -1687,9 +1687,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" }, "dependencies": { "yargs": { @@ -1698,9 +1698,9 @@ "dev": true, "optional": true, "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", "window-size": "0.1.0" } } @@ -1717,8 +1717,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-correct": "~1.0.0", - "spdx-expression-parse": "~1.0.0" + "spdx-correct": "1.0.2", + "spdx-expression-parse": "1.0.4" } }, "which": { @@ -1726,7 +1726,7 @@ "bundled": true, "dev": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -1750,8 +1750,8 @@ "bundled": true, "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "string-width": { @@ -1759,9 +1759,9 @@ "bundled": true, "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -1776,9 +1776,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" } }, "y18n": { @@ -1796,18 +1796,18 @@ "bundled": true, "dev": true, "requires": { - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^8.0.0" + "cliui": "3.2.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "8.0.0" }, "dependencies": { "cliui": { @@ -1815,9 +1815,9 @@ "bundled": true, "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" }, "dependencies": { "string-width": { @@ -1825,9 +1825,9 @@ "bundled": true, "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -1839,7 +1839,7 @@ "bundled": true, "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" }, "dependencies": { "camelcase": { @@ -1857,9 +1857,9 @@ "integrity": "sha1-AtUUpb7ZhvBMuyCTrxZ0FTX3ntw=", "dev": true, "requires": { - "fill-keys": "^1.0.2", - "module-not-found-error": "^1.0.0", - "resolve": "~1.1.7" + "fill-keys": "1.0.2", + "module-not-found-error": "1.0.1", + "resolve": "1.1.7" } } } @@ -1870,10 +1870,10 @@ "integrity": "sha512-weIbJqTMfQ4r1YX85u54DKfjLZs2jwn1XZ6tIOP/pFgMwhIN5BAtaCp/1wn9DzyLsDR9tW0R2NIePcVJ45ivQQ==", "dev": true, "requires": { - "chalk": "^0.4.0", - "date-time": "^0.1.1", - "pretty-ms": "^0.2.1", - "text-table": "^0.2.0" + "chalk": "0.4.0", + "date-time": "0.1.1", + "pretty-ms": "0.2.2", + "text-table": "0.2.0" }, "dependencies": { "ansi-styles": { @@ -1888,9 +1888,9 @@ "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", "dev": true, "requires": { - "ansi-styles": "~1.0.0", - "has-color": "~0.1.0", - "strip-ansi": "~0.1.0" + "ansi-styles": "1.0.0", + "has-color": "0.1.7", + "strip-ansi": "0.1.1" } }, "pretty-ms": { @@ -1899,7 +1899,7 @@ "integrity": "sha1-2oeaaC/zOjcBEEbxPWJ/Z8c7hPY=", "dev": true, "requires": { - "parse-ms": "^0.1.0" + "parse-ms": "0.1.2" } }, "strip-ansi": { @@ -1916,8 +1916,8 @@ "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", "dev": true, "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" } }, "@nodelib/fs.stat": { @@ -1947,7 +1947,7 @@ "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "10.5.2" } }, "@types/body-parser": { @@ -1956,8 +1956,8 @@ "integrity": "sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w==", "dev": true, "requires": { - "@types/connect": "*", - "@types/node": "*" + "@types/connect": "3.4.32", + "@types/node": "10.5.2" } }, "@types/boom": { @@ -1972,8 +1972,8 @@ "integrity": "sha512-bxOF3fsm69ezKxdcJ7Oo/PsZMOJ+JIV/QJO2IADfScmR3sLulR88dpSnz6+q+9JJ1kD7dXFFgUrGRSKHLkOX7w==", "dev": true, "requires": { - "@types/events": "*", - "@types/node": "*" + "@types/events": "1.2.0", + "@types/node": "10.5.2" } }, "@types/caseless": { @@ -1993,7 +1993,7 @@ "integrity": "sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg==", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "10.5.2" } }, "@types/cookies": { @@ -2002,10 +2002,10 @@ "integrity": "sha512-ku6IvbucEyuC6i4zAVK/KnuzWNXdbFd1HkXlNLg/zhWDGTtQT5VhumiPruB/BHW34PWVFwyfwGftDQHfWNxu3Q==", "dev": true, "requires": { - "@types/connect": "*", - "@types/express": "*", - "@types/keygrip": "*", - "@types/node": "*" + "@types/connect": "3.4.32", + "@types/express": "4.16.0", + "@types/keygrip": "1.0.1", + "@types/node": "10.5.2" } }, "@types/duplexify": { @@ -2013,7 +2013,7 @@ "resolved": "https://registry.npmjs.org/@types/duplexify/-/duplexify-3.5.0.tgz", "integrity": "sha512-+aZCCdxuR/Q6n58CBkXyqGqimIqpYUcFLfBXagXv7e9TdJUevqkKhzopBuRz3RB064sQxnJnhttHOkK/O93Ouw==", "requires": { - "@types/node": "*" + "@types/node": "10.5.2" } }, "@types/events": { @@ -2028,9 +2028,9 @@ "integrity": "sha512-TtPEYumsmSTtTetAPXlJVf3kEqb6wZK0bZojpJQrnD/djV4q1oB6QQ8aKvKqwNPACoe02GNiy5zDzcYivR5Z2w==", "dev": true, "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "*", - "@types/serve-static": "*" + "@types/body-parser": "1.17.0", + "@types/express-serve-static-core": "4.16.0", + "@types/serve-static": "1.13.2" } }, "@types/express-serve-static-core": { @@ -2039,9 +2039,9 @@ "integrity": "sha512-lTeoCu5NxJU4OD9moCgm0ESZzweAx0YqsAcab6OB0EB3+As1OaHtKnaGJvcngQxYsi9UNv0abn4/DRavrRxt4w==", "dev": true, "requires": { - "@types/events": "*", - "@types/node": "*", - "@types/range-parser": "*" + "@types/events": "1.2.0", + "@types/node": "10.5.2", + "@types/range-parser": "1.2.2" } }, "@types/extend": { @@ -2055,7 +2055,7 @@ "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz", "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", "requires": { - "@types/node": "*" + "@types/node": "10.5.2" } }, "@types/glob": { @@ -2064,9 +2064,9 @@ "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", "dev": true, "requires": { - "@types/events": "*", - "@types/minimatch": "*", - "@types/node": "*" + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "10.5.2" } }, "@types/hapi": { @@ -2075,14 +2075,14 @@ "integrity": "sha512-vau1TQRjOrGIPtVGDdI3czXNueB8H98/6Vz4wlYvwaWfbrbym3NX42goQQ6LFYsyicqS3URJG7/gS+YssCHSAA==", "dev": true, "requires": { - "@types/boom": "*", - "@types/catbox": "*", - "@types/iron": "*", - "@types/joi": "*", - "@types/mimos": "*", - "@types/node": "*", - "@types/podium": "*", - "@types/shot": "*" + "@types/boom": "7.2.0", + "@types/catbox": "10.0.0", + "@types/iron": "5.0.1", + "@types/joi": "13.3.0", + "@types/mimos": "3.0.1", + "@types/node": "10.5.2", + "@types/podium": "1.0.0", + "@types/shot": "3.4.0" } }, "@types/http-assert": { @@ -2097,7 +2097,7 @@ "integrity": "sha512-Ng5BkVGPt7Tw9k1OJ6qYwuD9+dmnWgActmsnnrdvs4075N8V2go1f6Pz8omG3q5rbHjXN6yzzZDYo3JOgAE/Ug==", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "10.5.2" } }, "@types/is": { @@ -2124,13 +2124,13 @@ "integrity": "sha512-Dw10hYKv3exrc71GmH/Fqnc7dCLzdiP8bM1MLelPYjgIH5kQ6mPFreM3Z0uLK9EFaeCZZUYqsedDLCf3Urrysg==", "dev": true, "requires": { - "@types/accepts": "*", - "@types/cookies": "*", - "@types/events": "*", - "@types/http-assert": "*", - "@types/keygrip": "*", - "@types/koa-compose": "*", - "@types/node": "*" + "@types/accepts": "1.3.5", + "@types/cookies": "0.7.1", + "@types/events": "1.2.0", + "@types/http-assert": "1.3.0", + "@types/keygrip": "1.0.1", + "@types/koa-compose": "3.2.2", + "@types/node": "10.5.2" } }, "@types/koa-compose": { @@ -2151,7 +2151,7 @@ "integrity": "sha512-L8D6y0a88Uv3/gdqUpmfHPGSFo676ggbtl5an3FgR4AzbvR+PKNdUMPr6F6Q/U3n3lCoCoV+WPt1vqJGbgPZ6Q==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.111" } }, "@types/lodash.has": { @@ -2160,7 +2160,7 @@ "integrity": "sha512-McmKJoXdSxMYIQzVWKSEGrHnTwJ1ErqXvsTQjFeGEhBmypgCjuANDSqxl4LKaKcoF4mNxMqSzH7wP4yQ0deLeQ==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.111" } }, "@types/lodash.maxby": { @@ -2169,7 +2169,7 @@ "integrity": "sha512-5AMk6874T1RMxtWkW0I4ORFptU508mTb8jYG0gaNCMDzX6kLn/VNQXewL6dasZd4dj/hSbM8dt7msLuI3rSIPQ==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.111" } }, "@types/lodash.merge": { @@ -2178,7 +2178,7 @@ "integrity": "sha512-bOCCutkbehfCeiSqJO5XcVKjsJvX28dgvjhs4aMmBAHAsOy2oOJQwHuIZ0elI1E94qQIdEsCvz8oLgUumd6teA==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.111" } }, "@types/lodash.omit": { @@ -2187,7 +2187,7 @@ "integrity": "sha512-a6VbeE+JjMQ3rKsQVRjle02E+iKPTsT7izzFRk4xJvv4TBcO85Lrpo+8n6iqsiH8yZ8mHy0LOmx7MVgO8OfovQ==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.111" } }, "@types/lodash.omitby": { @@ -2196,7 +2196,7 @@ "integrity": "sha512-IfMZru9AegVIu0lkOXc/ncCOR3zzC6FKTVuBHBd9PkmKbOCn5zFORT22Wf/fZ9SBr2HmaYLPkFhf5C7A7k/N9A==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.111" } }, "@types/lodash.pick": { @@ -2205,7 +2205,7 @@ "integrity": "sha512-7VR26qH/bzRBn8DN6HKWYwBB6dNo1dNSdc0nYQwPp5tua6u2dpHHCFccszvFKBdR2CjSEbL5hsqQul03P4COjA==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.111" } }, "@types/lodash.random": { @@ -2214,7 +2214,7 @@ "integrity": "sha512-JMCA9llou2Ye9mhz0H/7DaPrJ6PgmRb6ClnPGPzfoX7JUu9Q6NuRZON5INrTQH5LWahzqaZdeMwHyn8MGRkXoA==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.111" } }, "@types/lodash.without": { @@ -2223,7 +2223,7 @@ "integrity": "sha512-oD30pRigg97PfyF8u3WGkRnn3MPS/f2pwYf0s0dNeGOeScbZ1bo4BYBK7dab/lpX6EbUjoWAtLLMQW+LxlJpcQ==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.111" } }, "@types/mime": { @@ -2244,7 +2244,7 @@ "integrity": "sha512-MATIRH4VMIJki8lcYUZdNQEHuAG7iQ1FWwoLgxV+4fUOly2xZYdhHtGgvQyWiTeJqq2tZbE0nOOgZD6pR0FpNQ==", "dev": true, "requires": { - "@types/mime-db": "*" + "@types/mime-db": "1.27.0" } }, "@types/minimatch": { @@ -2265,7 +2265,7 @@ "integrity": "sha512-TeiJ7uvv/92ugSqZ0v9l0eNXzutlki0aK+R1K5bfA5SYUil46ITlxLW4iNTCf55P4L5weCmaOdtxGeGWvudwPg==", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "10.5.2" } }, "@types/nock": { @@ -2274,7 +2274,7 @@ "integrity": "sha512-ZHf/X8rTQ5Tb1rHjxIJYqm55uO265agE3G7NoSXVa2ep+EcJXgB2fsme+zBvK7MhrxTwkC/xkB6THyv50u0MGw==", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "10.5.2" } }, "@types/node": { @@ -2317,10 +2317,10 @@ "resolved": "https://registry.npmjs.org/@types/request/-/request-2.47.1.tgz", "integrity": "sha512-TV3XLvDjQbIeVxJ1Z3oCTDk/KuYwwcNKVwz2YaT0F5u86Prgc4syDAp6P96rkTQQ4bIdh+VswQIC9zS6NjY7/g==", "requires": { - "@types/caseless": "*", - "@types/form-data": "*", - "@types/node": "*", - "@types/tough-cookie": "*" + "@types/caseless": "0.12.1", + "@types/form-data": "2.2.1", + "@types/node": "10.5.2", + "@types/tough-cookie": "2.3.3" } }, "@types/restify": { @@ -2329,9 +2329,9 @@ "integrity": "sha512-k4O09swQnADEoj9B+ug7xBWkAdo7smv5W2IChW4wvC0ye2LUgyfbTjzzLTQLjd1OoLh/DdQACq0kOyZyjvNcrQ==", "dev": true, "requires": { - "@types/bunyan": "*", - "@types/node": "*", - "@types/spdy": "*" + "@types/bunyan": "1.8.4", + "@types/node": "10.5.2", + "@types/spdy": "3.4.4" } }, "@types/rimraf": { @@ -2340,8 +2340,8 @@ "integrity": "sha512-Hm/bnWq0TCy7jmjeN5bKYij9vw5GrDFWME4IuxV08278NtU/VdGbzsBohcCUJ7+QMqmUq5hpRKB39HeQWJjztQ==", "dev": true, "requires": { - "@types/glob": "*", - "@types/node": "*" + "@types/glob": "5.0.35", + "@types/node": "10.5.2" } }, "@types/serve-static": { @@ -2350,8 +2350,8 @@ "integrity": "sha512-/BZ4QRLpH/bNYgZgwhKEh+5AsboDBcUdlBYgzoLX0fpj3Y2gp6EApyOlM3bK53wQS/OE1SrdSYBAbux2D1528Q==", "dev": true, "requires": { - "@types/express-serve-static-core": "*", - "@types/mime": "*" + "@types/express-serve-static-core": "4.16.0", + "@types/mime": "2.0.0" } }, "@types/shot": { @@ -2360,7 +2360,7 @@ "integrity": "sha1-RZR3xRh9Pr0wNmCrCZ5+ng87ZW8=", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "10.5.2" } }, "@types/spdy": { @@ -2369,7 +2369,7 @@ "integrity": "sha512-N9LBlbVRRYq6HgYpPkqQc3a9HJ/iEtVZToW6xlTtJiMhmRJ7jJdV7TaZQJw/Ve/1ePUsQiCTDc4JMuzzag94GA==", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "10.5.2" } }, "@types/tmp": { @@ -2389,8 +2389,8 @@ "integrity": "sha512-bghLXFkCOsC1Y2TZ51etWfKDs6q249SAoHTZVfzWWdlZxoij+mgkj9AmUJWQpDY48TfnrTDIe43Xem4zdMe7mQ==", "dev": true, "requires": { - "boom": "7.x.x", - "hoek": "5.x.x" + "boom": "7.2.0", + "hoek": "5.0.3" } }, "accepts": { @@ -2399,7 +2399,7 @@ "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "dev": true, "requires": { - "mime-types": "~2.1.18", + "mime-types": "2.1.18", "negotiator": "0.6.1" } }, @@ -2421,7 +2421,7 @@ "integrity": "sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw==", "dev": true, "requires": { - "acorn": "^5.0.3" + "acorn": "5.7.1" } }, "ajv": { @@ -2429,10 +2429,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" } }, "ajv-keywords": { @@ -2447,9 +2447,9 @@ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" } }, "amdefine": { @@ -2464,7 +2464,7 @@ "integrity": "sha512-4UqoM8xQjwkQ78oiU4NbBK0UgYqeKMAKmwE4ec7Rz3rGU8ZEBFxzgF2sUYKOAlqIXExBDYLN6y1ShF5yQ4hwLQ==", "dev": true, "requires": { - "hoek": "5.x.x" + "hoek": "5.0.3" } }, "ansi-align": { @@ -2473,7 +2473,7 @@ "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "dev": true, "requires": { - "string-width": "^2.0.0" + "string-width": "2.1.1" } }, "ansi-escapes": { @@ -2494,7 +2494,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "color-convert": "1.9.2" } }, "any-promise": { @@ -2509,8 +2509,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "dev": true, "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" + "micromatch": "2.3.11", + "normalize-path": "2.1.1" } }, "argparse": { @@ -2519,7 +2519,7 @@ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "sprintf-js": "~1.0.2" + "sprintf-js": "1.0.3" } }, "argv": { @@ -2534,7 +2534,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "^1.0.1" + "arr-flatten": "1.1.0" } }, "arr-exclude": { @@ -2591,7 +2591,7 @@ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "array-uniq": "^1.0.1" + "array-uniq": "1.0.3" } }, "array-uniq": { @@ -2668,89 +2668,89 @@ "integrity": "sha512-4lGNJCf6xL8SvsKVEKxEE46se7JAUIAZoKHw9itTQuwcsydhpAMkBs5gOOiWiwt0JKNIuXWc2/r4r8ZdcNrBEw==", "dev": true, "requires": { - "@ava/babel-preset-stage-4": "^1.1.0", - "@ava/babel-preset-transform-test-files": "^3.0.0", - "@ava/write-file-atomic": "^2.2.0", - "@concordance/react": "^1.0.0", - "@ladjs/time-require": "^0.1.4", - "ansi-escapes": "^3.0.0", - "ansi-styles": "^3.1.0", - "arr-flatten": "^1.0.1", - "array-union": "^1.0.1", - "array-uniq": "^1.0.2", - "arrify": "^1.0.0", - "auto-bind": "^1.1.0", - "ava-init": "^0.2.0", - "babel-core": "^6.17.0", - "babel-generator": "^6.26.0", - "babel-plugin-syntax-object-rest-spread": "^6.13.0", - "bluebird": "^3.0.0", - "caching-transform": "^1.0.0", - "chalk": "^2.0.1", - "chokidar": "^1.4.2", - "clean-stack": "^1.1.1", - "clean-yaml-object": "^0.1.0", - "cli-cursor": "^2.1.0", - "cli-spinners": "^1.0.0", - "cli-truncate": "^1.0.0", - "co-with-promise": "^4.6.0", - "code-excerpt": "^2.1.1", - "common-path-prefix": "^1.0.0", - "concordance": "^3.0.0", - "convert-source-map": "^1.5.1", - "core-assert": "^0.2.0", - "currently-unhandled": "^0.4.1", - "debug": "^3.0.1", - "dot-prop": "^4.1.0", - "empower-core": "^0.6.1", - "equal-length": "^1.0.0", - "figures": "^2.0.0", - "find-cache-dir": "^1.0.0", - "fn-name": "^2.0.0", - "get-port": "^3.0.0", - "globby": "^6.0.0", - "has-flag": "^2.0.0", - "hullabaloo-config-manager": "^1.1.0", - "ignore-by-default": "^1.0.0", - "import-local": "^0.1.1", - "indent-string": "^3.0.0", - "is-ci": "^1.0.7", - "is-generator-fn": "^1.0.0", - "is-obj": "^1.0.0", - "is-observable": "^1.0.0", - "is-promise": "^2.1.0", - "last-line-stream": "^1.0.0", - "lodash.clonedeepwith": "^4.5.0", - "lodash.debounce": "^4.0.3", - "lodash.difference": "^4.3.0", - "lodash.flatten": "^4.2.0", - "loud-rejection": "^1.2.0", - "make-dir": "^1.0.0", - "matcher": "^1.0.0", - "md5-hex": "^2.0.0", - "meow": "^3.7.0", - "ms": "^2.0.0", - "multimatch": "^2.1.0", - "observable-to-promise": "^0.5.0", - "option-chain": "^1.0.0", - "package-hash": "^2.0.0", - "pkg-conf": "^2.0.0", - "plur": "^2.0.0", - "pretty-ms": "^3.0.0", - "require-precompiled": "^0.1.0", - "resolve-cwd": "^2.0.0", - "safe-buffer": "^5.1.1", - "semver": "^5.4.1", - "slash": "^1.0.0", - "source-map-support": "^0.5.0", - "stack-utils": "^1.0.1", - "strip-ansi": "^4.0.0", - "strip-bom-buf": "^1.0.0", - "supertap": "^1.0.0", - "supports-color": "^5.0.0", - "trim-off-newlines": "^1.0.1", - "unique-temp-dir": "^1.0.0", - "update-notifier": "^2.3.0" + "@ava/babel-preset-stage-4": "1.1.0", + "@ava/babel-preset-transform-test-files": "3.0.0", + "@ava/write-file-atomic": "2.2.0", + "@concordance/react": "1.0.0", + "@ladjs/time-require": "0.1.4", + "ansi-escapes": "3.1.0", + "ansi-styles": "3.2.1", + "arr-flatten": "1.1.0", + "array-union": "1.0.2", + "array-uniq": "1.0.3", + "arrify": "1.0.1", + "auto-bind": "1.2.1", + "ava-init": "0.2.1", + "babel-core": "6.26.3", + "babel-generator": "6.26.1", + "babel-plugin-syntax-object-rest-spread": "6.13.0", + "bluebird": "3.5.1", + "caching-transform": "1.0.1", + "chalk": "2.4.1", + "chokidar": "1.7.0", + "clean-stack": "1.3.0", + "clean-yaml-object": "0.1.0", + "cli-cursor": "2.1.0", + "cli-spinners": "1.3.1", + "cli-truncate": "1.1.0", + "co-with-promise": "4.6.0", + "code-excerpt": "2.1.1", + "common-path-prefix": "1.0.0", + "concordance": "3.0.0", + "convert-source-map": "1.5.1", + "core-assert": "0.2.1", + "currently-unhandled": "0.4.1", + "debug": "3.1.0", + "dot-prop": "4.2.0", + "empower-core": "0.6.2", + "equal-length": "1.0.1", + "figures": "2.0.0", + "find-cache-dir": "1.0.0", + "fn-name": "2.0.1", + "get-port": "3.2.0", + "globby": "6.1.0", + "has-flag": "2.0.0", + "hullabaloo-config-manager": "1.1.1", + "ignore-by-default": "1.0.1", + "import-local": "0.1.1", + "indent-string": "3.2.0", + "is-ci": "1.1.0", + "is-generator-fn": "1.0.0", + "is-obj": "1.0.1", + "is-observable": "1.1.0", + "is-promise": "2.1.0", + "last-line-stream": "1.0.0", + "lodash.clonedeepwith": "4.5.0", + "lodash.debounce": "4.0.8", + "lodash.difference": "4.5.0", + "lodash.flatten": "4.4.0", + "loud-rejection": "1.6.0", + "make-dir": "1.3.0", + "matcher": "1.1.1", + "md5-hex": "2.0.0", + "meow": "3.7.0", + "ms": "2.0.0", + "multimatch": "2.1.0", + "observable-to-promise": "0.5.0", + "option-chain": "1.0.0", + "package-hash": "2.0.0", + "pkg-conf": "2.1.0", + "plur": "2.1.2", + "pretty-ms": "3.2.0", + "require-precompiled": "0.1.0", + "resolve-cwd": "2.0.0", + "safe-buffer": "5.1.2", + "semver": "5.5.0", + "slash": "1.0.0", + "source-map-support": "0.5.6", + "stack-utils": "1.0.1", + "strip-ansi": "4.0.0", + "strip-bom-buf": "1.0.0", + "supertap": "1.0.0", + "supports-color": "5.4.0", + "trim-off-newlines": "1.0.1", + "unique-temp-dir": "1.0.0", + "update-notifier": "2.5.0" } }, "ava-init": { @@ -2759,11 +2759,11 @@ "integrity": "sha512-lXwK5LM+2g1euDRqW1mcSX/tqzY1QU7EjKpqayFPPtNRmbSYZ8RzPO5tqluTToijmtjp2M+pNpVdbcHssC4glg==", "dev": true, "requires": { - "arr-exclude": "^1.0.0", - "execa": "^0.7.0", - "has-yarn": "^1.0.0", - "read-pkg-up": "^2.0.0", - "write-pkg": "^3.1.0" + "arr-exclude": "1.0.0", + "execa": "0.7.0", + "has-yarn": "1.0.0", + "read-pkg-up": "2.0.0", + "write-pkg": "3.2.0" } }, "aws-sign2": { @@ -2781,8 +2781,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz", "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=", "requires": { - "follow-redirects": "^1.3.0", - "is-buffer": "^1.1.5" + "follow-redirects": "1.5.1", + "is-buffer": "1.1.6" } }, "b64": { @@ -2797,9 +2797,9 @@ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" }, "dependencies": { "ansi-styles": { @@ -2814,11 +2814,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "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" } }, "strip-ansi": { @@ -2827,7 +2827,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "supports-color": { @@ -2844,25 +2844,25 @@ "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.1", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.5.1", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.5", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" }, "dependencies": { "debug": { @@ -2882,14 +2882,14 @@ "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "dev": true, "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" }, "dependencies": { "jsesc": { @@ -2906,9 +2906,9 @@ "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "dev": true, "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-explode-assignable-expression": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-call-delegate": { @@ -2917,10 +2917,10 @@ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "dev": true, "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-explode-assignable-expression": { @@ -2929,9 +2929,9 @@ "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-function-name": { @@ -2940,11 +2940,11 @@ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "dev": true, "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-get-function-arity": { @@ -2953,8 +2953,8 @@ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-hoist-variables": { @@ -2963,8 +2963,8 @@ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-regex": { @@ -2973,9 +2973,9 @@ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.5" } }, "babel-helper-remap-async-to-generator": { @@ -2984,11 +2984,11 @@ "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "dev": true, "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helpers": { @@ -2997,8 +2997,8 @@ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-messages": { @@ -3007,7 +3007,7 @@ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-check-es2015-constants": { @@ -3016,7 +3016,7 @@ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-espower": { @@ -3025,13 +3025,13 @@ "integrity": "sha512-/+SRpy7pKgTI28oEHfn1wkuM5QFAdRq8WNsOOih1dVrdV6A/WbNbRZyl0eX5eyDgtb0lOE27PeDFuCX2j8OxVg==", "dev": true, "requires": { - "babel-generator": "^6.1.0", - "babylon": "^6.1.0", - "call-matcher": "^1.0.0", - "core-js": "^2.0.0", - "espower-location-detector": "^1.0.0", - "espurify": "^1.6.0", - "estraverse": "^4.1.1" + "babel-generator": "6.26.1", + "babylon": "6.18.0", + "call-matcher": "1.0.1", + "core-js": "2.5.7", + "espower-location-detector": "1.0.0", + "espurify": "1.8.1", + "estraverse": "4.2.0" } }, "babel-plugin-syntax-async-functions": { @@ -3064,9 +3064,9 @@ "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "dev": true, "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-destructuring": { @@ -3075,7 +3075,7 @@ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -3084,9 +3084,9 @@ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "dev": true, "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -3095,10 +3095,10 @@ "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "dev": true, "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -3107,12 +3107,12 @@ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "dev": true, "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-spread": { @@ -3121,7 +3121,7 @@ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -3130,9 +3130,9 @@ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "dev": true, "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -3141,9 +3141,9 @@ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "dev": true, "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "regexpu-core": "2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -3152,9 +3152,9 @@ "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "dev": true, "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", + "babel-plugin-syntax-exponentiation-operator": "6.13.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-strict-mode": { @@ -3163,8 +3163,8 @@ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-register": { @@ -3173,13 +3173,13 @@ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "dev": true, "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" + "babel-core": "6.26.3", + "babel-runtime": "6.26.0", + "core-js": "2.5.7", + "home-or-tmp": "2.0.0", + "lodash": "4.17.5", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" }, "dependencies": { "source-map-support": { @@ -3188,7 +3188,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "^0.5.6" + "source-map": "0.5.7" } } } @@ -3199,8 +3199,8 @@ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "babel-template": { @@ -3209,11 +3209,11 @@ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.5" } }, "babel-traverse": { @@ -3222,15 +3222,15 @@ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.4", + "lodash": "4.17.5" }, "dependencies": { "debug": { @@ -3250,10 +3250,10 @@ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" } }, "babylon": { @@ -3274,13 +3274,13 @@ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" }, "dependencies": { "define-property": { @@ -3289,7 +3289,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -3298,7 +3298,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -3307,7 +3307,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -3316,9 +3316,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -3341,7 +3341,7 @@ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "optional": true, "requires": { - "tweetnacl": "^0.14.3" + "tweetnacl": "0.14.5" } }, "big-time": { @@ -3369,15 +3369,15 @@ "dev": true, "requires": { "bytes": "3.0.0", - "content-type": "~1.0.4", + "content-type": "1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "~1.6.3", + "depd": "1.1.2", + "http-errors": "1.6.3", "iconv-lite": "0.4.23", - "on-finished": "~2.3.0", + "on-finished": "2.3.0", "qs": "6.5.2", "raw-body": "2.3.3", - "type-is": "~1.6.16" + "type-is": "1.6.16" }, "dependencies": { "debug": { @@ -3397,7 +3397,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.x.x" + "hoek": "5.0.3" } }, "bounce": { @@ -3406,8 +3406,8 @@ "integrity": "sha512-8syCGe8B2/WC53118/F/tFy5aW00j+eaGPXmAUP7iBhxc+EBZZxS1vKelWyBCH6IqojgS2t1gF0glH30qAJKEw==", "dev": true, "requires": { - "boom": "7.x.x", - "hoek": "5.x.x" + "boom": "7.2.0", + "hoek": "5.0.3" } }, "boxen": { @@ -3416,13 +3416,13 @@ "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", "dev": true, "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" + "ansi-align": "2.0.0", + "camelcase": "4.1.0", + "chalk": "2.4.1", + "cli-boxes": "1.0.0", + "string-width": "2.1.1", + "term-size": "1.2.0", + "widest-line": "2.0.0" }, "dependencies": { "camelcase": { @@ -3439,7 +3439,7 @@ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -3449,9 +3449,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" } }, "browser-stdout": { @@ -3495,10 +3495,10 @@ "integrity": "sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=", "dev": true, "requires": { - "dtrace-provider": "~0.8", - "moment": "^2.10.6", - "mv": "~2", - "safe-json-stringify": "~1" + "dtrace-provider": "0.8.7", + "moment": "2.22.2", + "mv": "2.1.1", + "safe-json-stringify": "1.2.0" } }, "bytes": { @@ -3513,15 +3513,15 @@ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" + "collection-visit": "1.0.0", + "component-emitter": "1.2.1", + "get-value": "2.0.6", + "has-value": "1.0.0", + "isobject": "3.0.1", + "set-value": "2.0.0", + "to-object-path": "0.3.0", + "union-value": "1.0.0", + "unset-value": "1.0.0" }, "dependencies": { "isobject": { @@ -3561,9 +3561,9 @@ "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", "dev": true, "requires": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" }, "dependencies": { "md5-hex": { @@ -3572,7 +3572,7 @@ "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "dev": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "write-file-atomic": { @@ -3581,9 +3581,9 @@ "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" } } } @@ -3594,8 +3594,8 @@ "integrity": "sha512-ollfFPSshiuYLp7AsrmpkQJ/PxCi6AzV81rCjBwWhyF2QGyUY/vPDMzoh4aUcWyucheRglG2LaS5qkIEfLRh6A==", "dev": true, "requires": { - "boom": "7.x.x", - "hoek": "5.x.x" + "boom": "7.2.0", + "hoek": "5.0.3" } }, "call-matcher": { @@ -3604,10 +3604,10 @@ "integrity": "sha1-UTTQd5hPcSpU2tPL9i3ijc5BbKg=", "dev": true, "requires": { - "core-js": "^2.0.0", - "deep-equal": "^1.0.0", - "espurify": "^1.6.0", - "estraverse": "^4.0.0" + "core-js": "2.5.7", + "deep-equal": "1.0.1", + "espurify": "1.8.1", + "estraverse": "4.2.0" } }, "call-me-maybe": { @@ -3628,7 +3628,7 @@ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { - "callsites": "^0.2.0" + "callsites": "0.2.0" } }, "callsites": { @@ -3649,8 +3649,8 @@ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" + "camelcase": "2.1.1", + "map-obj": "1.0.1" } }, "capture-stack-trace": { @@ -3670,10 +3670,10 @@ "integrity": "sha512-cTQTQeKMhWHU0lX8CADE3g1koGJu+AlcWFzAjMX/8P+XbkScGYw3tJsQpe2Oh8q68vOQbOLacz9k+6V/F3Z9DA==", "dev": true, "requires": { - "boom": "7.x.x", - "bounce": "1.x.x", - "hoek": "5.x.x", - "joi": "13.x.x" + "boom": "7.2.0", + "bounce": "1.2.0", + "hoek": "5.0.3", + "joi": "13.4.0" } }, "catbox-memory": { @@ -3682,9 +3682,9 @@ "integrity": "sha512-lhWtutLVhsq3Mucxk2McxBPPibJ34WcHuWFz3xqub9u9Ve/IQYpZv3ijLhQXfQped9DXozURiaq9O3aZpP91eg==", "dev": true, "requires": { - "big-time": "2.x.x", - "boom": "7.x.x", - "hoek": "5.x.x" + "big-time": "2.0.1", + "boom": "7.2.0", + "hoek": "5.0.3" } }, "catharsis": { @@ -3693,7 +3693,7 @@ "integrity": "sha1-mMyJDKZS3S7w5ws3klMQ/56Q/Is=", "dev": true, "requires": { - "underscore-contrib": "~0.3.0" + "underscore-contrib": "0.3.0" } }, "center-align": { @@ -3703,8 +3703,8 @@ "dev": true, "optional": true, "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "align-text": "0.1.4", + "lazy-cache": "1.0.4" } }, "chai": { @@ -3713,12 +3713,12 @@ "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", "dev": true, "requires": { - "assertion-error": "^1.0.1", - "check-error": "^1.0.1", - "deep-eql": "^3.0.0", - "get-func-name": "^2.0.0", - "pathval": "^1.0.0", - "type-detect": "^4.0.0" + "assertion-error": "1.1.0", + "check-error": "1.0.2", + "deep-eql": "3.0.1", + "get-func-name": "2.0.0", + "pathval": "1.1.0", + "type-detect": "4.0.8" } }, "chalk": { @@ -3727,9 +3727,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.0" } }, "chardet": { @@ -3750,15 +3750,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "dev": true, "requires": { - "anymatch": "^1.3.0", - "async-each": "^1.0.0", - "fsevents": "^1.0.0", - "glob-parent": "^2.0.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0" + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.2.4", + "glob-parent": "2.0.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" } }, "ci-info": { @@ -3779,9 +3779,9 @@ "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", "dev": true, "requires": { - "async": "^1.5.2", - "glob": "^7.0.0", - "resolve": "^1.1.6" + "async": "1.5.2", + "glob": "7.1.2", + "resolve": "1.1.7" } }, "class-utils": { @@ -3790,10 +3790,10 @@ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" }, "dependencies": { "define-property": { @@ -3802,7 +3802,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "isobject": { @@ -3837,7 +3837,7 @@ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "restore-cursor": "^2.0.0" + "restore-cursor": "2.0.0" } }, "cli-spinners": { @@ -3852,8 +3852,8 @@ "integrity": "sha512-bAtZo0u82gCfaAGfSNxUdTI9mNyza7D8w4CVCcaOsy7sgwDzvx6ekr6cuWJqY3UGzgnQ1+4wgENup5eIhgxEYA==", "dev": true, "requires": { - "slice-ansi": "^1.0.0", - "string-width": "^2.0.0" + "slice-ansi": "1.0.0", + "string-width": "2.1.1" } }, "cli-width": { @@ -3869,8 +3869,8 @@ "dev": true, "optional": true, "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", + "center-align": "0.1.3", + "right-align": "0.1.3", "wordwrap": "0.0.2" }, "dependencies": { @@ -3889,7 +3889,7 @@ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "dev": true, "requires": { - "mimic-response": "^1.0.0" + "mimic-response": "1.0.0" } }, "co": { @@ -3903,7 +3903,7 @@ "integrity": "sha1-QT59tvWJOmC5Qs9JLEvsk9tBWrc=", "dev": true, "requires": { - "pinkie-promise": "^1.0.0" + "pinkie-promise": "1.0.0" } }, "code-excerpt": { @@ -3912,7 +3912,7 @@ "integrity": "sha512-tJLhH3EpFm/1x7heIW0hemXJTUU5EWl2V0EIX558jp05Mt1U6DVryCgkp3l37cxqs+DNbNgxG43SkwJXpQ14Jw==", "dev": true, "requires": { - "convert-to-spaces": "^1.0.1" + "convert-to-spaces": "1.0.2" } }, "code-point-at": { @@ -3927,10 +3927,10 @@ "integrity": "sha512-KJyzHdg9B8U9LxXa7hS6jnEW5b1cNckLYc2YpnJ1nEFiOW+/iSzDHp+5MYEIQd9fN3/tC6WmGZmYiwxzkuGp/A==", "dev": true, "requires": { - "argv": "^0.0.2", - "ignore-walk": "^3.0.1", - "request": "^2.87.0", - "urlgrey": "^0.4.4" + "argv": "0.0.2", + "ignore-walk": "3.0.1", + "request": "2.87.0", + "urlgrey": "0.4.4" } }, "collection-visit": { @@ -3939,8 +3939,8 @@ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "map-visit": "1.0.0", + "object-visit": "1.0.1" } }, "color-convert": { @@ -3969,7 +3969,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "requires": { - "delayed-stream": "~1.0.0" + "delayed-stream": "1.0.0" } }, "commander": { @@ -4008,17 +4008,17 @@ "integrity": "sha512-CZBzJ3/l5QJjlZM20WY7+5GP5pMTw+1UEbThcpMw8/rojsi5sBCiD8ZbBLtD+jYpRGAkwuKuqk108c154V9eyQ==", "dev": true, "requires": { - "date-time": "^2.1.0", - "esutils": "^2.0.2", - "fast-diff": "^1.1.1", - "function-name-support": "^0.2.0", - "js-string-escape": "^1.0.1", - "lodash.clonedeep": "^4.5.0", - "lodash.flattendeep": "^4.4.0", - "lodash.merge": "^4.6.0", - "md5-hex": "^2.0.0", - "semver": "^5.3.0", - "well-known-symbols": "^1.0.0" + "date-time": "2.1.0", + "esutils": "2.0.2", + "fast-diff": "1.1.2", + "function-name-support": "0.2.0", + "js-string-escape": "1.0.1", + "lodash.clonedeep": "4.5.0", + "lodash.flattendeep": "4.4.0", + "lodash.merge": "4.6.1", + "md5-hex": "2.0.0", + "semver": "5.5.0", + "well-known-symbols": "1.0.0" }, "dependencies": { "date-time": { @@ -4027,7 +4027,7 @@ "integrity": "sha512-/9+C44X7lot0IeiyfgJmETtRMhBidBYM2QFFIkGa0U1k+hSyY87Nw7PY3eDqpvCBm7I3WCSfPeZskW/YYq6m4g==", "dev": true, "requires": { - "time-zone": "^1.0.0" + "time-zone": "1.0.0" } } } @@ -4038,12 +4038,12 @@ "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", "dev": true, "requires": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" + "dot-prop": "4.2.0", + "graceful-fs": "4.1.11", + "make-dir": "1.3.0", + "unique-string": "1.0.0", + "write-file-atomic": "2.3.0", + "xdg-basedir": "3.0.0" } }, "content": { @@ -4052,7 +4052,7 @@ "integrity": "sha512-wDP6CTWDpwCf791fNxlCCkZGRkrNzSEU/8ju9Hnr3Uc5mF/gFR5W+fcoGm6zUSlVPdSXYn5pCbySADKj7YM4Cg==", "dev": true, "requires": { - "boom": "7.x.x" + "boom": "7.2.0" } }, "content-disposition": { @@ -4103,8 +4103,8 @@ "integrity": "sha1-fIphX1SBxhq58WyDNzG8uPZjuZs=", "dev": true, "requires": { - "depd": "~1.1.1", - "keygrip": "~1.0.2" + "depd": "1.1.2", + "keygrip": "1.0.2" } }, "copy-descriptor": { @@ -4119,8 +4119,8 @@ "integrity": "sha1-+F4s+b/tKPdzzIs/pcW2m9wC/j8=", "dev": true, "requires": { - "buf-compare": "^1.0.0", - "is-error": "^2.2.0" + "buf-compare": "1.0.1", + "is-error": "2.2.1" } }, "core-js": { @@ -4140,11 +4140,11 @@ "integrity": "sha512-OtHMgPugkgwHlbph25wlMKd358lZNhX1Y2viUpPoFmlBPlEiPIRhztYWha11grbGPnlM+urp5saVmwsChCIOEg==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "nested-error-stacks": "^2.0.0", - "pify": "^3.0.0", - "safe-buffer": "^5.0.1" + "graceful-fs": "4.1.11", + "make-dir": "1.3.0", + "nested-error-stacks": "2.0.1", + "pify": "3.0.0", + "safe-buffer": "5.1.2" } }, "cpy": { @@ -4153,10 +4153,10 @@ "integrity": "sha512-Zo52tXKLJcgy/baacn6KaNoRAakkl2wb+R4u6qJ4wlD0uchncwRQcIk66PlGlkzuToCJO6A6PWX27Tdwc8LU2g==", "dev": true, "requires": { - "arrify": "^1.0.1", - "cp-file": "^6.0.0", - "globby": "^8.0.1", - "nested-error-stacks": "^2.0.0" + "arrify": "1.0.1", + "cp-file": "6.0.0", + "globby": "8.0.1", + "nested-error-stacks": "2.0.1" }, "dependencies": { "globby": { @@ -4165,13 +4165,13 @@ "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", "dev": true, "requires": { - "array-union": "^1.0.1", - "dir-glob": "^2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" + "array-union": "1.0.2", + "dir-glob": "2.0.0", + "fast-glob": "2.2.2", + "glob": "7.1.2", + "ignore": "3.3.10", + "pify": "3.0.0", + "slash": "1.0.0" } } } @@ -4182,8 +4182,8 @@ "integrity": "sha512-LzrtY3lBWvFZcw4lXgkEbbDUd7y78juC3C5l7gj3UyezMEZF0Be9fjCVLN1HoZAzdMDeC3KHehWpHBJvgVAPkw==", "dev": true, "requires": { - "cpy": "^7.0.0", - "meow": "^5.0.0" + "cpy": "7.0.1", + "meow": "5.0.0" }, "dependencies": { "camelcase": { @@ -4198,9 +4198,9 @@ "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", "dev": true, "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" + "camelcase": "4.1.0", + "map-obj": "2.0.0", + "quick-lru": "1.1.0" } }, "load-json-file": { @@ -4209,10 +4209,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.11", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" } }, "map-obj": { @@ -4227,15 +4227,15 @@ "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", "dev": true, "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0", - "yargs-parser": "^10.0.0" + "camelcase-keys": "4.2.0", + "decamelize-keys": "1.1.0", + "loud-rejection": "1.6.0", + "minimist-options": "3.0.2", + "normalize-package-data": "2.4.0", + "read-pkg-up": "3.0.0", + "redent": "2.0.0", + "trim-newlines": "2.0.0", + "yargs-parser": "10.1.0" } }, "parse-json": { @@ -4244,8 +4244,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" } }, "path-type": { @@ -4254,7 +4254,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "read-pkg": { @@ -4263,9 +4263,9 @@ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" + "load-json-file": "4.0.0", + "normalize-package-data": "2.4.0", + "path-type": "3.0.0" } }, "read-pkg-up": { @@ -4274,8 +4274,8 @@ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" + "find-up": "2.1.0", + "read-pkg": "3.0.0" } }, "redent": { @@ -4284,8 +4284,8 @@ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", "dev": true, "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" + "indent-string": "3.2.0", + "strip-indent": "2.0.0" } }, "strip-indent": { @@ -4306,7 +4306,7 @@ "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } } } @@ -4317,7 +4317,7 @@ "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "dev": true, "requires": { - "capture-stack-trace": "^1.0.0" + "capture-stack-trace": "1.0.0" } }, "cross-spawn": { @@ -4326,9 +4326,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.1" } }, "cryptiles": { @@ -4337,7 +4337,7 @@ "integrity": "sha512-U2ALcoAHvA1oO2xOreyHvtkQ+IELqDG2WVWRI1GH/XEmmfGIOalnM5MU5Dd2ITyWfr3m6kNqXiy8XuYyd4wKJw==", "dev": true, "requires": { - "boom": "7.x.x" + "boom": "7.2.0" } }, "crypto-random-string": { @@ -4352,10 +4352,10 @@ "integrity": "sha1-UjHt/BxxUlEuxFeBB2p6l/9SXAw=", "dev": true, "requires": { - "csv-generate": "^1.1.2", - "csv-parse": "^1.3.3", - "csv-stringify": "^1.1.2", - "stream-transform": "^0.2.2" + "csv-generate": "1.1.2", + "csv-parse": "1.3.3", + "csv-stringify": "1.1.2", + "stream-transform": "0.2.2" } }, "csv-generate": { @@ -4376,7 +4376,7 @@ "integrity": "sha1-d6QVJlgbzjOA8SsA18W7rHDIK1g=", "dev": true, "requires": { - "lodash.get": "~4.4.2" + "lodash.get": "4.4.2" } }, "currently-unhandled": { @@ -4385,7 +4385,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "array-find-index": "^1.0.1" + "array-find-index": "1.0.2" } }, "d": { @@ -4394,7 +4394,7 @@ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "dev": true, "requires": { - "es5-ext": "^0.10.9" + "es5-ext": "0.10.45" } }, "dashdash": { @@ -4402,7 +4402,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "date-time": { @@ -4431,8 +4431,8 @@ "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", "dev": true, "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" + "decamelize": "1.2.0", + "map-obj": "1.0.1" } }, "decode-uri-component": { @@ -4447,7 +4447,7 @@ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "dev": true, "requires": { - "mimic-response": "^1.0.0" + "mimic-response": "1.0.0" } }, "deep-eql": { @@ -4456,7 +4456,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "^4.0.0" + "type-detect": "4.0.8" } }, "deep-equal": { @@ -4483,8 +4483,8 @@ "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "dev": true, "requires": { - "foreach": "^2.0.5", - "object-keys": "^1.0.8" + "foreach": "2.0.5", + "object-keys": "1.0.12" } }, "define-property": { @@ -4493,8 +4493,8 @@ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "is-descriptor": "1.0.2", + "isobject": "3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -4503,7 +4503,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -4512,7 +4512,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -4521,9 +4521,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -4546,13 +4546,13 @@ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" + "globby": "5.0.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.1", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "rimraf": "2.6.2" }, "dependencies": { "globby": { @@ -4561,12 +4561,12 @@ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pify": { @@ -4587,7 +4587,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } } } @@ -4621,7 +4621,7 @@ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "detect-node": { @@ -4648,8 +4648,8 @@ "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", "dev": true, "requires": { - "arrify": "^1.0.1", - "path-type": "^3.0.0" + "arrify": "1.0.1", + "path-type": "3.0.0" }, "dependencies": { "path-type": { @@ -4658,7 +4658,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } } } @@ -4669,7 +4669,7 @@ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "esutils": "^2.0.2" + "esutils": "2.0.2" } }, "dom-serializer": { @@ -4678,8 +4678,8 @@ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "dev": true, "requires": { - "domelementtype": "~1.1.1", - "entities": "~1.1.1" + "domelementtype": "1.1.3", + "entities": "1.1.1" }, "dependencies": { "domelementtype": { @@ -4702,7 +4702,7 @@ "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "dev": true, "requires": { - "domelementtype": "1" + "domelementtype": "1.3.0" } }, "domutils": { @@ -4711,8 +4711,8 @@ "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "dev": true, "requires": { - "dom-serializer": "0", - "domelementtype": "1" + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" } }, "dot-prop": { @@ -4721,7 +4721,7 @@ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", "dev": true, "requires": { - "is-obj": "^1.0.0" + "is-obj": "1.0.1" } }, "dtrace-provider": { @@ -4731,7 +4731,7 @@ "dev": true, "optional": true, "requires": { - "nan": "^2.10.0" + "nan": "2.10.0" } }, "duplexer3": { @@ -4745,10 +4745,10 @@ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" + "end-of-stream": "1.4.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "stream-shift": "1.0.0" } }, "eastasianwidth": { @@ -4763,7 +4763,7 @@ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "optional": true, "requires": { - "jsbn": "~0.1.0" + "jsbn": "0.1.1" } }, "ecdsa-sig-formatter": { @@ -4771,7 +4771,7 @@ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz", "integrity": "sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM=", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "ee-first": { @@ -4786,8 +4786,8 @@ "integrity": "sha512-tP2WqM7QzrPguCCQEQfFFDF+6Pw6YWLQal3+GHQaV+0uIr0S+jyREQPWljE02zFCYPFYLZ3LosiRV+OzTrxPpQ==", "dev": true, "requires": { - "core-js": "^2.0.0", - "empower-core": "^1.2.0" + "core-js": "2.5.7", + "empower-core": "1.2.0" }, "dependencies": { "empower-core": { @@ -4797,7 +4797,7 @@ "dev": true, "requires": { "call-signature": "0.0.2", - "core-js": "^2.0.0" + "core-js": "2.5.7" } } } @@ -4808,7 +4808,7 @@ "integrity": "sha512-Ylck0Q6p8y/LpNzYeBccaxAPm2ZyuqBgErgZpO9KT0HuQWF0sJckBKCLmgS1/DEXEiyBi9XtYh3clZm5cAdARw==", "dev": true, "requires": { - "estraverse": "^4.2.0" + "estraverse": "4.2.0" } }, "empower-core": { @@ -4818,7 +4818,7 @@ "dev": true, "requires": { "call-signature": "0.0.2", - "core-js": "^2.0.0" + "core-js": "2.5.7" } }, "encodeurl": { @@ -4832,7 +4832,7 @@ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "requires": { - "once": "^1.4.0" + "once": "1.4.0" } }, "ent": { @@ -4858,7 +4858,7 @@ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "error-inject": { @@ -4873,11 +4873,11 @@ "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "dev": true, "requires": { - "es-to-primitive": "^1.1.1", - "function-bind": "^1.1.1", - "has": "^1.0.1", - "is-callable": "^1.1.3", - "is-regex": "^1.0.4" + "es-to-primitive": "1.1.1", + "function-bind": "1.1.1", + "has": "1.0.3", + "is-callable": "1.1.4", + "is-regex": "1.0.4" } }, "es-to-primitive": { @@ -4886,9 +4886,9 @@ "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", "dev": true, "requires": { - "is-callable": "^1.1.1", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.1" + "is-callable": "1.1.4", + "is-date-object": "1.0.1", + "is-symbol": "1.0.1" } }, "es5-ext": { @@ -4897,9 +4897,9 @@ "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", "dev": true, "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.1", - "next-tick": "1" + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1", + "next-tick": "1.0.0" } }, "es6-error": { @@ -4914,9 +4914,9 @@ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "dev": true, "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" + "d": "1.0.0", + "es5-ext": "0.10.45", + "es6-symbol": "3.1.1" } }, "es6-map": { @@ -4925,12 +4925,12 @@ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", "dev": true, "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-set": "~0.1.5", - "es6-symbol": "~3.1.1", - "event-emitter": "~0.3.5" + "d": "1.0.0", + "es5-ext": "0.10.45", + "es6-iterator": "2.0.3", + "es6-set": "0.1.5", + "es6-symbol": "3.1.1", + "event-emitter": "0.3.5" } }, "es6-set": { @@ -4939,11 +4939,11 @@ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", "dev": true, "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", + "d": "1.0.0", + "es5-ext": "0.10.45", + "es6-iterator": "2.0.3", "es6-symbol": "3.1.1", - "event-emitter": "~0.3.5" + "event-emitter": "0.3.5" } }, "es6-symbol": { @@ -4952,8 +4952,8 @@ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", "dev": true, "requires": { - "d": "1", - "es5-ext": "~0.10.14" + "d": "1.0.0", + "es5-ext": "0.10.45" } }, "es6-weak-map": { @@ -4962,10 +4962,10 @@ "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", "dev": true, "requires": { - "d": "1", - "es5-ext": "^0.10.14", - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" + "d": "1.0.0", + "es5-ext": "0.10.45", + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1" } }, "escallmatch": { @@ -4974,8 +4974,8 @@ "integrity": "sha1-UAmdhugJGwkt+N37w/mm+wWgJNA=", "dev": true, "requires": { - "call-matcher": "^1.0.0", - "esprima": "^2.0.0" + "call-matcher": "1.0.1", + "esprima": "2.7.3" }, "dependencies": { "esprima": { @@ -5010,11 +5010,11 @@ "integrity": "sha512-fjUOf8johsv23WuIKdNQU4P9t9jhQ4Qzx6pC2uW890OloK3Zs1ZAoCNpg/2larNF501jLl3UNy0kIRcF6VI22g==", "dev": true, "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.6.1" }, "dependencies": { "esprima": { @@ -5038,10 +5038,10 @@ "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", "dev": true, "requires": { - "es6-map": "^0.1.3", - "es6-weak-map": "^2.0.1", - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "es6-map": "0.1.5", + "es6-weak-map": "2.0.2", + "esrecurse": "4.2.1", + "estraverse": "4.2.0" } }, "eslint": { @@ -5050,45 +5050,45 @@ "integrity": "sha512-DyH6JsoA1KzA5+OSWFjg56DFJT+sDLO0yokaPZ9qY0UEmYrPA1gEX/G1MnVkmRDsksG4H1foIVz2ZXXM3hHYvw==", "dev": true, "requires": { - "ajv": "^6.5.0", - "babel-code-frame": "^6.26.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^4.0.0", - "eslint-utils": "^1.3.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^4.0.0", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.7.0", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^5.2.0", - "is-resolvable": "^1.1.0", - "js-yaml": "^3.11.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.5", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "regexpp": "^1.1.0", - "require-uncached": "^1.0.3", - "semver": "^5.5.0", - "string.prototype.matchall": "^2.0.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "^2.0.1", - "table": "^4.0.3", - "text-table": "^0.2.0" + "ajv": "6.5.2", + "babel-code-frame": "6.26.0", + "chalk": "2.4.1", + "cross-spawn": "6.0.5", + "debug": "3.1.0", + "doctrine": "2.1.0", + "eslint-scope": "4.0.0", + "eslint-utils": "1.3.1", + "eslint-visitor-keys": "1.0.0", + "espree": "4.0.0", + "esquery": "1.0.1", + "esutils": "2.0.2", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.2", + "globals": "11.7.0", + "ignore": "3.3.10", + "imurmurhash": "0.1.4", + "inquirer": "5.2.0", + "is-resolvable": "1.1.0", + "js-yaml": "3.12.0", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.5", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.0", + "regexpp": "1.1.0", + "require-uncached": "1.0.3", + "semver": "5.5.0", + "string.prototype.matchall": "2.0.0", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", + "table": "4.0.3", + "text-table": "0.2.0" }, "dependencies": { "ajv": { @@ -5097,10 +5097,10 @@ "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.1" + "fast-deep-equal": "2.0.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" } }, "cross-spawn": { @@ -5109,11 +5109,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "nice-try": "1.0.4", + "path-key": "2.0.1", + "semver": "5.5.0", + "shebang-command": "1.2.0", + "which": "1.3.1" } }, "fast-deep-equal": { @@ -5142,7 +5142,7 @@ "integrity": "sha512-ag8YEyBXsm3nmOv1Hz991VtNNDMRa+MNy8cY47Pl4bw6iuzqKbJajXdqUpiw13STdLLrznxgm1hj9NhxeOYq0A==", "dev": true, "requires": { - "get-stdin": "^5.0.1" + "get-stdin": "5.0.1" }, "dependencies": { "get-stdin": { @@ -5159,10 +5159,10 @@ "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", "dev": true, "requires": { - "ignore": "^3.3.6", - "minimatch": "^3.0.4", - "resolve": "^1.3.3", - "semver": "^5.4.1" + "ignore": "3.3.10", + "minimatch": "3.0.4", + "resolve": "1.8.1", + "semver": "5.5.0" }, "dependencies": { "resolve": { @@ -5171,7 +5171,7 @@ "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "dev": true, "requires": { - "path-parse": "^1.0.5" + "path-parse": "1.0.5" } } } @@ -5182,8 +5182,8 @@ "integrity": "sha512-tGek5clmW5swrAx1mdPYM8oThrBE83ePh7LeseZHBWfHVGrHPhKn7Y5zgRMbU/9D5Td9K4CEmUPjGxA7iw98Og==", "dev": true, "requires": { - "fast-diff": "^1.1.1", - "jest-docblock": "^21.0.0" + "fast-diff": "1.1.2", + "jest-docblock": "21.2.0" } }, "eslint-scope": { @@ -5192,8 +5192,8 @@ "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", "dev": true, "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "esrecurse": "4.2.1", + "estraverse": "4.2.0" } }, "eslint-utils": { @@ -5214,16 +5214,16 @@ "integrity": "sha512-F4TY1qYJB1aUyzB03NsZksZzUQmQoEBaTUjRJGR30GxbkbjKI41NhCyYjrF+bGgWN7x/ZsczYppRpz/0WdI0ug==", "dev": true, "requires": { - "array-find": "^1.0.0", - "escallmatch": "^1.5.0", - "escodegen": "^1.7.0", - "escope": "^3.3.0", - "espower-location-detector": "^1.0.0", - "espurify": "^1.3.0", - "estraverse": "^4.1.0", - "source-map": "^0.5.0", - "type-name": "^2.0.0", - "xtend": "^4.0.0" + "array-find": "1.0.0", + "escallmatch": "1.5.0", + "escodegen": "1.10.0", + "escope": "3.6.0", + "espower-location-detector": "1.0.0", + "espurify": "1.8.1", + "estraverse": "4.2.0", + "source-map": "0.5.7", + "type-name": "2.0.2", + "xtend": "4.0.1" } }, "espower-loader": { @@ -5232,11 +5232,11 @@ "integrity": "sha1-7bRsPFmga6yOpzppXIblxaC8gto=", "dev": true, "requires": { - "convert-source-map": "^1.1.0", - "espower-source": "^2.0.0", - "minimatch": "^3.0.0", - "source-map-support": "^0.4.0", - "xtend": "^4.0.0" + "convert-source-map": "1.5.1", + "espower-source": "2.3.0", + "minimatch": "3.0.4", + "source-map-support": "0.4.18", + "xtend": "4.0.1" }, "dependencies": { "source-map-support": { @@ -5245,7 +5245,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "^0.5.6" + "source-map": "0.5.7" } } } @@ -5256,10 +5256,10 @@ "integrity": "sha1-oXt+zFnTDheeK+9z+0E3cEyzMbU=", "dev": true, "requires": { - "is-url": "^1.2.1", - "path-is-absolute": "^1.0.0", - "source-map": "^0.5.0", - "xtend": "^4.0.0" + "is-url": "1.2.4", + "path-is-absolute": "1.0.1", + "source-map": "0.5.7", + "xtend": "4.0.1" } }, "espower-source": { @@ -5268,17 +5268,17 @@ "integrity": "sha512-Wc4kC4zUAEV7Qt31JRPoBUc5jjowHRylml2L2VaDQ1XEbnqQofGWx+gPR03TZAPokAMl5dqyL36h3ITyMXy3iA==", "dev": true, "requires": { - "acorn": "^5.0.0", - "acorn-es7-plugin": "^1.0.10", - "convert-source-map": "^1.1.1", - "empower-assert": "^1.0.0", - "escodegen": "^1.10.0", - "espower": "^2.1.1", - "estraverse": "^4.0.0", - "merge-estraverse-visitors": "^1.0.0", - "multi-stage-sourcemap": "^0.2.1", - "path-is-absolute": "^1.0.0", - "xtend": "^4.0.0" + "acorn": "5.7.1", + "acorn-es7-plugin": "1.1.7", + "convert-source-map": "1.5.1", + "empower-assert": "1.1.0", + "escodegen": "1.10.0", + "espower": "2.1.1", + "estraverse": "4.2.0", + "merge-estraverse-visitors": "1.0.0", + "multi-stage-sourcemap": "0.2.1", + "path-is-absolute": "1.0.1", + "xtend": "4.0.1" } }, "espree": { @@ -5287,8 +5287,8 @@ "integrity": "sha512-kapdTCt1bjmspxStVKX6huolXVV5ZfyZguY1lcfhVVZstce3bqxH9mcLzNn3/mlgW6wQ732+0fuG9v7h0ZQoKg==", "dev": true, "requires": { - "acorn": "^5.6.0", - "acorn-jsx": "^4.1.1" + "acorn": "5.7.1", + "acorn-jsx": "4.1.1" } }, "esprima": { @@ -5303,7 +5303,7 @@ "integrity": "sha512-ZDko6eY/o+D/gHCWyHTU85mKDgYcS4FJj7S+YD6WIInm7GQ6AnOjmcL4+buFV/JOztVLELi/7MmuGU5NHta0Mg==", "dev": true, "requires": { - "core-js": "^2.0.0" + "core-js": "2.5.7" } }, "esquery": { @@ -5312,7 +5312,7 @@ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { - "estraverse": "^4.0.0" + "estraverse": "4.2.0" } }, "esrecurse": { @@ -5321,7 +5321,7 @@ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "^4.1.0" + "estraverse": "4.2.0" } }, "estraverse": { @@ -5348,8 +5348,8 @@ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", "dev": true, "requires": { - "d": "1", - "es5-ext": "~0.10.14" + "d": "1.0.0", + "es5-ext": "0.10.45" } }, "ewma": { @@ -5358,7 +5358,7 @@ "integrity": "sha512-MYYK17A76cuuyvkR7MnqLW4iFYPEi5Isl2qb8rXiWpLiwFS9dxW/rncuNnjjgSENuVqZQkIuR4+DChVL4g1lnw==", "dev": true, "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "execa": { @@ -5367,13 +5367,13 @@ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" } }, "expand-brackets": { @@ -5382,7 +5382,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "^0.1.0" + "is-posix-bracket": "0.1.1" } }, "expand-range": { @@ -5391,7 +5391,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "^2.1.0" + "fill-range": "2.2.4" } }, "express": { @@ -5400,36 +5400,36 @@ "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", "dev": true, "requires": { - "accepts": "~1.3.5", + "accepts": "1.3.5", "array-flatten": "1.1.1", "body-parser": "1.18.2", "content-disposition": "0.5.2", - "content-type": "~1.0.4", + "content-type": "1.0.4", "cookie": "0.3.1", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", + "depd": "1.1.2", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", "finalhandler": "1.1.1", "fresh": "0.5.2", "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", + "methods": "1.1.2", + "on-finished": "2.3.0", + "parseurl": "1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.3", + "proxy-addr": "2.0.3", "qs": "6.5.1", - "range-parser": "~1.2.0", + "range-parser": "1.2.0", "safe-buffer": "5.1.1", "send": "0.16.2", "serve-static": "1.13.2", "setprototypeof": "1.1.0", - "statuses": "~1.4.0", - "type-is": "~1.6.16", + "statuses": "1.4.0", + "type-is": "1.6.16", "utils-merge": "1.0.1", - "vary": "~1.1.2" + "vary": "1.1.2" }, "dependencies": { "body-parser": { @@ -5439,15 +5439,15 @@ "dev": true, "requires": { "bytes": "3.0.0", - "content-type": "~1.0.4", + "content-type": "1.0.4", "debug": "2.6.9", - "depd": "~1.1.1", - "http-errors": "~1.6.2", + "depd": "1.1.2", + "http-errors": "1.6.3", "iconv-lite": "0.4.19", - "on-finished": "~2.3.0", + "on-finished": "2.3.0", "qs": "6.5.1", "raw-body": "2.3.2", - "type-is": "~1.6.15" + "type-is": "1.6.16" } }, "debug": { @@ -5504,7 +5504,7 @@ "depd": "1.1.1", "inherits": "2.0.3", "setprototypeof": "1.0.3", - "statuses": ">= 1.3.1 < 2" + "statuses": "1.4.0" } }, "setprototypeof": { @@ -5546,8 +5546,8 @@ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -5556,7 +5556,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -5567,9 +5567,9 @@ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" + "chardet": "0.4.2", + "iconv-lite": "0.4.23", + "tmp": "0.0.33" } }, "extglob": { @@ -5578,7 +5578,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "extsprintf": { @@ -5609,12 +5609,12 @@ "integrity": "sha512-TR6zxCKftDQnUAPvkrCWdBgDq/gbqx8A3ApnBrR5rMvpp6+KMJI0Igw7fkWPgeVK0uhRXTXdvO3O+YP0CaUX2g==", "dev": true, "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.0.1", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.1", - "micromatch": "^3.1.10" + "@mrmlnc/readdir-enhanced": "2.2.1", + "@nodelib/fs.stat": "1.1.0", + "glob-parent": "3.1.0", + "is-glob": "4.0.0", + "merge2": "1.2.2", + "micromatch": "3.1.10" }, "dependencies": { "arr-diff": { @@ -5635,16 +5635,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "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.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -5653,7 +5653,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -5673,13 +5673,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "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" }, "dependencies": { "define-property": { @@ -5688,7 +5688,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -5697,7 +5697,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -5706,7 +5706,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -5715,7 +5715,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -5726,7 +5726,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -5735,7 +5735,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -5746,9 +5746,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -5765,14 +5765,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "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.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "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" }, "dependencies": { "define-property": { @@ -5781,7 +5781,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -5790,7 +5790,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -5801,10 +5801,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -5813,7 +5813,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -5824,8 +5824,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "is-glob": "3.1.0", + "path-dirname": "1.0.2" }, "dependencies": { "is-glob": { @@ -5834,7 +5834,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "^2.1.0" + "is-extglob": "2.1.1" } } } @@ -5845,7 +5845,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -5854,7 +5854,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -5863,9 +5863,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-extglob": { @@ -5880,7 +5880,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "is-extglob": "2.1.1" } }, "is-number": { @@ -5889,7 +5889,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -5898,7 +5898,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -5921,19 +5921,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "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.2", + "nanomatch": "1.2.13", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } } } @@ -5955,7 +5955,7 @@ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "escape-string-regexp": "^1.0.5" + "escape-string-regexp": "1.0.5" } }, "file-entry-cache": { @@ -5964,8 +5964,8 @@ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "dev": true, "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" + "flat-cache": "1.3.0", + "object-assign": "4.1.1" } }, "filename-regex": { @@ -5980,8 +5980,8 @@ "integrity": "sha1-mo+jb06K1jTjv2tPPIiCVRRS6yA=", "dev": true, "requires": { - "is-object": "~1.0.1", - "merge-descriptors": "~1.0.0" + "is-object": "1.0.1", + "merge-descriptors": "1.0.1" } }, "fill-range": { @@ -5990,11 +5990,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "dev": true, "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "3.0.0", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" } }, "finalhandler": { @@ -6004,12 +6004,12 @@ "dev": true, "requires": { "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "statuses": "~1.4.0", - "unpipe": "~1.0.0" + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.4.0", + "unpipe": "1.0.0" }, "dependencies": { "debug": { @@ -6035,9 +6035,9 @@ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", "dev": true, "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^2.0.0" + "commondir": "1.0.1", + "make-dir": "1.3.0", + "pkg-dir": "2.0.0" } }, "find-my-way": { @@ -6046,9 +6046,9 @@ "integrity": "sha512-cwR1IxkB1JIIGxWpX3TQC1U/51htT4dps536rno7fkszeSSevvZGkl1dpIANRNq+X6/VDSF/S4JAuDPSTepHBA==", "dev": true, "requires": { - "fast-decode-uri-component": "^1.0.0", - "safe-regex": "^1.1.0", - "semver-store": "^0.3.0" + "fast-decode-uri-component": "1.0.0", + "safe-regex": "1.1.0", + "semver-store": "0.3.0" } }, "find-up": { @@ -6057,7 +6057,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "flat-cache": { @@ -6066,10 +6066,10 @@ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "dev": true, "requires": { - "circular-json": "^0.3.1", - "del": "^2.0.2", - "graceful-fs": "^4.1.2", - "write": "^0.2.1" + "circular-json": "0.3.3", + "del": "2.2.2", + "graceful-fs": "4.1.11", + "write": "0.2.1" } }, "fn-name": { @@ -6083,7 +6083,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.1.tgz", "integrity": "sha512-v9GI1hpaqq1ZZR6pBD1+kI7O24PhDvNGNodjS3MdcEqyrahCp8zbtpv+2B/krUnSmUH80lbAS7MrdeK5IylgKg==", "requires": { - "debug": "^3.1.0" + "debug": "3.1.0" } }, "for-in": { @@ -6098,7 +6098,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { - "for-in": "^1.0.1" + "for-in": "1.0.2" } }, "foreach": { @@ -6117,9 +6117,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "requires": { - "asynckit": "^0.4.0", + "asynckit": "0.4.0", "combined-stream": "1.0.6", - "mime-types": "^2.1.12" + "mime-types": "2.1.18" } }, "formidable": { @@ -6140,7 +6140,7 @@ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { - "map-cache": "^0.2.2" + "map-cache": "0.2.2" } }, "fresh": { @@ -6155,8 +6155,8 @@ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "inherits": "2.0.3", + "readable-stream": "2.3.6" } }, "fs-extra": { @@ -6165,9 +6165,9 @@ "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.2" } }, "fs.realpath": { @@ -6183,8 +6183,8 @@ "dev": true, "optional": true, "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" + "nan": "2.10.0", + "node-pre-gyp": "0.10.0" }, "dependencies": { "abbrev": { @@ -6210,8 +6210,8 @@ "dev": true, "optional": true, "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "delegates": "1.0.0", + "readable-stream": "2.3.6" } }, "balanced-match": { @@ -6224,7 +6224,7 @@ "bundled": true, "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -6288,7 +6288,7 @@ "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.2.4" } }, "fs.realpath": { @@ -6303,14 +6303,14 @@ "dev": true, "optional": true, "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" + "aproba": "1.2.0", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" } }, "glob": { @@ -6319,12 +6319,12 @@ "dev": true, "optional": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "has-unicode": { @@ -6339,7 +6339,7 @@ "dev": true, "optional": true, "requires": { - "safer-buffer": "^2.1.0" + "safer-buffer": "2.1.2" } }, "ignore-walk": { @@ -6348,7 +6348,7 @@ "dev": true, "optional": true, "requires": { - "minimatch": "^3.0.4" + "minimatch": "3.0.4" } }, "inflight": { @@ -6357,8 +6357,8 @@ "dev": true, "optional": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -6377,7 +6377,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "isarray": { @@ -6391,7 +6391,7 @@ "bundled": true, "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -6404,8 +6404,8 @@ "bundled": true, "dev": true, "requires": { - "safe-buffer": "^5.1.1", - "yallist": "^3.0.0" + "safe-buffer": "5.1.1", + "yallist": "3.0.2" } }, "minizlib": { @@ -6414,7 +6414,7 @@ "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.2.4" } }, "mkdirp": { @@ -6437,9 +6437,9 @@ "dev": true, "optional": true, "requires": { - "debug": "^2.1.2", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" + "debug": "2.6.9", + "iconv-lite": "0.4.21", + "sax": "1.2.4" } }, "node-pre-gyp": { @@ -6448,16 +6448,16 @@ "dev": true, "optional": true, "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.0", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.1.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" + "detect-libc": "1.0.3", + "mkdirp": "0.5.1", + "needle": "2.2.0", + "nopt": "4.0.1", + "npm-packlist": "1.1.10", + "npmlog": "4.1.2", + "rc": "1.2.7", + "rimraf": "2.6.2", + "semver": "5.5.0", + "tar": "4.4.1" } }, "nopt": { @@ -6466,8 +6466,8 @@ "dev": true, "optional": true, "requires": { - "abbrev": "1", - "osenv": "^0.1.4" + "abbrev": "1.1.1", + "osenv": "0.1.5" } }, "npm-bundled": { @@ -6482,8 +6482,8 @@ "dev": true, "optional": true, "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.3" } }, "npmlog": { @@ -6492,10 +6492,10 @@ "dev": true, "optional": true, "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" } }, "number-is-nan": { @@ -6514,7 +6514,7 @@ "bundled": true, "dev": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "os-homedir": { @@ -6535,8 +6535,8 @@ "dev": true, "optional": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "path-is-absolute": { @@ -6557,10 +6557,10 @@ "dev": true, "optional": true, "requires": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "deep-extend": "0.5.1", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" }, "dependencies": { "minimist": { @@ -6577,13 +6577,13 @@ "dev": true, "optional": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" } }, "rimraf": { @@ -6592,7 +6592,7 @@ "dev": true, "optional": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "safe-buffer": { @@ -6635,9 +6635,9 @@ "bundled": true, "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "string_decoder": { @@ -6646,7 +6646,7 @@ "dev": true, "optional": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.1" } }, "strip-ansi": { @@ -6654,7 +6654,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-json-comments": { @@ -6669,13 +6669,13 @@ "dev": true, "optional": true, "requires": { - "chownr": "^1.0.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.2.4", - "minizlib": "^1.1.0", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.1", - "yallist": "^3.0.2" + "chownr": "1.0.1", + "fs-minipass": "1.2.5", + "minipass": "2.2.4", + "minizlib": "1.1.0", + "mkdirp": "0.5.1", + "safe-buffer": "5.1.1", + "yallist": "3.0.2" } }, "util-deprecate": { @@ -6690,7 +6690,7 @@ "dev": true, "optional": true, "requires": { - "string-width": "^1.0.2" + "string-width": "1.0.2" } }, "wrappy": { @@ -6728,8 +6728,8 @@ "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.6.3.tgz", "integrity": "sha512-MSmczZctbz91AxCvqp9GHBoZOSbJKAICV7Ow/AIWSJZRrRchUd5NL1b2P4OfP+4m490BEUPhhARfpHdqCxuCvg==", "requires": { - "axios": "^0.18.0", - "extend": "^3.0.1", + "axios": "0.18.0", + "extend": "3.0.1", "retry-axios": "0.3.2" } }, @@ -6774,7 +6774,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "glob": { @@ -6783,12 +6783,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "glob-base": { @@ -6797,8 +6797,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" + "glob-parent": "2.0.0", + "is-glob": "2.0.1" } }, "glob-parent": { @@ -6807,7 +6807,7 @@ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { - "is-glob": "^2.0.0" + "is-glob": "2.0.1" } }, "glob-to-regexp": { @@ -6822,7 +6822,7 @@ "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "dev": true, "requires": { - "ini": "^1.3.4" + "ini": "1.3.5" } }, "globals": { @@ -6837,11 +6837,11 @@ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "dev": true, "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "array-union": "1.0.2", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" }, "dependencies": { "pify": { @@ -6862,7 +6862,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } } } @@ -6872,13 +6872,13 @@ "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-1.6.1.tgz", "integrity": "sha512-jYiWC8NA9n9OtQM7ANn0Tk464do9yhKEtaJ72pKcaBiEwn4LwcGYIYOfwtfsSm3aur/ed3tlSxbmg24IAT6gAg==", "requires": { - "axios": "^0.18.0", - "gcp-metadata": "^0.6.3", - "gtoken": "^2.3.0", - "jws": "^3.1.5", - "lodash.isstring": "^4.0.1", - "lru-cache": "^4.1.3", - "retry-axios": "^0.3.2" + "axios": "0.18.0", + "gcp-metadata": "0.6.3", + "gtoken": "2.3.0", + "jws": "3.1.5", + "lodash.isstring": "4.0.1", + "lru-cache": "4.1.3", + "retry-axios": "0.3.2" } }, "google-p12-pem": { @@ -6886,8 +6886,8 @@ "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-1.0.2.tgz", "integrity": "sha512-+EuKr4CLlGsnXx4XIJIVkcKYrsa2xkAmCvxRhX2HsazJzUBAJ35wARGeApHUn4nNfPD03Vl057FskNr20VaCyg==", "requires": { - "node-forge": "^0.7.4", - "pify": "^3.0.0" + "node-forge": "0.7.5", + "pify": "3.0.0" } }, "got": { @@ -6896,23 +6896,23 @@ "integrity": "sha512-giadqJpXIwjY+ZsuWys8p2yjZGhOHiU4hiJHjS/oeCxw1u8vANQz3zPlrxW2Zw/siCXsSMI3hvzWGcnFyujyAg==", "dev": true, "requires": { - "@sindresorhus/is": "^0.7.0", - "cacheable-request": "^2.1.1", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "into-stream": "^3.1.0", - "is-retry-allowed": "^1.1.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "mimic-response": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^2.0.1", - "pify": "^3.0.0", - "safe-buffer": "^5.1.1", - "timed-out": "^4.0.1", - "url-parse-lax": "^3.0.0", - "url-to-options": "^1.0.1" + "@sindresorhus/is": "0.7.0", + "cacheable-request": "2.1.4", + "decompress-response": "3.3.0", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "into-stream": "3.1.0", + "is-retry-allowed": "1.1.0", + "isurl": "1.0.0", + "lowercase-keys": "1.0.1", + "mimic-response": "1.0.0", + "p-cancelable": "0.3.0", + "p-timeout": "2.0.1", + "pify": "3.0.0", + "safe-buffer": "5.1.2", + "timed-out": "4.0.1", + "url-parse-lax": "3.0.0", + "url-to-options": "1.0.1" }, "dependencies": { "prepend-http": { @@ -6927,7 +6927,7 @@ "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "dev": true, "requires": { - "prepend-http": "^2.0.0" + "prepend-http": "2.0.0" } } } @@ -6949,11 +6949,11 @@ "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-2.3.0.tgz", "integrity": "sha512-Jc9/8mV630cZE9FC5tIlJCZNdUjwunvlwOtCz6IDlaiB4Sz68ki29a1+q97sWTnTYroiuF9B135rod9zrQdHLw==", "requires": { - "axios": "^0.18.0", - "google-p12-pem": "^1.0.0", - "jws": "^3.1.4", - "mime": "^2.2.0", - "pify": "^3.0.0" + "axios": "0.18.0", + "google-p12-pem": "1.0.2", + "jws": "3.1.5", + "mime": "2.3.1", + "pify": "3.0.0" } }, "gts": { @@ -6962,15 +6962,15 @@ "integrity": "sha512-7yMBk3+SmyL4+047vIXOAUWlNfbIkuPH0UnhQYzurM8yj1ufiVH++BdBpZY7AP6/wytvzq7PuVzqAXbk5isn2A==", "dev": true, "requires": { - "chalk": "^2.4.1", + "chalk": "2.4.1", "clang-format": "1.2.3", - "inquirer": "^6.0.0", - "meow": "^5.0.0", - "pify": "^3.0.0", - "rimraf": "^2.6.2", - "tslint": "^5.9.1", - "update-notifier": "^2.5.0", - "write-file-atomic": "^2.3.0" + "inquirer": "6.0.0", + "meow": "5.0.0", + "pify": "3.0.0", + "rimraf": "2.6.2", + "tslint": "5.10.0", + "update-notifier": "2.5.0", + "write-file-atomic": "2.3.0" }, "dependencies": { "camelcase": { @@ -6985,9 +6985,9 @@ "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", "dev": true, "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" + "camelcase": "4.1.0", + "map-obj": "2.0.0", + "quick-lru": "1.1.0" } }, "chardet": { @@ -7002,9 +7002,9 @@ "integrity": "sha512-mpkfj0FEdxrIhOC04zk85X7StNtr0yXnG7zCb+8ikO8OJi2jsHh5YGoknNTyXgsbHOf1WOOcVU3kPFWT2WgCkQ==", "dev": true, "requires": { - "chardet": "^0.5.0", - "iconv-lite": "^0.4.22", - "tmp": "^0.0.33" + "chardet": "0.5.0", + "iconv-lite": "0.4.23", + "tmp": "0.0.33" } }, "inquirer": { @@ -7013,19 +7013,19 @@ "integrity": "sha512-tISQWRwtcAgrz+SHPhTH7d3e73k31gsOy6i1csonLc0u1dVK/wYvuOnFeiWqC5OXFIYbmrIFInef31wbT8MEJg==", "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.0", - "figures": "^2.0.0", - "lodash": "^4.3.0", + "ansi-escapes": "3.1.0", + "chalk": "2.4.1", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "3.0.0", + "figures": "2.0.0", + "lodash": "4.17.5", "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.1.0", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" + "run-async": "2.3.0", + "rxjs": "6.2.1", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" } }, "load-json-file": { @@ -7034,10 +7034,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.11", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" } }, "map-obj": { @@ -7052,15 +7052,15 @@ "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", "dev": true, "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0", - "yargs-parser": "^10.0.0" + "camelcase-keys": "4.2.0", + "decamelize-keys": "1.1.0", + "loud-rejection": "1.6.0", + "minimist-options": "3.0.2", + "normalize-package-data": "2.4.0", + "read-pkg-up": "3.0.0", + "redent": "2.0.0", + "trim-newlines": "2.0.0", + "yargs-parser": "10.1.0" } }, "parse-json": { @@ -7069,8 +7069,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" } }, "path-type": { @@ -7079,7 +7079,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "read-pkg": { @@ -7088,9 +7088,9 @@ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" + "load-json-file": "4.0.0", + "normalize-package-data": "2.4.0", + "path-type": "3.0.0" } }, "read-pkg-up": { @@ -7099,8 +7099,8 @@ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" + "find-up": "2.1.0", + "read-pkg": "3.0.0" } }, "redent": { @@ -7109,8 +7109,8 @@ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", "dev": true, "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" + "indent-string": "3.2.0", + "strip-indent": "2.0.0" } }, "rxjs": { @@ -7119,7 +7119,7 @@ "integrity": "sha512-OwMxHxmnmHTUpgO+V7dZChf3Tixf4ih95cmXjzzadULziVl/FKhHScGLj4goEw9weePVOH2Q0+GcCBUhKCZc/g==", "dev": true, "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.3" } }, "strip-indent": { @@ -7140,7 +7140,7 @@ "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } } } @@ -7157,10 +7157,10 @@ "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" }, "dependencies": { "source-map": { @@ -7169,7 +7169,7 @@ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -7180,23 +7180,23 @@ "integrity": "sha512-UxMKYzrjfXlcztJQPEB3os5rM3SKgSQVxoOym4KI3JdP4pxl5WUdZYF8it4Kga2OMTGwB+ZTy+DU9b/oDaQHRQ==", "dev": true, "requires": { - "accept": "3.x.x", - "ammo": "3.x.x", - "boom": "7.x.x", - "bounce": "1.x.x", - "call": "5.x.x", - "catbox": "10.x.x", - "catbox-memory": "3.x.x", - "heavy": "6.x.x", - "hoek": "5.x.x", - "joi": "13.x.x", - "mimos": "4.x.x", - "podium": "3.x.x", - "shot": "4.x.x", - "statehood": "6.x.x", - "subtext": "6.x.x", - "teamwork": "3.x.x", - "topo": "3.x.x" + "accept": "3.0.2", + "ammo": "3.0.1", + "boom": "7.2.0", + "bounce": "1.2.0", + "call": "5.0.1", + "catbox": "10.0.2", + "catbox-memory": "3.1.2", + "heavy": "6.1.0", + "hoek": "5.0.3", + "joi": "13.4.0", + "mimos": "4.0.0", + "podium": "3.1.2", + "shot": "4.0.5", + "statehood": "6.0.6", + "subtext": "6.0.7", + "teamwork": "3.0.1", + "topo": "3.0.0" } }, "har-schema": { @@ -7209,8 +7209,8 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "requires": { - "ajv": "^5.1.0", - "har-schema": "^2.0.0" + "ajv": "5.5.2", + "har-schema": "2.0.0" } }, "has": { @@ -7219,7 +7219,7 @@ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { - "function-bind": "^1.1.1" + "function-bind": "1.1.1" } }, "has-ansi": { @@ -7228,7 +7228,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "has-color": { @@ -7261,7 +7261,7 @@ "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", "dev": true, "requires": { - "has-symbol-support-x": "^1.4.1" + "has-symbol-support-x": "1.4.2" } }, "has-value": { @@ -7270,9 +7270,9 @@ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -7289,8 +7289,8 @@ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "is-number": { @@ -7299,7 +7299,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -7308,7 +7308,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -7319,7 +7319,7 @@ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -7342,9 +7342,9 @@ "integrity": "sha512-TKS9DC9NOTGulHQI31Lx+bmeWmNOstbJbGMiN3pX6bF+Zc2GKSpbbym4oasNnB6yPGkqJ9TQXXYDGohqNSJRxA==", "dev": true, "requires": { - "boom": "7.x.x", - "hoek": "5.x.x", - "joi": "13.x.x" + "boom": "7.2.0", + "hoek": "5.0.3", + "joi": "13.4.0" } }, "hoek": { @@ -7359,8 +7359,8 @@ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "dev": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "hosted-git-info": { @@ -7375,10 +7375,10 @@ "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "dev": true, "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" + "inherits": "2.0.3", + "obuf": "1.1.2", + "readable-stream": "2.3.6", + "wbuf": "1.7.3" } }, "htmlparser2": { @@ -7387,12 +7387,12 @@ "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", "dev": true, "requires": { - "domelementtype": "^1.3.0", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^2.0.2" + "domelementtype": "1.3.0", + "domhandler": "2.4.2", + "domutils": "1.7.0", + "entities": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6" } }, "http-assert": { @@ -7401,8 +7401,8 @@ "integrity": "sha1-oxpc+IyHPsu1eWkH1NbxMujAHko=", "dev": true, "requires": { - "deep-equal": "~1.0.1", - "http-errors": "~1.6.1" + "deep-equal": "1.0.1", + "http-errors": "1.6.3" } }, "http-cache-semantics": { @@ -7423,10 +7423,10 @@ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, "requires": { - "depd": "~1.1.2", + "depd": "1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "statuses": "1.5.0" } }, "http-signature": { @@ -7434,9 +7434,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.14.2" } }, "hullabaloo-config-manager": { @@ -7445,20 +7445,20 @@ "integrity": "sha512-ztKnkZV0TmxnumCDHHgLGNiDnotu4EHCp9YMkznWuo4uTtCyJ+cu+RNcxUeXYKTllpvLFWnbfWry09yzszgg+A==", "dev": true, "requires": { - "dot-prop": "^4.1.0", - "es6-error": "^4.0.2", - "graceful-fs": "^4.1.11", - "indent-string": "^3.1.0", - "json5": "^0.5.1", - "lodash.clonedeep": "^4.5.0", - "lodash.clonedeepwith": "^4.5.0", - "lodash.isequal": "^4.5.0", - "lodash.merge": "^4.6.0", - "md5-hex": "^2.0.0", - "package-hash": "^2.0.0", - "pkg-dir": "^2.0.0", - "resolve-from": "^3.0.0", - "safe-buffer": "^5.0.1" + "dot-prop": "4.2.0", + "es6-error": "4.1.1", + "graceful-fs": "4.1.11", + "indent-string": "3.2.0", + "json5": "0.5.1", + "lodash.clonedeep": "4.5.0", + "lodash.clonedeepwith": "4.5.0", + "lodash.isequal": "4.5.0", + "lodash.merge": "4.6.1", + "md5-hex": "2.0.0", + "package-hash": "2.0.0", + "pkg-dir": "2.0.0", + "resolve-from": "3.0.0", + "safe-buffer": "5.1.2" } }, "iconv-lite": { @@ -7467,7 +7467,7 @@ "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "dev": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": "2.1.2" } }, "ignore": { @@ -7488,7 +7488,7 @@ "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "dev": true, "requires": { - "minimatch": "^3.0.4" + "minimatch": "3.0.4" } }, "import-lazy": { @@ -7503,8 +7503,8 @@ "integrity": "sha1-sReVcqrNwRxqkQCftDDbyrX2aKg=", "dev": true, "requires": { - "pkg-dir": "^2.0.0", - "resolve-cwd": "^2.0.0" + "pkg-dir": "2.0.0", + "resolve-cwd": "2.0.0" } }, "imurmurhash": { @@ -7531,8 +7531,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -7552,8 +7552,8 @@ "integrity": "sha512-STx5orGQU1gfrkoI/fMU7lX6CSP7LBGO10gXNgOZhwKhUqbtNjCkYSewJtNnLmWP1tAGN6oyEpG1HFPw5vpa5Q==", "dev": true, "requires": { - "moment": "^2.14.1", - "sanitize-html": "^1.13.0" + "moment": "2.22.2", + "sanitize-html": "1.18.2" } }, "inquirer": { @@ -7562,19 +7562,19 @@ "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==", "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.1.0", - "figures": "^2.0.0", - "lodash": "^4.3.0", + "ansi-escapes": "3.1.0", + "chalk": "2.4.1", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.2.0", + "figures": "2.0.0", + "lodash": "4.17.5", "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^5.5.2", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" + "run-async": "2.3.0", + "rxjs": "5.5.11", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" } }, "intelli-espower-loader": { @@ -7583,7 +7583,7 @@ "integrity": "sha1-LHsDFGvB1GvyENCgOXxckatMorA=", "dev": true, "requires": { - "espower-loader": "^1.0.0" + "espower-loader": "1.2.2" } }, "into-stream": { @@ -7592,8 +7592,8 @@ "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", "dev": true, "requires": { - "from2": "^2.1.1", - "p-is-promise": "^1.1.0" + "from2": "2.3.0", + "p-is-promise": "1.1.0" } }, "invariant": { @@ -7602,7 +7602,7 @@ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "1.4.0" } }, "invert-kv": { @@ -7623,9 +7623,9 @@ "integrity": "sha512-7iQ5/xFMIYaNt9g2oiNiWdhrOTdRUMFaWENUd0KghxwPUhrIH8DUY8FEyLNTTzf75jaII+jMexLdY/2HfV61RQ==", "dev": true, "requires": { - "boom": "7.x.x", - "cryptiles": "4.x.x", - "hoek": "5.x.x" + "boom": "7.2.0", + "cryptiles": "4.1.2", + "hoek": "5.0.3" } }, "irregular-plurals": { @@ -7645,7 +7645,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-arrayish": { @@ -7660,7 +7660,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "binary-extensions": "^1.0.0" + "binary-extensions": "1.11.0" } }, "is-buffer": { @@ -7674,7 +7674,7 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-callable": { @@ -7689,7 +7689,7 @@ "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", "dev": true, "requires": { - "ci-info": "^1.0.0" + "ci-info": "1.1.3" } }, "is-data-descriptor": { @@ -7698,7 +7698,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-date-object": { @@ -7713,9 +7713,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" }, "dependencies": { "kind-of": { @@ -7738,7 +7738,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { - "is-primitive": "^2.0.0" + "is-primitive": "2.0.0" } }, "is-error": { @@ -7765,7 +7765,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { @@ -7792,7 +7792,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "is-installed-globally": { @@ -7801,8 +7801,8 @@ "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "dev": true, "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" + "global-dirs": "0.1.1", + "is-path-inside": "1.0.1" } }, "is-npm": { @@ -7817,7 +7817,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-obj": { @@ -7838,7 +7838,7 @@ "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", "dev": true, "requires": { - "symbol-observable": "^1.1.0" + "symbol-observable": "1.2.0" } }, "is-path-cwd": { @@ -7853,7 +7853,7 @@ "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, "requires": { - "is-path-inside": "^1.0.0" + "is-path-inside": "1.0.1" } }, "is-path-inside": { @@ -7862,7 +7862,7 @@ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { - "path-is-inside": "^1.0.1" + "path-is-inside": "1.0.2" } }, "is-plain-obj": { @@ -7877,7 +7877,7 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -7918,7 +7918,7 @@ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "requires": { - "has": "^1.0.1" + "has": "1.0.3" } }, "is-resolvable": { @@ -7984,7 +7984,7 @@ "integrity": "sha512-zfRhJn9rFSGhzU5tGZqepRSAj3+g6oTOHxMGGriWNJZzyLPUK8H7VHpqKntegnW8KLyGA9zwuNaCoopl40LTpg==", "dev": true, "requires": { - "punycode": "2.x.x" + "punycode": "2.1.1" }, "dependencies": { "punycode": { @@ -8032,8 +8032,8 @@ "@babel/template": "7.0.0-beta.51", "@babel/traverse": "7.0.0-beta.51", "@babel/types": "7.0.0-beta.51", - "istanbul-lib-coverage": "^2.0.1", - "semver": "^5.5.0" + "istanbul-lib-coverage": "2.0.1", + "semver": "5.5.0" } }, "isurl": { @@ -8042,8 +8042,8 @@ "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", "dev": true, "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" + "has-to-string-tag-x": "1.4.1", + "is-object": "1.0.1" } }, "jest-docblock": { @@ -8058,9 +8058,9 @@ "integrity": "sha512-JuK4GjEu6j7zr9FuVe2MAseZ6si/8/HaY0qMAejfDFHp7jcH4OKE937mIHM5VT4xDS0q7lpQbszbxKV9rm0yUg==", "dev": true, "requires": { - "hoek": "5.x.x", - "isemail": "3.x.x", - "topo": "3.x.x" + "hoek": "5.0.3", + "isemail": "3.1.2", + "topo": "3.0.0" } }, "js-green-licenses": { @@ -8069,14 +8069,14 @@ "integrity": "sha512-HM/SKwAl1R0y9kkBili6GqKc31ZnjzY7JHC2uO9bAHJNRmY5c/s+2cETyaqX0kBD8gX8QVhS4dJjRtY1nAwb4w==", "dev": true, "requires": { - "argparse": "^1.0.9", - "axios": "^0.18.0", - "npm-package-arg": "^6.0.0", - "package-json": "^4.0.1", - "pify": "^3.0.0", - "spdx-correct": "^3.0.0", - "spdx-satisfies": "^4.0.0", - "strip-json-comments": "^2.0.1" + "argparse": "1.0.10", + "axios": "0.18.0", + "npm-package-arg": "6.1.0", + "package-json": "4.0.1", + "pify": "3.0.0", + "spdx-correct": "3.0.0", + "spdx-satisfies": "4.0.0", + "strip-json-comments": "2.0.1" } }, "js-string-escape": { @@ -8097,8 +8097,8 @@ "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "1.0.10", + "esprima": "4.0.0" } }, "js2xmlparser": { @@ -8107,7 +8107,7 @@ "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", "dev": true, "requires": { - "xmlcreate": "^1.0.1" + "xmlcreate": "1.0.2" } }, "jsbn": { @@ -8123,17 +8123,17 @@ "dev": true, "requires": { "babylon": "7.0.0-beta.19", - "bluebird": "~3.5.0", - "catharsis": "~0.8.9", - "escape-string-regexp": "~1.0.5", - "js2xmlparser": "~3.0.0", - "klaw": "~2.0.0", - "marked": "~0.3.6", - "mkdirp": "~0.5.1", - "requizzle": "~0.2.1", - "strip-json-comments": "~2.0.1", + "bluebird": "3.5.1", + "catharsis": "0.8.9", + "escape-string-regexp": "1.0.5", + "js2xmlparser": "3.0.0", + "klaw": "2.0.0", + "marked": "0.3.19", + "mkdirp": "0.5.1", + "requizzle": "0.2.1", + "strip-json-comments": "2.0.1", "taffydb": "2.6.2", - "underscore": "~1.8.3" + "underscore": "1.8.3" }, "dependencies": { "babylon": { @@ -8195,7 +8195,7 @@ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { - "graceful-fs": "^4.1.6" + "graceful-fs": "4.1.11" } }, "jsprim": { @@ -8222,7 +8222,7 @@ "requires": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.10", - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "jws": { @@ -8230,8 +8230,8 @@ "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz", "integrity": "sha512-GsCSexFADNQUr8T5HPJvayTjvPIfoyJPtLQBwn5a4WZQchcrPMPMAWcC1AzJVRDKyD6ZPROPAxgv6rfHViO4uQ==", "requires": { - "jwa": "^1.1.5", - "safe-buffer": "^5.0.1" + "jwa": "1.1.6", + "safe-buffer": "5.1.2" } }, "keygrip": { @@ -8255,7 +8255,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "klaw": { @@ -8264,7 +8264,7 @@ "integrity": "sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=", "dev": true, "requires": { - "graceful-fs": "^4.1.9" + "graceful-fs": "4.1.11" } }, "koa": { @@ -8273,30 +8273,30 @@ "integrity": "sha512-cchwbMeG2dv3E2xTAmheDAuvR53tPgJZN/Hf1h7bTzJLSPcFZp8/t5+bNKJ6GaQZoydhZQ+1GNruhKdj3lIrug==", "dev": true, "requires": { - "accepts": "^1.2.2", - "content-disposition": "~0.5.0", - "content-type": "^1.0.0", - "cookies": "~0.7.0", - "debug": "*", - "delegates": "^1.0.0", - "depd": "^1.1.0", - "destroy": "^1.0.3", - "error-inject": "~1.0.0", - "escape-html": "~1.0.1", - "fresh": "^0.5.2", - "http-assert": "^1.1.0", - "http-errors": "^1.2.8", - "is-generator-function": "^1.0.3", - "koa-compose": "^4.0.0", - "koa-convert": "^1.2.0", - "koa-is-json": "^1.0.0", - "mime-types": "^2.0.7", - "on-finished": "^2.1.0", + "accepts": "1.3.5", + "content-disposition": "0.5.2", + "content-type": "1.0.4", + "cookies": "0.7.1", + "debug": "3.1.0", + "delegates": "1.0.0", + "depd": "1.1.2", + "destroy": "1.0.4", + "error-inject": "1.0.0", + "escape-html": "1.0.3", + "fresh": "0.5.2", + "http-assert": "1.3.0", + "http-errors": "1.6.3", + "is-generator-function": "1.0.7", + "koa-compose": "4.1.0", + "koa-convert": "1.2.0", + "koa-is-json": "1.0.0", + "mime-types": "2.1.18", + "on-finished": "2.3.0", "only": "0.0.2", - "parseurl": "^1.3.0", - "statuses": "^1.2.0", - "type-is": "^1.5.5", - "vary": "^1.0.0" + "parseurl": "1.3.2", + "statuses": "1.5.0", + "type-is": "1.6.16", + "vary": "1.1.2" } }, "koa-compose": { @@ -8311,8 +8311,8 @@ "integrity": "sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA=", "dev": true, "requires": { - "co": "^4.6.0", - "koa-compose": "^3.0.0" + "co": "4.6.0", + "koa-compose": "3.2.1" }, "dependencies": { "koa-compose": { @@ -8321,7 +8321,7 @@ "integrity": "sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec=", "dev": true, "requires": { - "any-promise": "^1.1.0" + "any-promise": "1.3.0" } } } @@ -8338,7 +8338,7 @@ "integrity": "sha1-0bZNafhv8kry0EiDos7uFFIKVgA=", "dev": true, "requires": { - "through2": "^2.0.0" + "through2": "2.0.3" } }, "latest-version": { @@ -8347,7 +8347,7 @@ "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", "dev": true, "requires": { - "package-json": "^4.0.0" + "package-json": "4.0.1" } }, "lazy-cache": { @@ -8363,7 +8363,7 @@ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "levn": { @@ -8372,8 +8372,8 @@ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "1.1.2", + "type-check": "0.3.2" } }, "load-json-file": { @@ -8382,10 +8382,10 @@ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" }, "dependencies": { "pify": { @@ -8402,8 +8402,8 @@ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "2.0.0", + "path-exists": "3.0.0" } }, "lodash": { @@ -8554,7 +8554,7 @@ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + "js-tokens": "3.0.2" } }, "loud-rejection": { @@ -8563,8 +8563,8 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" } }, "lowercase-keys": { @@ -8578,8 +8578,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "make-dir": { @@ -8588,7 +8588,7 @@ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dev": true, "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "map-cache": { @@ -8609,7 +8609,7 @@ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { - "object-visit": "^1.0.0" + "object-visit": "1.0.1" } }, "marked": { @@ -8624,7 +8624,7 @@ "integrity": "sha512-+BmqxWIubKTRKNWx/ahnCkk3mG8m7OturVlqq6HiojGJTd5hVYbgZm6WzcYPCoB+KBT4Vd6R7WSRG2OADNaCjg==", "dev": true, "requires": { - "escape-string-regexp": "^1.0.4" + "escape-string-regexp": "1.0.5" } }, "math-random": { @@ -8639,7 +8639,7 @@ "integrity": "sha1-0FiOnxx0lUSS7NJKwKxs6ZfZLjM=", "dev": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "md5-o-matic": { @@ -8660,7 +8660,7 @@ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "meow": { @@ -8669,16 +8669,16 @@ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" }, "dependencies": { "find-up": { @@ -8687,8 +8687,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } }, "load-json-file": { @@ -8697,11 +8697,11 @@ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" } }, "minimist": { @@ -8716,7 +8716,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } }, "path-type": { @@ -8725,9 +8725,9 @@ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pify": { @@ -8748,7 +8748,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "read-pkg": { @@ -8757,9 +8757,9 @@ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" } }, "read-pkg-up": { @@ -8768,8 +8768,8 @@ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "find-up": "1.1.2", + "read-pkg": "1.1.0" } }, "strip-bom": { @@ -8778,7 +8778,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "^0.2.0" + "is-utf8": "0.2.1" } } } @@ -8795,7 +8795,7 @@ "integrity": "sha1-65aDOLXe1c7tgs7AMH3sui2OqZQ=", "dev": true, "requires": { - "estraverse": "^4.0.0" + "estraverse": "4.2.0" } }, "merge2": { @@ -8816,19 +8816,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" } }, "mime": { @@ -8846,7 +8846,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", "requires": { - "mime-db": "~1.33.0" + "mime-db": "1.33.0" } }, "mimic-fn": { @@ -8867,8 +8867,8 @@ "integrity": "sha512-JvlvRLqGIlk+AYypWrbrDmhsM+6JVx/xBM5S3AMwTBz1trPCEoPN/swO2L4Wu653fL7oJdgk8DMQyG/Gq3JkZg==", "dev": true, "requires": { - "hoek": "5.x.x", - "mime-db": "1.x.x" + "hoek": "5.0.3", + "mime-db": "1.33.0" } }, "minimalistic-assert": { @@ -8883,7 +8883,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -8898,8 +8898,8 @@ "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", "dev": true, "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0" + "arrify": "1.0.1", + "is-plain-obj": "1.1.0" } }, "mixin-deep": { @@ -8908,8 +8908,8 @@ "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "dev": true, "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" + "for-in": "1.0.2", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -8918,7 +8918,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -8982,7 +8982,7 @@ "integrity": "sha1-sJ/IWG6qF/gdV1xK0C4Pej9rEQU=", "dev": true, "requires": { - "source-map": "^0.1.34" + "source-map": "0.1.43" }, "dependencies": { "source-map": { @@ -8991,7 +8991,7 @@ "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", "dev": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -9002,10 +9002,10 @@ "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", "dev": true, "requires": { - "array-differ": "^1.0.0", - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "minimatch": "^3.0.0" + "array-differ": "1.0.0", + "array-union": "1.0.2", + "arrify": "1.0.1", + "minimatch": "3.0.4" } }, "mute-stream": { @@ -9021,9 +9021,9 @@ "dev": true, "optional": true, "requires": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" + "mkdirp": "0.5.1", + "ncp": "2.0.0", + "rimraf": "2.4.5" }, "dependencies": { "glob": { @@ -9033,11 +9033,11 @@ "dev": true, "optional": true, "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "rimraf": { @@ -9047,7 +9047,7 @@ "dev": true, "optional": true, "requires": { - "glob": "^6.0.1" + "glob": "6.0.4" } } } @@ -9065,17 +9065,17 @@ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, "requires": { - "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.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "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.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "arr-diff": { @@ -9140,8 +9140,8 @@ "integrity": "sha512-kCVtUG9JyD//tsYrZY+/Y+2gUrANVSba8y23QkM5Znx0FOxlnl9Z4OVPBODmstKWTOvigfTO+Va1VPOu3eWSOQ==", "dev": true, "requires": { - "hoek": "5.x.x", - "vise": "3.x.x" + "hoek": "5.0.3", + "vise": "3.0.0" } }, "nise": { @@ -9150,11 +9150,11 @@ "integrity": "sha512-BxH/DxoQYYdhKgVAfqVy4pzXRZELHOIewzoesxpjYvpU+7YOalQhGNPf7wAx8pLrTNPrHRDlLOkAl8UI0ZpXjw==", "dev": true, "requires": { - "@sinonjs/formatio": "^2.0.0", - "just-extend": "^1.1.27", - "lolex": "^2.3.2", - "path-to-regexp": "^1.7.0", - "text-encoding": "^0.6.4" + "@sinonjs/formatio": "2.0.0", + "just-extend": "1.1.27", + "lolex": "2.7.1", + "path-to-regexp": "1.7.0", + "text-encoding": "0.6.4" } }, "nock": { @@ -9163,15 +9163,15 @@ "integrity": "sha512-WFRlGfJJ17uyXKAIFKXqoq5o49W7aYjfH3Zges133kYGwL6PuSjthP50osQJJNMQoz0f0SodmREjzo8eLh/Bxw==", "dev": true, "requires": { - "chai": "^4.1.2", - "debug": "^3.1.0", - "deep-equal": "^1.0.0", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.5", - "mkdirp": "^0.5.0", - "propagate": "^1.0.0", - "qs": "^6.5.1", - "semver": "^5.5.0" + "chai": "4.1.2", + "debug": "3.1.0", + "deep-equal": "1.0.1", + "json-stringify-safe": "5.0.1", + "lodash": "4.17.5", + "mkdirp": "0.5.1", + "propagate": "1.0.0", + "qs": "6.5.2", + "semver": "5.5.0" } }, "node-forge": { @@ -9185,10 +9185,10 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.7.1", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" } }, "normalize-path": { @@ -9197,7 +9197,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "^1.0.1" + "remove-trailing-separator": "1.1.0" } }, "normalize-url": { @@ -9206,9 +9206,9 @@ "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", "dev": true, "requires": { - "prepend-http": "^2.0.0", - "query-string": "^5.0.1", - "sort-keys": "^2.0.0" + "prepend-http": "2.0.0", + "query-string": "5.1.1", + "sort-keys": "2.0.0" }, "dependencies": { "prepend-http": { @@ -9225,10 +9225,10 @@ "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", "dev": true, "requires": { - "hosted-git-info": "^2.6.0", - "osenv": "^0.1.5", - "semver": "^5.5.0", - "validate-npm-package-name": "^3.0.0" + "hosted-git-info": "2.7.1", + "osenv": "0.1.5", + "semver": "5.5.0", + "validate-npm-package-name": "3.0.0" } }, "npm-run-path": { @@ -9237,7 +9237,7 @@ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -9252,33 +9252,33 @@ "integrity": "sha1-ikpO1pCWbBHsWH/4fuoMEsl0upk=", "dev": true, "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^1.0.0", - "convert-source-map": "^1.5.1", - "debug-log": "^1.0.1", - "default-require-extensions": "^1.0.0", - "find-cache-dir": "^0.1.1", - "find-up": "^2.1.0", - "foreground-child": "^1.5.3", - "glob": "^7.0.6", - "istanbul-lib-coverage": "^1.2.0", - "istanbul-lib-hook": "^1.1.0", - "istanbul-lib-instrument": "^2.1.0", - "istanbul-lib-report": "^1.1.3", - "istanbul-lib-source-maps": "^1.2.5", - "istanbul-reports": "^1.4.1", - "md5-hex": "^1.2.0", - "merge-source-map": "^1.1.0", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.0", - "resolve-from": "^2.0.0", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.1", - "spawn-wrap": "^1.4.2", - "test-exclude": "^4.2.0", + "archy": "1.0.0", + "arrify": "1.0.1", + "caching-transform": "1.0.1", + "convert-source-map": "1.5.1", + "debug-log": "1.0.1", + "default-require-extensions": "1.0.0", + "find-cache-dir": "0.1.1", + "find-up": "2.1.0", + "foreground-child": "1.5.6", + "glob": "7.1.2", + "istanbul-lib-coverage": "1.2.0", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "2.3.1", + "istanbul-lib-report": "1.1.3", + "istanbul-lib-source-maps": "1.2.5", + "istanbul-reports": "1.4.1", + "md5-hex": "1.3.0", + "merge-source-map": "1.1.0", + "micromatch": "3.1.10", + "mkdirp": "0.5.1", + "resolve-from": "2.0.0", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "spawn-wrap": "1.4.2", + "test-exclude": "4.2.1", "yargs": "11.1.0", - "yargs-parser": "^8.0.0" + "yargs-parser": "8.1.0" }, "dependencies": { "align-text": { @@ -9286,9 +9286,9 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" } }, "amdefine": { @@ -9306,7 +9306,7 @@ "bundled": true, "dev": true, "requires": { - "default-require-extensions": "^1.0.0" + "default-require-extensions": "1.0.0" } }, "archy": { @@ -9364,13 +9364,13 @@ "bundled": true, "dev": true, "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" }, "dependencies": { "define-property": { @@ -9378,7 +9378,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -9386,7 +9386,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -9394,7 +9394,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -9402,9 +9402,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "kind-of": { @@ -9419,7 +9419,7 @@ "bundled": true, "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -9428,16 +9428,16 @@ "bundled": true, "dev": true, "requires": { - "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "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.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -9445,7 +9445,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -9460,15 +9460,15 @@ "bundled": true, "dev": true, "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" + "collection-visit": "1.0.0", + "component-emitter": "1.2.1", + "get-value": "2.0.6", + "has-value": "1.0.0", + "isobject": "3.0.1", + "set-value": "2.0.0", + "to-object-path": "0.3.0", + "union-value": "1.0.0", + "unset-value": "1.0.0" } }, "caching-transform": { @@ -9476,9 +9476,9 @@ "bundled": true, "dev": true, "requires": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" } }, "camelcase": { @@ -9493,8 +9493,8 @@ "dev": true, "optional": true, "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "align-text": "0.1.4", + "lazy-cache": "1.0.4" } }, "class-utils": { @@ -9502,10 +9502,10 @@ "bundled": true, "dev": true, "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" }, "dependencies": { "define-property": { @@ -9513,7 +9513,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -9524,8 +9524,8 @@ "dev": true, "optional": true, "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", + "center-align": "0.1.3", + "right-align": "0.1.3", "wordwrap": "0.0.2" }, "dependencies": { @@ -9547,8 +9547,8 @@ "bundled": true, "dev": true, "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "map-visit": "1.0.0", + "object-visit": "1.0.1" } }, "commondir": { @@ -9581,8 +9581,8 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "which": "1.3.1" } }, "debug": { @@ -9613,7 +9613,7 @@ "bundled": true, "dev": true, "requires": { - "strip-bom": "^2.0.0" + "strip-bom": "2.0.0" } }, "define-property": { @@ -9621,8 +9621,8 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "is-descriptor": "1.0.2", + "isobject": "3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -9630,7 +9630,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -9638,7 +9638,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -9646,9 +9646,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "kind-of": { @@ -9663,7 +9663,7 @@ "bundled": true, "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "execa": { @@ -9671,13 +9671,13 @@ "bundled": true, "dev": true, "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" }, "dependencies": { "cross-spawn": { @@ -9685,9 +9685,9 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.1" } } } @@ -9697,13 +9697,13 @@ "bundled": true, "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "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" }, "dependencies": { "debug": { @@ -9719,7 +9719,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -9727,7 +9727,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -9737,8 +9737,8 @@ "bundled": true, "dev": true, "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -9746,7 +9746,7 @@ "bundled": true, "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -9756,14 +9756,14 @@ "bundled": true, "dev": true, "requires": { - "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.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "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" }, "dependencies": { "define-property": { @@ -9771,7 +9771,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -9779,7 +9779,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -9787,7 +9787,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -9795,7 +9795,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -9803,9 +9803,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "kind-of": { @@ -9820,10 +9820,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -9831,7 +9831,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -9841,9 +9841,9 @@ "bundled": true, "dev": true, "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" + "commondir": "1.0.1", + "mkdirp": "0.5.1", + "pkg-dir": "1.0.0" } }, "find-up": { @@ -9851,7 +9851,7 @@ "bundled": true, "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "for-in": { @@ -9864,8 +9864,8 @@ "bundled": true, "dev": true, "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" + "cross-spawn": "4.0.2", + "signal-exit": "3.0.2" } }, "fragment-cache": { @@ -9873,7 +9873,7 @@ "bundled": true, "dev": true, "requires": { - "map-cache": "^0.2.2" + "map-cache": "0.2.2" } }, "fs.realpath": { @@ -9901,12 +9901,12 @@ "bundled": true, "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "graceful-fs": { @@ -9919,10 +9919,10 @@ "bundled": true, "dev": true, "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" }, "dependencies": { "source-map": { @@ -9930,7 +9930,7 @@ "bundled": true, "dev": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -9940,9 +9940,9 @@ "bundled": true, "dev": true, "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" } }, "has-values": { @@ -9950,8 +9950,8 @@ "bundled": true, "dev": true, "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "kind-of": { @@ -9959,7 +9959,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -9979,8 +9979,8 @@ "bundled": true, "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -9998,7 +9998,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-arrayish": { @@ -10016,7 +10016,7 @@ "bundled": true, "dev": true, "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-data-descriptor": { @@ -10024,7 +10024,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-descriptor": { @@ -10032,9 +10032,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" }, "dependencies": { "kind-of": { @@ -10059,7 +10059,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-odd": { @@ -10067,7 +10067,7 @@ "bundled": true, "dev": true, "requires": { - "is-number": "^4.0.0" + "is-number": "4.0.0" }, "dependencies": { "is-number": { @@ -10082,7 +10082,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" } }, "is-stream": { @@ -10125,7 +10125,7 @@ "bundled": true, "dev": true, "requires": { - "append-transform": "^0.4.0" + "append-transform": "0.4.0" } }, "istanbul-lib-report": { @@ -10133,10 +10133,10 @@ "bundled": true, "dev": true, "requires": { - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" }, "dependencies": { "has-flag": { @@ -10149,7 +10149,7 @@ "bundled": true, "dev": true, "requires": { - "has-flag": "^1.0.0" + "has-flag": "1.0.0" } } } @@ -10159,11 +10159,11 @@ "bundled": true, "dev": true, "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.2.0", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" + "debug": "3.1.0", + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" } }, "istanbul-reports": { @@ -10171,7 +10171,7 @@ "bundled": true, "dev": true, "requires": { - "handlebars": "^4.0.3" + "handlebars": "4.0.11" } }, "kind-of": { @@ -10179,7 +10179,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "lazy-cache": { @@ -10193,7 +10193,7 @@ "bundled": true, "dev": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "load-json-file": { @@ -10201,11 +10201,11 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" } }, "locate-path": { @@ -10213,8 +10213,8 @@ "bundled": true, "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "2.0.0", + "path-exists": "3.0.0" }, "dependencies": { "path-exists": { @@ -10234,8 +10234,8 @@ "bundled": true, "dev": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "map-cache": { @@ -10248,7 +10248,7 @@ "bundled": true, "dev": true, "requires": { - "object-visit": "^1.0.0" + "object-visit": "1.0.1" } }, "md5-hex": { @@ -10256,7 +10256,7 @@ "bundled": true, "dev": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "md5-o-matic": { @@ -10269,7 +10269,7 @@ "bundled": true, "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "merge-source-map": { @@ -10277,7 +10277,7 @@ "bundled": true, "dev": true, "requires": { - "source-map": "^0.6.1" + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -10292,19 +10292,19 @@ "bundled": true, "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "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.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "kind-of": { @@ -10324,7 +10324,7 @@ "bundled": true, "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -10337,8 +10337,8 @@ "bundled": true, "dev": true, "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" + "for-in": "1.0.2", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -10346,7 +10346,7 @@ "bundled": true, "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -10369,18 +10369,18 @@ "bundled": true, "dev": true, "requires": { - "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-odd": "^2.0.0", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "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-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "kind-of": { @@ -10395,10 +10395,10 @@ "bundled": true, "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.6.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" } }, "npm-run-path": { @@ -10406,7 +10406,7 @@ "bundled": true, "dev": true, "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -10424,9 +10424,9 @@ "bundled": true, "dev": true, "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" }, "dependencies": { "define-property": { @@ -10434,7 +10434,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -10444,7 +10444,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "^3.0.0" + "isobject": "3.0.1" } }, "object.pick": { @@ -10452,7 +10452,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" } }, "once": { @@ -10460,7 +10460,7 @@ "bundled": true, "dev": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "optimist": { @@ -10468,8 +10468,8 @@ "bundled": true, "dev": true, "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "minimist": "0.0.8", + "wordwrap": "0.0.3" } }, "os-homedir": { @@ -10482,9 +10482,9 @@ "bundled": true, "dev": true, "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" } }, "p-finally": { @@ -10497,7 +10497,7 @@ "bundled": true, "dev": true, "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { @@ -10505,7 +10505,7 @@ "bundled": true, "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.2.0" } }, "p-try": { @@ -10518,7 +10518,7 @@ "bundled": true, "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.1" } }, "pascalcase": { @@ -10531,7 +10531,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } }, "path-is-absolute": { @@ -10554,9 +10554,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pify": { @@ -10574,7 +10574,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "pkg-dir": { @@ -10582,7 +10582,7 @@ "bundled": true, "dev": true, "requires": { - "find-up": "^1.0.0" + "find-up": "1.1.2" }, "dependencies": { "find-up": { @@ -10590,8 +10590,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } @@ -10611,9 +10611,9 @@ "bundled": true, "dev": true, "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" } }, "read-pkg-up": { @@ -10621,8 +10621,8 @@ "bundled": true, "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "find-up": "1.1.2", + "read-pkg": "1.1.0" }, "dependencies": { "find-up": { @@ -10630,8 +10630,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } @@ -10641,8 +10641,8 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, "repeat-element": { @@ -10686,7 +10686,7 @@ "dev": true, "optional": true, "requires": { - "align-text": "^0.1.1" + "align-text": "0.1.4" } }, "rimraf": { @@ -10694,7 +10694,7 @@ "bundled": true, "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "safe-regex": { @@ -10702,7 +10702,7 @@ "bundled": true, "dev": true, "requires": { - "ret": "~0.1.10" + "ret": "0.1.15" } }, "semver": { @@ -10720,10 +10720,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" }, "dependencies": { "extend-shallow": { @@ -10731,7 +10731,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -10741,7 +10741,7 @@ "bundled": true, "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -10764,14 +10764,14 @@ "bundled": true, "dev": true, "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "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.2", + "use": "3.1.0" }, "dependencies": { "debug": { @@ -10787,7 +10787,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -10795,7 +10795,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -10805,9 +10805,9 @@ "bundled": true, "dev": true, "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "dependencies": { "define-property": { @@ -10815,7 +10815,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -10823,7 +10823,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -10831,7 +10831,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -10839,9 +10839,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "kind-of": { @@ -10856,7 +10856,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.2.0" + "kind-of": "3.2.2" } }, "source-map": { @@ -10869,11 +10869,11 @@ "bundled": true, "dev": true, "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "atob": "2.1.1", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" } }, "source-map-url": { @@ -10886,12 +10886,12 @@ "bundled": true, "dev": true, "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.1" } }, "spdx-correct": { @@ -10899,8 +10899,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, "spdx-exceptions": { @@ -10913,8 +10913,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" } }, "spdx-license-ids": { @@ -10927,7 +10927,7 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^3.0.0" + "extend-shallow": "3.0.2" } }, "static-extend": { @@ -10935,8 +10935,8 @@ "bundled": true, "dev": true, "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" + "define-property": "0.2.5", + "object-copy": "0.1.0" }, "dependencies": { "define-property": { @@ -10944,7 +10944,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -10954,8 +10954,8 @@ "bundled": true, "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" } }, "strip-ansi": { @@ -10963,7 +10963,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } }, "strip-bom": { @@ -10971,7 +10971,7 @@ "bundled": true, "dev": true, "requires": { - "is-utf8": "^0.2.0" + "is-utf8": "0.2.1" } }, "strip-eof": { @@ -10984,11 +10984,11 @@ "bundled": true, "dev": true, "requires": { - "arrify": "^1.0.1", - "micromatch": "^3.1.8", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" + "arrify": "1.0.1", + "micromatch": "3.1.10", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" } }, "to-object-path": { @@ -10996,7 +10996,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "to-regex": { @@ -11004,10 +11004,10 @@ "bundled": true, "dev": true, "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" } }, "to-regex-range": { @@ -11015,8 +11015,8 @@ "bundled": true, "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "3.0.0", + "repeat-string": "1.6.1" } }, "uglify-js": { @@ -11025,9 +11025,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" }, "dependencies": { "yargs": { @@ -11036,9 +11036,9 @@ "dev": true, "optional": true, "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", "window-size": "0.1.0" } } @@ -11055,10 +11055,10 @@ "bundled": true, "dev": true, "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" }, "dependencies": { "extend-shallow": { @@ -11066,7 +11066,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "set-value": { @@ -11074,10 +11074,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" } } } @@ -11087,8 +11087,8 @@ "bundled": true, "dev": true, "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "has-value": "0.3.1", + "isobject": "3.0.1" }, "dependencies": { "has-value": { @@ -11096,9 +11096,9 @@ "bundled": true, "dev": true, "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" }, "dependencies": { "isobject": { @@ -11128,7 +11128,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.2" + "kind-of": "6.0.2" }, "dependencies": { "kind-of": { @@ -11143,8 +11143,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "which": { @@ -11152,7 +11152,7 @@ "bundled": true, "dev": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -11176,8 +11176,8 @@ "bundled": true, "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "ansi-regex": { @@ -11190,7 +11190,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "string-width": { @@ -11198,9 +11198,9 @@ "bundled": true, "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "strip-ansi": { @@ -11208,7 +11208,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } } } @@ -11223,9 +11223,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" } }, "y18n": { @@ -11243,18 +11243,18 @@ "bundled": true, "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^9.0.2" + "cliui": "4.1.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "9.0.2" }, "dependencies": { "camelcase": { @@ -11267,9 +11267,9 @@ "bundled": true, "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" } }, "yargs-parser": { @@ -11277,7 +11277,7 @@ "bundled": true, "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } } } @@ -11287,7 +11287,7 @@ "bundled": true, "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" }, "dependencies": { "camelcase": { @@ -11316,9 +11316,9 @@ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" }, "dependencies": { "define-property": { @@ -11327,7 +11327,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -11344,7 +11344,7 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { - "isobject": "^3.0.0" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -11361,8 +11361,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" + "for-own": "0.1.5", + "is-extendable": "0.1.1" } }, "object.pick": { @@ -11371,7 +11371,7 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -11388,8 +11388,8 @@ "integrity": "sha1-yCjw8NxH6fhq+KSXfF1VB2znqR8=", "dev": true, "requires": { - "is-observable": "^0.2.0", - "symbol-observable": "^1.0.4" + "is-observable": "0.2.0", + "symbol-observable": "1.2.0" }, "dependencies": { "is-observable": { @@ -11398,7 +11398,7 @@ "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=", "dev": true, "requires": { - "symbol-observable": "^0.2.2" + "symbol-observable": "0.2.4" }, "dependencies": { "symbol-observable": { @@ -11431,7 +11431,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "onetime": { @@ -11440,7 +11440,7 @@ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "only": { @@ -11455,8 +11455,8 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "minimist": "0.0.8", + "wordwrap": "0.0.3" } }, "option-chain": { @@ -11471,12 +11471,12 @@ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" }, "dependencies": { "wordwrap": { @@ -11499,9 +11499,9 @@ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" } }, "os-tmpdir": { @@ -11516,8 +11516,8 @@ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "p-cancelable": { @@ -11544,7 +11544,7 @@ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { @@ -11553,7 +11553,7 @@ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.3.0" } }, "p-timeout": { @@ -11562,7 +11562,7 @@ "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", "dev": true, "requires": { - "p-finally": "^1.0.0" + "p-finally": "1.0.0" } }, "p-try": { @@ -11577,10 +11577,10 @@ "integrity": "sha1-eK4ybIngWk2BO2hgGXevBcANKg0=", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "lodash.flattendeep": "^4.4.0", - "md5-hex": "^2.0.0", - "release-zalgo": "^1.0.0" + "graceful-fs": "4.1.11", + "lodash.flattendeep": "4.4.0", + "md5-hex": "2.0.0", + "release-zalgo": "1.0.0" } }, "package-json": { @@ -11589,10 +11589,10 @@ "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "dev": true, "requires": { - "got": "^6.7.1", - "registry-auth-token": "^3.0.1", - "registry-url": "^3.0.3", - "semver": "^5.1.0" + "got": "6.7.1", + "registry-auth-token": "3.3.2", + "registry-url": "3.1.0", + "semver": "5.5.0" }, "dependencies": { "got": { @@ -11601,17 +11601,17 @@ "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "requires": { - "create-error-class": "^3.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" + "create-error-class": "3.0.2", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "is-redirect": "1.0.0", + "is-retry-allowed": "1.1.0", + "is-stream": "1.1.0", + "lowercase-keys": "1.0.1", + "safe-buffer": "5.1.2", + "timed-out": "4.0.1", + "unzip-response": "2.0.1", + "url-parse-lax": "1.0.0" } } } @@ -11622,10 +11622,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" } }, "parse-json": { @@ -11634,7 +11634,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.2" } }, "parse-ms": { @@ -11714,7 +11714,7 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { - "pify": "^2.0.0" + "pify": "2.3.0" }, "dependencies": { "pify": { @@ -11742,11 +11742,11 @@ "integrity": "sha512-HuPxmGxHsEFPWhdkwBs2gIrHhFqktIxMtudISTFN95RQ85ZZAOl8Ki6u3nnN/X8OUaGlIGldk/l8p2IR4/i76w==", "dev": true, "requires": { - "b64": "4.x.x", - "boom": "7.x.x", - "content": "4.x.x", - "hoek": "5.x.x", - "nigel": "3.x.x" + "b64": "4.0.0", + "boom": "7.2.0", + "content": "4.0.5", + "hoek": "5.0.3", + "nigel": "3.0.1" } }, "pidusage": { @@ -11772,7 +11772,7 @@ "integrity": "sha1-0dpn9UglY7t89X8oauKCLs+/NnA=", "dev": true, "requires": { - "pinkie": "^1.0.0" + "pinkie": "1.0.0" } }, "pkg-conf": { @@ -11781,8 +11781,8 @@ "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", "dev": true, "requires": { - "find-up": "^2.0.0", - "load-json-file": "^4.0.0" + "find-up": "2.1.0", + "load-json-file": "4.0.0" }, "dependencies": { "load-json-file": { @@ -11791,10 +11791,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.11", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" } }, "parse-json": { @@ -11803,8 +11803,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" } } } @@ -11815,7 +11815,7 @@ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "^2.1.0" + "find-up": "2.1.0" } }, "plur": { @@ -11824,7 +11824,7 @@ "integrity": "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo=", "dev": true, "requires": { - "irregular-plurals": "^1.0.0" + "irregular-plurals": "1.4.0" } }, "pluralize": { @@ -11839,8 +11839,8 @@ "integrity": "sha512-18VrjJAduIdPv7d9zWsfmKxTj3cQTYC5Pv5gtKxcWujYBpGbV+mhNSPYhlHW5xeWoazYyKfB9FEsPT12r5rY1A==", "dev": true, "requires": { - "hoek": "5.x.x", - "joi": "13.x.x" + "hoek": "5.0.3", + "joi": "13.4.0" } }, "posix-character-classes": { @@ -11849,15 +11849,28 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, + "post-install-check": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/post-install-check/-/post-install-check-0.0.1.tgz", + "integrity": "sha512-8tmaqjYxwJAumhsg8p31P5jG4sKRYUhfO0WaSBcPTeAmMlOxB3AK/rS6xqmJwpVAXt+fuyRLZ3WJxsgMRCHcQQ==", + "dev": true, + "requires": { + "glob": "7.1.2", + "once": "1.4.0", + "pify": "3.0.0", + "rimraf": "2.6.2", + "tmp": "0.0.33" + } + }, "postcss": { "version": "6.0.23", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" + "chalk": "2.4.1", + "source-map": "0.6.1", + "supports-color": "5.4.0" }, "dependencies": { "source-map": { @@ -11874,11 +11887,11 @@ "integrity": "sha512-nDb6a+p2C7Wj8Y2zmFtLpuv+xobXz4+bzT5s7dr0nn71tLozn7nRMQqzwbefzwZN5qOm0N7Cxhw4kXP75xboKA==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "empower": "^1.3.0", - "power-assert-formatter": "^1.4.1", - "universal-deep-strict-equal": "^1.2.1", - "xtend": "^4.0.0" + "define-properties": "1.1.2", + "empower": "1.3.0", + "power-assert-formatter": "1.4.1", + "universal-deep-strict-equal": "1.2.2", + "xtend": "4.0.1" } }, "power-assert-context-formatter": { @@ -11887,8 +11900,8 @@ "integrity": "sha512-HLNEW8Bin+BFCpk/zbyKwkEu9W8/zThIStxGo7weYcFkKgMuGCHUJhvJeBGXDZf0Qm2xis4pbnnciGZiX0EpSg==", "dev": true, "requires": { - "core-js": "^2.0.0", - "power-assert-context-traversal": "^1.2.0" + "core-js": "2.5.7", + "power-assert-context-traversal": "1.2.0" } }, "power-assert-context-reducer-ast": { @@ -11897,11 +11910,11 @@ "integrity": "sha512-EgOxmZ/Lb7tw4EwSKX7ZnfC0P/qRZFEG28dx/690qvhmOJ6hgThYFm5TUWANDLK5NiNKlPBi5WekVGd2+5wPrw==", "dev": true, "requires": { - "acorn": "^5.0.0", - "acorn-es7-plugin": "^1.0.12", - "core-js": "^2.0.0", - "espurify": "^1.6.0", - "estraverse": "^4.2.0" + "acorn": "5.7.1", + "acorn-es7-plugin": "1.1.7", + "core-js": "2.5.7", + "espurify": "1.8.1", + "estraverse": "4.2.0" } }, "power-assert-context-traversal": { @@ -11910,8 +11923,8 @@ "integrity": "sha512-NFoHU6g2umNajiP2l4qb0BRWD773Aw9uWdWYH9EQsVwIZnog5bd2YYLFCVvaxWpwNzWeEfZIon2xtyc63026pQ==", "dev": true, "requires": { - "core-js": "^2.0.0", - "estraverse": "^4.1.0" + "core-js": "2.5.7", + "estraverse": "4.2.0" } }, "power-assert-formatter": { @@ -11920,13 +11933,13 @@ "integrity": "sha1-XcEl7VCj37HdomwZNH879Y7CiEo=", "dev": true, "requires": { - "core-js": "^2.0.0", - "power-assert-context-formatter": "^1.0.7", - "power-assert-context-reducer-ast": "^1.0.7", - "power-assert-renderer-assertion": "^1.0.7", - "power-assert-renderer-comparison": "^1.0.7", - "power-assert-renderer-diagram": "^1.0.7", - "power-assert-renderer-file": "^1.0.7" + "core-js": "2.5.7", + "power-assert-context-formatter": "1.2.0", + "power-assert-context-reducer-ast": "1.2.0", + "power-assert-renderer-assertion": "1.2.0", + "power-assert-renderer-comparison": "1.2.0", + "power-assert-renderer-diagram": "1.2.0", + "power-assert-renderer-file": "1.2.0" } }, "power-assert-renderer-assertion": { @@ -11935,8 +11948,8 @@ "integrity": "sha512-3F7Q1ZLmV2ZCQv7aV7NJLNK9G7QsostrhOU7U0RhEQS/0vhEqrRg2jEJl1jtUL4ZyL2dXUlaaqrmPv5r9kRvIg==", "dev": true, "requires": { - "power-assert-renderer-base": "^1.1.1", - "power-assert-util-string-width": "^1.2.0" + "power-assert-renderer-base": "1.1.1", + "power-assert-util-string-width": "1.2.0" } }, "power-assert-renderer-base": { @@ -11951,11 +11964,11 @@ "integrity": "sha512-7c3RKPDBKK4E3JqdPtYRE9cM8AyX4LC4yfTvvTYyx8zSqmT5kJnXwzR0yWQLOavACllZfwrAGQzFiXPc5sWa+g==", "dev": true, "requires": { - "core-js": "^2.0.0", - "diff-match-patch": "^1.0.0", - "power-assert-renderer-base": "^1.1.1", - "stringifier": "^1.3.0", - "type-name": "^2.0.1" + "core-js": "2.5.7", + "diff-match-patch": "1.0.1", + "power-assert-renderer-base": "1.1.1", + "stringifier": "1.3.0", + "type-name": "2.0.2" } }, "power-assert-renderer-diagram": { @@ -11964,10 +11977,10 @@ "integrity": "sha512-JZ6PC+DJPQqfU6dwSmpcoD7gNnb/5U77bU5KgNwPPa+i1Pxiz6UuDeM3EUBlhZ1HvH9tMjI60anqVyi5l2oNdg==", "dev": true, "requires": { - "core-js": "^2.0.0", - "power-assert-renderer-base": "^1.1.1", - "power-assert-util-string-width": "^1.2.0", - "stringifier": "^1.3.0" + "core-js": "2.5.7", + "power-assert-renderer-base": "1.1.1", + "power-assert-util-string-width": "1.2.0", + "stringifier": "1.3.0" } }, "power-assert-renderer-file": { @@ -11976,7 +11989,7 @@ "integrity": "sha512-/oaVrRbeOtGoyyd7e4IdLP/jIIUFJdqJtsYzP9/88R39CMnfF/S/rUc8ZQalENfUfQ/wQHu+XZYRMaCEZmEesg==", "dev": true, "requires": { - "power-assert-renderer-base": "^1.1.1" + "power-assert-renderer-base": "1.1.1" } }, "power-assert-util-string-width": { @@ -11985,7 +11998,7 @@ "integrity": "sha512-lX90G0igAW0iyORTILZ/QjZWsa1MZ6VVY3L0K86e2eKun3S4LKPH4xZIl8fdeMYLfOjkaszbNSzf1uugLeAm2A==", "dev": true, "requires": { - "eastasianwidth": "^0.2.0" + "eastasianwidth": "0.2.0" } }, "prelude-ls": { @@ -12018,7 +12031,7 @@ "integrity": "sha512-ZypexbfVUGTFxb0v+m1bUyy92DHe5SyYlnyY0msyms5zd3RwyvNgyxZZsXXgoyzlxjx5MiqtXUdhUfvQbe0A2Q==", "dev": true, "requires": { - "parse-ms": "^1.0.0" + "parse-ms": "1.0.1" }, "dependencies": { "parse-ms": { @@ -12058,7 +12071,7 @@ "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", "dev": true, "requires": { - "forwarded": "~0.1.2", + "forwarded": "0.1.2", "ipaddr.js": "1.6.0" } }, @@ -12068,9 +12081,9 @@ "integrity": "sha512-fQr3VQrbdzHrdaDn3XuisVoJlJNDJizHAvUXw9IuXRR8BpV2x0N7LsCxrpJkeKfPbNjiNU/V5vc008cI0TmzzQ==", "dev": true, "requires": { - "fill-keys": "^1.0.2", - "module-not-found-error": "^1.0.0", - "resolve": "~1.5.0" + "fill-keys": "1.0.2", + "module-not-found-error": "1.0.1", + "resolve": "1.5.0" }, "dependencies": { "resolve": { @@ -12079,7 +12092,7 @@ "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", "dev": true, "requires": { - "path-parse": "^1.0.5" + "path-parse": "1.0.5" } } } @@ -12105,9 +12118,9 @@ "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", "dev": true, "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" + "decode-uri-component": "0.2.0", + "object-assign": "4.1.1", + "strict-uri-encode": "1.1.0" } }, "quick-lru": { @@ -12122,9 +12135,9 @@ "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", "dev": true, "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" + "is-number": "4.0.0", + "kind-of": "6.0.2", + "math-random": "1.0.1" }, "dependencies": { "is-number": { @@ -12165,10 +12178,10 @@ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "deep-extend": "0.6.0", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" }, "dependencies": { "minimist": { @@ -12185,9 +12198,9 @@ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" } }, "read-pkg-up": { @@ -12196,8 +12209,8 @@ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "find-up": "2.1.0", + "read-pkg": "2.0.0" } }, "readable-stream": { @@ -12205,13 +12218,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" } }, "readdirp": { @@ -12220,10 +12233,10 @@ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "minimatch": "^3.0.2", - "readable-stream": "^2.0.2", - "set-immediate-shim": "^1.0.1" + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.6", + "set-immediate-shim": "1.0.1" } }, "redent": { @@ -12232,8 +12245,8 @@ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" + "indent-string": "2.1.0", + "strip-indent": "1.0.1" }, "dependencies": { "indent-string": { @@ -12242,7 +12255,7 @@ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } } } @@ -12265,7 +12278,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { - "is-equal-shallow": "^0.1.3" + "is-equal-shallow": "0.1.3" } }, "regex-not": { @@ -12274,8 +12287,8 @@ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, "regexp.prototype.flags": { @@ -12284,7 +12297,7 @@ "integrity": "sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==", "dev": true, "requires": { - "define-properties": "^1.1.2" + "define-properties": "1.1.2" } }, "regexpp": { @@ -12299,9 +12312,9 @@ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "dev": true, "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" + "regenerate": "1.4.0", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" } }, "registry-auth-token": { @@ -12310,8 +12323,8 @@ "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", "dev": true, "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" + "rc": "1.2.8", + "safe-buffer": "5.1.2" } }, "registry-url": { @@ -12320,7 +12333,7 @@ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "dev": true, "requires": { - "rc": "^1.0.1" + "rc": "1.2.8" } }, "regjsgen": { @@ -12335,7 +12348,7 @@ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, "requires": { - "jsesc": "~0.5.0" + "jsesc": "0.5.0" } }, "release-zalgo": { @@ -12344,7 +12357,7 @@ "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", "dev": true, "requires": { - "es6-error": "^4.0.1" + "es6-error": "4.1.1" } }, "remove-trailing-separator": { @@ -12371,7 +12384,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "request": { @@ -12379,26 +12392,26 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", - "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.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.17", - "oauth-sign": "~0.8.2", - "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" + "aws-sign2": "0.7.0", + "aws4": "1.7.0", + "caseless": "0.12.0", + "combined-stream": "1.0.6", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.3.2", + "har-validator": "5.0.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.18", + "oauth-sign": "0.8.2", + "performance-now": "2.1.0", + "qs": "6.5.2", + "safe-buffer": "5.1.2", + "tough-cookie": "2.3.4", + "tunnel-agent": "0.6.0", + "uuid": "3.3.2" } }, "require-directory": { @@ -12425,8 +12438,8 @@ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "dev": true, "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" + "caller-path": "0.1.0", + "resolve-from": "1.0.1" }, "dependencies": { "resolve-from": { @@ -12443,7 +12456,7 @@ "integrity": "sha1-aUPDUwxNmn5G8c3dUcFY/GcM294=", "dev": true, "requires": { - "underscore": "~1.6.0" + "underscore": "1.6.0" }, "dependencies": { "underscore": { @@ -12466,7 +12479,7 @@ "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", "dev": true, "requires": { - "resolve-from": "^3.0.0" + "resolve-from": "3.0.0" } }, "resolve-from": { @@ -12487,7 +12500,7 @@ "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", "dev": true, "requires": { - "lowercase-keys": "^1.0.0" + "lowercase-keys": "1.0.1" } }, "restify": { @@ -12496,28 +12509,28 @@ "integrity": "sha512-xygVfQn/FiyzSPNIiOlzos6+RVcmTTK/bN0/m4z6vQwUY1yXntAsXM8ckq6hMxYfkhZfbPMM5hvBf75B8zLE1g==", "dev": true, "requires": { - "assert-plus": "^1.0.0", - "bunyan": "^1.8.12", - "csv": "^1.1.1", - "dtrace-provider": "^0.8.1", - "escape-regexp-component": "^1.0.2", - "ewma": "^2.0.1", - "find-my-way": "^1.13.0", - "formidable": "^1.2.1", - "http-signature": "^1.2.0", - "lodash": "^4.17.10", - "lru-cache": "^4.1.3", - "mime": "^1.5.0", - "negotiator": "^0.6.1", - "once": "^1.4.0", - "pidusage": "^1.2.0", - "qs": "^6.5.2", - "restify-errors": "^5.0.0", - "semver": "^5.4.1", - "spdy": "^3.4.7", - "uuid": "^3.1.0", - "vasync": "^1.6.4", - "verror": "^1.10.0" + "assert-plus": "1.0.0", + "bunyan": "1.8.12", + "csv": "1.2.1", + "dtrace-provider": "0.8.7", + "escape-regexp-component": "1.0.2", + "ewma": "2.0.1", + "find-my-way": "1.15.1", + "formidable": "1.2.1", + "http-signature": "1.2.0", + "lodash": "4.17.10", + "lru-cache": "4.1.3", + "mime": "1.6.0", + "negotiator": "0.6.1", + "once": "1.4.0", + "pidusage": "1.2.0", + "qs": "6.5.2", + "restify-errors": "5.0.0", + "semver": "5.5.0", + "spdy": "3.4.7", + "uuid": "3.3.2", + "vasync": "1.6.4", + "verror": "1.10.0" }, "dependencies": { "lodash": { @@ -12540,10 +12553,10 @@ "integrity": "sha512-+vby9Kxf7qlzvbZSTIEGkIixkeHG+pVCl34dk6eKnL+ua4pCezpdLT/1/eabzPZb65ADrgoc04jeWrrF1E1pvQ==", "dev": true, "requires": { - "assert-plus": "^1.0.0", - "lodash": "^4.2.1", - "safe-json-stringify": "^1.0.3", - "verror": "^1.8.1" + "assert-plus": "1.0.0", + "lodash": "4.17.5", + "safe-json-stringify": "1.2.0", + "verror": "1.10.0" } }, "restore-cursor": { @@ -12552,8 +12565,8 @@ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "onetime": "2.0.1", + "signal-exit": "3.0.2" } }, "ret": { @@ -12572,7 +12585,7 @@ "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.0.0.tgz", "integrity": "sha512-S4HNLaWcMP6r8E4TMH52Y7/pM8uNayOcTDDQNBwsCccL1uI+Ol2TljxRDPzaNfbhOB30+XWP5NnZkB3LiJxi1w==", "requires": { - "through2": "^2.0.0" + "through2": "2.0.3" } }, "right-align": { @@ -12582,7 +12595,7 @@ "dev": true, "optional": true, "requires": { - "align-text": "^0.1.1" + "align-text": "0.1.4" } }, "rimraf": { @@ -12591,7 +12604,7 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "run-async": { @@ -12600,7 +12613,7 @@ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "is-promise": "^2.1.0" + "is-promise": "2.1.0" } }, "rxjs": { @@ -12638,7 +12651,7 @@ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "ret": "~0.1.10" + "ret": "0.1.15" } }, "safer-buffer": { @@ -12658,16 +12671,16 @@ "integrity": "sha512-52ThA+Z7h6BnvpSVbURwChl10XZrps5q7ytjTwWcIe9bmJwnVP6cpEVK2NvDOUhGupoqAvNbUz3cpnJDp4+/pg==", "dev": true, "requires": { - "chalk": "^2.3.0", - "htmlparser2": "^3.9.0", - "lodash.clonedeep": "^4.5.0", - "lodash.escaperegexp": "^4.1.2", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.mergewith": "^4.6.0", - "postcss": "^6.0.14", - "srcset": "^1.0.0", - "xtend": "^4.0.0" + "chalk": "2.4.1", + "htmlparser2": "3.9.2", + "lodash.clonedeep": "4.5.0", + "lodash.escaperegexp": "4.1.2", + "lodash.isplainobject": "4.0.6", + "lodash.isstring": "4.0.1", + "lodash.mergewith": "4.6.1", + "postcss": "6.0.23", + "srcset": "1.0.0", + "xtend": "4.0.1" } }, "select-hose": { @@ -12688,7 +12701,7 @@ "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "dev": true, "requires": { - "semver": "^5.0.3" + "semver": "5.5.0" } }, "semver-store": { @@ -12704,18 +12717,18 @@ "dev": true, "requires": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", + "depd": "1.1.2", + "destroy": "1.0.4", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", "fresh": "0.5.2", - "http-errors": "~1.6.2", + "http-errors": "1.6.3", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.4.0" + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.4.0" }, "dependencies": { "debug": { @@ -12753,9 +12766,9 @@ "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "dev": true, "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.2", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "parseurl": "1.3.2", "send": "0.16.2" } }, @@ -12777,10 +12790,10 @@ "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" }, "dependencies": { "extend-shallow": { @@ -12789,7 +12802,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -12806,7 +12819,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -12821,8 +12834,8 @@ "integrity": "sha1-x+dFXRHWD2ts08Q+FaO0McF+VWY=", "dev": true, "requires": { - "hoek": "5.x.x", - "joi": "13.x.x" + "hoek": "5.0.3", + "joi": "13.4.0" } }, "signal-exit": { @@ -12837,13 +12850,13 @@ "integrity": "sha512-pmf05hFgEZUS52AGJcsVjOjqAyJW2yo14cOwVYvzCyw7+inv06YXkLyW75WG6X6p951lzkoKh51L2sNbR9CDvw==", "dev": true, "requires": { - "@sinonjs/formatio": "^2.0.0", - "diff": "^3.1.0", - "lodash.get": "^4.4.2", - "lolex": "^2.2.0", - "nise": "^1.2.0", - "supports-color": "^5.1.0", - "type-detect": "^4.0.5" + "@sinonjs/formatio": "2.0.0", + "diff": "3.5.0", + "lodash.get": "4.4.2", + "lolex": "2.7.1", + "nise": "1.4.2", + "supports-color": "5.4.0", + "type-detect": "4.0.8" } }, "slash": { @@ -12858,7 +12871,7 @@ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0" + "is-fullwidth-code-point": "2.0.0" } }, "slide": { @@ -12873,14 +12886,14 @@ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "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.2", + "use": "3.1.0" }, "dependencies": { "debug": { @@ -12898,7 +12911,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -12907,7 +12920,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -12918,9 +12931,9 @@ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "dependencies": { "define-property": { @@ -12929,7 +12942,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -12938,7 +12951,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -12947,7 +12960,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -12956,9 +12969,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -12981,7 +12994,7 @@ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { - "kind-of": "^3.2.0" + "kind-of": "3.2.2" } }, "sort-keys": { @@ -12990,7 +13003,7 @@ "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", "dev": true, "requires": { - "is-plain-obj": "^1.0.0" + "is-plain-obj": "1.1.0" } }, "source-map": { @@ -13005,11 +13018,11 @@ "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "dev": true, "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "atob": "2.1.1", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" } }, "source-map-support": { @@ -13018,8 +13031,8 @@ "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", "dev": true, "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "buffer-from": "1.1.0", + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -13042,9 +13055,9 @@ "integrity": "sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==", "dev": true, "requires": { - "array-find-index": "^1.0.2", - "spdx-expression-parse": "^3.0.0", - "spdx-ranges": "^2.0.0" + "array-find-index": "1.0.2", + "spdx-expression-parse": "3.0.0", + "spdx-ranges": "2.0.0" } }, "spdx-correct": { @@ -13053,8 +13066,8 @@ "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "dev": true, "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, "spdx-exceptions": { @@ -13069,8 +13082,8 @@ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" } }, "spdx-license-ids": { @@ -13091,9 +13104,9 @@ "integrity": "sha512-OcARj6U1OuVv98SVrRqgrR30sVocONtoPpnX8Xz4vXNrFVedqtbgkA+0KmQoXIQ2xjfltPPRVIMeNzKEFLWWKQ==", "dev": true, "requires": { - "spdx-compare": "^1.0.0", - "spdx-expression-parse": "^3.0.0", - "spdx-ranges": "^2.0.0" + "spdx-compare": "1.0.0", + "spdx-expression-parse": "3.0.0", + "spdx-ranges": "2.0.0" } }, "spdy": { @@ -13102,12 +13115,12 @@ "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", "dev": true, "requires": { - "debug": "^2.6.8", - "handle-thing": "^1.2.5", - "http-deceiver": "^1.2.7", - "safe-buffer": "^5.0.1", - "select-hose": "^2.0.0", - "spdy-transport": "^2.0.18" + "debug": "2.6.9", + "handle-thing": "1.2.5", + "http-deceiver": "1.2.7", + "safe-buffer": "5.1.2", + "select-hose": "2.0.0", + "spdy-transport": "2.1.0" }, "dependencies": { "debug": { @@ -13127,13 +13140,13 @@ "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", "dev": true, "requires": { - "debug": "^2.6.8", - "detect-node": "^2.0.3", - "hpack.js": "^2.1.6", - "obuf": "^1.1.1", - "readable-stream": "^2.2.9", - "safe-buffer": "^5.0.1", - "wbuf": "^1.7.2" + "debug": "2.6.9", + "detect-node": "2.0.3", + "hpack.js": "2.1.6", + "obuf": "1.1.2", + "readable-stream": "2.3.6", + "safe-buffer": "5.1.2", + "wbuf": "1.7.3" }, "dependencies": { "debug": { @@ -13152,7 +13165,7 @@ "resolved": "https://registry.npmjs.org/split-array-stream/-/split-array-stream-2.0.0.tgz", "integrity": "sha512-hmMswlVY91WvGMxs0k8MRgq8zb2mSen4FmDNc5AFiTWtrBpdZN6nwD6kROVe4vNL+ywrvbCKsWVCnEd4riELIg==", "requires": { - "is-stream-ended": "^0.1.4" + "is-stream-ended": "0.1.4" } }, "split-string": { @@ -13161,7 +13174,7 @@ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { - "extend-shallow": "^3.0.0" + "extend-shallow": "3.0.2" } }, "sprintf-js": { @@ -13176,8 +13189,8 @@ "integrity": "sha1-pWad4StC87HV6D7QPHEEb8SPQe8=", "dev": true, "requires": { - "array-uniq": "^1.0.2", - "number-is-nan": "^1.0.0" + "array-uniq": "1.0.3", + "number-is-nan": "1.0.1" } }, "sshpk": { @@ -13185,15 +13198,15 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.2", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "safer-buffer": "2.1.2", + "tweetnacl": "0.14.5" } }, "stack-utils": { @@ -13208,12 +13221,12 @@ "integrity": "sha512-jR45n5ZMAkasw0xoE9j9TuLmJv4Sa3AkXe+6yIFT6a07kXYHgSbuD2OVGECdZGFxTmvNqLwL1iRIgvq6O6rq+A==", "dev": true, "requires": { - "boom": "7.x.x", - "bounce": "1.x.x", - "cryptiles": "4.x.x", - "hoek": "5.x.x", - "iron": "5.x.x", - "joi": "13.x.x" + "boom": "7.2.0", + "bounce": "1.2.0", + "cryptiles": "4.1.2", + "hoek": "5.0.3", + "iron": "5.0.4", + "joi": "13.4.0" } }, "static-extend": { @@ -13222,8 +13235,8 @@ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" + "define-property": "0.2.5", + "object-copy": "0.1.0" }, "dependencies": { "define-property": { @@ -13232,7 +13245,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -13248,7 +13261,7 @@ "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.4.tgz", "integrity": "sha512-D243NJaYs/xBN2QnoiMDY7IesJFIK7gEhnvAYqJa5JvDdnh2dC4qDBwlCf0ohPpX2QRlA/4gnbnPd3rs3KxVcA==", "requires": { - "stubs": "^3.0.0" + "stubs": "3.0.0" } }, "stream-shift": { @@ -13280,8 +13293,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" } }, "string.prototype.matchall": { @@ -13290,11 +13303,11 @@ "integrity": "sha512-WoZ+B2ypng1dp4iFLF2kmZlwwlE19gmjgKuhL1FJfDgCREWb3ye3SDVHSzLH6bxfnvYmkCxbzkmWcQZHA4P//Q==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.10.0", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "regexp.prototype.flags": "^1.2.0" + "define-properties": "1.1.2", + "es-abstract": "1.12.0", + "function-bind": "1.1.1", + "has-symbols": "1.0.0", + "regexp.prototype.flags": "1.2.0" } }, "string_decoder": { @@ -13302,7 +13315,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.2" } }, "stringifier": { @@ -13311,9 +13324,9 @@ "integrity": "sha1-3vGDQvaTPbDy2/yaoCF1tEjBeVk=", "dev": true, "requires": { - "core-js": "^2.0.0", - "traverse": "^0.6.6", - "type-name": "^2.0.1" + "core-js": "2.5.7", + "traverse": "0.6.6", + "type-name": "2.0.2" } }, "strip-ansi": { @@ -13322,7 +13335,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" }, "dependencies": { "ansi-regex": { @@ -13345,7 +13358,7 @@ "integrity": "sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=", "dev": true, "requires": { - "is-utf8": "^0.2.1" + "is-utf8": "0.2.1" } }, "strip-eof": { @@ -13360,7 +13373,7 @@ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, "requires": { - "get-stdin": "^4.0.1" + "get-stdin": "4.0.1" } }, "strip-json-comments": { @@ -13380,11 +13393,11 @@ "integrity": "sha512-IcJUvRjeR+NB437Iq+LORFNJW4L6Knqkj3oQrBrkdhIaS2VKJvx/9aYEq7vi+PEx5/OuehOL/40SkSZotLi/MA==", "dev": true, "requires": { - "boom": "7.x.x", - "content": "4.x.x", - "hoek": "5.x.x", - "pez": "4.x.x", - "wreck": "14.x.x" + "boom": "7.2.0", + "content": "4.0.5", + "hoek": "5.0.3", + "pez": "4.0.2", + "wreck": "14.0.2" } }, "superagent": { @@ -13393,16 +13406,16 @@ "integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==", "dev": true, "requires": { - "component-emitter": "^1.2.0", - "cookiejar": "^2.1.0", - "debug": "^3.1.0", - "extend": "^3.0.0", - "form-data": "^2.3.1", - "formidable": "^1.2.0", - "methods": "^1.1.1", - "mime": "^1.4.1", - "qs": "^6.5.1", - "readable-stream": "^2.3.5" + "component-emitter": "1.2.1", + "cookiejar": "2.1.2", + "debug": "3.1.0", + "extend": "3.0.1", + "form-data": "2.3.2", + "formidable": "1.2.1", + "methods": "1.1.2", + "mime": "1.6.0", + "qs": "6.5.2", + "readable-stream": "2.3.6" }, "dependencies": { "mime": { @@ -13419,11 +13432,11 @@ "integrity": "sha512-HZJ3geIMPgVwKk2VsmO5YHqnnJYl6bV5A9JW2uzqV43WmpgliNEYbuvukfor7URpaqpxuw3CfZ3ONdVbZjCgIA==", "dev": true, "requires": { - "arrify": "^1.0.1", - "indent-string": "^3.2.0", - "js-yaml": "^3.10.0", - "serialize-error": "^2.1.0", - "strip-ansi": "^4.0.0" + "arrify": "1.0.1", + "indent-string": "3.2.0", + "js-yaml": "3.12.0", + "serialize-error": "2.1.0", + "strip-ansi": "4.0.0" } }, "supertest": { @@ -13432,8 +13445,8 @@ "integrity": "sha1-jUu2j9GDDuBwM7HFpamkAhyWUpY=", "dev": true, "requires": { - "methods": "~1.1.2", - "superagent": "^3.0.0" + "methods": "1.1.2", + "superagent": "3.8.3" } }, "supports-color": { @@ -13442,7 +13455,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" }, "dependencies": { "has-flag": { @@ -13465,12 +13478,12 @@ "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", "dev": true, "requires": { - "ajv": "^6.0.1", - "ajv-keywords": "^3.0.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", + "ajv": "6.5.2", + "ajv-keywords": "3.2.0", + "chalk": "2.4.1", + "lodash": "4.17.5", "slice-ansi": "1.0.0", - "string-width": "^2.1.1" + "string-width": "2.1.1" }, "dependencies": { "ajv": { @@ -13479,10 +13492,10 @@ "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.1" + "fast-deep-equal": "2.0.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" } }, "fast-deep-equal": { @@ -13517,7 +13530,7 @@ "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "dev": true, "requires": { - "execa": "^0.7.0" + "execa": "0.7.0" } }, "text-encoding": { @@ -13543,8 +13556,8 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "requires": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" + "readable-stream": "2.3.6", + "xtend": "4.0.1" } }, "time-zone": { @@ -13565,7 +13578,7 @@ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "os-tmpdir": "~1.0.2" + "os-tmpdir": "1.0.2" } }, "to-fast-properties": { @@ -13580,7 +13593,7 @@ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "to-regex": { @@ -13589,10 +13602,10 @@ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" } }, "to-regex-range": { @@ -13601,8 +13614,8 @@ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "3.0.0", + "repeat-string": "1.6.1" }, "dependencies": { "is-number": { @@ -13611,7 +13624,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } } } @@ -13622,7 +13635,7 @@ "integrity": "sha512-Tlu1fGlR90iCdIPURqPiufqAlCZYzLjHYVVbcFWDMcX7+tK8hdZWAfsMrD/pBul9jqHHwFjNdf1WaxA9vTRRhw==", "dev": true, "requires": { - "hoek": "5.x.x" + "hoek": "5.0.3" } }, "tough-cookie": { @@ -13630,7 +13643,7 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "requires": { - "punycode": "^1.4.1" + "punycode": "1.4.1" } }, "traverse": { @@ -13669,18 +13682,18 @@ "integrity": "sha1-EeJrzLiK+gLdDZlWyuPUVAtfVMM=", "dev": true, "requires": { - "babel-code-frame": "^6.22.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^3.2.0", - "glob": "^7.1.1", - "js-yaml": "^3.7.0", - "minimatch": "^3.0.4", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.8.0", - "tsutils": "^2.12.1" + "babel-code-frame": "6.26.0", + "builtin-modules": "1.1.1", + "chalk": "2.4.1", + "commander": "2.16.0", + "diff": "3.5.0", + "glob": "7.1.2", + "js-yaml": "3.12.0", + "minimatch": "3.0.4", + "resolve": "1.8.1", + "semver": "5.5.0", + "tslib": "1.9.3", + "tsutils": "2.27.2" }, "dependencies": { "resolve": { @@ -13689,7 +13702,7 @@ "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "dev": true, "requires": { - "path-parse": "^1.0.5" + "path-parse": "1.0.5" } } } @@ -13700,7 +13713,7 @@ "integrity": "sha512-qf6rmT84TFMuxAKez2pIfR8UCai49iQsfB7YWVjV1bKpy/d0PWT5rEOSM6La9PiHZ0k1RRZQiwVdVJfQ3BPHgg==", "dev": true, "requires": { - "tslib": "^1.8.1" + "tslib": "1.9.3" } }, "tunnel-agent": { @@ -13708,7 +13721,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "tweetnacl": { @@ -13723,7 +13736,7 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "~1.1.2" + "prelude-ls": "1.1.2" } }, "type-detect": { @@ -13739,7 +13752,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "~2.1.18" + "mime-types": "2.1.18" } }, "type-name": { @@ -13761,9 +13774,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" }, "dependencies": { "camelcase": { @@ -13780,9 +13793,9 @@ "dev": true, "optional": true, "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", "window-size": "0.1.0" } } @@ -13830,10 +13843,10 @@ "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "dev": true, "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" }, "dependencies": { "extend-shallow": { @@ -13842,7 +13855,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "set-value": { @@ -13851,10 +13864,10 @@ "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" } } } @@ -13865,7 +13878,7 @@ "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", "dev": true, "requires": { - "crypto-random-string": "^1.0.0" + "crypto-random-string": "1.0.0" } }, "unique-temp-dir": { @@ -13874,8 +13887,8 @@ "integrity": "sha1-bc6VsmgcoAPuv7MEpBX5y6vMU4U=", "dev": true, "requires": { - "mkdirp": "^0.5.1", - "os-tmpdir": "^1.0.1", + "mkdirp": "0.5.1", + "os-tmpdir": "1.0.2", "uid2": "0.0.3" } }, @@ -13885,9 +13898,9 @@ "integrity": "sha1-DaSsL3PP95JMgfpN4BjKViyisKc=", "dev": true, "requires": { - "array-filter": "^1.0.0", + "array-filter": "1.0.0", "indexof": "0.0.1", - "object-keys": "^1.0.0" + "object-keys": "1.0.12" } }, "universalify": { @@ -13908,8 +13921,8 @@ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "has-value": "0.3.1", + "isobject": "3.0.1" }, "dependencies": { "has-value": { @@ -13918,9 +13931,9 @@ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" }, "dependencies": { "isobject": { @@ -13960,16 +13973,16 @@ "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", "dev": true, "requires": { - "boxen": "^1.2.1", - "chalk": "^2.0.1", - "configstore": "^3.0.0", - "import-lazy": "^2.1.0", - "is-ci": "^1.0.10", - "is-installed-globally": "^0.1.0", - "is-npm": "^1.0.0", - "latest-version": "^3.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" + "boxen": "1.3.0", + "chalk": "2.4.1", + "configstore": "3.1.2", + "import-lazy": "2.1.0", + "is-ci": "1.1.0", + "is-installed-globally": "0.1.0", + "is-npm": "1.0.0", + "latest-version": "3.1.0", + "semver-diff": "2.1.0", + "xdg-basedir": "3.0.0" } }, "uri-js": { @@ -13978,7 +13991,7 @@ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { - "punycode": "^2.1.0" + "punycode": "2.1.1" }, "dependencies": { "punycode": { @@ -14001,7 +14014,7 @@ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "dev": true, "requires": { - "prepend-http": "^1.0.1" + "prepend-http": "1.0.4" } }, "url-to-options": { @@ -14022,7 +14035,7 @@ "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", "dev": true, "requires": { - "kind-of": "^6.0.2" + "kind-of": "6.0.2" }, "dependencies": { "kind-of": { @@ -14055,8 +14068,8 @@ "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "dev": true, "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "validate-npm-package-name": { @@ -14065,7 +14078,7 @@ "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "dev": true, "requires": { - "builtins": "^1.0.3" + "builtins": "1.0.3" } }, "vary": { @@ -14105,9 +14118,9 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "^1.0.0", + "assert-plus": "1.0.0", "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "extsprintf": "1.3.0" } }, "vise": { @@ -14116,7 +14129,7 @@ "integrity": "sha512-kBFZLmiL1Vm3rHXphkhvvAcsjgeQXRrOFCbJb0I50YZZP4HGRNH+xGzK3matIMcpbsfr3I02u9odj4oCD0TWgA==", "dev": true, "requires": { - "hoek": "5.x.x" + "hoek": "5.0.3" } }, "wbuf": { @@ -14125,7 +14138,7 @@ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, "requires": { - "minimalistic-assert": "^1.0.0" + "minimalistic-assert": "1.0.1" } }, "well-known-symbols": { @@ -14140,7 +14153,7 @@ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -14155,7 +14168,7 @@ "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", "dev": true, "requires": { - "string-width": "^2.1.1" + "string-width": "2.1.1" } }, "window-size": { @@ -14177,8 +14190,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -14187,7 +14200,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "string-width": { @@ -14196,9 +14209,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "strip-ansi": { @@ -14207,7 +14220,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } } } @@ -14223,8 +14236,8 @@ "integrity": "sha512-QCm3omWNJUseqrSzwX2QZi1rBbmCfbFHJAXputLLyZ37VSiFnSYQB0ms/mPnSvrlIu7GVm89Y/gBNhSY26uVIQ==", "dev": true, "requires": { - "boom": "7.x.x", - "hoek": "5.x.x" + "boom": "7.2.0", + "hoek": "5.0.3" } }, "write": { @@ -14233,7 +14246,7 @@ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "^0.5.1" + "mkdirp": "0.5.1" } }, "write-file-atomic": { @@ -14242,9 +14255,9 @@ "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "signal-exit": "3.0.2" } }, "write-json-file": { @@ -14253,12 +14266,12 @@ "integrity": "sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=", "dev": true, "requires": { - "detect-indent": "^5.0.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "pify": "^3.0.0", - "sort-keys": "^2.0.0", - "write-file-atomic": "^2.0.0" + "detect-indent": "5.0.0", + "graceful-fs": "4.1.11", + "make-dir": "1.3.0", + "pify": "3.0.0", + "sort-keys": "2.0.0", + "write-file-atomic": "2.3.0" }, "dependencies": { "detect-indent": { @@ -14275,8 +14288,8 @@ "integrity": "sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw==", "dev": true, "requires": { - "sort-keys": "^2.0.0", - "write-json-file": "^2.2.0" + "sort-keys": "2.0.0", + "write-json-file": "2.3.0" } }, "xdg-basedir": { @@ -14313,18 +14326,18 @@ "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^9.0.2" + "cliui": "4.1.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "9.0.2" }, "dependencies": { "cliui": { @@ -14333,9 +14346,9 @@ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" } } } @@ -14346,7 +14359,7 @@ "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" }, "dependencies": { "camelcase": { diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index be7327c491d..9046a9d8934 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -121,6 +121,7 @@ "nyc": "^12.0.2", "once": "^1.4.0", "pify": "^3.0.0", + "post-install-check": "0.0.1", "power-assert": "^1.5.0", "prettier": "^1.12.1", "proxyquire": "^2.0.1", diff --git a/handwritten/error-reporting/system-test/test-install.ts b/handwritten/error-reporting/system-test/test-install.ts index f59ae0a66cf..50febe3904a 100644 --- a/handwritten/error-reporting/system-test/test-install.ts +++ b/handwritten/error-reporting/system-test/test-install.ts @@ -14,16 +14,9 @@ * limitations under the License. */ -import assert from 'assert'; -import {SpawnOptions} from 'child_process'; -import path from 'path'; +import * as check from 'post-install-check'; -import {globP, mkdirP, ncpP, rimrafP, spawnP, tmpDirP, writeFileP} from './utils'; - -const INDEX_TS = 'index.ts'; -const INDEX_JS = 'index.js'; - -const TS_CODE_ARRAY: CodeSample[] = [ +const TS_CODE_ARRAY: check.CodeSample[] = [ { code: `import * as errorReporting from '@google-cloud/error-reporting'; new errorReporting.ErrorReporting();`, @@ -65,7 +58,7 @@ new ErrorReporting({ devDependencies: [] }, { - code: `import express from 'express'; + code: `import * as express from 'express'; import {ErrorReporting} from '@google-cloud/error-reporting'; const errors = new ErrorReporting(); @@ -112,7 +105,7 @@ server.register(errors.hapi); devDependencies: ['@types/hapi@16.x.x'] }, { - code: `import hapi from 'hapi'; + code: `import * as hapi from 'hapi'; import {ErrorReporting} from '@google-cloud/error-reporting'; const errors = new ErrorReporting(); @@ -141,7 +134,7 @@ start().catch(console.error); devDependencies: ['@types/hapi@17.x.x'] }, { - code: `import Koa from 'koa'; + code: `import * as Koa from 'koa'; import {ErrorReporting} from '@google-cloud/error-reporting'; const errors = new ErrorReporting(); @@ -165,7 +158,7 @@ app.use(function *(this: any): IterableIterator { devDependencies: ['@types/koa'] }, { - code: `import restify from 'restify'; + code: `import * as restify from 'restify'; import {ErrorReporting} from '@google-cloud/error-reporting'; const errors = new ErrorReporting(); @@ -186,7 +179,7 @@ server.head('/hello/:name', respond); } ]; -const JS_CODE_ARRAY: CodeSample[] = [ +const JS_CODE_ARRAY: check.CodeSample[] = [ { code: `const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; @@ -347,131 +340,6 @@ server.head('/hello/:name', respond); } ]; -const TIMEOUT_MS = 2 * 60 * 1000; - -interface CodeSample { - code: string; - description: string; - dependencies: string[]; - devDependencies: string[]; - skip?: boolean; -} - -describe('Installation', () => { - let text = ''; - let installDir: string|undefined; - - function log(txt: string): void { - text += txt; - } - - async function run( - cmd: string, args: string[], options?: SpawnOptions): Promise { - await spawnP(cmd, args, options, log); - } - - before(async () => { - const tgz = await globP(`${process.cwd()}/*.tgz`); - assert.deepStrictEqual( - tgz.length, 0, - `Expected zero tgz files in the current working directory before ` + - `running the test but found files: ${tgz.map(file => { - const parts = file.split(path.sep); - return parts[parts.length - 1]; - })}`); - }); - - beforeEach(async function() { - this.timeout(TIMEOUT_MS); - text = ''; - // This script assumes that you don't already have a TGZ file - // in your current working directory. - installDir = await tmpDirP(); - log(`Using installation directory: ${installDir}`); - await run('npm', ['install']); - await run('npm', ['run', 'compile']); - await run('npm', ['pack']); - const tgz = await globP(`${process.cwd()}/*.tgz`); - if (tgz.length !== 1) { - throw new Error( - `Expected 1 tgz file in current directory, but found ${tgz.length}`); - } - await run('npm', ['init', '-y'], {cwd: installDir}); - await run( - 'npm', ['install', 'typescript', '@types/node', tgz[0]], - {cwd: installDir}); - }); - - afterEach(async function() { - this.timeout(TIMEOUT_MS); - if (installDir) { - await rimrafP(installDir); - } - if (this.currentTest && this.currentTest.state === 'failed') { - console.log(text); - } - }); - - describe('When used with Typescript code', () => { - TS_CODE_ARRAY.forEach((sample) => { - const fn = sample.skip ? it.skip : it; - fn(`should install and work with code that ${sample.description}`, - async function() { - this.timeout(TIMEOUT_MS); - assert(installDir); - const srcDir = path.join(installDir!, 'src'); - await mkdirP(srcDir); - - await writeFileP(path.join(srcDir, INDEX_TS), sample.code, 'utf-8'); - - if (sample.dependencies.length > 0) { - await run( - 'npm', ['install', '--save'].concat(sample.dependencies), - {cwd: installDir}); - } - - const devDeps = - sample.devDependencies.concat(['gts', 'typescript@2.x']); - await run( - 'npm', ['install', '--save-dev'].concat(devDeps), - {cwd: installDir}); - - await run('gts', ['init', '--yes'], {cwd: installDir}); - await run('npm', ['run', 'compile'], {cwd: installDir}); - const buildDir = path.join(installDir!, 'build'); - await run( - 'node', [path.join(buildDir, 'src', INDEX_JS)], - {cwd: installDir}); - }); - }); - }); - - describe('When used with Javascript code', () => { - JS_CODE_ARRAY.forEach((sample) => { - const fn = sample.skip ? it.skip : it; - fn(`should install and work with code that ${sample.description}`, - async function() { - this.timeout(TIMEOUT_MS); - assert(installDir); - - await writeFileP( - path.join(installDir!, INDEX_JS), sample.code, 'utf-8'); - - if (sample.dependencies) { - await run( - 'npm', ['install', '--save'].concat(sample.dependencies), - {cwd: installDir}); - } - - if (sample.devDependencies) { - await run( - 'npm', - ['install', '--save-dev'].concat(sample.devDependencies), - {cwd: installDir}); - } - - await run('node', [INDEX_JS], {cwd: installDir}); - }); - }); - }); +check.testInstallation(TS_CODE_ARRAY, JS_CODE_ARRAY, { + timeout: 2*60*1000 }); From e295663c93ea2cb9415e3ee46aff57fcac0d3bb6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Fri, 13 Jul 2018 12:23:09 -0700 Subject: [PATCH 125/527] chore(deps): update dependency gts to ^0.8.0 (#167) --- handwritten/error-reporting/package-lock.json | 182 ++++++++++-------- handwritten/error-reporting/package.json | 2 +- .../error-reporting/src/configuration.ts | 4 +- .../src/google-apis/auth-client.ts | 2 +- .../error-reporting/src/interfaces/hapi.ts | 6 +- .../error-reporting/src/interfaces/manual.ts | 2 +- .../error-reporting/src/interfaces/restify.ts | 2 +- handwritten/error-reporting/src/logger.ts | 4 +- .../src/populate-error-message.ts | 2 +- .../src/request-extractors/hapi.ts | 8 +- .../src/request-extractors/manual.ts | 2 +- .../system-test/error-reporting.ts | 6 +- .../error-reporting/system-test/utils.ts | 12 +- .../test-servers/express_scaffold_server.ts | 4 +- .../test/test-servers/hapi_scaffold_server.ts | 2 +- .../test/test-servers/koa_scaffold_server.ts | 2 +- .../test/unit/build-stack-trace.ts | 2 +- .../test/unit/classes/error-message.ts | 2 +- .../classes/request-information-container.ts | 2 +- .../test/unit/configuration.ts | 4 +- .../test/unit/google-apis/auth-client.ts | 4 +- .../test/unit/interfaces/express.ts | 2 +- .../test/unit/interfaces/hapi.ts | 6 +- .../test/unit/interfaces/manual.ts | 2 +- .../test/unit/interfaces/restify.ts | 2 +- .../error-reporting/test/unit/logger.ts | 2 +- .../test/unit/populate-error-message.ts | 2 +- .../test/unit/request-extractors/express.ts | 4 +- .../test/unit/request-extractors/hapi.ts | 4 +- .../test/unit/request-extractors/koa.ts | 2 +- .../test/unit/request-extractors/manual.ts | 4 +- .../test/unit/service-configuration.ts | 2 +- 32 files changed, 154 insertions(+), 134 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index 4791357728e..a6c2ac58872 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -296,6 +296,7 @@ "version": "0.1.4", "bundled": true, "dev": true, + "optional": true, "requires": { "kind-of": "3.2.2", "longest": "1.0.1", @@ -1106,7 +1107,8 @@ "longest": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "loose-envify": { "version": "1.3.1", @@ -2446,6 +2448,7 @@ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, + "optional": true, "requires": { "kind-of": "3.2.2", "longest": "1.0.1", @@ -3779,9 +3782,9 @@ "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", "dev": true, "requires": { - "async": "1.5.2", - "glob": "7.1.2", - "resolve": "1.1.7" + "async": "^1.5.2", + "glob": "^7.0.0", + "resolve": "^1.1.6" } }, "class-utils": { @@ -6217,12 +6220,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -6237,17 +6242,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -6364,7 +6372,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -6376,6 +6385,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "1.0.1" } @@ -6390,6 +6400,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "1.1.11" } @@ -6397,12 +6408,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.2.4", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "5.1.1", "yallist": "3.0.2" @@ -6421,6 +6434,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -6501,7 +6515,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -6513,6 +6528,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1.0.2" } @@ -6634,6 +6650,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -6957,20 +6974,20 @@ } }, "gts": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/gts/-/gts-0.7.1.tgz", - "integrity": "sha512-7yMBk3+SmyL4+047vIXOAUWlNfbIkuPH0UnhQYzurM8yj1ufiVH++BdBpZY7AP6/wytvzq7PuVzqAXbk5isn2A==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/gts/-/gts-0.8.0.tgz", + "integrity": "sha512-VB9LQLFR+10cJhDBLYu9i2t7vTkewTXeBJbvw5+M2LqGgjiaKIUTIFbVBLjIknDpuaRpAzVcvhiHWy/30c09jg==", "dev": true, "requires": { - "chalk": "2.4.1", + "chalk": "^2.4.1", "clang-format": "1.2.3", - "inquirer": "6.0.0", - "meow": "5.0.0", - "pify": "3.0.0", - "rimraf": "2.6.2", - "tslint": "5.10.0", - "update-notifier": "2.5.0", - "write-file-atomic": "2.3.0" + "inquirer": "^6.0.0", + "meow": "^5.0.0", + "pify": "^3.0.0", + "rimraf": "^2.6.2", + "tslint": "^5.9.1", + "update-notifier": "^2.5.0", + "write-file-atomic": "^2.3.0" }, "dependencies": { "camelcase": { @@ -6985,9 +7002,9 @@ "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", "dev": true, "requires": { - "camelcase": "4.1.0", - "map-obj": "2.0.0", - "quick-lru": "1.1.0" + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" } }, "chardet": { @@ -7002,9 +7019,9 @@ "integrity": "sha512-mpkfj0FEdxrIhOC04zk85X7StNtr0yXnG7zCb+8ikO8OJi2jsHh5YGoknNTyXgsbHOf1WOOcVU3kPFWT2WgCkQ==", "dev": true, "requires": { - "chardet": "0.5.0", - "iconv-lite": "0.4.23", - "tmp": "0.0.33" + "chardet": "^0.5.0", + "iconv-lite": "^0.4.22", + "tmp": "^0.0.33" } }, "inquirer": { @@ -7013,19 +7030,19 @@ "integrity": "sha512-tISQWRwtcAgrz+SHPhTH7d3e73k31gsOy6i1csonLc0u1dVK/wYvuOnFeiWqC5OXFIYbmrIFInef31wbT8MEJg==", "dev": true, "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "3.0.0", - "figures": "2.0.0", - "lodash": "4.17.5", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.0", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rxjs": "6.2.1", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rxjs": "^6.1.0", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" } }, "load-json-file": { @@ -7034,10 +7051,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "map-obj": { @@ -7052,15 +7069,15 @@ "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", "dev": true, "requires": { - "camelcase-keys": "4.2.0", - "decamelize-keys": "1.1.0", - "loud-rejection": "1.6.0", - "minimist-options": "3.0.2", - "normalize-package-data": "2.4.0", - "read-pkg-up": "3.0.0", - "redent": "2.0.0", - "trim-newlines": "2.0.0", - "yargs-parser": "10.1.0" + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0", + "yargs-parser": "^10.0.0" } }, "parse-json": { @@ -7069,8 +7086,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "path-type": { @@ -7079,7 +7096,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "read-pkg": { @@ -7088,9 +7105,9 @@ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.4.0", - "path-type": "3.0.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" } }, "read-pkg-up": { @@ -7099,8 +7116,8 @@ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "3.0.0" + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" } }, "redent": { @@ -7109,8 +7126,8 @@ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", "dev": true, "requires": { - "indent-string": "3.2.0", - "strip-indent": "2.0.0" + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" } }, "rxjs": { @@ -7119,7 +7136,7 @@ "integrity": "sha512-OwMxHxmnmHTUpgO+V7dZChf3Tixf4ih95cmXjzzadULziVl/FKhHScGLj4goEw9weePVOH2Q0+GcCBUhKCZc/g==", "dev": true, "requires": { - "tslib": "1.9.3" + "tslib": "^1.9.0" } }, "strip-indent": { @@ -7140,7 +7157,7 @@ "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } @@ -8546,7 +8563,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true + "dev": true, + "optional": true }, "loose-envify": { "version": "1.4.0", @@ -9285,6 +9303,7 @@ "version": "0.1.4", "bundled": true, "dev": true, + "optional": true, "requires": { "kind-of": "3.2.2", "longest": "1.0.1", @@ -10227,7 +10246,8 @@ "longest": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "lru-cache": { "version": "4.1.3", @@ -13682,18 +13702,18 @@ "integrity": "sha1-EeJrzLiK+gLdDZlWyuPUVAtfVMM=", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "builtin-modules": "1.1.1", - "chalk": "2.4.1", - "commander": "2.16.0", - "diff": "3.5.0", - "glob": "7.1.2", - "js-yaml": "3.12.0", - "minimatch": "3.0.4", - "resolve": "1.8.1", - "semver": "5.5.0", - "tslib": "1.9.3", - "tsutils": "2.27.2" + "babel-code-frame": "^6.22.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^3.2.0", + "glob": "^7.1.1", + "js-yaml": "^3.7.0", + "minimatch": "^3.0.4", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.12.1" }, "dependencies": { "resolve": { @@ -13702,7 +13722,7 @@ "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } } } @@ -13713,7 +13733,7 @@ "integrity": "sha512-qf6rmT84TFMuxAKez2pIfR8UCai49iQsfB7YWVjV1bKpy/d0PWT5rEOSM6La9PiHZ0k1RRZQiwVdVJfQ3BPHgg==", "dev": true, "requires": { - "tslib": "1.9.3" + "tslib": "^1.8.1" } }, "tunnel-agent": { diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 9046a9d8934..f8e9f73de75 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -100,7 +100,7 @@ "express-serve-static-core": "^0.1.1", "extend": "^3.0.1", "glob": "^7.1.2", - "gts": "^0.7.1", + "gts": "^0.8.0", "hapi": "^17.4.0", "ink-docstrap": "^1.3.2", "intelli-espower-loader": "^1.0.1", diff --git a/handwritten/error-reporting/src/configuration.ts b/handwritten/error-reporting/src/configuration.ts index 07ea84d983c..ccedfd0d341 100644 --- a/handwritten/error-reporting/src/configuration.ts +++ b/handwritten/error-reporting/src/configuration.ts @@ -16,8 +16,8 @@ import {Logger} from '@google-cloud/common'; -import is from 'is'; -import has from 'lodash.has'; +import * as is from 'is'; +import {has} from 'lodash'; const isObject = is.object; const isBoolean = is.boolean; diff --git a/handwritten/error-reporting/src/google-apis/auth-client.ts b/handwritten/error-reporting/src/google-apis/auth-client.ts index 07799efc1f5..2b54c16e5e5 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.ts +++ b/handwritten/error-reporting/src/google-apis/auth-client.ts @@ -15,7 +15,7 @@ */ const pkg = require('../../../package.json'); -import is from 'is'; +import * as is from 'is'; import {Configuration} from '../configuration'; import {ErrorMessage} from '../classes/error-message'; import * as http from 'http'; diff --git a/handwritten/error-reporting/src/interfaces/hapi.ts b/handwritten/error-reporting/src/interfaces/hapi.ts index 583528aa125..436e6d64e6f 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.ts +++ b/handwritten/error-reporting/src/interfaces/hapi.ts @@ -14,8 +14,8 @@ * limitations under the License. */ -import boom from 'boom'; -import is from 'is'; +import * as boom from 'boom'; +import * as is from 'is'; const isObject = is.object; const isFunction = is.fn; @@ -26,7 +26,7 @@ const packageJson = require('../../../package.json'); import {RequestHandler} from '../google-apis/auth-client'; import {Configuration} from '../configuration'; -import hapi from 'hapi'; +import * as hapi from 'hapi'; /** * The Hapi error handler function serves simply to create an error message diff --git a/handwritten/error-reporting/src/interfaces/manual.ts b/handwritten/error-reporting/src/interfaces/manual.ts index d2938b1dd3d..08ca0ee47dd 100644 --- a/handwritten/error-reporting/src/interfaces/manual.ts +++ b/handwritten/error-reporting/src/interfaces/manual.ts @@ -16,7 +16,7 @@ import {Logger} from '@google-cloud/common'; import * as http from 'http'; -import is from 'is'; +import * as is from 'is'; import {ErrorMessage} from '../classes/error-message'; import {Configuration} from '../configuration'; diff --git a/handwritten/error-reporting/src/interfaces/restify.ts b/handwritten/error-reporting/src/interfaces/restify.ts index f093dd9367b..582eb8b7988 100644 --- a/handwritten/error-reporting/src/interfaces/restify.ts +++ b/handwritten/error-reporting/src/interfaces/restify.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import is from 'is'; +import * as is from 'is'; const isObject = is.object; const isFunction = is.function; import {ErrorMessage} from '../classes/error-message'; diff --git a/handwritten/error-reporting/src/logger.ts b/handwritten/error-reporting/src/logger.ts index befb66a5020..0cc0aa78d47 100644 --- a/handwritten/error-reporting/src/logger.ts +++ b/handwritten/error-reporting/src/logger.ts @@ -14,8 +14,8 @@ * limitations under the License. */ -import is from 'is'; -import has from 'lodash.has'; +import * as is from 'is'; +import {has} from 'lodash'; const packageJson = require('../../package.json'); diff --git a/handwritten/error-reporting/src/populate-error-message.ts b/handwritten/error-reporting/src/populate-error-message.ts index 1bf56f33412..ae4ae2dd69e 100644 --- a/handwritten/error-reporting/src/populate-error-message.ts +++ b/handwritten/error-reporting/src/populate-error-message.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import has = require('lodash.has'); +import {has} from 'lodash'; import * as is from 'is'; const isObject = is.object; import {buildStackTrace} from './build-stack-trace'; diff --git a/handwritten/error-reporting/src/request-extractors/hapi.ts b/handwritten/error-reporting/src/request-extractors/hapi.ts index c28f08447a0..0af7f232e14 100644 --- a/handwritten/error-reporting/src/request-extractors/hapi.ts +++ b/handwritten/error-reporting/src/request-extractors/hapi.ts @@ -14,15 +14,15 @@ * limitations under the License. */ -import boom from 'boom'; -import is from 'is'; -import has from 'lodash.has'; +import * as boom from 'boom'; +import * as is from 'is'; +import {has} from 'lodash'; const isObject = is.object; const isFunction = is.function; const isArray = is.array; import {RequestInformationContainer} from '../classes/request-information-container'; -import hapi from 'hapi'; +import * as hapi from 'hapi'; /** * This function is used to check for a pending status code on the response diff --git a/handwritten/error-reporting/src/request-extractors/manual.ts b/handwritten/error-reporting/src/request-extractors/manual.ts index 9fa7766aa8f..b5c268e6b6a 100644 --- a/handwritten/error-reporting/src/request-extractors/manual.ts +++ b/handwritten/error-reporting/src/request-extractors/manual.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import has = require('lodash.has'); +import {has} from 'lodash'; import * as is from 'is'; const isObject = is.object; const isArray = is.array; diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index 61276dcd62a..1f4b2446c64 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -14,9 +14,9 @@ * limitations under the License. */ -import assert from 'assert'; -import is from 'is'; -import nock from 'nock'; +import * as assert from 'assert'; +import * as is from 'is'; +import * as nock from 'nock'; import {ErrorReporting} from '../src'; import {ErrorMessage} from '../src/classes/error-message'; diff --git a/handwritten/error-reporting/system-test/utils.ts b/handwritten/error-reporting/system-test/utils.ts index bddc1d90d7d..79f0c86c0dc 100644 --- a/handwritten/error-reporting/system-test/utils.ts +++ b/handwritten/error-reporting/system-test/utils.ts @@ -16,13 +16,13 @@ import {ChildProcess, fork, ForkOptions, spawn, SpawnOptions} from 'child_process'; import {mkdir, readFile, stat, Stats, writeFile} from 'fs'; -import glob from 'glob'; +import * as glob from 'glob'; import {ncp} from 'ncp'; -import once from 'once'; -import path from 'path'; -import pify from 'pify'; -import rimraf from 'rimraf'; -import tmp from 'tmp'; +import * as once from 'once'; +import * as path from 'path'; +import * as pify from 'pify'; +import * as rimraf from 'rimraf'; +import * as tmp from 'tmp'; export const BUILD_DIRECTORY = 'build'; diff --git a/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts index 86ee9b76c7a..cb4e2baeb29 100644 --- a/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts @@ -16,8 +16,8 @@ const WARNING_HEADER = '\n!! -WARNING-'; const EXCLAMATION_LN = '\n!!'; -import has from 'lodash.has'; -import express from 'express'; +import {has} from 'lodash'; +import * as express from 'express'; const app = express(); const errorHandler = require('../../src/index.js')({ onUncaughtException: 'report', diff --git a/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts index 15bc4f66830..61c89a5e678 100644 --- a/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/hapi_scaffold_server.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import Hapi from 'hapi'; +import * as Hapi from 'hapi'; import {ErrorReporting} from '../../src/index'; const errorHandler = new ErrorReporting(); diff --git a/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts index c80a5284185..5fee62e1e64 100644 --- a/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/koa_scaffold_server.ts @@ -20,7 +20,7 @@ const errorHandler = new ErrorReporting({ // option is now invalid. onUncaughtException: 'report', } as {}); -import koa from 'koa'; +import * as koa from 'koa'; const app = (koa as Function)(); app.use(errorHandler.koa); diff --git a/handwritten/error-reporting/test/unit/build-stack-trace.ts b/handwritten/error-reporting/test/unit/build-stack-trace.ts index 786c9cf09a9..fd26aad230d 100644 --- a/handwritten/error-reporting/test/unit/build-stack-trace.ts +++ b/handwritten/error-reporting/test/unit/build-stack-trace.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import assert from 'assert'; +import * as assert from 'assert'; import * as path from 'path'; import {buildStackTrace} from '../../src/build-stack-trace'; diff --git a/handwritten/error-reporting/test/unit/classes/error-message.ts b/handwritten/error-reporting/test/unit/classes/error-message.ts index 99c6d7e0ac6..889b222f507 100644 --- a/handwritten/error-reporting/test/unit/classes/error-message.ts +++ b/handwritten/error-reporting/test/unit/classes/error-message.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import assert from 'assert'; +import * as assert from 'assert'; import {ErrorMessage} from '../../../src/classes/error-message'; import {RequestInformationContainer} from '../../../src/classes/request-information-container'; diff --git a/handwritten/error-reporting/test/unit/classes/request-information-container.ts b/handwritten/error-reporting/test/unit/classes/request-information-container.ts index f2bce457ac7..bfc7f339e10 100644 --- a/handwritten/error-reporting/test/unit/classes/request-information-container.ts +++ b/handwritten/error-reporting/test/unit/classes/request-information-container.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import assert from 'assert'; +import * as assert from 'assert'; import {RequestInformationContainer} from '../../../src/classes/request-information-container'; import {Fuzzer} from '../../../utils/fuzzer'; diff --git a/handwritten/error-reporting/test/unit/configuration.ts b/handwritten/error-reporting/test/unit/configuration.ts index 0d16e4e7029..4c2ac5e73c3 100644 --- a/handwritten/error-reporting/test/unit/configuration.ts +++ b/handwritten/error-reporting/test/unit/configuration.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import assert from 'assert'; +import * as assert from 'assert'; import * as is from 'is'; const isNumber = is.number; import merge = require('lodash.merge'); @@ -26,7 +26,7 @@ import {createLogger} from '../../src/logger'; const logger = createLogger({ logLevel: isNumber(level) ? level : 4, }); -import nock from 'nock'; +import * as nock from 'nock'; const METADATA_URL = 'http://metadata.google.internal/computeMetadata/v1/project'; diff --git a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts index 02ad2490767..5d935b880dd 100644 --- a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts +++ b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts @@ -15,8 +15,8 @@ */ import {Logger} from '@google-cloud/common'; -import assert from 'assert'; -import proxyquire from 'proxyquire'; +import * as assert from 'assert'; +import * as proxyquire from 'proxyquire'; import {Configuration, ConfigurationOptions} from '../../../src/configuration'; diff --git a/handwritten/error-reporting/test/unit/interfaces/express.ts b/handwritten/error-reporting/test/unit/interfaces/express.ts index 778e777a51e..ca1e8bae245 100644 --- a/handwritten/error-reporting/test/unit/interfaces/express.ts +++ b/handwritten/error-reporting/test/unit/interfaces/express.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import assert from 'assert'; +import * as assert from 'assert'; import merge = require('lodash.merge'); import {ErrorMessage} from '../../../src/classes/error-message'; diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.ts b/handwritten/error-reporting/test/unit/interfaces/hapi.ts index f74ca43f9e5..7fcbdd25b21 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.ts +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.ts @@ -14,11 +14,11 @@ * limitations under the License. */ -import has = require('lodash.has'); +import {has} from 'lodash'; import * as is from 'is'; const isFunction = (is as {} as {fn: Function}).fn; const isObject = is.object; -import assert from 'assert'; +import * as assert from 'assert'; import {makeHapiPlugin as hapiInterface} from '../../../src/interfaces/hapi'; import {ErrorMessage} from '../../../src/classes/error-message'; import {Fuzzer} from '../../../utils/fuzzer'; @@ -28,7 +28,7 @@ import {RequestHandler} from '../../../src/google-apis/auth-client'; import {FakeConfiguration as Configuration} from '../../fixtures/configuration'; import * as http from 'http'; import * as hapi from 'hapi'; -import boom from 'boom'; +import * as boom from 'boom'; const packageJson = require('../../../../package.json'); diff --git a/handwritten/error-reporting/test/unit/interfaces/manual.ts b/handwritten/error-reporting/test/unit/interfaces/manual.ts index 328e2fb55cf..28d682281ee 100644 --- a/handwritten/error-reporting/test/unit/interfaces/manual.ts +++ b/handwritten/error-reporting/test/unit/interfaces/manual.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import assert from 'assert'; +import * as assert from 'assert'; import * as manual from '../../../src/interfaces/manual'; import {FakeConfiguration as Configuration} from '../../fixtures/configuration'; const config = new Configuration({}); diff --git a/handwritten/error-reporting/test/unit/interfaces/restify.ts b/handwritten/error-reporting/test/unit/interfaces/restify.ts index bdb2d1bcb98..b196f7caa30 100644 --- a/handwritten/error-reporting/test/unit/interfaces/restify.ts +++ b/handwritten/error-reporting/test/unit/interfaces/restify.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import assert from 'assert'; +import * as assert from 'assert'; import {EventEmitter} from 'events'; import {Configuration} from '../../../src/configuration'; diff --git a/handwritten/error-reporting/test/unit/logger.ts b/handwritten/error-reporting/test/unit/logger.ts index 14eb83fd52a..ad4ef1b6680 100644 --- a/handwritten/error-reporting/test/unit/logger.ts +++ b/handwritten/error-reporting/test/unit/logger.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import assert from 'assert'; +import * as assert from 'assert'; import {createLogger} from '../../src/logger'; describe('logger', () => { diff --git a/handwritten/error-reporting/test/unit/populate-error-message.ts b/handwritten/error-reporting/test/unit/populate-error-message.ts index 9f08e4994ee..5612b0b4ffe 100644 --- a/handwritten/error-reporting/test/unit/populate-error-message.ts +++ b/handwritten/error-reporting/test/unit/populate-error-message.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import assert from 'assert'; +import * as assert from 'assert'; import {ErrorMessage} from '../../src/classes/error-message'; import {populateErrorMessage} from '../../src/populate-error-message'; diff --git a/handwritten/error-reporting/test/unit/request-extractors/express.ts b/handwritten/error-reporting/test/unit/request-extractors/express.ts index 1a827bd82ea..9cb00775861 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/express.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/express.ts @@ -14,9 +14,9 @@ * limitations under the License. */ -import assert from 'assert'; +import * as assert from 'assert'; import {Response} from 'express-serve-static-core'; -import extend from 'extend'; +import * as extend from 'extend'; import {expressRequestInformationExtractor} from '../../../src/request-extractors/express'; import {Fuzzer} from '../../../utils/fuzzer'; diff --git a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts index 9c580404cd9..e658eb55601 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts @@ -14,8 +14,8 @@ * limitations under the License. */ -import assert from 'assert'; -import hapi from 'hapi'; +import * as assert from 'assert'; +import * as hapi from 'hapi'; import {hapiRequestInformationExtractor} from '../../../src/request-extractors/hapi'; import {Fuzzer} from '../../../utils/fuzzer'; diff --git a/handwritten/error-reporting/test/unit/request-extractors/koa.ts b/handwritten/error-reporting/test/unit/request-extractors/koa.ts index e97848b59ca..a99ea0615ed 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/koa.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/koa.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import assert from 'assert'; +import * as assert from 'assert'; import {Request, Response} from 'koa'; import {koaRequestInformationExtractor} from '../../../src/request-extractors/koa'; diff --git a/handwritten/error-reporting/test/unit/request-extractors/manual.ts b/handwritten/error-reporting/test/unit/request-extractors/manual.ts index 97c348abe8b..5de9d868ff5 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/manual.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/manual.ts @@ -14,8 +14,8 @@ * limitations under the License. */ -import assert from 'assert'; -import extend from 'extend'; +import * as assert from 'assert'; +import * as extend from 'extend'; import omit = require('lodash.omit'); import {manualRequestInformationExtractor} from '../../../src/request-extractors/manual'; diff --git a/handwritten/error-reporting/test/unit/service-configuration.ts b/handwritten/error-reporting/test/unit/service-configuration.ts index ce69ace876b..38e9b77204b 100644 --- a/handwritten/error-reporting/test/unit/service-configuration.ts +++ b/handwritten/error-reporting/test/unit/service-configuration.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import assert from 'assert'; +import * as assert from 'assert'; import * as is from 'is'; const isString = is.string; const isNumber = is.number; From c87fc71657fef6539008fafd5723c95b8f71ac45 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Mon, 16 Jul 2018 19:09:42 -0700 Subject: [PATCH 126/527] chore(deps): lock file maintenance (#169) --- handwritten/error-reporting/package-lock.json | 6182 +++++++++-------- 1 file changed, 3426 insertions(+), 2756 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index a6c2ac58872..0ff6f89575d 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -16,18 +16,18 @@ "integrity": "sha512-oWqTnIGXW3k72UFidXzW0ONlO7hnO9x02S/QReJ7NBGeiBH9cUHY9+EfV6C8PXC6YJH++WrliEq03wMSJGNZFg==", "dev": true, "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "package-hash": "1.2.0" + "babel-plugin-check-es2015-constants": "^6.8.0", + "babel-plugin-syntax-trailing-function-commas": "^6.20.0", + "babel-plugin-transform-async-to-generator": "^6.16.0", + "babel-plugin-transform-es2015-destructuring": "^6.19.0", + "babel-plugin-transform-es2015-function-name": "^6.9.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.18.0", + "babel-plugin-transform-es2015-parameters": "^6.21.0", + "babel-plugin-transform-es2015-spread": "^6.8.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.8.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.11.0", + "babel-plugin-transform-exponentiation-operator": "^6.8.0", + "package-hash": "^1.2.0" }, "dependencies": { "md5-hex": { @@ -36,7 +36,7 @@ "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "package-hash": { @@ -45,7 +45,7 @@ "integrity": "sha1-AD5WzVe3NqbtYRTMK4FUJnJ3DkQ=", "dev": true, "requires": { - "md5-hex": "1.3.0" + "md5-hex": "^1.3.0" } } } @@ -56,8 +56,8 @@ "integrity": "sha1-ze0RlqjY2TgaUJJAq5LpGl7Aafc=", "dev": true, "requires": { - "@ava/babel-plugin-throws-helper": "2.0.0", - "babel-plugin-espower": "2.4.0" + "@ava/babel-plugin-throws-helper": "^2.0.0", + "babel-plugin-espower": "^2.3.2" } }, "@ava/write-file-atomic": { @@ -66,9 +66,9 @@ "integrity": "sha512-BTNB3nGbEfJT+69wuqXFr/bQH7Vr7ihx2xGOMNqPgDGhwspoZhiWumDDZNjBy7AScmqS5CELIOGtPVXESyrnDA==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, "@babel/code-frame": { @@ -87,10 +87,10 @@ "dev": true, "requires": { "@babel/types": "7.0.0-beta.51", - "jsesc": "2.5.1", - "lodash": "4.17.5", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "jsesc": "^2.5.1", + "lodash": "^4.17.5", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" }, "dependencies": { "jsesc": { @@ -136,9 +136,9 @@ "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=", "dev": true, "requires": { - "chalk": "2.4.1", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^3.0.0" } }, "@babel/parser": { @@ -156,7 +156,7 @@ "@babel/code-frame": "7.0.0-beta.51", "@babel/parser": "7.0.0-beta.51", "@babel/types": "7.0.0-beta.51", - "lodash": "4.17.5" + "lodash": "^4.17.5" } }, "@babel/traverse": { @@ -171,10 +171,10 @@ "@babel/helper-split-export-declaration": "7.0.0-beta.51", "@babel/parser": "7.0.0-beta.51", "@babel/types": "7.0.0-beta.51", - "debug": "3.1.0", - "globals": "11.7.0", - "invariant": "2.2.4", - "lodash": "4.17.5" + "debug": "^3.1.0", + "globals": "^11.1.0", + "invariant": "^2.2.0", + "lodash": "^4.17.5" }, "dependencies": { "globals": { @@ -191,9 +191,9 @@ "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=", "dev": true, "requires": { - "esutils": "2.0.2", - "lodash": "4.17.5", - "to-fast-properties": "2.0.0" + "esutils": "^2.0.2", + "lodash": "^4.17.5", + "to-fast-properties": "^2.0.0" }, "dependencies": { "to-fast-properties": { @@ -210,7 +210,7 @@ "integrity": "sha512-htrsRaQX8Iixlsek8zQU7tE8wcsTQJ5UhZkSPEA8slCDAisKpC/2VgU/ucPn32M5/LjGGXRaUEKvEw1Wiuu4zQ==", "dev": true, "requires": { - "arrify": "1.0.1" + "arrify": "^1.0.1" } }, "@google-cloud/common": { @@ -218,89 +218,88 @@ "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.20.3.tgz", "integrity": "sha512-jt8/R4EqDTQccv5WA9AEaS65llM5+mlxsuWu57G5Os8HTIpgPbcsOVMUeIvmTrBuPUYSoRIMW8d/pvv/95n0+g==", "requires": { - "@types/duplexify": "3.5.0", - "@types/request": "2.47.1", - "arrify": "1.0.1", - "axios": "0.18.0", - "duplexify": "3.6.0", - "ent": "2.2.0", - "extend": "3.0.1", - "google-auth-library": "1.6.1", - "is": "3.2.1", - "pify": "3.0.0", - "request": "2.87.0", - "retry-request": "4.0.0", - "split-array-stream": "2.0.0", - "stream-events": "1.0.4", - "through2": "2.0.3" + "@types/duplexify": "^3.5.0", + "@types/request": "^2.47.0", + "arrify": "^1.0.1", + "axios": "^0.18.0", + "duplexify": "^3.6.0", + "ent": "^2.2.0", + "extend": "^3.0.1", + "google-auth-library": "^1.6.0", + "is": "^3.2.1", + "pify": "^3.0.0", + "request": "^2.87.0", + "retry-request": "^4.0.0", + "split-array-stream": "^2.0.0", + "stream-events": "^1.0.4", + "through2": "^2.0.3" } }, "@google-cloud/nodejs-repo-tools": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@google-cloud/nodejs-repo-tools/-/nodejs-repo-tools-2.3.0.tgz", - "integrity": "sha512-c8dIGESnNkmM88duFxGHvMQP5QKPgp/sfJq0QhC6+gOcJC7/PKjqd0PkmgPPeIgVl6SXy5Zf/KLbxnJUVgNT1Q==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@google-cloud/nodejs-repo-tools/-/nodejs-repo-tools-2.3.1.tgz", + "integrity": "sha512-yIOn92sjHwpF/eORQWjv7QzQPcESSRCsZshdmeX40RGRlB0+HPODRDghZq0GiCqe6zpIYZvKmiKiYd3u52P/7Q==", "dev": true, "requires": { "ava": "0.25.0", "colors": "1.1.2", "fs-extra": "5.0.0", - "got": "8.2.0", + "got": "8.3.0", "handlebars": "4.0.11", "lodash": "4.17.5", - "nyc": "11.4.1", + "nyc": "11.7.2", "proxyquire": "1.8.0", - "semver": "5.5.0", - "sinon": "4.3.0", + "semver": "^5.5.0", + "sinon": "6.0.1", "string": "3.3.3", - "supertest": "3.0.0", + "supertest": "3.1.0", "yargs": "11.0.0", - "yargs-parser": "9.0.2" + "yargs-parser": "10.1.0" }, "dependencies": { "nyc": { - "version": "11.4.1", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.4.1.tgz", - "integrity": "sha512-5eCZpvaksFVjP2rt1r60cfXmt3MUtsQDw8bAzNqNEr4WLvUMLgiVENMf/B9bE9YAX0mGVvaGA3v9IS9ekNqB1Q==", - "dev": true, - "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "1.0.1", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "default-require-extensions": "1.0.0", - "find-cache-dir": "0.1.1", - "find-up": "2.1.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "1.1.1", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "1.9.1", - "istanbul-lib-report": "1.1.2", - "istanbul-lib-source-maps": "1.2.2", - "istanbul-reports": "1.1.3", - "md5-hex": "1.3.0", - "merge-source-map": "1.0.4", - "micromatch": "2.3.11", - "mkdirp": "0.5.1", - "resolve-from": "2.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "4.1.1", - "yargs": "10.0.3", - "yargs-parser": "8.0.0" + "version": "11.7.2", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.7.2.tgz", + "integrity": "sha512-gBt7qwsR1vryYfglVjQRx1D+AtMZW5NbUKxb+lZe8SN8KsheGCPGWEsSC9AGQG+r2+te1+10uPHUCahuqm1nGQ==", + "dev": true, + "requires": { + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.5.1", + "debug-log": "^1.0.1", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^2.1.0", + "foreground-child": "^1.5.3", + "glob": "^7.0.6", + "istanbul-lib-coverage": "^1.1.2", + "istanbul-lib-hook": "^1.1.0", + "istanbul-lib-instrument": "^1.10.0", + "istanbul-lib-report": "^1.1.3", + "istanbul-lib-source-maps": "^1.2.3", + "istanbul-reports": "^1.4.0", + "md5-hex": "^1.2.0", + "merge-source-map": "^1.1.0", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.1", + "spawn-wrap": "^1.4.2", + "test-exclude": "^4.2.0", + "yargs": "11.1.0", + "yargs-parser": "^8.0.0" }, "dependencies": { "align-text": { "version": "0.1.4", "bundled": true, "dev": true, - "optional": true, "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" } }, "amdefine": { @@ -323,7 +322,7 @@ "bundled": true, "dev": true, "requires": { - "default-require-extensions": "1.0.0" + "default-require-extensions": "^1.0.0" } }, "archy": { @@ -332,20 +331,22 @@ "dev": true }, "arr-diff": { - "version": "2.0.0", + "version": "4.0.0", "bundled": true, - "dev": true, - "requires": { - "arr-flatten": "1.1.0" - } + "dev": true }, "arr-flatten": { "version": "1.1.0", "bundled": true, "dev": true }, + "arr-union": { + "version": "3.1.0", + "bundled": true, + "dev": true + }, "array-unique": { - "version": "0.2.1", + "version": "0.3.2", "bundled": true, "dev": true }, @@ -354,34 +355,44 @@ "bundled": true, "dev": true }, + "assign-symbols": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, "async": { "version": "1.5.2", "bundled": true, "dev": true }, + "atob": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, "babel-code-frame": { "version": "6.26.0", "bundled": true, "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" } }, "babel-generator": { - "version": "6.26.0", + "version": "6.26.1", "bundled": true, "dev": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.4", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" } }, "babel-messages": { @@ -389,7 +400,7 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-runtime": { @@ -397,8 +408,8 @@ "bundled": true, "dev": true, "requires": { - "core-js": "2.5.3", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -406,11 +417,11 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.4" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { @@ -418,15 +429,15 @@ "bundled": true, "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, "babel-types": { @@ -434,10 +445,10 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -450,23 +461,95 @@ "bundled": true, "dev": true }, + "base": { + "version": "0.11.2", + "bundled": true, + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, "brace-expansion": { - "version": "1.1.8", + "version": "1.1.11", "bundled": true, "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "braces": { - "version": "1.8.5", + "version": "2.3.2", "bundled": true, "dev": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "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.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, "builtin-modules": { @@ -474,14 +557,30 @@ "bundled": true, "dev": true }, + "cache-base": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, "caching-transform": { "version": "1.0.1", "bundled": true, "dev": true, "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" } }, "camelcase": { @@ -496,8 +595,8 @@ "dev": true, "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chalk": { @@ -505,11 +604,32 @@ "bundled": true, "dev": true, "requires": { - "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" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "class-utils": { + "version": "0.3.6", + "bundled": true, + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } } }, "cliui": { @@ -518,8 +638,8 @@ "dev": true, "optional": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" }, "dependencies": { @@ -536,11 +656,25 @@ "bundled": true, "dev": true }, + "collection-visit": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, "commondir": { "version": "1.0.1", "bundled": true, "dev": true }, + "component-emitter": { + "version": "1.2.1", + "bundled": true, + "dev": true + }, "concat-map": { "version": "0.0.1", "bundled": true, @@ -551,8 +685,13 @@ "bundled": true, "dev": true }, + "copy-descriptor": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, "core-js": { - "version": "2.5.3", + "version": "2.5.6", "bundled": true, "dev": true }, @@ -561,8 +700,8 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.1", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, "debug": { @@ -583,12 +722,59 @@ "bundled": true, "dev": true }, + "decode-uri-component": { + "version": "0.2.0", + "bundled": true, + "dev": true + }, "default-require-extensions": { "version": "1.0.0", "bundled": true, "dev": true, "requires": { - "strip-bom": "2.0.0" + "strip-bom": "^2.0.0" + } + }, + "define-property": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } } }, "detect-indent": { @@ -596,7 +782,7 @@ "bundled": true, "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "error-ex": { @@ -604,7 +790,7 @@ "bundled": true, "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "escape-string-regexp": { @@ -622,13 +808,13 @@ "bundled": true, "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" }, "dependencies": { "cross-spawn": { @@ -636,52 +822,147 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.1", - "shebang-command": "1.2.0", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } } } }, "expand-brackets": { - "version": "0.1.5", + "version": "2.1.4", "bundled": true, "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "expand-range": { - "version": "1.8.2", + "extend-shallow": { + "version": "3.0.2", "bundled": true, "dev": true, "requires": { - "fill-range": "2.2.3" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "extglob": { - "version": "0.3.2", + "version": "2.0.4", "bundled": true, "dev": true, "requires": { - "is-extglob": "1.0.0" + "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.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } } }, - "filename-regex": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, "fill-range": { - "version": "2.2.3", + "version": "4.0.0", "bundled": true, "dev": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, "find-cache-dir": { @@ -689,9 +970,9 @@ "bundled": true, "dev": true, "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" } }, "find-up": { @@ -699,7 +980,7 @@ "bundled": true, "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "for-in": { @@ -707,21 +988,21 @@ "bundled": true, "dev": true }, - "for-own": { - "version": "0.1.5", + "foreground-child": { + "version": "1.5.6", "bundled": true, "dev": true, "requires": { - "for-in": "1.0.2" + "cross-spawn": "^4", + "signal-exit": "^3.0.0" } }, - "foreground-child": { - "version": "1.5.6", + "fragment-cache": { + "version": "0.2.1", "bundled": true, "dev": true, "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" + "map-cache": "^0.2.2" } }, "fs.realpath": { @@ -739,34 +1020,22 @@ "bundled": true, "dev": true }, - "glob": { - "version": "7.1.2", - "bundled": true, - "dev": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "glob-base": { - "version": "0.3.0", + "get-value": { + "version": "2.0.6", "bundled": true, - "dev": true, - "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" - } + "dev": true }, - "glob-parent": { - "version": "2.0.0", + "glob": { + "version": "7.1.2", "bundled": true, "dev": true, "requires": { - "is-glob": "2.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "globals": { @@ -784,10 +1053,10 @@ "bundled": true, "dev": true, "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" }, "dependencies": { "source-map": { @@ -795,7 +1064,7 @@ "bundled": true, "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -805,7 +1074,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { @@ -813,8 +1082,37 @@ "bundled": true, "dev": true }, + "has-value": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "hosted-git-info": { - "version": "2.5.0", + "version": "2.6.0", "bundled": true, "dev": true }, @@ -828,8 +1126,8 @@ "bundled": true, "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -838,11 +1136,11 @@ "dev": true }, "invariant": { - "version": "2.2.2", + "version": "2.2.4", "bundled": true, "dev": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -850,6 +1148,14 @@ "bundled": true, "dev": true }, + "is-accessor-descriptor": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, "is-arrayish": { "version": "0.2.1", "bundled": true, @@ -865,20 +1171,32 @@ "bundled": true, "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, - "is-dotfile": { - "version": "1.0.3", + "is-data-descriptor": { + "version": "0.1.4", "bundled": true, - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", "bundled": true, "dev": true, "requires": { - "is-primitive": "2.0.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "bundled": true, + "dev": true + } } }, "is-extendable": { @@ -886,53 +1204,50 @@ "bundled": true, "dev": true }, - "is-extglob": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, "is-finite": { "version": "1.0.2", "bundled": true, "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { - "version": "1.0.0", + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "is-number": { + "version": "3.0.0", "bundled": true, "dev": true, "requires": { - "number-is-nan": "1.0.1" + "kind-of": "^3.0.2" } }, - "is-glob": { - "version": "2.0.1", + "is-odd": { + "version": "2.0.0", "bundled": true, "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "bundled": true, + "dev": true + } } }, - "is-number": { - "version": "2.1.0", + "is-plain-object": { + "version": "2.0.4", "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "isobject": "^3.0.1" } }, - "is-posix-bracket": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "is-primitive": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, "is-stream": { "version": "1.1.0", "bundled": true, @@ -943,6 +1258,11 @@ "bundled": true, "dev": true }, + "is-windows": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, "isarray": { "version": "1.0.0", "bundled": true, @@ -954,15 +1274,12 @@ "dev": true }, "isobject": { - "version": "2.1.0", + "version": "3.0.1", "bundled": true, - "dev": true, - "requires": { - "isarray": "1.0.0" - } + "dev": true }, "istanbul-lib-coverage": { - "version": "1.1.1", + "version": "1.2.0", "bundled": true, "dev": true }, @@ -971,32 +1288,32 @@ "bundled": true, "dev": true, "requires": { - "append-transform": "0.4.0" + "append-transform": "^0.4.0" } }, "istanbul-lib-instrument": { - "version": "1.9.1", + "version": "1.10.1", "bundled": true, "dev": true, "requires": { - "babel-generator": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.1.1", - "semver": "5.4.1" + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.0", + "semver": "^5.3.0" } }, "istanbul-lib-report": { - "version": "1.1.2", + "version": "1.1.3", "bundled": true, "dev": true, "requires": { - "istanbul-lib-coverage": "1.1.1", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" }, "dependencies": { "supports-color": { @@ -1004,21 +1321,21 @@ "bundled": true, "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } }, "istanbul-lib-source-maps": { - "version": "1.2.2", + "version": "1.2.3", "bundled": true, "dev": true, "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.1.1", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" }, "dependencies": { "debug": { @@ -1032,11 +1349,11 @@ } }, "istanbul-reports": { - "version": "1.1.3", + "version": "1.4.0", "bundled": true, "dev": true, "requires": { - "handlebars": "4.0.11" + "handlebars": "^4.0.3" } }, "js-tokens": { @@ -1054,7 +1371,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lazy-cache": { @@ -1068,7 +1385,7 @@ "bundled": true, "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "load-json-file": { @@ -1076,11 +1393,11 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" } }, "locate-path": { @@ -1088,8 +1405,8 @@ "bundled": true, "dev": true, "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" }, "dependencies": { "path-exists": { @@ -1100,31 +1417,43 @@ } }, "lodash": { - "version": "4.17.4", + "version": "4.17.10", "bundled": true, "dev": true }, "longest": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "loose-envify": { "version": "1.3.1", "bundled": true, "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "lru-cache": { - "version": "4.1.1", + "version": "4.1.3", "bundled": true, "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "map-cache": { + "version": "0.2.2", + "bundled": true, + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "object-visit": "^1.0.0" } }, "md5-hex": { @@ -1132,7 +1461,7 @@ "bundled": true, "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { @@ -1145,39 +1474,53 @@ "bundled": true, "dev": true, "requires": { - "mimic-fn": "1.1.0" + "mimic-fn": "^1.0.0" } }, "merge-source-map": { - "version": "1.0.4", + "version": "1.1.0", "bundled": true, "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "bundled": true, + "dev": true + } } }, "micromatch": { - "version": "2.3.11", - "bundled": true, - "dev": true, - "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "version": "3.1.10", + "bundled": true, + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } } }, "mimic-fn": { - "version": "1.1.0", + "version": "1.2.0", "bundled": true, "dev": true }, @@ -1186,7 +1529,7 @@ "bundled": true, "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -1194,6 +1537,25 @@ "bundled": true, "dev": true }, + "mixin-deep": { + "version": "1.3.1", + "bundled": true, + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, "mkdirp": { "version": "0.5.1", "bundled": true, @@ -1207,23 +1569,41 @@ "bundled": true, "dev": true }, - "normalize-package-data": { - "version": "2.4.0", + "nanomatch": { + "version": "1.2.9", "bundled": true, "dev": true, "requires": { - "hosted-git-info": "2.5.0", - "is-builtin-module": "1.0.0", - "semver": "5.4.1", - "validate-npm-package-license": "3.0.1" + "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-odd": "^2.0.0", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } } }, - "normalize-path": { - "version": "2.1.1", + "normalize-package-data": { + "version": "2.4.0", "bundled": true, "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "npm-run-path": { @@ -1231,7 +1611,7 @@ "bundled": true, "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -1244,13 +1624,40 @@ "bundled": true, "dev": true }, - "object.omit": { - "version": "2.0.1", + "object-copy": { + "version": "0.1.0", + "bundled": true, + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "object-visit": { + "version": "1.0.1", "bundled": true, "dev": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "isobject": "^3.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "isobject": "^3.0.1" } }, "once": { @@ -1258,7 +1665,7 @@ "bundled": true, "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "optimist": { @@ -1266,8 +1673,8 @@ "bundled": true, "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "os-homedir": { @@ -1280,9 +1687,9 @@ "bundled": true, "dev": true, "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" } }, "p-finally": { @@ -1291,43 +1698,45 @@ "dev": true }, "p-limit": { - "version": "1.1.0", + "version": "1.2.0", "bundled": true, - "dev": true + "dev": true, + "requires": { + "p-try": "^1.0.0" + } }, "p-locate": { "version": "2.0.0", "bundled": true, "dev": true, "requires": { - "p-limit": "1.1.0" + "p-limit": "^1.1.0" } }, - "parse-glob": { - "version": "3.0.4", + "p-try": { + "version": "1.0.0", "bundled": true, - "dev": true, - "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" - } + "dev": true }, "parse-json": { "version": "2.2.0", "bundled": true, "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, + "pascalcase": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, "path-exists": { "version": "2.1.0", "bundled": true, "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { @@ -1350,9 +1759,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -1370,7 +1779,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { @@ -1378,7 +1787,7 @@ "bundled": true, "dev": true, "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" }, "dependencies": { "find-up": { @@ -1386,14 +1795,14 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } }, - "preserve": { - "version": "0.2.0", + "posix-character-classes": { + "version": "0.1.1", "bundled": true, "dev": true }, @@ -1402,51 +1811,14 @@ "bundled": true, "dev": true }, - "randomatic": { - "version": "1.1.7", - "bundled": true, - "dev": true, - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, "read-pkg": { "version": "1.1.0", "bundled": true, "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -1454,8 +1826,8 @@ "bundled": true, "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" }, "dependencies": { "find-up": { @@ -1463,8 +1835,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } @@ -1474,19 +1846,15 @@ "bundled": true, "dev": true }, - "regex-cache": { - "version": "0.4.4", + "regex-not": { + "version": "1.0.2", "bundled": true, "dev": true, "requires": { - "is-equal-shallow": "0.1.3" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, - "remove-trailing-separator": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, "repeat-element": { "version": "1.1.2", "bundled": true, @@ -1502,7 +1870,7 @@ "bundled": true, "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "require-directory": { @@ -1520,13 +1888,23 @@ "bundled": true, "dev": true }, + "resolve-url": { + "version": "0.2.1", + "bundled": true, + "dev": true + }, + "ret": { + "version": "0.1.15", + "bundled": true, + "dev": true + }, "right-align": { "version": "0.1.3", "bundled": true, "dev": true, "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { @@ -1534,11 +1912,19 @@ "bundled": true, "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" + } + }, + "safe-regex": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "ret": "~0.1.10" } }, "semver": { - "version": "5.4.1", + "version": "5.5.0", "bundled": true, "dev": true }, @@ -1547,12 +1933,33 @@ "bundled": true, "dev": true }, + "set-value": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, "shebang-command": { "version": "1.2.0", "bundled": true, "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -1570,49 +1977,195 @@ "bundled": true, "dev": true }, + "snapdragon": { + "version": "0.8.2", + "bundled": true, + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^3.2.0" + } + }, "source-map": { "version": "0.5.7", "bundled": true, "dev": true }, + "source-map-resolve": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "atob": "^2.0.0", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "bundled": true, + "dev": true + }, "spawn-wrap": { "version": "1.4.2", "bundled": true, "dev": true, "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.0" + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" } }, "spdx-correct": { - "version": "1.0.2", + "version": "3.0.0", "bundled": true, "dev": true, "requires": { - "spdx-license-ids": "1.2.2" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "spdx-expression-parse": { - "version": "1.0.4", + "spdx-exceptions": { + "version": "2.1.0", "bundled": true, "dev": true }, + "spdx-expression-parse": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, "spdx-license-ids": { - "version": "1.2.2", + "version": "3.0.0", "bundled": true, "dev": true }, + "split-string": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "static-extend": { + "version": "0.1.2", + "bundled": true, + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, "string-width": { "version": "2.1.1", "bundled": true, "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" }, "dependencies": { "ansi-regex": { @@ -1620,17 +2173,12 @@ "bundled": true, "dev": true }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, "strip-ansi": { "version": "4.0.0", "bundled": true, "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -1640,7 +2188,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -1648,7 +2196,7 @@ "bundled": true, "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-eof": { @@ -1662,15 +2210,15 @@ "dev": true }, "test-exclude": { - "version": "4.1.1", + "version": "4.2.1", "bundled": true, "dev": true, "requires": { - "arrify": "1.0.1", - "micromatch": "2.3.11", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" + "arrify": "^1.0.1", + "micromatch": "^3.1.8", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" } }, "to-fast-properties": { @@ -1678,6 +2226,34 @@ "bundled": true, "dev": true }, + "to-object-path": { + "version": "0.3.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "to-regex": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, "trim-right": { "version": "1.0.1", "bundled": true, @@ -1689,9 +2265,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "yargs": { @@ -1700,9 +2276,9 @@ "dev": true, "optional": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" } } @@ -1714,13 +2290,101 @@ "dev": true, "optional": true }, + "union-value": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } + } + }, + "unset-value": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "bundled": true, + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "bundled": true, + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "bundled": true, + "dev": true + }, + "use": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "^6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, "validate-npm-package-license": { - "version": "3.0.1", + "version": "3.0.3", "bundled": true, "dev": true, "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "which": { @@ -1728,7 +2392,7 @@ "bundled": true, "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -1752,18 +2416,26 @@ "bundled": true, "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, "string-width": { "version": "1.0.2", "bundled": true, "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } } } @@ -1778,9 +2450,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, "y18n": { @@ -1794,54 +2466,68 @@ "dev": true }, "yargs": { - "version": "10.0.3", - "bundled": true, - "dev": true, - "requires": { - "cliui": "3.2.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "8.0.0" + "version": "11.1.0", + "bundled": true, + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" }, "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "bundled": true, + "dev": true + }, "cliui": { - "version": "3.2.0", + "version": "4.1.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", "bundled": true, "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - } + "ansi-regex": "^3.0.0" + } + }, + "yargs-parser": { + "version": "9.0.2", + "bundled": true, + "dev": true, + "requires": { + "camelcase": "^4.1.0" } } } }, "yargs-parser": { - "version": "8.0.0", + "version": "8.1.0", "bundled": true, "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { @@ -1859,9 +2545,9 @@ "integrity": "sha1-AtUUpb7ZhvBMuyCTrxZ0FTX3ntw=", "dev": true, "requires": { - "fill-keys": "1.0.2", - "module-not-found-error": "1.0.1", - "resolve": "1.1.7" + "fill-keys": "^1.0.2", + "module-not-found-error": "^1.0.0", + "resolve": "~1.1.7" } } } @@ -1872,10 +2558,10 @@ "integrity": "sha512-weIbJqTMfQ4r1YX85u54DKfjLZs2jwn1XZ6tIOP/pFgMwhIN5BAtaCp/1wn9DzyLsDR9tW0R2NIePcVJ45ivQQ==", "dev": true, "requires": { - "chalk": "0.4.0", - "date-time": "0.1.1", - "pretty-ms": "0.2.2", - "text-table": "0.2.0" + "chalk": "^0.4.0", + "date-time": "^0.1.1", + "pretty-ms": "^0.2.1", + "text-table": "^0.2.0" }, "dependencies": { "ansi-styles": { @@ -1890,9 +2576,9 @@ "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", "dev": true, "requires": { - "ansi-styles": "1.0.0", - "has-color": "0.1.7", - "strip-ansi": "0.1.1" + "ansi-styles": "~1.0.0", + "has-color": "~0.1.0", + "strip-ansi": "~0.1.0" } }, "pretty-ms": { @@ -1901,7 +2587,7 @@ "integrity": "sha1-2oeaaC/zOjcBEEbxPWJ/Z8c7hPY=", "dev": true, "requires": { - "parse-ms": "0.1.2" + "parse-ms": "^0.1.0" } }, "strip-ansi": { @@ -1918,8 +2604,8 @@ "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", "dev": true, "requires": { - "call-me-maybe": "1.0.1", - "glob-to-regexp": "0.3.0" + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" } }, "@nodelib/fs.stat": { @@ -1949,7 +2635,7 @@ "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", "dev": true, "requires": { - "@types/node": "10.5.2" + "@types/node": "*" } }, "@types/body-parser": { @@ -1958,8 +2644,8 @@ "integrity": "sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w==", "dev": true, "requires": { - "@types/connect": "3.4.32", - "@types/node": "10.5.2" + "@types/connect": "*", + "@types/node": "*" } }, "@types/boom": { @@ -1974,8 +2660,8 @@ "integrity": "sha512-bxOF3fsm69ezKxdcJ7Oo/PsZMOJ+JIV/QJO2IADfScmR3sLulR88dpSnz6+q+9JJ1kD7dXFFgUrGRSKHLkOX7w==", "dev": true, "requires": { - "@types/events": "1.2.0", - "@types/node": "10.5.2" + "@types/events": "*", + "@types/node": "*" } }, "@types/caseless": { @@ -1995,7 +2681,7 @@ "integrity": "sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg==", "dev": true, "requires": { - "@types/node": "10.5.2" + "@types/node": "*" } }, "@types/cookies": { @@ -2004,10 +2690,10 @@ "integrity": "sha512-ku6IvbucEyuC6i4zAVK/KnuzWNXdbFd1HkXlNLg/zhWDGTtQT5VhumiPruB/BHW34PWVFwyfwGftDQHfWNxu3Q==", "dev": true, "requires": { - "@types/connect": "3.4.32", - "@types/express": "4.16.0", - "@types/keygrip": "1.0.1", - "@types/node": "10.5.2" + "@types/connect": "*", + "@types/express": "*", + "@types/keygrip": "*", + "@types/node": "*" } }, "@types/duplexify": { @@ -2015,7 +2701,7 @@ "resolved": "https://registry.npmjs.org/@types/duplexify/-/duplexify-3.5.0.tgz", "integrity": "sha512-+aZCCdxuR/Q6n58CBkXyqGqimIqpYUcFLfBXagXv7e9TdJUevqkKhzopBuRz3RB064sQxnJnhttHOkK/O93Ouw==", "requires": { - "@types/node": "10.5.2" + "@types/node": "*" } }, "@types/events": { @@ -2030,9 +2716,9 @@ "integrity": "sha512-TtPEYumsmSTtTetAPXlJVf3kEqb6wZK0bZojpJQrnD/djV4q1oB6QQ8aKvKqwNPACoe02GNiy5zDzcYivR5Z2w==", "dev": true, "requires": { - "@types/body-parser": "1.17.0", - "@types/express-serve-static-core": "4.16.0", - "@types/serve-static": "1.13.2" + "@types/body-parser": "*", + "@types/express-serve-static-core": "*", + "@types/serve-static": "*" } }, "@types/express-serve-static-core": { @@ -2041,9 +2727,9 @@ "integrity": "sha512-lTeoCu5NxJU4OD9moCgm0ESZzweAx0YqsAcab6OB0EB3+As1OaHtKnaGJvcngQxYsi9UNv0abn4/DRavrRxt4w==", "dev": true, "requires": { - "@types/events": "1.2.0", - "@types/node": "10.5.2", - "@types/range-parser": "1.2.2" + "@types/events": "*", + "@types/node": "*", + "@types/range-parser": "*" } }, "@types/extend": { @@ -2057,7 +2743,7 @@ "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz", "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", "requires": { - "@types/node": "10.5.2" + "@types/node": "*" } }, "@types/glob": { @@ -2066,9 +2752,9 @@ "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", "dev": true, "requires": { - "@types/events": "1.2.0", - "@types/minimatch": "3.0.3", - "@types/node": "10.5.2" + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" } }, "@types/hapi": { @@ -2077,14 +2763,14 @@ "integrity": "sha512-vau1TQRjOrGIPtVGDdI3czXNueB8H98/6Vz4wlYvwaWfbrbym3NX42goQQ6LFYsyicqS3URJG7/gS+YssCHSAA==", "dev": true, "requires": { - "@types/boom": "7.2.0", - "@types/catbox": "10.0.0", - "@types/iron": "5.0.1", - "@types/joi": "13.3.0", - "@types/mimos": "3.0.1", - "@types/node": "10.5.2", - "@types/podium": "1.0.0", - "@types/shot": "3.4.0" + "@types/boom": "*", + "@types/catbox": "*", + "@types/iron": "*", + "@types/joi": "*", + "@types/mimos": "*", + "@types/node": "*", + "@types/podium": "*", + "@types/shot": "*" } }, "@types/http-assert": { @@ -2099,7 +2785,7 @@ "integrity": "sha512-Ng5BkVGPt7Tw9k1OJ6qYwuD9+dmnWgActmsnnrdvs4075N8V2go1f6Pz8omG3q5rbHjXN6yzzZDYo3JOgAE/Ug==", "dev": true, "requires": { - "@types/node": "10.5.2" + "@types/node": "*" } }, "@types/is": { @@ -2109,9 +2795,9 @@ "dev": true }, "@types/joi": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@types/joi/-/joi-13.3.0.tgz", - "integrity": "sha512-nOnsbHvoo5DsQEh8VGlbQlfg9+/iFSxE5RQKLNkAODIqyupdEkBCZf6RCNxR+9X0egMIkJ43NnwkEJKxLogsIA==", + "version": "13.4.0", + "resolved": "https://registry.npmjs.org/@types/joi/-/joi-13.4.0.tgz", + "integrity": "sha512-CZ4HR1j555+ttsFy2r4qGxZmbGWY0vpPCmu+0EPW+MIGGW6tm8OEyEeS8Y/yAhpcqvSE01tV+mNC2cF9oQUAUg==", "dev": true }, "@types/keygrip": { @@ -2126,13 +2812,13 @@ "integrity": "sha512-Dw10hYKv3exrc71GmH/Fqnc7dCLzdiP8bM1MLelPYjgIH5kQ6mPFreM3Z0uLK9EFaeCZZUYqsedDLCf3Urrysg==", "dev": true, "requires": { - "@types/accepts": "1.3.5", - "@types/cookies": "0.7.1", - "@types/events": "1.2.0", - "@types/http-assert": "1.3.0", - "@types/keygrip": "1.0.1", - "@types/koa-compose": "3.2.2", - "@types/node": "10.5.2" + "@types/accepts": "*", + "@types/cookies": "*", + "@types/events": "*", + "@types/http-assert": "*", + "@types/keygrip": "*", + "@types/koa-compose": "*", + "@types/node": "*" } }, "@types/koa-compose": { @@ -2142,9 +2828,9 @@ "dev": true }, "@types/lodash": { - "version": "4.14.111", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.111.tgz", - "integrity": "sha512-t2FwnkdqdZNYPJHTEF+Zf//j5d2I7UbM2Ng+vqqmUCE2RuiVVINJi9RlVdpKvqPqVItsJa0X+ra/tvmwLzlcgg==", + "version": "4.14.112", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.112.tgz", + "integrity": "sha512-jDD7sendv3V7iwyRXSlECOR8HCtMN2faVA9ngLdHHihSVIwY7nbfsKl2kA6fimUDU1i5l/zgpG3aevwWnN3zCQ==", "dev": true }, "@types/lodash.assign": { @@ -2153,7 +2839,7 @@ "integrity": "sha512-L8D6y0a88Uv3/gdqUpmfHPGSFo676ggbtl5an3FgR4AzbvR+PKNdUMPr6F6Q/U3n3lCoCoV+WPt1vqJGbgPZ6Q==", "dev": true, "requires": { - "@types/lodash": "4.14.111" + "@types/lodash": "*" } }, "@types/lodash.has": { @@ -2162,7 +2848,7 @@ "integrity": "sha512-McmKJoXdSxMYIQzVWKSEGrHnTwJ1ErqXvsTQjFeGEhBmypgCjuANDSqxl4LKaKcoF4mNxMqSzH7wP4yQ0deLeQ==", "dev": true, "requires": { - "@types/lodash": "4.14.111" + "@types/lodash": "*" } }, "@types/lodash.maxby": { @@ -2171,7 +2857,7 @@ "integrity": "sha512-5AMk6874T1RMxtWkW0I4ORFptU508mTb8jYG0gaNCMDzX6kLn/VNQXewL6dasZd4dj/hSbM8dt7msLuI3rSIPQ==", "dev": true, "requires": { - "@types/lodash": "4.14.111" + "@types/lodash": "*" } }, "@types/lodash.merge": { @@ -2180,7 +2866,7 @@ "integrity": "sha512-bOCCutkbehfCeiSqJO5XcVKjsJvX28dgvjhs4aMmBAHAsOy2oOJQwHuIZ0elI1E94qQIdEsCvz8oLgUumd6teA==", "dev": true, "requires": { - "@types/lodash": "4.14.111" + "@types/lodash": "*" } }, "@types/lodash.omit": { @@ -2189,7 +2875,7 @@ "integrity": "sha512-a6VbeE+JjMQ3rKsQVRjle02E+iKPTsT7izzFRk4xJvv4TBcO85Lrpo+8n6iqsiH8yZ8mHy0LOmx7MVgO8OfovQ==", "dev": true, "requires": { - "@types/lodash": "4.14.111" + "@types/lodash": "*" } }, "@types/lodash.omitby": { @@ -2198,7 +2884,7 @@ "integrity": "sha512-IfMZru9AegVIu0lkOXc/ncCOR3zzC6FKTVuBHBd9PkmKbOCn5zFORT22Wf/fZ9SBr2HmaYLPkFhf5C7A7k/N9A==", "dev": true, "requires": { - "@types/lodash": "4.14.111" + "@types/lodash": "*" } }, "@types/lodash.pick": { @@ -2207,7 +2893,7 @@ "integrity": "sha512-7VR26qH/bzRBn8DN6HKWYwBB6dNo1dNSdc0nYQwPp5tua6u2dpHHCFccszvFKBdR2CjSEbL5hsqQul03P4COjA==", "dev": true, "requires": { - "@types/lodash": "4.14.111" + "@types/lodash": "*" } }, "@types/lodash.random": { @@ -2216,7 +2902,7 @@ "integrity": "sha512-JMCA9llou2Ye9mhz0H/7DaPrJ6PgmRb6ClnPGPzfoX7JUu9Q6NuRZON5INrTQH5LWahzqaZdeMwHyn8MGRkXoA==", "dev": true, "requires": { - "@types/lodash": "4.14.111" + "@types/lodash": "*" } }, "@types/lodash.without": { @@ -2225,7 +2911,7 @@ "integrity": "sha512-oD30pRigg97PfyF8u3WGkRnn3MPS/f2pwYf0s0dNeGOeScbZ1bo4BYBK7dab/lpX6EbUjoWAtLLMQW+LxlJpcQ==", "dev": true, "requires": { - "@types/lodash": "4.14.111" + "@types/lodash": "*" } }, "@types/mime": { @@ -2246,7 +2932,7 @@ "integrity": "sha512-MATIRH4VMIJki8lcYUZdNQEHuAG7iQ1FWwoLgxV+4fUOly2xZYdhHtGgvQyWiTeJqq2tZbE0nOOgZD6pR0FpNQ==", "dev": true, "requires": { - "@types/mime-db": "1.27.0" + "@types/mime-db": "*" } }, "@types/minimatch": { @@ -2256,9 +2942,9 @@ "dev": true }, "@types/mocha": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.4.tgz", - "integrity": "sha512-XMHApnKWI0jvXU5gLcSTsRjJBpSzP0BG+2oGv98JFyS4a5R0tRy0oshHBRndb3BuHb9AwDKaUL8Ja7GfUvsG4g==", + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.5.tgz", + "integrity": "sha512-lAVp+Kj54ui/vLUFxsJTMtWvZraZxum3w3Nwkble2dNuV5VnPA+Mi2oGX9XYJAaIvZi3tn3cbjS/qcJXRb6Bww==", "dev": true }, "@types/ncp": { @@ -2267,7 +2953,7 @@ "integrity": "sha512-TeiJ7uvv/92ugSqZ0v9l0eNXzutlki0aK+R1K5bfA5SYUil46ITlxLW4iNTCf55P4L5weCmaOdtxGeGWvudwPg==", "dev": true, "requires": { - "@types/node": "10.5.2" + "@types/node": "*" } }, "@types/nock": { @@ -2276,7 +2962,7 @@ "integrity": "sha512-ZHf/X8rTQ5Tb1rHjxIJYqm55uO265agE3G7NoSXVa2ep+EcJXgB2fsme+zBvK7MhrxTwkC/xkB6THyv50u0MGw==", "dev": true, "requires": { - "@types/node": "10.5.2" + "@types/node": "*" } }, "@types/node": { @@ -2319,10 +3005,10 @@ "resolved": "https://registry.npmjs.org/@types/request/-/request-2.47.1.tgz", "integrity": "sha512-TV3XLvDjQbIeVxJ1Z3oCTDk/KuYwwcNKVwz2YaT0F5u86Prgc4syDAp6P96rkTQQ4bIdh+VswQIC9zS6NjY7/g==", "requires": { - "@types/caseless": "0.12.1", - "@types/form-data": "2.2.1", - "@types/node": "10.5.2", - "@types/tough-cookie": "2.3.3" + "@types/caseless": "*", + "@types/form-data": "*", + "@types/node": "*", + "@types/tough-cookie": "*" } }, "@types/restify": { @@ -2331,9 +3017,9 @@ "integrity": "sha512-k4O09swQnADEoj9B+ug7xBWkAdo7smv5W2IChW4wvC0ye2LUgyfbTjzzLTQLjd1OoLh/DdQACq0kOyZyjvNcrQ==", "dev": true, "requires": { - "@types/bunyan": "1.8.4", - "@types/node": "10.5.2", - "@types/spdy": "3.4.4" + "@types/bunyan": "*", + "@types/node": "*", + "@types/spdy": "*" } }, "@types/rimraf": { @@ -2342,8 +3028,8 @@ "integrity": "sha512-Hm/bnWq0TCy7jmjeN5bKYij9vw5GrDFWME4IuxV08278NtU/VdGbzsBohcCUJ7+QMqmUq5hpRKB39HeQWJjztQ==", "dev": true, "requires": { - "@types/glob": "5.0.35", - "@types/node": "10.5.2" + "@types/glob": "*", + "@types/node": "*" } }, "@types/serve-static": { @@ -2352,8 +3038,8 @@ "integrity": "sha512-/BZ4QRLpH/bNYgZgwhKEh+5AsboDBcUdlBYgzoLX0fpj3Y2gp6EApyOlM3bK53wQS/OE1SrdSYBAbux2D1528Q==", "dev": true, "requires": { - "@types/express-serve-static-core": "4.16.0", - "@types/mime": "2.0.0" + "@types/express-serve-static-core": "*", + "@types/mime": "*" } }, "@types/shot": { @@ -2362,7 +3048,7 @@ "integrity": "sha1-RZR3xRh9Pr0wNmCrCZ5+ng87ZW8=", "dev": true, "requires": { - "@types/node": "10.5.2" + "@types/node": "*" } }, "@types/spdy": { @@ -2371,7 +3057,7 @@ "integrity": "sha512-N9LBlbVRRYq6HgYpPkqQc3a9HJ/iEtVZToW6xlTtJiMhmRJ7jJdV7TaZQJw/Ve/1ePUsQiCTDc4JMuzzag94GA==", "dev": true, "requires": { - "@types/node": "10.5.2" + "@types/node": "*" } }, "@types/tmp": { @@ -2391,8 +3077,8 @@ "integrity": "sha512-bghLXFkCOsC1Y2TZ51etWfKDs6q249SAoHTZVfzWWdlZxoij+mgkj9AmUJWQpDY48TfnrTDIe43Xem4zdMe7mQ==", "dev": true, "requires": { - "boom": "7.2.0", - "hoek": "5.0.3" + "boom": "7.x.x", + "hoek": "5.x.x" } }, "accepts": { @@ -2401,7 +3087,7 @@ "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "dev": true, "requires": { - "mime-types": "2.1.18", + "mime-types": "~2.1.18", "negotiator": "0.6.1" } }, @@ -2423,7 +3109,7 @@ "integrity": "sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw==", "dev": true, "requires": { - "acorn": "5.7.1" + "acorn": "^5.0.3" } }, "ajv": { @@ -2431,10 +3117,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ajv-keywords": { @@ -2448,11 +3134,10 @@ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, - "optional": true, "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" } }, "amdefine": { @@ -2467,7 +3152,7 @@ "integrity": "sha512-4UqoM8xQjwkQ78oiU4NbBK0UgYqeKMAKmwE4ec7Rz3rGU8ZEBFxzgF2sUYKOAlqIXExBDYLN6y1ShF5yQ4hwLQ==", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "ansi-align": { @@ -2476,7 +3161,7 @@ "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "dev": true, "requires": { - "string-width": "2.1.1" + "string-width": "^2.0.0" } }, "ansi-escapes": { @@ -2497,7 +3182,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.2" + "color-convert": "^1.9.0" } }, "any-promise": { @@ -2512,8 +3197,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "dev": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "argparse": { @@ -2522,7 +3207,7 @@ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "argv": { @@ -2537,7 +3222,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-exclude": { @@ -2594,7 +3279,7 @@ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -2671,89 +3356,89 @@ "integrity": "sha512-4lGNJCf6xL8SvsKVEKxEE46se7JAUIAZoKHw9itTQuwcsydhpAMkBs5gOOiWiwt0JKNIuXWc2/r4r8ZdcNrBEw==", "dev": true, "requires": { - "@ava/babel-preset-stage-4": "1.1.0", - "@ava/babel-preset-transform-test-files": "3.0.0", - "@ava/write-file-atomic": "2.2.0", - "@concordance/react": "1.0.0", - "@ladjs/time-require": "0.1.4", - "ansi-escapes": "3.1.0", - "ansi-styles": "3.2.1", - "arr-flatten": "1.1.0", - "array-union": "1.0.2", - "array-uniq": "1.0.3", - "arrify": "1.0.1", - "auto-bind": "1.2.1", - "ava-init": "0.2.1", - "babel-core": "6.26.3", - "babel-generator": "6.26.1", - "babel-plugin-syntax-object-rest-spread": "6.13.0", - "bluebird": "3.5.1", - "caching-transform": "1.0.1", - "chalk": "2.4.1", - "chokidar": "1.7.0", - "clean-stack": "1.3.0", - "clean-yaml-object": "0.1.0", - "cli-cursor": "2.1.0", - "cli-spinners": "1.3.1", - "cli-truncate": "1.1.0", - "co-with-promise": "4.6.0", - "code-excerpt": "2.1.1", - "common-path-prefix": "1.0.0", - "concordance": "3.0.0", - "convert-source-map": "1.5.1", - "core-assert": "0.2.1", - "currently-unhandled": "0.4.1", - "debug": "3.1.0", - "dot-prop": "4.2.0", - "empower-core": "0.6.2", - "equal-length": "1.0.1", - "figures": "2.0.0", - "find-cache-dir": "1.0.0", - "fn-name": "2.0.1", - "get-port": "3.2.0", - "globby": "6.1.0", - "has-flag": "2.0.0", - "hullabaloo-config-manager": "1.1.1", - "ignore-by-default": "1.0.1", - "import-local": "0.1.1", - "indent-string": "3.2.0", - "is-ci": "1.1.0", - "is-generator-fn": "1.0.0", - "is-obj": "1.0.1", - "is-observable": "1.1.0", - "is-promise": "2.1.0", - "last-line-stream": "1.0.0", - "lodash.clonedeepwith": "4.5.0", - "lodash.debounce": "4.0.8", - "lodash.difference": "4.5.0", - "lodash.flatten": "4.4.0", - "loud-rejection": "1.6.0", - "make-dir": "1.3.0", - "matcher": "1.1.1", - "md5-hex": "2.0.0", - "meow": "3.7.0", - "ms": "2.0.0", - "multimatch": "2.1.0", - "observable-to-promise": "0.5.0", - "option-chain": "1.0.0", - "package-hash": "2.0.0", - "pkg-conf": "2.1.0", - "plur": "2.1.2", - "pretty-ms": "3.2.0", - "require-precompiled": "0.1.0", - "resolve-cwd": "2.0.0", - "safe-buffer": "5.1.2", - "semver": "5.5.0", - "slash": "1.0.0", - "source-map-support": "0.5.6", - "stack-utils": "1.0.1", - "strip-ansi": "4.0.0", - "strip-bom-buf": "1.0.0", - "supertap": "1.0.0", - "supports-color": "5.4.0", - "trim-off-newlines": "1.0.1", - "unique-temp-dir": "1.0.0", - "update-notifier": "2.5.0" + "@ava/babel-preset-stage-4": "^1.1.0", + "@ava/babel-preset-transform-test-files": "^3.0.0", + "@ava/write-file-atomic": "^2.2.0", + "@concordance/react": "^1.0.0", + "@ladjs/time-require": "^0.1.4", + "ansi-escapes": "^3.0.0", + "ansi-styles": "^3.1.0", + "arr-flatten": "^1.0.1", + "array-union": "^1.0.1", + "array-uniq": "^1.0.2", + "arrify": "^1.0.0", + "auto-bind": "^1.1.0", + "ava-init": "^0.2.0", + "babel-core": "^6.17.0", + "babel-generator": "^6.26.0", + "babel-plugin-syntax-object-rest-spread": "^6.13.0", + "bluebird": "^3.0.0", + "caching-transform": "^1.0.0", + "chalk": "^2.0.1", + "chokidar": "^1.4.2", + "clean-stack": "^1.1.1", + "clean-yaml-object": "^0.1.0", + "cli-cursor": "^2.1.0", + "cli-spinners": "^1.0.0", + "cli-truncate": "^1.0.0", + "co-with-promise": "^4.6.0", + "code-excerpt": "^2.1.1", + "common-path-prefix": "^1.0.0", + "concordance": "^3.0.0", + "convert-source-map": "^1.5.1", + "core-assert": "^0.2.0", + "currently-unhandled": "^0.4.1", + "debug": "^3.0.1", + "dot-prop": "^4.1.0", + "empower-core": "^0.6.1", + "equal-length": "^1.0.0", + "figures": "^2.0.0", + "find-cache-dir": "^1.0.0", + "fn-name": "^2.0.0", + "get-port": "^3.0.0", + "globby": "^6.0.0", + "has-flag": "^2.0.0", + "hullabaloo-config-manager": "^1.1.0", + "ignore-by-default": "^1.0.0", + "import-local": "^0.1.1", + "indent-string": "^3.0.0", + "is-ci": "^1.0.7", + "is-generator-fn": "^1.0.0", + "is-obj": "^1.0.0", + "is-observable": "^1.0.0", + "is-promise": "^2.1.0", + "last-line-stream": "^1.0.0", + "lodash.clonedeepwith": "^4.5.0", + "lodash.debounce": "^4.0.3", + "lodash.difference": "^4.3.0", + "lodash.flatten": "^4.2.0", + "loud-rejection": "^1.2.0", + "make-dir": "^1.0.0", + "matcher": "^1.0.0", + "md5-hex": "^2.0.0", + "meow": "^3.7.0", + "ms": "^2.0.0", + "multimatch": "^2.1.0", + "observable-to-promise": "^0.5.0", + "option-chain": "^1.0.0", + "package-hash": "^2.0.0", + "pkg-conf": "^2.0.0", + "plur": "^2.0.0", + "pretty-ms": "^3.0.0", + "require-precompiled": "^0.1.0", + "resolve-cwd": "^2.0.0", + "safe-buffer": "^5.1.1", + "semver": "^5.4.1", + "slash": "^1.0.0", + "source-map-support": "^0.5.0", + "stack-utils": "^1.0.1", + "strip-ansi": "^4.0.0", + "strip-bom-buf": "^1.0.0", + "supertap": "^1.0.0", + "supports-color": "^5.0.0", + "trim-off-newlines": "^1.0.1", + "unique-temp-dir": "^1.0.0", + "update-notifier": "^2.3.0" } }, "ava-init": { @@ -2762,11 +3447,11 @@ "integrity": "sha512-lXwK5LM+2g1euDRqW1mcSX/tqzY1QU7EjKpqayFPPtNRmbSYZ8RzPO5tqluTToijmtjp2M+pNpVdbcHssC4glg==", "dev": true, "requires": { - "arr-exclude": "1.0.0", - "execa": "0.7.0", - "has-yarn": "1.0.0", - "read-pkg-up": "2.0.0", - "write-pkg": "3.2.0" + "arr-exclude": "^1.0.0", + "execa": "^0.7.0", + "has-yarn": "^1.0.0", + "read-pkg-up": "^2.0.0", + "write-pkg": "^3.1.0" } }, "aws-sign2": { @@ -2784,8 +3469,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz", "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=", "requires": { - "follow-redirects": "1.5.1", - "is-buffer": "1.1.6" + "follow-redirects": "^1.3.0", + "is-buffer": "^1.1.5" } }, "b64": { @@ -2800,9 +3485,9 @@ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" }, "dependencies": { "ansi-styles": { @@ -2817,11 +3502,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "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" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "strip-ansi": { @@ -2830,7 +3515,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -2847,25 +3532,25 @@ "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.1", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.5.1", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.5", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" }, "dependencies": { "debug": { @@ -2885,14 +3570,14 @@ "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "dev": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.5", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" }, "dependencies": { "jsesc": { @@ -2909,9 +3594,9 @@ "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "dev": true, "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-call-delegate": { @@ -2920,10 +3605,10 @@ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "dev": true, "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-explode-assignable-expression": { @@ -2932,9 +3617,9 @@ "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-function-name": { @@ -2943,11 +3628,11 @@ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "dev": true, "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-get-function-arity": { @@ -2956,8 +3641,8 @@ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-hoist-variables": { @@ -2966,8 +3651,8 @@ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-regex": { @@ -2976,9 +3661,9 @@ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.5" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-remap-async-to-generator": { @@ -2987,11 +3672,11 @@ "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helpers": { @@ -3000,8 +3685,8 @@ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-messages": { @@ -3010,7 +3695,7 @@ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { @@ -3019,7 +3704,7 @@ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-espower": { @@ -3028,13 +3713,13 @@ "integrity": "sha512-/+SRpy7pKgTI28oEHfn1wkuM5QFAdRq8WNsOOih1dVrdV6A/WbNbRZyl0eX5eyDgtb0lOE27PeDFuCX2j8OxVg==", "dev": true, "requires": { - "babel-generator": "6.26.1", - "babylon": "6.18.0", - "call-matcher": "1.0.1", - "core-js": "2.5.7", - "espower-location-detector": "1.0.0", - "espurify": "1.8.1", - "estraverse": "4.2.0" + "babel-generator": "^6.1.0", + "babylon": "^6.1.0", + "call-matcher": "^1.0.0", + "core-js": "^2.0.0", + "espower-location-detector": "^1.0.0", + "espurify": "^1.6.0", + "estraverse": "^4.1.1" } }, "babel-plugin-syntax-async-functions": { @@ -3067,9 +3752,9 @@ "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "dev": true, "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-destructuring": { @@ -3078,7 +3763,7 @@ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -3087,9 +3772,9 @@ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -3098,10 +3783,10 @@ "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "dev": true, "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -3110,12 +3795,12 @@ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "dev": true, "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-spread": { @@ -3124,7 +3809,7 @@ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -3133,9 +3818,9 @@ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "dev": true, "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -3144,9 +3829,9 @@ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "dev": true, "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -3155,9 +3840,9 @@ "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "dev": true, "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-strict-mode": { @@ -3166,8 +3851,8 @@ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-register": { @@ -3176,13 +3861,13 @@ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "dev": true, "requires": { - "babel-core": "6.26.3", - "babel-runtime": "6.26.0", - "core-js": "2.5.7", - "home-or-tmp": "2.0.0", - "lodash": "4.17.5", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" }, "dependencies": { "source-map-support": { @@ -3191,7 +3876,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } } } @@ -3202,8 +3887,8 @@ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.5.7", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -3212,11 +3897,11 @@ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.5" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { @@ -3225,15 +3910,15 @@ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.5" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" }, "dependencies": { "debug": { @@ -3253,10 +3938,10 @@ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.5", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -3277,13 +3962,13 @@ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { "define-property": { @@ -3292,7 +3977,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -3301,7 +3986,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -3310,7 +3995,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -3319,9 +4004,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -3344,7 +4029,7 @@ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "big-time": { @@ -3372,15 +4057,15 @@ "dev": true, "requires": { "bytes": "3.0.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.3", + "depd": "~1.1.2", + "http-errors": "~1.6.3", "iconv-lite": "0.4.23", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.5.2", "raw-body": "2.3.3", - "type-is": "1.6.16" + "type-is": "~1.6.16" }, "dependencies": { "debug": { @@ -3400,7 +4085,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "bounce": { @@ -3409,8 +4094,8 @@ "integrity": "sha512-8syCGe8B2/WC53118/F/tFy5aW00j+eaGPXmAUP7iBhxc+EBZZxS1vKelWyBCH6IqojgS2t1gF0glH30qAJKEw==", "dev": true, "requires": { - "boom": "7.2.0", - "hoek": "5.0.3" + "boom": "7.x.x", + "hoek": "5.x.x" } }, "boxen": { @@ -3419,13 +4104,13 @@ "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", "dev": true, "requires": { - "ansi-align": "2.0.0", - "camelcase": "4.1.0", - "chalk": "2.4.1", - "cli-boxes": "1.0.0", - "string-width": "2.1.1", - "term-size": "1.2.0", - "widest-line": "2.0.0" + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" }, "dependencies": { "camelcase": { @@ -3442,7 +4127,7 @@ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -3452,9 +4137,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "browser-stdout": { @@ -3498,10 +4183,10 @@ "integrity": "sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=", "dev": true, "requires": { - "dtrace-provider": "0.8.7", - "moment": "2.22.2", - "mv": "2.1.1", - "safe-json-stringify": "1.2.0" + "dtrace-provider": "~0.8", + "moment": "^2.10.6", + "mv": "~2", + "safe-json-stringify": "~1" } }, "bytes": { @@ -3516,15 +4201,15 @@ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" }, "dependencies": { "isobject": { @@ -3535,6 +4220,16 @@ } } }, + "cache-content-type": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.0.tgz", + "integrity": "sha512-cVbmz0rAnsK3jPcQAlK4IDUUPaYAe4yl7MAfiKftHAcrW/azF1yikn2wE/8VAcC3yWtXi3lvXwsF1akK27Vo7w==", + "dev": true, + "requires": { + "mime-types": "^2.1.18", + "ylru": "^1.2.0" + } + }, "cacheable-request": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", @@ -3564,9 +4259,9 @@ "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", "dev": true, "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" }, "dependencies": { "md5-hex": { @@ -3575,7 +4270,7 @@ "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "write-file-atomic": { @@ -3584,9 +4279,9 @@ "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } } } @@ -3597,8 +4292,8 @@ "integrity": "sha512-ollfFPSshiuYLp7AsrmpkQJ/PxCi6AzV81rCjBwWhyF2QGyUY/vPDMzoh4aUcWyucheRglG2LaS5qkIEfLRh6A==", "dev": true, "requires": { - "boom": "7.2.0", - "hoek": "5.0.3" + "boom": "7.x.x", + "hoek": "5.x.x" } }, "call-matcher": { @@ -3607,10 +4302,10 @@ "integrity": "sha1-UTTQd5hPcSpU2tPL9i3ijc5BbKg=", "dev": true, "requires": { - "core-js": "2.5.7", - "deep-equal": "1.0.1", - "espurify": "1.8.1", - "estraverse": "4.2.0" + "core-js": "^2.0.0", + "deep-equal": "^1.0.0", + "espurify": "^1.6.0", + "estraverse": "^4.0.0" } }, "call-me-maybe": { @@ -3631,7 +4326,7 @@ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsites": { @@ -3652,8 +4347,8 @@ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" } }, "capture-stack-trace": { @@ -3673,10 +4368,10 @@ "integrity": "sha512-cTQTQeKMhWHU0lX8CADE3g1koGJu+AlcWFzAjMX/8P+XbkScGYw3tJsQpe2Oh8q68vOQbOLacz9k+6V/F3Z9DA==", "dev": true, "requires": { - "boom": "7.2.0", - "bounce": "1.2.0", - "hoek": "5.0.3", - "joi": "13.4.0" + "boom": "7.x.x", + "bounce": "1.x.x", + "hoek": "5.x.x", + "joi": "13.x.x" } }, "catbox-memory": { @@ -3685,9 +4380,9 @@ "integrity": "sha512-lhWtutLVhsq3Mucxk2McxBPPibJ34WcHuWFz3xqub9u9Ve/IQYpZv3ijLhQXfQped9DXozURiaq9O3aZpP91eg==", "dev": true, "requires": { - "big-time": "2.0.1", - "boom": "7.2.0", - "hoek": "5.0.3" + "big-time": "2.x.x", + "boom": "7.x.x", + "hoek": "5.x.x" } }, "catharsis": { @@ -3696,7 +4391,7 @@ "integrity": "sha1-mMyJDKZS3S7w5ws3klMQ/56Q/Is=", "dev": true, "requires": { - "underscore-contrib": "0.3.0" + "underscore-contrib": "~0.3.0" } }, "center-align": { @@ -3706,8 +4401,8 @@ "dev": true, "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chai": { @@ -3716,12 +4411,12 @@ "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", "dev": true, "requires": { - "assertion-error": "1.1.0", - "check-error": "1.0.2", - "deep-eql": "3.0.1", - "get-func-name": "2.0.0", - "pathval": "1.1.0", - "type-detect": "4.0.8" + "assertion-error": "^1.0.1", + "check-error": "^1.0.1", + "deep-eql": "^3.0.0", + "get-func-name": "^2.0.0", + "pathval": "^1.0.0", + "type-detect": "^4.0.0" } }, "chalk": { @@ -3730,9 +4425,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "chardet": { @@ -3753,15 +4448,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "dev": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.2.4", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" } }, "ci-info": { @@ -3793,10 +4488,10 @@ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -3805,7 +4500,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "isobject": { @@ -3840,7 +4535,7 @@ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-spinners": { @@ -3855,8 +4550,8 @@ "integrity": "sha512-bAtZo0u82gCfaAGfSNxUdTI9mNyza7D8w4CVCcaOsy7sgwDzvx6ekr6cuWJqY3UGzgnQ1+4wgENup5eIhgxEYA==", "dev": true, "requires": { - "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "slice-ansi": "^1.0.0", + "string-width": "^2.0.0" } }, "cli-width": { @@ -3872,8 +4567,8 @@ "dev": true, "optional": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" }, "dependencies": { @@ -3892,7 +4587,7 @@ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "dev": true, "requires": { - "mimic-response": "1.0.0" + "mimic-response": "^1.0.0" } }, "co": { @@ -3906,7 +4601,7 @@ "integrity": "sha1-QT59tvWJOmC5Qs9JLEvsk9tBWrc=", "dev": true, "requires": { - "pinkie-promise": "1.0.0" + "pinkie-promise": "^1.0.0" } }, "code-excerpt": { @@ -3915,7 +4610,7 @@ "integrity": "sha512-tJLhH3EpFm/1x7heIW0hemXJTUU5EWl2V0EIX558jp05Mt1U6DVryCgkp3l37cxqs+DNbNgxG43SkwJXpQ14Jw==", "dev": true, "requires": { - "convert-to-spaces": "1.0.2" + "convert-to-spaces": "^1.0.1" } }, "code-point-at": { @@ -3930,10 +4625,10 @@ "integrity": "sha512-KJyzHdg9B8U9LxXa7hS6jnEW5b1cNckLYc2YpnJ1nEFiOW+/iSzDHp+5MYEIQd9fN3/tC6WmGZmYiwxzkuGp/A==", "dev": true, "requires": { - "argv": "0.0.2", - "ignore-walk": "3.0.1", - "request": "2.87.0", - "urlgrey": "0.4.4" + "argv": "^0.0.2", + "ignore-walk": "^3.0.1", + "request": "^2.87.0", + "urlgrey": "^0.4.4" } }, "collection-visit": { @@ -3942,8 +4637,8 @@ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "color-convert": { @@ -3972,7 +4667,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -4011,17 +4706,17 @@ "integrity": "sha512-CZBzJ3/l5QJjlZM20WY7+5GP5pMTw+1UEbThcpMw8/rojsi5sBCiD8ZbBLtD+jYpRGAkwuKuqk108c154V9eyQ==", "dev": true, "requires": { - "date-time": "2.1.0", - "esutils": "2.0.2", - "fast-diff": "1.1.2", - "function-name-support": "0.2.0", - "js-string-escape": "1.0.1", - "lodash.clonedeep": "4.5.0", - "lodash.flattendeep": "4.4.0", - "lodash.merge": "4.6.1", - "md5-hex": "2.0.0", - "semver": "5.5.0", - "well-known-symbols": "1.0.0" + "date-time": "^2.1.0", + "esutils": "^2.0.2", + "fast-diff": "^1.1.1", + "function-name-support": "^0.2.0", + "js-string-escape": "^1.0.1", + "lodash.clonedeep": "^4.5.0", + "lodash.flattendeep": "^4.4.0", + "lodash.merge": "^4.6.0", + "md5-hex": "^2.0.0", + "semver": "^5.3.0", + "well-known-symbols": "^1.0.0" }, "dependencies": { "date-time": { @@ -4030,7 +4725,7 @@ "integrity": "sha512-/9+C44X7lot0IeiyfgJmETtRMhBidBYM2QFFIkGa0U1k+hSyY87Nw7PY3eDqpvCBm7I3WCSfPeZskW/YYq6m4g==", "dev": true, "requires": { - "time-zone": "1.0.0" + "time-zone": "^1.0.0" } } } @@ -4041,12 +4736,12 @@ "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", "dev": true, "requires": { - "dot-prop": "4.2.0", - "graceful-fs": "4.1.11", - "make-dir": "1.3.0", - "unique-string": "1.0.0", - "write-file-atomic": "2.3.0", - "xdg-basedir": "3.0.0" + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" } }, "content": { @@ -4055,7 +4750,7 @@ "integrity": "sha512-wDP6CTWDpwCf791fNxlCCkZGRkrNzSEU/8ju9Hnr3Uc5mF/gFR5W+fcoGm6zUSlVPdSXYn5pCbySADKj7YM4Cg==", "dev": true, "requires": { - "boom": "7.2.0" + "boom": "7.x.x" } }, "content-disposition": { @@ -4106,8 +4801,8 @@ "integrity": "sha1-fIphX1SBxhq58WyDNzG8uPZjuZs=", "dev": true, "requires": { - "depd": "1.1.2", - "keygrip": "1.0.2" + "depd": "~1.1.1", + "keygrip": "~1.0.2" } }, "copy-descriptor": { @@ -4122,8 +4817,8 @@ "integrity": "sha1-+F4s+b/tKPdzzIs/pcW2m9wC/j8=", "dev": true, "requires": { - "buf-compare": "1.0.1", - "is-error": "2.2.1" + "buf-compare": "^1.0.0", + "is-error": "^2.2.0" } }, "core-js": { @@ -4143,11 +4838,11 @@ "integrity": "sha512-OtHMgPugkgwHlbph25wlMKd358lZNhX1Y2viUpPoFmlBPlEiPIRhztYWha11grbGPnlM+urp5saVmwsChCIOEg==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "make-dir": "1.3.0", - "nested-error-stacks": "2.0.1", - "pify": "3.0.0", - "safe-buffer": "5.1.2" + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "nested-error-stacks": "^2.0.0", + "pify": "^3.0.0", + "safe-buffer": "^5.0.1" } }, "cpy": { @@ -4156,10 +4851,10 @@ "integrity": "sha512-Zo52tXKLJcgy/baacn6KaNoRAakkl2wb+R4u6qJ4wlD0uchncwRQcIk66PlGlkzuToCJO6A6PWX27Tdwc8LU2g==", "dev": true, "requires": { - "arrify": "1.0.1", - "cp-file": "6.0.0", - "globby": "8.0.1", - "nested-error-stacks": "2.0.1" + "arrify": "^1.0.1", + "cp-file": "^6.0.0", + "globby": "^8.0.1", + "nested-error-stacks": "^2.0.0" }, "dependencies": { "globby": { @@ -4168,13 +4863,13 @@ "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", "dev": true, "requires": { - "array-union": "1.0.2", - "dir-glob": "2.0.0", - "fast-glob": "2.2.2", - "glob": "7.1.2", - "ignore": "3.3.10", - "pify": "3.0.0", - "slash": "1.0.0" + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" } } } @@ -4185,8 +4880,8 @@ "integrity": "sha512-LzrtY3lBWvFZcw4lXgkEbbDUd7y78juC3C5l7gj3UyezMEZF0Be9fjCVLN1HoZAzdMDeC3KHehWpHBJvgVAPkw==", "dev": true, "requires": { - "cpy": "7.0.1", - "meow": "5.0.0" + "cpy": "^7.0.0", + "meow": "^5.0.0" }, "dependencies": { "camelcase": { @@ -4201,9 +4896,9 @@ "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", "dev": true, "requires": { - "camelcase": "4.1.0", - "map-obj": "2.0.0", - "quick-lru": "1.1.0" + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" } }, "load-json-file": { @@ -4212,10 +4907,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "map-obj": { @@ -4230,15 +4925,15 @@ "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", "dev": true, "requires": { - "camelcase-keys": "4.2.0", - "decamelize-keys": "1.1.0", - "loud-rejection": "1.6.0", - "minimist-options": "3.0.2", - "normalize-package-data": "2.4.0", - "read-pkg-up": "3.0.0", - "redent": "2.0.0", - "trim-newlines": "2.0.0", - "yargs-parser": "10.1.0" + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0", + "yargs-parser": "^10.0.0" } }, "parse-json": { @@ -4247,8 +4942,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "path-type": { @@ -4257,7 +4952,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "read-pkg": { @@ -4266,9 +4961,9 @@ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.4.0", - "path-type": "3.0.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" } }, "read-pkg-up": { @@ -4277,8 +4972,8 @@ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "3.0.0" + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" } }, "redent": { @@ -4287,8 +4982,8 @@ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", "dev": true, "requires": { - "indent-string": "3.2.0", - "strip-indent": "2.0.0" + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" } }, "strip-indent": { @@ -4302,15 +4997,6 @@ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", "dev": true - }, - "yargs-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", - "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", - "dev": true, - "requires": { - "camelcase": "4.1.0" - } } } }, @@ -4320,7 +5006,7 @@ "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "dev": true, "requires": { - "capture-stack-trace": "1.0.0" + "capture-stack-trace": "^1.0.0" } }, "cross-spawn": { @@ -4329,9 +5015,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "cryptiles": { @@ -4340,7 +5026,7 @@ "integrity": "sha512-U2ALcoAHvA1oO2xOreyHvtkQ+IELqDG2WVWRI1GH/XEmmfGIOalnM5MU5Dd2ITyWfr3m6kNqXiy8XuYyd4wKJw==", "dev": true, "requires": { - "boom": "7.2.0" + "boom": "7.x.x" } }, "crypto-random-string": { @@ -4355,10 +5041,10 @@ "integrity": "sha1-UjHt/BxxUlEuxFeBB2p6l/9SXAw=", "dev": true, "requires": { - "csv-generate": "1.1.2", - "csv-parse": "1.3.3", - "csv-stringify": "1.1.2", - "stream-transform": "0.2.2" + "csv-generate": "^1.1.2", + "csv-parse": "^1.3.3", + "csv-stringify": "^1.1.2", + "stream-transform": "^0.2.2" } }, "csv-generate": { @@ -4379,7 +5065,7 @@ "integrity": "sha1-d6QVJlgbzjOA8SsA18W7rHDIK1g=", "dev": true, "requires": { - "lodash.get": "4.4.2" + "lodash.get": "~4.4.2" } }, "currently-unhandled": { @@ -4388,7 +5074,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "array-find-index": "1.0.2" + "array-find-index": "^1.0.1" } }, "d": { @@ -4397,7 +5083,7 @@ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "dev": true, "requires": { - "es5-ext": "0.10.45" + "es5-ext": "^0.10.9" } }, "dashdash": { @@ -4405,7 +5091,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "date-time": { @@ -4434,8 +5120,8 @@ "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", "dev": true, "requires": { - "decamelize": "1.2.0", - "map-obj": "1.0.1" + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" } }, "decode-uri-component": { @@ -4450,7 +5136,7 @@ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "dev": true, "requires": { - "mimic-response": "1.0.0" + "mimic-response": "^1.0.0" } }, "deep-eql": { @@ -4459,7 +5145,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "4.0.8" + "type-detect": "^4.0.0" } }, "deep-equal": { @@ -4486,8 +5172,8 @@ "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "dev": true, "requires": { - "foreach": "2.0.5", - "object-keys": "1.0.12" + "foreach": "^2.0.5", + "object-keys": "^1.0.8" } }, "define-property": { @@ -4496,8 +5182,8 @@ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -4506,7 +5192,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -4515,7 +5201,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -4524,9 +5210,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -4549,13 +5235,13 @@ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.2" + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" }, "dependencies": { "globby": { @@ -4564,12 +5250,12 @@ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -4590,7 +5276,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } } } @@ -4624,7 +5310,7 @@ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "detect-node": { @@ -4651,8 +5337,8 @@ "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", "dev": true, "requires": { - "arrify": "1.0.1", - "path-type": "3.0.0" + "arrify": "^1.0.1", + "path-type": "^3.0.0" }, "dependencies": { "path-type": { @@ -4661,7 +5347,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } } } @@ -4672,7 +5358,7 @@ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "esutils": "2.0.2" + "esutils": "^2.0.2" } }, "dom-serializer": { @@ -4681,8 +5367,8 @@ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "dev": true, "requires": { - "domelementtype": "1.1.3", - "entities": "1.1.1" + "domelementtype": "~1.1.1", + "entities": "~1.1.1" }, "dependencies": { "domelementtype": { @@ -4705,7 +5391,7 @@ "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "dev": true, "requires": { - "domelementtype": "1.3.0" + "domelementtype": "1" } }, "domutils": { @@ -4714,8 +5400,8 @@ "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "dev": true, "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" + "dom-serializer": "0", + "domelementtype": "1" } }, "dot-prop": { @@ -4724,7 +5410,7 @@ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", "dev": true, "requires": { - "is-obj": "1.0.1" + "is-obj": "^1.0.0" } }, "dtrace-provider": { @@ -4734,7 +5420,7 @@ "dev": true, "optional": true, "requires": { - "nan": "2.10.0" + "nan": "^2.10.0" } }, "duplexer3": { @@ -4748,10 +5434,10 @@ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" } }, "eastasianwidth": { @@ -4766,7 +5452,7 @@ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "ecdsa-sig-formatter": { @@ -4774,7 +5460,7 @@ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz", "integrity": "sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "ee-first": { @@ -4789,8 +5475,8 @@ "integrity": "sha512-tP2WqM7QzrPguCCQEQfFFDF+6Pw6YWLQal3+GHQaV+0uIr0S+jyREQPWljE02zFCYPFYLZ3LosiRV+OzTrxPpQ==", "dev": true, "requires": { - "core-js": "2.5.7", - "empower-core": "1.2.0" + "core-js": "^2.0.0", + "empower-core": "^1.2.0" }, "dependencies": { "empower-core": { @@ -4800,7 +5486,7 @@ "dev": true, "requires": { "call-signature": "0.0.2", - "core-js": "2.5.7" + "core-js": "^2.0.0" } } } @@ -4811,7 +5497,7 @@ "integrity": "sha512-Ylck0Q6p8y/LpNzYeBccaxAPm2ZyuqBgErgZpO9KT0HuQWF0sJckBKCLmgS1/DEXEiyBi9XtYh3clZm5cAdARw==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.2.0" } }, "empower-core": { @@ -4821,7 +5507,7 @@ "dev": true, "requires": { "call-signature": "0.0.2", - "core-js": "2.5.7" + "core-js": "^2.0.0" } }, "encodeurl": { @@ -4835,7 +5521,7 @@ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "requires": { - "once": "1.4.0" + "once": "^1.4.0" } }, "ent": { @@ -4861,7 +5547,7 @@ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "error-inject": { @@ -4876,11 +5562,11 @@ "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "dev": true, "requires": { - "es-to-primitive": "1.1.1", - "function-bind": "1.1.1", - "has": "1.0.3", - "is-callable": "1.1.4", - "is-regex": "1.0.4" + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" } }, "es-to-primitive": { @@ -4889,9 +5575,9 @@ "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", "dev": true, "requires": { - "is-callable": "1.1.4", - "is-date-object": "1.0.1", - "is-symbol": "1.0.1" + "is-callable": "^1.1.1", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.1" } }, "es5-ext": { @@ -4900,9 +5586,9 @@ "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", "dev": true, "requires": { - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1", - "next-tick": "1.0.0" + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "1" } }, "es6-error": { @@ -4917,9 +5603,9 @@ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" } }, "es6-map": { @@ -4928,12 +5614,12 @@ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45", - "es6-iterator": "2.0.3", - "es6-set": "0.1.5", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" } }, "es6-set": { @@ -4942,11 +5628,11 @@ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45", - "es6-iterator": "2.0.3", + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "event-emitter": "~0.3.5" } }, "es6-symbol": { @@ -4955,8 +5641,8 @@ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45" + "d": "1", + "es5-ext": "~0.10.14" } }, "es6-weak-map": { @@ -4965,10 +5651,10 @@ "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" } }, "escallmatch": { @@ -4977,8 +5663,8 @@ "integrity": "sha1-UAmdhugJGwkt+N37w/mm+wWgJNA=", "dev": true, "requires": { - "call-matcher": "1.0.1", - "esprima": "2.7.3" + "call-matcher": "^1.0.0", + "esprima": "^2.0.0" }, "dependencies": { "esprima": { @@ -5008,16 +5694,16 @@ "dev": true }, "escodegen": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.10.0.tgz", - "integrity": "sha512-fjUOf8johsv23WuIKdNQU4P9t9jhQ4Qzx6pC2uW890OloK3Zs1ZAoCNpg/2larNF501jLl3UNy0kIRcF6VI22g==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.0.tgz", + "integrity": "sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==", "dev": true, "requires": { - "esprima": "3.1.3", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.6.1" + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" }, "dependencies": { "esprima": { @@ -5041,10 +5727,10 @@ "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", "dev": true, "requires": { - "es6-map": "0.1.5", - "es6-weak-map": "2.0.2", - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint": { @@ -5053,45 +5739,45 @@ "integrity": "sha512-DyH6JsoA1KzA5+OSWFjg56DFJT+sDLO0yokaPZ9qY0UEmYrPA1gEX/G1MnVkmRDsksG4H1foIVz2ZXXM3hHYvw==", "dev": true, "requires": { - "ajv": "6.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.4.1", - "cross-spawn": "6.0.5", - "debug": "3.1.0", - "doctrine": "2.1.0", - "eslint-scope": "4.0.0", - "eslint-utils": "1.3.1", - "eslint-visitor-keys": "1.0.0", - "espree": "4.0.0", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.2", - "globals": "11.7.0", - "ignore": "3.3.10", - "imurmurhash": "0.1.4", - "inquirer": "5.2.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.12.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.5", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.0", - "regexpp": "1.1.0", - "require-uncached": "1.0.3", - "semver": "5.5.0", - "string.prototype.matchall": "2.0.0", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", - "table": "4.0.3", - "text-table": "0.2.0" + "ajv": "^6.5.0", + "babel-code-frame": "^6.26.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^4.0.0", + "eslint-utils": "^1.3.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^4.0.0", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.7.0", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^5.2.0", + "is-resolvable": "^1.1.0", + "js-yaml": "^3.11.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.5", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.1.0", + "require-uncached": "^1.0.3", + "semver": "^5.5.0", + "string.prototype.matchall": "^2.0.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "^2.0.1", + "table": "^4.0.3", + "text-table": "^0.2.0" }, "dependencies": { "ajv": { @@ -5100,10 +5786,10 @@ "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", "dev": true, "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.1" } }, "cross-spawn": { @@ -5112,11 +5798,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "1.0.4", - "path-key": "2.0.1", - "semver": "5.5.0", - "shebang-command": "1.2.0", - "which": "1.3.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "fast-deep-equal": { @@ -5145,7 +5831,7 @@ "integrity": "sha512-ag8YEyBXsm3nmOv1Hz991VtNNDMRa+MNy8cY47Pl4bw6iuzqKbJajXdqUpiw13STdLLrznxgm1hj9NhxeOYq0A==", "dev": true, "requires": { - "get-stdin": "5.0.1" + "get-stdin": "^5.0.1" }, "dependencies": { "get-stdin": { @@ -5162,10 +5848,10 @@ "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", "dev": true, "requires": { - "ignore": "3.3.10", - "minimatch": "3.0.4", - "resolve": "1.8.1", - "semver": "5.5.0" + "ignore": "^3.3.6", + "minimatch": "^3.0.4", + "resolve": "^1.3.3", + "semver": "^5.4.1" }, "dependencies": { "resolve": { @@ -5174,7 +5860,7 @@ "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } } } @@ -5185,8 +5871,8 @@ "integrity": "sha512-tGek5clmW5swrAx1mdPYM8oThrBE83ePh7LeseZHBWfHVGrHPhKn7Y5zgRMbU/9D5Td9K4CEmUPjGxA7iw98Og==", "dev": true, "requires": { - "fast-diff": "1.1.2", - "jest-docblock": "21.2.0" + "fast-diff": "^1.1.1", + "jest-docblock": "^21.0.0" } }, "eslint-scope": { @@ -5195,8 +5881,8 @@ "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", "dev": true, "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint-utils": { @@ -5217,16 +5903,16 @@ "integrity": "sha512-F4TY1qYJB1aUyzB03NsZksZzUQmQoEBaTUjRJGR30GxbkbjKI41NhCyYjrF+bGgWN7x/ZsczYppRpz/0WdI0ug==", "dev": true, "requires": { - "array-find": "1.0.0", - "escallmatch": "1.5.0", - "escodegen": "1.10.0", - "escope": "3.6.0", - "espower-location-detector": "1.0.0", - "espurify": "1.8.1", - "estraverse": "4.2.0", - "source-map": "0.5.7", - "type-name": "2.0.2", - "xtend": "4.0.1" + "array-find": "^1.0.0", + "escallmatch": "^1.5.0", + "escodegen": "^1.7.0", + "escope": "^3.3.0", + "espower-location-detector": "^1.0.0", + "espurify": "^1.3.0", + "estraverse": "^4.1.0", + "source-map": "^0.5.0", + "type-name": "^2.0.0", + "xtend": "^4.0.0" } }, "espower-loader": { @@ -5235,11 +5921,11 @@ "integrity": "sha1-7bRsPFmga6yOpzppXIblxaC8gto=", "dev": true, "requires": { - "convert-source-map": "1.5.1", - "espower-source": "2.3.0", - "minimatch": "3.0.4", - "source-map-support": "0.4.18", - "xtend": "4.0.1" + "convert-source-map": "^1.1.0", + "espower-source": "^2.0.0", + "minimatch": "^3.0.0", + "source-map-support": "^0.4.0", + "xtend": "^4.0.0" }, "dependencies": { "source-map-support": { @@ -5248,7 +5934,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } } } @@ -5259,10 +5945,10 @@ "integrity": "sha1-oXt+zFnTDheeK+9z+0E3cEyzMbU=", "dev": true, "requires": { - "is-url": "1.2.4", - "path-is-absolute": "1.0.1", - "source-map": "0.5.7", - "xtend": "4.0.1" + "is-url": "^1.2.1", + "path-is-absolute": "^1.0.0", + "source-map": "^0.5.0", + "xtend": "^4.0.0" } }, "espower-source": { @@ -5271,17 +5957,17 @@ "integrity": "sha512-Wc4kC4zUAEV7Qt31JRPoBUc5jjowHRylml2L2VaDQ1XEbnqQofGWx+gPR03TZAPokAMl5dqyL36h3ITyMXy3iA==", "dev": true, "requires": { - "acorn": "5.7.1", - "acorn-es7-plugin": "1.1.7", - "convert-source-map": "1.5.1", - "empower-assert": "1.1.0", - "escodegen": "1.10.0", - "espower": "2.1.1", - "estraverse": "4.2.0", - "merge-estraverse-visitors": "1.0.0", - "multi-stage-sourcemap": "0.2.1", - "path-is-absolute": "1.0.1", - "xtend": "4.0.1" + "acorn": "^5.0.0", + "acorn-es7-plugin": "^1.0.10", + "convert-source-map": "^1.1.1", + "empower-assert": "^1.0.0", + "escodegen": "^1.10.0", + "espower": "^2.1.1", + "estraverse": "^4.0.0", + "merge-estraverse-visitors": "^1.0.0", + "multi-stage-sourcemap": "^0.2.1", + "path-is-absolute": "^1.0.0", + "xtend": "^4.0.0" } }, "espree": { @@ -5290,14 +5976,14 @@ "integrity": "sha512-kapdTCt1bjmspxStVKX6huolXVV5ZfyZguY1lcfhVVZstce3bqxH9mcLzNn3/mlgW6wQ732+0fuG9v7h0ZQoKg==", "dev": true, "requires": { - "acorn": "5.7.1", - "acorn-jsx": "4.1.1" + "acorn": "^5.6.0", + "acorn-jsx": "^4.1.1" } }, "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, "espurify": { @@ -5306,7 +5992,7 @@ "integrity": "sha512-ZDko6eY/o+D/gHCWyHTU85mKDgYcS4FJj7S+YD6WIInm7GQ6AnOjmcL4+buFV/JOztVLELi/7MmuGU5NHta0Mg==", "dev": true, "requires": { - "core-js": "2.5.7" + "core-js": "^2.0.0" } }, "esquery": { @@ -5315,7 +6001,7 @@ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "esrecurse": { @@ -5324,7 +6010,7 @@ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.1.0" } }, "estraverse": { @@ -5351,8 +6037,8 @@ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45" + "d": "1", + "es5-ext": "~0.10.14" } }, "ewma": { @@ -5361,7 +6047,7 @@ "integrity": "sha512-MYYK17A76cuuyvkR7MnqLW4iFYPEi5Isl2qb8rXiWpLiwFS9dxW/rncuNnjjgSENuVqZQkIuR4+DChVL4g1lnw==", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "execa": { @@ -5370,13 +6056,13 @@ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } }, "expand-brackets": { @@ -5385,7 +6071,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -5394,7 +6080,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "2.2.4" + "fill-range": "^2.1.0" } }, "express": { @@ -5403,36 +6089,36 @@ "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", "dev": true, "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.5", "array-flatten": "1.1.1", "body-parser": "1.18.2", "content-disposition": "0.5.2", - "content-type": "1.0.4", + "content-type": "~1.0.4", "cookie": "0.3.1", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "1.1.2", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "finalhandler": "1.1.1", "fresh": "0.5.2", "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.3", + "proxy-addr": "~2.0.3", "qs": "6.5.1", - "range-parser": "1.2.0", + "range-parser": "~1.2.0", "safe-buffer": "5.1.1", "send": "0.16.2", "serve-static": "1.13.2", "setprototypeof": "1.1.0", - "statuses": "1.4.0", - "type-is": "1.6.16", + "statuses": "~1.4.0", + "type-is": "~1.6.16", "utils-merge": "1.0.1", - "vary": "1.1.2" + "vary": "~1.1.2" }, "dependencies": { "body-parser": { @@ -5442,15 +6128,15 @@ "dev": true, "requires": { "bytes": "3.0.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.3", + "depd": "~1.1.1", + "http-errors": "~1.6.2", "iconv-lite": "0.4.19", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.5.1", "raw-body": "2.3.2", - "type-is": "1.6.16" + "type-is": "~1.6.15" } }, "debug": { @@ -5507,7 +6193,7 @@ "depd": "1.1.1", "inherits": "2.0.3", "setprototypeof": "1.0.3", - "statuses": "1.4.0" + "statuses": ">= 1.3.1 < 2" } }, "setprototypeof": { @@ -5549,8 +6235,8 @@ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -5559,7 +6245,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -5570,9 +6256,9 @@ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.23", - "tmp": "0.0.33" + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" } }, "extglob": { @@ -5581,7 +6267,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "extsprintf": { @@ -5612,12 +6298,12 @@ "integrity": "sha512-TR6zxCKftDQnUAPvkrCWdBgDq/gbqx8A3ApnBrR5rMvpp6+KMJI0Igw7fkWPgeVK0uhRXTXdvO3O+YP0CaUX2g==", "dev": true, "requires": { - "@mrmlnc/readdir-enhanced": "2.2.1", - "@nodelib/fs.stat": "1.1.0", - "glob-parent": "3.1.0", - "is-glob": "4.0.0", - "merge2": "1.2.2", - "micromatch": "3.1.10" + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.0.1", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.1", + "micromatch": "^3.1.10" }, "dependencies": { "arr-diff": { @@ -5638,16 +6324,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "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.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "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.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -5656,7 +6342,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5676,13 +6362,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "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" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -5691,7 +6377,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -5700,7 +6386,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -5709,7 +6395,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5718,7 +6404,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5729,7 +6415,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5738,7 +6424,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5749,9 +6435,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -5768,14 +6454,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "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" + "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.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -5784,7 +6470,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -5793,7 +6479,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5804,10 +6490,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -5816,7 +6502,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5827,8 +6513,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { @@ -5837,7 +6523,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -5848,7 +6534,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -5857,7 +6543,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -5866,9 +6552,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-extglob": { @@ -5883,7 +6569,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "is-number": { @@ -5892,7 +6578,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5901,7 +6587,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5924,19 +6610,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "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.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } @@ -5958,7 +6644,7 @@ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -5967,8 +6653,8 @@ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "dev": true, "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" } }, "filename-regex": { @@ -5983,8 +6669,8 @@ "integrity": "sha1-mo+jb06K1jTjv2tPPIiCVRRS6yA=", "dev": true, "requires": { - "is-object": "1.0.1", - "merge-descriptors": "1.0.1" + "is-object": "~1.0.1", + "merge-descriptors": "~1.0.0" } }, "fill-range": { @@ -5993,11 +6679,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "dev": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.0.0", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" } }, "finalhandler": { @@ -6007,12 +6693,12 @@ "dev": true, "requires": { "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.4.0", - "unpipe": "1.0.0" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" }, "dependencies": { "debug": { @@ -6038,9 +6724,9 @@ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", "dev": true, "requires": { - "commondir": "1.0.1", - "make-dir": "1.3.0", - "pkg-dir": "2.0.0" + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" } }, "find-my-way": { @@ -6049,9 +6735,9 @@ "integrity": "sha512-cwR1IxkB1JIIGxWpX3TQC1U/51htT4dps536rno7fkszeSSevvZGkl1dpIANRNq+X6/VDSF/S4JAuDPSTepHBA==", "dev": true, "requires": { - "fast-decode-uri-component": "1.0.0", - "safe-regex": "1.1.0", - "semver-store": "0.3.0" + "fast-decode-uri-component": "^1.0.0", + "safe-regex": "^1.1.0", + "semver-store": "^0.3.0" } }, "find-up": { @@ -6060,7 +6746,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "flat-cache": { @@ -6069,10 +6755,10 @@ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "dev": true, "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" } }, "fn-name": { @@ -6086,7 +6772,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.1.tgz", "integrity": "sha512-v9GI1hpaqq1ZZR6pBD1+kI7O24PhDvNGNodjS3MdcEqyrahCp8zbtpv+2B/krUnSmUH80lbAS7MrdeK5IylgKg==", "requires": { - "debug": "3.1.0" + "debug": "^3.1.0" } }, "for-in": { @@ -6101,7 +6787,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "foreach": { @@ -6120,9 +6806,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "requires": { - "asynckit": "0.4.0", + "asynckit": "^0.4.0", "combined-stream": "1.0.6", - "mime-types": "2.1.18" + "mime-types": "^2.1.12" } }, "formidable": { @@ -6143,7 +6829,7 @@ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fresh": { @@ -6158,8 +6844,8 @@ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" } }, "fs-extra": { @@ -6168,9 +6854,9 @@ "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "4.0.0", - "universalify": "0.1.2" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, "fs.realpath": { @@ -6186,8 +6872,8 @@ "dev": true, "optional": true, "requires": { - "nan": "2.10.0", - "node-pre-gyp": "0.10.0" + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { "abbrev": { @@ -6213,23 +6899,21 @@ "dev": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, - "optional": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -6242,20 +6926,17 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -6296,7 +6977,7 @@ "dev": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "fs.realpath": { @@ -6311,14 +6992,14 @@ "dev": true, "optional": true, "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" } }, "glob": { @@ -6327,12 +7008,12 @@ "dev": true, "optional": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "has-unicode": { @@ -6347,7 +7028,7 @@ "dev": true, "optional": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "^2.1.0" } }, "ignore-walk": { @@ -6356,7 +7037,7 @@ "dev": true, "optional": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "inflight": { @@ -6365,15 +7046,14 @@ "dev": true, "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { "version": "2.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -6385,9 +7065,8 @@ "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "isarray": { @@ -6400,25 +7079,22 @@ "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.2.4", "bundled": true, "dev": true, - "optional": true, "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" } }, "minizlib": { @@ -6427,14 +7103,13 @@ "dev": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "mkdirp": { "version": "0.5.1", "bundled": true, "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -6451,9 +7126,9 @@ "dev": true, "optional": true, "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, "node-pre-gyp": { @@ -6462,16 +7137,16 @@ "dev": true, "optional": true, "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" } }, "nopt": { @@ -6480,8 +7155,8 @@ "dev": true, "optional": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npm-bundled": { @@ -6496,8 +7171,8 @@ "dev": true, "optional": true, "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npmlog": { @@ -6506,17 +7181,16 @@ "dev": true, "optional": true, "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -6528,9 +7202,8 @@ "version": "1.4.0", "bundled": true, "dev": true, - "optional": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -6551,8 +7224,8 @@ "dev": true, "optional": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { @@ -6573,10 +7246,10 @@ "dev": true, "optional": true, "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -6593,13 +7266,13 @@ "dev": true, "optional": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "rimraf": { @@ -6608,7 +7281,7 @@ "dev": true, "optional": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { @@ -6650,11 +7323,10 @@ "version": "1.0.2", "bundled": true, "dev": true, - "optional": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { @@ -6663,7 +7335,7 @@ "dev": true, "optional": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -6671,7 +7343,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -6686,13 +7358,13 @@ "dev": true, "optional": true, "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" } }, "util-deprecate": { @@ -6707,7 +7379,7 @@ "dev": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { @@ -6745,15 +7417,15 @@ "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.6.3.tgz", "integrity": "sha512-MSmczZctbz91AxCvqp9GHBoZOSbJKAICV7Ow/AIWSJZRrRchUd5NL1b2P4OfP+4m490BEUPhhARfpHdqCxuCvg==", "requires": { - "axios": "0.18.0", - "extend": "3.0.1", + "axios": "^0.18.0", + "extend": "^3.0.1", "retry-axios": "0.3.2" } }, "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", "dev": true }, "get-func-name": { @@ -6791,7 +7463,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "glob": { @@ -6800,12 +7472,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-base": { @@ -6814,8 +7486,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -6824,7 +7496,7 @@ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "glob-to-regexp": { @@ -6839,7 +7511,7 @@ "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "dev": true, "requires": { - "ini": "1.3.5" + "ini": "^1.3.4" } }, "globals": { @@ -6854,11 +7526,11 @@ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "dev": true, "requires": { - "array-union": "1.0.2", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "pify": { @@ -6879,7 +7551,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } } } @@ -6889,13 +7561,13 @@ "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-1.6.1.tgz", "integrity": "sha512-jYiWC8NA9n9OtQM7ANn0Tk464do9yhKEtaJ72pKcaBiEwn4LwcGYIYOfwtfsSm3aur/ed3tlSxbmg24IAT6gAg==", "requires": { - "axios": "0.18.0", - "gcp-metadata": "0.6.3", - "gtoken": "2.3.0", - "jws": "3.1.5", - "lodash.isstring": "4.0.1", - "lru-cache": "4.1.3", - "retry-axios": "0.3.2" + "axios": "^0.18.0", + "gcp-metadata": "^0.6.3", + "gtoken": "^2.3.0", + "jws": "^3.1.5", + "lodash.isstring": "^4.0.1", + "lru-cache": "^4.1.3", + "retry-axios": "^0.3.2" } }, "google-p12-pem": { @@ -6903,33 +7575,33 @@ "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-1.0.2.tgz", "integrity": "sha512-+EuKr4CLlGsnXx4XIJIVkcKYrsa2xkAmCvxRhX2HsazJzUBAJ35wARGeApHUn4nNfPD03Vl057FskNr20VaCyg==", "requires": { - "node-forge": "0.7.5", - "pify": "3.0.0" + "node-forge": "^0.7.4", + "pify": "^3.0.0" } }, "got": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/got/-/got-8.2.0.tgz", - "integrity": "sha512-giadqJpXIwjY+ZsuWys8p2yjZGhOHiU4hiJHjS/oeCxw1u8vANQz3zPlrxW2Zw/siCXsSMI3hvzWGcnFyujyAg==", - "dev": true, - "requires": { - "@sindresorhus/is": "0.7.0", - "cacheable-request": "2.1.4", - "decompress-response": "3.3.0", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "into-stream": "3.1.0", - "is-retry-allowed": "1.1.0", - "isurl": "1.0.0", - "lowercase-keys": "1.0.1", - "mimic-response": "1.0.0", - "p-cancelable": "0.3.0", - "p-timeout": "2.0.1", - "pify": "3.0.0", - "safe-buffer": "5.1.2", - "timed-out": "4.0.1", - "url-parse-lax": "3.0.0", - "url-to-options": "1.0.1" + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/got/-/got-8.3.0.tgz", + "integrity": "sha512-kBNy/S2CGwrYgDSec5KTWGKUvupwkkTVAjIsVFF2shXO13xpZdFP4d4kxa//CLX2tN/rV0aYwK8vY6UKWGn2vQ==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.4.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" }, "dependencies": { "prepend-http": { @@ -6944,7 +7616,7 @@ "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "dev": true, "requires": { - "prepend-http": "2.0.0" + "prepend-http": "^2.0.0" } } } @@ -6966,11 +7638,11 @@ "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-2.3.0.tgz", "integrity": "sha512-Jc9/8mV630cZE9FC5tIlJCZNdUjwunvlwOtCz6IDlaiB4Sz68ki29a1+q97sWTnTYroiuF9B135rod9zrQdHLw==", "requires": { - "axios": "0.18.0", - "google-p12-pem": "1.0.2", - "jws": "3.1.5", - "mime": "2.3.1", - "pify": "3.0.0" + "axios": "^0.18.0", + "google-p12-pem": "^1.0.0", + "jws": "^3.1.4", + "mime": "^2.2.0", + "pify": "^3.0.0" } }, "gts": { @@ -7131,9 +7803,9 @@ } }, "rxjs": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.1.tgz", - "integrity": "sha512-OwMxHxmnmHTUpgO+V7dZChf3Tixf4ih95cmXjzzadULziVl/FKhHScGLj4goEw9weePVOH2Q0+GcCBUhKCZc/g==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.2.tgz", + "integrity": "sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==", "dev": true, "requires": { "tslib": "^1.9.0" @@ -7150,15 +7822,6 @@ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", "dev": true - }, - "yargs-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", - "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", - "dev": true, - "requires": { - "camelcase": "^4.1.0" - } } } }, @@ -7174,10 +7837,10 @@ "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" }, "dependencies": { "source-map": { @@ -7186,7 +7849,7 @@ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -7197,23 +7860,23 @@ "integrity": "sha512-UxMKYzrjfXlcztJQPEB3os5rM3SKgSQVxoOym4KI3JdP4pxl5WUdZYF8it4Kga2OMTGwB+ZTy+DU9b/oDaQHRQ==", "dev": true, "requires": { - "accept": "3.0.2", - "ammo": "3.0.1", - "boom": "7.2.0", - "bounce": "1.2.0", - "call": "5.0.1", - "catbox": "10.0.2", - "catbox-memory": "3.1.2", - "heavy": "6.1.0", - "hoek": "5.0.3", - "joi": "13.4.0", - "mimos": "4.0.0", - "podium": "3.1.2", - "shot": "4.0.5", - "statehood": "6.0.6", - "subtext": "6.0.7", - "teamwork": "3.0.1", - "topo": "3.0.0" + "accept": "3.x.x", + "ammo": "3.x.x", + "boom": "7.x.x", + "bounce": "1.x.x", + "call": "5.x.x", + "catbox": "10.x.x", + "catbox-memory": "3.x.x", + "heavy": "6.x.x", + "hoek": "5.x.x", + "joi": "13.x.x", + "mimos": "4.x.x", + "podium": "3.x.x", + "shot": "4.x.x", + "statehood": "6.x.x", + "subtext": "6.x.x", + "teamwork": "3.x.x", + "topo": "3.x.x" } }, "har-schema": { @@ -7226,8 +7889,8 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" + "ajv": "^5.1.0", + "har-schema": "^2.0.0" } }, "has": { @@ -7236,7 +7899,7 @@ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.1.1" } }, "has-ansi": { @@ -7245,7 +7908,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-color": { @@ -7278,7 +7941,7 @@ "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", "dev": true, "requires": { - "has-symbol-support-x": "1.4.2" + "has-symbol-support-x": "^1.4.1" } }, "has-value": { @@ -7287,9 +7950,9 @@ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -7306,8 +7969,8 @@ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { @@ -7316,7 +7979,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -7325,7 +7988,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7336,7 +7999,7 @@ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7359,9 +8022,9 @@ "integrity": "sha512-TKS9DC9NOTGulHQI31Lx+bmeWmNOstbJbGMiN3pX6bF+Zc2GKSpbbym4oasNnB6yPGkqJ9TQXXYDGohqNSJRxA==", "dev": true, "requires": { - "boom": "7.2.0", - "hoek": "5.0.3", - "joi": "13.4.0" + "boom": "7.x.x", + "hoek": "5.x.x", + "joi": "13.x.x" } }, "hoek": { @@ -7376,8 +8039,8 @@ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" } }, "hosted-git-info": { @@ -7392,10 +8055,10 @@ "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "dev": true, "requires": { - "inherits": "2.0.3", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "wbuf": "1.7.3" + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" } }, "htmlparser2": { @@ -7404,12 +8067,12 @@ "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", "dev": true, "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.4.2", - "domutils": "1.7.0", - "entities": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "domelementtype": "^1.3.0", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" } }, "http-assert": { @@ -7418,8 +8081,8 @@ "integrity": "sha1-oxpc+IyHPsu1eWkH1NbxMujAHko=", "dev": true, "requires": { - "deep-equal": "1.0.1", - "http-errors": "1.6.3" + "deep-equal": "~1.0.1", + "http-errors": "~1.6.1" } }, "http-cache-semantics": { @@ -7440,10 +8103,10 @@ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, "requires": { - "depd": "1.1.2", + "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", - "statuses": "1.5.0" + "statuses": ">= 1.4.0 < 2" } }, "http-signature": { @@ -7451,9 +8114,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.14.2" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "hullabaloo-config-manager": { @@ -7462,20 +8125,20 @@ "integrity": "sha512-ztKnkZV0TmxnumCDHHgLGNiDnotu4EHCp9YMkznWuo4uTtCyJ+cu+RNcxUeXYKTllpvLFWnbfWry09yzszgg+A==", "dev": true, "requires": { - "dot-prop": "4.2.0", - "es6-error": "4.1.1", - "graceful-fs": "4.1.11", - "indent-string": "3.2.0", - "json5": "0.5.1", - "lodash.clonedeep": "4.5.0", - "lodash.clonedeepwith": "4.5.0", - "lodash.isequal": "4.5.0", - "lodash.merge": "4.6.1", - "md5-hex": "2.0.0", - "package-hash": "2.0.0", - "pkg-dir": "2.0.0", - "resolve-from": "3.0.0", - "safe-buffer": "5.1.2" + "dot-prop": "^4.1.0", + "es6-error": "^4.0.2", + "graceful-fs": "^4.1.11", + "indent-string": "^3.1.0", + "json5": "^0.5.1", + "lodash.clonedeep": "^4.5.0", + "lodash.clonedeepwith": "^4.5.0", + "lodash.isequal": "^4.5.0", + "lodash.merge": "^4.6.0", + "md5-hex": "^2.0.0", + "package-hash": "^2.0.0", + "pkg-dir": "^2.0.0", + "resolve-from": "^3.0.0", + "safe-buffer": "^5.0.1" } }, "iconv-lite": { @@ -7484,7 +8147,7 @@ "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "dev": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ignore": { @@ -7505,7 +8168,7 @@ "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "dev": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "import-lazy": { @@ -7520,8 +8183,8 @@ "integrity": "sha1-sReVcqrNwRxqkQCftDDbyrX2aKg=", "dev": true, "requires": { - "pkg-dir": "2.0.0", - "resolve-cwd": "2.0.0" + "pkg-dir": "^2.0.0", + "resolve-cwd": "^2.0.0" } }, "imurmurhash": { @@ -7548,8 +8211,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -7569,8 +8232,8 @@ "integrity": "sha512-STx5orGQU1gfrkoI/fMU7lX6CSP7LBGO10gXNgOZhwKhUqbtNjCkYSewJtNnLmWP1tAGN6oyEpG1HFPw5vpa5Q==", "dev": true, "requires": { - "moment": "2.22.2", - "sanitize-html": "1.18.2" + "moment": "^2.14.1", + "sanitize-html": "^1.13.0" } }, "inquirer": { @@ -7579,19 +8242,19 @@ "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==", "dev": true, "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.5", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.1.0", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rxjs": "5.5.11", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rxjs": "^5.5.2", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" } }, "intelli-espower-loader": { @@ -7600,7 +8263,7 @@ "integrity": "sha1-LHsDFGvB1GvyENCgOXxckatMorA=", "dev": true, "requires": { - "espower-loader": "1.2.2" + "espower-loader": "^1.0.0" } }, "into-stream": { @@ -7609,8 +8272,8 @@ "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", "dev": true, "requires": { - "from2": "2.3.0", - "p-is-promise": "1.1.0" + "from2": "^2.1.1", + "p-is-promise": "^1.1.0" } }, "invariant": { @@ -7619,7 +8282,7 @@ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -7640,9 +8303,9 @@ "integrity": "sha512-7iQ5/xFMIYaNt9g2oiNiWdhrOTdRUMFaWENUd0KghxwPUhrIH8DUY8FEyLNTTzf75jaII+jMexLdY/2HfV61RQ==", "dev": true, "requires": { - "boom": "7.2.0", - "cryptiles": "4.1.2", - "hoek": "5.0.3" + "boom": "7.x.x", + "cryptiles": "4.x.x", + "hoek": "5.x.x" } }, "irregular-plurals": { @@ -7662,7 +8325,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { @@ -7677,7 +8340,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "binary-extensions": "1.11.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -7691,7 +8354,7 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-callable": { @@ -7706,7 +8369,7 @@ "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", "dev": true, "requires": { - "ci-info": "1.1.3" + "ci-info": "^1.0.0" } }, "is-data-descriptor": { @@ -7715,7 +8378,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-date-object": { @@ -7730,9 +8393,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { @@ -7755,7 +8418,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-error": { @@ -7782,7 +8445,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -7809,7 +8472,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-installed-globally": { @@ -7818,8 +8481,8 @@ "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "dev": true, "requires": { - "global-dirs": "0.1.1", - "is-path-inside": "1.0.1" + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" } }, "is-npm": { @@ -7834,7 +8497,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-obj": { @@ -7855,7 +8518,7 @@ "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", "dev": true, "requires": { - "symbol-observable": "1.2.0" + "symbol-observable": "^1.1.0" } }, "is-path-cwd": { @@ -7870,7 +8533,7 @@ "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, "requires": { - "is-path-inside": "1.0.1" + "is-path-inside": "^1.0.0" } }, "is-path-inside": { @@ -7879,7 +8542,7 @@ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" } }, "is-plain-obj": { @@ -7894,7 +8557,7 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -7935,7 +8598,7 @@ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "requires": { - "has": "1.0.3" + "has": "^1.0.1" } }, "is-resolvable": { @@ -7996,12 +8659,12 @@ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isemail": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.1.2.tgz", - "integrity": "sha512-zfRhJn9rFSGhzU5tGZqepRSAj3+g6oTOHxMGGriWNJZzyLPUK8H7VHpqKntegnW8KLyGA9zwuNaCoopl40LTpg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.1.3.tgz", + "integrity": "sha512-5xbsG5wYADIcB+mfLsd+nst1V/D+I7EU7LEZPo2GOIMu4JzfcRs5yQoypP4avA7QtUqgxYLKBYNv4IdzBmbhdw==", "dev": true, "requires": { - "punycode": "2.1.1" + "punycode": "2.x.x" }, "dependencies": { "punycode": { @@ -8049,8 +8712,8 @@ "@babel/template": "7.0.0-beta.51", "@babel/traverse": "7.0.0-beta.51", "@babel/types": "7.0.0-beta.51", - "istanbul-lib-coverage": "2.0.1", - "semver": "5.5.0" + "istanbul-lib-coverage": "^2.0.1", + "semver": "^5.5.0" } }, "isurl": { @@ -8059,8 +8722,8 @@ "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", "dev": true, "requires": { - "has-to-string-tag-x": "1.4.1", - "is-object": "1.0.1" + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" } }, "jest-docblock": { @@ -8075,9 +8738,9 @@ "integrity": "sha512-JuK4GjEu6j7zr9FuVe2MAseZ6si/8/HaY0qMAejfDFHp7jcH4OKE937mIHM5VT4xDS0q7lpQbszbxKV9rm0yUg==", "dev": true, "requires": { - "hoek": "5.0.3", - "isemail": "3.1.2", - "topo": "3.0.0" + "hoek": "5.x.x", + "isemail": "3.x.x", + "topo": "3.x.x" } }, "js-green-licenses": { @@ -8086,14 +8749,14 @@ "integrity": "sha512-HM/SKwAl1R0y9kkBili6GqKc31ZnjzY7JHC2uO9bAHJNRmY5c/s+2cETyaqX0kBD8gX8QVhS4dJjRtY1nAwb4w==", "dev": true, "requires": { - "argparse": "1.0.10", - "axios": "0.18.0", - "npm-package-arg": "6.1.0", - "package-json": "4.0.1", - "pify": "3.0.0", - "spdx-correct": "3.0.0", - "spdx-satisfies": "4.0.0", - "strip-json-comments": "2.0.1" + "argparse": "^1.0.9", + "axios": "^0.18.0", + "npm-package-arg": "^6.0.0", + "package-json": "^4.0.1", + "pify": "^3.0.0", + "spdx-correct": "^3.0.0", + "spdx-satisfies": "^4.0.0", + "strip-json-comments": "^2.0.1" } }, "js-string-escape": { @@ -8114,8 +8777,8 @@ "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "dev": true, "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "js2xmlparser": { @@ -8124,7 +8787,7 @@ "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", "dev": true, "requires": { - "xmlcreate": "1.0.2" + "xmlcreate": "^1.0.1" } }, "jsbn": { @@ -8140,17 +8803,17 @@ "dev": true, "requires": { "babylon": "7.0.0-beta.19", - "bluebird": "3.5.1", - "catharsis": "0.8.9", - "escape-string-regexp": "1.0.5", - "js2xmlparser": "3.0.0", - "klaw": "2.0.0", - "marked": "0.3.19", - "mkdirp": "0.5.1", - "requizzle": "0.2.1", - "strip-json-comments": "2.0.1", + "bluebird": "~3.5.0", + "catharsis": "~0.8.9", + "escape-string-regexp": "~1.0.5", + "js2xmlparser": "~3.0.0", + "klaw": "~2.0.0", + "marked": "~0.3.6", + "mkdirp": "~0.5.1", + "requizzle": "~0.2.1", + "strip-json-comments": "~2.0.1", "taffydb": "2.6.2", - "underscore": "1.8.3" + "underscore": "~1.8.3" }, "dependencies": { "babylon": { @@ -8212,7 +8875,7 @@ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } }, "jsprim": { @@ -8239,7 +8902,7 @@ "requires": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.10", - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "jws": { @@ -8247,8 +8910,8 @@ "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz", "integrity": "sha512-GsCSexFADNQUr8T5HPJvayTjvPIfoyJPtLQBwn5a4WZQchcrPMPMAWcC1AzJVRDKyD6ZPROPAxgv6rfHViO4uQ==", "requires": { - "jwa": "1.1.6", - "safe-buffer": "5.1.2" + "jwa": "^1.1.5", + "safe-buffer": "^5.0.1" } }, "keygrip": { @@ -8272,7 +8935,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "klaw": { @@ -8281,39 +8944,39 @@ "integrity": "sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.9" } }, "koa": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/koa/-/koa-2.5.1.tgz", - "integrity": "sha512-cchwbMeG2dv3E2xTAmheDAuvR53tPgJZN/Hf1h7bTzJLSPcFZp8/t5+bNKJ6GaQZoydhZQ+1GNruhKdj3lIrug==", - "dev": true, - "requires": { - "accepts": "1.3.5", - "content-disposition": "0.5.2", - "content-type": "1.0.4", - "cookies": "0.7.1", - "debug": "3.1.0", - "delegates": "1.0.0", - "depd": "1.1.2", - "destroy": "1.0.4", - "error-inject": "1.0.0", - "escape-html": "1.0.3", - "fresh": "0.5.2", - "http-assert": "1.3.0", - "http-errors": "1.6.3", - "is-generator-function": "1.0.7", - "koa-compose": "4.1.0", - "koa-convert": "1.2.0", - "koa-is-json": "1.0.0", - "mime-types": "2.1.18", - "on-finished": "2.3.0", - "only": "0.0.2", - "parseurl": "1.3.2", - "statuses": "1.5.0", - "type-is": "1.6.16", - "vary": "1.1.2" + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/koa/-/koa-2.5.2.tgz", + "integrity": "sha512-MoVGWre9g3p35pCqXNhOT/a4trwK5CGvalIoPi7qOA2RCZaep3GCsa/G/tD9QMjQI7bmVWn3XF3SOau8RkPh6w==", + "dev": true, + "requires": { + "accepts": "^1.3.5", + "cache-content-type": "^1.0.0", + "content-disposition": "~0.5.2", + "content-type": "^1.0.4", + "cookies": "~0.7.1", + "debug": "^3.1.0", + "delegates": "^1.0.0", + "depd": "^1.1.2", + "destroy": "^1.0.4", + "error-inject": "^1.0.0", + "escape-html": "^1.0.3", + "fresh": "~0.5.2", + "http-assert": "^1.3.0", + "http-errors": "^1.6.3", + "is-generator-function": "^1.0.7", + "koa-compose": "^4.1.0", + "koa-convert": "^1.2.0", + "koa-is-json": "^1.0.0", + "on-finished": "^2.3.0", + "only": "~0.0.2", + "parseurl": "^1.3.2", + "statuses": "^1.5.0", + "type-is": "^1.6.16", + "vary": "^1.1.2" } }, "koa-compose": { @@ -8328,8 +8991,8 @@ "integrity": "sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA=", "dev": true, "requires": { - "co": "4.6.0", - "koa-compose": "3.2.1" + "co": "^4.6.0", + "koa-compose": "^3.0.0" }, "dependencies": { "koa-compose": { @@ -8338,7 +9001,7 @@ "integrity": "sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec=", "dev": true, "requires": { - "any-promise": "1.3.0" + "any-promise": "^1.1.0" } } } @@ -8355,7 +9018,7 @@ "integrity": "sha1-0bZNafhv8kry0EiDos7uFFIKVgA=", "dev": true, "requires": { - "through2": "2.0.3" + "through2": "^2.0.0" } }, "latest-version": { @@ -8364,7 +9027,7 @@ "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", "dev": true, "requires": { - "package-json": "4.0.1" + "package-json": "^4.0.0" } }, "lazy-cache": { @@ -8380,7 +9043,7 @@ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "levn": { @@ -8389,8 +9052,8 @@ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "load-json-file": { @@ -8399,10 +9062,10 @@ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" }, "dependencies": { "pify": { @@ -8419,8 +9082,8 @@ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -8563,8 +9226,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true, - "optional": true + "dev": true }, "loose-envify": { "version": "1.4.0", @@ -8572,7 +9234,7 @@ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0 || ^4.0.0" } }, "loud-rejection": { @@ -8581,8 +9243,8 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, "lowercase-keys": { @@ -8596,8 +9258,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "make-dir": { @@ -8606,7 +9268,7 @@ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "map-cache": { @@ -8627,7 +9289,7 @@ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "marked": { @@ -8642,7 +9304,7 @@ "integrity": "sha512-+BmqxWIubKTRKNWx/ahnCkk3mG8m7OturVlqq6HiojGJTd5hVYbgZm6WzcYPCoB+KBT4Vd6R7WSRG2OADNaCjg==", "dev": true, "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.4" } }, "math-random": { @@ -8657,7 +9319,7 @@ "integrity": "sha1-0FiOnxx0lUSS7NJKwKxs6ZfZLjM=", "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { @@ -8678,7 +9340,7 @@ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "meow": { @@ -8687,16 +9349,16 @@ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" }, "dependencies": { "find-up": { @@ -8705,8 +9367,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "load-json-file": { @@ -8715,11 +9377,11 @@ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" } }, "minimist": { @@ -8734,7 +9396,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-type": { @@ -8743,9 +9405,9 @@ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -8766,7 +9428,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "read-pkg": { @@ -8775,9 +9437,9 @@ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -8786,8 +9448,8 @@ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" } }, "strip-bom": { @@ -8796,7 +9458,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } } } @@ -8813,7 +9475,7 @@ "integrity": "sha1-65aDOLXe1c7tgs7AMH3sui2OqZQ=", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "merge2": { @@ -8834,19 +9496,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" } }, "mime": { @@ -8864,7 +9526,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", "requires": { - "mime-db": "1.33.0" + "mime-db": "~1.33.0" } }, "mimic-fn": { @@ -8874,9 +9536,9 @@ "dev": true }, "mimic-response": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.0.tgz", - "integrity": "sha1-3z02Uqc/3ta5sLJBRub9BSNTRY4=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", "dev": true }, "mimos": { @@ -8885,8 +9547,8 @@ "integrity": "sha512-JvlvRLqGIlk+AYypWrbrDmhsM+6JVx/xBM5S3AMwTBz1trPCEoPN/swO2L4Wu653fL7oJdgk8DMQyG/Gq3JkZg==", "dev": true, "requires": { - "hoek": "5.0.3", - "mime-db": "1.33.0" + "hoek": "5.x.x", + "mime-db": "1.x.x" } }, "minimalistic-assert": { @@ -8901,7 +9563,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -8916,8 +9578,8 @@ "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", "dev": true, "requires": { - "arrify": "1.0.1", - "is-plain-obj": "1.1.0" + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0" } }, "mixin-deep": { @@ -8926,8 +9588,8 @@ "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "dev": true, "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -8936,7 +9598,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -9000,7 +9662,7 @@ "integrity": "sha1-sJ/IWG6qF/gdV1xK0C4Pej9rEQU=", "dev": true, "requires": { - "source-map": "0.1.43" + "source-map": "^0.1.34" }, "dependencies": { "source-map": { @@ -9009,7 +9671,7 @@ "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -9020,10 +9682,10 @@ "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", "dev": true, "requires": { - "array-differ": "1.0.0", - "array-union": "1.0.2", - "arrify": "1.0.1", - "minimatch": "3.0.4" + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "minimatch": "^3.0.0" } }, "mute-stream": { @@ -9039,9 +9701,9 @@ "dev": true, "optional": true, "requires": { - "mkdirp": "0.5.1", - "ncp": "2.0.0", - "rimraf": "2.4.5" + "mkdirp": "~0.5.1", + "ncp": "~2.0.0", + "rimraf": "~2.4.0" }, "dependencies": { "glob": { @@ -9051,11 +9713,11 @@ "dev": true, "optional": true, "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "rimraf": { @@ -9065,7 +9727,7 @@ "dev": true, "optional": true, "requires": { - "glob": "6.0.4" + "glob": "^6.0.1" } } } @@ -9083,17 +9745,17 @@ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, "requires": { - "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.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "arr-diff": { @@ -9158,8 +9820,8 @@ "integrity": "sha512-kCVtUG9JyD//tsYrZY+/Y+2gUrANVSba8y23QkM5Znx0FOxlnl9Z4OVPBODmstKWTOvigfTO+Va1VPOu3eWSOQ==", "dev": true, "requires": { - "hoek": "5.0.3", - "vise": "3.0.0" + "hoek": "5.x.x", + "vise": "3.x.x" } }, "nise": { @@ -9168,11 +9830,11 @@ "integrity": "sha512-BxH/DxoQYYdhKgVAfqVy4pzXRZELHOIewzoesxpjYvpU+7YOalQhGNPf7wAx8pLrTNPrHRDlLOkAl8UI0ZpXjw==", "dev": true, "requires": { - "@sinonjs/formatio": "2.0.0", - "just-extend": "1.1.27", - "lolex": "2.7.1", - "path-to-regexp": "1.7.0", - "text-encoding": "0.6.4" + "@sinonjs/formatio": "^2.0.0", + "just-extend": "^1.1.27", + "lolex": "^2.3.2", + "path-to-regexp": "^1.7.0", + "text-encoding": "^0.6.4" } }, "nock": { @@ -9181,15 +9843,15 @@ "integrity": "sha512-WFRlGfJJ17uyXKAIFKXqoq5o49W7aYjfH3Zges133kYGwL6PuSjthP50osQJJNMQoz0f0SodmREjzo8eLh/Bxw==", "dev": true, "requires": { - "chai": "4.1.2", - "debug": "3.1.0", - "deep-equal": "1.0.1", - "json-stringify-safe": "5.0.1", - "lodash": "4.17.5", - "mkdirp": "0.5.1", - "propagate": "1.0.0", - "qs": "6.5.2", - "semver": "5.5.0" + "chai": "^4.1.2", + "debug": "^3.1.0", + "deep-equal": "^1.0.0", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.5", + "mkdirp": "^0.5.0", + "propagate": "^1.0.0", + "qs": "^6.5.1", + "semver": "^5.5.0" } }, "node-forge": { @@ -9203,10 +9865,10 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "2.7.1", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { @@ -9215,7 +9877,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "normalize-url": { @@ -9224,9 +9886,9 @@ "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", "dev": true, "requires": { - "prepend-http": "2.0.0", - "query-string": "5.1.1", - "sort-keys": "2.0.0" + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" }, "dependencies": { "prepend-http": { @@ -9243,10 +9905,10 @@ "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", "dev": true, "requires": { - "hosted-git-info": "2.7.1", - "osenv": "0.1.5", - "semver": "5.5.0", - "validate-npm-package-name": "3.0.0" + "hosted-git-info": "^2.6.0", + "osenv": "^0.1.5", + "semver": "^5.5.0", + "validate-npm-package-name": "^3.0.0" } }, "npm-run-path": { @@ -9255,7 +9917,7 @@ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -9270,44 +9932,43 @@ "integrity": "sha1-ikpO1pCWbBHsWH/4fuoMEsl0upk=", "dev": true, "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "1.0.1", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "default-require-extensions": "1.0.0", - "find-cache-dir": "0.1.1", - "find-up": "2.1.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "2.3.1", - "istanbul-lib-report": "1.1.3", - "istanbul-lib-source-maps": "1.2.5", - "istanbul-reports": "1.4.1", - "md5-hex": "1.3.0", - "merge-source-map": "1.1.0", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "resolve-from": "2.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "4.2.1", + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.5.1", + "debug-log": "^1.0.1", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^2.1.0", + "foreground-child": "^1.5.3", + "glob": "^7.0.6", + "istanbul-lib-coverage": "^1.2.0", + "istanbul-lib-hook": "^1.1.0", + "istanbul-lib-instrument": "^2.1.0", + "istanbul-lib-report": "^1.1.3", + "istanbul-lib-source-maps": "^1.2.5", + "istanbul-reports": "^1.4.1", + "md5-hex": "^1.2.0", + "merge-source-map": "^1.1.0", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.1", + "spawn-wrap": "^1.4.2", + "test-exclude": "^4.2.0", "yargs": "11.1.0", - "yargs-parser": "8.1.0" + "yargs-parser": "^8.0.0" }, "dependencies": { "align-text": { "version": "0.1.4", "bundled": true, "dev": true, - "optional": true, "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" } }, "amdefine": { @@ -9325,7 +9986,7 @@ "bundled": true, "dev": true, "requires": { - "default-require-extensions": "1.0.0" + "default-require-extensions": "^1.0.0" } }, "archy": { @@ -9383,13 +10044,13 @@ "bundled": true, "dev": true, "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { "define-property": { @@ -9397,7 +10058,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -9405,7 +10066,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -9413,7 +10074,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -9421,9 +10082,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { @@ -9438,7 +10099,7 @@ "bundled": true, "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -9447,16 +10108,16 @@ "bundled": true, "dev": true, "requires": { - "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.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "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.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -9464,7 +10125,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -9479,15 +10140,15 @@ "bundled": true, "dev": true, "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" } }, "caching-transform": { @@ -9495,9 +10156,9 @@ "bundled": true, "dev": true, "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" } }, "camelcase": { @@ -9512,8 +10173,8 @@ "dev": true, "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "class-utils": { @@ -9521,10 +10182,10 @@ "bundled": true, "dev": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -9532,7 +10193,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -9543,8 +10204,8 @@ "dev": true, "optional": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" }, "dependencies": { @@ -9566,8 +10227,8 @@ "bundled": true, "dev": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "commondir": { @@ -9600,8 +10261,8 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.3", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, "debug": { @@ -9632,7 +10293,7 @@ "bundled": true, "dev": true, "requires": { - "strip-bom": "2.0.0" + "strip-bom": "^2.0.0" } }, "define-property": { @@ -9640,8 +10301,8 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -9649,7 +10310,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -9657,7 +10318,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -9665,9 +10326,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { @@ -9682,7 +10343,7 @@ "bundled": true, "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "execa": { @@ -9690,13 +10351,13 @@ "bundled": true, "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" }, "dependencies": { "cross-spawn": { @@ -9704,9 +10365,9 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } } } @@ -9716,13 +10377,13 @@ "bundled": true, "dev": true, "requires": { - "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" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "debug": { @@ -9738,7 +10399,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -9746,7 +10407,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -9756,8 +10417,8 @@ "bundled": true, "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -9765,7 +10426,7 @@ "bundled": true, "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -9775,14 +10436,14 @@ "bundled": true, "dev": true, "requires": { - "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" + "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.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -9790,7 +10451,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -9798,7 +10459,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -9806,7 +10467,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -9814,7 +10475,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -9822,9 +10483,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { @@ -9839,10 +10500,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -9850,7 +10511,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -9860,9 +10521,9 @@ "bundled": true, "dev": true, "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" } }, "find-up": { @@ -9870,7 +10531,7 @@ "bundled": true, "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "for-in": { @@ -9883,8 +10544,8 @@ "bundled": true, "dev": true, "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" + "cross-spawn": "^4", + "signal-exit": "^3.0.0" } }, "fragment-cache": { @@ -9892,7 +10553,7 @@ "bundled": true, "dev": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fs.realpath": { @@ -9920,12 +10581,12 @@ "bundled": true, "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "graceful-fs": { @@ -9938,10 +10599,10 @@ "bundled": true, "dev": true, "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" }, "dependencies": { "source-map": { @@ -9949,7 +10610,7 @@ "bundled": true, "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -9959,9 +10620,9 @@ "bundled": true, "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" } }, "has-values": { @@ -9969,8 +10630,8 @@ "bundled": true, "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "kind-of": { @@ -9978,7 +10639,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -9998,8 +10659,8 @@ "bundled": true, "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -10017,7 +10678,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { @@ -10035,7 +10696,7 @@ "bundled": true, "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-data-descriptor": { @@ -10043,7 +10704,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-descriptor": { @@ -10051,9 +10712,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { @@ -10078,7 +10739,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-odd": { @@ -10086,7 +10747,7 @@ "bundled": true, "dev": true, "requires": { - "is-number": "4.0.0" + "is-number": "^4.0.0" }, "dependencies": { "is-number": { @@ -10101,7 +10762,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "is-stream": { @@ -10144,7 +10805,7 @@ "bundled": true, "dev": true, "requires": { - "append-transform": "0.4.0" + "append-transform": "^0.4.0" } }, "istanbul-lib-report": { @@ -10152,10 +10813,10 @@ "bundled": true, "dev": true, "requires": { - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" }, "dependencies": { "has-flag": { @@ -10168,7 +10829,7 @@ "bundled": true, "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -10178,11 +10839,11 @@ "bundled": true, "dev": true, "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.2.0", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" } }, "istanbul-reports": { @@ -10190,7 +10851,7 @@ "bundled": true, "dev": true, "requires": { - "handlebars": "4.0.11" + "handlebars": "^4.0.3" } }, "kind-of": { @@ -10198,7 +10859,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lazy-cache": { @@ -10212,7 +10873,7 @@ "bundled": true, "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "load-json-file": { @@ -10220,11 +10881,11 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" } }, "locate-path": { @@ -10232,8 +10893,8 @@ "bundled": true, "dev": true, "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" }, "dependencies": { "path-exists": { @@ -10246,16 +10907,15 @@ "longest": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "lru-cache": { "version": "4.1.3", "bundled": true, "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "map-cache": { @@ -10268,7 +10928,7 @@ "bundled": true, "dev": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "md5-hex": { @@ -10276,7 +10936,7 @@ "bundled": true, "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { @@ -10289,7 +10949,7 @@ "bundled": true, "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "merge-source-map": { @@ -10297,7 +10957,7 @@ "bundled": true, "dev": true, "requires": { - "source-map": "0.6.1" + "source-map": "^0.6.1" }, "dependencies": { "source-map": { @@ -10312,19 +10972,19 @@ "bundled": true, "dev": true, "requires": { - "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.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "dependencies": { "kind-of": { @@ -10344,7 +11004,7 @@ "bundled": true, "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -10357,8 +11017,8 @@ "bundled": true, "dev": true, "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -10366,7 +11026,7 @@ "bundled": true, "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -10389,18 +11049,18 @@ "bundled": true, "dev": true, "requires": { - "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-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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-odd": "^2.0.0", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "kind-of": { @@ -10415,10 +11075,10 @@ "bundled": true, "dev": true, "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "npm-run-path": { @@ -10426,7 +11086,7 @@ "bundled": true, "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -10444,9 +11104,9 @@ "bundled": true, "dev": true, "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { "define-property": { @@ -10454,7 +11114,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -10464,7 +11124,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" } }, "object.pick": { @@ -10472,7 +11132,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "once": { @@ -10480,7 +11140,7 @@ "bundled": true, "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "optimist": { @@ -10488,8 +11148,8 @@ "bundled": true, "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "os-homedir": { @@ -10502,9 +11162,9 @@ "bundled": true, "dev": true, "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" } }, "p-finally": { @@ -10517,7 +11177,7 @@ "bundled": true, "dev": true, "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -10525,7 +11185,7 @@ "bundled": true, "dev": true, "requires": { - "p-limit": "1.2.0" + "p-limit": "^1.1.0" } }, "p-try": { @@ -10538,7 +11198,7 @@ "bundled": true, "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "pascalcase": { @@ -10551,7 +11211,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { @@ -10574,9 +11234,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -10594,7 +11254,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { @@ -10602,7 +11262,7 @@ "bundled": true, "dev": true, "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" }, "dependencies": { "find-up": { @@ -10610,8 +11270,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } @@ -10631,9 +11291,9 @@ "bundled": true, "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -10641,8 +11301,8 @@ "bundled": true, "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" }, "dependencies": { "find-up": { @@ -10650,8 +11310,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } @@ -10661,8 +11321,8 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "repeat-element": { @@ -10706,7 +11366,7 @@ "dev": true, "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { @@ -10714,7 +11374,7 @@ "bundled": true, "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-regex": { @@ -10722,7 +11382,7 @@ "bundled": true, "dev": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "semver": { @@ -10740,10 +11400,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -10751,7 +11411,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -10761,7 +11421,7 @@ "bundled": true, "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -10784,14 +11444,14 @@ "bundled": true, "dev": true, "requires": { - "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.2", - "use": "3.1.0" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "debug": { @@ -10807,7 +11467,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -10815,7 +11475,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -10825,9 +11485,9 @@ "bundled": true, "dev": true, "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { @@ -10835,7 +11495,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -10843,7 +11503,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -10851,7 +11511,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -10859,9 +11519,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { @@ -10876,7 +11536,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "source-map": { @@ -10889,11 +11549,11 @@ "bundled": true, "dev": true, "requires": { - "atob": "2.1.1", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-url": { @@ -10906,12 +11566,12 @@ "bundled": true, "dev": true, "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.1" + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" } }, "spdx-correct": { @@ -10919,8 +11579,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -10933,8 +11593,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -10947,7 +11607,7 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "static-extend": { @@ -10955,8 +11615,8 @@ "bundled": true, "dev": true, "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -10964,7 +11624,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -10974,8 +11634,8 @@ "bundled": true, "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "strip-ansi": { @@ -10983,7 +11643,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "strip-bom": { @@ -10991,7 +11651,7 @@ "bundled": true, "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-eof": { @@ -11004,11 +11664,11 @@ "bundled": true, "dev": true, "requires": { - "arrify": "1.0.1", - "micromatch": "3.1.10", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" + "arrify": "^1.0.1", + "micromatch": "^3.1.8", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" } }, "to-object-path": { @@ -11016,7 +11676,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { @@ -11024,10 +11684,10 @@ "bundled": true, "dev": true, "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { @@ -11035,8 +11695,8 @@ "bundled": true, "dev": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } }, "uglify-js": { @@ -11045,9 +11705,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "yargs": { @@ -11056,9 +11716,9 @@ "dev": true, "optional": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" } } @@ -11075,10 +11735,10 @@ "bundled": true, "dev": true, "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" }, "dependencies": { "extend-shallow": { @@ -11086,7 +11746,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { @@ -11094,10 +11754,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" } } } @@ -11107,8 +11767,8 @@ "bundled": true, "dev": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -11116,9 +11776,9 @@ "bundled": true, "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { "isobject": { @@ -11148,7 +11808,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.2" }, "dependencies": { "kind-of": { @@ -11163,8 +11823,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "which": { @@ -11172,7 +11832,7 @@ "bundled": true, "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -11196,8 +11856,8 @@ "bundled": true, "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "ansi-regex": { @@ -11210,7 +11870,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { @@ -11218,9 +11878,9 @@ "bundled": true, "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "strip-ansi": { @@ -11228,7 +11888,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } } } @@ -11243,9 +11903,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, "y18n": { @@ -11263,18 +11923,18 @@ "bundled": true, "dev": true, "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "9.0.2" + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" }, "dependencies": { "camelcase": { @@ -11287,9 +11947,9 @@ "bundled": true, "dev": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } }, "yargs-parser": { @@ -11297,7 +11957,7 @@ "bundled": true, "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } @@ -11307,7 +11967,7 @@ "bundled": true, "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { @@ -11336,9 +11996,9 @@ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { "define-property": { @@ -11347,7 +12007,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -11364,7 +12024,7 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -11381,8 +12041,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "object.pick": { @@ -11391,7 +12051,7 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -11408,8 +12068,8 @@ "integrity": "sha1-yCjw8NxH6fhq+KSXfF1VB2znqR8=", "dev": true, "requires": { - "is-observable": "0.2.0", - "symbol-observable": "1.2.0" + "is-observable": "^0.2.0", + "symbol-observable": "^1.0.4" }, "dependencies": { "is-observable": { @@ -11418,7 +12078,7 @@ "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=", "dev": true, "requires": { - "symbol-observable": "0.2.4" + "symbol-observable": "^0.2.2" }, "dependencies": { "symbol-observable": { @@ -11451,7 +12111,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -11460,7 +12120,7 @@ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "only": { @@ -11475,8 +12135,8 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "option-chain": { @@ -11491,12 +12151,12 @@ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" }, "dependencies": { "wordwrap": { @@ -11519,9 +12179,9 @@ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" } }, "os-tmpdir": { @@ -11536,14 +12196,14 @@ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", + "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==", "dev": true }, "p-finally": { @@ -11564,7 +12224,7 @@ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -11573,7 +12233,7 @@ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "1.3.0" + "p-limit": "^1.1.0" } }, "p-timeout": { @@ -11582,7 +12242,7 @@ "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", "dev": true, "requires": { - "p-finally": "1.0.0" + "p-finally": "^1.0.0" } }, "p-try": { @@ -11597,10 +12257,10 @@ "integrity": "sha1-eK4ybIngWk2BO2hgGXevBcANKg0=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "lodash.flattendeep": "4.4.0", - "md5-hex": "2.0.0", - "release-zalgo": "1.0.0" + "graceful-fs": "^4.1.11", + "lodash.flattendeep": "^4.4.0", + "md5-hex": "^2.0.0", + "release-zalgo": "^1.0.0" } }, "package-json": { @@ -11609,10 +12269,10 @@ "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "dev": true, "requires": { - "got": "6.7.1", - "registry-auth-token": "3.3.2", - "registry-url": "3.1.0", - "semver": "5.5.0" + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" }, "dependencies": { "got": { @@ -11621,17 +12281,17 @@ "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "requires": { - "create-error-class": "3.0.2", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "is-redirect": "1.0.0", - "is-retry-allowed": "1.1.0", - "is-stream": "1.1.0", - "lowercase-keys": "1.0.1", - "safe-buffer": "5.1.2", - "timed-out": "4.0.1", - "unzip-response": "2.0.1", - "url-parse-lax": "1.0.0" + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" } } } @@ -11642,10 +12302,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" } }, "parse-json": { @@ -11654,7 +12314,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "1.3.2" + "error-ex": "^1.2.0" } }, "parse-ms": { @@ -11734,7 +12394,7 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" }, "dependencies": { "pify": { @@ -11762,11 +12422,11 @@ "integrity": "sha512-HuPxmGxHsEFPWhdkwBs2gIrHhFqktIxMtudISTFN95RQ85ZZAOl8Ki6u3nnN/X8OUaGlIGldk/l8p2IR4/i76w==", "dev": true, "requires": { - "b64": "4.0.0", - "boom": "7.2.0", - "content": "4.0.5", - "hoek": "5.0.3", - "nigel": "3.0.1" + "b64": "4.x.x", + "boom": "7.x.x", + "content": "4.x.x", + "hoek": "5.x.x", + "nigel": "3.x.x" } }, "pidusage": { @@ -11792,7 +12452,7 @@ "integrity": "sha1-0dpn9UglY7t89X8oauKCLs+/NnA=", "dev": true, "requires": { - "pinkie": "1.0.0" + "pinkie": "^1.0.0" } }, "pkg-conf": { @@ -11801,8 +12461,8 @@ "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", "dev": true, "requires": { - "find-up": "2.1.0", - "load-json-file": "4.0.0" + "find-up": "^2.0.0", + "load-json-file": "^4.0.0" }, "dependencies": { "load-json-file": { @@ -11811,10 +12471,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "parse-json": { @@ -11823,8 +12483,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } } } @@ -11835,7 +12495,7 @@ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "2.1.0" + "find-up": "^2.1.0" } }, "plur": { @@ -11844,7 +12504,7 @@ "integrity": "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo=", "dev": true, "requires": { - "irregular-plurals": "1.4.0" + "irregular-plurals": "^1.0.0" } }, "pluralize": { @@ -11859,8 +12519,8 @@ "integrity": "sha512-18VrjJAduIdPv7d9zWsfmKxTj3cQTYC5Pv5gtKxcWujYBpGbV+mhNSPYhlHW5xeWoazYyKfB9FEsPT12r5rY1A==", "dev": true, "requires": { - "hoek": "5.0.3", - "joi": "13.4.0" + "hoek": "5.x.x", + "joi": "13.x.x" } }, "posix-character-classes": { @@ -11875,10 +12535,10 @@ "integrity": "sha512-8tmaqjYxwJAumhsg8p31P5jG4sKRYUhfO0WaSBcPTeAmMlOxB3AK/rS6xqmJwpVAXt+fuyRLZ3WJxsgMRCHcQQ==", "dev": true, "requires": { - "glob": "7.1.2", - "once": "1.4.0", - "pify": "3.0.0", - "rimraf": "2.6.2", + "glob": "^7.1.2", + "once": "^1.4.0", + "pify": "^3.0.0", + "rimraf": "^2.6.2", "tmp": "0.0.33" } }, @@ -11888,9 +12548,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" }, "dependencies": { "source-map": { @@ -11907,11 +12567,11 @@ "integrity": "sha512-nDb6a+p2C7Wj8Y2zmFtLpuv+xobXz4+bzT5s7dr0nn71tLozn7nRMQqzwbefzwZN5qOm0N7Cxhw4kXP75xboKA==", "dev": true, "requires": { - "define-properties": "1.1.2", - "empower": "1.3.0", - "power-assert-formatter": "1.4.1", - "universal-deep-strict-equal": "1.2.2", - "xtend": "4.0.1" + "define-properties": "^1.1.2", + "empower": "^1.3.0", + "power-assert-formatter": "^1.4.1", + "universal-deep-strict-equal": "^1.2.1", + "xtend": "^4.0.0" } }, "power-assert-context-formatter": { @@ -11920,8 +12580,8 @@ "integrity": "sha512-HLNEW8Bin+BFCpk/zbyKwkEu9W8/zThIStxGo7weYcFkKgMuGCHUJhvJeBGXDZf0Qm2xis4pbnnciGZiX0EpSg==", "dev": true, "requires": { - "core-js": "2.5.7", - "power-assert-context-traversal": "1.2.0" + "core-js": "^2.0.0", + "power-assert-context-traversal": "^1.2.0" } }, "power-assert-context-reducer-ast": { @@ -11930,11 +12590,11 @@ "integrity": "sha512-EgOxmZ/Lb7tw4EwSKX7ZnfC0P/qRZFEG28dx/690qvhmOJ6hgThYFm5TUWANDLK5NiNKlPBi5WekVGd2+5wPrw==", "dev": true, "requires": { - "acorn": "5.7.1", - "acorn-es7-plugin": "1.1.7", - "core-js": "2.5.7", - "espurify": "1.8.1", - "estraverse": "4.2.0" + "acorn": "^5.0.0", + "acorn-es7-plugin": "^1.0.12", + "core-js": "^2.0.0", + "espurify": "^1.6.0", + "estraverse": "^4.2.0" } }, "power-assert-context-traversal": { @@ -11943,8 +12603,8 @@ "integrity": "sha512-NFoHU6g2umNajiP2l4qb0BRWD773Aw9uWdWYH9EQsVwIZnog5bd2YYLFCVvaxWpwNzWeEfZIon2xtyc63026pQ==", "dev": true, "requires": { - "core-js": "2.5.7", - "estraverse": "4.2.0" + "core-js": "^2.0.0", + "estraverse": "^4.1.0" } }, "power-assert-formatter": { @@ -11953,13 +12613,13 @@ "integrity": "sha1-XcEl7VCj37HdomwZNH879Y7CiEo=", "dev": true, "requires": { - "core-js": "2.5.7", - "power-assert-context-formatter": "1.2.0", - "power-assert-context-reducer-ast": "1.2.0", - "power-assert-renderer-assertion": "1.2.0", - "power-assert-renderer-comparison": "1.2.0", - "power-assert-renderer-diagram": "1.2.0", - "power-assert-renderer-file": "1.2.0" + "core-js": "^2.0.0", + "power-assert-context-formatter": "^1.0.7", + "power-assert-context-reducer-ast": "^1.0.7", + "power-assert-renderer-assertion": "^1.0.7", + "power-assert-renderer-comparison": "^1.0.7", + "power-assert-renderer-diagram": "^1.0.7", + "power-assert-renderer-file": "^1.0.7" } }, "power-assert-renderer-assertion": { @@ -11968,8 +12628,8 @@ "integrity": "sha512-3F7Q1ZLmV2ZCQv7aV7NJLNK9G7QsostrhOU7U0RhEQS/0vhEqrRg2jEJl1jtUL4ZyL2dXUlaaqrmPv5r9kRvIg==", "dev": true, "requires": { - "power-assert-renderer-base": "1.1.1", - "power-assert-util-string-width": "1.2.0" + "power-assert-renderer-base": "^1.1.1", + "power-assert-util-string-width": "^1.2.0" } }, "power-assert-renderer-base": { @@ -11984,11 +12644,11 @@ "integrity": "sha512-7c3RKPDBKK4E3JqdPtYRE9cM8AyX4LC4yfTvvTYyx8zSqmT5kJnXwzR0yWQLOavACllZfwrAGQzFiXPc5sWa+g==", "dev": true, "requires": { - "core-js": "2.5.7", - "diff-match-patch": "1.0.1", - "power-assert-renderer-base": "1.1.1", - "stringifier": "1.3.0", - "type-name": "2.0.2" + "core-js": "^2.0.0", + "diff-match-patch": "^1.0.0", + "power-assert-renderer-base": "^1.1.1", + "stringifier": "^1.3.0", + "type-name": "^2.0.1" } }, "power-assert-renderer-diagram": { @@ -11997,10 +12657,10 @@ "integrity": "sha512-JZ6PC+DJPQqfU6dwSmpcoD7gNnb/5U77bU5KgNwPPa+i1Pxiz6UuDeM3EUBlhZ1HvH9tMjI60anqVyi5l2oNdg==", "dev": true, "requires": { - "core-js": "2.5.7", - "power-assert-renderer-base": "1.1.1", - "power-assert-util-string-width": "1.2.0", - "stringifier": "1.3.0" + "core-js": "^2.0.0", + "power-assert-renderer-base": "^1.1.1", + "power-assert-util-string-width": "^1.2.0", + "stringifier": "^1.3.0" } }, "power-assert-renderer-file": { @@ -12009,7 +12669,7 @@ "integrity": "sha512-/oaVrRbeOtGoyyd7e4IdLP/jIIUFJdqJtsYzP9/88R39CMnfF/S/rUc8ZQalENfUfQ/wQHu+XZYRMaCEZmEesg==", "dev": true, "requires": { - "power-assert-renderer-base": "1.1.1" + "power-assert-renderer-base": "^1.1.1" } }, "power-assert-util-string-width": { @@ -12018,7 +12678,7 @@ "integrity": "sha512-lX90G0igAW0iyORTILZ/QjZWsa1MZ6VVY3L0K86e2eKun3S4LKPH4xZIl8fdeMYLfOjkaszbNSzf1uugLeAm2A==", "dev": true, "requires": { - "eastasianwidth": "0.2.0" + "eastasianwidth": "^0.2.0" } }, "prelude-ls": { @@ -12051,7 +12711,7 @@ "integrity": "sha512-ZypexbfVUGTFxb0v+m1bUyy92DHe5SyYlnyY0msyms5zd3RwyvNgyxZZsXXgoyzlxjx5MiqtXUdhUfvQbe0A2Q==", "dev": true, "requires": { - "parse-ms": "1.0.1" + "parse-ms": "^1.0.0" }, "dependencies": { "parse-ms": { @@ -12091,7 +12751,7 @@ "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", "dev": true, "requires": { - "forwarded": "0.1.2", + "forwarded": "~0.1.2", "ipaddr.js": "1.6.0" } }, @@ -12101,9 +12761,9 @@ "integrity": "sha512-fQr3VQrbdzHrdaDn3XuisVoJlJNDJizHAvUXw9IuXRR8BpV2x0N7LsCxrpJkeKfPbNjiNU/V5vc008cI0TmzzQ==", "dev": true, "requires": { - "fill-keys": "1.0.2", - "module-not-found-error": "1.0.1", - "resolve": "1.5.0" + "fill-keys": "^1.0.2", + "module-not-found-error": "^1.0.0", + "resolve": "~1.5.0" }, "dependencies": { "resolve": { @@ -12112,7 +12772,7 @@ "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } } } @@ -12138,9 +12798,9 @@ "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", "dev": true, "requires": { - "decode-uri-component": "0.2.0", - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" } }, "quick-lru": { @@ -12155,9 +12815,9 @@ "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", "dev": true, "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.1" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { "is-number": { @@ -12198,10 +12858,10 @@ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "requires": { - "deep-extend": "0.6.0", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -12218,9 +12878,9 @@ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" } }, "read-pkg-up": { @@ -12229,8 +12889,8 @@ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" } }, "readable-stream": { @@ -12238,13 +12898,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "readdirp": { @@ -12253,10 +12913,10 @@ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.6", - "set-immediate-shim": "1.0.1" + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" } }, "redent": { @@ -12265,8 +12925,8 @@ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" }, "dependencies": { "indent-string": { @@ -12275,7 +12935,7 @@ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } } } @@ -12298,7 +12958,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regex-not": { @@ -12307,8 +12967,8 @@ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regexp.prototype.flags": { @@ -12317,7 +12977,7 @@ "integrity": "sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==", "dev": true, "requires": { - "define-properties": "1.1.2" + "define-properties": "^1.1.2" } }, "regexpp": { @@ -12332,9 +12992,9 @@ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "dev": true, "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "registry-auth-token": { @@ -12343,8 +13003,8 @@ "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", "dev": true, "requires": { - "rc": "1.2.8", - "safe-buffer": "5.1.2" + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" } }, "registry-url": { @@ -12353,7 +13013,7 @@ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "dev": true, "requires": { - "rc": "1.2.8" + "rc": "^1.0.1" } }, "regjsgen": { @@ -12368,7 +13028,7 @@ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" } }, "release-zalgo": { @@ -12377,7 +13037,7 @@ "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", "dev": true, "requires": { - "es6-error": "4.1.1" + "es6-error": "^4.0.1" } }, "remove-trailing-separator": { @@ -12404,7 +13064,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "request": { @@ -12412,26 +13072,26 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.7.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.0.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.18", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" + "aws-sign2": "~0.7.0", + "aws4": "^1.6.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.1", + "forever-agent": "~0.6.1", + "form-data": "~2.3.1", + "har-validator": "~5.0.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.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" } }, "require-directory": { @@ -12458,8 +13118,8 @@ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "dev": true, "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" }, "dependencies": { "resolve-from": { @@ -12476,7 +13136,7 @@ "integrity": "sha1-aUPDUwxNmn5G8c3dUcFY/GcM294=", "dev": true, "requires": { - "underscore": "1.6.0" + "underscore": "~1.6.0" }, "dependencies": { "underscore": { @@ -12499,7 +13159,7 @@ "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", "dev": true, "requires": { - "resolve-from": "3.0.0" + "resolve-from": "^3.0.0" } }, "resolve-from": { @@ -12520,7 +13180,7 @@ "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", "dev": true, "requires": { - "lowercase-keys": "1.0.1" + "lowercase-keys": "^1.0.0" } }, "restify": { @@ -12529,28 +13189,28 @@ "integrity": "sha512-xygVfQn/FiyzSPNIiOlzos6+RVcmTTK/bN0/m4z6vQwUY1yXntAsXM8ckq6hMxYfkhZfbPMM5hvBf75B8zLE1g==", "dev": true, "requires": { - "assert-plus": "1.0.0", - "bunyan": "1.8.12", - "csv": "1.2.1", - "dtrace-provider": "0.8.7", - "escape-regexp-component": "1.0.2", - "ewma": "2.0.1", - "find-my-way": "1.15.1", - "formidable": "1.2.1", - "http-signature": "1.2.0", - "lodash": "4.17.10", - "lru-cache": "4.1.3", - "mime": "1.6.0", - "negotiator": "0.6.1", - "once": "1.4.0", - "pidusage": "1.2.0", - "qs": "6.5.2", - "restify-errors": "5.0.0", - "semver": "5.5.0", - "spdy": "3.4.7", - "uuid": "3.3.2", - "vasync": "1.6.4", - "verror": "1.10.0" + "assert-plus": "^1.0.0", + "bunyan": "^1.8.12", + "csv": "^1.1.1", + "dtrace-provider": "^0.8.1", + "escape-regexp-component": "^1.0.2", + "ewma": "^2.0.1", + "find-my-way": "^1.13.0", + "formidable": "^1.2.1", + "http-signature": "^1.2.0", + "lodash": "^4.17.10", + "lru-cache": "^4.1.3", + "mime": "^1.5.0", + "negotiator": "^0.6.1", + "once": "^1.4.0", + "pidusage": "^1.2.0", + "qs": "^6.5.2", + "restify-errors": "^5.0.0", + "semver": "^5.4.1", + "spdy": "^3.4.7", + "uuid": "^3.1.0", + "vasync": "^1.6.4", + "verror": "^1.10.0" }, "dependencies": { "lodash": { @@ -12573,10 +13233,10 @@ "integrity": "sha512-+vby9Kxf7qlzvbZSTIEGkIixkeHG+pVCl34dk6eKnL+ua4pCezpdLT/1/eabzPZb65ADrgoc04jeWrrF1E1pvQ==", "dev": true, "requires": { - "assert-plus": "1.0.0", - "lodash": "4.17.5", - "safe-json-stringify": "1.2.0", - "verror": "1.10.0" + "assert-plus": "^1.0.0", + "lodash": "^4.2.1", + "safe-json-stringify": "^1.0.3", + "verror": "^1.8.1" } }, "restore-cursor": { @@ -12585,8 +13245,8 @@ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "ret": { @@ -12605,7 +13265,7 @@ "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.0.0.tgz", "integrity": "sha512-S4HNLaWcMP6r8E4TMH52Y7/pM8uNayOcTDDQNBwsCccL1uI+Ol2TljxRDPzaNfbhOB30+XWP5NnZkB3LiJxi1w==", "requires": { - "through2": "2.0.3" + "through2": "^2.0.0" } }, "right-align": { @@ -12615,7 +13275,7 @@ "dev": true, "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { @@ -12624,7 +13284,7 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "run-async": { @@ -12633,7 +13293,7 @@ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "rxjs": { @@ -12671,7 +13331,7 @@ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "safer-buffer": { @@ -12691,16 +13351,16 @@ "integrity": "sha512-52ThA+Z7h6BnvpSVbURwChl10XZrps5q7ytjTwWcIe9bmJwnVP6cpEVK2NvDOUhGupoqAvNbUz3cpnJDp4+/pg==", "dev": true, "requires": { - "chalk": "2.4.1", - "htmlparser2": "3.9.2", - "lodash.clonedeep": "4.5.0", - "lodash.escaperegexp": "4.1.2", - "lodash.isplainobject": "4.0.6", - "lodash.isstring": "4.0.1", - "lodash.mergewith": "4.6.1", - "postcss": "6.0.23", - "srcset": "1.0.0", - "xtend": "4.0.1" + "chalk": "^2.3.0", + "htmlparser2": "^3.9.0", + "lodash.clonedeep": "^4.5.0", + "lodash.escaperegexp": "^4.1.2", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.mergewith": "^4.6.0", + "postcss": "^6.0.14", + "srcset": "^1.0.0", + "xtend": "^4.0.0" } }, "select-hose": { @@ -12721,7 +13381,7 @@ "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "dev": true, "requires": { - "semver": "5.5.0" + "semver": "^5.0.3" } }, "semver-store": { @@ -12737,18 +13397,18 @@ "dev": true, "requires": { "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.6.3", + "http-errors": "~1.6.2", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.4.0" + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" }, "dependencies": { "debug": { @@ -12786,9 +13446,9 @@ "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "dev": true, "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", "send": "0.16.2" } }, @@ -12810,10 +13470,10 @@ "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -12822,7 +13482,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -12839,7 +13499,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -12854,8 +13514,8 @@ "integrity": "sha1-x+dFXRHWD2ts08Q+FaO0McF+VWY=", "dev": true, "requires": { - "hoek": "5.0.3", - "joi": "13.4.0" + "hoek": "5.x.x", + "joi": "13.x.x" } }, "signal-exit": { @@ -12865,18 +13525,18 @@ "dev": true }, "sinon": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-4.3.0.tgz", - "integrity": "sha512-pmf05hFgEZUS52AGJcsVjOjqAyJW2yo14cOwVYvzCyw7+inv06YXkLyW75WG6X6p951lzkoKh51L2sNbR9CDvw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-6.0.1.tgz", + "integrity": "sha512-rfszhNcfamK2+ofIPi9XqeH89pH7KGDcAtM+F9CsjHXOK3jzWG99vyhyD2V+r7s4IipmWcWUFYq4ftZ9/Eu2Wg==", "dev": true, "requires": { - "@sinonjs/formatio": "2.0.0", - "diff": "3.5.0", - "lodash.get": "4.4.2", - "lolex": "2.7.1", - "nise": "1.4.2", - "supports-color": "5.4.0", - "type-detect": "4.0.8" + "@sinonjs/formatio": "^2.0.0", + "diff": "^3.5.0", + "lodash.get": "^4.4.2", + "lolex": "^2.4.2", + "nise": "^1.3.3", + "supports-color": "^5.4.0", + "type-detect": "^4.0.8" } }, "slash": { @@ -12891,7 +13551,7 @@ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0" + "is-fullwidth-code-point": "^2.0.0" } }, "slide": { @@ -12906,14 +13566,14 @@ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { - "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.2", - "use": "3.1.0" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "debug": { @@ -12931,7 +13591,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -12940,7 +13600,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -12951,9 +13611,9 @@ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { @@ -12962,7 +13622,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -12971,7 +13631,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -12980,7 +13640,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -12989,9 +13649,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -13014,7 +13674,7 @@ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "sort-keys": { @@ -13023,7 +13683,7 @@ "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", "dev": true, "requires": { - "is-plain-obj": "1.1.0" + "is-plain-obj": "^1.0.0" } }, "source-map": { @@ -13038,11 +13698,11 @@ "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "dev": true, "requires": { - "atob": "2.1.1", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -13051,8 +13711,8 @@ "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", "dev": true, "requires": { - "buffer-from": "1.1.0", - "source-map": "0.6.1" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" }, "dependencies": { "source-map": { @@ -13075,9 +13735,9 @@ "integrity": "sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==", "dev": true, "requires": { - "array-find-index": "1.0.2", - "spdx-expression-parse": "3.0.0", - "spdx-ranges": "2.0.0" + "array-find-index": "^1.0.2", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" } }, "spdx-correct": { @@ -13086,8 +13746,8 @@ "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "dev": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -13102,8 +13762,8 @@ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -13124,9 +13784,9 @@ "integrity": "sha512-OcARj6U1OuVv98SVrRqgrR30sVocONtoPpnX8Xz4vXNrFVedqtbgkA+0KmQoXIQ2xjfltPPRVIMeNzKEFLWWKQ==", "dev": true, "requires": { - "spdx-compare": "1.0.0", - "spdx-expression-parse": "3.0.0", - "spdx-ranges": "2.0.0" + "spdx-compare": "^1.0.0", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" } }, "spdy": { @@ -13135,12 +13795,12 @@ "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", "dev": true, "requires": { - "debug": "2.6.9", - "handle-thing": "1.2.5", - "http-deceiver": "1.2.7", - "safe-buffer": "5.1.2", - "select-hose": "2.0.0", - "spdy-transport": "2.1.0" + "debug": "^2.6.8", + "handle-thing": "^1.2.5", + "http-deceiver": "^1.2.7", + "safe-buffer": "^5.0.1", + "select-hose": "^2.0.0", + "spdy-transport": "^2.0.18" }, "dependencies": { "debug": { @@ -13160,13 +13820,13 @@ "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", "dev": true, "requires": { - "debug": "2.6.9", - "detect-node": "2.0.3", - "hpack.js": "2.1.6", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "safe-buffer": "5.1.2", - "wbuf": "1.7.3" + "debug": "^2.6.8", + "detect-node": "^2.0.3", + "hpack.js": "^2.1.6", + "obuf": "^1.1.1", + "readable-stream": "^2.2.9", + "safe-buffer": "^5.0.1", + "wbuf": "^1.7.2" }, "dependencies": { "debug": { @@ -13185,7 +13845,7 @@ "resolved": "https://registry.npmjs.org/split-array-stream/-/split-array-stream-2.0.0.tgz", "integrity": "sha512-hmMswlVY91WvGMxs0k8MRgq8zb2mSen4FmDNc5AFiTWtrBpdZN6nwD6kROVe4vNL+ywrvbCKsWVCnEd4riELIg==", "requires": { - "is-stream-ended": "0.1.4" + "is-stream-ended": "^0.1.4" } }, "split-string": { @@ -13194,7 +13854,7 @@ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "sprintf-js": { @@ -13209,8 +13869,8 @@ "integrity": "sha1-pWad4StC87HV6D7QPHEEb8SPQe8=", "dev": true, "requires": { - "array-uniq": "1.0.3", - "number-is-nan": "1.0.1" + "array-uniq": "^1.0.2", + "number-is-nan": "^1.0.0" } }, "sshpk": { @@ -13218,15 +13878,15 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "tweetnacl": "0.14.5" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, "stack-utils": { @@ -13241,12 +13901,12 @@ "integrity": "sha512-jR45n5ZMAkasw0xoE9j9TuLmJv4Sa3AkXe+6yIFT6a07kXYHgSbuD2OVGECdZGFxTmvNqLwL1iRIgvq6O6rq+A==", "dev": true, "requires": { - "boom": "7.2.0", - "bounce": "1.2.0", - "cryptiles": "4.1.2", - "hoek": "5.0.3", - "iron": "5.0.4", - "joi": "13.4.0" + "boom": "7.x.x", + "bounce": "1.x.x", + "cryptiles": "4.x.x", + "hoek": "5.x.x", + "iron": "5.x.x", + "joi": "13.x.x" } }, "static-extend": { @@ -13255,8 +13915,8 @@ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -13265,7 +13925,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -13281,7 +13941,7 @@ "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.4.tgz", "integrity": "sha512-D243NJaYs/xBN2QnoiMDY7IesJFIK7gEhnvAYqJa5JvDdnh2dC4qDBwlCf0ohPpX2QRlA/4gnbnPd3rs3KxVcA==", "requires": { - "stubs": "3.0.0" + "stubs": "^3.0.0" } }, "stream-shift": { @@ -13313,8 +13973,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "string.prototype.matchall": { @@ -13323,11 +13983,11 @@ "integrity": "sha512-WoZ+B2ypng1dp4iFLF2kmZlwwlE19gmjgKuhL1FJfDgCREWb3ye3SDVHSzLH6bxfnvYmkCxbzkmWcQZHA4P//Q==", "dev": true, "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.12.0", - "function-bind": "1.1.1", - "has-symbols": "1.0.0", - "regexp.prototype.flags": "1.2.0" + "define-properties": "^1.1.2", + "es-abstract": "^1.10.0", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "regexp.prototype.flags": "^1.2.0" } }, "string_decoder": { @@ -13335,7 +13995,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "stringifier": { @@ -13344,9 +14004,9 @@ "integrity": "sha1-3vGDQvaTPbDy2/yaoCF1tEjBeVk=", "dev": true, "requires": { - "core-js": "2.5.7", - "traverse": "0.6.6", - "type-name": "2.0.2" + "core-js": "^2.0.0", + "traverse": "^0.6.6", + "type-name": "^2.0.1" } }, "strip-ansi": { @@ -13355,7 +14015,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" }, "dependencies": { "ansi-regex": { @@ -13378,7 +14038,7 @@ "integrity": "sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.1" } }, "strip-eof": { @@ -13393,7 +14053,7 @@ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, "requires": { - "get-stdin": "4.0.1" + "get-stdin": "^4.0.1" } }, "strip-json-comments": { @@ -13413,29 +14073,29 @@ "integrity": "sha512-IcJUvRjeR+NB437Iq+LORFNJW4L6Knqkj3oQrBrkdhIaS2VKJvx/9aYEq7vi+PEx5/OuehOL/40SkSZotLi/MA==", "dev": true, "requires": { - "boom": "7.2.0", - "content": "4.0.5", - "hoek": "5.0.3", - "pez": "4.0.2", - "wreck": "14.0.2" + "boom": "7.x.x", + "content": "4.x.x", + "hoek": "5.x.x", + "pez": "4.x.x", + "wreck": "14.x.x" } }, "superagent": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz", - "integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==", - "dev": true, - "requires": { - "component-emitter": "1.2.1", - "cookiejar": "2.1.2", - "debug": "3.1.0", - "extend": "3.0.1", - "form-data": "2.3.2", - "formidable": "1.2.1", - "methods": "1.1.2", - "mime": "1.6.0", - "qs": "6.5.2", - "readable-stream": "2.3.6" + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.2.tgz", + "integrity": "sha512-gVH4QfYHcY3P0f/BZzavLreHW3T1v7hG9B+hpMQotGQqurOvhv87GcMCd6LWySmBuf+BDR44TQd0aISjVHLeNQ==", + "dev": true, + "requires": { + "component-emitter": "^1.2.0", + "cookiejar": "^2.1.0", + "debug": "^3.1.0", + "extend": "^3.0.0", + "form-data": "^2.3.1", + "formidable": "^1.1.1", + "methods": "^1.1.1", + "mime": "^1.4.1", + "qs": "^6.5.1", + "readable-stream": "^2.0.5" }, "dependencies": { "mime": { @@ -13452,21 +14112,21 @@ "integrity": "sha512-HZJ3geIMPgVwKk2VsmO5YHqnnJYl6bV5A9JW2uzqV43WmpgliNEYbuvukfor7URpaqpxuw3CfZ3ONdVbZjCgIA==", "dev": true, "requires": { - "arrify": "1.0.1", - "indent-string": "3.2.0", - "js-yaml": "3.12.0", - "serialize-error": "2.1.0", - "strip-ansi": "4.0.0" + "arrify": "^1.0.1", + "indent-string": "^3.2.0", + "js-yaml": "^3.10.0", + "serialize-error": "^2.1.0", + "strip-ansi": "^4.0.0" } }, "supertest": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/supertest/-/supertest-3.0.0.tgz", - "integrity": "sha1-jUu2j9GDDuBwM7HFpamkAhyWUpY=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-3.1.0.tgz", + "integrity": "sha512-O44AMnmJqx294uJQjfUmEyYOg7d9mylNFsMw/Wkz4evKd1njyPrtCN+U6ZIC7sKtfEVQhfTqFFijlXx8KP/Czw==", "dev": true, "requires": { - "methods": "1.1.2", - "superagent": "3.8.3" + "methods": "~1.1.2", + "superagent": "3.8.2" } }, "supports-color": { @@ -13475,7 +14135,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" }, "dependencies": { "has-flag": { @@ -13498,12 +14158,12 @@ "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", "dev": true, "requires": { - "ajv": "6.5.2", - "ajv-keywords": "3.2.0", - "chalk": "2.4.1", - "lodash": "4.17.5", + "ajv": "^6.0.1", + "ajv-keywords": "^3.0.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "string-width": "^2.1.1" }, "dependencies": { "ajv": { @@ -13512,10 +14172,10 @@ "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", "dev": true, "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.1" } }, "fast-deep-equal": { @@ -13550,7 +14210,7 @@ "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "dev": true, "requires": { - "execa": "0.7.0" + "execa": "^0.7.0" } }, "text-encoding": { @@ -13576,8 +14236,8 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" } }, "time-zone": { @@ -13598,7 +14258,7 @@ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-fast-properties": { @@ -13613,7 +14273,7 @@ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { @@ -13622,10 +14282,10 @@ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { @@ -13634,8 +14294,8 @@ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "dependencies": { "is-number": { @@ -13644,7 +14304,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } @@ -13655,7 +14315,7 @@ "integrity": "sha512-Tlu1fGlR90iCdIPURqPiufqAlCZYzLjHYVVbcFWDMcX7+tK8hdZWAfsMrD/pBul9jqHHwFjNdf1WaxA9vTRRhw==", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "tough-cookie": { @@ -13663,7 +14323,7 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" } }, "traverse": { @@ -13697,9 +14357,9 @@ "dev": true }, "tslint": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.10.0.tgz", - "integrity": "sha1-EeJrzLiK+gLdDZlWyuPUVAtfVMM=", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.11.0.tgz", + "integrity": "sha1-mPMMAurjzecAYgHkwzywi0hYHu0=", "dev": true, "requires": { "babel-code-frame": "^6.22.0", @@ -13713,7 +14373,7 @@ "resolve": "^1.3.2", "semver": "^5.3.0", "tslib": "^1.8.0", - "tsutils": "^2.12.1" + "tsutils": "^2.27.2" }, "dependencies": { "resolve": { @@ -13741,7 +14401,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -13756,7 +14416,7 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-detect": { @@ -13772,7 +14432,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.18" + "mime-types": "~2.1.18" } }, "type-name": { @@ -13794,9 +14454,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "camelcase": { @@ -13813,9 +14473,9 @@ "dev": true, "optional": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" } } @@ -13863,10 +14523,10 @@ "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "dev": true, "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" }, "dependencies": { "extend-shallow": { @@ -13875,7 +14535,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { @@ -13884,10 +14544,10 @@ "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" } } } @@ -13898,7 +14558,7 @@ "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", "dev": true, "requires": { - "crypto-random-string": "1.0.0" + "crypto-random-string": "^1.0.0" } }, "unique-temp-dir": { @@ -13907,8 +14567,8 @@ "integrity": "sha1-bc6VsmgcoAPuv7MEpBX5y6vMU4U=", "dev": true, "requires": { - "mkdirp": "0.5.1", - "os-tmpdir": "1.0.2", + "mkdirp": "^0.5.1", + "os-tmpdir": "^1.0.1", "uid2": "0.0.3" } }, @@ -13918,9 +14578,9 @@ "integrity": "sha1-DaSsL3PP95JMgfpN4BjKViyisKc=", "dev": true, "requires": { - "array-filter": "1.0.0", + "array-filter": "^1.0.0", "indexof": "0.0.1", - "object-keys": "1.0.12" + "object-keys": "^1.0.0" } }, "universalify": { @@ -13941,8 +14601,8 @@ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -13951,9 +14611,9 @@ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { "isobject": { @@ -13993,16 +14653,16 @@ "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", "dev": true, "requires": { - "boxen": "1.3.0", - "chalk": "2.4.1", - "configstore": "3.1.2", - "import-lazy": "2.1.0", - "is-ci": "1.1.0", - "is-installed-globally": "0.1.0", - "is-npm": "1.0.0", - "latest-version": "3.1.0", - "semver-diff": "2.1.0", - "xdg-basedir": "3.0.0" + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" } }, "uri-js": { @@ -14011,7 +14671,7 @@ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { - "punycode": "2.1.1" + "punycode": "^2.1.0" }, "dependencies": { "punycode": { @@ -14034,7 +14694,7 @@ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "dev": true, "requires": { - "prepend-http": "1.0.4" + "prepend-http": "^1.0.1" } }, "url-to-options": { @@ -14050,21 +14710,10 @@ "dev": true }, "use": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", - "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true }, "util-deprecate": { "version": "1.0.2", @@ -14088,8 +14737,8 @@ "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "dev": true, "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "validate-npm-package-name": { @@ -14098,7 +14747,7 @@ "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "dev": true, "requires": { - "builtins": "1.0.3" + "builtins": "^1.0.3" } }, "vary": { @@ -14138,9 +14787,9 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" } }, "vise": { @@ -14149,7 +14798,7 @@ "integrity": "sha512-kBFZLmiL1Vm3rHXphkhvvAcsjgeQXRrOFCbJb0I50YZZP4HGRNH+xGzK3matIMcpbsfr3I02u9odj4oCD0TWgA==", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "wbuf": { @@ -14158,7 +14807,7 @@ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, "requires": { - "minimalistic-assert": "1.0.1" + "minimalistic-assert": "^1.0.0" } }, "well-known-symbols": { @@ -14173,7 +14822,7 @@ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -14188,7 +14837,7 @@ "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", "dev": true, "requires": { - "string-width": "2.1.1" + "string-width": "^2.1.1" } }, "window-size": { @@ -14210,8 +14859,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -14220,7 +14869,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { @@ -14229,9 +14878,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "strip-ansi": { @@ -14240,7 +14889,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } } } @@ -14256,8 +14905,8 @@ "integrity": "sha512-QCm3omWNJUseqrSzwX2QZi1rBbmCfbFHJAXputLLyZ37VSiFnSYQB0ms/mPnSvrlIu7GVm89Y/gBNhSY26uVIQ==", "dev": true, "requires": { - "boom": "7.2.0", - "hoek": "5.0.3" + "boom": "7.x.x", + "hoek": "5.x.x" } }, "write": { @@ -14266,7 +14915,7 @@ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "write-file-atomic": { @@ -14275,9 +14924,9 @@ "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" } }, "write-json-file": { @@ -14286,12 +14935,12 @@ "integrity": "sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=", "dev": true, "requires": { - "detect-indent": "5.0.0", - "graceful-fs": "4.1.11", - "make-dir": "1.3.0", - "pify": "3.0.0", - "sort-keys": "2.0.0", - "write-file-atomic": "2.3.0" + "detect-indent": "^5.0.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "pify": "^3.0.0", + "sort-keys": "^2.0.0", + "write-file-atomic": "^2.0.0" }, "dependencies": { "detect-indent": { @@ -14308,8 +14957,8 @@ "integrity": "sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw==", "dev": true, "requires": { - "sort-keys": "2.0.0", - "write-json-file": "2.3.0" + "sort-keys": "^2.0.0", + "write-json-file": "^2.2.0" } }, "xdg-basedir": { @@ -14346,40 +14995,55 @@ "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", "dev": true, "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "9.0.2" + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" }, "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, "cliui": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "yargs-parser": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", + "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "dev": true, + "requires": { + "camelcase": "^4.1.0" } } } }, "yargs-parser": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", + "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { @@ -14389,6 +15053,12 @@ "dev": true } } + }, + "ylru": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.2.1.tgz", + "integrity": "sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ==", + "dev": true } } } From 9642bf6e3737e0440f3a29c47c23554c3385a6d0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Tue, 17 Jul 2018 16:24:17 -0700 Subject: [PATCH 127/527] chore(deps): update dependency eslint-plugin-node to v7 (#170) --- handwritten/error-reporting/package-lock.json | 78 +++++++++++++++---- handwritten/error-reporting/package.json | 2 +- 2 files changed, 63 insertions(+), 17 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index 0ff6f89575d..bfddd4e946a 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -296,6 +296,7 @@ "version": "0.1.4", "bundled": true, "dev": true, + "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -1424,7 +1425,8 @@ "longest": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "loose-envify": { "version": "1.3.1", @@ -3134,6 +3136,7 @@ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, + "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -5842,18 +5845,44 @@ } } }, + "eslint-plugin-es": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-1.3.1.tgz", + "integrity": "sha512-9XcVyZiQRVeFjqHw8qHNDAZcQLqaHlOGGpeYqzYh8S4JYCWTCO3yzyen8yVmA5PratfzTRWDwCOFphtDEG+w/w==", + "dev": true, + "requires": { + "eslint-utils": "^1.3.0", + "regexpp": "^2.0.0" + }, + "dependencies": { + "regexpp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.0.tgz", + "integrity": "sha512-g2FAVtR8Uh8GO1Nv5wpxW7VFVwHcCEr4wyA8/MHiRkO8uHoR5ntAA8Uq3P1vvMTX/BeQiRVSpDGLd+Wn5HNOTA==", + "dev": true + } + } + }, "eslint-plugin-node": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", - "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-7.0.1.tgz", + "integrity": "sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw==", "dev": true, "requires": { - "ignore": "^3.3.6", + "eslint-plugin-es": "^1.3.1", + "eslint-utils": "^1.3.1", + "ignore": "^4.0.2", "minimatch": "^3.0.4", - "resolve": "^1.3.3", - "semver": "^5.4.1" + "resolve": "^1.8.1", + "semver": "^5.5.0" }, "dependencies": { + "ignore": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.2.tgz", + "integrity": "sha512-uoxnT7PYpyEnsja+yX+7v49B7LXxmzDJ2JALqHH3oEGzpM2U1IGcbfnOr8Dt57z3B/UWs7/iAgPFbmye8m4I0g==", + "dev": true + }, "resolve": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", @@ -6906,12 +6935,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -6926,17 +6957,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -7053,7 +7087,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -7065,6 +7100,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -7079,6 +7115,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -7086,12 +7123,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.2.4", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -7110,6 +7149,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -7190,7 +7230,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -7202,6 +7243,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -7323,6 +7365,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -9226,7 +9269,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true + "dev": true, + "optional": true }, "loose-envify": { "version": "1.4.0", @@ -9965,6 +10009,7 @@ "version": "0.1.4", "bundled": true, "dev": true, + "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -10907,7 +10952,8 @@ "longest": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "lru-cache": { "version": "4.1.3", diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index f8e9f73de75..0b592165e87 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -94,7 +94,7 @@ "cpy-cli": "^2.0.0", "eslint": "^5.0.0", "eslint-config-prettier": "^2.9.0", - "eslint-plugin-node": "^6.0.1", + "eslint-plugin-node": "^7.0.0", "eslint-plugin-prettier": "^2.6.0", "express": "^4.16.3", "express-serve-static-core": "^0.1.1", From 2a750a05e639be7af14b035b5fb7972333d77a66 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Wed, 18 Jul 2018 00:58:20 -0700 Subject: [PATCH 128/527] test: use strictEqual in tests (#171) --- handwritten/error-reporting/system-test/error-reporting.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index 1f4b2446c64..04254266207 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -522,7 +522,7 @@ describe('error-reporting', () => { assert.strictEqual(matchedErrors.length, 1); const errItem = matchedErrors[0]; assert.ok(errItem); - assert.equal(errItem.count, 1); + assert.strictEqual(errItem.count, 1); const rep = errItem.representative; assert.ok(rep); // Ensure the stack trace in the message does not contain any frames From 5f4cf1a2b4935728c013110db1ce273fd4e492ee Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Mon, 23 Jul 2018 17:57:02 -0700 Subject: [PATCH 129/527] chore(deps): lock file maintenance (#172) --- handwritten/error-reporting/package-lock.json | 110 ++++++++---------- 1 file changed, 48 insertions(+), 62 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index bfddd4e946a..87a3e747f01 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -236,9 +236,9 @@ } }, "@google-cloud/nodejs-repo-tools": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@google-cloud/nodejs-repo-tools/-/nodejs-repo-tools-2.3.1.tgz", - "integrity": "sha512-yIOn92sjHwpF/eORQWjv7QzQPcESSRCsZshdmeX40RGRlB0+HPODRDghZq0GiCqe6zpIYZvKmiKiYd3u52P/7Q==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@google-cloud/nodejs-repo-tools/-/nodejs-repo-tools-2.3.2.tgz", + "integrity": "sha512-Zah0wZcVifSpKIy5ulTFyGpHYAA8h/biYy8X7J2UvaXga5XlyruKrXo2K1VmBxB9MDPXa0Duz8M003pe2Ras3w==", "dev": true, "requires": { "ava": "0.25.0", @@ -296,7 +296,6 @@ "version": "0.1.4", "bundled": true, "dev": true, - "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -1425,8 +1424,7 @@ "longest": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "loose-envify": { "version": "1.3.1", @@ -2836,18 +2834,18 @@ "dev": true }, "@types/lodash.assign": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/@types/lodash.assign/-/lodash.assign-4.2.3.tgz", - "integrity": "sha512-L8D6y0a88Uv3/gdqUpmfHPGSFo676ggbtl5an3FgR4AzbvR+PKNdUMPr6F6Q/U3n3lCoCoV+WPt1vqJGbgPZ6Q==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@types/lodash.assign/-/lodash.assign-4.2.4.tgz", + "integrity": "sha512-vQZhkRxzcp8WfOCN5ss/MJRnReJlyS5bRL7eChoUp38edH04UefqSXwSa873SUwbF87USU4J5iCZi+oc1Jhu2A==", "dev": true, "requires": { "@types/lodash": "*" } }, "@types/lodash.has": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/@types/lodash.has/-/lodash.has-4.5.3.tgz", - "integrity": "sha512-McmKJoXdSxMYIQzVWKSEGrHnTwJ1ErqXvsTQjFeGEhBmypgCjuANDSqxl4LKaKcoF4mNxMqSzH7wP4yQ0deLeQ==", + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/@types/lodash.has/-/lodash.has-4.5.4.tgz", + "integrity": "sha512-TFhnjl9ggVe/ZDjcgUWlvu3ULkysXJ+9OasNd7dqXHWcRzULzZyVr7n021ds3ygSX1kcxvf/7wanVD19g+tdsA==", "dev": true, "requires": { "@types/lodash": "*" @@ -3136,7 +3134,6 @@ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, - "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -4224,9 +4221,9 @@ } }, "cache-content-type": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.0.tgz", - "integrity": "sha512-cVbmz0rAnsK3jPcQAlK4IDUUPaYAe4yl7MAfiKftHAcrW/azF1yikn2wE/8VAcC3yWtXi3lvXwsF1akK27Vo7w==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", + "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", "dev": true, "requires": { "mime-types": "^2.1.18", @@ -5737,9 +5734,9 @@ } }, "eslint": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.1.0.tgz", - "integrity": "sha512-DyH6JsoA1KzA5+OSWFjg56DFJT+sDLO0yokaPZ9qY0UEmYrPA1gEX/G1MnVkmRDsksG4H1foIVz2ZXXM3hHYvw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.2.0.tgz", + "integrity": "sha512-zlggW1qp7/TBjwLfouRoY7eWXrXwJZFqCdIxxh0/LVB/QuuKuIMkzyUZEcDo6LBadsry5JcEMxIqd3H/66CXVg==", "dev": true, "requires": { "ajv": "^6.5.0", @@ -5758,7 +5755,7 @@ "functional-red-black-tree": "^1.0.1", "glob": "^7.1.2", "globals": "^11.7.0", - "ignore": "^3.3.3", + "ignore": "^4.0.2", "imurmurhash": "^0.1.4", "inquirer": "^5.2.0", "is-resolvable": "^1.1.0", @@ -5820,6 +5817,12 @@ "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", "dev": true }, + "ignore": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.2.tgz", + "integrity": "sha512-uoxnT7PYpyEnsja+yX+7v49B7LXxmzDJ2JALqHH3oEGzpM2U1IGcbfnOr8Dt57z3B/UWs7/iAgPFbmye8m4I0g==", + "dev": true + }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -6254,9 +6257,9 @@ "dev": true }, "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "extend-shallow": { "version": "3.0.2", @@ -6935,14 +6938,12 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -6957,20 +6958,17 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -7087,8 +7085,7 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -7100,7 +7097,6 @@ "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -7115,7 +7111,6 @@ "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -7123,14 +7118,12 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.2.4", "bundled": true, "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -7149,7 +7142,6 @@ "version": "0.5.1", "bundled": true, "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -7230,8 +7222,7 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -7243,7 +7234,6 @@ "version": "1.4.0", "bundled": true, "dev": true, - "optional": true, "requires": { "wrappy": "1" } @@ -7365,7 +7355,6 @@ "version": "1.0.2", "bundled": true, "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -9269,8 +9258,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true, - "optional": true + "dev": true }, "loose-envify": { "version": "1.4.0", @@ -9561,16 +9549,16 @@ "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==" }, "mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" + "version": "1.35.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz", + "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==" }, "mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "version": "2.1.19", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", + "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", "requires": { - "mime-db": "~1.33.0" + "mime-db": "~1.35.0" } }, "mimic-fn": { @@ -9882,9 +9870,9 @@ } }, "nock": { - "version": "9.4.2", - "resolved": "https://registry.npmjs.org/nock/-/nock-9.4.2.tgz", - "integrity": "sha512-WFRlGfJJ17uyXKAIFKXqoq5o49W7aYjfH3Zges133kYGwL6PuSjthP50osQJJNMQoz0f0SodmREjzo8eLh/Bxw==", + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/nock/-/nock-9.4.3.tgz", + "integrity": "sha512-inJFXR3REBvHbZy6nVVwaoKbVTR8Y4Ag051Y/pd2pNPy7HDYtQkenfilBwxToNsW9p1RTeBUml4SPK/mWrFihA==", "dev": true, "requires": { "chai": "^4.1.2", @@ -10009,7 +9997,6 @@ "version": "0.1.4", "bundled": true, "dev": true, - "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -10952,8 +10939,7 @@ "longest": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "lru-cache": { "version": "4.1.3", @@ -14434,9 +14420,9 @@ } }, "tsutils": { - "version": "2.27.2", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.27.2.tgz", - "integrity": "sha512-qf6rmT84TFMuxAKez2pIfR8UCai49iQsfB7YWVjV1bKpy/d0PWT5rEOSM6La9PiHZ0k1RRZQiwVdVJfQ3BPHgg==", + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.28.0.tgz", + "integrity": "sha512-bh5nAtW0tuhvOJnx1GLRn5ScraRLICGyJV5wJhtRWOLsxW70Kk5tZtpK3O/hW6LDnqKS9mlUMPZj9fEMJ0gxqA==", "dev": true, "requires": { "tslib": "^1.8.1" From 689b0f92103c38bf00c0f61a6ef41fe657a268e5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Mon, 23 Jul 2018 19:38:59 -0700 Subject: [PATCH 130/527] chore(deps): lock file maintenance (#173) --- handwritten/error-reporting/package-lock.json | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index 87a3e747f01..f4b16ea9f7a 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -2852,54 +2852,54 @@ } }, "@types/lodash.maxby": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/@types/lodash.maxby/-/lodash.maxby-4.6.3.tgz", - "integrity": "sha512-5AMk6874T1RMxtWkW0I4ORFptU508mTb8jYG0gaNCMDzX6kLn/VNQXewL6dasZd4dj/hSbM8dt7msLuI3rSIPQ==", + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/@types/lodash.maxby/-/lodash.maxby-4.6.4.tgz", + "integrity": "sha512-2YNhKemFkV0LgR2MxET/QQvrUYcBeNpesfSu072hI4q2V3BqVkVebvjd0ZTNy8D15vu47xVQVqcgOm59xTuO/w==", "dev": true, "requires": { "@types/lodash": "*" } }, "@types/lodash.merge": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/@types/lodash.merge/-/lodash.merge-4.6.3.tgz", - "integrity": "sha512-bOCCutkbehfCeiSqJO5XcVKjsJvX28dgvjhs4aMmBAHAsOy2oOJQwHuIZ0elI1E94qQIdEsCvz8oLgUumd6teA==", + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/@types/lodash.merge/-/lodash.merge-4.6.4.tgz", + "integrity": "sha512-usLWpRAicaNbx0VfNDREEgGWvp88inclJLXLJ3NpT83eUE4O05LJdYNRTofHq6pb/NiMZjzNVJHdgPvPzMfu6g==", "dev": true, "requires": { "@types/lodash": "*" } }, "@types/lodash.omit": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/@types/lodash.omit/-/lodash.omit-4.5.3.tgz", - "integrity": "sha512-a6VbeE+JjMQ3rKsQVRjle02E+iKPTsT7izzFRk4xJvv4TBcO85Lrpo+8n6iqsiH8yZ8mHy0LOmx7MVgO8OfovQ==", + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/@types/lodash.omit/-/lodash.omit-4.5.4.tgz", + "integrity": "sha512-hv7Q3zXtRW+ruFC4Dp2y8AwMEyj6jiJHumDSnfCHNzE6HmFT8p7moTklM7Jzk+RJNKHfioJDnWHpv8GTnGXRnQ==", "dev": true, "requires": { "@types/lodash": "*" } }, "@types/lodash.omitby": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/@types/lodash.omitby/-/lodash.omitby-4.6.3.tgz", - "integrity": "sha512-IfMZru9AegVIu0lkOXc/ncCOR3zzC6FKTVuBHBd9PkmKbOCn5zFORT22Wf/fZ9SBr2HmaYLPkFhf5C7A7k/N9A==", + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/@types/lodash.omitby/-/lodash.omitby-4.6.4.tgz", + "integrity": "sha512-d47RYf2KA/Re0rDUWHfYPMSeOLHUt7tLPOfo0DcaKrcpPRqh/FphIf4NEPmxZ2kuXeHgW064YnFLffWQVfr42A==", "dev": true, "requires": { "@types/lodash": "*" } }, "@types/lodash.pick": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/@types/lodash.pick/-/lodash.pick-4.4.3.tgz", - "integrity": "sha512-7VR26qH/bzRBn8DN6HKWYwBB6dNo1dNSdc0nYQwPp5tua6u2dpHHCFccszvFKBdR2CjSEbL5hsqQul03P4COjA==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@types/lodash.pick/-/lodash.pick-4.4.4.tgz", + "integrity": "sha512-54nf0ndJlN3ULz9fLceKhYJZfwf50jAqqPJyI3/UbU/qxyuMSgNC3niWhFqmVAnGPoxMwAwNQCYTXG0Gv2lfPg==", "dev": true, "requires": { "@types/lodash": "*" } }, "@types/lodash.random": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@types/lodash.random/-/lodash.random-3.2.3.tgz", - "integrity": "sha512-JMCA9llou2Ye9mhz0H/7DaPrJ6PgmRb6ClnPGPzfoX7JUu9Q6NuRZON5INrTQH5LWahzqaZdeMwHyn8MGRkXoA==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@types/lodash.random/-/lodash.random-3.2.4.tgz", + "integrity": "sha512-iU+HQzaZPP6aTqb0PkLq8P8VRw8TrRP72DvVd/C0YSZHuYRjwvrjD8AabzK82c5xrFSxddv5ur9ptKRFa5HEYQ==", "dev": true, "requires": { "@types/lodash": "*" From 1fe3ce2102dd154e99691d87c651197cc01be355 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Tue, 24 Jul 2018 09:50:03 -0700 Subject: [PATCH 131/527] chore(deps): lock file maintenance (#174) --- handwritten/error-reporting/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index f4b16ea9f7a..7fee8bb01ca 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -2906,9 +2906,9 @@ } }, "@types/lodash.without": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/@types/lodash.without/-/lodash.without-4.4.3.tgz", - "integrity": "sha512-oD30pRigg97PfyF8u3WGkRnn3MPS/f2pwYf0s0dNeGOeScbZ1bo4BYBK7dab/lpX6EbUjoWAtLLMQW+LxlJpcQ==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@types/lodash.without/-/lodash.without-4.4.4.tgz", + "integrity": "sha512-WAhnX3b36nB38Du32TCgBElHPJrm0BQCeOy4vfTMsVz4d5daCqSfGIvi6TcGvY0Q0l2or9wwvBt6m0X2xwxjqw==", "dev": true, "requires": { "@types/lodash": "*" From 19b0ae9a7d4c75972965c7dc9d3e8bcf66ac42a5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Tue, 24 Jul 2018 10:04:29 -0700 Subject: [PATCH 132/527] chore(deps): lock file maintenance (#175) --- handwritten/error-reporting/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index 7fee8bb01ca..8c30976ed9c 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -2828,9 +2828,9 @@ "dev": true }, "@types/lodash": { - "version": "4.14.112", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.112.tgz", - "integrity": "sha512-jDD7sendv3V7iwyRXSlECOR8HCtMN2faVA9ngLdHHihSVIwY7nbfsKl2kA6fimUDU1i5l/zgpG3aevwWnN3zCQ==", + "version": "4.14.113", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.113.tgz", + "integrity": "sha512-CINMgfKUnif7fWBqPuGUsZrkER8jGU+ufyhD7FuotPqC1rRViHOJVgPuanN2Y8Vv1TqRnHDKlMnyEQLNq9eMjA==", "dev": true }, "@types/lodash.assign": { From 81cdfd6a737ac4a97801f416a1f700d02cdac3c3 Mon Sep 17 00:00:00 2001 From: Ali Ijaz Sheikh Date: Fri, 27 Jul 2018 09:30:50 -0700 Subject: [PATCH 133/527] chore: switch to console-log-level for logging (#176) Fixes #12 --- handwritten/error-reporting/package-lock.json | 13 +++- handwritten/error-reporting/package.json | 2 + .../error-reporting/src/configuration.ts | 8 +-- .../src/google-apis/auth-client.ts | 4 +- handwritten/error-reporting/src/index.ts | 4 +- .../error-reporting/src/interfaces/manual.ts | 3 +- handwritten/error-reporting/src/logger.ts | 47 +++++++++----- .../src/populate-error-message.ts | 3 +- .../src/request-extractors/manual.ts | 3 +- .../system-test/error-reporting.ts | 6 +- .../system-test/test-install.ts | 4 +- .../test/fixtures/configuration.ts | 4 +- .../test/unit/google-apis/auth-client.ts | 63 +++++++++++-------- .../test/unit/interfaces/hapi.ts | 3 +- .../test/unit/interfaces/manual.ts | 4 +- .../error-reporting/test/unit/logger.ts | 6 +- .../utils/errors-api-transport.ts | 4 +- 17 files changed, 107 insertions(+), 74 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index 8c30976ed9c..7f833065684 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -2622,7 +2622,7 @@ }, "@sinonjs/formatio": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", + "resolved": "http://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", "integrity": "sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg==", "dev": true, "requires": { @@ -2684,6 +2684,12 @@ "@types/node": "*" } }, + "@types/console-log-level": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@types/console-log-level/-/console-log-level-1.4.0.tgz", + "integrity": "sha512-x+OscEQwcx5Biair4enH7ov9W+clcqUWaZRaxn5IkT4yNWWjRr2oiYDkY/x1uXSTVZOQ2xlbFQySaQGB+VdXGQ==", + "dev": true + }, "@types/cookies": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.1.tgz", @@ -4744,6 +4750,11 @@ "xdg-basedir": "^3.0.0" } }, + "console-log-level": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/console-log-level/-/console-log-level-1.4.0.tgz", + "integrity": "sha1-QDWBi+6jflhQoMA8jUUMpfLNEhc=" + }, "content": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/content/-/content-4.0.5.tgz", diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 0b592165e87..08f035aa963 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -55,12 +55,14 @@ }, "dependencies": { "@google-cloud/common": "^0.20.3", + "console-log-level": "^1.4.0", "is": "^3.2.1", "lodash.has": "^4.5.2" }, "devDependencies": { "@google-cloud/nodejs-repo-tools": "^2.3.0", "@types/boom": "^7.2.0", + "@types/console-log-level": "^1.4.0", "@types/express": "^4.11.1", "@types/express-serve-static-core": "^4.11.1", "@types/extend": "^3.0.0", diff --git a/handwritten/error-reporting/src/configuration.ts b/handwritten/error-reporting/src/configuration.ts index ccedfd0d341..b4370f14250 100644 --- a/handwritten/error-reporting/src/configuration.ts +++ b/handwritten/error-reporting/src/configuration.ts @@ -15,7 +15,7 @@ */ -import {Logger} from '@google-cloud/common'; +import consoleLogLevel = require('console-log-level'); import * as is from 'is'; import {has} from 'lodash'; @@ -25,6 +25,8 @@ const isString = is.string; const isNumber = is.number; const env = process.env; +export type Logger = consoleLogLevel.Logger; + export interface ConfigurationOptions { projectId?: string; keyFilename?: string; @@ -77,10 +79,6 @@ export class Configuration { /** * The _logger property caches the logger instance created at the top-level * for configuration logging purposes. - * @memberof Configuration - * @private - * @type {Object} - * @defaultvalue Object */ this._logger = logger; /** diff --git a/handwritten/error-reporting/src/google-apis/auth-client.ts b/handwritten/error-reporting/src/google-apis/auth-client.ts index 2b54c16e5e5..c60d8f142d9 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.ts +++ b/handwritten/error-reporting/src/google-apis/auth-client.ts @@ -16,10 +16,10 @@ const pkg = require('../../../package.json'); import * as is from 'is'; -import {Configuration} from '../configuration'; +import {Configuration, Logger} from '../configuration'; import {ErrorMessage} from '../classes/error-message'; import * as http from 'http'; -import {Service, Logger, ServiceOptions} from '@google-cloud/common'; +import {Service, ServiceOptions} from '@google-cloud/common'; /* @const {Array} list of scopes needed to work with the errors api. */ const SCOPES = ['https://www.googleapis.com/auth/cloud-platform']; diff --git a/handwritten/error-reporting/src/index.ts b/handwritten/error-reporting/src/index.ts index b29eef31137..0cac6c121c0 100644 --- a/handwritten/error-reporting/src/index.ts +++ b/handwritten/error-reporting/src/index.ts @@ -18,10 +18,8 @@ * @module error-reporting */ -import {Logger} from '@google-cloud/common'; - import {ErrorMessage} from './classes/error-message'; -import {Configuration, ConfigurationOptions} from './configuration'; +import {Configuration, ConfigurationOptions, Logger} from './configuration'; import {RequestHandler as AuthClient} from './google-apis/auth-client'; // Begin error reporting interfaces import * as expressInterface from './interfaces/express'; diff --git a/handwritten/error-reporting/src/interfaces/manual.ts b/handwritten/error-reporting/src/interfaces/manual.ts index 08ca0ee47dd..ccee56a092e 100644 --- a/handwritten/error-reporting/src/interfaces/manual.ts +++ b/handwritten/error-reporting/src/interfaces/manual.ts @@ -14,12 +14,11 @@ * limitations under the License. */ -import {Logger} from '@google-cloud/common'; import * as http from 'http'; import * as is from 'is'; import {ErrorMessage} from '../classes/error-message'; -import {Configuration} from '../configuration'; +import {Configuration, Logger} from '../configuration'; import {RequestHandler} from '../google-apis/auth-client'; import {populateErrorMessage} from '../populate-error-message'; import {manualRequestInformationExtractor} from '../request-extractors/manual'; diff --git a/handwritten/error-reporting/src/logger.ts b/handwritten/error-reporting/src/logger.ts index 0cc0aa78d47..125cbb79af1 100644 --- a/handwritten/error-reporting/src/logger.ts +++ b/handwritten/error-reporting/src/logger.ts @@ -16,14 +16,31 @@ import * as is from 'is'; import {has} from 'lodash'; +import consoleLogLevel = require('console-log-level'); const packageJson = require('../../package.json'); -import {ConfigurationOptions} from './configuration'; -import {Logger} from '@google-cloud/common'; +import {ConfigurationOptions, Logger} from './configuration'; + + +const LEVELNAMES: consoleLogLevel.LogLevelNames[] = + ['fatal', 'error', 'warn', 'info', 'debug', 'trace']; +const DEFAULT_LEVEL = 2; // warn. + +function logLevelToName(level: number): consoleLogLevel.LogLevelNames { + if (typeof level === 'string') { + level = Number(level); + } + if (typeof level !== 'number') { + level = DEFAULT_LEVEL; + } + if (level < 0) level = 0; + if (level > 4) level = 4; + return LEVELNAMES[level]; +} /** - * Creates an instance of the Google Cloud Diagnostics logger class. This + * Creates an instance of the a Logger class. This * instance will be configured to log at the level given by the environment or * the runtime configuration property `logLevel`. If neither of these inputs are * given or valid then the logger will default to logging at log level `WARN`. @@ -39,27 +56,27 @@ import {Logger} from '@google-cloud/common'; * @returns {Object} - returns an instance of the logger created with the given/ * default options */ -export function createLogger(initConfiguration?: ConfigurationOptions) { +export function createLogger(config?: ConfigurationOptions): Logger { // Default to log level: warn (2) - const DEFAULT_LEVEL = Logger.LEVELS[2]; let level = DEFAULT_LEVEL; if (has(process.env, 'GCLOUD_ERRORS_LOGLEVEL')) { // Cast env string as integer - level = - Logger.LEVELS[~~process.env.GCLOUD_ERRORS_LOGLEVEL!] || DEFAULT_LEVEL; - } else if ( - is.object(initConfiguration) && has(initConfiguration, 'logLevel')) { - if (is.string(initConfiguration!.logLevel)) { + level = ~~process.env.GCLOUD_ERRORS_LOGLEVEL! || DEFAULT_LEVEL; + } else if (is.object(config) && has(config, 'logLevel')) { + if (is.string(config!.logLevel)) { // Cast string as integer - level = Logger.LEVELS[~~initConfiguration!.logLevel!] || DEFAULT_LEVEL; - } else if (is.number(initConfiguration!.logLevel)) { - level = - Logger.LEVELS[Number(initConfiguration!.logLevel!)] || DEFAULT_LEVEL; + level = ~~config!.logLevel! || DEFAULT_LEVEL; + } else if (is.number(config!.logLevel)) { + level = Number(config!.logLevel!) || DEFAULT_LEVEL; } else { throw new Error( 'config.logLevel must be a number or decimal ' + 'representation of a number in string form'); } } - return new Logger({level, tag: packageJson.name}); + return consoleLogLevel({ + stderr: true, + prefix: (level: string) => `${level.toUpperCase()}:${packageJson.name}:`, + level: logLevelToName(level) + }); } diff --git a/handwritten/error-reporting/src/populate-error-message.ts b/handwritten/error-reporting/src/populate-error-message.ts index ae4ae2dd69e..a3c4977a9ef 100644 --- a/handwritten/error-reporting/src/populate-error-message.ts +++ b/handwritten/error-reporting/src/populate-error-message.ts @@ -14,8 +14,9 @@ * limitations under the License. */ -import {has} from 'lodash'; import * as is from 'is'; +import {has} from 'lodash'; + const isObject = is.object; import {buildStackTrace} from './build-stack-trace'; diff --git a/handwritten/error-reporting/src/request-extractors/manual.ts b/handwritten/error-reporting/src/request-extractors/manual.ts index b5c268e6b6a..db986775bdb 100644 --- a/handwritten/error-reporting/src/request-extractors/manual.ts +++ b/handwritten/error-reporting/src/request-extractors/manual.ts @@ -14,8 +14,9 @@ * limitations under the License. */ -import {has} from 'lodash'; import * as is from 'is'; +import {has} from 'lodash'; + const isObject = is.object; const isArray = is.array; // TODO: Address the error where `is` does not have a `fn` property diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index 04254266207..22b5404e4ee 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -451,8 +451,8 @@ describe('error-reporting', () => { // more carefully reinitialize the error-reporting library without // interfering with existing listeners of the 'unhandledRejection' event. assert.strictEqual(process.listenerCount('unhandledRejection'), 0); - oldLogger = console.log; - console.log = function(this) { + oldLogger = console.error; + console.error = function(this) { const text = util.format.apply(null, arguments); oldLogger(text); logOutput += text; @@ -480,7 +480,7 @@ describe('error-reporting', () => { } after(done => { - console.log = oldLogger; + console.error = oldLogger; if (transport) { transport.deleteAllEvents(err => { assert.ifError(err); diff --git a/handwritten/error-reporting/system-test/test-install.ts b/handwritten/error-reporting/system-test/test-install.ts index 50febe3904a..1809601b5d0 100644 --- a/handwritten/error-reporting/system-test/test-install.ts +++ b/handwritten/error-reporting/system-test/test-install.ts @@ -340,6 +340,4 @@ server.head('/hello/:name', respond); } ]; -check.testInstallation(TS_CODE_ARRAY, JS_CODE_ARRAY, { - timeout: 2*60*1000 -}); +check.testInstallation(TS_CODE_ARRAY, JS_CODE_ARRAY, {timeout: 2 * 60 * 1000}); diff --git a/handwritten/error-reporting/test/fixtures/configuration.ts b/handwritten/error-reporting/test/fixtures/configuration.ts index 86391068364..9e176a480e1 100644 --- a/handwritten/error-reporting/test/fixtures/configuration.ts +++ b/handwritten/error-reporting/test/fixtures/configuration.ts @@ -14,9 +14,7 @@ * limitations under the License. */ -import {Logger} from '@google-cloud/common'; - -import {Configuration, ConfigurationOptions} from '../../src/configuration'; +import {Configuration, ConfigurationOptions, Logger} from '../../src/configuration'; export class FakeConfiguration extends Configuration { constructor(config: ConfigurationOptions|undefined, logger?: Logger) { diff --git a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts index 5d935b880dd..121da557fa9 100644 --- a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts +++ b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts @@ -14,15 +14,14 @@ * limitations under the License. */ -import {Logger} from '@google-cloud/common'; import * as assert from 'assert'; import * as proxyquire from 'proxyquire'; -import {Configuration, ConfigurationOptions} from '../../../src/configuration'; +import {Configuration, ConfigurationOptions, Logger} from '../../../src/configuration'; function verifyReportedMessage( config1: ConfigurationOptions, errToReturn: Error|null|undefined, - expectedLogs: {error?: string; info?: string;}) { + expectedLogs: {error?: string; info?: string;}, done: () => void) { class ServiceStub { authClient: {}; request: {}; @@ -62,33 +61,43 @@ function verifyReportedMessage( new RequestHandler(config2, logger); setImmediate(() => { assert.deepStrictEqual(logs, expectedLogs); + done(); }); } describe('RequestHandler', () => { - it('should not request OAuth2 token if key is provided', () => { - const config = { - ignoreEnvironmentCheck: true, - key: 'key', - }; - const message = 'Made OAuth2 Token Request'; - verifyReportedMessage(config, new Error(message), { - info: 'API key provided; skipping OAuth2 token request.', - }); - }); + it('should not request OAuth2 token if key is provided', + (done: () => void) => { + const config = { + ignoreEnvironmentCheck: true, + key: 'key', + }; + const message = 'Made OAuth2 Token Request'; + verifyReportedMessage( + config, new Error(message), { + info: 'API key provided; skipping OAuth2 token request.', + }, + done); + }) + .timeout(4000); - it('should issue a warning if it cannot communicate with the API', () => { - const config = {ignoreEnvironmentCheck: true}; - const message = 'Test Error'; - verifyReportedMessage(config, new Error(message), { - error: 'Unable to find credential information on instance. This ' + - 'library will be unable to communicate with the Stackdriver API to ' + - 'save errors. Message: ' + message, - }); - }); + it('should issue a warning if it cannot communicate with the API', + (done: () => void) => { + const config = {ignoreEnvironmentCheck: true}; + const message = 'Test Error'; + verifyReportedMessage( + config, new Error(message), { + error: 'Unable to find credential information on instance. This ' + + 'library will be unable to communicate with the Stackdriver API to ' + + 'save errors. Message: ' + message, + }, + done); + }); - it('should not issue a warning if it can communicate with the API', () => { - const config = {ignoreEnvironmentCheck: true}; - verifyReportedMessage(config, null, {}); - verifyReportedMessage(config, undefined, {}); - }); + it('should not issue a warning if it can communicate with the API', + (done: () => void) => { + const config = {ignoreEnvironmentCheck: true}; + verifyReportedMessage(config, null, {}, () => { + verifyReportedMessage(config, undefined, {}, done); + }); + }); }); diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.ts b/handwritten/error-reporting/test/unit/interfaces/hapi.ts index 7fcbdd25b21..f078b98a4f3 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.ts +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.ts @@ -14,8 +14,9 @@ * limitations under the License. */ -import {has} from 'lodash'; import * as is from 'is'; +import {has} from 'lodash'; + const isFunction = (is as {} as {fn: Function}).fn; const isObject = is.object; import * as assert from 'assert'; diff --git a/handwritten/error-reporting/test/unit/interfaces/manual.ts b/handwritten/error-reporting/test/unit/interfaces/manual.ts index 28d682281ee..d5b7e0b6390 100644 --- a/handwritten/error-reporting/test/unit/interfaces/manual.ts +++ b/handwritten/error-reporting/test/unit/interfaces/manual.ts @@ -15,15 +15,17 @@ */ import * as assert from 'assert'; + +import {Logger} from '../../../src/configuration'; import * as manual from '../../../src/interfaces/manual'; import {FakeConfiguration as Configuration} from '../../fixtures/configuration'; + const config = new Configuration({}); (config as {} as {lacksCredentials: Function}).lacksCredentials = () => { return false; }; import {ErrorMessage} from '../../../src/classes/error-message'; import {RequestHandler} from '../../../src/google-apis/auth-client'; -import {Logger} from '@google-cloud/common'; import {RequestInformationContainer} from '../../../src/classes/request-information-container'; describe('Manual handler', () => { diff --git a/handwritten/error-reporting/test/unit/logger.ts b/handwritten/error-reporting/test/unit/logger.ts index ad4ef1b6680..a4794d583ea 100644 --- a/handwritten/error-reporting/test/unit/logger.ts +++ b/handwritten/error-reporting/test/unit/logger.ts @@ -63,10 +63,10 @@ describe('logger', () => { let text: string|undefined; beforeEach(() => { // eslint-disable-next-line no-console - oldLog = console.log; + oldLog = console.error; text = ''; // eslint-disable-next-line no-console - console.log = function(this) { + console.error = function(this) { oldLog.apply(this, arguments); for (let i = 0; i < arguments.length; i++) { text += arguments[i]; @@ -76,7 +76,7 @@ describe('logger', () => { afterEach(() => { text = undefined; // eslint-disable-next-line no-console - console.log = oldLog; + console.error = oldLog; }); it('Should print WARN logs by default', () => { const logger = createLogger(); diff --git a/handwritten/error-reporting/utils/errors-api-transport.ts b/handwritten/error-reporting/utils/errors-api-transport.ts index 22a78c9ce3a..815335e61ae 100644 --- a/handwritten/error-reporting/utils/errors-api-transport.ts +++ b/handwritten/error-reporting/utils/errors-api-transport.ts @@ -14,9 +14,7 @@ * limitations under the License. */ -import {Logger} from '@google-cloud/common'; - -import {Configuration} from '../src/configuration'; +import {Configuration, Logger} from '../src/configuration'; import {RequestHandler as AuthClient} from '../src/google-apis/auth-client'; export interface ServiceContext { From 1cac23c75fccaa271349f42af1146e44b4d54ace Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Mon, 30 Jul 2018 10:50:16 -0700 Subject: [PATCH 134/527] chore: move mocha options to mocha.opts (#177) --- handwritten/error-reporting/package-lock.json | 2 +- handwritten/error-reporting/package.json | 4 ++-- handwritten/error-reporting/test/mocha.opts | 4 ++++ 3 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 handwritten/error-reporting/test/mocha.opts diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index 7f833065684..0e2311dd35f 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -2622,7 +2622,7 @@ }, "@sinonjs/formatio": { "version": "2.0.0", - "resolved": "http://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", "integrity": "sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg==", "dev": true, "requires": { diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 08f035aa963..29b791a6c14 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -36,8 +36,8 @@ "lint": "eslint samples/ && gts check && jsgl --local .", "prettier": "prettier --write samples/*.js samples/*/*.js", "presystem-test": "npm run compile", - "system-test": "nyc --exclude=\"error-message.js\" mocha --require source-map-support/register build/system-test", - "cover": "nyc --exclude=\"fuzzer.js\" --reporter=lcov mocha --require intelli-espower-loader source-map-support/register build/test/unit build/test/unit/**/ && nyc report", + "system-test": "nyc --exclude=\"error-message.js\" mocha build/system-test", + "cover": "nyc --exclude=\"fuzzer.js\" --reporter=lcov mocha build/test/unit build/test/unit/**/ && nyc report", "presamples-test": "npm run compile", "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", "test-no-cover": "mocha build/test/unit build/test/unit/**/ --timeout 20000", diff --git a/handwritten/error-reporting/test/mocha.opts b/handwritten/error-reporting/test/mocha.opts new file mode 100644 index 00000000000..98bab23c258 --- /dev/null +++ b/handwritten/error-reporting/test/mocha.opts @@ -0,0 +1,4 @@ +--require intelli-espower-loader +--timeout 10000 +--require source-map-support/register + From 19aaa8b0bfc91218709b3cbb4e80c39bbdd02854 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Mon, 30 Jul 2018 16:03:04 -0700 Subject: [PATCH 135/527] chore(deps): update dependency typescript to v3 (#180) --- handwritten/error-reporting/package-lock.json | 46 +++++++++++++------ handwritten/error-reporting/package.json | 2 +- 2 files changed, 34 insertions(+), 14 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index 0e2311dd35f..53b04887748 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -296,6 +296,7 @@ "version": "0.1.4", "bundled": true, "dev": true, + "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -1424,7 +1425,8 @@ "longest": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "loose-envify": { "version": "1.3.1", @@ -3140,6 +3142,7 @@ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, + "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -6949,12 +6952,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -6969,17 +6974,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -7096,7 +7104,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -7108,6 +7117,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -7122,6 +7132,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -7129,12 +7140,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.2.4", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -7153,6 +7166,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -7233,7 +7247,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -7245,6 +7260,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -7366,6 +7382,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -9269,7 +9286,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true + "dev": true, + "optional": true }, "loose-envify": { "version": "1.4.0", @@ -10008,6 +10026,7 @@ "version": "0.1.4", "bundled": true, "dev": true, + "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -10950,7 +10969,8 @@ "longest": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "lru-cache": { "version": "4.1.3", @@ -14485,9 +14505,9 @@ "dev": true }, "typescript": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", - "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.0.1.tgz", + "integrity": "sha512-zQIMOmC+372pC/CCVLqnQ0zSBiY7HHodU7mpQdjiZddek4GMj31I3dUJ7gAs9o65X7mnRma6OokOkc6f9jjfBg==", "dev": true }, "uglify-js": { diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 29b791a6c14..2e64787164a 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -132,6 +132,6 @@ "rimraf": "^2.6.2", "source-map-support": "^0.5.6", "tmp": "0.0.33", - "typescript": "~2.9.2" + "typescript": "~3.0.0" } } From f78decd93fd7370c2d33188f4398212d1b21b661 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Mon, 30 Jul 2018 18:44:45 -0700 Subject: [PATCH 136/527] chore(deps): lock file maintenance (#181) --- handwritten/error-reporting/package-lock.json | 111 ++++++++---------- 1 file changed, 46 insertions(+), 65 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index 53b04887748..25239a4f741 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -236,9 +236,9 @@ } }, "@google-cloud/nodejs-repo-tools": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@google-cloud/nodejs-repo-tools/-/nodejs-repo-tools-2.3.2.tgz", - "integrity": "sha512-Zah0wZcVifSpKIy5ulTFyGpHYAA8h/biYy8X7J2UvaXga5XlyruKrXo2K1VmBxB9MDPXa0Duz8M003pe2Ras3w==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@google-cloud/nodejs-repo-tools/-/nodejs-repo-tools-2.3.3.tgz", + "integrity": "sha512-aow6Os43uhdgshSe/fr43ESHNl/kHhikim9AOqIMUzEb6mip6H4d8GFKgpO/yoqUUTIhCN3sbpkKktMI5mOQHw==", "dev": true, "requires": { "ava": "0.25.0", @@ -296,7 +296,6 @@ "version": "0.1.4", "bundled": true, "dev": true, - "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -1425,8 +1424,7 @@ "longest": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "loose-envify": { "version": "1.3.1", @@ -2766,9 +2764,9 @@ } }, "@types/hapi": { - "version": "17.0.15", - "resolved": "https://registry.npmjs.org/@types/hapi/-/hapi-17.0.15.tgz", - "integrity": "sha512-vau1TQRjOrGIPtVGDdI3czXNueB8H98/6Vz4wlYvwaWfbrbym3NX42goQQ6LFYsyicqS3URJG7/gS+YssCHSAA==", + "version": "17.0.16", + "resolved": "https://registry.npmjs.org/@types/hapi/-/hapi-17.0.16.tgz", + "integrity": "sha512-CpVv7BvmGiPSAF/4EbMUSa0HLiUUTEyiuHaNY8cwlKMxi/VMHCkRozfO15JHvd/JdZrr2neW0k24kn6BlfNwGw==", "dev": true, "requires": { "@types/boom": "*", @@ -2836,9 +2834,9 @@ "dev": true }, "@types/lodash": { - "version": "4.14.113", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.113.tgz", - "integrity": "sha512-CINMgfKUnif7fWBqPuGUsZrkER8jGU+ufyhD7FuotPqC1rRViHOJVgPuanN2Y8Vv1TqRnHDKlMnyEQLNq9eMjA==", + "version": "4.14.115", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.115.tgz", + "integrity": "sha512-9K/P4XMQxk61omAzQh3bbbFiqnG17eLcFysjlAYz0aPcYrVo8T+ujaCeIeY0Gpzux7x1YbxtEtLKB7ZWf79qdg==", "dev": true }, "@types/lodash.assign": { @@ -2974,9 +2972,9 @@ } }, "@types/node": { - "version": "10.5.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.2.tgz", - "integrity": "sha512-m9zXmifkZsMHZBOyxZWilMwmTlpC8x5Ty360JKTiXvlXZfBWYpsg9ZZvP/Ye+iZUh+Q+MxDLjItVTWIsfwz+8Q==" + "version": "10.5.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.4.tgz", + "integrity": "sha512-8TqvB0ReZWwtcd3LXq3YSrBoLyXFgBX/sBZfGye9+YS8zH7/g+i6QRIuiDmwBoTzcQ/pk89nZYTYU4c5akKkzw==" }, "@types/once": { "version": "1.4.0", @@ -3142,7 +3140,6 @@ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, - "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -5461,12 +5458,13 @@ "dev": true }, "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "optional": true, "requires": { - "jsbn": "~0.1.0" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "ecdsa-sig-formatter": { @@ -6952,14 +6950,12 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -6974,20 +6970,17 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -7104,8 +7097,7 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -7117,7 +7109,6 @@ "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -7132,7 +7123,6 @@ "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -7140,14 +7130,12 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.2.4", "bundled": true, "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -7166,7 +7154,6 @@ "version": "0.5.1", "bundled": true, "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -7247,8 +7234,7 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -7260,7 +7246,6 @@ "version": "1.4.0", "bundled": true, "dev": true, - "optional": true, "requires": { "wrappy": "1" } @@ -7382,7 +7367,6 @@ "version": "1.0.2", "bundled": true, "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -8352,9 +8336,9 @@ "dev": true }, "ipaddr.js": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.6.0.tgz", - "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs=", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", + "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=", "dev": true }, "iron": { @@ -8762,9 +8746,9 @@ "dev": true }, "istanbul-lib-instrument": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.1.tgz", - "integrity": "sha512-h9Vg3nfbxrF0PK0kZiNiMAyL8zXaLiBP/BXniaKSwVvAi1TaumYV2b0wPdmy1CRX3irYbYD1p4Wjbv4uyECiiQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.2.tgz", + "integrity": "sha512-l7TD/VnBsIB2OJvSyxaLW/ab1+92dxZNH9wLH7uHPPioy3JZ8tnx2UXUdKmdkgmP2EFPzg64CToUP6dAS3U32Q==", "dev": true, "requires": { "@babel/generator": "7.0.0-beta.51", @@ -8793,9 +8777,9 @@ "dev": true }, "joi": { - "version": "13.4.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-13.4.0.tgz", - "integrity": "sha512-JuK4GjEu6j7zr9FuVe2MAseZ6si/8/HaY0qMAejfDFHp7jcH4OKE937mIHM5VT4xDS0q7lpQbszbxKV9rm0yUg==", + "version": "13.5.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-13.5.2.tgz", + "integrity": "sha512-3HrFXLC57iU5CzYth3cJRdYEo4/Dr+tXmCQ+BHyiTTKnKxJ9ICkI/WJGPwUUXj3dWA4tO2hwZO5oCdBNhAYuRg==", "dev": true, "requires": { "hoek": "5.x.x", @@ -9286,8 +9270,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true, - "optional": true + "dev": true }, "loose-envify": { "version": "1.4.0", @@ -10026,7 +10009,6 @@ "version": "0.1.4", "bundled": true, "dev": true, - "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -10969,8 +10951,7 @@ "longest": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "lru-cache": { "version": "4.1.3", @@ -12763,9 +12744,9 @@ "dev": true }, "prettier": { - "version": "1.13.7", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.13.7.tgz", - "integrity": "sha512-KIU72UmYPGk4MujZGYMFwinB7lOf2LsDNGSOC8ufevsrPLISrZbNJlWstRi3m0AMuszbH+EFSQ/r6w56RSPK6w==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.14.0.tgz", + "integrity": "sha512-KtQ2EGaUwf2EyDfp1fxyEb0PqGKakVm0WyXwDt6u+cAoxbO2Z2CwKvOe3+b4+F2IlO9lYHi1kqFuRM70ddBnow==", "dev": true }, "pretty-ms": { @@ -12809,13 +12790,13 @@ "dev": true }, "proxy-addr": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz", - "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", + "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", "dev": true, "requires": { "forwarded": "~0.1.2", - "ipaddr.js": "1.6.0" + "ipaddr.js": "1.8.0" } }, "proxyquire": { @@ -14451,9 +14432,9 @@ } }, "tsutils": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.28.0.tgz", - "integrity": "sha512-bh5nAtW0tuhvOJnx1GLRn5ScraRLICGyJV5wJhtRWOLsxW70Kk5tZtpK3O/hW6LDnqKS9mlUMPZj9fEMJ0gxqA==", + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", "dev": true, "requires": { "tslib": "^1.8.1" From 8783670a53defee9db973be993942a95eb742c4d Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Tue, 31 Jul 2018 10:36:54 -0700 Subject: [PATCH 137/527] fix: fix installation tests (#183) The inclusion of `console-log-level` broke the installation tests by requiring TypeScript users of the error reporting library to install `@types/console-log-level` to compile their code. --- handwritten/error-reporting/package-lock.json | 5354 ++++++++--------- .../error-reporting/src/configuration.ts | 18 +- 2 files changed, 2692 insertions(+), 2680 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index 25239a4f741..c5e0047ee13 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -16,18 +16,18 @@ "integrity": "sha512-oWqTnIGXW3k72UFidXzW0ONlO7hnO9x02S/QReJ7NBGeiBH9cUHY9+EfV6C8PXC6YJH++WrliEq03wMSJGNZFg==", "dev": true, "requires": { - "babel-plugin-check-es2015-constants": "^6.8.0", - "babel-plugin-syntax-trailing-function-commas": "^6.20.0", - "babel-plugin-transform-async-to-generator": "^6.16.0", - "babel-plugin-transform-es2015-destructuring": "^6.19.0", - "babel-plugin-transform-es2015-function-name": "^6.9.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.18.0", - "babel-plugin-transform-es2015-parameters": "^6.21.0", - "babel-plugin-transform-es2015-spread": "^6.8.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.8.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.11.0", - "babel-plugin-transform-exponentiation-operator": "^6.8.0", - "package-hash": "^1.2.0" + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-to-generator": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-exponentiation-operator": "6.24.1", + "package-hash": "1.2.0" }, "dependencies": { "md5-hex": { @@ -36,7 +36,7 @@ "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "dev": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "package-hash": { @@ -45,7 +45,7 @@ "integrity": "sha1-AD5WzVe3NqbtYRTMK4FUJnJ3DkQ=", "dev": true, "requires": { - "md5-hex": "^1.3.0" + "md5-hex": "1.3.0" } } } @@ -56,8 +56,8 @@ "integrity": "sha1-ze0RlqjY2TgaUJJAq5LpGl7Aafc=", "dev": true, "requires": { - "@ava/babel-plugin-throws-helper": "^2.0.0", - "babel-plugin-espower": "^2.3.2" + "@ava/babel-plugin-throws-helper": "2.0.0", + "babel-plugin-espower": "2.4.0" } }, "@ava/write-file-atomic": { @@ -66,9 +66,9 @@ "integrity": "sha512-BTNB3nGbEfJT+69wuqXFr/bQH7Vr7ihx2xGOMNqPgDGhwspoZhiWumDDZNjBy7AScmqS5CELIOGtPVXESyrnDA==", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" } }, "@babel/code-frame": { @@ -87,10 +87,10 @@ "dev": true, "requires": { "@babel/types": "7.0.0-beta.51", - "jsesc": "^2.5.1", - "lodash": "^4.17.5", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" + "jsesc": "2.5.1", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" }, "dependencies": { "jsesc": { @@ -136,9 +136,9 @@ "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=", "dev": true, "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^3.0.0" + "chalk": "2.4.1", + "esutils": "2.0.2", + "js-tokens": "3.0.2" } }, "@babel/parser": { @@ -156,7 +156,7 @@ "@babel/code-frame": "7.0.0-beta.51", "@babel/parser": "7.0.0-beta.51", "@babel/types": "7.0.0-beta.51", - "lodash": "^4.17.5" + "lodash": "4.17.5" } }, "@babel/traverse": { @@ -171,10 +171,10 @@ "@babel/helper-split-export-declaration": "7.0.0-beta.51", "@babel/parser": "7.0.0-beta.51", "@babel/types": "7.0.0-beta.51", - "debug": "^3.1.0", - "globals": "^11.1.0", - "invariant": "^2.2.0", - "lodash": "^4.17.5" + "debug": "3.1.0", + "globals": "11.7.0", + "invariant": "2.2.4", + "lodash": "4.17.5" }, "dependencies": { "globals": { @@ -191,9 +191,9 @@ "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.5", - "to-fast-properties": "^2.0.0" + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "2.0.0" }, "dependencies": { "to-fast-properties": { @@ -210,7 +210,7 @@ "integrity": "sha512-htrsRaQX8Iixlsek8zQU7tE8wcsTQJ5UhZkSPEA8slCDAisKpC/2VgU/ucPn32M5/LjGGXRaUEKvEw1Wiuu4zQ==", "dev": true, "requires": { - "arrify": "^1.0.1" + "arrify": "1.0.1" } }, "@google-cloud/common": { @@ -218,21 +218,21 @@ "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.20.3.tgz", "integrity": "sha512-jt8/R4EqDTQccv5WA9AEaS65llM5+mlxsuWu57G5Os8HTIpgPbcsOVMUeIvmTrBuPUYSoRIMW8d/pvv/95n0+g==", "requires": { - "@types/duplexify": "^3.5.0", - "@types/request": "^2.47.0", - "arrify": "^1.0.1", - "axios": "^0.18.0", - "duplexify": "^3.6.0", - "ent": "^2.2.0", - "extend": "^3.0.1", - "google-auth-library": "^1.6.0", - "is": "^3.2.1", - "pify": "^3.0.0", - "request": "^2.87.0", - "retry-request": "^4.0.0", - "split-array-stream": "^2.0.0", - "stream-events": "^1.0.4", - "through2": "^2.0.3" + "@types/duplexify": "3.5.0", + "@types/request": "2.47.1", + "arrify": "1.0.1", + "axios": "0.18.0", + "duplexify": "3.6.0", + "ent": "2.2.0", + "extend": "3.0.2", + "google-auth-library": "1.6.1", + "is": "3.2.1", + "pify": "3.0.0", + "request": "2.87.0", + "retry-request": "4.0.0", + "split-array-stream": "2.0.0", + "stream-events": "1.0.4", + "through2": "2.0.3" } }, "@google-cloud/nodejs-repo-tools": { @@ -249,7 +249,7 @@ "lodash": "4.17.5", "nyc": "11.7.2", "proxyquire": "1.8.0", - "semver": "^5.5.0", + "semver": "5.5.0", "sinon": "6.0.1", "string": "3.3.3", "supertest": "3.1.0", @@ -263,33 +263,33 @@ "integrity": "sha512-gBt7qwsR1vryYfglVjQRx1D+AtMZW5NbUKxb+lZe8SN8KsheGCPGWEsSC9AGQG+r2+te1+10uPHUCahuqm1nGQ==", "dev": true, "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^1.0.0", - "convert-source-map": "^1.5.1", - "debug-log": "^1.0.1", - "default-require-extensions": "^1.0.0", - "find-cache-dir": "^0.1.1", - "find-up": "^2.1.0", - "foreground-child": "^1.5.3", - "glob": "^7.0.6", - "istanbul-lib-coverage": "^1.1.2", - "istanbul-lib-hook": "^1.1.0", - "istanbul-lib-instrument": "^1.10.0", - "istanbul-lib-report": "^1.1.3", - "istanbul-lib-source-maps": "^1.2.3", - "istanbul-reports": "^1.4.0", - "md5-hex": "^1.2.0", - "merge-source-map": "^1.1.0", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.0", - "resolve-from": "^2.0.0", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.1", - "spawn-wrap": "^1.4.2", - "test-exclude": "^4.2.0", + "archy": "1.0.0", + "arrify": "1.0.1", + "caching-transform": "1.0.1", + "convert-source-map": "1.5.1", + "debug-log": "1.0.1", + "default-require-extensions": "1.0.0", + "find-cache-dir": "0.1.1", + "find-up": "2.1.0", + "foreground-child": "1.5.6", + "glob": "7.1.2", + "istanbul-lib-coverage": "1.2.0", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "1.10.1", + "istanbul-lib-report": "1.1.3", + "istanbul-lib-source-maps": "1.2.3", + "istanbul-reports": "1.4.0", + "md5-hex": "1.3.0", + "merge-source-map": "1.1.0", + "micromatch": "3.1.10", + "mkdirp": "0.5.1", + "resolve-from": "2.0.0", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "spawn-wrap": "1.4.2", + "test-exclude": "4.2.1", "yargs": "11.1.0", - "yargs-parser": "^8.0.0" + "yargs-parser": "8.1.0" }, "dependencies": { "align-text": { @@ -297,9 +297,9 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" } }, "amdefine": { @@ -322,7 +322,7 @@ "bundled": true, "dev": true, "requires": { - "default-require-extensions": "^1.0.0" + "default-require-extensions": "1.0.0" } }, "archy": { @@ -375,9 +375,9 @@ "bundled": true, "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" } }, "babel-generator": { @@ -385,14 +385,14 @@ "bundled": true, "dev": true, "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.10", + "source-map": "0.5.7", + "trim-right": "1.0.1" } }, "babel-messages": { @@ -400,7 +400,7 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-runtime": { @@ -408,8 +408,8 @@ "bundled": true, "dev": true, "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "core-js": "2.5.6", + "regenerator-runtime": "0.11.1" } }, "babel-template": { @@ -417,11 +417,11 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.10" } }, "babel-traverse": { @@ -429,15 +429,15 @@ "bundled": true, "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.4", + "lodash": "4.17.10" } }, "babel-types": { @@ -445,10 +445,10 @@ "bundled": true, "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.10", + "to-fast-properties": "1.0.3" } }, "babylon": { @@ -466,13 +466,13 @@ "bundled": true, "dev": true, "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" }, "dependencies": { "define-property": { @@ -480,7 +480,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -488,7 +488,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -496,7 +496,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -504,9 +504,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "kind-of": { @@ -521,7 +521,7 @@ "bundled": true, "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -530,16 +530,16 @@ "bundled": true, "dev": true, "requires": { - "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "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.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -547,7 +547,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -562,15 +562,15 @@ "bundled": true, "dev": true, "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" + "collection-visit": "1.0.0", + "component-emitter": "1.2.1", + "get-value": "2.0.6", + "has-value": "1.0.0", + "isobject": "3.0.1", + "set-value": "2.0.0", + "to-object-path": "0.3.0", + "union-value": "1.0.0", + "unset-value": "1.0.0" } }, "caching-transform": { @@ -578,9 +578,9 @@ "bundled": true, "dev": true, "requires": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" } }, "camelcase": { @@ -595,8 +595,8 @@ "dev": true, "optional": true, "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "align-text": "0.1.4", + "lazy-cache": "1.0.4" } }, "chalk": { @@ -604,11 +604,11 @@ "bundled": true, "dev": true, "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "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" } }, "class-utils": { @@ -616,10 +616,10 @@ "bundled": true, "dev": true, "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" }, "dependencies": { "define-property": { @@ -627,7 +627,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -638,8 +638,8 @@ "dev": true, "optional": true, "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", + "center-align": "0.1.3", + "right-align": "0.1.3", "wordwrap": "0.0.2" }, "dependencies": { @@ -661,8 +661,8 @@ "bundled": true, "dev": true, "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "map-visit": "1.0.0", + "object-visit": "1.0.1" } }, "commondir": { @@ -700,8 +700,8 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "which": "1.3.0" } }, "debug": { @@ -732,7 +732,7 @@ "bundled": true, "dev": true, "requires": { - "strip-bom": "^2.0.0" + "strip-bom": "2.0.0" } }, "define-property": { @@ -740,8 +740,8 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "is-descriptor": "1.0.2", + "isobject": "3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -749,7 +749,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -757,7 +757,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -765,9 +765,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "kind-of": { @@ -782,7 +782,7 @@ "bundled": true, "dev": true, "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "error-ex": { @@ -790,7 +790,7 @@ "bundled": true, "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "escape-string-regexp": { @@ -808,13 +808,13 @@ "bundled": true, "dev": true, "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" }, "dependencies": { "cross-spawn": { @@ -822,9 +822,9 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.0" } } } @@ -834,13 +834,13 @@ "bundled": true, "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "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" }, "dependencies": { "define-property": { @@ -848,7 +848,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -856,7 +856,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -866,8 +866,8 @@ "bundled": true, "dev": true, "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -875,7 +875,7 @@ "bundled": true, "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -885,14 +885,14 @@ "bundled": true, "dev": true, "requires": { - "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.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "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" }, "dependencies": { "define-property": { @@ -900,7 +900,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -908,7 +908,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -916,7 +916,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -924,7 +924,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -932,9 +932,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "kind-of": { @@ -949,10 +949,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -960,7 +960,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -970,9 +970,9 @@ "bundled": true, "dev": true, "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" + "commondir": "1.0.1", + "mkdirp": "0.5.1", + "pkg-dir": "1.0.0" } }, "find-up": { @@ -980,7 +980,7 @@ "bundled": true, "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "for-in": { @@ -993,8 +993,8 @@ "bundled": true, "dev": true, "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" + "cross-spawn": "4.0.2", + "signal-exit": "3.0.2" } }, "fragment-cache": { @@ -1002,7 +1002,7 @@ "bundled": true, "dev": true, "requires": { - "map-cache": "^0.2.2" + "map-cache": "0.2.2" } }, "fs.realpath": { @@ -1030,12 +1030,12 @@ "bundled": true, "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "globals": { @@ -1053,10 +1053,10 @@ "bundled": true, "dev": true, "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" }, "dependencies": { "source-map": { @@ -1064,7 +1064,7 @@ "bundled": true, "dev": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -1074,7 +1074,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "has-flag": { @@ -1087,9 +1087,9 @@ "bundled": true, "dev": true, "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" } }, "has-values": { @@ -1097,8 +1097,8 @@ "bundled": true, "dev": true, "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "kind-of": { @@ -1106,7 +1106,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -1126,8 +1126,8 @@ "bundled": true, "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -1140,7 +1140,7 @@ "bundled": true, "dev": true, "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "1.3.1" } }, "invert-kv": { @@ -1153,7 +1153,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-arrayish": { @@ -1171,7 +1171,7 @@ "bundled": true, "dev": true, "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-data-descriptor": { @@ -1179,7 +1179,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-descriptor": { @@ -1187,9 +1187,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" }, "dependencies": { "kind-of": { @@ -1209,7 +1209,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { @@ -1222,7 +1222,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-odd": { @@ -1230,7 +1230,7 @@ "bundled": true, "dev": true, "requires": { - "is-number": "^4.0.0" + "is-number": "4.0.0" }, "dependencies": { "is-number": { @@ -1245,7 +1245,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" } }, "is-stream": { @@ -1288,7 +1288,7 @@ "bundled": true, "dev": true, "requires": { - "append-transform": "^0.4.0" + "append-transform": "0.4.0" } }, "istanbul-lib-instrument": { @@ -1296,13 +1296,13 @@ "bundled": true, "dev": true, "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.2.0", - "semver": "^5.3.0" + "babel-generator": "6.26.1", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "istanbul-lib-coverage": "1.2.0", + "semver": "5.5.0" } }, "istanbul-lib-report": { @@ -1310,10 +1310,10 @@ "bundled": true, "dev": true, "requires": { - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" }, "dependencies": { "supports-color": { @@ -1321,7 +1321,7 @@ "bundled": true, "dev": true, "requires": { - "has-flag": "^1.0.0" + "has-flag": "1.0.0" } } } @@ -1331,11 +1331,11 @@ "bundled": true, "dev": true, "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" + "debug": "3.1.0", + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" }, "dependencies": { "debug": { @@ -1353,7 +1353,7 @@ "bundled": true, "dev": true, "requires": { - "handlebars": "^4.0.3" + "handlebars": "4.0.11" } }, "js-tokens": { @@ -1371,7 +1371,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "lazy-cache": { @@ -1385,7 +1385,7 @@ "bundled": true, "dev": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "load-json-file": { @@ -1393,11 +1393,11 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" } }, "locate-path": { @@ -1405,8 +1405,8 @@ "bundled": true, "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "2.0.0", + "path-exists": "3.0.0" }, "dependencies": { "path-exists": { @@ -1431,7 +1431,7 @@ "bundled": true, "dev": true, "requires": { - "js-tokens": "^3.0.0" + "js-tokens": "3.0.2" } }, "lru-cache": { @@ -1439,8 +1439,8 @@ "bundled": true, "dev": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "map-cache": { @@ -1453,7 +1453,7 @@ "bundled": true, "dev": true, "requires": { - "object-visit": "^1.0.0" + "object-visit": "1.0.1" } }, "md5-hex": { @@ -1461,7 +1461,7 @@ "bundled": true, "dev": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "md5-o-matic": { @@ -1474,7 +1474,7 @@ "bundled": true, "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "merge-source-map": { @@ -1482,7 +1482,7 @@ "bundled": true, "dev": true, "requires": { - "source-map": "^0.6.1" + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -1497,19 +1497,19 @@ "bundled": true, "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "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.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "kind-of": { @@ -1529,7 +1529,7 @@ "bundled": true, "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -1542,8 +1542,8 @@ "bundled": true, "dev": true, "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" + "for-in": "1.0.2", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -1551,7 +1551,7 @@ "bundled": true, "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -1574,18 +1574,18 @@ "bundled": true, "dev": true, "requires": { - "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-odd": "^2.0.0", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "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-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "kind-of": { @@ -1600,10 +1600,10 @@ "bundled": true, "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.6.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" } }, "npm-run-path": { @@ -1611,7 +1611,7 @@ "bundled": true, "dev": true, "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -1629,9 +1629,9 @@ "bundled": true, "dev": true, "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" }, "dependencies": { "define-property": { @@ -1639,7 +1639,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -1649,7 +1649,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "^3.0.0" + "isobject": "3.0.1" } }, "object.pick": { @@ -1657,7 +1657,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" } }, "once": { @@ -1665,7 +1665,7 @@ "bundled": true, "dev": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "optimist": { @@ -1673,8 +1673,8 @@ "bundled": true, "dev": true, "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "minimist": "0.0.8", + "wordwrap": "0.0.3" } }, "os-homedir": { @@ -1687,9 +1687,9 @@ "bundled": true, "dev": true, "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" } }, "p-finally": { @@ -1702,7 +1702,7 @@ "bundled": true, "dev": true, "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { @@ -1710,7 +1710,7 @@ "bundled": true, "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.2.0" } }, "p-try": { @@ -1723,7 +1723,7 @@ "bundled": true, "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.1" } }, "pascalcase": { @@ -1736,7 +1736,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } }, "path-is-absolute": { @@ -1759,9 +1759,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pify": { @@ -1779,7 +1779,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "pkg-dir": { @@ -1787,7 +1787,7 @@ "bundled": true, "dev": true, "requires": { - "find-up": "^1.0.0" + "find-up": "1.1.2" }, "dependencies": { "find-up": { @@ -1795,8 +1795,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } @@ -1816,9 +1816,9 @@ "bundled": true, "dev": true, "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" } }, "read-pkg-up": { @@ -1826,8 +1826,8 @@ "bundled": true, "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "find-up": "1.1.2", + "read-pkg": "1.1.0" }, "dependencies": { "find-up": { @@ -1835,8 +1835,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } @@ -1851,8 +1851,8 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, "repeat-element": { @@ -1870,7 +1870,7 @@ "bundled": true, "dev": true, "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "require-directory": { @@ -1904,7 +1904,7 @@ "dev": true, "optional": true, "requires": { - "align-text": "^0.1.1" + "align-text": "0.1.4" } }, "rimraf": { @@ -1912,7 +1912,7 @@ "bundled": true, "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "safe-regex": { @@ -1920,7 +1920,7 @@ "bundled": true, "dev": true, "requires": { - "ret": "~0.1.10" + "ret": "0.1.15" } }, "semver": { @@ -1938,10 +1938,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" }, "dependencies": { "extend-shallow": { @@ -1949,7 +1949,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -1959,7 +1959,7 @@ "bundled": true, "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -1982,14 +1982,14 @@ "bundled": true, "dev": true, "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "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.1", + "use": "3.1.0" }, "dependencies": { "define-property": { @@ -1997,7 +1997,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -2005,7 +2005,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -2015,9 +2015,9 @@ "bundled": true, "dev": true, "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "dependencies": { "define-property": { @@ -2025,7 +2025,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -2033,7 +2033,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -2041,7 +2041,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -2049,9 +2049,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "kind-of": { @@ -2066,7 +2066,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.2.0" + "kind-of": "3.2.2" } }, "source-map": { @@ -2079,11 +2079,11 @@ "bundled": true, "dev": true, "requires": { - "atob": "^2.0.0", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "atob": "2.1.1", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" } }, "source-map-url": { @@ -2096,12 +2096,12 @@ "bundled": true, "dev": true, "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.0" } }, "spdx-correct": { @@ -2109,8 +2109,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, "spdx-exceptions": { @@ -2123,8 +2123,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" } }, "spdx-license-ids": { @@ -2137,7 +2137,7 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^3.0.0" + "extend-shallow": "3.0.2" } }, "static-extend": { @@ -2145,8 +2145,8 @@ "bundled": true, "dev": true, "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" + "define-property": "0.2.5", + "object-copy": "0.1.0" }, "dependencies": { "define-property": { @@ -2154,7 +2154,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -2164,8 +2164,8 @@ "bundled": true, "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" }, "dependencies": { "ansi-regex": { @@ -2178,7 +2178,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } } } @@ -2188,7 +2188,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-bom": { @@ -2196,7 +2196,7 @@ "bundled": true, "dev": true, "requires": { - "is-utf8": "^0.2.0" + "is-utf8": "0.2.1" } }, "strip-eof": { @@ -2214,11 +2214,11 @@ "bundled": true, "dev": true, "requires": { - "arrify": "^1.0.1", - "micromatch": "^3.1.8", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" + "arrify": "1.0.1", + "micromatch": "3.1.10", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" } }, "to-fast-properties": { @@ -2231,7 +2231,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "to-regex": { @@ -2239,10 +2239,10 @@ "bundled": true, "dev": true, "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" } }, "to-regex-range": { @@ -2250,8 +2250,8 @@ "bundled": true, "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "3.0.0", + "repeat-string": "1.6.1" } }, "trim-right": { @@ -2265,9 +2265,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" }, "dependencies": { "yargs": { @@ -2276,9 +2276,9 @@ "dev": true, "optional": true, "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", "window-size": "0.1.0" } } @@ -2295,10 +2295,10 @@ "bundled": true, "dev": true, "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" }, "dependencies": { "extend-shallow": { @@ -2306,7 +2306,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "set-value": { @@ -2314,10 +2314,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" } } } @@ -2327,8 +2327,8 @@ "bundled": true, "dev": true, "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "has-value": "0.3.1", + "isobject": "3.0.1" }, "dependencies": { "has-value": { @@ -2336,9 +2336,9 @@ "bundled": true, "dev": true, "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" }, "dependencies": { "isobject": { @@ -2368,7 +2368,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.2" + "kind-of": "6.0.2" }, "dependencies": { "kind-of": { @@ -2383,8 +2383,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "which": { @@ -2392,7 +2392,7 @@ "bundled": true, "dev": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -2416,8 +2416,8 @@ "bundled": true, "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -2425,7 +2425,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "string-width": { @@ -2433,9 +2433,9 @@ "bundled": true, "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } } } @@ -2450,9 +2450,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" } }, "y18n": { @@ -2470,18 +2470,18 @@ "bundled": true, "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^9.0.2" + "cliui": "4.1.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "9.0.2" }, "dependencies": { "ansi-regex": { @@ -2499,9 +2499,9 @@ "bundled": true, "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" } }, "strip-ansi": { @@ -2509,7 +2509,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } }, "yargs-parser": { @@ -2517,7 +2517,7 @@ "bundled": true, "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } } } @@ -2527,7 +2527,7 @@ "bundled": true, "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" }, "dependencies": { "camelcase": { @@ -2545,9 +2545,9 @@ "integrity": "sha1-AtUUpb7ZhvBMuyCTrxZ0FTX3ntw=", "dev": true, "requires": { - "fill-keys": "^1.0.2", - "module-not-found-error": "^1.0.0", - "resolve": "~1.1.7" + "fill-keys": "1.0.2", + "module-not-found-error": "1.0.1", + "resolve": "1.1.7" } } } @@ -2558,10 +2558,10 @@ "integrity": "sha512-weIbJqTMfQ4r1YX85u54DKfjLZs2jwn1XZ6tIOP/pFgMwhIN5BAtaCp/1wn9DzyLsDR9tW0R2NIePcVJ45ivQQ==", "dev": true, "requires": { - "chalk": "^0.4.0", - "date-time": "^0.1.1", - "pretty-ms": "^0.2.1", - "text-table": "^0.2.0" + "chalk": "0.4.0", + "date-time": "0.1.1", + "pretty-ms": "0.2.2", + "text-table": "0.2.0" }, "dependencies": { "ansi-styles": { @@ -2576,9 +2576,9 @@ "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", "dev": true, "requires": { - "ansi-styles": "~1.0.0", - "has-color": "~0.1.0", - "strip-ansi": "~0.1.0" + "ansi-styles": "1.0.0", + "has-color": "0.1.7", + "strip-ansi": "0.1.1" } }, "pretty-ms": { @@ -2587,7 +2587,7 @@ "integrity": "sha1-2oeaaC/zOjcBEEbxPWJ/Z8c7hPY=", "dev": true, "requires": { - "parse-ms": "^0.1.0" + "parse-ms": "0.1.2" } }, "strip-ansi": { @@ -2604,8 +2604,8 @@ "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", "dev": true, "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" } }, "@nodelib/fs.stat": { @@ -2635,7 +2635,7 @@ "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "10.5.4" } }, "@types/body-parser": { @@ -2644,8 +2644,8 @@ "integrity": "sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w==", "dev": true, "requires": { - "@types/connect": "*", - "@types/node": "*" + "@types/connect": "3.4.32", + "@types/node": "10.5.4" } }, "@types/boom": { @@ -2660,8 +2660,8 @@ "integrity": "sha512-bxOF3fsm69ezKxdcJ7Oo/PsZMOJ+JIV/QJO2IADfScmR3sLulR88dpSnz6+q+9JJ1kD7dXFFgUrGRSKHLkOX7w==", "dev": true, "requires": { - "@types/events": "*", - "@types/node": "*" + "@types/events": "1.2.0", + "@types/node": "10.5.4" } }, "@types/caseless": { @@ -2681,7 +2681,7 @@ "integrity": "sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg==", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "10.5.4" } }, "@types/console-log-level": { @@ -2696,10 +2696,10 @@ "integrity": "sha512-ku6IvbucEyuC6i4zAVK/KnuzWNXdbFd1HkXlNLg/zhWDGTtQT5VhumiPruB/BHW34PWVFwyfwGftDQHfWNxu3Q==", "dev": true, "requires": { - "@types/connect": "*", - "@types/express": "*", - "@types/keygrip": "*", - "@types/node": "*" + "@types/connect": "3.4.32", + "@types/express": "4.16.0", + "@types/keygrip": "1.0.1", + "@types/node": "10.5.4" } }, "@types/duplexify": { @@ -2707,7 +2707,7 @@ "resolved": "https://registry.npmjs.org/@types/duplexify/-/duplexify-3.5.0.tgz", "integrity": "sha512-+aZCCdxuR/Q6n58CBkXyqGqimIqpYUcFLfBXagXv7e9TdJUevqkKhzopBuRz3RB064sQxnJnhttHOkK/O93Ouw==", "requires": { - "@types/node": "*" + "@types/node": "10.5.4" } }, "@types/events": { @@ -2722,9 +2722,9 @@ "integrity": "sha512-TtPEYumsmSTtTetAPXlJVf3kEqb6wZK0bZojpJQrnD/djV4q1oB6QQ8aKvKqwNPACoe02GNiy5zDzcYivR5Z2w==", "dev": true, "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "*", - "@types/serve-static": "*" + "@types/body-parser": "1.17.0", + "@types/express-serve-static-core": "4.16.0", + "@types/serve-static": "1.13.2" } }, "@types/express-serve-static-core": { @@ -2733,9 +2733,9 @@ "integrity": "sha512-lTeoCu5NxJU4OD9moCgm0ESZzweAx0YqsAcab6OB0EB3+As1OaHtKnaGJvcngQxYsi9UNv0abn4/DRavrRxt4w==", "dev": true, "requires": { - "@types/events": "*", - "@types/node": "*", - "@types/range-parser": "*" + "@types/events": "1.2.0", + "@types/node": "10.5.4", + "@types/range-parser": "1.2.2" } }, "@types/extend": { @@ -2749,7 +2749,7 @@ "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz", "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", "requires": { - "@types/node": "*" + "@types/node": "10.5.4" } }, "@types/glob": { @@ -2758,9 +2758,9 @@ "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", "dev": true, "requires": { - "@types/events": "*", - "@types/minimatch": "*", - "@types/node": "*" + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "10.5.4" } }, "@types/hapi": { @@ -2769,14 +2769,14 @@ "integrity": "sha512-CpVv7BvmGiPSAF/4EbMUSa0HLiUUTEyiuHaNY8cwlKMxi/VMHCkRozfO15JHvd/JdZrr2neW0k24kn6BlfNwGw==", "dev": true, "requires": { - "@types/boom": "*", - "@types/catbox": "*", - "@types/iron": "*", - "@types/joi": "*", - "@types/mimos": "*", - "@types/node": "*", - "@types/podium": "*", - "@types/shot": "*" + "@types/boom": "7.2.0", + "@types/catbox": "10.0.0", + "@types/iron": "5.0.1", + "@types/joi": "13.4.0", + "@types/mimos": "3.0.1", + "@types/node": "10.5.4", + "@types/podium": "1.0.0", + "@types/shot": "3.4.0" } }, "@types/http-assert": { @@ -2791,7 +2791,7 @@ "integrity": "sha512-Ng5BkVGPt7Tw9k1OJ6qYwuD9+dmnWgActmsnnrdvs4075N8V2go1f6Pz8omG3q5rbHjXN6yzzZDYo3JOgAE/Ug==", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "10.5.4" } }, "@types/is": { @@ -2818,13 +2818,13 @@ "integrity": "sha512-Dw10hYKv3exrc71GmH/Fqnc7dCLzdiP8bM1MLelPYjgIH5kQ6mPFreM3Z0uLK9EFaeCZZUYqsedDLCf3Urrysg==", "dev": true, "requires": { - "@types/accepts": "*", - "@types/cookies": "*", - "@types/events": "*", - "@types/http-assert": "*", - "@types/keygrip": "*", - "@types/koa-compose": "*", - "@types/node": "*" + "@types/accepts": "1.3.5", + "@types/cookies": "0.7.1", + "@types/events": "1.2.0", + "@types/http-assert": "1.3.0", + "@types/keygrip": "1.0.1", + "@types/koa-compose": "3.2.2", + "@types/node": "10.5.4" } }, "@types/koa-compose": { @@ -2845,7 +2845,7 @@ "integrity": "sha512-vQZhkRxzcp8WfOCN5ss/MJRnReJlyS5bRL7eChoUp38edH04UefqSXwSa873SUwbF87USU4J5iCZi+oc1Jhu2A==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.115" } }, "@types/lodash.has": { @@ -2854,7 +2854,7 @@ "integrity": "sha512-TFhnjl9ggVe/ZDjcgUWlvu3ULkysXJ+9OasNd7dqXHWcRzULzZyVr7n021ds3ygSX1kcxvf/7wanVD19g+tdsA==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.115" } }, "@types/lodash.maxby": { @@ -2863,7 +2863,7 @@ "integrity": "sha512-2YNhKemFkV0LgR2MxET/QQvrUYcBeNpesfSu072hI4q2V3BqVkVebvjd0ZTNy8D15vu47xVQVqcgOm59xTuO/w==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.115" } }, "@types/lodash.merge": { @@ -2872,7 +2872,7 @@ "integrity": "sha512-usLWpRAicaNbx0VfNDREEgGWvp88inclJLXLJ3NpT83eUE4O05LJdYNRTofHq6pb/NiMZjzNVJHdgPvPzMfu6g==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.115" } }, "@types/lodash.omit": { @@ -2881,7 +2881,7 @@ "integrity": "sha512-hv7Q3zXtRW+ruFC4Dp2y8AwMEyj6jiJHumDSnfCHNzE6HmFT8p7moTklM7Jzk+RJNKHfioJDnWHpv8GTnGXRnQ==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.115" } }, "@types/lodash.omitby": { @@ -2890,7 +2890,7 @@ "integrity": "sha512-d47RYf2KA/Re0rDUWHfYPMSeOLHUt7tLPOfo0DcaKrcpPRqh/FphIf4NEPmxZ2kuXeHgW064YnFLffWQVfr42A==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.115" } }, "@types/lodash.pick": { @@ -2899,7 +2899,7 @@ "integrity": "sha512-54nf0ndJlN3ULz9fLceKhYJZfwf50jAqqPJyI3/UbU/qxyuMSgNC3niWhFqmVAnGPoxMwAwNQCYTXG0Gv2lfPg==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.115" } }, "@types/lodash.random": { @@ -2908,7 +2908,7 @@ "integrity": "sha512-iU+HQzaZPP6aTqb0PkLq8P8VRw8TrRP72DvVd/C0YSZHuYRjwvrjD8AabzK82c5xrFSxddv5ur9ptKRFa5HEYQ==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.115" } }, "@types/lodash.without": { @@ -2917,7 +2917,7 @@ "integrity": "sha512-WAhnX3b36nB38Du32TCgBElHPJrm0BQCeOy4vfTMsVz4d5daCqSfGIvi6TcGvY0Q0l2or9wwvBt6m0X2xwxjqw==", "dev": true, "requires": { - "@types/lodash": "*" + "@types/lodash": "4.14.115" } }, "@types/mime": { @@ -2938,7 +2938,7 @@ "integrity": "sha512-MATIRH4VMIJki8lcYUZdNQEHuAG7iQ1FWwoLgxV+4fUOly2xZYdhHtGgvQyWiTeJqq2tZbE0nOOgZD6pR0FpNQ==", "dev": true, "requires": { - "@types/mime-db": "*" + "@types/mime-db": "1.27.0" } }, "@types/minimatch": { @@ -2959,7 +2959,7 @@ "integrity": "sha512-TeiJ7uvv/92ugSqZ0v9l0eNXzutlki0aK+R1K5bfA5SYUil46ITlxLW4iNTCf55P4L5weCmaOdtxGeGWvudwPg==", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "10.5.4" } }, "@types/nock": { @@ -2968,7 +2968,7 @@ "integrity": "sha512-ZHf/X8rTQ5Tb1rHjxIJYqm55uO265agE3G7NoSXVa2ep+EcJXgB2fsme+zBvK7MhrxTwkC/xkB6THyv50u0MGw==", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "10.5.4" } }, "@types/node": { @@ -3011,10 +3011,10 @@ "resolved": "https://registry.npmjs.org/@types/request/-/request-2.47.1.tgz", "integrity": "sha512-TV3XLvDjQbIeVxJ1Z3oCTDk/KuYwwcNKVwz2YaT0F5u86Prgc4syDAp6P96rkTQQ4bIdh+VswQIC9zS6NjY7/g==", "requires": { - "@types/caseless": "*", - "@types/form-data": "*", - "@types/node": "*", - "@types/tough-cookie": "*" + "@types/caseless": "0.12.1", + "@types/form-data": "2.2.1", + "@types/node": "10.5.4", + "@types/tough-cookie": "2.3.3" } }, "@types/restify": { @@ -3023,9 +3023,9 @@ "integrity": "sha512-k4O09swQnADEoj9B+ug7xBWkAdo7smv5W2IChW4wvC0ye2LUgyfbTjzzLTQLjd1OoLh/DdQACq0kOyZyjvNcrQ==", "dev": true, "requires": { - "@types/bunyan": "*", - "@types/node": "*", - "@types/spdy": "*" + "@types/bunyan": "1.8.4", + "@types/node": "10.5.4", + "@types/spdy": "3.4.4" } }, "@types/rimraf": { @@ -3034,8 +3034,8 @@ "integrity": "sha512-Hm/bnWq0TCy7jmjeN5bKYij9vw5GrDFWME4IuxV08278NtU/VdGbzsBohcCUJ7+QMqmUq5hpRKB39HeQWJjztQ==", "dev": true, "requires": { - "@types/glob": "*", - "@types/node": "*" + "@types/glob": "5.0.35", + "@types/node": "10.5.4" } }, "@types/serve-static": { @@ -3044,8 +3044,8 @@ "integrity": "sha512-/BZ4QRLpH/bNYgZgwhKEh+5AsboDBcUdlBYgzoLX0fpj3Y2gp6EApyOlM3bK53wQS/OE1SrdSYBAbux2D1528Q==", "dev": true, "requires": { - "@types/express-serve-static-core": "*", - "@types/mime": "*" + "@types/express-serve-static-core": "4.16.0", + "@types/mime": "2.0.0" } }, "@types/shot": { @@ -3054,7 +3054,7 @@ "integrity": "sha1-RZR3xRh9Pr0wNmCrCZ5+ng87ZW8=", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "10.5.4" } }, "@types/spdy": { @@ -3063,7 +3063,7 @@ "integrity": "sha512-N9LBlbVRRYq6HgYpPkqQc3a9HJ/iEtVZToW6xlTtJiMhmRJ7jJdV7TaZQJw/Ve/1ePUsQiCTDc4JMuzzag94GA==", "dev": true, "requires": { - "@types/node": "*" + "@types/node": "10.5.4" } }, "@types/tmp": { @@ -3083,8 +3083,8 @@ "integrity": "sha512-bghLXFkCOsC1Y2TZ51etWfKDs6q249SAoHTZVfzWWdlZxoij+mgkj9AmUJWQpDY48TfnrTDIe43Xem4zdMe7mQ==", "dev": true, "requires": { - "boom": "7.x.x", - "hoek": "5.x.x" + "boom": "7.2.0", + "hoek": "5.0.3" } }, "accepts": { @@ -3093,7 +3093,7 @@ "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "dev": true, "requires": { - "mime-types": "~2.1.18", + "mime-types": "2.1.19", "negotiator": "0.6.1" } }, @@ -3115,7 +3115,7 @@ "integrity": "sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw==", "dev": true, "requires": { - "acorn": "^5.0.3" + "acorn": "5.7.1" } }, "ajv": { @@ -3123,10 +3123,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" } }, "ajv-keywords": { @@ -3141,9 +3141,9 @@ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" } }, "amdefine": { @@ -3158,7 +3158,7 @@ "integrity": "sha512-4UqoM8xQjwkQ78oiU4NbBK0UgYqeKMAKmwE4ec7Rz3rGU8ZEBFxzgF2sUYKOAlqIXExBDYLN6y1ShF5yQ4hwLQ==", "dev": true, "requires": { - "hoek": "5.x.x" + "hoek": "5.0.3" } }, "ansi-align": { @@ -3167,7 +3167,7 @@ "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "dev": true, "requires": { - "string-width": "^2.0.0" + "string-width": "2.1.1" } }, "ansi-escapes": { @@ -3188,7 +3188,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "color-convert": "1.9.2" } }, "any-promise": { @@ -3203,8 +3203,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "dev": true, "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" + "micromatch": "2.3.11", + "normalize-path": "2.1.1" } }, "argparse": { @@ -3213,7 +3213,7 @@ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "sprintf-js": "~1.0.2" + "sprintf-js": "1.0.3" } }, "argv": { @@ -3228,7 +3228,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "^1.0.1" + "arr-flatten": "1.1.0" } }, "arr-exclude": { @@ -3285,7 +3285,7 @@ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "array-uniq": "^1.0.1" + "array-uniq": "1.0.3" } }, "array-uniq": { @@ -3362,89 +3362,89 @@ "integrity": "sha512-4lGNJCf6xL8SvsKVEKxEE46se7JAUIAZoKHw9itTQuwcsydhpAMkBs5gOOiWiwt0JKNIuXWc2/r4r8ZdcNrBEw==", "dev": true, "requires": { - "@ava/babel-preset-stage-4": "^1.1.0", - "@ava/babel-preset-transform-test-files": "^3.0.0", - "@ava/write-file-atomic": "^2.2.0", - "@concordance/react": "^1.0.0", - "@ladjs/time-require": "^0.1.4", - "ansi-escapes": "^3.0.0", - "ansi-styles": "^3.1.0", - "arr-flatten": "^1.0.1", - "array-union": "^1.0.1", - "array-uniq": "^1.0.2", - "arrify": "^1.0.0", - "auto-bind": "^1.1.0", - "ava-init": "^0.2.0", - "babel-core": "^6.17.0", - "babel-generator": "^6.26.0", - "babel-plugin-syntax-object-rest-spread": "^6.13.0", - "bluebird": "^3.0.0", - "caching-transform": "^1.0.0", - "chalk": "^2.0.1", - "chokidar": "^1.4.2", - "clean-stack": "^1.1.1", - "clean-yaml-object": "^0.1.0", - "cli-cursor": "^2.1.0", - "cli-spinners": "^1.0.0", - "cli-truncate": "^1.0.0", - "co-with-promise": "^4.6.0", - "code-excerpt": "^2.1.1", - "common-path-prefix": "^1.0.0", - "concordance": "^3.0.0", - "convert-source-map": "^1.5.1", - "core-assert": "^0.2.0", - "currently-unhandled": "^0.4.1", - "debug": "^3.0.1", - "dot-prop": "^4.1.0", - "empower-core": "^0.6.1", - "equal-length": "^1.0.0", - "figures": "^2.0.0", - "find-cache-dir": "^1.0.0", - "fn-name": "^2.0.0", - "get-port": "^3.0.0", - "globby": "^6.0.0", - "has-flag": "^2.0.0", - "hullabaloo-config-manager": "^1.1.0", - "ignore-by-default": "^1.0.0", - "import-local": "^0.1.1", - "indent-string": "^3.0.0", - "is-ci": "^1.0.7", - "is-generator-fn": "^1.0.0", - "is-obj": "^1.0.0", - "is-observable": "^1.0.0", - "is-promise": "^2.1.0", - "last-line-stream": "^1.0.0", - "lodash.clonedeepwith": "^4.5.0", - "lodash.debounce": "^4.0.3", - "lodash.difference": "^4.3.0", - "lodash.flatten": "^4.2.0", - "loud-rejection": "^1.2.0", - "make-dir": "^1.0.0", - "matcher": "^1.0.0", - "md5-hex": "^2.0.0", - "meow": "^3.7.0", - "ms": "^2.0.0", - "multimatch": "^2.1.0", - "observable-to-promise": "^0.5.0", - "option-chain": "^1.0.0", - "package-hash": "^2.0.0", - "pkg-conf": "^2.0.0", - "plur": "^2.0.0", - "pretty-ms": "^3.0.0", - "require-precompiled": "^0.1.0", - "resolve-cwd": "^2.0.0", - "safe-buffer": "^5.1.1", - "semver": "^5.4.1", - "slash": "^1.0.0", - "source-map-support": "^0.5.0", - "stack-utils": "^1.0.1", - "strip-ansi": "^4.0.0", - "strip-bom-buf": "^1.0.0", - "supertap": "^1.0.0", - "supports-color": "^5.0.0", - "trim-off-newlines": "^1.0.1", - "unique-temp-dir": "^1.0.0", - "update-notifier": "^2.3.0" + "@ava/babel-preset-stage-4": "1.1.0", + "@ava/babel-preset-transform-test-files": "3.0.0", + "@ava/write-file-atomic": "2.2.0", + "@concordance/react": "1.0.0", + "@ladjs/time-require": "0.1.4", + "ansi-escapes": "3.1.0", + "ansi-styles": "3.2.1", + "arr-flatten": "1.1.0", + "array-union": "1.0.2", + "array-uniq": "1.0.3", + "arrify": "1.0.1", + "auto-bind": "1.2.1", + "ava-init": "0.2.1", + "babel-core": "6.26.3", + "babel-generator": "6.26.1", + "babel-plugin-syntax-object-rest-spread": "6.13.0", + "bluebird": "3.5.1", + "caching-transform": "1.0.1", + "chalk": "2.4.1", + "chokidar": "1.7.0", + "clean-stack": "1.3.0", + "clean-yaml-object": "0.1.0", + "cli-cursor": "2.1.0", + "cli-spinners": "1.3.1", + "cli-truncate": "1.1.0", + "co-with-promise": "4.6.0", + "code-excerpt": "2.1.1", + "common-path-prefix": "1.0.0", + "concordance": "3.0.0", + "convert-source-map": "1.5.1", + "core-assert": "0.2.1", + "currently-unhandled": "0.4.1", + "debug": "3.1.0", + "dot-prop": "4.2.0", + "empower-core": "0.6.2", + "equal-length": "1.0.1", + "figures": "2.0.0", + "find-cache-dir": "1.0.0", + "fn-name": "2.0.1", + "get-port": "3.2.0", + "globby": "6.1.0", + "has-flag": "2.0.0", + "hullabaloo-config-manager": "1.1.1", + "ignore-by-default": "1.0.1", + "import-local": "0.1.1", + "indent-string": "3.2.0", + "is-ci": "1.1.0", + "is-generator-fn": "1.0.0", + "is-obj": "1.0.1", + "is-observable": "1.1.0", + "is-promise": "2.1.0", + "last-line-stream": "1.0.0", + "lodash.clonedeepwith": "4.5.0", + "lodash.debounce": "4.0.8", + "lodash.difference": "4.5.0", + "lodash.flatten": "4.4.0", + "loud-rejection": "1.6.0", + "make-dir": "1.3.0", + "matcher": "1.1.1", + "md5-hex": "2.0.0", + "meow": "3.7.0", + "ms": "2.0.0", + "multimatch": "2.1.0", + "observable-to-promise": "0.5.0", + "option-chain": "1.0.0", + "package-hash": "2.0.0", + "pkg-conf": "2.1.0", + "plur": "2.1.2", + "pretty-ms": "3.2.0", + "require-precompiled": "0.1.0", + "resolve-cwd": "2.0.0", + "safe-buffer": "5.1.2", + "semver": "5.5.0", + "slash": "1.0.0", + "source-map-support": "0.5.6", + "stack-utils": "1.0.1", + "strip-ansi": "4.0.0", + "strip-bom-buf": "1.0.0", + "supertap": "1.0.0", + "supports-color": "5.4.0", + "trim-off-newlines": "1.0.1", + "unique-temp-dir": "1.0.0", + "update-notifier": "2.5.0" } }, "ava-init": { @@ -3453,11 +3453,11 @@ "integrity": "sha512-lXwK5LM+2g1euDRqW1mcSX/tqzY1QU7EjKpqayFPPtNRmbSYZ8RzPO5tqluTToijmtjp2M+pNpVdbcHssC4glg==", "dev": true, "requires": { - "arr-exclude": "^1.0.0", - "execa": "^0.7.0", - "has-yarn": "^1.0.0", - "read-pkg-up": "^2.0.0", - "write-pkg": "^3.1.0" + "arr-exclude": "1.0.0", + "execa": "0.7.0", + "has-yarn": "1.0.0", + "read-pkg-up": "2.0.0", + "write-pkg": "3.2.0" } }, "aws-sign2": { @@ -3475,8 +3475,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz", "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=", "requires": { - "follow-redirects": "^1.3.0", - "is-buffer": "^1.1.5" + "follow-redirects": "1.5.1", + "is-buffer": "1.1.6" } }, "b64": { @@ -3491,9 +3491,9 @@ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" }, "dependencies": { "ansi-styles": { @@ -3508,11 +3508,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "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" } }, "strip-ansi": { @@ -3521,7 +3521,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "supports-color": { @@ -3538,25 +3538,25 @@ "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.1", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.5.1", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.5", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" }, "dependencies": { "debug": { @@ -3576,14 +3576,14 @@ "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "dev": true, "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" }, "dependencies": { "jsesc": { @@ -3600,9 +3600,9 @@ "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "dev": true, "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-explode-assignable-expression": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-call-delegate": { @@ -3611,10 +3611,10 @@ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "dev": true, "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-explode-assignable-expression": { @@ -3623,9 +3623,9 @@ "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-function-name": { @@ -3634,11 +3634,11 @@ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "dev": true, "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-get-function-arity": { @@ -3647,8 +3647,8 @@ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-hoist-variables": { @@ -3657,8 +3657,8 @@ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helper-regex": { @@ -3667,9 +3667,9 @@ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.5" } }, "babel-helper-remap-async-to-generator": { @@ -3678,11 +3678,11 @@ "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "dev": true, "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-helpers": { @@ -3691,8 +3691,8 @@ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" } }, "babel-messages": { @@ -3701,7 +3701,7 @@ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-check-es2015-constants": { @@ -3710,7 +3710,7 @@ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-espower": { @@ -3719,13 +3719,13 @@ "integrity": "sha512-/+SRpy7pKgTI28oEHfn1wkuM5QFAdRq8WNsOOih1dVrdV6A/WbNbRZyl0eX5eyDgtb0lOE27PeDFuCX2j8OxVg==", "dev": true, "requires": { - "babel-generator": "^6.1.0", - "babylon": "^6.1.0", - "call-matcher": "^1.0.0", - "core-js": "^2.0.0", - "espower-location-detector": "^1.0.0", - "espurify": "^1.6.0", - "estraverse": "^4.1.1" + "babel-generator": "6.26.1", + "babylon": "6.18.0", + "call-matcher": "1.0.1", + "core-js": "2.5.7", + "espower-location-detector": "1.0.0", + "espurify": "1.8.1", + "estraverse": "4.2.0" } }, "babel-plugin-syntax-async-functions": { @@ -3758,9 +3758,9 @@ "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "dev": true, "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-destructuring": { @@ -3769,7 +3769,7 @@ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -3778,9 +3778,9 @@ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "dev": true, "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -3789,10 +3789,10 @@ "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "dev": true, "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -3801,12 +3801,12 @@ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "dev": true, "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-spread": { @@ -3815,7 +3815,7 @@ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -3824,9 +3824,9 @@ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "dev": true, "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -3835,9 +3835,9 @@ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "dev": true, "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "regexpu-core": "2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -3846,9 +3846,9 @@ "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "dev": true, "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" + "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", + "babel-plugin-syntax-exponentiation-operator": "6.13.0", + "babel-runtime": "6.26.0" } }, "babel-plugin-transform-strict-mode": { @@ -3857,8 +3857,8 @@ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" } }, "babel-register": { @@ -3867,13 +3867,13 @@ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "dev": true, "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" + "babel-core": "6.26.3", + "babel-runtime": "6.26.0", + "core-js": "2.5.7", + "home-or-tmp": "2.0.0", + "lodash": "4.17.5", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" }, "dependencies": { "source-map-support": { @@ -3882,7 +3882,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "^0.5.6" + "source-map": "0.5.7" } } } @@ -3893,8 +3893,8 @@ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "babel-template": { @@ -3903,11 +3903,11 @@ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.5" } }, "babel-traverse": { @@ -3916,15 +3916,15 @@ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.4", + "lodash": "4.17.5" }, "dependencies": { "debug": { @@ -3944,10 +3944,10 @@ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" } }, "babylon": { @@ -3968,13 +3968,13 @@ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" }, "dependencies": { "define-property": { @@ -3983,7 +3983,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -3992,7 +3992,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -4001,7 +4001,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -4010,9 +4010,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -4035,7 +4035,7 @@ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "optional": true, "requires": { - "tweetnacl": "^0.14.3" + "tweetnacl": "0.14.5" } }, "big-time": { @@ -4063,15 +4063,15 @@ "dev": true, "requires": { "bytes": "3.0.0", - "content-type": "~1.0.4", + "content-type": "1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "~1.6.3", + "depd": "1.1.2", + "http-errors": "1.6.3", "iconv-lite": "0.4.23", - "on-finished": "~2.3.0", + "on-finished": "2.3.0", "qs": "6.5.2", "raw-body": "2.3.3", - "type-is": "~1.6.16" + "type-is": "1.6.16" }, "dependencies": { "debug": { @@ -4091,7 +4091,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.x.x" + "hoek": "5.0.3" } }, "bounce": { @@ -4100,8 +4100,8 @@ "integrity": "sha512-8syCGe8B2/WC53118/F/tFy5aW00j+eaGPXmAUP7iBhxc+EBZZxS1vKelWyBCH6IqojgS2t1gF0glH30qAJKEw==", "dev": true, "requires": { - "boom": "7.x.x", - "hoek": "5.x.x" + "boom": "7.2.0", + "hoek": "5.0.3" } }, "boxen": { @@ -4110,13 +4110,13 @@ "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", "dev": true, "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" + "ansi-align": "2.0.0", + "camelcase": "4.1.0", + "chalk": "2.4.1", + "cli-boxes": "1.0.0", + "string-width": "2.1.1", + "term-size": "1.2.0", + "widest-line": "2.0.0" }, "dependencies": { "camelcase": { @@ -4133,7 +4133,7 @@ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -4143,9 +4143,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" } }, "browser-stdout": { @@ -4189,10 +4189,10 @@ "integrity": "sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=", "dev": true, "requires": { - "dtrace-provider": "~0.8", - "moment": "^2.10.6", - "mv": "~2", - "safe-json-stringify": "~1" + "dtrace-provider": "0.8.7", + "moment": "2.22.2", + "mv": "2.1.1", + "safe-json-stringify": "1.2.0" } }, "bytes": { @@ -4207,15 +4207,15 @@ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" + "collection-visit": "1.0.0", + "component-emitter": "1.2.1", + "get-value": "2.0.6", + "has-value": "1.0.0", + "isobject": "3.0.1", + "set-value": "2.0.0", + "to-object-path": "0.3.0", + "union-value": "1.0.0", + "unset-value": "1.0.0" }, "dependencies": { "isobject": { @@ -4232,8 +4232,8 @@ "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", "dev": true, "requires": { - "mime-types": "^2.1.18", - "ylru": "^1.2.0" + "mime-types": "2.1.19", + "ylru": "1.2.1" } }, "cacheable-request": { @@ -4265,9 +4265,9 @@ "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", "dev": true, "requires": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" }, "dependencies": { "md5-hex": { @@ -4276,7 +4276,7 @@ "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "dev": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "write-file-atomic": { @@ -4285,9 +4285,9 @@ "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" } } } @@ -4298,8 +4298,8 @@ "integrity": "sha512-ollfFPSshiuYLp7AsrmpkQJ/PxCi6AzV81rCjBwWhyF2QGyUY/vPDMzoh4aUcWyucheRglG2LaS5qkIEfLRh6A==", "dev": true, "requires": { - "boom": "7.x.x", - "hoek": "5.x.x" + "boom": "7.2.0", + "hoek": "5.0.3" } }, "call-matcher": { @@ -4308,10 +4308,10 @@ "integrity": "sha1-UTTQd5hPcSpU2tPL9i3ijc5BbKg=", "dev": true, "requires": { - "core-js": "^2.0.0", - "deep-equal": "^1.0.0", - "espurify": "^1.6.0", - "estraverse": "^4.0.0" + "core-js": "2.5.7", + "deep-equal": "1.0.1", + "espurify": "1.8.1", + "estraverse": "4.2.0" } }, "call-me-maybe": { @@ -4332,7 +4332,7 @@ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { - "callsites": "^0.2.0" + "callsites": "0.2.0" } }, "callsites": { @@ -4353,8 +4353,8 @@ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" + "camelcase": "2.1.1", + "map-obj": "1.0.1" } }, "capture-stack-trace": { @@ -4374,10 +4374,10 @@ "integrity": "sha512-cTQTQeKMhWHU0lX8CADE3g1koGJu+AlcWFzAjMX/8P+XbkScGYw3tJsQpe2Oh8q68vOQbOLacz9k+6V/F3Z9DA==", "dev": true, "requires": { - "boom": "7.x.x", - "bounce": "1.x.x", - "hoek": "5.x.x", - "joi": "13.x.x" + "boom": "7.2.0", + "bounce": "1.2.0", + "hoek": "5.0.3", + "joi": "13.5.2" } }, "catbox-memory": { @@ -4386,9 +4386,9 @@ "integrity": "sha512-lhWtutLVhsq3Mucxk2McxBPPibJ34WcHuWFz3xqub9u9Ve/IQYpZv3ijLhQXfQped9DXozURiaq9O3aZpP91eg==", "dev": true, "requires": { - "big-time": "2.x.x", - "boom": "7.x.x", - "hoek": "5.x.x" + "big-time": "2.0.1", + "boom": "7.2.0", + "hoek": "5.0.3" } }, "catharsis": { @@ -4397,7 +4397,7 @@ "integrity": "sha1-mMyJDKZS3S7w5ws3klMQ/56Q/Is=", "dev": true, "requires": { - "underscore-contrib": "~0.3.0" + "underscore-contrib": "0.3.0" } }, "center-align": { @@ -4407,8 +4407,8 @@ "dev": true, "optional": true, "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "align-text": "0.1.4", + "lazy-cache": "1.0.4" } }, "chai": { @@ -4417,12 +4417,12 @@ "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", "dev": true, "requires": { - "assertion-error": "^1.0.1", - "check-error": "^1.0.1", - "deep-eql": "^3.0.0", - "get-func-name": "^2.0.0", - "pathval": "^1.0.0", - "type-detect": "^4.0.0" + "assertion-error": "1.1.0", + "check-error": "1.0.2", + "deep-eql": "3.0.1", + "get-func-name": "2.0.0", + "pathval": "1.1.0", + "type-detect": "4.0.8" } }, "chalk": { @@ -4431,9 +4431,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.0" } }, "chardet": { @@ -4454,15 +4454,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "dev": true, "requires": { - "anymatch": "^1.3.0", - "async-each": "^1.0.0", - "fsevents": "^1.0.0", - "glob-parent": "^2.0.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0" + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.2.4", + "glob-parent": "2.0.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" } }, "ci-info": { @@ -4483,9 +4483,9 @@ "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", "dev": true, "requires": { - "async": "^1.5.2", - "glob": "^7.0.0", - "resolve": "^1.1.6" + "async": "1.5.2", + "glob": "7.1.2", + "resolve": "1.1.7" } }, "class-utils": { @@ -4494,10 +4494,10 @@ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" }, "dependencies": { "define-property": { @@ -4506,7 +4506,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "isobject": { @@ -4541,7 +4541,7 @@ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "restore-cursor": "^2.0.0" + "restore-cursor": "2.0.0" } }, "cli-spinners": { @@ -4556,8 +4556,8 @@ "integrity": "sha512-bAtZo0u82gCfaAGfSNxUdTI9mNyza7D8w4CVCcaOsy7sgwDzvx6ekr6cuWJqY3UGzgnQ1+4wgENup5eIhgxEYA==", "dev": true, "requires": { - "slice-ansi": "^1.0.0", - "string-width": "^2.0.0" + "slice-ansi": "1.0.0", + "string-width": "2.1.1" } }, "cli-width": { @@ -4573,8 +4573,8 @@ "dev": true, "optional": true, "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", + "center-align": "0.1.3", + "right-align": "0.1.3", "wordwrap": "0.0.2" }, "dependencies": { @@ -4593,7 +4593,7 @@ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "dev": true, "requires": { - "mimic-response": "^1.0.0" + "mimic-response": "1.0.1" } }, "co": { @@ -4607,7 +4607,7 @@ "integrity": "sha1-QT59tvWJOmC5Qs9JLEvsk9tBWrc=", "dev": true, "requires": { - "pinkie-promise": "^1.0.0" + "pinkie-promise": "1.0.0" } }, "code-excerpt": { @@ -4616,7 +4616,7 @@ "integrity": "sha512-tJLhH3EpFm/1x7heIW0hemXJTUU5EWl2V0EIX558jp05Mt1U6DVryCgkp3l37cxqs+DNbNgxG43SkwJXpQ14Jw==", "dev": true, "requires": { - "convert-to-spaces": "^1.0.1" + "convert-to-spaces": "1.0.2" } }, "code-point-at": { @@ -4631,10 +4631,10 @@ "integrity": "sha512-KJyzHdg9B8U9LxXa7hS6jnEW5b1cNckLYc2YpnJ1nEFiOW+/iSzDHp+5MYEIQd9fN3/tC6WmGZmYiwxzkuGp/A==", "dev": true, "requires": { - "argv": "^0.0.2", - "ignore-walk": "^3.0.1", - "request": "^2.87.0", - "urlgrey": "^0.4.4" + "argv": "0.0.2", + "ignore-walk": "3.0.1", + "request": "2.87.0", + "urlgrey": "0.4.4" } }, "collection-visit": { @@ -4643,8 +4643,8 @@ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "map-visit": "1.0.0", + "object-visit": "1.0.1" } }, "color-convert": { @@ -4673,7 +4673,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "requires": { - "delayed-stream": "~1.0.0" + "delayed-stream": "1.0.0" } }, "commander": { @@ -4712,17 +4712,17 @@ "integrity": "sha512-CZBzJ3/l5QJjlZM20WY7+5GP5pMTw+1UEbThcpMw8/rojsi5sBCiD8ZbBLtD+jYpRGAkwuKuqk108c154V9eyQ==", "dev": true, "requires": { - "date-time": "^2.1.0", - "esutils": "^2.0.2", - "fast-diff": "^1.1.1", - "function-name-support": "^0.2.0", - "js-string-escape": "^1.0.1", - "lodash.clonedeep": "^4.5.0", - "lodash.flattendeep": "^4.4.0", - "lodash.merge": "^4.6.0", - "md5-hex": "^2.0.0", - "semver": "^5.3.0", - "well-known-symbols": "^1.0.0" + "date-time": "2.1.0", + "esutils": "2.0.2", + "fast-diff": "1.1.2", + "function-name-support": "0.2.0", + "js-string-escape": "1.0.1", + "lodash.clonedeep": "4.5.0", + "lodash.flattendeep": "4.4.0", + "lodash.merge": "4.6.1", + "md5-hex": "2.0.0", + "semver": "5.5.0", + "well-known-symbols": "1.0.0" }, "dependencies": { "date-time": { @@ -4731,7 +4731,7 @@ "integrity": "sha512-/9+C44X7lot0IeiyfgJmETtRMhBidBYM2QFFIkGa0U1k+hSyY87Nw7PY3eDqpvCBm7I3WCSfPeZskW/YYq6m4g==", "dev": true, "requires": { - "time-zone": "^1.0.0" + "time-zone": "1.0.0" } } } @@ -4742,12 +4742,12 @@ "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", "dev": true, "requires": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" + "dot-prop": "4.2.0", + "graceful-fs": "4.1.11", + "make-dir": "1.3.0", + "unique-string": "1.0.0", + "write-file-atomic": "2.3.0", + "xdg-basedir": "3.0.0" } }, "console-log-level": { @@ -4761,7 +4761,7 @@ "integrity": "sha512-wDP6CTWDpwCf791fNxlCCkZGRkrNzSEU/8ju9Hnr3Uc5mF/gFR5W+fcoGm6zUSlVPdSXYn5pCbySADKj7YM4Cg==", "dev": true, "requires": { - "boom": "7.x.x" + "boom": "7.2.0" } }, "content-disposition": { @@ -4812,8 +4812,8 @@ "integrity": "sha1-fIphX1SBxhq58WyDNzG8uPZjuZs=", "dev": true, "requires": { - "depd": "~1.1.1", - "keygrip": "~1.0.2" + "depd": "1.1.2", + "keygrip": "1.0.2" } }, "copy-descriptor": { @@ -4828,8 +4828,8 @@ "integrity": "sha1-+F4s+b/tKPdzzIs/pcW2m9wC/j8=", "dev": true, "requires": { - "buf-compare": "^1.0.0", - "is-error": "^2.2.0" + "buf-compare": "1.0.1", + "is-error": "2.2.1" } }, "core-js": { @@ -4849,11 +4849,11 @@ "integrity": "sha512-OtHMgPugkgwHlbph25wlMKd358lZNhX1Y2viUpPoFmlBPlEiPIRhztYWha11grbGPnlM+urp5saVmwsChCIOEg==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "nested-error-stacks": "^2.0.0", - "pify": "^3.0.0", - "safe-buffer": "^5.0.1" + "graceful-fs": "4.1.11", + "make-dir": "1.3.0", + "nested-error-stacks": "2.0.1", + "pify": "3.0.0", + "safe-buffer": "5.1.2" } }, "cpy": { @@ -4862,10 +4862,10 @@ "integrity": "sha512-Zo52tXKLJcgy/baacn6KaNoRAakkl2wb+R4u6qJ4wlD0uchncwRQcIk66PlGlkzuToCJO6A6PWX27Tdwc8LU2g==", "dev": true, "requires": { - "arrify": "^1.0.1", - "cp-file": "^6.0.0", - "globby": "^8.0.1", - "nested-error-stacks": "^2.0.0" + "arrify": "1.0.1", + "cp-file": "6.0.0", + "globby": "8.0.1", + "nested-error-stacks": "2.0.1" }, "dependencies": { "globby": { @@ -4874,13 +4874,13 @@ "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", "dev": true, "requires": { - "array-union": "^1.0.1", - "dir-glob": "^2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" + "array-union": "1.0.2", + "dir-glob": "2.0.0", + "fast-glob": "2.2.2", + "glob": "7.1.2", + "ignore": "3.3.10", + "pify": "3.0.0", + "slash": "1.0.0" } } } @@ -4891,8 +4891,8 @@ "integrity": "sha512-LzrtY3lBWvFZcw4lXgkEbbDUd7y78juC3C5l7gj3UyezMEZF0Be9fjCVLN1HoZAzdMDeC3KHehWpHBJvgVAPkw==", "dev": true, "requires": { - "cpy": "^7.0.0", - "meow": "^5.0.0" + "cpy": "7.0.1", + "meow": "5.0.0" }, "dependencies": { "camelcase": { @@ -4907,9 +4907,9 @@ "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", "dev": true, "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" + "camelcase": "4.1.0", + "map-obj": "2.0.0", + "quick-lru": "1.1.0" } }, "load-json-file": { @@ -4918,10 +4918,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.11", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" } }, "map-obj": { @@ -4936,15 +4936,15 @@ "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", "dev": true, "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0", - "yargs-parser": "^10.0.0" + "camelcase-keys": "4.2.0", + "decamelize-keys": "1.1.0", + "loud-rejection": "1.6.0", + "minimist-options": "3.0.2", + "normalize-package-data": "2.4.0", + "read-pkg-up": "3.0.0", + "redent": "2.0.0", + "trim-newlines": "2.0.0", + "yargs-parser": "10.1.0" } }, "parse-json": { @@ -4953,8 +4953,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" } }, "path-type": { @@ -4963,7 +4963,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "read-pkg": { @@ -4972,9 +4972,9 @@ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" + "load-json-file": "4.0.0", + "normalize-package-data": "2.4.0", + "path-type": "3.0.0" } }, "read-pkg-up": { @@ -4983,8 +4983,8 @@ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" + "find-up": "2.1.0", + "read-pkg": "3.0.0" } }, "redent": { @@ -4993,8 +4993,8 @@ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", "dev": true, "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" + "indent-string": "3.2.0", + "strip-indent": "2.0.0" } }, "strip-indent": { @@ -5017,7 +5017,7 @@ "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "dev": true, "requires": { - "capture-stack-trace": "^1.0.0" + "capture-stack-trace": "1.0.0" } }, "cross-spawn": { @@ -5026,9 +5026,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.1" } }, "cryptiles": { @@ -5037,7 +5037,7 @@ "integrity": "sha512-U2ALcoAHvA1oO2xOreyHvtkQ+IELqDG2WVWRI1GH/XEmmfGIOalnM5MU5Dd2ITyWfr3m6kNqXiy8XuYyd4wKJw==", "dev": true, "requires": { - "boom": "7.x.x" + "boom": "7.2.0" } }, "crypto-random-string": { @@ -5052,10 +5052,10 @@ "integrity": "sha1-UjHt/BxxUlEuxFeBB2p6l/9SXAw=", "dev": true, "requires": { - "csv-generate": "^1.1.2", - "csv-parse": "^1.3.3", - "csv-stringify": "^1.1.2", - "stream-transform": "^0.2.2" + "csv-generate": "1.1.2", + "csv-parse": "1.3.3", + "csv-stringify": "1.1.2", + "stream-transform": "0.2.2" } }, "csv-generate": { @@ -5076,7 +5076,7 @@ "integrity": "sha1-d6QVJlgbzjOA8SsA18W7rHDIK1g=", "dev": true, "requires": { - "lodash.get": "~4.4.2" + "lodash.get": "4.4.2" } }, "currently-unhandled": { @@ -5085,7 +5085,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "array-find-index": "^1.0.1" + "array-find-index": "1.0.2" } }, "d": { @@ -5094,7 +5094,7 @@ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "dev": true, "requires": { - "es5-ext": "^0.10.9" + "es5-ext": "0.10.45" } }, "dashdash": { @@ -5102,7 +5102,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "date-time": { @@ -5131,8 +5131,8 @@ "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", "dev": true, "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" + "decamelize": "1.2.0", + "map-obj": "1.0.1" } }, "decode-uri-component": { @@ -5147,7 +5147,7 @@ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "dev": true, "requires": { - "mimic-response": "^1.0.0" + "mimic-response": "1.0.1" } }, "deep-eql": { @@ -5156,7 +5156,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "^4.0.0" + "type-detect": "4.0.8" } }, "deep-equal": { @@ -5183,8 +5183,8 @@ "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "dev": true, "requires": { - "foreach": "^2.0.5", - "object-keys": "^1.0.8" + "foreach": "2.0.5", + "object-keys": "1.0.12" } }, "define-property": { @@ -5193,8 +5193,8 @@ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "is-descriptor": "1.0.2", + "isobject": "3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -5203,7 +5203,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -5212,7 +5212,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -5221,9 +5221,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -5246,13 +5246,13 @@ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" + "globby": "5.0.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.1", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "rimraf": "2.6.2" }, "dependencies": { "globby": { @@ -5261,12 +5261,12 @@ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pify": { @@ -5287,7 +5287,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } } } @@ -5321,7 +5321,7 @@ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "detect-node": { @@ -5348,8 +5348,8 @@ "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", "dev": true, "requires": { - "arrify": "^1.0.1", - "path-type": "^3.0.0" + "arrify": "1.0.1", + "path-type": "3.0.0" }, "dependencies": { "path-type": { @@ -5358,7 +5358,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } } } @@ -5369,7 +5369,7 @@ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "esutils": "^2.0.2" + "esutils": "2.0.2" } }, "dom-serializer": { @@ -5378,8 +5378,8 @@ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "dev": true, "requires": { - "domelementtype": "~1.1.1", - "entities": "~1.1.1" + "domelementtype": "1.1.3", + "entities": "1.1.1" }, "dependencies": { "domelementtype": { @@ -5402,7 +5402,7 @@ "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "dev": true, "requires": { - "domelementtype": "1" + "domelementtype": "1.3.0" } }, "domutils": { @@ -5411,8 +5411,8 @@ "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "dev": true, "requires": { - "dom-serializer": "0", - "domelementtype": "1" + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" } }, "dot-prop": { @@ -5421,7 +5421,7 @@ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", "dev": true, "requires": { - "is-obj": "^1.0.0" + "is-obj": "1.0.1" } }, "dtrace-provider": { @@ -5431,7 +5431,7 @@ "dev": true, "optional": true, "requires": { - "nan": "^2.10.0" + "nan": "2.10.0" } }, "duplexer3": { @@ -5445,10 +5445,10 @@ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" + "end-of-stream": "1.4.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "stream-shift": "1.0.0" } }, "eastasianwidth": { @@ -5463,8 +5463,8 @@ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "optional": true, "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "jsbn": "0.1.1", + "safer-buffer": "2.1.2" } }, "ecdsa-sig-formatter": { @@ -5472,7 +5472,7 @@ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz", "integrity": "sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM=", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "ee-first": { @@ -5487,8 +5487,8 @@ "integrity": "sha512-tP2WqM7QzrPguCCQEQfFFDF+6Pw6YWLQal3+GHQaV+0uIr0S+jyREQPWljE02zFCYPFYLZ3LosiRV+OzTrxPpQ==", "dev": true, "requires": { - "core-js": "^2.0.0", - "empower-core": "^1.2.0" + "core-js": "2.5.7", + "empower-core": "1.2.0" }, "dependencies": { "empower-core": { @@ -5498,7 +5498,7 @@ "dev": true, "requires": { "call-signature": "0.0.2", - "core-js": "^2.0.0" + "core-js": "2.5.7" } } } @@ -5509,7 +5509,7 @@ "integrity": "sha512-Ylck0Q6p8y/LpNzYeBccaxAPm2ZyuqBgErgZpO9KT0HuQWF0sJckBKCLmgS1/DEXEiyBi9XtYh3clZm5cAdARw==", "dev": true, "requires": { - "estraverse": "^4.2.0" + "estraverse": "4.2.0" } }, "empower-core": { @@ -5519,7 +5519,7 @@ "dev": true, "requires": { "call-signature": "0.0.2", - "core-js": "^2.0.0" + "core-js": "2.5.7" } }, "encodeurl": { @@ -5533,7 +5533,7 @@ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "requires": { - "once": "^1.4.0" + "once": "1.4.0" } }, "ent": { @@ -5559,7 +5559,7 @@ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "error-inject": { @@ -5574,11 +5574,11 @@ "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "dev": true, "requires": { - "es-to-primitive": "^1.1.1", - "function-bind": "^1.1.1", - "has": "^1.0.1", - "is-callable": "^1.1.3", - "is-regex": "^1.0.4" + "es-to-primitive": "1.1.1", + "function-bind": "1.1.1", + "has": "1.0.3", + "is-callable": "1.1.4", + "is-regex": "1.0.4" } }, "es-to-primitive": { @@ -5587,9 +5587,9 @@ "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", "dev": true, "requires": { - "is-callable": "^1.1.1", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.1" + "is-callable": "1.1.4", + "is-date-object": "1.0.1", + "is-symbol": "1.0.1" } }, "es5-ext": { @@ -5598,9 +5598,9 @@ "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", "dev": true, "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.1", - "next-tick": "1" + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1", + "next-tick": "1.0.0" } }, "es6-error": { @@ -5615,9 +5615,9 @@ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "dev": true, "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" + "d": "1.0.0", + "es5-ext": "0.10.45", + "es6-symbol": "3.1.1" } }, "es6-map": { @@ -5626,12 +5626,12 @@ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", "dev": true, "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-set": "~0.1.5", - "es6-symbol": "~3.1.1", - "event-emitter": "~0.3.5" + "d": "1.0.0", + "es5-ext": "0.10.45", + "es6-iterator": "2.0.3", + "es6-set": "0.1.5", + "es6-symbol": "3.1.1", + "event-emitter": "0.3.5" } }, "es6-set": { @@ -5640,11 +5640,11 @@ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", "dev": true, "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", + "d": "1.0.0", + "es5-ext": "0.10.45", + "es6-iterator": "2.0.3", "es6-symbol": "3.1.1", - "event-emitter": "~0.3.5" + "event-emitter": "0.3.5" } }, "es6-symbol": { @@ -5653,8 +5653,8 @@ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", "dev": true, "requires": { - "d": "1", - "es5-ext": "~0.10.14" + "d": "1.0.0", + "es5-ext": "0.10.45" } }, "es6-weak-map": { @@ -5663,10 +5663,10 @@ "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", "dev": true, "requires": { - "d": "1", - "es5-ext": "^0.10.14", - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" + "d": "1.0.0", + "es5-ext": "0.10.45", + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1" } }, "escallmatch": { @@ -5675,8 +5675,8 @@ "integrity": "sha1-UAmdhugJGwkt+N37w/mm+wWgJNA=", "dev": true, "requires": { - "call-matcher": "^1.0.0", - "esprima": "^2.0.0" + "call-matcher": "1.0.1", + "esprima": "2.7.3" }, "dependencies": { "esprima": { @@ -5711,11 +5711,11 @@ "integrity": "sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==", "dev": true, "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.6.1" }, "dependencies": { "esprima": { @@ -5739,10 +5739,10 @@ "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", "dev": true, "requires": { - "es6-map": "^0.1.3", - "es6-weak-map": "^2.0.1", - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "es6-map": "0.1.5", + "es6-weak-map": "2.0.2", + "esrecurse": "4.2.1", + "estraverse": "4.2.0" } }, "eslint": { @@ -5751,45 +5751,45 @@ "integrity": "sha512-zlggW1qp7/TBjwLfouRoY7eWXrXwJZFqCdIxxh0/LVB/QuuKuIMkzyUZEcDo6LBadsry5JcEMxIqd3H/66CXVg==", "dev": true, "requires": { - "ajv": "^6.5.0", - "babel-code-frame": "^6.26.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^4.0.0", - "eslint-utils": "^1.3.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^4.0.0", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.7.0", - "ignore": "^4.0.2", - "imurmurhash": "^0.1.4", - "inquirer": "^5.2.0", - "is-resolvable": "^1.1.0", - "js-yaml": "^3.11.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.5", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "regexpp": "^1.1.0", - "require-uncached": "^1.0.3", - "semver": "^5.5.0", - "string.prototype.matchall": "^2.0.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "^2.0.1", - "table": "^4.0.3", - "text-table": "^0.2.0" + "ajv": "6.5.2", + "babel-code-frame": "6.26.0", + "chalk": "2.4.1", + "cross-spawn": "6.0.5", + "debug": "3.1.0", + "doctrine": "2.1.0", + "eslint-scope": "4.0.0", + "eslint-utils": "1.3.1", + "eslint-visitor-keys": "1.0.0", + "espree": "4.0.0", + "esquery": "1.0.1", + "esutils": "2.0.2", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.2", + "globals": "11.7.0", + "ignore": "4.0.2", + "imurmurhash": "0.1.4", + "inquirer": "5.2.0", + "is-resolvable": "1.1.0", + "js-yaml": "3.12.0", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.5", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.0", + "regexpp": "1.1.0", + "require-uncached": "1.0.3", + "semver": "5.5.0", + "string.prototype.matchall": "2.0.0", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", + "table": "4.0.3", + "text-table": "0.2.0" }, "dependencies": { "ajv": { @@ -5798,10 +5798,10 @@ "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.1" + "fast-deep-equal": "2.0.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" } }, "cross-spawn": { @@ -5810,11 +5810,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "nice-try": "1.0.4", + "path-key": "2.0.1", + "semver": "5.5.0", + "shebang-command": "1.2.0", + "which": "1.3.1" } }, "fast-deep-equal": { @@ -5849,7 +5849,7 @@ "integrity": "sha512-ag8YEyBXsm3nmOv1Hz991VtNNDMRa+MNy8cY47Pl4bw6iuzqKbJajXdqUpiw13STdLLrznxgm1hj9NhxeOYq0A==", "dev": true, "requires": { - "get-stdin": "^5.0.1" + "get-stdin": "5.0.1" }, "dependencies": { "get-stdin": { @@ -5866,8 +5866,8 @@ "integrity": "sha512-9XcVyZiQRVeFjqHw8qHNDAZcQLqaHlOGGpeYqzYh8S4JYCWTCO3yzyen8yVmA5PratfzTRWDwCOFphtDEG+w/w==", "dev": true, "requires": { - "eslint-utils": "^1.3.0", - "regexpp": "^2.0.0" + "eslint-utils": "1.3.1", + "regexpp": "2.0.0" }, "dependencies": { "regexpp": { @@ -5884,12 +5884,12 @@ "integrity": "sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw==", "dev": true, "requires": { - "eslint-plugin-es": "^1.3.1", - "eslint-utils": "^1.3.1", - "ignore": "^4.0.2", - "minimatch": "^3.0.4", - "resolve": "^1.8.1", - "semver": "^5.5.0" + "eslint-plugin-es": "1.3.1", + "eslint-utils": "1.3.1", + "ignore": "4.0.2", + "minimatch": "3.0.4", + "resolve": "1.8.1", + "semver": "5.5.0" }, "dependencies": { "ignore": { @@ -5904,7 +5904,7 @@ "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "dev": true, "requires": { - "path-parse": "^1.0.5" + "path-parse": "1.0.5" } } } @@ -5915,8 +5915,8 @@ "integrity": "sha512-tGek5clmW5swrAx1mdPYM8oThrBE83ePh7LeseZHBWfHVGrHPhKn7Y5zgRMbU/9D5Td9K4CEmUPjGxA7iw98Og==", "dev": true, "requires": { - "fast-diff": "^1.1.1", - "jest-docblock": "^21.0.0" + "fast-diff": "1.1.2", + "jest-docblock": "21.2.0" } }, "eslint-scope": { @@ -5925,8 +5925,8 @@ "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", "dev": true, "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "esrecurse": "4.2.1", + "estraverse": "4.2.0" } }, "eslint-utils": { @@ -5947,16 +5947,16 @@ "integrity": "sha512-F4TY1qYJB1aUyzB03NsZksZzUQmQoEBaTUjRJGR30GxbkbjKI41NhCyYjrF+bGgWN7x/ZsczYppRpz/0WdI0ug==", "dev": true, "requires": { - "array-find": "^1.0.0", - "escallmatch": "^1.5.0", - "escodegen": "^1.7.0", - "escope": "^3.3.0", - "espower-location-detector": "^1.0.0", - "espurify": "^1.3.0", - "estraverse": "^4.1.0", - "source-map": "^0.5.0", - "type-name": "^2.0.0", - "xtend": "^4.0.0" + "array-find": "1.0.0", + "escallmatch": "1.5.0", + "escodegen": "1.11.0", + "escope": "3.6.0", + "espower-location-detector": "1.0.0", + "espurify": "1.8.1", + "estraverse": "4.2.0", + "source-map": "0.5.7", + "type-name": "2.0.2", + "xtend": "4.0.1" } }, "espower-loader": { @@ -5965,11 +5965,11 @@ "integrity": "sha1-7bRsPFmga6yOpzppXIblxaC8gto=", "dev": true, "requires": { - "convert-source-map": "^1.1.0", - "espower-source": "^2.0.0", - "minimatch": "^3.0.0", - "source-map-support": "^0.4.0", - "xtend": "^4.0.0" + "convert-source-map": "1.5.1", + "espower-source": "2.3.0", + "minimatch": "3.0.4", + "source-map-support": "0.4.18", + "xtend": "4.0.1" }, "dependencies": { "source-map-support": { @@ -5978,7 +5978,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "^0.5.6" + "source-map": "0.5.7" } } } @@ -5989,10 +5989,10 @@ "integrity": "sha1-oXt+zFnTDheeK+9z+0E3cEyzMbU=", "dev": true, "requires": { - "is-url": "^1.2.1", - "path-is-absolute": "^1.0.0", - "source-map": "^0.5.0", - "xtend": "^4.0.0" + "is-url": "1.2.4", + "path-is-absolute": "1.0.1", + "source-map": "0.5.7", + "xtend": "4.0.1" } }, "espower-source": { @@ -6001,17 +6001,17 @@ "integrity": "sha512-Wc4kC4zUAEV7Qt31JRPoBUc5jjowHRylml2L2VaDQ1XEbnqQofGWx+gPR03TZAPokAMl5dqyL36h3ITyMXy3iA==", "dev": true, "requires": { - "acorn": "^5.0.0", - "acorn-es7-plugin": "^1.0.10", - "convert-source-map": "^1.1.1", - "empower-assert": "^1.0.0", - "escodegen": "^1.10.0", - "espower": "^2.1.1", - "estraverse": "^4.0.0", - "merge-estraverse-visitors": "^1.0.0", - "multi-stage-sourcemap": "^0.2.1", - "path-is-absolute": "^1.0.0", - "xtend": "^4.0.0" + "acorn": "5.7.1", + "acorn-es7-plugin": "1.1.7", + "convert-source-map": "1.5.1", + "empower-assert": "1.1.0", + "escodegen": "1.11.0", + "espower": "2.1.1", + "estraverse": "4.2.0", + "merge-estraverse-visitors": "1.0.0", + "multi-stage-sourcemap": "0.2.1", + "path-is-absolute": "1.0.1", + "xtend": "4.0.1" } }, "espree": { @@ -6020,8 +6020,8 @@ "integrity": "sha512-kapdTCt1bjmspxStVKX6huolXVV5ZfyZguY1lcfhVVZstce3bqxH9mcLzNn3/mlgW6wQ732+0fuG9v7h0ZQoKg==", "dev": true, "requires": { - "acorn": "^5.6.0", - "acorn-jsx": "^4.1.1" + "acorn": "5.7.1", + "acorn-jsx": "4.1.1" } }, "esprima": { @@ -6036,7 +6036,7 @@ "integrity": "sha512-ZDko6eY/o+D/gHCWyHTU85mKDgYcS4FJj7S+YD6WIInm7GQ6AnOjmcL4+buFV/JOztVLELi/7MmuGU5NHta0Mg==", "dev": true, "requires": { - "core-js": "^2.0.0" + "core-js": "2.5.7" } }, "esquery": { @@ -6045,7 +6045,7 @@ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { - "estraverse": "^4.0.0" + "estraverse": "4.2.0" } }, "esrecurse": { @@ -6054,7 +6054,7 @@ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "^4.1.0" + "estraverse": "4.2.0" } }, "estraverse": { @@ -6081,8 +6081,8 @@ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", "dev": true, "requires": { - "d": "1", - "es5-ext": "~0.10.14" + "d": "1.0.0", + "es5-ext": "0.10.45" } }, "ewma": { @@ -6091,7 +6091,7 @@ "integrity": "sha512-MYYK17A76cuuyvkR7MnqLW4iFYPEi5Isl2qb8rXiWpLiwFS9dxW/rncuNnjjgSENuVqZQkIuR4+DChVL4g1lnw==", "dev": true, "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "execa": { @@ -6100,13 +6100,13 @@ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" } }, "expand-brackets": { @@ -6115,7 +6115,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "^0.1.0" + "is-posix-bracket": "0.1.1" } }, "expand-range": { @@ -6124,7 +6124,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "^2.1.0" + "fill-range": "2.2.4" } }, "express": { @@ -6133,36 +6133,36 @@ "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", "dev": true, "requires": { - "accepts": "~1.3.5", + "accepts": "1.3.5", "array-flatten": "1.1.1", "body-parser": "1.18.2", "content-disposition": "0.5.2", - "content-type": "~1.0.4", + "content-type": "1.0.4", "cookie": "0.3.1", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", + "depd": "1.1.2", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", "finalhandler": "1.1.1", "fresh": "0.5.2", "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", + "methods": "1.1.2", + "on-finished": "2.3.0", + "parseurl": "1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.3", + "proxy-addr": "2.0.4", "qs": "6.5.1", - "range-parser": "~1.2.0", + "range-parser": "1.2.0", "safe-buffer": "5.1.1", "send": "0.16.2", "serve-static": "1.13.2", "setprototypeof": "1.1.0", - "statuses": "~1.4.0", - "type-is": "~1.6.16", + "statuses": "1.4.0", + "type-is": "1.6.16", "utils-merge": "1.0.1", - "vary": "~1.1.2" + "vary": "1.1.2" }, "dependencies": { "body-parser": { @@ -6172,15 +6172,15 @@ "dev": true, "requires": { "bytes": "3.0.0", - "content-type": "~1.0.4", + "content-type": "1.0.4", "debug": "2.6.9", - "depd": "~1.1.1", - "http-errors": "~1.6.2", + "depd": "1.1.2", + "http-errors": "1.6.3", "iconv-lite": "0.4.19", - "on-finished": "~2.3.0", + "on-finished": "2.3.0", "qs": "6.5.1", "raw-body": "2.3.2", - "type-is": "~1.6.15" + "type-is": "1.6.16" } }, "debug": { @@ -6237,7 +6237,7 @@ "depd": "1.1.1", "inherits": "2.0.3", "setprototypeof": "1.0.3", - "statuses": ">= 1.3.1 < 2" + "statuses": "1.4.0" } }, "setprototypeof": { @@ -6279,8 +6279,8 @@ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -6289,7 +6289,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -6300,9 +6300,9 @@ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" + "chardet": "0.4.2", + "iconv-lite": "0.4.23", + "tmp": "0.0.33" } }, "extglob": { @@ -6311,7 +6311,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "extsprintf": { @@ -6342,12 +6342,12 @@ "integrity": "sha512-TR6zxCKftDQnUAPvkrCWdBgDq/gbqx8A3ApnBrR5rMvpp6+KMJI0Igw7fkWPgeVK0uhRXTXdvO3O+YP0CaUX2g==", "dev": true, "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.0.1", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.1", - "micromatch": "^3.1.10" + "@mrmlnc/readdir-enhanced": "2.2.1", + "@nodelib/fs.stat": "1.1.0", + "glob-parent": "3.1.0", + "is-glob": "4.0.0", + "merge2": "1.2.2", + "micromatch": "3.1.10" }, "dependencies": { "arr-diff": { @@ -6368,16 +6368,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "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.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -6386,7 +6386,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -6406,13 +6406,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "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" }, "dependencies": { "define-property": { @@ -6421,7 +6421,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -6430,7 +6430,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -6439,7 +6439,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -6448,7 +6448,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -6459,7 +6459,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -6468,7 +6468,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -6479,9 +6479,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" } }, "kind-of": { @@ -6498,14 +6498,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "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.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "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" }, "dependencies": { "define-property": { @@ -6514,7 +6514,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -6523,7 +6523,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -6534,10 +6534,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -6546,7 +6546,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -6557,8 +6557,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "is-glob": "3.1.0", + "path-dirname": "1.0.2" }, "dependencies": { "is-glob": { @@ -6567,7 +6567,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "^2.1.0" + "is-extglob": "2.1.1" } } } @@ -6578,7 +6578,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -6587,7 +6587,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -6596,9 +6596,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-extglob": { @@ -6613,7 +6613,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "is-extglob": "2.1.1" } }, "is-number": { @@ -6622,7 +6622,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -6631,7 +6631,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -6654,19 +6654,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "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.2", + "nanomatch": "1.2.13", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } } } @@ -6688,7 +6688,7 @@ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "escape-string-regexp": "^1.0.5" + "escape-string-regexp": "1.0.5" } }, "file-entry-cache": { @@ -6697,8 +6697,8 @@ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "dev": true, "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" + "flat-cache": "1.3.0", + "object-assign": "4.1.1" } }, "filename-regex": { @@ -6713,8 +6713,8 @@ "integrity": "sha1-mo+jb06K1jTjv2tPPIiCVRRS6yA=", "dev": true, "requires": { - "is-object": "~1.0.1", - "merge-descriptors": "~1.0.0" + "is-object": "1.0.1", + "merge-descriptors": "1.0.1" } }, "fill-range": { @@ -6723,11 +6723,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "dev": true, "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "3.0.0", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" } }, "finalhandler": { @@ -6737,12 +6737,12 @@ "dev": true, "requires": { "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "statuses": "~1.4.0", - "unpipe": "~1.0.0" + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.4.0", + "unpipe": "1.0.0" }, "dependencies": { "debug": { @@ -6768,9 +6768,9 @@ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", "dev": true, "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^2.0.0" + "commondir": "1.0.1", + "make-dir": "1.3.0", + "pkg-dir": "2.0.0" } }, "find-my-way": { @@ -6779,9 +6779,9 @@ "integrity": "sha512-cwR1IxkB1JIIGxWpX3TQC1U/51htT4dps536rno7fkszeSSevvZGkl1dpIANRNq+X6/VDSF/S4JAuDPSTepHBA==", "dev": true, "requires": { - "fast-decode-uri-component": "^1.0.0", - "safe-regex": "^1.1.0", - "semver-store": "^0.3.0" + "fast-decode-uri-component": "1.0.0", + "safe-regex": "1.1.0", + "semver-store": "0.3.0" } }, "find-up": { @@ -6790,7 +6790,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "flat-cache": { @@ -6799,10 +6799,10 @@ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "dev": true, "requires": { - "circular-json": "^0.3.1", - "del": "^2.0.2", - "graceful-fs": "^4.1.2", - "write": "^0.2.1" + "circular-json": "0.3.3", + "del": "2.2.2", + "graceful-fs": "4.1.11", + "write": "0.2.1" } }, "fn-name": { @@ -6816,7 +6816,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.1.tgz", "integrity": "sha512-v9GI1hpaqq1ZZR6pBD1+kI7O24PhDvNGNodjS3MdcEqyrahCp8zbtpv+2B/krUnSmUH80lbAS7MrdeK5IylgKg==", "requires": { - "debug": "^3.1.0" + "debug": "3.1.0" } }, "for-in": { @@ -6831,7 +6831,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { - "for-in": "^1.0.1" + "for-in": "1.0.2" } }, "foreach": { @@ -6850,9 +6850,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "requires": { - "asynckit": "^0.4.0", + "asynckit": "0.4.0", "combined-stream": "1.0.6", - "mime-types": "^2.1.12" + "mime-types": "2.1.19" } }, "formidable": { @@ -6873,7 +6873,7 @@ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { - "map-cache": "^0.2.2" + "map-cache": "0.2.2" } }, "fresh": { @@ -6888,8 +6888,8 @@ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "inherits": "2.0.3", + "readable-stream": "2.3.6" } }, "fs-extra": { @@ -6898,9 +6898,9 @@ "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.2" } }, "fs.realpath": { @@ -6916,8 +6916,8 @@ "dev": true, "optional": true, "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" + "nan": "2.10.0", + "node-pre-gyp": "0.10.0" }, "dependencies": { "abbrev": { @@ -6943,8 +6943,8 @@ "dev": true, "optional": true, "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "delegates": "1.0.0", + "readable-stream": "2.3.6" } }, "balanced-match": { @@ -6957,7 +6957,7 @@ "bundled": true, "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -7021,7 +7021,7 @@ "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.2.4" } }, "fs.realpath": { @@ -7036,14 +7036,14 @@ "dev": true, "optional": true, "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" + "aproba": "1.2.0", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" } }, "glob": { @@ -7052,12 +7052,12 @@ "dev": true, "optional": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "has-unicode": { @@ -7072,7 +7072,7 @@ "dev": true, "optional": true, "requires": { - "safer-buffer": "^2.1.0" + "safer-buffer": "2.1.2" } }, "ignore-walk": { @@ -7081,7 +7081,7 @@ "dev": true, "optional": true, "requires": { - "minimatch": "^3.0.4" + "minimatch": "3.0.4" } }, "inflight": { @@ -7090,8 +7090,8 @@ "dev": true, "optional": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -7110,7 +7110,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "isarray": { @@ -7124,7 +7124,7 @@ "bundled": true, "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -7137,8 +7137,8 @@ "bundled": true, "dev": true, "requires": { - "safe-buffer": "^5.1.1", - "yallist": "^3.0.0" + "safe-buffer": "5.1.1", + "yallist": "3.0.2" } }, "minizlib": { @@ -7147,7 +7147,7 @@ "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.2.4" } }, "mkdirp": { @@ -7170,9 +7170,9 @@ "dev": true, "optional": true, "requires": { - "debug": "^2.1.2", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" + "debug": "2.6.9", + "iconv-lite": "0.4.21", + "sax": "1.2.4" } }, "node-pre-gyp": { @@ -7181,16 +7181,16 @@ "dev": true, "optional": true, "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.0", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.1.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" + "detect-libc": "1.0.3", + "mkdirp": "0.5.1", + "needle": "2.2.0", + "nopt": "4.0.1", + "npm-packlist": "1.1.10", + "npmlog": "4.1.2", + "rc": "1.2.7", + "rimraf": "2.6.2", + "semver": "5.5.0", + "tar": "4.4.1" } }, "nopt": { @@ -7199,8 +7199,8 @@ "dev": true, "optional": true, "requires": { - "abbrev": "1", - "osenv": "^0.1.4" + "abbrev": "1.1.1", + "osenv": "0.1.5" } }, "npm-bundled": { @@ -7215,8 +7215,8 @@ "dev": true, "optional": true, "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.3" } }, "npmlog": { @@ -7225,10 +7225,10 @@ "dev": true, "optional": true, "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" } }, "number-is-nan": { @@ -7247,7 +7247,7 @@ "bundled": true, "dev": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "os-homedir": { @@ -7268,8 +7268,8 @@ "dev": true, "optional": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "path-is-absolute": { @@ -7290,10 +7290,10 @@ "dev": true, "optional": true, "requires": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "deep-extend": "0.5.1", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" }, "dependencies": { "minimist": { @@ -7310,13 +7310,13 @@ "dev": true, "optional": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" } }, "rimraf": { @@ -7325,7 +7325,7 @@ "dev": true, "optional": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "safe-buffer": { @@ -7368,9 +7368,9 @@ "bundled": true, "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "string_decoder": { @@ -7379,7 +7379,7 @@ "dev": true, "optional": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.1" } }, "strip-ansi": { @@ -7387,7 +7387,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-json-comments": { @@ -7402,13 +7402,13 @@ "dev": true, "optional": true, "requires": { - "chownr": "^1.0.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.2.4", - "minizlib": "^1.1.0", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.1", - "yallist": "^3.0.2" + "chownr": "1.0.1", + "fs-minipass": "1.2.5", + "minipass": "2.2.4", + "minizlib": "1.1.0", + "mkdirp": "0.5.1", + "safe-buffer": "5.1.1", + "yallist": "3.0.2" } }, "util-deprecate": { @@ -7423,7 +7423,7 @@ "dev": true, "optional": true, "requires": { - "string-width": "^1.0.2" + "string-width": "1.0.2" } }, "wrappy": { @@ -7461,8 +7461,8 @@ "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.6.3.tgz", "integrity": "sha512-MSmczZctbz91AxCvqp9GHBoZOSbJKAICV7Ow/AIWSJZRrRchUd5NL1b2P4OfP+4m490BEUPhhARfpHdqCxuCvg==", "requires": { - "axios": "^0.18.0", - "extend": "^3.0.1", + "axios": "0.18.0", + "extend": "3.0.2", "retry-axios": "0.3.2" } }, @@ -7507,7 +7507,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "glob": { @@ -7516,12 +7516,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "glob-base": { @@ -7530,8 +7530,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" + "glob-parent": "2.0.0", + "is-glob": "2.0.1" } }, "glob-parent": { @@ -7540,7 +7540,7 @@ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { - "is-glob": "^2.0.0" + "is-glob": "2.0.1" } }, "glob-to-regexp": { @@ -7555,7 +7555,7 @@ "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "dev": true, "requires": { - "ini": "^1.3.4" + "ini": "1.3.5" } }, "globals": { @@ -7570,11 +7570,11 @@ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "dev": true, "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "array-union": "1.0.2", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" }, "dependencies": { "pify": { @@ -7595,7 +7595,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } } } @@ -7605,13 +7605,13 @@ "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-1.6.1.tgz", "integrity": "sha512-jYiWC8NA9n9OtQM7ANn0Tk464do9yhKEtaJ72pKcaBiEwn4LwcGYIYOfwtfsSm3aur/ed3tlSxbmg24IAT6gAg==", "requires": { - "axios": "^0.18.0", - "gcp-metadata": "^0.6.3", - "gtoken": "^2.3.0", - "jws": "^3.1.5", - "lodash.isstring": "^4.0.1", - "lru-cache": "^4.1.3", - "retry-axios": "^0.3.2" + "axios": "0.18.0", + "gcp-metadata": "0.6.3", + "gtoken": "2.3.0", + "jws": "3.1.5", + "lodash.isstring": "4.0.1", + "lru-cache": "4.1.3", + "retry-axios": "0.3.2" } }, "google-p12-pem": { @@ -7619,8 +7619,8 @@ "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-1.0.2.tgz", "integrity": "sha512-+EuKr4CLlGsnXx4XIJIVkcKYrsa2xkAmCvxRhX2HsazJzUBAJ35wARGeApHUn4nNfPD03Vl057FskNr20VaCyg==", "requires": { - "node-forge": "^0.7.4", - "pify": "^3.0.0" + "node-forge": "0.7.5", + "pify": "3.0.0" } }, "got": { @@ -7629,23 +7629,23 @@ "integrity": "sha512-kBNy/S2CGwrYgDSec5KTWGKUvupwkkTVAjIsVFF2shXO13xpZdFP4d4kxa//CLX2tN/rV0aYwK8vY6UKWGn2vQ==", "dev": true, "requires": { - "@sindresorhus/is": "^0.7.0", - "cacheable-request": "^2.1.1", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "into-stream": "^3.1.0", - "is-retry-allowed": "^1.1.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "mimic-response": "^1.0.0", - "p-cancelable": "^0.4.0", - "p-timeout": "^2.0.1", - "pify": "^3.0.0", - "safe-buffer": "^5.1.1", - "timed-out": "^4.0.1", - "url-parse-lax": "^3.0.0", - "url-to-options": "^1.0.1" + "@sindresorhus/is": "0.7.0", + "cacheable-request": "2.1.4", + "decompress-response": "3.3.0", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "into-stream": "3.1.0", + "is-retry-allowed": "1.1.0", + "isurl": "1.0.0", + "lowercase-keys": "1.0.1", + "mimic-response": "1.0.1", + "p-cancelable": "0.4.1", + "p-timeout": "2.0.1", + "pify": "3.0.0", + "safe-buffer": "5.1.2", + "timed-out": "4.0.1", + "url-parse-lax": "3.0.0", + "url-to-options": "1.0.1" }, "dependencies": { "prepend-http": { @@ -7660,7 +7660,7 @@ "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "dev": true, "requires": { - "prepend-http": "^2.0.0" + "prepend-http": "2.0.0" } } } @@ -7682,11 +7682,11 @@ "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-2.3.0.tgz", "integrity": "sha512-Jc9/8mV630cZE9FC5tIlJCZNdUjwunvlwOtCz6IDlaiB4Sz68ki29a1+q97sWTnTYroiuF9B135rod9zrQdHLw==", "requires": { - "axios": "^0.18.0", - "google-p12-pem": "^1.0.0", - "jws": "^3.1.4", - "mime": "^2.2.0", - "pify": "^3.0.0" + "axios": "0.18.0", + "google-p12-pem": "1.0.2", + "jws": "3.1.5", + "mime": "2.3.1", + "pify": "3.0.0" } }, "gts": { @@ -7695,15 +7695,15 @@ "integrity": "sha512-VB9LQLFR+10cJhDBLYu9i2t7vTkewTXeBJbvw5+M2LqGgjiaKIUTIFbVBLjIknDpuaRpAzVcvhiHWy/30c09jg==", "dev": true, "requires": { - "chalk": "^2.4.1", + "chalk": "2.4.1", "clang-format": "1.2.3", - "inquirer": "^6.0.0", - "meow": "^5.0.0", - "pify": "^3.0.0", - "rimraf": "^2.6.2", - "tslint": "^5.9.1", - "update-notifier": "^2.5.0", - "write-file-atomic": "^2.3.0" + "inquirer": "6.0.0", + "meow": "5.0.0", + "pify": "3.0.0", + "rimraf": "2.6.2", + "tslint": "5.11.0", + "update-notifier": "2.5.0", + "write-file-atomic": "2.3.0" }, "dependencies": { "camelcase": { @@ -7718,9 +7718,9 @@ "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", "dev": true, "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" + "camelcase": "4.1.0", + "map-obj": "2.0.0", + "quick-lru": "1.1.0" } }, "chardet": { @@ -7735,9 +7735,9 @@ "integrity": "sha512-mpkfj0FEdxrIhOC04zk85X7StNtr0yXnG7zCb+8ikO8OJi2jsHh5YGoknNTyXgsbHOf1WOOcVU3kPFWT2WgCkQ==", "dev": true, "requires": { - "chardet": "^0.5.0", - "iconv-lite": "^0.4.22", - "tmp": "^0.0.33" + "chardet": "0.5.0", + "iconv-lite": "0.4.23", + "tmp": "0.0.33" } }, "inquirer": { @@ -7746,19 +7746,19 @@ "integrity": "sha512-tISQWRwtcAgrz+SHPhTH7d3e73k31gsOy6i1csonLc0u1dVK/wYvuOnFeiWqC5OXFIYbmrIFInef31wbT8MEJg==", "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.0", - "figures": "^2.0.0", - "lodash": "^4.3.0", + "ansi-escapes": "3.1.0", + "chalk": "2.4.1", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "3.0.0", + "figures": "2.0.0", + "lodash": "4.17.5", "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.1.0", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" + "run-async": "2.3.0", + "rxjs": "6.2.2", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" } }, "load-json-file": { @@ -7767,10 +7767,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.11", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" } }, "map-obj": { @@ -7785,15 +7785,15 @@ "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", "dev": true, "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0", - "yargs-parser": "^10.0.0" + "camelcase-keys": "4.2.0", + "decamelize-keys": "1.1.0", + "loud-rejection": "1.6.0", + "minimist-options": "3.0.2", + "normalize-package-data": "2.4.0", + "read-pkg-up": "3.0.0", + "redent": "2.0.0", + "trim-newlines": "2.0.0", + "yargs-parser": "10.1.0" } }, "parse-json": { @@ -7802,8 +7802,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" } }, "path-type": { @@ -7812,7 +7812,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "read-pkg": { @@ -7821,9 +7821,9 @@ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" + "load-json-file": "4.0.0", + "normalize-package-data": "2.4.0", + "path-type": "3.0.0" } }, "read-pkg-up": { @@ -7832,8 +7832,8 @@ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" + "find-up": "2.1.0", + "read-pkg": "3.0.0" } }, "redent": { @@ -7842,8 +7842,8 @@ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", "dev": true, "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" + "indent-string": "3.2.0", + "strip-indent": "2.0.0" } }, "rxjs": { @@ -7852,7 +7852,7 @@ "integrity": "sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==", "dev": true, "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.3" } }, "strip-indent": { @@ -7881,10 +7881,10 @@ "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" }, "dependencies": { "source-map": { @@ -7893,7 +7893,7 @@ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -7904,23 +7904,23 @@ "integrity": "sha512-UxMKYzrjfXlcztJQPEB3os5rM3SKgSQVxoOym4KI3JdP4pxl5WUdZYF8it4Kga2OMTGwB+ZTy+DU9b/oDaQHRQ==", "dev": true, "requires": { - "accept": "3.x.x", - "ammo": "3.x.x", - "boom": "7.x.x", - "bounce": "1.x.x", - "call": "5.x.x", - "catbox": "10.x.x", - "catbox-memory": "3.x.x", - "heavy": "6.x.x", - "hoek": "5.x.x", - "joi": "13.x.x", - "mimos": "4.x.x", - "podium": "3.x.x", - "shot": "4.x.x", - "statehood": "6.x.x", - "subtext": "6.x.x", - "teamwork": "3.x.x", - "topo": "3.x.x" + "accept": "3.0.2", + "ammo": "3.0.1", + "boom": "7.2.0", + "bounce": "1.2.0", + "call": "5.0.1", + "catbox": "10.0.2", + "catbox-memory": "3.1.2", + "heavy": "6.1.0", + "hoek": "5.0.3", + "joi": "13.5.2", + "mimos": "4.0.0", + "podium": "3.1.2", + "shot": "4.0.5", + "statehood": "6.0.6", + "subtext": "6.0.7", + "teamwork": "3.0.1", + "topo": "3.0.0" } }, "har-schema": { @@ -7933,8 +7933,8 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "requires": { - "ajv": "^5.1.0", - "har-schema": "^2.0.0" + "ajv": "5.5.2", + "har-schema": "2.0.0" } }, "has": { @@ -7943,7 +7943,7 @@ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { - "function-bind": "^1.1.1" + "function-bind": "1.1.1" } }, "has-ansi": { @@ -7952,7 +7952,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "has-color": { @@ -7985,7 +7985,7 @@ "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", "dev": true, "requires": { - "has-symbol-support-x": "^1.4.1" + "has-symbol-support-x": "1.4.2" } }, "has-value": { @@ -7994,9 +7994,9 @@ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -8013,8 +8013,8 @@ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "is-number": { @@ -8023,7 +8023,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -8032,7 +8032,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -8043,7 +8043,7 @@ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -8066,9 +8066,9 @@ "integrity": "sha512-TKS9DC9NOTGulHQI31Lx+bmeWmNOstbJbGMiN3pX6bF+Zc2GKSpbbym4oasNnB6yPGkqJ9TQXXYDGohqNSJRxA==", "dev": true, "requires": { - "boom": "7.x.x", - "hoek": "5.x.x", - "joi": "13.x.x" + "boom": "7.2.0", + "hoek": "5.0.3", + "joi": "13.5.2" } }, "hoek": { @@ -8083,8 +8083,8 @@ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "dev": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "hosted-git-info": { @@ -8099,10 +8099,10 @@ "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "dev": true, "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" + "inherits": "2.0.3", + "obuf": "1.1.2", + "readable-stream": "2.3.6", + "wbuf": "1.7.3" } }, "htmlparser2": { @@ -8111,12 +8111,12 @@ "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", "dev": true, "requires": { - "domelementtype": "^1.3.0", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^2.0.2" + "domelementtype": "1.3.0", + "domhandler": "2.4.2", + "domutils": "1.7.0", + "entities": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6" } }, "http-assert": { @@ -8125,8 +8125,8 @@ "integrity": "sha1-oxpc+IyHPsu1eWkH1NbxMujAHko=", "dev": true, "requires": { - "deep-equal": "~1.0.1", - "http-errors": "~1.6.1" + "deep-equal": "1.0.1", + "http-errors": "1.6.3" } }, "http-cache-semantics": { @@ -8147,10 +8147,10 @@ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, "requires": { - "depd": "~1.1.2", + "depd": "1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "statuses": "1.5.0" } }, "http-signature": { @@ -8158,9 +8158,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.14.2" } }, "hullabaloo-config-manager": { @@ -8169,20 +8169,20 @@ "integrity": "sha512-ztKnkZV0TmxnumCDHHgLGNiDnotu4EHCp9YMkznWuo4uTtCyJ+cu+RNcxUeXYKTllpvLFWnbfWry09yzszgg+A==", "dev": true, "requires": { - "dot-prop": "^4.1.0", - "es6-error": "^4.0.2", - "graceful-fs": "^4.1.11", - "indent-string": "^3.1.0", - "json5": "^0.5.1", - "lodash.clonedeep": "^4.5.0", - "lodash.clonedeepwith": "^4.5.0", - "lodash.isequal": "^4.5.0", - "lodash.merge": "^4.6.0", - "md5-hex": "^2.0.0", - "package-hash": "^2.0.0", - "pkg-dir": "^2.0.0", - "resolve-from": "^3.0.0", - "safe-buffer": "^5.0.1" + "dot-prop": "4.2.0", + "es6-error": "4.1.1", + "graceful-fs": "4.1.11", + "indent-string": "3.2.0", + "json5": "0.5.1", + "lodash.clonedeep": "4.5.0", + "lodash.clonedeepwith": "4.5.0", + "lodash.isequal": "4.5.0", + "lodash.merge": "4.6.1", + "md5-hex": "2.0.0", + "package-hash": "2.0.0", + "pkg-dir": "2.0.0", + "resolve-from": "3.0.0", + "safe-buffer": "5.1.2" } }, "iconv-lite": { @@ -8191,7 +8191,7 @@ "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "dev": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": "2.1.2" } }, "ignore": { @@ -8212,7 +8212,7 @@ "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "dev": true, "requires": { - "minimatch": "^3.0.4" + "minimatch": "3.0.4" } }, "import-lazy": { @@ -8227,8 +8227,8 @@ "integrity": "sha1-sReVcqrNwRxqkQCftDDbyrX2aKg=", "dev": true, "requires": { - "pkg-dir": "^2.0.0", - "resolve-cwd": "^2.0.0" + "pkg-dir": "2.0.0", + "resolve-cwd": "2.0.0" } }, "imurmurhash": { @@ -8255,8 +8255,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -8276,8 +8276,8 @@ "integrity": "sha512-STx5orGQU1gfrkoI/fMU7lX6CSP7LBGO10gXNgOZhwKhUqbtNjCkYSewJtNnLmWP1tAGN6oyEpG1HFPw5vpa5Q==", "dev": true, "requires": { - "moment": "^2.14.1", - "sanitize-html": "^1.13.0" + "moment": "2.22.2", + "sanitize-html": "1.18.2" } }, "inquirer": { @@ -8286,19 +8286,19 @@ "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==", "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.1.0", - "figures": "^2.0.0", - "lodash": "^4.3.0", + "ansi-escapes": "3.1.0", + "chalk": "2.4.1", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.2.0", + "figures": "2.0.0", + "lodash": "4.17.5", "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^5.5.2", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" + "run-async": "2.3.0", + "rxjs": "5.5.11", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" } }, "intelli-espower-loader": { @@ -8307,7 +8307,7 @@ "integrity": "sha1-LHsDFGvB1GvyENCgOXxckatMorA=", "dev": true, "requires": { - "espower-loader": "^1.0.0" + "espower-loader": "1.2.2" } }, "into-stream": { @@ -8316,8 +8316,8 @@ "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", "dev": true, "requires": { - "from2": "^2.1.1", - "p-is-promise": "^1.1.0" + "from2": "2.3.0", + "p-is-promise": "1.1.0" } }, "invariant": { @@ -8326,7 +8326,7 @@ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "1.4.0" } }, "invert-kv": { @@ -8347,9 +8347,9 @@ "integrity": "sha512-7iQ5/xFMIYaNt9g2oiNiWdhrOTdRUMFaWENUd0KghxwPUhrIH8DUY8FEyLNTTzf75jaII+jMexLdY/2HfV61RQ==", "dev": true, "requires": { - "boom": "7.x.x", - "cryptiles": "4.x.x", - "hoek": "5.x.x" + "boom": "7.2.0", + "cryptiles": "4.1.2", + "hoek": "5.0.3" } }, "irregular-plurals": { @@ -8369,7 +8369,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-arrayish": { @@ -8384,7 +8384,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "binary-extensions": "^1.0.0" + "binary-extensions": "1.11.0" } }, "is-buffer": { @@ -8398,7 +8398,7 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-callable": { @@ -8413,7 +8413,7 @@ "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", "dev": true, "requires": { - "ci-info": "^1.0.0" + "ci-info": "1.1.3" } }, "is-data-descriptor": { @@ -8422,7 +8422,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-date-object": { @@ -8437,9 +8437,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" }, "dependencies": { "kind-of": { @@ -8462,7 +8462,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { - "is-primitive": "^2.0.0" + "is-primitive": "2.0.0" } }, "is-error": { @@ -8489,7 +8489,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { @@ -8516,7 +8516,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "is-installed-globally": { @@ -8525,8 +8525,8 @@ "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "dev": true, "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" + "global-dirs": "0.1.1", + "is-path-inside": "1.0.1" } }, "is-npm": { @@ -8541,7 +8541,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-obj": { @@ -8562,7 +8562,7 @@ "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", "dev": true, "requires": { - "symbol-observable": "^1.1.0" + "symbol-observable": "1.2.0" } }, "is-path-cwd": { @@ -8577,7 +8577,7 @@ "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, "requires": { - "is-path-inside": "^1.0.0" + "is-path-inside": "1.0.1" } }, "is-path-inside": { @@ -8586,7 +8586,7 @@ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { - "path-is-inside": "^1.0.1" + "path-is-inside": "1.0.2" } }, "is-plain-obj": { @@ -8601,7 +8601,7 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -8642,7 +8642,7 @@ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "requires": { - "has": "^1.0.1" + "has": "1.0.3" } }, "is-resolvable": { @@ -8708,7 +8708,7 @@ "integrity": "sha512-5xbsG5wYADIcB+mfLsd+nst1V/D+I7EU7LEZPo2GOIMu4JzfcRs5yQoypP4avA7QtUqgxYLKBYNv4IdzBmbhdw==", "dev": true, "requires": { - "punycode": "2.x.x" + "punycode": "2.1.1" }, "dependencies": { "punycode": { @@ -8756,8 +8756,8 @@ "@babel/template": "7.0.0-beta.51", "@babel/traverse": "7.0.0-beta.51", "@babel/types": "7.0.0-beta.51", - "istanbul-lib-coverage": "^2.0.1", - "semver": "^5.5.0" + "istanbul-lib-coverage": "2.0.1", + "semver": "5.5.0" } }, "isurl": { @@ -8766,8 +8766,8 @@ "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", "dev": true, "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" + "has-to-string-tag-x": "1.4.1", + "is-object": "1.0.1" } }, "jest-docblock": { @@ -8782,9 +8782,9 @@ "integrity": "sha512-3HrFXLC57iU5CzYth3cJRdYEo4/Dr+tXmCQ+BHyiTTKnKxJ9ICkI/WJGPwUUXj3dWA4tO2hwZO5oCdBNhAYuRg==", "dev": true, "requires": { - "hoek": "5.x.x", - "isemail": "3.x.x", - "topo": "3.x.x" + "hoek": "5.0.3", + "isemail": "3.1.3", + "topo": "3.0.0" } }, "js-green-licenses": { @@ -8793,14 +8793,14 @@ "integrity": "sha512-HM/SKwAl1R0y9kkBili6GqKc31ZnjzY7JHC2uO9bAHJNRmY5c/s+2cETyaqX0kBD8gX8QVhS4dJjRtY1nAwb4w==", "dev": true, "requires": { - "argparse": "^1.0.9", - "axios": "^0.18.0", - "npm-package-arg": "^6.0.0", - "package-json": "^4.0.1", - "pify": "^3.0.0", - "spdx-correct": "^3.0.0", - "spdx-satisfies": "^4.0.0", - "strip-json-comments": "^2.0.1" + "argparse": "1.0.10", + "axios": "0.18.0", + "npm-package-arg": "6.1.0", + "package-json": "4.0.1", + "pify": "3.0.0", + "spdx-correct": "3.0.0", + "spdx-satisfies": "4.0.0", + "strip-json-comments": "2.0.1" } }, "js-string-escape": { @@ -8821,8 +8821,8 @@ "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "1.0.10", + "esprima": "4.0.1" } }, "js2xmlparser": { @@ -8831,7 +8831,7 @@ "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", "dev": true, "requires": { - "xmlcreate": "^1.0.1" + "xmlcreate": "1.0.2" } }, "jsbn": { @@ -8847,17 +8847,17 @@ "dev": true, "requires": { "babylon": "7.0.0-beta.19", - "bluebird": "~3.5.0", - "catharsis": "~0.8.9", - "escape-string-regexp": "~1.0.5", - "js2xmlparser": "~3.0.0", - "klaw": "~2.0.0", - "marked": "~0.3.6", - "mkdirp": "~0.5.1", - "requizzle": "~0.2.1", - "strip-json-comments": "~2.0.1", + "bluebird": "3.5.1", + "catharsis": "0.8.9", + "escape-string-regexp": "1.0.5", + "js2xmlparser": "3.0.0", + "klaw": "2.0.0", + "marked": "0.3.19", + "mkdirp": "0.5.1", + "requizzle": "0.2.1", + "strip-json-comments": "2.0.1", "taffydb": "2.6.2", - "underscore": "~1.8.3" + "underscore": "1.8.3" }, "dependencies": { "babylon": { @@ -8919,7 +8919,7 @@ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { - "graceful-fs": "^4.1.6" + "graceful-fs": "4.1.11" } }, "jsprim": { @@ -8946,7 +8946,7 @@ "requires": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.10", - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "jws": { @@ -8954,8 +8954,8 @@ "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz", "integrity": "sha512-GsCSexFADNQUr8T5HPJvayTjvPIfoyJPtLQBwn5a4WZQchcrPMPMAWcC1AzJVRDKyD6ZPROPAxgv6rfHViO4uQ==", "requires": { - "jwa": "^1.1.5", - "safe-buffer": "^5.0.1" + "jwa": "1.1.6", + "safe-buffer": "5.1.2" } }, "keygrip": { @@ -8979,7 +8979,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "klaw": { @@ -8988,7 +8988,7 @@ "integrity": "sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=", "dev": true, "requires": { - "graceful-fs": "^4.1.9" + "graceful-fs": "4.1.11" } }, "koa": { @@ -8997,30 +8997,30 @@ "integrity": "sha512-MoVGWre9g3p35pCqXNhOT/a4trwK5CGvalIoPi7qOA2RCZaep3GCsa/G/tD9QMjQI7bmVWn3XF3SOau8RkPh6w==", "dev": true, "requires": { - "accepts": "^1.3.5", - "cache-content-type": "^1.0.0", - "content-disposition": "~0.5.2", - "content-type": "^1.0.4", - "cookies": "~0.7.1", - "debug": "^3.1.0", - "delegates": "^1.0.0", - "depd": "^1.1.2", - "destroy": "^1.0.4", - "error-inject": "^1.0.0", - "escape-html": "^1.0.3", - "fresh": "~0.5.2", - "http-assert": "^1.3.0", - "http-errors": "^1.6.3", - "is-generator-function": "^1.0.7", - "koa-compose": "^4.1.0", - "koa-convert": "^1.2.0", - "koa-is-json": "^1.0.0", - "on-finished": "^2.3.0", - "only": "~0.0.2", - "parseurl": "^1.3.2", - "statuses": "^1.5.0", - "type-is": "^1.6.16", - "vary": "^1.1.2" + "accepts": "1.3.5", + "cache-content-type": "1.0.1", + "content-disposition": "0.5.2", + "content-type": "1.0.4", + "cookies": "0.7.1", + "debug": "3.1.0", + "delegates": "1.0.0", + "depd": "1.1.2", + "destroy": "1.0.4", + "error-inject": "1.0.0", + "escape-html": "1.0.3", + "fresh": "0.5.2", + "http-assert": "1.3.0", + "http-errors": "1.6.3", + "is-generator-function": "1.0.7", + "koa-compose": "4.1.0", + "koa-convert": "1.2.0", + "koa-is-json": "1.0.0", + "on-finished": "2.3.0", + "only": "0.0.2", + "parseurl": "1.3.2", + "statuses": "1.5.0", + "type-is": "1.6.16", + "vary": "1.1.2" } }, "koa-compose": { @@ -9035,8 +9035,8 @@ "integrity": "sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA=", "dev": true, "requires": { - "co": "^4.6.0", - "koa-compose": "^3.0.0" + "co": "4.6.0", + "koa-compose": "3.2.1" }, "dependencies": { "koa-compose": { @@ -9045,7 +9045,7 @@ "integrity": "sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec=", "dev": true, "requires": { - "any-promise": "^1.1.0" + "any-promise": "1.3.0" } } } @@ -9062,7 +9062,7 @@ "integrity": "sha1-0bZNafhv8kry0EiDos7uFFIKVgA=", "dev": true, "requires": { - "through2": "^2.0.0" + "through2": "2.0.3" } }, "latest-version": { @@ -9071,7 +9071,7 @@ "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", "dev": true, "requires": { - "package-json": "^4.0.0" + "package-json": "4.0.1" } }, "lazy-cache": { @@ -9087,7 +9087,7 @@ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "levn": { @@ -9096,8 +9096,8 @@ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "1.1.2", + "type-check": "0.3.2" } }, "load-json-file": { @@ -9106,10 +9106,10 @@ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" }, "dependencies": { "pify": { @@ -9126,8 +9126,8 @@ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "2.0.0", + "path-exists": "3.0.0" } }, "lodash": { @@ -9278,7 +9278,7 @@ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + "js-tokens": "3.0.2" } }, "loud-rejection": { @@ -9287,8 +9287,8 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" } }, "lowercase-keys": { @@ -9302,8 +9302,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "make-dir": { @@ -9312,7 +9312,7 @@ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dev": true, "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "map-cache": { @@ -9333,7 +9333,7 @@ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { - "object-visit": "^1.0.0" + "object-visit": "1.0.1" } }, "marked": { @@ -9348,7 +9348,7 @@ "integrity": "sha512-+BmqxWIubKTRKNWx/ahnCkk3mG8m7OturVlqq6HiojGJTd5hVYbgZm6WzcYPCoB+KBT4Vd6R7WSRG2OADNaCjg==", "dev": true, "requires": { - "escape-string-regexp": "^1.0.4" + "escape-string-regexp": "1.0.5" } }, "math-random": { @@ -9363,7 +9363,7 @@ "integrity": "sha1-0FiOnxx0lUSS7NJKwKxs6ZfZLjM=", "dev": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "md5-o-matic": { @@ -9384,7 +9384,7 @@ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "meow": { @@ -9393,16 +9393,16 @@ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" }, "dependencies": { "find-up": { @@ -9411,8 +9411,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } }, "load-json-file": { @@ -9421,11 +9421,11 @@ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" } }, "minimist": { @@ -9440,7 +9440,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } }, "path-type": { @@ -9449,9 +9449,9 @@ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pify": { @@ -9472,7 +9472,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "read-pkg": { @@ -9481,9 +9481,9 @@ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" } }, "read-pkg-up": { @@ -9492,8 +9492,8 @@ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "find-up": "1.1.2", + "read-pkg": "1.1.0" } }, "strip-bom": { @@ -9502,7 +9502,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "^0.2.0" + "is-utf8": "0.2.1" } } } @@ -9519,7 +9519,7 @@ "integrity": "sha1-65aDOLXe1c7tgs7AMH3sui2OqZQ=", "dev": true, "requires": { - "estraverse": "^4.0.0" + "estraverse": "4.2.0" } }, "merge2": { @@ -9540,19 +9540,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" } }, "mime": { @@ -9570,7 +9570,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", "requires": { - "mime-db": "~1.35.0" + "mime-db": "1.35.0" } }, "mimic-fn": { @@ -9591,8 +9591,8 @@ "integrity": "sha512-JvlvRLqGIlk+AYypWrbrDmhsM+6JVx/xBM5S3AMwTBz1trPCEoPN/swO2L4Wu653fL7oJdgk8DMQyG/Gq3JkZg==", "dev": true, "requires": { - "hoek": "5.x.x", - "mime-db": "1.x.x" + "hoek": "5.0.3", + "mime-db": "1.35.0" } }, "minimalistic-assert": { @@ -9607,7 +9607,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -9622,8 +9622,8 @@ "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", "dev": true, "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0" + "arrify": "1.0.1", + "is-plain-obj": "1.1.0" } }, "mixin-deep": { @@ -9632,8 +9632,8 @@ "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "dev": true, "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" + "for-in": "1.0.2", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -9642,7 +9642,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -9706,7 +9706,7 @@ "integrity": "sha1-sJ/IWG6qF/gdV1xK0C4Pej9rEQU=", "dev": true, "requires": { - "source-map": "^0.1.34" + "source-map": "0.1.43" }, "dependencies": { "source-map": { @@ -9715,7 +9715,7 @@ "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", "dev": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -9726,10 +9726,10 @@ "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", "dev": true, "requires": { - "array-differ": "^1.0.0", - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "minimatch": "^3.0.0" + "array-differ": "1.0.0", + "array-union": "1.0.2", + "arrify": "1.0.1", + "minimatch": "3.0.4" } }, "mute-stream": { @@ -9745,9 +9745,9 @@ "dev": true, "optional": true, "requires": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" + "mkdirp": "0.5.1", + "ncp": "2.0.0", + "rimraf": "2.4.5" }, "dependencies": { "glob": { @@ -9757,11 +9757,11 @@ "dev": true, "optional": true, "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "rimraf": { @@ -9771,7 +9771,7 @@ "dev": true, "optional": true, "requires": { - "glob": "^6.0.1" + "glob": "6.0.4" } } } @@ -9789,17 +9789,17 @@ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, "requires": { - "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.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "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.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "arr-diff": { @@ -9864,8 +9864,8 @@ "integrity": "sha512-kCVtUG9JyD//tsYrZY+/Y+2gUrANVSba8y23QkM5Znx0FOxlnl9Z4OVPBODmstKWTOvigfTO+Va1VPOu3eWSOQ==", "dev": true, "requires": { - "hoek": "5.x.x", - "vise": "3.x.x" + "hoek": "5.0.3", + "vise": "3.0.0" } }, "nise": { @@ -9874,11 +9874,11 @@ "integrity": "sha512-BxH/DxoQYYdhKgVAfqVy4pzXRZELHOIewzoesxpjYvpU+7YOalQhGNPf7wAx8pLrTNPrHRDlLOkAl8UI0ZpXjw==", "dev": true, "requires": { - "@sinonjs/formatio": "^2.0.0", - "just-extend": "^1.1.27", - "lolex": "^2.3.2", - "path-to-regexp": "^1.7.0", - "text-encoding": "^0.6.4" + "@sinonjs/formatio": "2.0.0", + "just-extend": "1.1.27", + "lolex": "2.7.1", + "path-to-regexp": "1.7.0", + "text-encoding": "0.6.4" } }, "nock": { @@ -9887,15 +9887,15 @@ "integrity": "sha512-inJFXR3REBvHbZy6nVVwaoKbVTR8Y4Ag051Y/pd2pNPy7HDYtQkenfilBwxToNsW9p1RTeBUml4SPK/mWrFihA==", "dev": true, "requires": { - "chai": "^4.1.2", - "debug": "^3.1.0", - "deep-equal": "^1.0.0", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.5", - "mkdirp": "^0.5.0", - "propagate": "^1.0.0", - "qs": "^6.5.1", - "semver": "^5.5.0" + "chai": "4.1.2", + "debug": "3.1.0", + "deep-equal": "1.0.1", + "json-stringify-safe": "5.0.1", + "lodash": "4.17.5", + "mkdirp": "0.5.1", + "propagate": "1.0.0", + "qs": "6.5.2", + "semver": "5.5.0" } }, "node-forge": { @@ -9909,10 +9909,10 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.7.1", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" } }, "normalize-path": { @@ -9921,7 +9921,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "^1.0.1" + "remove-trailing-separator": "1.1.0" } }, "normalize-url": { @@ -9930,9 +9930,9 @@ "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", "dev": true, "requires": { - "prepend-http": "^2.0.0", - "query-string": "^5.0.1", - "sort-keys": "^2.0.0" + "prepend-http": "2.0.0", + "query-string": "5.1.1", + "sort-keys": "2.0.0" }, "dependencies": { "prepend-http": { @@ -9949,10 +9949,10 @@ "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", "dev": true, "requires": { - "hosted-git-info": "^2.6.0", - "osenv": "^0.1.5", - "semver": "^5.5.0", - "validate-npm-package-name": "^3.0.0" + "hosted-git-info": "2.7.1", + "osenv": "0.1.5", + "semver": "5.5.0", + "validate-npm-package-name": "3.0.0" } }, "npm-run-path": { @@ -9961,7 +9961,7 @@ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -9976,33 +9976,33 @@ "integrity": "sha1-ikpO1pCWbBHsWH/4fuoMEsl0upk=", "dev": true, "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^1.0.0", - "convert-source-map": "^1.5.1", - "debug-log": "^1.0.1", - "default-require-extensions": "^1.0.0", - "find-cache-dir": "^0.1.1", - "find-up": "^2.1.0", - "foreground-child": "^1.5.3", - "glob": "^7.0.6", - "istanbul-lib-coverage": "^1.2.0", - "istanbul-lib-hook": "^1.1.0", - "istanbul-lib-instrument": "^2.1.0", - "istanbul-lib-report": "^1.1.3", - "istanbul-lib-source-maps": "^1.2.5", - "istanbul-reports": "^1.4.1", - "md5-hex": "^1.2.0", - "merge-source-map": "^1.1.0", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.0", - "resolve-from": "^2.0.0", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.1", - "spawn-wrap": "^1.4.2", - "test-exclude": "^4.2.0", + "archy": "1.0.0", + "arrify": "1.0.1", + "caching-transform": "1.0.1", + "convert-source-map": "1.5.1", + "debug-log": "1.0.1", + "default-require-extensions": "1.0.0", + "find-cache-dir": "0.1.1", + "find-up": "2.1.0", + "foreground-child": "1.5.6", + "glob": "7.1.2", + "istanbul-lib-coverage": "1.2.0", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "2.3.2", + "istanbul-lib-report": "1.1.3", + "istanbul-lib-source-maps": "1.2.5", + "istanbul-reports": "1.4.1", + "md5-hex": "1.3.0", + "merge-source-map": "1.1.0", + "micromatch": "3.1.10", + "mkdirp": "0.5.1", + "resolve-from": "2.0.0", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "spawn-wrap": "1.4.2", + "test-exclude": "4.2.1", "yargs": "11.1.0", - "yargs-parser": "^8.0.0" + "yargs-parser": "8.1.0" }, "dependencies": { "align-text": { @@ -10010,9 +10010,9 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" } }, "amdefine": { @@ -10030,7 +10030,7 @@ "bundled": true, "dev": true, "requires": { - "default-require-extensions": "^1.0.0" + "default-require-extensions": "1.0.0" } }, "archy": { @@ -10088,13 +10088,13 @@ "bundled": true, "dev": true, "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" }, "dependencies": { "define-property": { @@ -10102,7 +10102,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -10110,7 +10110,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -10118,7 +10118,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -10126,9 +10126,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "kind-of": { @@ -10143,7 +10143,7 @@ "bundled": true, "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -10152,16 +10152,16 @@ "bundled": true, "dev": true, "requires": { - "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "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.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -10169,7 +10169,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -10184,15 +10184,15 @@ "bundled": true, "dev": true, "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" + "collection-visit": "1.0.0", + "component-emitter": "1.2.1", + "get-value": "2.0.6", + "has-value": "1.0.0", + "isobject": "3.0.1", + "set-value": "2.0.0", + "to-object-path": "0.3.0", + "union-value": "1.0.0", + "unset-value": "1.0.0" } }, "caching-transform": { @@ -10200,9 +10200,9 @@ "bundled": true, "dev": true, "requires": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" + "md5-hex": "1.3.0", + "mkdirp": "0.5.1", + "write-file-atomic": "1.3.4" } }, "camelcase": { @@ -10217,8 +10217,8 @@ "dev": true, "optional": true, "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "align-text": "0.1.4", + "lazy-cache": "1.0.4" } }, "class-utils": { @@ -10226,10 +10226,10 @@ "bundled": true, "dev": true, "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" }, "dependencies": { "define-property": { @@ -10237,7 +10237,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -10248,8 +10248,8 @@ "dev": true, "optional": true, "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", + "center-align": "0.1.3", + "right-align": "0.1.3", "wordwrap": "0.0.2" }, "dependencies": { @@ -10271,8 +10271,8 @@ "bundled": true, "dev": true, "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "map-visit": "1.0.0", + "object-visit": "1.0.1" } }, "commondir": { @@ -10305,8 +10305,8 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "which": "1.3.1" } }, "debug": { @@ -10337,7 +10337,7 @@ "bundled": true, "dev": true, "requires": { - "strip-bom": "^2.0.0" + "strip-bom": "2.0.0" } }, "define-property": { @@ -10345,8 +10345,8 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "is-descriptor": "1.0.2", + "isobject": "3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -10354,7 +10354,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -10362,7 +10362,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -10370,9 +10370,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "kind-of": { @@ -10387,7 +10387,7 @@ "bundled": true, "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "execa": { @@ -10395,13 +10395,13 @@ "bundled": true, "dev": true, "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" }, "dependencies": { "cross-spawn": { @@ -10409,9 +10409,9 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.1" } } } @@ -10421,13 +10421,13 @@ "bundled": true, "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "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" }, "dependencies": { "debug": { @@ -10443,7 +10443,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -10451,7 +10451,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -10461,8 +10461,8 @@ "bundled": true, "dev": true, "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -10470,7 +10470,7 @@ "bundled": true, "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -10480,14 +10480,14 @@ "bundled": true, "dev": true, "requires": { - "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.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "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" }, "dependencies": { "define-property": { @@ -10495,7 +10495,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -10503,7 +10503,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -10511,7 +10511,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -10519,7 +10519,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -10527,9 +10527,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "kind-of": { @@ -10544,10 +10544,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -10555,7 +10555,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -10565,9 +10565,9 @@ "bundled": true, "dev": true, "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" + "commondir": "1.0.1", + "mkdirp": "0.5.1", + "pkg-dir": "1.0.0" } }, "find-up": { @@ -10575,7 +10575,7 @@ "bundled": true, "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "2.0.0" } }, "for-in": { @@ -10588,8 +10588,8 @@ "bundled": true, "dev": true, "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" + "cross-spawn": "4.0.2", + "signal-exit": "3.0.2" } }, "fragment-cache": { @@ -10597,7 +10597,7 @@ "bundled": true, "dev": true, "requires": { - "map-cache": "^0.2.2" + "map-cache": "0.2.2" } }, "fs.realpath": { @@ -10625,12 +10625,12 @@ "bundled": true, "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "graceful-fs": { @@ -10643,10 +10643,10 @@ "bundled": true, "dev": true, "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" }, "dependencies": { "source-map": { @@ -10654,7 +10654,7 @@ "bundled": true, "dev": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -10664,9 +10664,9 @@ "bundled": true, "dev": true, "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" } }, "has-values": { @@ -10674,8 +10674,8 @@ "bundled": true, "dev": true, "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "kind-of": { @@ -10683,7 +10683,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -10703,8 +10703,8 @@ "bundled": true, "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -10722,7 +10722,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-arrayish": { @@ -10740,7 +10740,7 @@ "bundled": true, "dev": true, "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-data-descriptor": { @@ -10748,7 +10748,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-descriptor": { @@ -10756,9 +10756,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" }, "dependencies": { "kind-of": { @@ -10783,7 +10783,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-odd": { @@ -10791,7 +10791,7 @@ "bundled": true, "dev": true, "requires": { - "is-number": "^4.0.0" + "is-number": "4.0.0" }, "dependencies": { "is-number": { @@ -10806,7 +10806,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" } }, "is-stream": { @@ -10849,7 +10849,7 @@ "bundled": true, "dev": true, "requires": { - "append-transform": "^0.4.0" + "append-transform": "0.4.0" } }, "istanbul-lib-report": { @@ -10857,10 +10857,10 @@ "bundled": true, "dev": true, "requires": { - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" }, "dependencies": { "has-flag": { @@ -10873,7 +10873,7 @@ "bundled": true, "dev": true, "requires": { - "has-flag": "^1.0.0" + "has-flag": "1.0.0" } } } @@ -10883,11 +10883,11 @@ "bundled": true, "dev": true, "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.2.0", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" + "debug": "3.1.0", + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" } }, "istanbul-reports": { @@ -10895,7 +10895,7 @@ "bundled": true, "dev": true, "requires": { - "handlebars": "^4.0.3" + "handlebars": "4.0.11" } }, "kind-of": { @@ -10903,7 +10903,7 @@ "bundled": true, "dev": true, "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "lazy-cache": { @@ -10917,7 +10917,7 @@ "bundled": true, "dev": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "load-json-file": { @@ -10925,11 +10925,11 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" } }, "locate-path": { @@ -10937,8 +10937,8 @@ "bundled": true, "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "2.0.0", + "path-exists": "3.0.0" }, "dependencies": { "path-exists": { @@ -10958,8 +10958,8 @@ "bundled": true, "dev": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "map-cache": { @@ -10972,7 +10972,7 @@ "bundled": true, "dev": true, "requires": { - "object-visit": "^1.0.0" + "object-visit": "1.0.1" } }, "md5-hex": { @@ -10980,7 +10980,7 @@ "bundled": true, "dev": true, "requires": { - "md5-o-matic": "^0.1.1" + "md5-o-matic": "0.1.1" } }, "md5-o-matic": { @@ -10993,7 +10993,7 @@ "bundled": true, "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "merge-source-map": { @@ -11001,7 +11001,7 @@ "bundled": true, "dev": true, "requires": { - "source-map": "^0.6.1" + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -11016,19 +11016,19 @@ "bundled": true, "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "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.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "kind-of": { @@ -11048,7 +11048,7 @@ "bundled": true, "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -11061,8 +11061,8 @@ "bundled": true, "dev": true, "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" + "for-in": "1.0.2", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -11070,7 +11070,7 @@ "bundled": true, "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -11093,18 +11093,18 @@ "bundled": true, "dev": true, "requires": { - "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-odd": "^2.0.0", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "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-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "kind-of": { @@ -11119,10 +11119,10 @@ "bundled": true, "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.6.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" } }, "npm-run-path": { @@ -11130,7 +11130,7 @@ "bundled": true, "dev": true, "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -11148,9 +11148,9 @@ "bundled": true, "dev": true, "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" }, "dependencies": { "define-property": { @@ -11158,7 +11158,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -11168,7 +11168,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "^3.0.0" + "isobject": "3.0.1" } }, "object.pick": { @@ -11176,7 +11176,7 @@ "bundled": true, "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" } }, "once": { @@ -11184,7 +11184,7 @@ "bundled": true, "dev": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "optimist": { @@ -11192,8 +11192,8 @@ "bundled": true, "dev": true, "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "minimist": "0.0.8", + "wordwrap": "0.0.3" } }, "os-homedir": { @@ -11206,9 +11206,9 @@ "bundled": true, "dev": true, "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" } }, "p-finally": { @@ -11221,7 +11221,7 @@ "bundled": true, "dev": true, "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { @@ -11229,7 +11229,7 @@ "bundled": true, "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.2.0" } }, "p-try": { @@ -11242,7 +11242,7 @@ "bundled": true, "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.1" } }, "pascalcase": { @@ -11255,7 +11255,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } }, "path-is-absolute": { @@ -11278,9 +11278,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pify": { @@ -11298,7 +11298,7 @@ "bundled": true, "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "pkg-dir": { @@ -11306,7 +11306,7 @@ "bundled": true, "dev": true, "requires": { - "find-up": "^1.0.0" + "find-up": "1.1.2" }, "dependencies": { "find-up": { @@ -11314,8 +11314,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } @@ -11335,9 +11335,9 @@ "bundled": true, "dev": true, "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" } }, "read-pkg-up": { @@ -11345,8 +11345,8 @@ "bundled": true, "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "find-up": "1.1.2", + "read-pkg": "1.1.0" }, "dependencies": { "find-up": { @@ -11354,8 +11354,8 @@ "bundled": true, "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } } } @@ -11365,8 +11365,8 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, "repeat-element": { @@ -11410,7 +11410,7 @@ "dev": true, "optional": true, "requires": { - "align-text": "^0.1.1" + "align-text": "0.1.4" } }, "rimraf": { @@ -11418,7 +11418,7 @@ "bundled": true, "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "safe-regex": { @@ -11426,7 +11426,7 @@ "bundled": true, "dev": true, "requires": { - "ret": "~0.1.10" + "ret": "0.1.15" } }, "semver": { @@ -11444,10 +11444,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" }, "dependencies": { "extend-shallow": { @@ -11455,7 +11455,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -11465,7 +11465,7 @@ "bundled": true, "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -11488,14 +11488,14 @@ "bundled": true, "dev": true, "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "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.2", + "use": "3.1.0" }, "dependencies": { "debug": { @@ -11511,7 +11511,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -11519,7 +11519,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -11529,9 +11529,9 @@ "bundled": true, "dev": true, "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "dependencies": { "define-property": { @@ -11539,7 +11539,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -11547,7 +11547,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -11555,7 +11555,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -11563,9 +11563,9 @@ "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "kind-of": { @@ -11580,7 +11580,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.2.0" + "kind-of": "3.2.2" } }, "source-map": { @@ -11593,11 +11593,11 @@ "bundled": true, "dev": true, "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "atob": "2.1.1", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" } }, "source-map-url": { @@ -11610,12 +11610,12 @@ "bundled": true, "dev": true, "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" + "foreground-child": "1.5.6", + "mkdirp": "0.5.1", + "os-homedir": "1.0.2", + "rimraf": "2.6.2", + "signal-exit": "3.0.2", + "which": "1.3.1" } }, "spdx-correct": { @@ -11623,8 +11623,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, "spdx-exceptions": { @@ -11637,8 +11637,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" } }, "spdx-license-ids": { @@ -11651,7 +11651,7 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^3.0.0" + "extend-shallow": "3.0.2" } }, "static-extend": { @@ -11659,8 +11659,8 @@ "bundled": true, "dev": true, "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" + "define-property": "0.2.5", + "object-copy": "0.1.0" }, "dependencies": { "define-property": { @@ -11668,7 +11668,7 @@ "bundled": true, "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -11678,8 +11678,8 @@ "bundled": true, "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" } }, "strip-ansi": { @@ -11687,7 +11687,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } }, "strip-bom": { @@ -11695,7 +11695,7 @@ "bundled": true, "dev": true, "requires": { - "is-utf8": "^0.2.0" + "is-utf8": "0.2.1" } }, "strip-eof": { @@ -11708,11 +11708,11 @@ "bundled": true, "dev": true, "requires": { - "arrify": "^1.0.1", - "micromatch": "^3.1.8", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" + "arrify": "1.0.1", + "micromatch": "3.1.10", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" } }, "to-object-path": { @@ -11720,7 +11720,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "to-regex": { @@ -11728,10 +11728,10 @@ "bundled": true, "dev": true, "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" } }, "to-regex-range": { @@ -11739,8 +11739,8 @@ "bundled": true, "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "3.0.0", + "repeat-string": "1.6.1" } }, "uglify-js": { @@ -11749,9 +11749,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" }, "dependencies": { "yargs": { @@ -11760,9 +11760,9 @@ "dev": true, "optional": true, "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", "window-size": "0.1.0" } } @@ -11779,10 +11779,10 @@ "bundled": true, "dev": true, "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" }, "dependencies": { "extend-shallow": { @@ -11790,7 +11790,7 @@ "bundled": true, "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "set-value": { @@ -11798,10 +11798,10 @@ "bundled": true, "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" } } } @@ -11811,8 +11811,8 @@ "bundled": true, "dev": true, "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "has-value": "0.3.1", + "isobject": "3.0.1" }, "dependencies": { "has-value": { @@ -11820,9 +11820,9 @@ "bundled": true, "dev": true, "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" }, "dependencies": { "isobject": { @@ -11852,7 +11852,7 @@ "bundled": true, "dev": true, "requires": { - "kind-of": "^6.0.2" + "kind-of": "6.0.2" }, "dependencies": { "kind-of": { @@ -11867,8 +11867,8 @@ "bundled": true, "dev": true, "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "which": { @@ -11876,7 +11876,7 @@ "bundled": true, "dev": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -11900,8 +11900,8 @@ "bundled": true, "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "ansi-regex": { @@ -11914,7 +11914,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "string-width": { @@ -11922,9 +11922,9 @@ "bundled": true, "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "strip-ansi": { @@ -11932,7 +11932,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } } } @@ -11947,9 +11947,9 @@ "bundled": true, "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" } }, "y18n": { @@ -11967,18 +11967,18 @@ "bundled": true, "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^9.0.2" + "cliui": "4.1.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "9.0.2" }, "dependencies": { "camelcase": { @@ -11991,9 +11991,9 @@ "bundled": true, "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" } }, "yargs-parser": { @@ -12001,7 +12001,7 @@ "bundled": true, "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } } } @@ -12011,7 +12011,7 @@ "bundled": true, "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" }, "dependencies": { "camelcase": { @@ -12040,9 +12040,9 @@ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" }, "dependencies": { "define-property": { @@ -12051,7 +12051,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -12068,7 +12068,7 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { - "isobject": "^3.0.0" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -12085,8 +12085,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" + "for-own": "0.1.5", + "is-extendable": "0.1.1" } }, "object.pick": { @@ -12095,7 +12095,7 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -12112,8 +12112,8 @@ "integrity": "sha1-yCjw8NxH6fhq+KSXfF1VB2znqR8=", "dev": true, "requires": { - "is-observable": "^0.2.0", - "symbol-observable": "^1.0.4" + "is-observable": "0.2.0", + "symbol-observable": "1.2.0" }, "dependencies": { "is-observable": { @@ -12122,7 +12122,7 @@ "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=", "dev": true, "requires": { - "symbol-observable": "^0.2.2" + "symbol-observable": "0.2.4" }, "dependencies": { "symbol-observable": { @@ -12155,7 +12155,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "onetime": { @@ -12164,7 +12164,7 @@ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "only": { @@ -12179,8 +12179,8 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "minimist": "0.0.8", + "wordwrap": "0.0.3" } }, "option-chain": { @@ -12195,12 +12195,12 @@ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" }, "dependencies": { "wordwrap": { @@ -12223,9 +12223,9 @@ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" } }, "os-tmpdir": { @@ -12240,8 +12240,8 @@ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "p-cancelable": { @@ -12268,7 +12268,7 @@ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { - "p-try": "^1.0.0" + "p-try": "1.0.0" } }, "p-locate": { @@ -12277,7 +12277,7 @@ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "1.3.0" } }, "p-timeout": { @@ -12286,7 +12286,7 @@ "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", "dev": true, "requires": { - "p-finally": "^1.0.0" + "p-finally": "1.0.0" } }, "p-try": { @@ -12301,10 +12301,10 @@ "integrity": "sha1-eK4ybIngWk2BO2hgGXevBcANKg0=", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "lodash.flattendeep": "^4.4.0", - "md5-hex": "^2.0.0", - "release-zalgo": "^1.0.0" + "graceful-fs": "4.1.11", + "lodash.flattendeep": "4.4.0", + "md5-hex": "2.0.0", + "release-zalgo": "1.0.0" } }, "package-json": { @@ -12313,10 +12313,10 @@ "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "dev": true, "requires": { - "got": "^6.7.1", - "registry-auth-token": "^3.0.1", - "registry-url": "^3.0.3", - "semver": "^5.1.0" + "got": "6.7.1", + "registry-auth-token": "3.3.2", + "registry-url": "3.1.0", + "semver": "5.5.0" }, "dependencies": { "got": { @@ -12325,17 +12325,17 @@ "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "requires": { - "create-error-class": "^3.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" + "create-error-class": "3.0.2", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "is-redirect": "1.0.0", + "is-retry-allowed": "1.1.0", + "is-stream": "1.1.0", + "lowercase-keys": "1.0.1", + "safe-buffer": "5.1.2", + "timed-out": "4.0.1", + "unzip-response": "2.0.1", + "url-parse-lax": "1.0.0" } } } @@ -12346,10 +12346,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" } }, "parse-json": { @@ -12358,7 +12358,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.2" } }, "parse-ms": { @@ -12438,7 +12438,7 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { - "pify": "^2.0.0" + "pify": "2.3.0" }, "dependencies": { "pify": { @@ -12466,11 +12466,11 @@ "integrity": "sha512-HuPxmGxHsEFPWhdkwBs2gIrHhFqktIxMtudISTFN95RQ85ZZAOl8Ki6u3nnN/X8OUaGlIGldk/l8p2IR4/i76w==", "dev": true, "requires": { - "b64": "4.x.x", - "boom": "7.x.x", - "content": "4.x.x", - "hoek": "5.x.x", - "nigel": "3.x.x" + "b64": "4.0.0", + "boom": "7.2.0", + "content": "4.0.5", + "hoek": "5.0.3", + "nigel": "3.0.1" } }, "pidusage": { @@ -12496,7 +12496,7 @@ "integrity": "sha1-0dpn9UglY7t89X8oauKCLs+/NnA=", "dev": true, "requires": { - "pinkie": "^1.0.0" + "pinkie": "1.0.0" } }, "pkg-conf": { @@ -12505,8 +12505,8 @@ "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", "dev": true, "requires": { - "find-up": "^2.0.0", - "load-json-file": "^4.0.0" + "find-up": "2.1.0", + "load-json-file": "4.0.0" }, "dependencies": { "load-json-file": { @@ -12515,10 +12515,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.11", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" } }, "parse-json": { @@ -12527,8 +12527,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" } } } @@ -12539,7 +12539,7 @@ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "^2.1.0" + "find-up": "2.1.0" } }, "plur": { @@ -12548,7 +12548,7 @@ "integrity": "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo=", "dev": true, "requires": { - "irregular-plurals": "^1.0.0" + "irregular-plurals": "1.4.0" } }, "pluralize": { @@ -12563,8 +12563,8 @@ "integrity": "sha512-18VrjJAduIdPv7d9zWsfmKxTj3cQTYC5Pv5gtKxcWujYBpGbV+mhNSPYhlHW5xeWoazYyKfB9FEsPT12r5rY1A==", "dev": true, "requires": { - "hoek": "5.x.x", - "joi": "13.x.x" + "hoek": "5.0.3", + "joi": "13.5.2" } }, "posix-character-classes": { @@ -12579,10 +12579,10 @@ "integrity": "sha512-8tmaqjYxwJAumhsg8p31P5jG4sKRYUhfO0WaSBcPTeAmMlOxB3AK/rS6xqmJwpVAXt+fuyRLZ3WJxsgMRCHcQQ==", "dev": true, "requires": { - "glob": "^7.1.2", - "once": "^1.4.0", - "pify": "^3.0.0", - "rimraf": "^2.6.2", + "glob": "7.1.2", + "once": "1.4.0", + "pify": "3.0.0", + "rimraf": "2.6.2", "tmp": "0.0.33" } }, @@ -12592,9 +12592,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" + "chalk": "2.4.1", + "source-map": "0.6.1", + "supports-color": "5.4.0" }, "dependencies": { "source-map": { @@ -12611,11 +12611,11 @@ "integrity": "sha512-nDb6a+p2C7Wj8Y2zmFtLpuv+xobXz4+bzT5s7dr0nn71tLozn7nRMQqzwbefzwZN5qOm0N7Cxhw4kXP75xboKA==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "empower": "^1.3.0", - "power-assert-formatter": "^1.4.1", - "universal-deep-strict-equal": "^1.2.1", - "xtend": "^4.0.0" + "define-properties": "1.1.2", + "empower": "1.3.0", + "power-assert-formatter": "1.4.1", + "universal-deep-strict-equal": "1.2.2", + "xtend": "4.0.1" } }, "power-assert-context-formatter": { @@ -12624,8 +12624,8 @@ "integrity": "sha512-HLNEW8Bin+BFCpk/zbyKwkEu9W8/zThIStxGo7weYcFkKgMuGCHUJhvJeBGXDZf0Qm2xis4pbnnciGZiX0EpSg==", "dev": true, "requires": { - "core-js": "^2.0.0", - "power-assert-context-traversal": "^1.2.0" + "core-js": "2.5.7", + "power-assert-context-traversal": "1.2.0" } }, "power-assert-context-reducer-ast": { @@ -12634,11 +12634,11 @@ "integrity": "sha512-EgOxmZ/Lb7tw4EwSKX7ZnfC0P/qRZFEG28dx/690qvhmOJ6hgThYFm5TUWANDLK5NiNKlPBi5WekVGd2+5wPrw==", "dev": true, "requires": { - "acorn": "^5.0.0", - "acorn-es7-plugin": "^1.0.12", - "core-js": "^2.0.0", - "espurify": "^1.6.0", - "estraverse": "^4.2.0" + "acorn": "5.7.1", + "acorn-es7-plugin": "1.1.7", + "core-js": "2.5.7", + "espurify": "1.8.1", + "estraverse": "4.2.0" } }, "power-assert-context-traversal": { @@ -12647,8 +12647,8 @@ "integrity": "sha512-NFoHU6g2umNajiP2l4qb0BRWD773Aw9uWdWYH9EQsVwIZnog5bd2YYLFCVvaxWpwNzWeEfZIon2xtyc63026pQ==", "dev": true, "requires": { - "core-js": "^2.0.0", - "estraverse": "^4.1.0" + "core-js": "2.5.7", + "estraverse": "4.2.0" } }, "power-assert-formatter": { @@ -12657,13 +12657,13 @@ "integrity": "sha1-XcEl7VCj37HdomwZNH879Y7CiEo=", "dev": true, "requires": { - "core-js": "^2.0.0", - "power-assert-context-formatter": "^1.0.7", - "power-assert-context-reducer-ast": "^1.0.7", - "power-assert-renderer-assertion": "^1.0.7", - "power-assert-renderer-comparison": "^1.0.7", - "power-assert-renderer-diagram": "^1.0.7", - "power-assert-renderer-file": "^1.0.7" + "core-js": "2.5.7", + "power-assert-context-formatter": "1.2.0", + "power-assert-context-reducer-ast": "1.2.0", + "power-assert-renderer-assertion": "1.2.0", + "power-assert-renderer-comparison": "1.2.0", + "power-assert-renderer-diagram": "1.2.0", + "power-assert-renderer-file": "1.2.0" } }, "power-assert-renderer-assertion": { @@ -12672,8 +12672,8 @@ "integrity": "sha512-3F7Q1ZLmV2ZCQv7aV7NJLNK9G7QsostrhOU7U0RhEQS/0vhEqrRg2jEJl1jtUL4ZyL2dXUlaaqrmPv5r9kRvIg==", "dev": true, "requires": { - "power-assert-renderer-base": "^1.1.1", - "power-assert-util-string-width": "^1.2.0" + "power-assert-renderer-base": "1.1.1", + "power-assert-util-string-width": "1.2.0" } }, "power-assert-renderer-base": { @@ -12688,11 +12688,11 @@ "integrity": "sha512-7c3RKPDBKK4E3JqdPtYRE9cM8AyX4LC4yfTvvTYyx8zSqmT5kJnXwzR0yWQLOavACllZfwrAGQzFiXPc5sWa+g==", "dev": true, "requires": { - "core-js": "^2.0.0", - "diff-match-patch": "^1.0.0", - "power-assert-renderer-base": "^1.1.1", - "stringifier": "^1.3.0", - "type-name": "^2.0.1" + "core-js": "2.5.7", + "diff-match-patch": "1.0.1", + "power-assert-renderer-base": "1.1.1", + "stringifier": "1.3.0", + "type-name": "2.0.2" } }, "power-assert-renderer-diagram": { @@ -12701,10 +12701,10 @@ "integrity": "sha512-JZ6PC+DJPQqfU6dwSmpcoD7gNnb/5U77bU5KgNwPPa+i1Pxiz6UuDeM3EUBlhZ1HvH9tMjI60anqVyi5l2oNdg==", "dev": true, "requires": { - "core-js": "^2.0.0", - "power-assert-renderer-base": "^1.1.1", - "power-assert-util-string-width": "^1.2.0", - "stringifier": "^1.3.0" + "core-js": "2.5.7", + "power-assert-renderer-base": "1.1.1", + "power-assert-util-string-width": "1.2.0", + "stringifier": "1.3.0" } }, "power-assert-renderer-file": { @@ -12713,7 +12713,7 @@ "integrity": "sha512-/oaVrRbeOtGoyyd7e4IdLP/jIIUFJdqJtsYzP9/88R39CMnfF/S/rUc8ZQalENfUfQ/wQHu+XZYRMaCEZmEesg==", "dev": true, "requires": { - "power-assert-renderer-base": "^1.1.1" + "power-assert-renderer-base": "1.1.1" } }, "power-assert-util-string-width": { @@ -12722,7 +12722,7 @@ "integrity": "sha512-lX90G0igAW0iyORTILZ/QjZWsa1MZ6VVY3L0K86e2eKun3S4LKPH4xZIl8fdeMYLfOjkaszbNSzf1uugLeAm2A==", "dev": true, "requires": { - "eastasianwidth": "^0.2.0" + "eastasianwidth": "0.2.0" } }, "prelude-ls": { @@ -12755,7 +12755,7 @@ "integrity": "sha512-ZypexbfVUGTFxb0v+m1bUyy92DHe5SyYlnyY0msyms5zd3RwyvNgyxZZsXXgoyzlxjx5MiqtXUdhUfvQbe0A2Q==", "dev": true, "requires": { - "parse-ms": "^1.0.0" + "parse-ms": "1.0.1" }, "dependencies": { "parse-ms": { @@ -12795,7 +12795,7 @@ "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", "dev": true, "requires": { - "forwarded": "~0.1.2", + "forwarded": "0.1.2", "ipaddr.js": "1.8.0" } }, @@ -12805,9 +12805,9 @@ "integrity": "sha512-fQr3VQrbdzHrdaDn3XuisVoJlJNDJizHAvUXw9IuXRR8BpV2x0N7LsCxrpJkeKfPbNjiNU/V5vc008cI0TmzzQ==", "dev": true, "requires": { - "fill-keys": "^1.0.2", - "module-not-found-error": "^1.0.0", - "resolve": "~1.5.0" + "fill-keys": "1.0.2", + "module-not-found-error": "1.0.1", + "resolve": "1.5.0" }, "dependencies": { "resolve": { @@ -12816,7 +12816,7 @@ "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", "dev": true, "requires": { - "path-parse": "^1.0.5" + "path-parse": "1.0.5" } } } @@ -12842,9 +12842,9 @@ "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", "dev": true, "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" + "decode-uri-component": "0.2.0", + "object-assign": "4.1.1", + "strict-uri-encode": "1.1.0" } }, "quick-lru": { @@ -12859,9 +12859,9 @@ "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", "dev": true, "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" + "is-number": "4.0.0", + "kind-of": "6.0.2", + "math-random": "1.0.1" }, "dependencies": { "is-number": { @@ -12902,10 +12902,10 @@ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "deep-extend": "0.6.0", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" }, "dependencies": { "minimist": { @@ -12922,9 +12922,9 @@ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" } }, "read-pkg-up": { @@ -12933,8 +12933,8 @@ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "find-up": "2.1.0", + "read-pkg": "2.0.0" } }, "readable-stream": { @@ -12942,13 +12942,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" } }, "readdirp": { @@ -12957,10 +12957,10 @@ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "minimatch": "^3.0.2", - "readable-stream": "^2.0.2", - "set-immediate-shim": "^1.0.1" + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.6", + "set-immediate-shim": "1.0.1" } }, "redent": { @@ -12969,8 +12969,8 @@ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" + "indent-string": "2.1.0", + "strip-indent": "1.0.1" }, "dependencies": { "indent-string": { @@ -12979,7 +12979,7 @@ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } } } @@ -13002,7 +13002,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { - "is-equal-shallow": "^0.1.3" + "is-equal-shallow": "0.1.3" } }, "regex-not": { @@ -13011,8 +13011,8 @@ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, "regexp.prototype.flags": { @@ -13021,7 +13021,7 @@ "integrity": "sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==", "dev": true, "requires": { - "define-properties": "^1.1.2" + "define-properties": "1.1.2" } }, "regexpp": { @@ -13036,9 +13036,9 @@ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "dev": true, "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" + "regenerate": "1.4.0", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" } }, "registry-auth-token": { @@ -13047,8 +13047,8 @@ "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", "dev": true, "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" + "rc": "1.2.8", + "safe-buffer": "5.1.2" } }, "registry-url": { @@ -13057,7 +13057,7 @@ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "dev": true, "requires": { - "rc": "^1.0.1" + "rc": "1.2.8" } }, "regjsgen": { @@ -13072,7 +13072,7 @@ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, "requires": { - "jsesc": "~0.5.0" + "jsesc": "0.5.0" } }, "release-zalgo": { @@ -13081,7 +13081,7 @@ "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", "dev": true, "requires": { - "es6-error": "^4.0.1" + "es6-error": "4.1.1" } }, "remove-trailing-separator": { @@ -13108,7 +13108,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "request": { @@ -13116,26 +13116,26 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", - "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.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.17", - "oauth-sign": "~0.8.2", - "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" + "aws-sign2": "0.7.0", + "aws4": "1.7.0", + "caseless": "0.12.0", + "combined-stream": "1.0.6", + "extend": "3.0.2", + "forever-agent": "0.6.1", + "form-data": "2.3.2", + "har-validator": "5.0.3", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.19", + "oauth-sign": "0.8.2", + "performance-now": "2.1.0", + "qs": "6.5.2", + "safe-buffer": "5.1.2", + "tough-cookie": "2.3.4", + "tunnel-agent": "0.6.0", + "uuid": "3.3.2" } }, "require-directory": { @@ -13162,8 +13162,8 @@ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "dev": true, "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" + "caller-path": "0.1.0", + "resolve-from": "1.0.1" }, "dependencies": { "resolve-from": { @@ -13180,7 +13180,7 @@ "integrity": "sha1-aUPDUwxNmn5G8c3dUcFY/GcM294=", "dev": true, "requires": { - "underscore": "~1.6.0" + "underscore": "1.6.0" }, "dependencies": { "underscore": { @@ -13203,7 +13203,7 @@ "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", "dev": true, "requires": { - "resolve-from": "^3.0.0" + "resolve-from": "3.0.0" } }, "resolve-from": { @@ -13224,7 +13224,7 @@ "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", "dev": true, "requires": { - "lowercase-keys": "^1.0.0" + "lowercase-keys": "1.0.1" } }, "restify": { @@ -13233,28 +13233,28 @@ "integrity": "sha512-xygVfQn/FiyzSPNIiOlzos6+RVcmTTK/bN0/m4z6vQwUY1yXntAsXM8ckq6hMxYfkhZfbPMM5hvBf75B8zLE1g==", "dev": true, "requires": { - "assert-plus": "^1.0.0", - "bunyan": "^1.8.12", - "csv": "^1.1.1", - "dtrace-provider": "^0.8.1", - "escape-regexp-component": "^1.0.2", - "ewma": "^2.0.1", - "find-my-way": "^1.13.0", - "formidable": "^1.2.1", - "http-signature": "^1.2.0", - "lodash": "^4.17.10", - "lru-cache": "^4.1.3", - "mime": "^1.5.0", - "negotiator": "^0.6.1", - "once": "^1.4.0", - "pidusage": "^1.2.0", - "qs": "^6.5.2", - "restify-errors": "^5.0.0", - "semver": "^5.4.1", - "spdy": "^3.4.7", - "uuid": "^3.1.0", - "vasync": "^1.6.4", - "verror": "^1.10.0" + "assert-plus": "1.0.0", + "bunyan": "1.8.12", + "csv": "1.2.1", + "dtrace-provider": "0.8.7", + "escape-regexp-component": "1.0.2", + "ewma": "2.0.1", + "find-my-way": "1.15.1", + "formidable": "1.2.1", + "http-signature": "1.2.0", + "lodash": "4.17.10", + "lru-cache": "4.1.3", + "mime": "1.6.0", + "negotiator": "0.6.1", + "once": "1.4.0", + "pidusage": "1.2.0", + "qs": "6.5.2", + "restify-errors": "5.0.0", + "semver": "5.5.0", + "spdy": "3.4.7", + "uuid": "3.3.2", + "vasync": "1.6.4", + "verror": "1.10.0" }, "dependencies": { "lodash": { @@ -13277,10 +13277,10 @@ "integrity": "sha512-+vby9Kxf7qlzvbZSTIEGkIixkeHG+pVCl34dk6eKnL+ua4pCezpdLT/1/eabzPZb65ADrgoc04jeWrrF1E1pvQ==", "dev": true, "requires": { - "assert-plus": "^1.0.0", - "lodash": "^4.2.1", - "safe-json-stringify": "^1.0.3", - "verror": "^1.8.1" + "assert-plus": "1.0.0", + "lodash": "4.17.5", + "safe-json-stringify": "1.2.0", + "verror": "1.10.0" } }, "restore-cursor": { @@ -13289,8 +13289,8 @@ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "onetime": "2.0.1", + "signal-exit": "3.0.2" } }, "ret": { @@ -13309,7 +13309,7 @@ "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.0.0.tgz", "integrity": "sha512-S4HNLaWcMP6r8E4TMH52Y7/pM8uNayOcTDDQNBwsCccL1uI+Ol2TljxRDPzaNfbhOB30+XWP5NnZkB3LiJxi1w==", "requires": { - "through2": "^2.0.0" + "through2": "2.0.3" } }, "right-align": { @@ -13319,7 +13319,7 @@ "dev": true, "optional": true, "requires": { - "align-text": "^0.1.1" + "align-text": "0.1.4" } }, "rimraf": { @@ -13328,7 +13328,7 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "run-async": { @@ -13337,7 +13337,7 @@ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "is-promise": "^2.1.0" + "is-promise": "2.1.0" } }, "rxjs": { @@ -13375,7 +13375,7 @@ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "ret": "~0.1.10" + "ret": "0.1.15" } }, "safer-buffer": { @@ -13395,16 +13395,16 @@ "integrity": "sha512-52ThA+Z7h6BnvpSVbURwChl10XZrps5q7ytjTwWcIe9bmJwnVP6cpEVK2NvDOUhGupoqAvNbUz3cpnJDp4+/pg==", "dev": true, "requires": { - "chalk": "^2.3.0", - "htmlparser2": "^3.9.0", - "lodash.clonedeep": "^4.5.0", - "lodash.escaperegexp": "^4.1.2", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.mergewith": "^4.6.0", - "postcss": "^6.0.14", - "srcset": "^1.0.0", - "xtend": "^4.0.0" + "chalk": "2.4.1", + "htmlparser2": "3.9.2", + "lodash.clonedeep": "4.5.0", + "lodash.escaperegexp": "4.1.2", + "lodash.isplainobject": "4.0.6", + "lodash.isstring": "4.0.1", + "lodash.mergewith": "4.6.1", + "postcss": "6.0.23", + "srcset": "1.0.0", + "xtend": "4.0.1" } }, "select-hose": { @@ -13425,7 +13425,7 @@ "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "dev": true, "requires": { - "semver": "^5.0.3" + "semver": "5.5.0" } }, "semver-store": { @@ -13441,18 +13441,18 @@ "dev": true, "requires": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", + "depd": "1.1.2", + "destroy": "1.0.4", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", "fresh": "0.5.2", - "http-errors": "~1.6.2", + "http-errors": "1.6.3", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.4.0" + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.4.0" }, "dependencies": { "debug": { @@ -13490,9 +13490,9 @@ "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "dev": true, "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.2", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "parseurl": "1.3.2", "send": "0.16.2" } }, @@ -13514,10 +13514,10 @@ "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" }, "dependencies": { "extend-shallow": { @@ -13526,7 +13526,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -13543,7 +13543,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -13558,8 +13558,8 @@ "integrity": "sha1-x+dFXRHWD2ts08Q+FaO0McF+VWY=", "dev": true, "requires": { - "hoek": "5.x.x", - "joi": "13.x.x" + "hoek": "5.0.3", + "joi": "13.5.2" } }, "signal-exit": { @@ -13574,13 +13574,13 @@ "integrity": "sha512-rfszhNcfamK2+ofIPi9XqeH89pH7KGDcAtM+F9CsjHXOK3jzWG99vyhyD2V+r7s4IipmWcWUFYq4ftZ9/Eu2Wg==", "dev": true, "requires": { - "@sinonjs/formatio": "^2.0.0", - "diff": "^3.5.0", - "lodash.get": "^4.4.2", - "lolex": "^2.4.2", - "nise": "^1.3.3", - "supports-color": "^5.4.0", - "type-detect": "^4.0.8" + "@sinonjs/formatio": "2.0.0", + "diff": "3.5.0", + "lodash.get": "4.4.2", + "lolex": "2.7.1", + "nise": "1.4.2", + "supports-color": "5.4.0", + "type-detect": "4.0.8" } }, "slash": { @@ -13595,7 +13595,7 @@ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0" + "is-fullwidth-code-point": "2.0.0" } }, "slide": { @@ -13610,14 +13610,14 @@ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "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.2", + "use": "3.1.1" }, "dependencies": { "debug": { @@ -13635,7 +13635,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -13644,7 +13644,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -13655,9 +13655,9 @@ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "dependencies": { "define-property": { @@ -13666,7 +13666,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -13675,7 +13675,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -13684,7 +13684,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -13693,9 +13693,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "isobject": { @@ -13718,7 +13718,7 @@ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { - "kind-of": "^3.2.0" + "kind-of": "3.2.2" } }, "sort-keys": { @@ -13727,7 +13727,7 @@ "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", "dev": true, "requires": { - "is-plain-obj": "^1.0.0" + "is-plain-obj": "1.1.0" } }, "source-map": { @@ -13742,11 +13742,11 @@ "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "dev": true, "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "atob": "2.1.1", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" } }, "source-map-support": { @@ -13755,8 +13755,8 @@ "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", "dev": true, "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "buffer-from": "1.1.0", + "source-map": "0.6.1" }, "dependencies": { "source-map": { @@ -13779,9 +13779,9 @@ "integrity": "sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==", "dev": true, "requires": { - "array-find-index": "^1.0.2", - "spdx-expression-parse": "^3.0.0", - "spdx-ranges": "^2.0.0" + "array-find-index": "1.0.2", + "spdx-expression-parse": "3.0.0", + "spdx-ranges": "2.0.0" } }, "spdx-correct": { @@ -13790,8 +13790,8 @@ "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "dev": true, "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, "spdx-exceptions": { @@ -13806,8 +13806,8 @@ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" } }, "spdx-license-ids": { @@ -13828,9 +13828,9 @@ "integrity": "sha512-OcARj6U1OuVv98SVrRqgrR30sVocONtoPpnX8Xz4vXNrFVedqtbgkA+0KmQoXIQ2xjfltPPRVIMeNzKEFLWWKQ==", "dev": true, "requires": { - "spdx-compare": "^1.0.0", - "spdx-expression-parse": "^3.0.0", - "spdx-ranges": "^2.0.0" + "spdx-compare": "1.0.0", + "spdx-expression-parse": "3.0.0", + "spdx-ranges": "2.0.0" } }, "spdy": { @@ -13839,12 +13839,12 @@ "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", "dev": true, "requires": { - "debug": "^2.6.8", - "handle-thing": "^1.2.5", - "http-deceiver": "^1.2.7", - "safe-buffer": "^5.0.1", - "select-hose": "^2.0.0", - "spdy-transport": "^2.0.18" + "debug": "2.6.9", + "handle-thing": "1.2.5", + "http-deceiver": "1.2.7", + "safe-buffer": "5.1.2", + "select-hose": "2.0.0", + "spdy-transport": "2.1.0" }, "dependencies": { "debug": { @@ -13864,13 +13864,13 @@ "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", "dev": true, "requires": { - "debug": "^2.6.8", - "detect-node": "^2.0.3", - "hpack.js": "^2.1.6", - "obuf": "^1.1.1", - "readable-stream": "^2.2.9", - "safe-buffer": "^5.0.1", - "wbuf": "^1.7.2" + "debug": "2.6.9", + "detect-node": "2.0.3", + "hpack.js": "2.1.6", + "obuf": "1.1.2", + "readable-stream": "2.3.6", + "safe-buffer": "5.1.2", + "wbuf": "1.7.3" }, "dependencies": { "debug": { @@ -13889,7 +13889,7 @@ "resolved": "https://registry.npmjs.org/split-array-stream/-/split-array-stream-2.0.0.tgz", "integrity": "sha512-hmMswlVY91WvGMxs0k8MRgq8zb2mSen4FmDNc5AFiTWtrBpdZN6nwD6kROVe4vNL+ywrvbCKsWVCnEd4riELIg==", "requires": { - "is-stream-ended": "^0.1.4" + "is-stream-ended": "0.1.4" } }, "split-string": { @@ -13898,7 +13898,7 @@ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { - "extend-shallow": "^3.0.0" + "extend-shallow": "3.0.2" } }, "sprintf-js": { @@ -13913,8 +13913,8 @@ "integrity": "sha1-pWad4StC87HV6D7QPHEEb8SPQe8=", "dev": true, "requires": { - "array-uniq": "^1.0.2", - "number-is-nan": "^1.0.0" + "array-uniq": "1.0.3", + "number-is-nan": "1.0.1" } }, "sshpk": { @@ -13922,15 +13922,15 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" + "asn1": "0.2.3", + "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" } }, "stack-utils": { @@ -13945,12 +13945,12 @@ "integrity": "sha512-jR45n5ZMAkasw0xoE9j9TuLmJv4Sa3AkXe+6yIFT6a07kXYHgSbuD2OVGECdZGFxTmvNqLwL1iRIgvq6O6rq+A==", "dev": true, "requires": { - "boom": "7.x.x", - "bounce": "1.x.x", - "cryptiles": "4.x.x", - "hoek": "5.x.x", - "iron": "5.x.x", - "joi": "13.x.x" + "boom": "7.2.0", + "bounce": "1.2.0", + "cryptiles": "4.1.2", + "hoek": "5.0.3", + "iron": "5.0.4", + "joi": "13.5.2" } }, "static-extend": { @@ -13959,8 +13959,8 @@ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" + "define-property": "0.2.5", + "object-copy": "0.1.0" }, "dependencies": { "define-property": { @@ -13969,7 +13969,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -13985,7 +13985,7 @@ "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.4.tgz", "integrity": "sha512-D243NJaYs/xBN2QnoiMDY7IesJFIK7gEhnvAYqJa5JvDdnh2dC4qDBwlCf0ohPpX2QRlA/4gnbnPd3rs3KxVcA==", "requires": { - "stubs": "^3.0.0" + "stubs": "3.0.0" } }, "stream-shift": { @@ -14017,8 +14017,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" } }, "string.prototype.matchall": { @@ -14027,11 +14027,11 @@ "integrity": "sha512-WoZ+B2ypng1dp4iFLF2kmZlwwlE19gmjgKuhL1FJfDgCREWb3ye3SDVHSzLH6bxfnvYmkCxbzkmWcQZHA4P//Q==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.10.0", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "regexp.prototype.flags": "^1.2.0" + "define-properties": "1.1.2", + "es-abstract": "1.12.0", + "function-bind": "1.1.1", + "has-symbols": "1.0.0", + "regexp.prototype.flags": "1.2.0" } }, "string_decoder": { @@ -14039,7 +14039,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.2" } }, "stringifier": { @@ -14048,9 +14048,9 @@ "integrity": "sha1-3vGDQvaTPbDy2/yaoCF1tEjBeVk=", "dev": true, "requires": { - "core-js": "^2.0.0", - "traverse": "^0.6.6", - "type-name": "^2.0.1" + "core-js": "2.5.7", + "traverse": "0.6.6", + "type-name": "2.0.2" } }, "strip-ansi": { @@ -14059,7 +14059,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" }, "dependencies": { "ansi-regex": { @@ -14082,7 +14082,7 @@ "integrity": "sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=", "dev": true, "requires": { - "is-utf8": "^0.2.1" + "is-utf8": "0.2.1" } }, "strip-eof": { @@ -14097,7 +14097,7 @@ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, "requires": { - "get-stdin": "^4.0.1" + "get-stdin": "4.0.1" } }, "strip-json-comments": { @@ -14117,11 +14117,11 @@ "integrity": "sha512-IcJUvRjeR+NB437Iq+LORFNJW4L6Knqkj3oQrBrkdhIaS2VKJvx/9aYEq7vi+PEx5/OuehOL/40SkSZotLi/MA==", "dev": true, "requires": { - "boom": "7.x.x", - "content": "4.x.x", - "hoek": "5.x.x", - "pez": "4.x.x", - "wreck": "14.x.x" + "boom": "7.2.0", + "content": "4.0.5", + "hoek": "5.0.3", + "pez": "4.0.2", + "wreck": "14.0.2" } }, "superagent": { @@ -14130,16 +14130,16 @@ "integrity": "sha512-gVH4QfYHcY3P0f/BZzavLreHW3T1v7hG9B+hpMQotGQqurOvhv87GcMCd6LWySmBuf+BDR44TQd0aISjVHLeNQ==", "dev": true, "requires": { - "component-emitter": "^1.2.0", - "cookiejar": "^2.1.0", - "debug": "^3.1.0", - "extend": "^3.0.0", - "form-data": "^2.3.1", - "formidable": "^1.1.1", - "methods": "^1.1.1", - "mime": "^1.4.1", - "qs": "^6.5.1", - "readable-stream": "^2.0.5" + "component-emitter": "1.2.1", + "cookiejar": "2.1.2", + "debug": "3.1.0", + "extend": "3.0.2", + "form-data": "2.3.2", + "formidable": "1.2.1", + "methods": "1.1.2", + "mime": "1.6.0", + "qs": "6.5.2", + "readable-stream": "2.3.6" }, "dependencies": { "mime": { @@ -14156,11 +14156,11 @@ "integrity": "sha512-HZJ3geIMPgVwKk2VsmO5YHqnnJYl6bV5A9JW2uzqV43WmpgliNEYbuvukfor7URpaqpxuw3CfZ3ONdVbZjCgIA==", "dev": true, "requires": { - "arrify": "^1.0.1", - "indent-string": "^3.2.0", - "js-yaml": "^3.10.0", - "serialize-error": "^2.1.0", - "strip-ansi": "^4.0.0" + "arrify": "1.0.1", + "indent-string": "3.2.0", + "js-yaml": "3.12.0", + "serialize-error": "2.1.0", + "strip-ansi": "4.0.0" } }, "supertest": { @@ -14169,7 +14169,7 @@ "integrity": "sha512-O44AMnmJqx294uJQjfUmEyYOg7d9mylNFsMw/Wkz4evKd1njyPrtCN+U6ZIC7sKtfEVQhfTqFFijlXx8KP/Czw==", "dev": true, "requires": { - "methods": "~1.1.2", + "methods": "1.1.2", "superagent": "3.8.2" } }, @@ -14179,7 +14179,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" }, "dependencies": { "has-flag": { @@ -14202,12 +14202,12 @@ "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", "dev": true, "requires": { - "ajv": "^6.0.1", - "ajv-keywords": "^3.0.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", + "ajv": "6.5.2", + "ajv-keywords": "3.2.0", + "chalk": "2.4.1", + "lodash": "4.17.5", "slice-ansi": "1.0.0", - "string-width": "^2.1.1" + "string-width": "2.1.1" }, "dependencies": { "ajv": { @@ -14216,10 +14216,10 @@ "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.1" + "fast-deep-equal": "2.0.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" } }, "fast-deep-equal": { @@ -14254,7 +14254,7 @@ "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "dev": true, "requires": { - "execa": "^0.7.0" + "execa": "0.7.0" } }, "text-encoding": { @@ -14280,8 +14280,8 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "requires": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" + "readable-stream": "2.3.6", + "xtend": "4.0.1" } }, "time-zone": { @@ -14302,7 +14302,7 @@ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "os-tmpdir": "~1.0.2" + "os-tmpdir": "1.0.2" } }, "to-fast-properties": { @@ -14317,7 +14317,7 @@ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "to-regex": { @@ -14326,10 +14326,10 @@ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" } }, "to-regex-range": { @@ -14338,8 +14338,8 @@ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "3.0.0", + "repeat-string": "1.6.1" }, "dependencies": { "is-number": { @@ -14348,7 +14348,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } } } @@ -14359,7 +14359,7 @@ "integrity": "sha512-Tlu1fGlR90iCdIPURqPiufqAlCZYzLjHYVVbcFWDMcX7+tK8hdZWAfsMrD/pBul9jqHHwFjNdf1WaxA9vTRRhw==", "dev": true, "requires": { - "hoek": "5.x.x" + "hoek": "5.0.3" } }, "tough-cookie": { @@ -14367,7 +14367,7 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "requires": { - "punycode": "^1.4.1" + "punycode": "1.4.1" } }, "traverse": { @@ -14406,18 +14406,18 @@ "integrity": "sha1-mPMMAurjzecAYgHkwzywi0hYHu0=", "dev": true, "requires": { - "babel-code-frame": "^6.22.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^3.2.0", - "glob": "^7.1.1", - "js-yaml": "^3.7.0", - "minimatch": "^3.0.4", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.8.0", - "tsutils": "^2.27.2" + "babel-code-frame": "6.26.0", + "builtin-modules": "1.1.1", + "chalk": "2.4.1", + "commander": "2.16.0", + "diff": "3.5.0", + "glob": "7.1.2", + "js-yaml": "3.12.0", + "minimatch": "3.0.4", + "resolve": "1.8.1", + "semver": "5.5.0", + "tslib": "1.9.3", + "tsutils": "2.29.0" }, "dependencies": { "resolve": { @@ -14426,7 +14426,7 @@ "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "dev": true, "requires": { - "path-parse": "^1.0.5" + "path-parse": "1.0.5" } } } @@ -14437,7 +14437,7 @@ "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", "dev": true, "requires": { - "tslib": "^1.8.1" + "tslib": "1.9.3" } }, "tunnel-agent": { @@ -14445,7 +14445,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "tweetnacl": { @@ -14460,7 +14460,7 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "~1.1.2" + "prelude-ls": "1.1.2" } }, "type-detect": { @@ -14476,7 +14476,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "~2.1.18" + "mime-types": "2.1.19" } }, "type-name": { @@ -14498,9 +14498,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" }, "dependencies": { "camelcase": { @@ -14517,9 +14517,9 @@ "dev": true, "optional": true, "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", "window-size": "0.1.0" } } @@ -14567,10 +14567,10 @@ "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "dev": true, "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" }, "dependencies": { "extend-shallow": { @@ -14579,7 +14579,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "set-value": { @@ -14588,10 +14588,10 @@ "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" } } } @@ -14602,7 +14602,7 @@ "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", "dev": true, "requires": { - "crypto-random-string": "^1.0.0" + "crypto-random-string": "1.0.0" } }, "unique-temp-dir": { @@ -14611,8 +14611,8 @@ "integrity": "sha1-bc6VsmgcoAPuv7MEpBX5y6vMU4U=", "dev": true, "requires": { - "mkdirp": "^0.5.1", - "os-tmpdir": "^1.0.1", + "mkdirp": "0.5.1", + "os-tmpdir": "1.0.2", "uid2": "0.0.3" } }, @@ -14622,9 +14622,9 @@ "integrity": "sha1-DaSsL3PP95JMgfpN4BjKViyisKc=", "dev": true, "requires": { - "array-filter": "^1.0.0", + "array-filter": "1.0.0", "indexof": "0.0.1", - "object-keys": "^1.0.0" + "object-keys": "1.0.12" } }, "universalify": { @@ -14645,8 +14645,8 @@ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "has-value": "0.3.1", + "isobject": "3.0.1" }, "dependencies": { "has-value": { @@ -14655,9 +14655,9 @@ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" }, "dependencies": { "isobject": { @@ -14697,16 +14697,16 @@ "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", "dev": true, "requires": { - "boxen": "^1.2.1", - "chalk": "^2.0.1", - "configstore": "^3.0.0", - "import-lazy": "^2.1.0", - "is-ci": "^1.0.10", - "is-installed-globally": "^0.1.0", - "is-npm": "^1.0.0", - "latest-version": "^3.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" + "boxen": "1.3.0", + "chalk": "2.4.1", + "configstore": "3.1.2", + "import-lazy": "2.1.0", + "is-ci": "1.1.0", + "is-installed-globally": "0.1.0", + "is-npm": "1.0.0", + "latest-version": "3.1.0", + "semver-diff": "2.1.0", + "xdg-basedir": "3.0.0" } }, "uri-js": { @@ -14715,7 +14715,7 @@ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { - "punycode": "^2.1.0" + "punycode": "2.1.1" }, "dependencies": { "punycode": { @@ -14738,7 +14738,7 @@ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "dev": true, "requires": { - "prepend-http": "^1.0.1" + "prepend-http": "1.0.4" } }, "url-to-options": { @@ -14781,8 +14781,8 @@ "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "dev": true, "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "validate-npm-package-name": { @@ -14791,7 +14791,7 @@ "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "dev": true, "requires": { - "builtins": "^1.0.3" + "builtins": "1.0.3" } }, "vary": { @@ -14831,9 +14831,9 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "^1.0.0", + "assert-plus": "1.0.0", "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "extsprintf": "1.3.0" } }, "vise": { @@ -14842,7 +14842,7 @@ "integrity": "sha512-kBFZLmiL1Vm3rHXphkhvvAcsjgeQXRrOFCbJb0I50YZZP4HGRNH+xGzK3matIMcpbsfr3I02u9odj4oCD0TWgA==", "dev": true, "requires": { - "hoek": "5.x.x" + "hoek": "5.0.3" } }, "wbuf": { @@ -14851,7 +14851,7 @@ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, "requires": { - "minimalistic-assert": "^1.0.0" + "minimalistic-assert": "1.0.1" } }, "well-known-symbols": { @@ -14866,7 +14866,7 @@ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -14881,7 +14881,7 @@ "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", "dev": true, "requires": { - "string-width": "^2.1.1" + "string-width": "2.1.1" } }, "window-size": { @@ -14903,8 +14903,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -14913,7 +14913,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "string-width": { @@ -14922,9 +14922,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "strip-ansi": { @@ -14933,7 +14933,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } } } @@ -14949,8 +14949,8 @@ "integrity": "sha512-QCm3omWNJUseqrSzwX2QZi1rBbmCfbFHJAXputLLyZ37VSiFnSYQB0ms/mPnSvrlIu7GVm89Y/gBNhSY26uVIQ==", "dev": true, "requires": { - "boom": "7.x.x", - "hoek": "5.x.x" + "boom": "7.2.0", + "hoek": "5.0.3" } }, "write": { @@ -14959,7 +14959,7 @@ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "^0.5.1" + "mkdirp": "0.5.1" } }, "write-file-atomic": { @@ -14968,9 +14968,9 @@ "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "signal-exit": "3.0.2" } }, "write-json-file": { @@ -14979,12 +14979,12 @@ "integrity": "sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=", "dev": true, "requires": { - "detect-indent": "^5.0.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "pify": "^3.0.0", - "sort-keys": "^2.0.0", - "write-file-atomic": "^2.0.0" + "detect-indent": "5.0.0", + "graceful-fs": "4.1.11", + "make-dir": "1.3.0", + "pify": "3.0.0", + "sort-keys": "2.0.0", + "write-file-atomic": "2.3.0" }, "dependencies": { "detect-indent": { @@ -15001,8 +15001,8 @@ "integrity": "sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw==", "dev": true, "requires": { - "sort-keys": "^2.0.0", - "write-json-file": "^2.2.0" + "sort-keys": "2.0.0", + "write-json-file": "2.3.0" } }, "xdg-basedir": { @@ -15039,18 +15039,18 @@ "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^9.0.2" + "cliui": "4.1.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.3", + "os-locale": "2.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "9.0.2" }, "dependencies": { "camelcase": { @@ -15065,9 +15065,9 @@ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" } }, "yargs-parser": { @@ -15076,7 +15076,7 @@ "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" } } } @@ -15087,7 +15087,7 @@ "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "4.1.0" }, "dependencies": { "camelcase": { diff --git a/handwritten/error-reporting/src/configuration.ts b/handwritten/error-reporting/src/configuration.ts index b4370f14250..0e2143aaeff 100644 --- a/handwritten/error-reporting/src/configuration.ts +++ b/handwritten/error-reporting/src/configuration.ts @@ -14,8 +14,6 @@ * limitations under the License. */ - -import consoleLogLevel = require('console-log-level'); import * as is from 'is'; import {has} from 'lodash'; @@ -25,7 +23,21 @@ const isString = is.string; const isNumber = is.number; const env = process.env; -export type Logger = consoleLogLevel.Logger; +// The Logger interface defined below matches the interface +// used by console-log-level. If the console-log-level +// module is imported here to get the Logger interface, +// TypeScript users of the error reporting library would +// need to install @types/console-log-level to compile their +// code. As a result, the interface is explicitly specified instead. +export type LogLevel = "error" | "trace" | "debug" | "info" | "warn" | "fatal" | undefined; +export interface Logger { + error(...args: Array<{}>): void; + trace(...args: Array<{}>): void; + debug(...args: Array<{}>): void; + info(...args: Array<{}>): void; + warn(...args: Array<{}>): void; + fatal(...args: Array<{}>): void; +} export interface ConfigurationOptions { projectId?: string; From 1165390404a713ddef9ecb570269826513db85f1 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Tue, 31 Jul 2018 11:04:14 -0700 Subject: [PATCH 138/527] chore: delete an unused file (#184) The `system-test/utils.ts` file is no longer needed because the `post-install-check` module is now used to run the installation tests. --- .../error-reporting/system-test/utils.ts | 85 ------------------- 1 file changed, 85 deletions(-) delete mode 100644 handwritten/error-reporting/system-test/utils.ts diff --git a/handwritten/error-reporting/system-test/utils.ts b/handwritten/error-reporting/system-test/utils.ts deleted file mode 100644 index 79f0c86c0dc..00000000000 --- a/handwritten/error-reporting/system-test/utils.ts +++ /dev/null @@ -1,85 +0,0 @@ -/** - * Copyright 2018 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import {ChildProcess, fork, ForkOptions, spawn, SpawnOptions} from 'child_process'; -import {mkdir, readFile, stat, Stats, writeFile} from 'fs'; -import * as glob from 'glob'; -import {ncp} from 'ncp'; -import * as once from 'once'; -import * as path from 'path'; -import * as pify from 'pify'; -import * as rimraf from 'rimraf'; -import * as tmp from 'tmp'; - -export const BUILD_DIRECTORY = 'build'; - -export const globP: (pattern: string) => Promise = pify(glob); -export const ncpP: (src: string, dest: string) => Promise = pify(ncp); -export const readFileP: (path: string, encoding?: string) => - Promise = pify(readFile); -export const writeFileP: (path: string, data: string, encoding?: string) => - Promise = pify(writeFile); -export const statP: (path: string) => Promise = pify(stat); -export const tmpDirP: () => Promise = pify(tmp.dir); -export const rimrafP: (f: string) => Promise = pify(rimraf); -export const mkdirP: (path: string, mode?: number) => Promise = - pify(mkdir); - -export function nodule(nodule: string) { - return path.relative(BUILD_DIRECTORY, `node_modules/${nodule}`); -} - -export function existsP(path: string): Promise { - return statP(path).then( - () => Promise.resolve(true), () => Promise.resolve(false)); -} - -function promisifyChildProcess( - childProcess: ChildProcess, log?: (text: string) => void): Promise { - return new Promise((resolve, reject) => { - const exit = (err?: Error) => once(() => err ? reject(err) : resolve())(); - const resLog = log ? log : (text: string) => {}; - childProcess.stdout.on('data', (txt) => { - resLog(txt.toString()); - }); - childProcess.stderr.on('data', (txt) => { - resLog(txt.toString()); - }); - childProcess.on('error', exit); - childProcess.on('close', (code) => { - if (code === 0) { - exit(); - } else { - exit( - new Error(`Process ${childProcess.pid} exited with code ${code}.`)); - } - }); - }); -} - -export async function spawnP( - command: string, args?: string[], options?: SpawnOptions, - log?: (text: string) => void): Promise { - const stringifiedCommand = - `\`${command}${args ? (' ' + args.join(' ')) : ''}\``; - if (log) { - log(`> Running: ${stringifiedCommand}`); - } - await promisifyChildProcess( - spawn( - command, args, Object.assign({stdio: 'pipe', shell: true}, options)), - log); -} From 332fd2c99d76fc11c2e82b08a6d5761be90b364b Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Wed, 1 Aug 2018 11:16:54 -0700 Subject: [PATCH 139/527] chore: fix `lodash.has` usage (#185) --- handwritten/error-reporting/src/configuration.ts | 4 ++-- handwritten/error-reporting/src/logger.ts | 2 +- handwritten/error-reporting/src/populate-error-message.ts | 2 +- handwritten/error-reporting/src/request-extractors/hapi.ts | 2 +- handwritten/error-reporting/src/request-extractors/manual.ts | 2 +- .../test/test-servers/express_scaffold_server.ts | 2 +- handwritten/error-reporting/test/unit/interfaces/hapi.ts | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/handwritten/error-reporting/src/configuration.ts b/handwritten/error-reporting/src/configuration.ts index 0e2143aaeff..21f1f1da752 100644 --- a/handwritten/error-reporting/src/configuration.ts +++ b/handwritten/error-reporting/src/configuration.ts @@ -15,7 +15,7 @@ */ import * as is from 'is'; -import {has} from 'lodash'; +import has = require('lodash.has'); const isObject = is.object; const isBoolean = is.boolean; @@ -29,7 +29,7 @@ const env = process.env; // TypeScript users of the error reporting library would // need to install @types/console-log-level to compile their // code. As a result, the interface is explicitly specified instead. -export type LogLevel = "error" | "trace" | "debug" | "info" | "warn" | "fatal" | undefined; +export type LogLevel = 'error'|'trace'|'debug'|'info'|'warn'|'fatal'|undefined; export interface Logger { error(...args: Array<{}>): void; trace(...args: Array<{}>): void; diff --git a/handwritten/error-reporting/src/logger.ts b/handwritten/error-reporting/src/logger.ts index 125cbb79af1..d7172b53b06 100644 --- a/handwritten/error-reporting/src/logger.ts +++ b/handwritten/error-reporting/src/logger.ts @@ -15,7 +15,7 @@ */ import * as is from 'is'; -import {has} from 'lodash'; +import has = require('lodash.has'); import consoleLogLevel = require('console-log-level'); const packageJson = require('../../package.json'); diff --git a/handwritten/error-reporting/src/populate-error-message.ts b/handwritten/error-reporting/src/populate-error-message.ts index a3c4977a9ef..d0bffb1bd41 100644 --- a/handwritten/error-reporting/src/populate-error-message.ts +++ b/handwritten/error-reporting/src/populate-error-message.ts @@ -15,7 +15,7 @@ */ import * as is from 'is'; -import {has} from 'lodash'; +import has = require('lodash.has'); const isObject = is.object; import {buildStackTrace} from './build-stack-trace'; diff --git a/handwritten/error-reporting/src/request-extractors/hapi.ts b/handwritten/error-reporting/src/request-extractors/hapi.ts index 0af7f232e14..d0095a9dfeb 100644 --- a/handwritten/error-reporting/src/request-extractors/hapi.ts +++ b/handwritten/error-reporting/src/request-extractors/hapi.ts @@ -16,7 +16,7 @@ import * as boom from 'boom'; import * as is from 'is'; -import {has} from 'lodash'; +import has = require('lodash.has'); const isObject = is.object; const isFunction = is.function; diff --git a/handwritten/error-reporting/src/request-extractors/manual.ts b/handwritten/error-reporting/src/request-extractors/manual.ts index db986775bdb..6992e3e0f1f 100644 --- a/handwritten/error-reporting/src/request-extractors/manual.ts +++ b/handwritten/error-reporting/src/request-extractors/manual.ts @@ -15,7 +15,7 @@ */ import * as is from 'is'; -import {has} from 'lodash'; +import has = require('lodash.has'); const isObject = is.object; const isArray = is.array; diff --git a/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts index cb4e2baeb29..93357c96ae9 100644 --- a/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts +++ b/handwritten/error-reporting/test/test-servers/express_scaffold_server.ts @@ -16,7 +16,7 @@ const WARNING_HEADER = '\n!! -WARNING-'; const EXCLAMATION_LN = '\n!!'; -import {has} from 'lodash'; +import has = require('lodash.has'); import * as express from 'express'; const app = express(); const errorHandler = require('../../src/index.js')({ diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.ts b/handwritten/error-reporting/test/unit/interfaces/hapi.ts index f078b98a4f3..2f3e58a6b9c 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.ts +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.ts @@ -15,7 +15,7 @@ */ import * as is from 'is'; -import {has} from 'lodash'; +import has = require('lodash.has'); const isFunction = (is as {} as {fn: Function}).fn; const isObject = is.object; From fb84225c8df8a61015cabbc1d2506e5bbe52b1f6 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Thu, 2 Aug 2018 15:33:17 -0700 Subject: [PATCH 140/527] chore: do not target `es5` (#187) Targeting `es5` caused the koa plugin, which is a generator function, to be transpiled into a regular function. As a result, Koa@1 would refuse to use the plugin. --- handwritten/error-reporting/system-test/test-install.ts | 6 +++--- handwritten/error-reporting/tsconfig.json | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/handwritten/error-reporting/system-test/test-install.ts b/handwritten/error-reporting/system-test/test-install.ts index 1809601b5d0..c84285401c0 100644 --- a/handwritten/error-reporting/system-test/test-install.ts +++ b/handwritten/error-reporting/system-test/test-install.ts @@ -154,7 +154,7 @@ app.use(function *(this: any): IterableIterator { }); `, description: 'uses koa', - dependencies: ['koa'], + dependencies: ['koa@1.x.x'], devDependencies: ['@types/koa'] }, { @@ -220,7 +220,7 @@ new ErrorReporting({ code: `const express = require('express'); const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; -const errors = ErrorReporting(); +const errors = new ErrorReporting(); const app = express(); @@ -315,7 +315,7 @@ app.use(function *(){ }); `, description: 'uses koa', - dependencies: ['koa'], + dependencies: ['koa@1.x.x'], devDependencies: [] }, { diff --git a/handwritten/error-reporting/tsconfig.json b/handwritten/error-reporting/tsconfig.json index 15fd7fe11cd..6a6a03b1209 100644 --- a/handwritten/error-reporting/tsconfig.json +++ b/handwritten/error-reporting/tsconfig.json @@ -2,8 +2,7 @@ "extends": "./node_modules/gts/tsconfig-google.json", "compilerOptions": { "rootDir": ".", - "outDir": "build", - "target": "es5" + "outDir": "build" }, "include": [ "src/*.ts", From 36da5134a8e36525270c17e6ab7d77d833375adb Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Mon, 6 Aug 2018 16:35:00 -0700 Subject: [PATCH 141/527] chore: fix sys test failure caused by a type error (#188) --- handwritten/error-reporting/system-test/error-reporting.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index 22b5404e4ee..def5319751a 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -522,7 +522,7 @@ describe('error-reporting', () => { assert.strictEqual(matchedErrors.length, 1); const errItem = matchedErrors[0]; assert.ok(errItem); - assert.strictEqual(errItem.count, 1); + assert.strictEqual(errItem.count, '1'); const rep = errItem.representative; assert.ok(rep); // Ensure the stack trace in the message does not contain any frames From c9bdb825e21736225f1a38fa168cfd1d5deee2d9 Mon Sep 17 00:00:00 2001 From: Mike Marcacci Date: Mon, 6 Aug 2018 15:52:48 -0800 Subject: [PATCH 142/527] feat: add Koa2 support (#117) This change introduces a Koa2 plugin that is available through the `koa2` property. The existing Koa1 plugin is still accessed through the `koa` property. Fixes: #8 --- handwritten/error-reporting/package-lock.json | 1647 +++++++++++------ handwritten/error-reporting/src/index.ts | 16 +- .../error-reporting/src/interfaces/koa2.ts | 69 + .../system-test/test-install.ts | 119 +- .../test/test-servers/koa2_scaffold_server.ts | 59 + 5 files changed, 1335 insertions(+), 575 deletions(-) create mode 100644 handwritten/error-reporting/src/interfaces/koa2.ts create mode 100644 handwritten/error-reporting/test/test-servers/koa2_scaffold_server.ts diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index c5e0047ee13..adb86eb606f 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -294,7 +294,8 @@ "dependencies": { "align-text": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, "requires": { "kind-of": "3.2.2", @@ -304,22 +305,26 @@ }, "amdefine": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", "dev": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "ansi-styles": { "version": "2.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, "append-transform": { "version": "0.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", "dev": true, "requires": { "default-require-extensions": "1.0.0" @@ -327,52 +332,62 @@ }, "archy": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", "dev": true }, "arr-diff": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, "arr-flatten": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, "arr-union": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, "array-unique": { "version": "0.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, "arrify": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, "assign-symbols": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true }, "async": { "version": "1.5.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", "dev": true }, "atob": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", + "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", "dev": true }, "babel-code-frame": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { "chalk": "1.1.3", @@ -382,7 +397,8 @@ }, "babel-generator": { "version": "6.26.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "dev": true, "requires": { "babel-messages": "6.23.0", @@ -397,7 +413,8 @@ }, "babel-messages": { "version": "6.23.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { "babel-runtime": "6.26.0" @@ -405,7 +422,8 @@ }, "babel-runtime": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { "core-js": "2.5.6", @@ -414,7 +432,8 @@ }, "babel-template": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { "babel-runtime": "6.26.0", @@ -426,7 +445,8 @@ }, "babel-traverse": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { "babel-code-frame": "6.26.0", @@ -442,7 +462,8 @@ }, "babel-types": { "version": "6.26.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { "babel-runtime": "6.26.0", @@ -453,17 +474,20 @@ }, "babylon": { "version": "6.18.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", "dev": true }, "balanced-match": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "base": { "version": "0.11.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { "cache-base": "1.0.1", @@ -477,7 +501,8 @@ "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { "is-descriptor": "1.0.2" @@ -485,7 +510,8 @@ }, "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { "kind-of": "6.0.2" @@ -493,7 +519,8 @@ }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { "kind-of": "6.0.2" @@ -501,7 +528,8 @@ }, "is-descriptor": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", @@ -511,14 +539,16 @@ }, "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } }, "brace-expansion": { "version": "1.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { "balanced-match": "1.0.0", @@ -527,7 +557,8 @@ }, "braces": { "version": "2.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { "arr-flatten": "1.1.0", @@ -544,7 +575,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "0.1.1" @@ -554,12 +586,14 @@ }, "builtin-modules": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, "cache-base": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { "collection-visit": "1.0.0", @@ -575,7 +609,8 @@ }, "caching-transform": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", + "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", "dev": true, "requires": { "md5-hex": "1.3.0", @@ -585,13 +620,15 @@ }, "camelcase": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", "dev": true, "optional": true }, "center-align": { "version": "0.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "dev": true, "optional": true, "requires": { @@ -601,7 +638,8 @@ }, "chalk": { "version": "1.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { "ansi-styles": "2.2.1", @@ -613,7 +651,8 @@ }, "class-utils": { "version": "0.3.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { "arr-union": "3.1.0", @@ -624,7 +663,8 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "0.1.6" @@ -634,7 +674,8 @@ }, "cliui": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "dev": true, "optional": true, "requires": { @@ -645,7 +686,8 @@ "dependencies": { "wordwrap": { "version": "0.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", "dev": true, "optional": true } @@ -653,12 +695,14 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, "collection-visit": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { "map-visit": "1.0.0", @@ -667,37 +711,44 @@ }, "commondir": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, "component-emitter": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", "dev": true }, "concat-map": { "version": "0.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "convert-source-map": { "version": "1.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", "dev": true }, "copy-descriptor": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true }, "core-js": { "version": "2.5.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.6.tgz", + "integrity": "sha512-lQUVfQi0aLix2xpyjrrJEvfuYCqPc/HwmTKsC/VNf8q0zsjX7SQZtp4+oRONN5Tsur9GDETPjj+Ub2iDiGZfSQ==", "dev": true }, "cross-spawn": { "version": "4.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", "dev": true, "requires": { "lru-cache": "4.1.3", @@ -706,7 +757,8 @@ }, "debug": { "version": "2.6.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" @@ -714,22 +766,26 @@ }, "debug-log": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", + "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", "dev": true }, "decamelize": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "decode-uri-component": { "version": "0.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, "default-require-extensions": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", "dev": true, "requires": { "strip-bom": "2.0.0" @@ -737,7 +793,8 @@ }, "define-property": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { "is-descriptor": "1.0.2", @@ -746,7 +803,8 @@ "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { "kind-of": "6.0.2" @@ -754,7 +812,8 @@ }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { "kind-of": "6.0.2" @@ -762,7 +821,8 @@ }, "is-descriptor": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", @@ -772,14 +832,16 @@ }, "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } }, "detect-indent": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { "repeating": "2.0.1" @@ -787,7 +849,8 @@ }, "error-ex": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "dev": true, "requires": { "is-arrayish": "0.2.1" @@ -795,17 +858,20 @@ }, "escape-string-regexp": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "esutils": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, "execa": { "version": "0.7.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { "cross-spawn": "5.1.0", @@ -819,7 +885,8 @@ "dependencies": { "cross-spawn": { "version": "5.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { "lru-cache": "4.1.3", @@ -831,7 +898,8 @@ }, "expand-brackets": { "version": "2.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { "debug": "2.6.9", @@ -845,7 +913,8 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "0.1.6" @@ -853,7 +922,8 @@ }, "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "0.1.1" @@ -863,7 +933,8 @@ }, "extend-shallow": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { "assign-symbols": "1.0.0", @@ -872,7 +943,8 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { "is-plain-object": "2.0.4" @@ -882,7 +954,8 @@ }, "extglob": { "version": "2.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { "array-unique": "0.3.2", @@ -897,7 +970,8 @@ "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { "is-descriptor": "1.0.2" @@ -905,7 +979,8 @@ }, "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "0.1.1" @@ -913,7 +988,8 @@ }, "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { "kind-of": "6.0.2" @@ -921,7 +997,8 @@ }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { "kind-of": "6.0.2" @@ -929,7 +1006,8 @@ }, "is-descriptor": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", @@ -939,14 +1017,16 @@ }, "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } }, "fill-range": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { "extend-shallow": "2.0.1", @@ -957,7 +1037,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "0.1.1" @@ -967,7 +1048,8 @@ }, "find-cache-dir": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", "dev": true, "requires": { "commondir": "1.0.1", @@ -977,7 +1059,8 @@ }, "find-up": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { "locate-path": "2.0.0" @@ -985,12 +1068,14 @@ }, "for-in": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true }, "foreground-child": { "version": "1.5.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", "dev": true, "requires": { "cross-spawn": "4.0.2", @@ -999,7 +1084,8 @@ }, "fragment-cache": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { "map-cache": "0.2.2" @@ -1007,27 +1093,32 @@ }, "fs.realpath": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "get-caller-file": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", "dev": true }, "get-stream": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true }, "get-value": { "version": "2.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true }, "glob": { "version": "7.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { "fs.realpath": "1.0.0", @@ -1040,17 +1131,20 @@ }, "globals": { "version": "9.18.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", "dev": true }, "graceful-fs": { "version": "4.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, "handlebars": { "version": "4.0.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { "async": "1.5.2", @@ -1061,7 +1155,8 @@ "dependencies": { "source-map": { "version": "0.4.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { "amdefine": "1.0.1" @@ -1071,7 +1166,8 @@ }, "has-ansi": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { "ansi-regex": "2.1.1" @@ -1079,12 +1175,14 @@ }, "has-flag": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", "dev": true }, "has-value": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { "get-value": "2.0.6", @@ -1094,7 +1192,8 @@ }, "has-values": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { "is-number": "3.0.0", @@ -1103,7 +1202,8 @@ "dependencies": { "kind-of": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { "is-buffer": "1.1.6" @@ -1113,17 +1213,20 @@ }, "hosted-git-info": { "version": "2.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", + "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", "dev": true }, "imurmurhash": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { "once": "1.4.0", @@ -1132,12 +1235,14 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "invariant": { "version": "2.2.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "requires": { "loose-envify": "1.3.1" @@ -1145,12 +1250,14 @@ }, "invert-kv": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", "dev": true }, "is-accessor-descriptor": { "version": "0.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { "kind-of": "3.2.2" @@ -1158,17 +1265,20 @@ }, "is-arrayish": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, "is-buffer": { "version": "1.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, "is-builtin-module": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { "builtin-modules": "1.1.1" @@ -1176,7 +1286,8 @@ }, "is-data-descriptor": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { "kind-of": "3.2.2" @@ -1184,7 +1295,8 @@ }, "is-descriptor": { "version": "0.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { "is-accessor-descriptor": "0.1.6", @@ -1194,19 +1306,22 @@ "dependencies": { "kind-of": { "version": "5.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true } } }, "is-extendable": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true }, "is-finite": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { "number-is-nan": "1.0.1" @@ -1214,12 +1329,14 @@ }, "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "is-number": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { "kind-of": "3.2.2" @@ -1227,7 +1344,8 @@ }, "is-odd": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", "dev": true, "requires": { "is-number": "4.0.0" @@ -1235,14 +1353,16 @@ "dependencies": { "is-number": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", "dev": true } } }, "is-plain-object": { "version": "2.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { "isobject": "3.0.1" @@ -1250,42 +1370,50 @@ }, "is-stream": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "is-utf8": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, "is-windows": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true }, "isarray": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, "istanbul-lib-coverage": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", + "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==", "dev": true }, "istanbul-lib-hook": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", + "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", "dev": true, "requires": { "append-transform": "0.4.0" @@ -1293,7 +1421,8 @@ }, "istanbul-lib-instrument": { "version": "1.10.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", + "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", "dev": true, "requires": { "babel-generator": "6.26.1", @@ -1307,7 +1436,8 @@ }, "istanbul-lib-report": { "version": "1.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz", + "integrity": "sha512-D4jVbMDtT2dPmloPJS/rmeP626N5Pr3Rp+SovrPn1+zPChGHcggd/0sL29jnbm4oK9W0wHjCRsdch9oLd7cm6g==", "dev": true, "requires": { "istanbul-lib-coverage": "1.2.0", @@ -1318,7 +1448,8 @@ "dependencies": { "supports-color": { "version": "3.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { "has-flag": "1.0.0" @@ -1328,7 +1459,8 @@ }, "istanbul-lib-source-maps": { "version": "1.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz", + "integrity": "sha512-fDa0hwU/5sDXwAklXgAoCJCOsFsBplVQ6WBldz5UwaqOzmDhUK4nfuR7/G//G2lERlblUNJB8P6e8cXq3a7MlA==", "dev": true, "requires": { "debug": "3.1.0", @@ -1340,7 +1472,8 @@ "dependencies": { "debug": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { "ms": "2.0.0" @@ -1350,7 +1483,8 @@ }, "istanbul-reports": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.4.0.tgz", + "integrity": "sha512-OPzVo1fPZ2H+owr8q/LYKLD+vquv9Pj4F+dj808MdHbuQLD7S4ACRjcX+0Tne5Vxt2lxXvdZaL7v+FOOAV281w==", "dev": true, "requires": { "handlebars": "4.0.11" @@ -1358,17 +1492,20 @@ }, "js-tokens": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", "dev": true }, "jsesc": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", "dev": true }, "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "1.1.6" @@ -1376,13 +1513,15 @@ }, "lazy-cache": { "version": "1.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", "dev": true, "optional": true }, "lcid": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { "invert-kv": "1.0.0" @@ -1390,7 +1529,8 @@ }, "load-json-file": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -1402,7 +1542,8 @@ }, "locate-path": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { "p-locate": "2.0.0", @@ -1411,24 +1552,28 @@ "dependencies": { "path-exists": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true } } }, "lodash": { "version": "4.17.10", - "bundled": true, + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", "dev": true }, "longest": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", "dev": true }, "loose-envify": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "dev": true, "requires": { "js-tokens": "3.0.2" @@ -1436,7 +1581,8 @@ }, "lru-cache": { "version": "4.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "dev": true, "requires": { "pseudomap": "1.0.2", @@ -1445,12 +1591,14 @@ }, "map-cache": { "version": "0.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, "map-visit": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { "object-visit": "1.0.1" @@ -1458,7 +1606,8 @@ }, "md5-hex": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", + "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "dev": true, "requires": { "md5-o-matic": "0.1.1" @@ -1466,12 +1615,14 @@ }, "md5-o-matic": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", + "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=", "dev": true }, "mem": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { "mimic-fn": "1.2.0" @@ -1479,7 +1630,8 @@ }, "merge-source-map": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", "dev": true, "requires": { "source-map": "0.6.1" @@ -1487,14 +1639,16 @@ "dependencies": { "source-map": { "version": "0.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "micromatch": { "version": "3.1.10", - "bundled": true, + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { "arr-diff": "4.0.0", @@ -1514,19 +1668,22 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } }, "mimic-fn": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { "brace-expansion": "1.1.11" @@ -1534,12 +1691,14 @@ }, "minimist": { "version": "0.0.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, "mixin-deep": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "dev": true, "requires": { "for-in": "1.0.2", @@ -1548,7 +1707,8 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { "is-plain-object": "2.0.4" @@ -1558,7 +1718,8 @@ }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { "minimist": "0.0.8" @@ -1566,12 +1727,14 @@ }, "ms": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "nanomatch": { "version": "1.2.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", "dev": true, "requires": { "arr-diff": "4.0.0", @@ -1590,14 +1753,16 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } }, "normalize-package-data": { "version": "2.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { "hosted-git-info": "2.6.0", @@ -1608,7 +1773,8 @@ }, "npm-run-path": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { "path-key": "2.0.1" @@ -1616,17 +1782,20 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, "object-copy": { "version": "0.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { "copy-descriptor": "0.1.1", @@ -1636,7 +1805,8 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "0.1.6" @@ -1646,7 +1816,8 @@ }, "object-visit": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { "isobject": "3.0.1" @@ -1654,7 +1825,8 @@ }, "object.pick": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { "isobject": "3.0.1" @@ -1662,7 +1834,8 @@ }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { "wrappy": "1.0.2" @@ -1670,7 +1843,8 @@ }, "optimist": { "version": "0.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { "minimist": "0.0.8", @@ -1679,12 +1853,14 @@ }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, "os-locale": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { "execa": "0.7.0", @@ -1694,12 +1870,14 @@ }, "p-finally": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, "p-limit": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", + "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", "dev": true, "requires": { "p-try": "1.0.0" @@ -1707,7 +1885,8 @@ }, "p-locate": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { "p-limit": "1.2.0" @@ -1715,12 +1894,14 @@ }, "p-try": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, "parse-json": { "version": "2.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { "error-ex": "1.3.1" @@ -1728,12 +1909,14 @@ }, "pascalcase": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true }, "path-exists": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { "pinkie-promise": "2.0.1" @@ -1741,22 +1924,26 @@ }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "path-key": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, "path-parse": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", "dev": true }, "path-type": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -1766,17 +1953,20 @@ }, "pify": { "version": "2.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, "pinkie": { "version": "2.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", "dev": true }, "pinkie-promise": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { "pinkie": "2.0.4" @@ -1784,7 +1974,8 @@ }, "pkg-dir": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "dev": true, "requires": { "find-up": "1.1.2" @@ -1792,7 +1983,8 @@ "dependencies": { "find-up": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { "path-exists": "2.1.0", @@ -1803,17 +1995,20 @@ }, "posix-character-classes": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, "pseudomap": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, "read-pkg": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { "load-json-file": "1.1.0", @@ -1823,7 +2018,8 @@ }, "read-pkg-up": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { "find-up": "1.1.2", @@ -1832,7 +2028,8 @@ "dependencies": { "find-up": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { "path-exists": "2.1.0", @@ -1843,12 +2040,14 @@ }, "regenerator-runtime": { "version": "0.11.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true }, "regex-not": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { "extend-shallow": "3.0.2", @@ -1857,17 +2056,20 @@ }, "repeat-element": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", "dev": true }, "repeat-string": { "version": "1.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, "repeating": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { "is-finite": "1.0.2" @@ -1875,32 +2077,38 @@ }, "require-directory": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, "require-main-filename": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", "dev": true }, "resolve-from": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", "dev": true }, "resolve-url": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, "ret": { "version": "0.1.15", - "bundled": true, + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, "right-align": { "version": "0.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "dev": true, "optional": true, "requires": { @@ -1909,7 +2117,8 @@ }, "rimraf": { "version": "2.6.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { "glob": "7.1.2" @@ -1917,7 +2126,8 @@ }, "safe-regex": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { "ret": "0.1.15" @@ -1925,17 +2135,20 @@ }, "semver": { "version": "5.5.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", "dev": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, "set-value": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "dev": true, "requires": { "extend-shallow": "2.0.1", @@ -1946,7 +2159,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "0.1.1" @@ -1956,7 +2170,8 @@ }, "shebang-command": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { "shebang-regex": "1.0.0" @@ -1964,22 +2179,26 @@ }, "shebang-regex": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, "slide": { "version": "1.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", "dev": true }, "snapdragon": { "version": "0.8.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { "base": "0.11.2", @@ -1994,7 +2213,8 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "0.1.6" @@ -2002,7 +2222,8 @@ }, "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "0.1.1" @@ -2012,7 +2233,8 @@ }, "snapdragon-node": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { "define-property": "1.0.0", @@ -2022,7 +2244,8 @@ "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { "is-descriptor": "1.0.2" @@ -2030,7 +2253,8 @@ }, "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { "kind-of": "6.0.2" @@ -2038,7 +2262,8 @@ }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { "kind-of": "6.0.2" @@ -2046,7 +2271,8 @@ }, "is-descriptor": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", @@ -2056,14 +2282,16 @@ }, "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } }, "snapdragon-util": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { "kind-of": "3.2.2" @@ -2071,12 +2299,14 @@ }, "source-map": { "version": "0.5.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, "source-map-resolve": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", "dev": true, "requires": { "atob": "2.1.1", @@ -2088,12 +2318,14 @@ }, "source-map-url": { "version": "0.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, "spawn-wrap": { "version": "1.4.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", + "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", "dev": true, "requires": { "foreground-child": "1.5.6", @@ -2106,7 +2338,8 @@ }, "spdx-correct": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "dev": true, "requires": { "spdx-expression-parse": "3.0.0", @@ -2115,12 +2348,14 @@ }, "spdx-exceptions": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", "dev": true }, "spdx-expression-parse": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { "spdx-exceptions": "2.1.0", @@ -2129,12 +2364,14 @@ }, "spdx-license-ids": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", "dev": true }, "split-string": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { "extend-shallow": "3.0.2" @@ -2142,7 +2379,8 @@ }, "static-extend": { "version": "0.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { "define-property": "0.2.5", @@ -2151,7 +2389,8 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "0.1.6" @@ -2161,7 +2400,8 @@ }, "string-width": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { "is-fullwidth-code-point": "2.0.0", @@ -2170,12 +2410,14 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "strip-ansi": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { "ansi-regex": "3.0.0" @@ -2185,7 +2427,8 @@ }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { "ansi-regex": "2.1.1" @@ -2193,7 +2436,8 @@ }, "strip-bom": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { "is-utf8": "0.2.1" @@ -2201,17 +2445,20 @@ }, "strip-eof": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, "supports-color": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, "test-exclude": { "version": "4.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", + "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", "dev": true, "requires": { "arrify": "1.0.1", @@ -2223,12 +2470,14 @@ }, "to-fast-properties": { "version": "1.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", "dev": true }, "to-object-path": { "version": "0.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { "kind-of": "3.2.2" @@ -2236,7 +2485,8 @@ }, "to-regex": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { "define-property": "2.0.2", @@ -2247,7 +2497,8 @@ }, "to-regex-range": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { "is-number": "3.0.0", @@ -2256,12 +2507,14 @@ }, "trim-right": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "dev": true }, "uglify-js": { "version": "2.8.29", - "bundled": true, + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "dev": true, "optional": true, "requires": { @@ -2272,7 +2525,8 @@ "dependencies": { "yargs": { "version": "3.10.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "dev": true, "optional": true, "requires": { @@ -2286,13 +2540,15 @@ }, "uglify-to-browserify": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", "dev": true, "optional": true }, "union-value": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "dev": true, "requires": { "arr-union": "3.1.0", @@ -2303,7 +2559,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "0.1.1" @@ -2311,7 +2568,8 @@ }, "set-value": { "version": "0.4.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "dev": true, "requires": { "extend-shallow": "2.0.1", @@ -2324,7 +2582,8 @@ }, "unset-value": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { "has-value": "0.3.1", @@ -2333,7 +2592,8 @@ "dependencies": { "has-value": { "version": "0.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { "get-value": "2.0.6", @@ -2343,7 +2603,8 @@ "dependencies": { "isobject": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "requires": { "isarray": "1.0.0" @@ -2353,19 +2614,22 @@ }, "has-values": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true } } }, "urix": { "version": "0.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, "use": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", "dev": true, "requires": { "kind-of": "6.0.2" @@ -2373,14 +2637,16 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } }, "validate-npm-package-license": { "version": "3.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", + "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "dev": true, "requires": { "spdx-correct": "3.0.0", @@ -2389,7 +2655,8 @@ }, "which": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true, "requires": { "isexe": "2.0.0" @@ -2397,23 +2664,27 @@ }, "which-module": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, "window-size": { "version": "0.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", "dev": true }, "wrap-ansi": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { "string-width": "1.0.2", @@ -2422,7 +2693,8 @@ "dependencies": { "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { "number-is-nan": "1.0.1" @@ -2430,7 +2702,8 @@ }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { "code-point-at": "1.1.0", @@ -2442,12 +2715,14 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "write-file-atomic": { "version": "1.3.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", + "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -2457,17 +2732,20 @@ }, "y18n": { "version": "3.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", "dev": true }, "yallist": { "version": "2.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, "yargs": { "version": "11.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", + "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", "dev": true, "requires": { "cliui": "4.1.0", @@ -2486,17 +2764,20 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "camelcase": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true }, "cliui": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { "string-width": "2.1.1", @@ -2506,7 +2787,8 @@ }, "strip-ansi": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { "ansi-regex": "3.0.0" @@ -2514,7 +2796,8 @@ }, "yargs-parser": { "version": "9.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", + "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "dev": true, "requires": { "camelcase": "4.1.0" @@ -2524,7 +2807,8 @@ }, "yargs-parser": { "version": "8.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", + "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", "dev": true, "requires": { "camelcase": "4.1.0" @@ -2532,7 +2816,8 @@ "dependencies": { "camelcase": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true } } @@ -4166,9 +4451,9 @@ "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" }, "buffer-from": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", - "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, "builtin-modules": { @@ -5767,7 +6052,7 @@ "functional-red-black-tree": "1.0.1", "glob": "7.1.2", "globals": "11.7.0", - "ignore": "4.0.2", + "ignore": "4.0.3", "imurmurhash": "0.1.4", "inquirer": "5.2.0", "is-resolvable": "1.1.0", @@ -5830,9 +6115,9 @@ "dev": true }, "ignore": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.2.tgz", - "integrity": "sha512-uoxnT7PYpyEnsja+yX+7v49B7LXxmzDJ2JALqHH3oEGzpM2U1IGcbfnOr8Dt57z3B/UWs7/iAgPFbmye8m4I0g==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.3.tgz", + "integrity": "sha512-Z/vAH2GGIEATQnBVXMclE2IGV6i0GyVngKThcGZ5kHgHMxLo9Ow2+XHRq1aEKEej5vOF1TPJNbvX6J/anT0M7A==", "dev": true }, "json-schema-traverse": { @@ -5886,16 +6171,16 @@ "requires": { "eslint-plugin-es": "1.3.1", "eslint-utils": "1.3.1", - "ignore": "4.0.2", + "ignore": "4.0.3", "minimatch": "3.0.4", "resolve": "1.8.1", "semver": "5.5.0" }, "dependencies": { "ignore": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.2.tgz", - "integrity": "sha512-uoxnT7PYpyEnsja+yX+7v49B7LXxmzDJ2JALqHH3oEGzpM2U1IGcbfnOr8Dt57z3B/UWs7/iAgPFbmye8m4I0g==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.3.tgz", + "integrity": "sha512-Z/vAH2GGIEATQnBVXMclE2IGV6i0GyVngKThcGZ5kHgHMxLo9Ow2+XHRq1aEKEej5vOF1TPJNbvX6J/anT0M7A==", "dev": true }, "resolve": { @@ -10007,7 +10292,8 @@ "dependencies": { "align-text": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, "requires": { "kind-of": "3.2.2", @@ -10017,17 +10303,20 @@ }, "amdefine": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", "dev": true }, "ansi-regex": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "append-transform": { "version": "0.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", "dev": true, "requires": { "default-require-extensions": "1.0.0" @@ -10035,57 +10324,68 @@ }, "archy": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", "dev": true }, "arr-diff": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, "arr-flatten": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=", "dev": true }, "arr-union": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, "array-unique": { "version": "0.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, "arrify": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, "assign-symbols": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true }, "async": { "version": "1.5.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", "dev": true }, "atob": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", + "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", "dev": true }, "balanced-match": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "base": { "version": "0.11.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", "dev": true, "requires": { "cache-base": "1.0.1", @@ -10099,7 +10399,8 @@ "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { "is-descriptor": "1.0.2" @@ -10107,7 +10408,8 @@ }, "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "dev": true, "requires": { "kind-of": "6.0.2" @@ -10115,7 +10417,8 @@ }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "dev": true, "requires": { "kind-of": "6.0.2" @@ -10123,7 +10426,8 @@ }, "is-descriptor": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", @@ -10133,14 +10437,16 @@ }, "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", "dev": true } } }, "brace-expansion": { "version": "1.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", "dev": true, "requires": { "balanced-match": "1.0.0", @@ -10149,7 +10455,8 @@ }, "braces": { "version": "2.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", "dev": true, "requires": { "arr-flatten": "1.1.0", @@ -10166,7 +10473,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "0.1.1" @@ -10176,12 +10484,14 @@ }, "builtin-modules": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, "cache-base": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", "dev": true, "requires": { "collection-visit": "1.0.0", @@ -10197,7 +10507,8 @@ }, "caching-transform": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", + "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", "dev": true, "requires": { "md5-hex": "1.3.0", @@ -10207,13 +10518,15 @@ }, "camelcase": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", "dev": true, "optional": true }, "center-align": { "version": "0.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "dev": true, "optional": true, "requires": { @@ -10223,7 +10536,8 @@ }, "class-utils": { "version": "0.3.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", "dev": true, "requires": { "arr-union": "3.1.0", @@ -10234,7 +10548,8 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "0.1.6" @@ -10244,7 +10559,8 @@ }, "cliui": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "dev": true, "optional": true, "requires": { @@ -10255,7 +10571,8 @@ "dependencies": { "wordwrap": { "version": "0.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", "dev": true, "optional": true } @@ -10263,12 +10580,14 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, "collection-visit": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { "map-visit": "1.0.0", @@ -10277,32 +10596,38 @@ }, "commondir": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, "component-emitter": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", "dev": true }, "concat-map": { "version": "0.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "convert-source-map": { "version": "1.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", "dev": true }, "copy-descriptor": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true }, "cross-spawn": { "version": "4.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", "dev": true, "requires": { "lru-cache": "4.1.3", @@ -10311,7 +10636,8 @@ }, "debug": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", "dev": true, "requires": { "ms": "2.0.0" @@ -10319,22 +10645,26 @@ }, "debug-log": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", + "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", "dev": true }, "decamelize": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "decode-uri-component": { "version": "0.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, "default-require-extensions": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", "dev": true, "requires": { "strip-bom": "2.0.0" @@ -10342,7 +10672,8 @@ }, "define-property": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", "dev": true, "requires": { "is-descriptor": "1.0.2", @@ -10351,7 +10682,8 @@ "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "dev": true, "requires": { "kind-of": "6.0.2" @@ -10359,7 +10691,8 @@ }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "dev": true, "requires": { "kind-of": "6.0.2" @@ -10367,7 +10700,8 @@ }, "is-descriptor": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", @@ -10377,14 +10711,16 @@ }, "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", "dev": true } } }, "error-ex": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "dev": true, "requires": { "is-arrayish": "0.2.1" @@ -10392,7 +10728,8 @@ }, "execa": { "version": "0.7.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { "cross-spawn": "5.1.0", @@ -10406,7 +10743,8 @@ "dependencies": { "cross-spawn": { "version": "5.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { "lru-cache": "4.1.3", @@ -10418,7 +10756,8 @@ }, "expand-brackets": { "version": "2.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { "debug": "2.6.9", @@ -10432,7 +10771,8 @@ "dependencies": { "debug": { "version": "2.6.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { "ms": "2.0.0" @@ -10440,7 +10780,8 @@ }, "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "0.1.6" @@ -10448,7 +10789,8 @@ }, "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "0.1.1" @@ -10458,7 +10800,8 @@ }, "extend-shallow": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { "assign-symbols": "1.0.0", @@ -10467,7 +10810,8 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", "dev": true, "requires": { "is-plain-object": "2.0.4" @@ -10477,7 +10821,8 @@ }, "extglob": { "version": "2.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", "dev": true, "requires": { "array-unique": "0.3.2", @@ -10492,7 +10837,8 @@ "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { "is-descriptor": "1.0.2" @@ -10500,7 +10846,8 @@ }, "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "0.1.1" @@ -10508,7 +10855,8 @@ }, "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "dev": true, "requires": { "kind-of": "6.0.2" @@ -10516,7 +10864,8 @@ }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "dev": true, "requires": { "kind-of": "6.0.2" @@ -10524,7 +10873,8 @@ }, "is-descriptor": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", @@ -10534,14 +10884,16 @@ }, "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", "dev": true } } }, "fill-range": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { "extend-shallow": "2.0.1", @@ -10552,7 +10904,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "0.1.1" @@ -10562,7 +10915,8 @@ }, "find-cache-dir": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", "dev": true, "requires": { "commondir": "1.0.1", @@ -10572,7 +10926,8 @@ }, "find-up": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { "locate-path": "2.0.0" @@ -10580,12 +10935,14 @@ }, "for-in": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true }, "foreground-child": { "version": "1.5.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", "dev": true, "requires": { "cross-spawn": "4.0.2", @@ -10594,7 +10951,8 @@ }, "fragment-cache": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { "map-cache": "0.2.2" @@ -10602,27 +10960,32 @@ }, "fs.realpath": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "get-caller-file": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", "dev": true }, "get-stream": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true }, "get-value": { "version": "2.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true }, "glob": { "version": "7.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", "dev": true, "requires": { "fs.realpath": "1.0.0", @@ -10635,12 +10998,14 @@ }, "graceful-fs": { "version": "4.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, "handlebars": { "version": "4.0.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { "async": "1.5.2", @@ -10651,7 +11016,8 @@ "dependencies": { "source-map": { "version": "0.4.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { "amdefine": "1.0.1" @@ -10661,7 +11027,8 @@ }, "has-value": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { "get-value": "2.0.6", @@ -10671,7 +11038,8 @@ }, "has-values": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { "is-number": "3.0.0", @@ -10680,7 +11048,8 @@ "dependencies": { "kind-of": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { "is-buffer": "1.1.6" @@ -10690,17 +11059,20 @@ }, "hosted-git-info": { "version": "2.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", + "integrity": "sha1-IyNbKasjDFdqqw1PE/wEawsDgiI=", "dev": true }, "imurmurhash": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { "once": "1.4.0", @@ -10709,17 +11081,20 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "invert-kv": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", "dev": true }, "is-accessor-descriptor": { "version": "0.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { "kind-of": "3.2.2" @@ -10727,17 +11102,20 @@ }, "is-arrayish": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, "is-buffer": { "version": "1.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", "dev": true }, "is-builtin-module": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { "builtin-modules": "1.1.1" @@ -10745,7 +11123,8 @@ }, "is-data-descriptor": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { "kind-of": "3.2.2" @@ -10753,7 +11132,8 @@ }, "is-descriptor": { "version": "0.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", "dev": true, "requires": { "is-accessor-descriptor": "0.1.6", @@ -10763,24 +11143,28 @@ "dependencies": { "kind-of": { "version": "5.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", "dev": true } } }, "is-extendable": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "is-number": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { "kind-of": "3.2.2" @@ -10788,7 +11172,8 @@ }, "is-odd": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha1-dkZiRnH9fqVYzNmieVGC8pWPGyQ=", "dev": true, "requires": { "is-number": "4.0.0" @@ -10796,14 +11181,16 @@ "dependencies": { "is-number": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha1-ACbjf1RU1z41bf5lZGmYZ8an8P8=", "dev": true } } }, "is-plain-object": { "version": "2.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", "dev": true, "requires": { "isobject": "3.0.1" @@ -10811,42 +11198,50 @@ }, "is-stream": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "is-utf8": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, "is-windows": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=", "dev": true }, "isarray": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "isobject": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, "istanbul-lib-coverage": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", + "integrity": "sha1-99jy5CuX43/nlhFMsPnWi146Q0E=", "dev": true }, "istanbul-lib-hook": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", + "integrity": "sha1-hTjZcDcss3FtU+VVI91UtVeo2Js=", "dev": true, "requires": { "append-transform": "0.4.0" @@ -10854,7 +11249,8 @@ }, "istanbul-lib-report": { "version": "1.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz", + "integrity": "sha1-LfEhiMD6d5kMDSF20tC6M5QYglk=", "dev": true, "requires": { "istanbul-lib-coverage": "1.2.0", @@ -10865,12 +11261,14 @@ "dependencies": { "has-flag": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", "dev": true }, "supports-color": { "version": "3.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { "has-flag": "1.0.0" @@ -10880,7 +11278,8 @@ }, "istanbul-lib-source-maps": { "version": "1.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.5.tgz", + "integrity": "sha1-/+a+Tnq4bTYD5CkNVJkLFFBvybE=", "dev": true, "requires": { "debug": "3.1.0", @@ -10892,7 +11291,8 @@ }, "istanbul-reports": { "version": "1.4.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.4.1.tgz", + "integrity": "sha1-Ty6OkoqnoF0dpsQn1AmLJlXsczQ=", "dev": true, "requires": { "handlebars": "4.0.11" @@ -10900,7 +11300,8 @@ }, "kind-of": { "version": "3.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "1.1.6" @@ -10908,13 +11309,15 @@ }, "lazy-cache": { "version": "1.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", "dev": true, "optional": true }, "lcid": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { "invert-kv": "1.0.0" @@ -10922,7 +11325,8 @@ }, "load-json-file": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -10934,7 +11338,8 @@ }, "locate-path": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { "p-locate": "2.0.0", @@ -10943,19 +11348,22 @@ "dependencies": { "path-exists": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true } } }, "longest": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", "dev": true }, "lru-cache": { "version": "4.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha1-oRdc80lt/IQ2wVbDNLSVWZK85pw=", "dev": true, "requires": { "pseudomap": "1.0.2", @@ -10964,12 +11372,14 @@ }, "map-cache": { "version": "0.2.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, "map-visit": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { "object-visit": "1.0.1" @@ -10977,7 +11387,8 @@ }, "md5-hex": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", + "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "dev": true, "requires": { "md5-o-matic": "0.1.1" @@ -10985,12 +11396,14 @@ }, "md5-o-matic": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", + "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=", "dev": true }, "mem": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { "mimic-fn": "1.2.0" @@ -10998,7 +11411,8 @@ }, "merge-source-map": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha1-L93n5gIJOfcJBqaPLXrmheTIxkY=", "dev": true, "requires": { "source-map": "0.6.1" @@ -11006,14 +11420,16 @@ "dependencies": { "source-map": { "version": "0.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", "dev": true } } }, "micromatch": { "version": "3.1.10", - "bundled": true, + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", "dev": true, "requires": { "arr-diff": "4.0.0", @@ -11033,19 +11449,22 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", "dev": true } } }, "mimic-fn": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=", "dev": true }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", "dev": true, "requires": { "brace-expansion": "1.1.11" @@ -11053,12 +11472,14 @@ }, "minimist": { "version": "0.0.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, "mixin-deep": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha1-pJ5yaNzhoNlpjkUybFYm3zVD0P4=", "dev": true, "requires": { "for-in": "1.0.2", @@ -11067,7 +11488,8 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", "dev": true, "requires": { "is-plain-object": "2.0.4" @@ -11077,7 +11499,8 @@ }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { "minimist": "0.0.8" @@ -11085,12 +11508,14 @@ }, "ms": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "nanomatch": { "version": "1.2.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "integrity": "sha1-h59xUMstq3pHElkGbBBO7m4Pp8I=", "dev": true, "requires": { "arr-diff": "4.0.0", @@ -11109,14 +11534,16 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", "dev": true } } }, "normalize-package-data": { "version": "2.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha1-EvlaMH1YNSB1oEkHuErIvpisAS8=", "dev": true, "requires": { "hosted-git-info": "2.6.0", @@ -11127,7 +11554,8 @@ }, "npm-run-path": { "version": "2.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { "path-key": "2.0.1" @@ -11135,17 +11563,20 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, "object-copy": { "version": "0.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { "copy-descriptor": "0.1.1", @@ -11155,7 +11586,8 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "0.1.6" @@ -11165,7 +11597,8 @@ }, "object-visit": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { "isobject": "3.0.1" @@ -11173,7 +11606,8 @@ }, "object.pick": { "version": "1.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { "isobject": "3.0.1" @@ -11181,7 +11615,8 @@ }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { "wrappy": "1.0.2" @@ -11189,7 +11624,8 @@ }, "optimist": { "version": "0.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { "minimist": "0.0.8", @@ -11198,12 +11634,14 @@ }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, "os-locale": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha1-QrwpAKa1uL0XN2yOiCtlr8zyS/I=", "dev": true, "requires": { "execa": "0.7.0", @@ -11213,12 +11651,14 @@ }, "p-finally": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, "p-limit": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", + "integrity": "sha1-DpK2vty1nwIsE9DxlJ3ILRWQnxw=", "dev": true, "requires": { "p-try": "1.0.0" @@ -11226,7 +11666,8 @@ }, "p-locate": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { "p-limit": "1.2.0" @@ -11234,12 +11675,14 @@ }, "p-try": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, "parse-json": { "version": "2.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { "error-ex": "1.3.1" @@ -11247,12 +11690,14 @@ }, "pascalcase": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true }, "path-exists": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { "pinkie-promise": "2.0.1" @@ -11260,22 +11705,26 @@ }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "path-key": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, "path-parse": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", "dev": true }, "path-type": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -11285,17 +11734,20 @@ }, "pify": { "version": "2.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, "pinkie": { "version": "2.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", "dev": true }, "pinkie-promise": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { "pinkie": "2.0.4" @@ -11303,7 +11755,8 @@ }, "pkg-dir": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "dev": true, "requires": { "find-up": "1.1.2" @@ -11311,7 +11764,8 @@ "dependencies": { "find-up": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { "path-exists": "2.1.0", @@ -11322,17 +11776,20 @@ }, "posix-character-classes": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, "pseudomap": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, "read-pkg": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { "load-json-file": "1.1.0", @@ -11342,7 +11799,8 @@ }, "read-pkg-up": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { "find-up": "1.1.2", @@ -11351,7 +11809,8 @@ "dependencies": { "find-up": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { "path-exists": "2.1.0", @@ -11362,7 +11821,8 @@ }, "regex-not": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", "dev": true, "requires": { "extend-shallow": "3.0.2", @@ -11371,42 +11831,50 @@ }, "repeat-element": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", "dev": true }, "repeat-string": { "version": "1.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, "require-directory": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, "require-main-filename": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", "dev": true }, "resolve-from": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", "dev": true }, "resolve-url": { "version": "0.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, "ret": { "version": "0.1.15", - "bundled": true, + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=", "dev": true }, "right-align": { "version": "0.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "dev": true, "optional": true, "requires": { @@ -11415,7 +11883,8 @@ }, "rimraf": { "version": "2.6.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha1-LtgVDSShbqhlHm1u8PR8QVjOejY=", "dev": true, "requires": { "glob": "7.1.2" @@ -11423,7 +11892,8 @@ }, "safe-regex": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { "ret": "0.1.15" @@ -11431,17 +11901,20 @@ }, "semver": { "version": "5.5.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha1-3Eu8emyp2Rbe5dQ1FvAJK1j3uKs=", "dev": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, "set-value": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha1-ca5KiPD+77v1LR6mBPP7MV67YnQ=", "dev": true, "requires": { "extend-shallow": "2.0.1", @@ -11452,7 +11925,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "0.1.1" @@ -11462,7 +11936,8 @@ }, "shebang-command": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { "shebang-regex": "1.0.0" @@ -11470,22 +11945,26 @@ }, "shebang-regex": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, "slide": { "version": "1.1.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", "dev": true }, "snapdragon": { "version": "0.8.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", "dev": true, "requires": { "base": "0.11.2", @@ -11500,7 +11979,8 @@ "dependencies": { "debug": { "version": "2.6.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { "ms": "2.0.0" @@ -11508,7 +11988,8 @@ }, "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "0.1.6" @@ -11516,7 +11997,8 @@ }, "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "0.1.1" @@ -11526,7 +12008,8 @@ }, "snapdragon-node": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", "dev": true, "requires": { "define-property": "1.0.0", @@ -11536,7 +12019,8 @@ "dependencies": { "define-property": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { "is-descriptor": "1.0.2" @@ -11544,7 +12028,8 @@ }, "is-accessor-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "dev": true, "requires": { "kind-of": "6.0.2" @@ -11552,7 +12037,8 @@ }, "is-data-descriptor": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "dev": true, "requires": { "kind-of": "6.0.2" @@ -11560,7 +12046,8 @@ }, "is-descriptor": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "dev": true, "requires": { "is-accessor-descriptor": "1.0.0", @@ -11570,14 +12057,16 @@ }, "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", "dev": true } } }, "snapdragon-util": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", "dev": true, "requires": { "kind-of": "3.2.2" @@ -11585,12 +12074,14 @@ }, "source-map": { "version": "0.5.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, "source-map-resolve": { "version": "0.5.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha1-cuLMNAlVQ+Q7LGKyxMENSpBU8lk=", "dev": true, "requires": { "atob": "2.1.1", @@ -11602,12 +12093,14 @@ }, "source-map-url": { "version": "0.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, "spawn-wrap": { "version": "1.4.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", + "integrity": "sha1-z/WOc6giRhe2Vhq9wyWG6gyCJIw=", "dev": true, "requires": { "foreground-child": "1.5.6", @@ -11620,7 +12113,8 @@ }, "spdx-correct": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha1-BaW01xU6GVvJLDxCW2nzsqlSTII=", "dev": true, "requires": { "spdx-expression-parse": "3.0.0", @@ -11629,12 +12123,14 @@ }, "spdx-exceptions": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha1-LHrmEFbHFKW5ubKyr30xHvXHj+k=", "dev": true }, "spdx-expression-parse": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=", "dev": true, "requires": { "spdx-exceptions": "2.1.0", @@ -11643,12 +12139,14 @@ }, "spdx-license-ids": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha1-enzShHDMbToc/m1miG9rxDDTrIc=", "dev": true }, "split-string": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", "dev": true, "requires": { "extend-shallow": "3.0.2" @@ -11656,7 +12154,8 @@ }, "static-extend": { "version": "0.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { "define-property": "0.2.5", @@ -11665,7 +12164,8 @@ "dependencies": { "define-property": { "version": "0.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "0.1.6" @@ -11675,7 +12175,8 @@ }, "string-width": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", "dev": true, "requires": { "is-fullwidth-code-point": "2.0.0", @@ -11684,7 +12185,8 @@ }, "strip-ansi": { "version": "4.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { "ansi-regex": "3.0.0" @@ -11692,7 +12194,8 @@ }, "strip-bom": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { "is-utf8": "0.2.1" @@ -11700,12 +12203,14 @@ }, "strip-eof": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, "test-exclude": { "version": "4.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", + "integrity": "sha1-36Ii8DSAvKaSB8pyizfXS0X3JPo=", "dev": true, "requires": { "arrify": "1.0.1", @@ -11717,7 +12222,8 @@ }, "to-object-path": { "version": "0.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { "kind-of": "3.2.2" @@ -11725,7 +12231,8 @@ }, "to-regex": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", "dev": true, "requires": { "define-property": "2.0.2", @@ -11736,7 +12243,8 @@ }, "to-regex-range": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { "is-number": "3.0.0", @@ -11745,7 +12253,8 @@ }, "uglify-js": { "version": "2.8.29", - "bundled": true, + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "dev": true, "optional": true, "requires": { @@ -11756,7 +12265,8 @@ "dependencies": { "yargs": { "version": "3.10.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "dev": true, "optional": true, "requires": { @@ -11770,13 +12280,15 @@ }, "uglify-to-browserify": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", "dev": true, "optional": true }, "union-value": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "dev": true, "requires": { "arr-union": "3.1.0", @@ -11787,7 +12299,8 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "0.1.1" @@ -11795,7 +12308,8 @@ }, "set-value": { "version": "0.4.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "dev": true, "requires": { "extend-shallow": "2.0.1", @@ -11808,7 +12322,8 @@ }, "unset-value": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { "has-value": "0.3.1", @@ -11817,7 +12332,8 @@ "dependencies": { "has-value": { "version": "0.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { "get-value": "2.0.6", @@ -11827,7 +12343,8 @@ "dependencies": { "isobject": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "requires": { "isarray": "1.0.0" @@ -11837,19 +12354,22 @@ }, "has-values": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true } } }, "urix": { "version": "0.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, "use": { "version": "3.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha1-FHFr8D/f79AwQK71jYtLhfOnxUQ=", "dev": true, "requires": { "kind-of": "6.0.2" @@ -11857,14 +12377,16 @@ "dependencies": { "kind-of": { "version": "6.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", "dev": true } } }, "validate-npm-package-license": { "version": "3.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", + "integrity": "sha1-gWQ7y+8b3+zUYjeT3EZIlIupgzg=", "dev": true, "requires": { "spdx-correct": "3.0.0", @@ -11873,7 +12395,8 @@ }, "which": { "version": "1.3.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", "dev": true, "requires": { "isexe": "2.0.0" @@ -11881,23 +12404,27 @@ }, "which-module": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, "window-size": { "version": "0.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", "dev": true }, "wrap-ansi": { "version": "2.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { "string-width": "1.0.2", @@ -11906,12 +12433,14 @@ "dependencies": { "ansi-regex": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { "number-is-nan": "1.0.1" @@ -11919,7 +12448,8 @@ }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { "code-point-at": "1.1.0", @@ -11929,7 +12459,8 @@ }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { "ansi-regex": "2.1.1" @@ -11939,12 +12470,14 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "write-file-atomic": { "version": "1.3.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", + "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -11954,17 +12487,20 @@ }, "y18n": { "version": "3.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", "dev": true }, "yallist": { "version": "2.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, "yargs": { "version": "11.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", + "integrity": "sha1-kLhpk07W6HERXqL/WLA/RyTtLXc=", "dev": true, "requires": { "cliui": "4.1.0", @@ -11983,12 +12519,14 @@ "dependencies": { "camelcase": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true }, "cliui": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha1-NIQi2+gtgAswIu709qwQvy5NG0k=", "dev": true, "requires": { "string-width": "2.1.1", @@ -11998,7 +12536,8 @@ }, "yargs-parser": { "version": "9.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", + "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "dev": true, "requires": { "camelcase": "4.1.0" @@ -12008,7 +12547,8 @@ }, "yargs-parser": { "version": "8.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", + "integrity": "sha1-8TdqM7Ziml0GN4KUTacyYx6WaVA=", "dev": true, "requires": { "camelcase": "4.1.0" @@ -12016,7 +12556,8 @@ "dependencies": { "camelcase": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true } } @@ -13755,7 +14296,7 @@ "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", "dev": true, "requires": { - "buffer-from": "1.1.0", + "buffer-from": "1.1.1", "source-map": "0.6.1" }, "dependencies": { diff --git a/handwritten/error-reporting/src/index.ts b/handwritten/error-reporting/src/index.ts index 0cac6c121c0..97f61377036 100644 --- a/handwritten/error-reporting/src/index.ts +++ b/handwritten/error-reporting/src/index.ts @@ -25,6 +25,7 @@ import {RequestHandler as AuthClient} from './google-apis/auth-client'; import * as expressInterface from './interfaces/express'; import * as hapiInterface from './interfaces/hapi'; import * as koaInterface from './interfaces/koa'; +import * as koa2Interface from './interfaces/koa2'; import * as manualInterface from './interfaces/manual'; import * as messageBuilderInterface from './interfaces/message-builder'; import * as restifyInterface from './interfaces/restify'; @@ -108,6 +109,8 @@ export class ErrorReporting { restify: (server: {}) => RestifyRequestHandler | RestifyRequestHandler[]; // tslint:disable-next-line:no-any koa: (context: any, next: {}) => IterableIterator<{}>; + // tslint:disable-next-line:no-any + koa2: (context: any, next: {}) => Promise; constructor(initConfiguration?: ConfigurationOptions) { if (!(this instanceof ErrorReporting)) { @@ -120,7 +123,7 @@ export class ErrorReporting { if (this._config.getReportUnhandledRejections()) { const that = this; - process.on('unhandledRejection', (reason) => { + process.on('unhandledRejection', reason => { that._logger.warn( 'UnhandledPromiseRejectionWarning: ' + 'Unhandled promise rejection: ' + reason + @@ -187,11 +190,22 @@ export class ErrorReporting { /** * @example + * // for Koa@1 * const koa = require('koa'); * const app = koa(); * // BEFORE ALL OTHER ROUTE HANDLERS HANDLERS * app.use(errors.koa); */ this.koa = koaInterface.koaErrorHandler(this._client, this._config); + + /** + * @example + * // for Koa@2 + * const koa = require('koa'); + * const app = koa(); + * // BEFORE ALL OTHER ROUTE HANDLERS HANDLERS + * app.use(errors.koa2); + */ + this.koa2 = koa2Interface.koa2ErrorHandler(this._client, this._config); } } diff --git a/handwritten/error-reporting/src/interfaces/koa2.ts b/handwritten/error-reporting/src/interfaces/koa2.ts new file mode 100644 index 00000000000..44f71c71766 --- /dev/null +++ b/handwritten/error-reporting/src/interfaces/koa2.ts @@ -0,0 +1,69 @@ +/** + * Copyright 2018 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import {Request, Response} from 'koa'; + +import {ErrorMessage} from '../classes/error-message'; +import {Configuration} from '../configuration'; +import {RequestHandler} from '../google-apis/auth-client'; +import {populateErrorMessage} from '../populate-error-message'; +import {koaRequestInformationExtractor} from '../request-extractors/koa'; + +type KoaContext = { + request: Request; response: Response +}; +type KoaNext = {}; + +/** + * The koaErrorHandler should be placed at the beginning of the koa middleware + * stack and should catch the awaited output of the request handling chain. The + * Koa error handler returns the actual error handler which will be used in the + * request chain handling and this function corresponds to the format given in: + * https://github.com/koajs/koa/wiki/Error-Handling. + * @function koaErrorHandler + * @param {AuthClient} - The API client instance to report errors to Stackdriver + * @param {NormalizedConfigurationVariables} - The application configuration + * @returns {Function} - The function used to catch errors yielded by downstream + * request handlers. + */ +export function koa2ErrorHandler( + client: RequestHandler, config: Configuration) { + /** + * The actual error handler for the Koa plugin attempts to await the results + * of downstream request handlers and will attempt to catch errors emitted by + * these handlers. + * @param {Object} ctx - the result of the request handlers to await + * @param {Function} next - the result of the request handlers to await + * @returns {Undefined} does not return anything + */ + + return async (ctx: KoaContext, next: KoaNext) => { + const svc = config.getServiceContext(); + + try { + await next; + } catch (err) { + const em = new ErrorMessage() + .consumeRequestInformation(koaRequestInformationExtractor( + ctx.request, ctx.response)) + .setServiceContext(svc.service, svc.version); + + populateErrorMessage(err, em); + + client.sendError(em); + } + }; +} diff --git a/handwritten/error-reporting/system-test/test-install.ts b/handwritten/error-reporting/system-test/test-install.ts index c84285401c0..c3957d80e26 100644 --- a/handwritten/error-reporting/system-test/test-install.ts +++ b/handwritten/error-reporting/system-test/test-install.ts @@ -16,20 +16,32 @@ import * as check from 'post-install-check'; +// Used to easily debug specific tests if necessary. +// Otherwise, no tests should be skipped. +const SKIP = { + base: false, + express: false, + hapi: {sixteen: false, seventeen: false}, + koa: {one: false, two: false}, + restify: false +}; + const TS_CODE_ARRAY: check.CodeSample[] = [ { code: `import * as errorReporting from '@google-cloud/error-reporting'; new errorReporting.ErrorReporting();`, description: 'imports the module using * syntax', dependencies: [], - devDependencies: [] + devDependencies: [], + skip: SKIP.base }, { code: `import {ErrorReporting} from '@google-cloud/error-reporting'; new ErrorReporting();`, description: 'imports the module with {} syntax', dependencies: [], - devDependencies: [] + devDependencies: [], + skip: SKIP.base }, { code: `import {ErrorReporting} from '@google-cloud/error-reporting'; @@ -41,7 +53,8 @@ new ErrorReporting({ description: 'imports the module and starts with a partial `serviceContext`', dependencies: [], - devDependencies: [] + devDependencies: [], + skip: SKIP.base }, { code: `import {ErrorReporting} from '@google-cloud/error-reporting'; @@ -55,7 +68,8 @@ new ErrorReporting({ description: 'imports the module and starts with a complete `serviceContext`', dependencies: [], - devDependencies: [] + devDependencies: [], + skip: SKIP.base }, { code: `import * as express from 'express'; @@ -78,7 +92,8 @@ app.use(errors.express); `, description: 'uses express', dependencies: ['express'], - devDependencies: ['@types/express'] + devDependencies: ['@types/express'], + skip: SKIP.express }, { code: `import * as hapi from 'hapi'; @@ -102,7 +117,8 @@ server.register(errors.hapi); `, description: 'uses hapi16', dependencies: ['hapi@16.x.x'], - devDependencies: ['@types/hapi@16.x.x'] + devDependencies: ['@types/hapi@16.x.x'], + skip: SKIP.hapi.sixteen }, { code: `import * as hapi from 'hapi'; @@ -131,7 +147,8 @@ start().catch(console.error); `, description: 'uses hapi17', dependencies: ['hapi@17.x.x'], - devDependencies: ['@types/hapi@17.x.x'] + devDependencies: ['@types/hapi@17.x.x'], + skip: SKIP.hapi.seventeen }, { code: `import * as Koa from 'koa'; @@ -153,9 +170,35 @@ app.use(function *(this: any): IterableIterator { this.body = 'Hello World'; }); `, - description: 'uses koa', + description: 'uses koa1', dependencies: ['koa@1.x.x'], - devDependencies: ['@types/koa'] + devDependencies: ['@types/koa'], + skip: SKIP.koa.one + }, + { + code: `import * as Koa from 'koa'; + +import {ErrorReporting} from '@google-cloud/error-reporting'; +const errors = new ErrorReporting(); + +const app = new Koa(); + +app.use(errors.koa2); + +app.use(async (ctx: Koa.Context, next: {}) => { + //This will set status and message + ctx.throw('Error Message', 500); +}); + +// response +app.use(async (ctx: Koa.Context, next: {}): Promise => { + ctx.body = 'Hello World'; +}); +`, + description: 'uses koa2', + dependencies: ['koa@2.x.x'], + devDependencies: ['@types/koa@2.x.x'], + skip: SKIP.koa.two }, { code: `import * as restify from 'restify'; @@ -175,8 +218,9 @@ server.head('/hello/:name', respond); `, description: 'uses restify', dependencies: ['restify'], - devDependencies: ['@types/restify'] - } + devDependencies: ['@types/restify'], + skip: SKIP.restify + }, ]; const JS_CODE_ARRAY: check.CodeSample[] = [ @@ -186,7 +230,8 @@ const JS_CODE_ARRAY: check.CodeSample[] = [ new ErrorReporting();`, description: 'requires the module using Node 4+ syntax', dependencies: [], - devDependencies: [] + devDependencies: [], + skip: SKIP.base }, { code: @@ -199,7 +244,8 @@ new ErrorReporting({ description: 'requires the module and starts with a partial `serviceContext`', dependencies: [], - devDependencies: [] + devDependencies: [], + skip: SKIP.base }, { code: @@ -214,7 +260,8 @@ new ErrorReporting({ description: 'requires the module and starts with a complete `serviceContext`', dependencies: [], - devDependencies: [] + devDependencies: [], + skip: SKIP.base }, { code: `const express = require('express'); @@ -239,7 +286,8 @@ app.use(errors.express); `, description: 'uses express', dependencies: ['express'], - devDependencies: [] + devDependencies: [], + skip: SKIP.express }, { code: `const hapi = require('hapi'); @@ -263,7 +311,8 @@ server.register(errors.hapi); `, description: 'uses hapi16', dependencies: ['hapi@16.x.x'], - devDependencies: [] + devDependencies: [], + skip: SKIP.hapi.sixteen }, { code: `const hapi = require('hapi'); @@ -292,7 +341,8 @@ start().catch(console.error); `, description: 'uses hapi17', dependencies: ['hapi@17.x.x'], - devDependencies: [] + devDependencies: [], + skip: SKIP.hapi.seventeen }, { code: `const Koa = require('koa'); @@ -314,9 +364,35 @@ app.use(function *(){ this.body = 'Hello World'; }); `, - description: 'uses koa', + description: 'uses koa1', dependencies: ['koa@1.x.x'], - devDependencies: [] + devDependencies: [], + skip: SKIP.koa.one + }, + { + code: `const Koa = require('koa'); + +const ErrorReporting = require('@google-cloud/error-reporting').ErrorReporting; +const errors = new ErrorReporting(); + +const app = new Koa(); + +app.use(errors.koa2); + +app.use(async (ctx, next) => { + //This will set status and message + ctx.throw('Error Message', 500); +}); + +// response +app.use(async (ctx, next) => { + ctx.body = 'Hello World'; +}); +`, + description: 'uses koa2', + dependencies: ['koa@2.x.x'], + devDependencies: [], + skip: SKIP.koa.two }, { code: `const restify = require('restify'); @@ -336,8 +412,9 @@ server.head('/hello/:name', respond); `, description: 'uses restify', dependencies: ['restify'], - devDependencies: [] - } + devDependencies: [], + skip: SKIP.restify + }, ]; check.testInstallation(TS_CODE_ARRAY, JS_CODE_ARRAY, {timeout: 2 * 60 * 1000}); diff --git a/handwritten/error-reporting/test/test-servers/koa2_scaffold_server.ts b/handwritten/error-reporting/test/test-servers/koa2_scaffold_server.ts new file mode 100644 index 00000000000..e9870f895eb --- /dev/null +++ b/handwritten/error-reporting/test/test-servers/koa2_scaffold_server.ts @@ -0,0 +1,59 @@ +/** + * Copyright 2016 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// jscs doesn't understand koa.. +// jscs:disable + +import {ErrorReporting} from '../../src'; +const errorHandler = new ErrorReporting({ + // TODO: Address the fact that this configuration + // option is now invalid. + onUncaughtException: 'report', +} as {}); +import * as Koa from 'koa'; +const app = new Koa(); + +app.use(errorHandler.koa); + +app.use(async (ctx: {throw: Function}, next: {}) => { + // This will set status and message + ctx.throw('Error Message', 500); + await next; +}); + +app.use(async (ctx: {set: Function}, next: {}) => { + const start = Date.now(); + await next; + const ms = Date.now() - start; + ctx.set('X-Response-Time', ms + 'ms'); +}); + +// logger + +app.use(async (ctx: {method: {}; url: {}}, next: {}) => { + const start = Date.now(); + await next; + const ms = Date.now() - start; + // eslint-disable-next-line no-console + console.log('%s %s - %s', ctx.method, ctx.url, ms); +}); + +// response +app.use(async (ctx: {body: string}, next: {}) => { + ctx.body = 'Hello World'; + await next; +}); + +app.listen(3000); From 02ad21d5da374bcd3dc47229ea7f305d2ef54e8d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Mon, 6 Aug 2018 19:07:21 -0700 Subject: [PATCH 143/527] chore(deps): lock file maintenance (#191) --- handwritten/error-reporting/package-lock.json | 7120 ++++++++--------- 1 file changed, 3287 insertions(+), 3833 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index adb86eb606f..13fea18c482 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -16,18 +16,18 @@ "integrity": "sha512-oWqTnIGXW3k72UFidXzW0ONlO7hnO9x02S/QReJ7NBGeiBH9cUHY9+EfV6C8PXC6YJH++WrliEq03wMSJGNZFg==", "dev": true, "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "package-hash": "1.2.0" + "babel-plugin-check-es2015-constants": "^6.8.0", + "babel-plugin-syntax-trailing-function-commas": "^6.20.0", + "babel-plugin-transform-async-to-generator": "^6.16.0", + "babel-plugin-transform-es2015-destructuring": "^6.19.0", + "babel-plugin-transform-es2015-function-name": "^6.9.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.18.0", + "babel-plugin-transform-es2015-parameters": "^6.21.0", + "babel-plugin-transform-es2015-spread": "^6.8.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.8.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.11.0", + "babel-plugin-transform-exponentiation-operator": "^6.8.0", + "package-hash": "^1.2.0" }, "dependencies": { "md5-hex": { @@ -36,7 +36,7 @@ "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "package-hash": { @@ -45,7 +45,7 @@ "integrity": "sha1-AD5WzVe3NqbtYRTMK4FUJnJ3DkQ=", "dev": true, "requires": { - "md5-hex": "1.3.0" + "md5-hex": "^1.3.0" } } } @@ -56,8 +56,8 @@ "integrity": "sha1-ze0RlqjY2TgaUJJAq5LpGl7Aafc=", "dev": true, "requires": { - "@ava/babel-plugin-throws-helper": "2.0.0", - "babel-plugin-espower": "2.4.0" + "@ava/babel-plugin-throws-helper": "^2.0.0", + "babel-plugin-espower": "^2.3.2" } }, "@ava/write-file-atomic": { @@ -66,9 +66,9 @@ "integrity": "sha512-BTNB3nGbEfJT+69wuqXFr/bQH7Vr7ihx2xGOMNqPgDGhwspoZhiWumDDZNjBy7AScmqS5CELIOGtPVXESyrnDA==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, "@babel/code-frame": { @@ -87,10 +87,10 @@ "dev": true, "requires": { "@babel/types": "7.0.0-beta.51", - "jsesc": "2.5.1", - "lodash": "4.17.5", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "jsesc": "^2.5.1", + "lodash": "^4.17.5", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" }, "dependencies": { "jsesc": { @@ -136,9 +136,9 @@ "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=", "dev": true, "requires": { - "chalk": "2.4.1", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^3.0.0" } }, "@babel/parser": { @@ -156,7 +156,7 @@ "@babel/code-frame": "7.0.0-beta.51", "@babel/parser": "7.0.0-beta.51", "@babel/types": "7.0.0-beta.51", - "lodash": "4.17.5" + "lodash": "^4.17.5" } }, "@babel/traverse": { @@ -171,10 +171,10 @@ "@babel/helper-split-export-declaration": "7.0.0-beta.51", "@babel/parser": "7.0.0-beta.51", "@babel/types": "7.0.0-beta.51", - "debug": "3.1.0", - "globals": "11.7.0", - "invariant": "2.2.4", - "lodash": "4.17.5" + "debug": "^3.1.0", + "globals": "^11.1.0", + "invariant": "^2.2.0", + "lodash": "^4.17.5" }, "dependencies": { "globals": { @@ -191,9 +191,9 @@ "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=", "dev": true, "requires": { - "esutils": "2.0.2", - "lodash": "4.17.5", - "to-fast-properties": "2.0.0" + "esutils": "^2.0.2", + "lodash": "^4.17.5", + "to-fast-properties": "^2.0.0" }, "dependencies": { "to-fast-properties": { @@ -210,7 +210,7 @@ "integrity": "sha512-htrsRaQX8Iixlsek8zQU7tE8wcsTQJ5UhZkSPEA8slCDAisKpC/2VgU/ucPn32M5/LjGGXRaUEKvEw1Wiuu4zQ==", "dev": true, "requires": { - "arrify": "1.0.1" + "arrify": "^1.0.1" } }, "@google-cloud/common": { @@ -218,21 +218,21 @@ "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.20.3.tgz", "integrity": "sha512-jt8/R4EqDTQccv5WA9AEaS65llM5+mlxsuWu57G5Os8HTIpgPbcsOVMUeIvmTrBuPUYSoRIMW8d/pvv/95n0+g==", "requires": { - "@types/duplexify": "3.5.0", - "@types/request": "2.47.1", - "arrify": "1.0.1", - "axios": "0.18.0", - "duplexify": "3.6.0", - "ent": "2.2.0", - "extend": "3.0.2", - "google-auth-library": "1.6.1", - "is": "3.2.1", - "pify": "3.0.0", - "request": "2.87.0", - "retry-request": "4.0.0", - "split-array-stream": "2.0.0", - "stream-events": "1.0.4", - "through2": "2.0.3" + "@types/duplexify": "^3.5.0", + "@types/request": "^2.47.0", + "arrify": "^1.0.1", + "axios": "^0.18.0", + "duplexify": "^3.6.0", + "ent": "^2.2.0", + "extend": "^3.0.1", + "google-auth-library": "^1.6.0", + "is": "^3.2.1", + "pify": "^3.0.0", + "request": "^2.87.0", + "retry-request": "^4.0.0", + "split-array-stream": "^2.0.0", + "stream-events": "^1.0.4", + "through2": "^2.0.3" } }, "@google-cloud/nodejs-repo-tools": { @@ -249,7 +249,7 @@ "lodash": "4.17.5", "nyc": "11.7.2", "proxyquire": "1.8.0", - "semver": "5.5.0", + "semver": "^5.5.0", "sinon": "6.0.1", "string": "3.3.3", "supertest": "3.1.0", @@ -263,431 +263,389 @@ "integrity": "sha512-gBt7qwsR1vryYfglVjQRx1D+AtMZW5NbUKxb+lZe8SN8KsheGCPGWEsSC9AGQG+r2+te1+10uPHUCahuqm1nGQ==", "dev": true, "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "1.0.1", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "default-require-extensions": "1.0.0", - "find-cache-dir": "0.1.1", - "find-up": "2.1.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "1.10.1", - "istanbul-lib-report": "1.1.3", - "istanbul-lib-source-maps": "1.2.3", - "istanbul-reports": "1.4.0", - "md5-hex": "1.3.0", - "merge-source-map": "1.1.0", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "resolve-from": "2.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "4.2.1", + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.5.1", + "debug-log": "^1.0.1", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^2.1.0", + "foreground-child": "^1.5.3", + "glob": "^7.0.6", + "istanbul-lib-coverage": "^1.1.2", + "istanbul-lib-hook": "^1.1.0", + "istanbul-lib-instrument": "^1.10.0", + "istanbul-lib-report": "^1.1.3", + "istanbul-lib-source-maps": "^1.2.3", + "istanbul-reports": "^1.4.0", + "md5-hex": "^1.2.0", + "merge-source-map": "^1.1.0", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.1", + "spawn-wrap": "^1.4.2", + "test-exclude": "^4.2.0", "yargs": "11.1.0", - "yargs-parser": "8.1.0" + "yargs-parser": "^8.0.0" }, "dependencies": { "align-text": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" } }, "amdefine": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "bundled": true, "dev": true }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "bundled": true, "dev": true }, "ansi-styles": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "bundled": true, "dev": true }, "append-transform": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "bundled": true, "dev": true, "requires": { - "default-require-extensions": "1.0.0" + "default-require-extensions": "^1.0.0" } }, "archy": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "bundled": true, "dev": true }, "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "bundled": true, "dev": true }, "arr-flatten": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "bundled": true, "dev": true }, "arr-union": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "bundled": true, "dev": true }, "array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "bundled": true, "dev": true }, "arrify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "bundled": true, "dev": true }, "assign-symbols": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "bundled": true, "dev": true }, "async": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "bundled": true, "dev": true }, "atob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", - "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", + "bundled": true, "dev": true }, "babel-code-frame": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "bundled": true, "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" } }, "babel-generator": { "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "bundled": true, "dev": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" } }, "babel-messages": { "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "bundled": true, "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-runtime": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "bundled": true, "dev": true, "requires": { - "core-js": "2.5.6", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "bundled": true, "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "bundled": true, "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.10" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, "babel-types": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "bundled": true, "dev": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "bundled": true, "dev": true }, "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "bundled": true, "dev": true }, "base": { "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "bundled": true, "dev": true, "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true } } }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "bundled": true, "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "braces": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "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.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "bundled": true, + "dev": true, + "requires": { + "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.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "builtin-modules": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "bundled": true, "dev": true }, "cache-base": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "bundled": true, "dev": true, "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" } }, "caching-transform": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", - "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", + "bundled": true, "dev": true, "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" } }, "camelcase": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "bundled": true, "dev": true, "optional": true }, "center-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "bundled": true, "dev": true, "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chalk": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "bundled": true, "dev": true, "requires": { - "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" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "class-utils": { "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "bundled": true, "dev": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } }, "cliui": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "bundled": true, "dev": true, "optional": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" }, "dependencies": { "wordwrap": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "bundled": true, "dev": true, "optional": true } @@ -695,70 +653,60 @@ }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "bundled": true, "dev": true }, "collection-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "bundled": true, "dev": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "bundled": true, "dev": true }, "component-emitter": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "bundled": true, "dev": true }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "bundled": true, "dev": true }, "convert-source-map": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "bundled": true, "dev": true }, "copy-descriptor": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "bundled": true, "dev": true }, "core-js": { "version": "2.5.6", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.6.tgz", - "integrity": "sha512-lQUVfQi0aLix2xpyjrrJEvfuYCqPc/HwmTKsC/VNf8q0zsjX7SQZtp4+oRONN5Tsur9GDETPjj+Ub2iDiGZfSQ==", + "bundled": true, "dev": true }, "cross-spawn": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.3", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "bundled": true, "dev": true, "requires": { "ms": "2.0.0" @@ -766,714 +714,633 @@ }, "debug-log": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", - "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", + "bundled": true, "dev": true }, "decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "bundled": true, "dev": true }, "decode-uri-component": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "bundled": true, "dev": true }, "default-require-extensions": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "bundled": true, "dev": true, "requires": { - "strip-bom": "2.0.0" + "strip-bom": "^2.0.0" } }, "define-property": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "bundled": true, "dev": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true } } }, "detect-indent": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "bundled": true, "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "error-ex": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "bundled": true, "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "bundled": true, "dev": true }, "esutils": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "bundled": true, "dev": true }, "execa": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "bundled": true, "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" }, "dependencies": { "cross-spawn": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } } } }, "expand-brackets": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "bundled": true, "dev": true, "requires": { - "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" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "extend-shallow": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "bundled": true, "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "bundled": true, "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } }, "extglob": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "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" + "bundled": true, + "dev": true, + "requires": { + "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.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true } } }, "fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "bundled": true, "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "find-cache-dir": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "bundled": true, "dev": true, "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" } }, "find-up": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "bundled": true, "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "for-in": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "bundled": true, "dev": true }, "foreground-child": { "version": "1.5.6", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", - "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "bundled": true, "dev": true, "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" + "cross-spawn": "^4", + "signal-exit": "^3.0.0" } }, "fragment-cache": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "bundled": true, "dev": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "bundled": true, "dev": true }, "get-caller-file": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "bundled": true, "dev": true }, "get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "bundled": true, "dev": true }, "get-value": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "bundled": true, "dev": true }, "glob": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "bundled": true, "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "globals": { "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "bundled": true, "dev": true }, "graceful-fs": { "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "bundled": true, "dev": true }, "handlebars": { "version": "4.0.11", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", - "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "bundled": true, "dev": true, "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" }, "dependencies": { "source-map": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "bundled": true, "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } }, "has-ansi": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "bundled": true, "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "bundled": true, "dev": true }, "has-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "bundled": true, "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" } }, "has-values": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "bundled": true, "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "kind-of": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "hosted-git-info": { "version": "2.6.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", - "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", + "bundled": true, "dev": true }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "bundled": true, "dev": true }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "bundled": true, "dev": true }, "invariant": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "bundled": true, "dev": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "bundled": true, "dev": true }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "bundled": true, "dev": true }, "is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "bundled": true, "dev": true }, "is-builtin-module": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "bundled": true, "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "bundled": true, "dev": true } } }, "is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "bundled": true, "dev": true }, "is-finite": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "bundled": true, "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "bundled": true, "dev": true }, "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-odd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", - "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "bundled": true, "dev": true, "requires": { - "is-number": "4.0.0" + "is-number": "^4.0.0" }, "dependencies": { "is-number": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "bundled": true, "dev": true } } }, "is-plain-object": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "bundled": true, "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "is-stream": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "bundled": true, "dev": true }, "is-utf8": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "bundled": true, "dev": true }, "is-windows": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "bundled": true, "dev": true }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "bundled": true, "dev": true }, "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "bundled": true, "dev": true }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true }, "istanbul-lib-coverage": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", - "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==", + "bundled": true, "dev": true }, "istanbul-lib-hook": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", - "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", + "bundled": true, "dev": true, "requires": { - "append-transform": "0.4.0" + "append-transform": "^0.4.0" } }, "istanbul-lib-instrument": { "version": "1.10.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", - "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", + "bundled": true, "dev": true, "requires": { - "babel-generator": "6.26.1", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.2.0", - "semver": "5.5.0" + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.0", + "semver": "^5.3.0" } }, "istanbul-lib-report": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz", - "integrity": "sha512-D4jVbMDtT2dPmloPJS/rmeP626N5Pr3Rp+SovrPn1+zPChGHcggd/0sL29jnbm4oK9W0wHjCRsdch9oLd7cm6g==", + "bundled": true, "dev": true, "requires": { - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" }, "dependencies": { "supports-color": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "bundled": true, "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } }, "istanbul-lib-source-maps": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz", - "integrity": "sha512-fDa0hwU/5sDXwAklXgAoCJCOsFsBplVQ6WBldz5UwaqOzmDhUK4nfuR7/G//G2lERlblUNJB8P6e8cXq3a7MlA==", + "bundled": true, "dev": true, "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" }, "dependencies": { "debug": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "bundled": true, "dev": true, "requires": { "ms": "2.0.0" @@ -1483,243 +1350,215 @@ }, "istanbul-reports": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.4.0.tgz", - "integrity": "sha512-OPzVo1fPZ2H+owr8q/LYKLD+vquv9Pj4F+dj808MdHbuQLD7S4ACRjcX+0Tne5Vxt2lxXvdZaL7v+FOOAV281w==", + "bundled": true, "dev": true, "requires": { - "handlebars": "4.0.11" + "handlebars": "^4.0.3" } }, "js-tokens": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "bundled": true, "dev": true }, "jsesc": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "bundled": true, "dev": true }, "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lazy-cache": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "bundled": true, "dev": true, "optional": true }, "lcid": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "bundled": true, "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "load-json-file": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" } }, "locate-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "bundled": true, "dev": true, "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" }, "dependencies": { "path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "bundled": true, "dev": true } } }, "lodash": { "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", + "bundled": true, "dev": true }, "longest": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "bundled": true, "dev": true }, "loose-envify": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "bundled": true, "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "lru-cache": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "bundled": true, "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "map-cache": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "bundled": true, "dev": true }, "map-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "bundled": true, "dev": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "md5-hex": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", - "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", + "bundled": true, "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", - "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=", + "bundled": true, "dev": true }, "mem": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "bundled": true, "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "merge-source-map": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "bundled": true, "dev": true, "requires": { - "source-map": "0.6.1" + "source-map": "^0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "bundled": true, "dev": true } } }, "micromatch": { "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "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.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "bundled": true, + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true } } }, "mimic-fn": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "bundled": true, "dev": true }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "bundled": true, "dev": true }, "mixin-deep": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "bundled": true, "dev": true, "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "bundled": true, "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "dev": true, "requires": { "minimist": "0.0.8" @@ -1727,812 +1566,719 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "bundled": true, "dev": true }, "nanomatch": { "version": "1.2.9", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", - "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", - "dev": true, - "requires": { - "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-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "bundled": true, + "dev": true, + "requires": { + "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-odd": "^2.0.0", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true } } }, "normalize-package-data": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "bundled": true, "dev": true, "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "npm-run-path": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "bundled": true, "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "bundled": true, "dev": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "bundled": true, "dev": true }, "object-copy": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "bundled": true, "dev": true, "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } }, "object-visit": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "bundled": true, "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" } }, "object.pick": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "bundled": true, "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "optimist": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "bundled": true, "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "bundled": true, "dev": true }, "os-locale": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "bundled": true, "dev": true, "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" } }, "p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "bundled": true, "dev": true }, "p-limit": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "bundled": true, "dev": true, "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "bundled": true, "dev": true, "requires": { - "p-limit": "1.2.0" + "p-limit": "^1.1.0" } }, "p-try": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "bundled": true, "dev": true }, "parse-json": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "bundled": true, "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "pascalcase": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "bundled": true, "dev": true }, "path-exists": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "bundled": true, "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "bundled": true, "dev": true }, "path-key": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "bundled": true, "dev": true }, "path-parse": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "bundled": true, "dev": true }, "path-type": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "bundled": true, "dev": true }, "pinkie": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "bundled": true, "dev": true }, "pinkie-promise": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "bundled": true, "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "bundled": true, "dev": true, "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" }, "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "bundled": true, "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } }, "posix-character-classes": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "bundled": true, "dev": true }, "pseudomap": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "bundled": true, "dev": true }, "read-pkg": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "bundled": true, "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "bundled": true, "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" }, "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "bundled": true, "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } }, "regenerator-runtime": { "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "bundled": true, "dev": true }, "regex-not": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "bundled": true, "dev": true, "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "repeat-element": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "bundled": true, "dev": true }, "repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "bundled": true, "dev": true }, "repeating": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "bundled": true, "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "bundled": true, "dev": true }, "require-main-filename": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "bundled": true, "dev": true }, "resolve-from": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", + "bundled": true, "dev": true }, "resolve-url": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "bundled": true, "dev": true }, "ret": { "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "bundled": true, "dev": true }, "right-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "bundled": true, "dev": true, "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "bundled": true, "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "bundled": true, "dev": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "semver": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "bundled": true, "dev": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "bundled": true, "dev": true }, "set-value": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "bundled": true, "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "shebang-command": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "bundled": true, "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "bundled": true, "dev": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "bundled": true, "dev": true }, "slide": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "bundled": true, "dev": true }, "snapdragon": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "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.1", - "use": "3.1.0" + "bundled": true, + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "snapdragon-node": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "bundled": true, "dev": true, "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true } } }, "snapdragon-util": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "bundled": true, "dev": true }, "source-map-resolve": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", - "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "bundled": true, "dev": true, "requires": { - "atob": "2.1.1", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.0.0", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-url": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "bundled": true, "dev": true }, "spawn-wrap": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", - "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", + "bundled": true, "dev": true, "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.0" + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" } }, "spdx-correct": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "bundled": true, "dev": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", + "bundled": true, "dev": true }, "spdx-expression-parse": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "bundled": true, "dev": true, "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", + "bundled": true, "dev": true }, "split-string": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "bundled": true, "dev": true, "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "static-extend": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "bundled": true, "dev": true, "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } }, "string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "bundled": true, "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" }, "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "bundled": true, "dev": true }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "bundled": true, "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "bundled": true, "dev": true }, "supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "bundled": true, "dev": true }, "test-exclude": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", - "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", + "bundled": true, "dev": true, "requires": { - "arrify": "1.0.1", - "micromatch": "3.1.10", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" + "arrify": "^1.0.1", + "micromatch": "^3.1.8", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" } }, "to-fast-properties": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "bundled": true, "dev": true }, "to-object-path": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "bundled": true, "dev": true, "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "bundled": true, "dev": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } }, "trim-right": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "bundled": true, "dev": true }, "uglify-js": { "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "bundled": true, "dev": true, "optional": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "yargs": { "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "bundled": true, "dev": true, "optional": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" } } @@ -2540,71 +2286,64 @@ }, "uglify-to-browserify": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "bundled": true, "dev": true, "optional": true }, "union-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "bundled": true, "dev": true, "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "bundled": true, "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" } } } }, "unset-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "bundled": true, "dev": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "bundled": true, "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { "isobject": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "bundled": true, "dev": true, "requires": { "isarray": "1.0.0" @@ -2614,210 +2353,186 @@ }, "has-values": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "bundled": true, "dev": true } } }, "urix": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "bundled": true, "dev": true }, "use": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", - "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "bundled": true, "dev": true } } }, "validate-npm-package-license": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", + "bundled": true, "dev": true, "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "which": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "bundled": true, "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "bundled": true, "dev": true }, "window-size": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "bundled": true, "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "bundled": true, "dev": true }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "bundled": true, "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } } } }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "bundled": true, "dev": true }, "write-file-atomic": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", - "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", + "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, "y18n": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "bundled": true, "dev": true }, "yallist": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "bundled": true, "dev": true }, "yargs": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", - "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", - "dev": true, - "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "9.0.2" + "bundled": true, + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" }, "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "bundled": true, "dev": true }, "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "bundled": true, "dev": true }, "cliui": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "bundled": true, "dev": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "yargs-parser": { "version": "9.0.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "bundled": true, "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } }, "yargs-parser": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", - "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", + "bundled": true, "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "bundled": true, "dev": true } } @@ -2830,9 +2545,9 @@ "integrity": "sha1-AtUUpb7ZhvBMuyCTrxZ0FTX3ntw=", "dev": true, "requires": { - "fill-keys": "1.0.2", - "module-not-found-error": "1.0.1", - "resolve": "1.1.7" + "fill-keys": "^1.0.2", + "module-not-found-error": "^1.0.0", + "resolve": "~1.1.7" } } } @@ -2843,10 +2558,10 @@ "integrity": "sha512-weIbJqTMfQ4r1YX85u54DKfjLZs2jwn1XZ6tIOP/pFgMwhIN5BAtaCp/1wn9DzyLsDR9tW0R2NIePcVJ45ivQQ==", "dev": true, "requires": { - "chalk": "0.4.0", - "date-time": "0.1.1", - "pretty-ms": "0.2.2", - "text-table": "0.2.0" + "chalk": "^0.4.0", + "date-time": "^0.1.1", + "pretty-ms": "^0.2.1", + "text-table": "^0.2.0" }, "dependencies": { "ansi-styles": { @@ -2861,9 +2576,9 @@ "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", "dev": true, "requires": { - "ansi-styles": "1.0.0", - "has-color": "0.1.7", - "strip-ansi": "0.1.1" + "ansi-styles": "~1.0.0", + "has-color": "~0.1.0", + "strip-ansi": "~0.1.0" } }, "pretty-ms": { @@ -2872,7 +2587,7 @@ "integrity": "sha1-2oeaaC/zOjcBEEbxPWJ/Z8c7hPY=", "dev": true, "requires": { - "parse-ms": "0.1.2" + "parse-ms": "^0.1.0" } }, "strip-ansi": { @@ -2889,8 +2604,8 @@ "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", "dev": true, "requires": { - "call-me-maybe": "1.0.1", - "glob-to-regexp": "0.3.0" + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" } }, "@nodelib/fs.stat": { @@ -2920,7 +2635,7 @@ "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", "dev": true, "requires": { - "@types/node": "10.5.4" + "@types/node": "*" } }, "@types/body-parser": { @@ -2929,8 +2644,8 @@ "integrity": "sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w==", "dev": true, "requires": { - "@types/connect": "3.4.32", - "@types/node": "10.5.4" + "@types/connect": "*", + "@types/node": "*" } }, "@types/boom": { @@ -2945,8 +2660,8 @@ "integrity": "sha512-bxOF3fsm69ezKxdcJ7Oo/PsZMOJ+JIV/QJO2IADfScmR3sLulR88dpSnz6+q+9JJ1kD7dXFFgUrGRSKHLkOX7w==", "dev": true, "requires": { - "@types/events": "1.2.0", - "@types/node": "10.5.4" + "@types/events": "*", + "@types/node": "*" } }, "@types/caseless": { @@ -2966,7 +2681,7 @@ "integrity": "sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg==", "dev": true, "requires": { - "@types/node": "10.5.4" + "@types/node": "*" } }, "@types/console-log-level": { @@ -2981,10 +2696,10 @@ "integrity": "sha512-ku6IvbucEyuC6i4zAVK/KnuzWNXdbFd1HkXlNLg/zhWDGTtQT5VhumiPruB/BHW34PWVFwyfwGftDQHfWNxu3Q==", "dev": true, "requires": { - "@types/connect": "3.4.32", - "@types/express": "4.16.0", - "@types/keygrip": "1.0.1", - "@types/node": "10.5.4" + "@types/connect": "*", + "@types/express": "*", + "@types/keygrip": "*", + "@types/node": "*" } }, "@types/duplexify": { @@ -2992,7 +2707,7 @@ "resolved": "https://registry.npmjs.org/@types/duplexify/-/duplexify-3.5.0.tgz", "integrity": "sha512-+aZCCdxuR/Q6n58CBkXyqGqimIqpYUcFLfBXagXv7e9TdJUevqkKhzopBuRz3RB064sQxnJnhttHOkK/O93Ouw==", "requires": { - "@types/node": "10.5.4" + "@types/node": "*" } }, "@types/events": { @@ -3007,9 +2722,9 @@ "integrity": "sha512-TtPEYumsmSTtTetAPXlJVf3kEqb6wZK0bZojpJQrnD/djV4q1oB6QQ8aKvKqwNPACoe02GNiy5zDzcYivR5Z2w==", "dev": true, "requires": { - "@types/body-parser": "1.17.0", - "@types/express-serve-static-core": "4.16.0", - "@types/serve-static": "1.13.2" + "@types/body-parser": "*", + "@types/express-serve-static-core": "*", + "@types/serve-static": "*" } }, "@types/express-serve-static-core": { @@ -3018,9 +2733,9 @@ "integrity": "sha512-lTeoCu5NxJU4OD9moCgm0ESZzweAx0YqsAcab6OB0EB3+As1OaHtKnaGJvcngQxYsi9UNv0abn4/DRavrRxt4w==", "dev": true, "requires": { - "@types/events": "1.2.0", - "@types/node": "10.5.4", - "@types/range-parser": "1.2.2" + "@types/events": "*", + "@types/node": "*", + "@types/range-parser": "*" } }, "@types/extend": { @@ -3034,7 +2749,7 @@ "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz", "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", "requires": { - "@types/node": "10.5.4" + "@types/node": "*" } }, "@types/glob": { @@ -3043,25 +2758,25 @@ "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", "dev": true, "requires": { - "@types/events": "1.2.0", - "@types/minimatch": "3.0.3", - "@types/node": "10.5.4" + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" } }, "@types/hapi": { - "version": "17.0.16", - "resolved": "https://registry.npmjs.org/@types/hapi/-/hapi-17.0.16.tgz", - "integrity": "sha512-CpVv7BvmGiPSAF/4EbMUSa0HLiUUTEyiuHaNY8cwlKMxi/VMHCkRozfO15JHvd/JdZrr2neW0k24kn6BlfNwGw==", + "version": "17.0.17", + "resolved": "https://registry.npmjs.org/@types/hapi/-/hapi-17.0.17.tgz", + "integrity": "sha512-/tPHWSEwEp8qP5ImqDymqWgREIpv7MNuBnOGRIK8Tx1xn0+2VGnbD13FAg5Nui6gOFvKW5LqxLVeoR8tCsCESw==", "dev": true, "requires": { - "@types/boom": "7.2.0", - "@types/catbox": "10.0.0", - "@types/iron": "5.0.1", - "@types/joi": "13.4.0", - "@types/mimos": "3.0.1", - "@types/node": "10.5.4", - "@types/podium": "1.0.0", - "@types/shot": "3.4.0" + "@types/boom": "*", + "@types/catbox": "*", + "@types/iron": "*", + "@types/joi": "*", + "@types/mimos": "*", + "@types/node": "*", + "@types/podium": "*", + "@types/shot": "*" } }, "@types/http-assert": { @@ -3076,7 +2791,7 @@ "integrity": "sha512-Ng5BkVGPt7Tw9k1OJ6qYwuD9+dmnWgActmsnnrdvs4075N8V2go1f6Pz8omG3q5rbHjXN6yzzZDYo3JOgAE/Ug==", "dev": true, "requires": { - "@types/node": "10.5.4" + "@types/node": "*" } }, "@types/is": { @@ -3103,13 +2818,13 @@ "integrity": "sha512-Dw10hYKv3exrc71GmH/Fqnc7dCLzdiP8bM1MLelPYjgIH5kQ6mPFreM3Z0uLK9EFaeCZZUYqsedDLCf3Urrysg==", "dev": true, "requires": { - "@types/accepts": "1.3.5", - "@types/cookies": "0.7.1", - "@types/events": "1.2.0", - "@types/http-assert": "1.3.0", - "@types/keygrip": "1.0.1", - "@types/koa-compose": "3.2.2", - "@types/node": "10.5.4" + "@types/accepts": "*", + "@types/cookies": "*", + "@types/events": "*", + "@types/http-assert": "*", + "@types/keygrip": "*", + "@types/koa-compose": "*", + "@types/node": "*" } }, "@types/koa-compose": { @@ -3119,9 +2834,9 @@ "dev": true }, "@types/lodash": { - "version": "4.14.115", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.115.tgz", - "integrity": "sha512-9K/P4XMQxk61omAzQh3bbbFiqnG17eLcFysjlAYz0aPcYrVo8T+ujaCeIeY0Gpzux7x1YbxtEtLKB7ZWf79qdg==", + "version": "4.14.116", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.116.tgz", + "integrity": "sha512-lRnAtKnxMXcYYXqOiotTmJd74uawNWuPnsnPrrO7HiFuE3npE2iQhfABatbYDyxTNqZNuXzcKGhw37R7RjBFLg==", "dev": true }, "@types/lodash.assign": { @@ -3130,7 +2845,7 @@ "integrity": "sha512-vQZhkRxzcp8WfOCN5ss/MJRnReJlyS5bRL7eChoUp38edH04UefqSXwSa873SUwbF87USU4J5iCZi+oc1Jhu2A==", "dev": true, "requires": { - "@types/lodash": "4.14.115" + "@types/lodash": "*" } }, "@types/lodash.has": { @@ -3139,7 +2854,7 @@ "integrity": "sha512-TFhnjl9ggVe/ZDjcgUWlvu3ULkysXJ+9OasNd7dqXHWcRzULzZyVr7n021ds3ygSX1kcxvf/7wanVD19g+tdsA==", "dev": true, "requires": { - "@types/lodash": "4.14.115" + "@types/lodash": "*" } }, "@types/lodash.maxby": { @@ -3148,7 +2863,7 @@ "integrity": "sha512-2YNhKemFkV0LgR2MxET/QQvrUYcBeNpesfSu072hI4q2V3BqVkVebvjd0ZTNy8D15vu47xVQVqcgOm59xTuO/w==", "dev": true, "requires": { - "@types/lodash": "4.14.115" + "@types/lodash": "*" } }, "@types/lodash.merge": { @@ -3157,7 +2872,7 @@ "integrity": "sha512-usLWpRAicaNbx0VfNDREEgGWvp88inclJLXLJ3NpT83eUE4O05LJdYNRTofHq6pb/NiMZjzNVJHdgPvPzMfu6g==", "dev": true, "requires": { - "@types/lodash": "4.14.115" + "@types/lodash": "*" } }, "@types/lodash.omit": { @@ -3166,7 +2881,7 @@ "integrity": "sha512-hv7Q3zXtRW+ruFC4Dp2y8AwMEyj6jiJHumDSnfCHNzE6HmFT8p7moTklM7Jzk+RJNKHfioJDnWHpv8GTnGXRnQ==", "dev": true, "requires": { - "@types/lodash": "4.14.115" + "@types/lodash": "*" } }, "@types/lodash.omitby": { @@ -3175,7 +2890,7 @@ "integrity": "sha512-d47RYf2KA/Re0rDUWHfYPMSeOLHUt7tLPOfo0DcaKrcpPRqh/FphIf4NEPmxZ2kuXeHgW064YnFLffWQVfr42A==", "dev": true, "requires": { - "@types/lodash": "4.14.115" + "@types/lodash": "*" } }, "@types/lodash.pick": { @@ -3184,7 +2899,7 @@ "integrity": "sha512-54nf0ndJlN3ULz9fLceKhYJZfwf50jAqqPJyI3/UbU/qxyuMSgNC3niWhFqmVAnGPoxMwAwNQCYTXG0Gv2lfPg==", "dev": true, "requires": { - "@types/lodash": "4.14.115" + "@types/lodash": "*" } }, "@types/lodash.random": { @@ -3193,7 +2908,7 @@ "integrity": "sha512-iU+HQzaZPP6aTqb0PkLq8P8VRw8TrRP72DvVd/C0YSZHuYRjwvrjD8AabzK82c5xrFSxddv5ur9ptKRFa5HEYQ==", "dev": true, "requires": { - "@types/lodash": "4.14.115" + "@types/lodash": "*" } }, "@types/lodash.without": { @@ -3202,7 +2917,7 @@ "integrity": "sha512-WAhnX3b36nB38Du32TCgBElHPJrm0BQCeOy4vfTMsVz4d5daCqSfGIvi6TcGvY0Q0l2or9wwvBt6m0X2xwxjqw==", "dev": true, "requires": { - "@types/lodash": "4.14.115" + "@types/lodash": "*" } }, "@types/mime": { @@ -3223,7 +2938,7 @@ "integrity": "sha512-MATIRH4VMIJki8lcYUZdNQEHuAG7iQ1FWwoLgxV+4fUOly2xZYdhHtGgvQyWiTeJqq2tZbE0nOOgZD6pR0FpNQ==", "dev": true, "requires": { - "@types/mime-db": "1.27.0" + "@types/mime-db": "*" } }, "@types/minimatch": { @@ -3244,7 +2959,7 @@ "integrity": "sha512-TeiJ7uvv/92ugSqZ0v9l0eNXzutlki0aK+R1K5bfA5SYUil46ITlxLW4iNTCf55P4L5weCmaOdtxGeGWvudwPg==", "dev": true, "requires": { - "@types/node": "10.5.4" + "@types/node": "*" } }, "@types/nock": { @@ -3253,13 +2968,13 @@ "integrity": "sha512-ZHf/X8rTQ5Tb1rHjxIJYqm55uO265agE3G7NoSXVa2ep+EcJXgB2fsme+zBvK7MhrxTwkC/xkB6THyv50u0MGw==", "dev": true, "requires": { - "@types/node": "10.5.4" + "@types/node": "*" } }, "@types/node": { - "version": "10.5.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.4.tgz", - "integrity": "sha512-8TqvB0ReZWwtcd3LXq3YSrBoLyXFgBX/sBZfGye9+YS8zH7/g+i6QRIuiDmwBoTzcQ/pk89nZYTYU4c5akKkzw==" + "version": "10.5.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.7.tgz", + "integrity": "sha512-VkKcfuitP+Nc/TaTFH0B8qNmn+6NbI6crLkQonbedViVz7O2w8QV/GERPlkJ4bg42VGHiEWa31CoTOPs1q6z1w==" }, "@types/once": { "version": "1.4.0", @@ -3296,10 +3011,10 @@ "resolved": "https://registry.npmjs.org/@types/request/-/request-2.47.1.tgz", "integrity": "sha512-TV3XLvDjQbIeVxJ1Z3oCTDk/KuYwwcNKVwz2YaT0F5u86Prgc4syDAp6P96rkTQQ4bIdh+VswQIC9zS6NjY7/g==", "requires": { - "@types/caseless": "0.12.1", - "@types/form-data": "2.2.1", - "@types/node": "10.5.4", - "@types/tough-cookie": "2.3.3" + "@types/caseless": "*", + "@types/form-data": "*", + "@types/node": "*", + "@types/tough-cookie": "*" } }, "@types/restify": { @@ -3308,9 +3023,9 @@ "integrity": "sha512-k4O09swQnADEoj9B+ug7xBWkAdo7smv5W2IChW4wvC0ye2LUgyfbTjzzLTQLjd1OoLh/DdQACq0kOyZyjvNcrQ==", "dev": true, "requires": { - "@types/bunyan": "1.8.4", - "@types/node": "10.5.4", - "@types/spdy": "3.4.4" + "@types/bunyan": "*", + "@types/node": "*", + "@types/spdy": "*" } }, "@types/rimraf": { @@ -3319,8 +3034,8 @@ "integrity": "sha512-Hm/bnWq0TCy7jmjeN5bKYij9vw5GrDFWME4IuxV08278NtU/VdGbzsBohcCUJ7+QMqmUq5hpRKB39HeQWJjztQ==", "dev": true, "requires": { - "@types/glob": "5.0.35", - "@types/node": "10.5.4" + "@types/glob": "*", + "@types/node": "*" } }, "@types/serve-static": { @@ -3329,8 +3044,8 @@ "integrity": "sha512-/BZ4QRLpH/bNYgZgwhKEh+5AsboDBcUdlBYgzoLX0fpj3Y2gp6EApyOlM3bK53wQS/OE1SrdSYBAbux2D1528Q==", "dev": true, "requires": { - "@types/express-serve-static-core": "4.16.0", - "@types/mime": "2.0.0" + "@types/express-serve-static-core": "*", + "@types/mime": "*" } }, "@types/shot": { @@ -3339,7 +3054,7 @@ "integrity": "sha1-RZR3xRh9Pr0wNmCrCZ5+ng87ZW8=", "dev": true, "requires": { - "@types/node": "10.5.4" + "@types/node": "*" } }, "@types/spdy": { @@ -3348,7 +3063,7 @@ "integrity": "sha512-N9LBlbVRRYq6HgYpPkqQc3a9HJ/iEtVZToW6xlTtJiMhmRJ7jJdV7TaZQJw/Ve/1ePUsQiCTDc4JMuzzag94GA==", "dev": true, "requires": { - "@types/node": "10.5.4" + "@types/node": "*" } }, "@types/tmp": { @@ -3368,8 +3083,8 @@ "integrity": "sha512-bghLXFkCOsC1Y2TZ51etWfKDs6q249SAoHTZVfzWWdlZxoij+mgkj9AmUJWQpDY48TfnrTDIe43Xem4zdMe7mQ==", "dev": true, "requires": { - "boom": "7.2.0", - "hoek": "5.0.3" + "boom": "7.x.x", + "hoek": "5.x.x" } }, "accepts": { @@ -3378,7 +3093,7 @@ "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "dev": true, "requires": { - "mime-types": "2.1.19", + "mime-types": "~2.1.18", "negotiator": "0.6.1" } }, @@ -3400,7 +3115,7 @@ "integrity": "sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw==", "dev": true, "requires": { - "acorn": "5.7.1" + "acorn": "^5.0.3" } }, "ajv": { @@ -3408,10 +3123,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ajv-keywords": { @@ -3426,9 +3141,9 @@ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" } }, "amdefine": { @@ -3443,7 +3158,7 @@ "integrity": "sha512-4UqoM8xQjwkQ78oiU4NbBK0UgYqeKMAKmwE4ec7Rz3rGU8ZEBFxzgF2sUYKOAlqIXExBDYLN6y1ShF5yQ4hwLQ==", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "ansi-align": { @@ -3452,7 +3167,7 @@ "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "dev": true, "requires": { - "string-width": "2.1.1" + "string-width": "^2.0.0" } }, "ansi-escapes": { @@ -3473,7 +3188,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.2" + "color-convert": "^1.9.0" } }, "any-promise": { @@ -3488,8 +3203,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "dev": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "argparse": { @@ -3498,7 +3213,7 @@ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "argv": { @@ -3513,7 +3228,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-exclude": { @@ -3570,7 +3285,7 @@ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -3591,9 +3306,12 @@ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" }, "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } }, "assert-plus": { "version": "1.0.0", @@ -3647,89 +3365,89 @@ "integrity": "sha512-4lGNJCf6xL8SvsKVEKxEE46se7JAUIAZoKHw9itTQuwcsydhpAMkBs5gOOiWiwt0JKNIuXWc2/r4r8ZdcNrBEw==", "dev": true, "requires": { - "@ava/babel-preset-stage-4": "1.1.0", - "@ava/babel-preset-transform-test-files": "3.0.0", - "@ava/write-file-atomic": "2.2.0", - "@concordance/react": "1.0.0", - "@ladjs/time-require": "0.1.4", - "ansi-escapes": "3.1.0", - "ansi-styles": "3.2.1", - "arr-flatten": "1.1.0", - "array-union": "1.0.2", - "array-uniq": "1.0.3", - "arrify": "1.0.1", - "auto-bind": "1.2.1", - "ava-init": "0.2.1", - "babel-core": "6.26.3", - "babel-generator": "6.26.1", - "babel-plugin-syntax-object-rest-spread": "6.13.0", - "bluebird": "3.5.1", - "caching-transform": "1.0.1", - "chalk": "2.4.1", - "chokidar": "1.7.0", - "clean-stack": "1.3.0", - "clean-yaml-object": "0.1.0", - "cli-cursor": "2.1.0", - "cli-spinners": "1.3.1", - "cli-truncate": "1.1.0", - "co-with-promise": "4.6.0", - "code-excerpt": "2.1.1", - "common-path-prefix": "1.0.0", - "concordance": "3.0.0", - "convert-source-map": "1.5.1", - "core-assert": "0.2.1", - "currently-unhandled": "0.4.1", - "debug": "3.1.0", - "dot-prop": "4.2.0", - "empower-core": "0.6.2", - "equal-length": "1.0.1", - "figures": "2.0.0", - "find-cache-dir": "1.0.0", - "fn-name": "2.0.1", - "get-port": "3.2.0", - "globby": "6.1.0", - "has-flag": "2.0.0", - "hullabaloo-config-manager": "1.1.1", - "ignore-by-default": "1.0.1", - "import-local": "0.1.1", - "indent-string": "3.2.0", - "is-ci": "1.1.0", - "is-generator-fn": "1.0.0", - "is-obj": "1.0.1", - "is-observable": "1.1.0", - "is-promise": "2.1.0", - "last-line-stream": "1.0.0", - "lodash.clonedeepwith": "4.5.0", - "lodash.debounce": "4.0.8", - "lodash.difference": "4.5.0", - "lodash.flatten": "4.4.0", - "loud-rejection": "1.6.0", - "make-dir": "1.3.0", - "matcher": "1.1.1", - "md5-hex": "2.0.0", - "meow": "3.7.0", - "ms": "2.0.0", - "multimatch": "2.1.0", - "observable-to-promise": "0.5.0", - "option-chain": "1.0.0", - "package-hash": "2.0.0", - "pkg-conf": "2.1.0", - "plur": "2.1.2", - "pretty-ms": "3.2.0", - "require-precompiled": "0.1.0", - "resolve-cwd": "2.0.0", - "safe-buffer": "5.1.2", - "semver": "5.5.0", - "slash": "1.0.0", - "source-map-support": "0.5.6", - "stack-utils": "1.0.1", - "strip-ansi": "4.0.0", - "strip-bom-buf": "1.0.0", - "supertap": "1.0.0", - "supports-color": "5.4.0", - "trim-off-newlines": "1.0.1", - "unique-temp-dir": "1.0.0", - "update-notifier": "2.5.0" + "@ava/babel-preset-stage-4": "^1.1.0", + "@ava/babel-preset-transform-test-files": "^3.0.0", + "@ava/write-file-atomic": "^2.2.0", + "@concordance/react": "^1.0.0", + "@ladjs/time-require": "^0.1.4", + "ansi-escapes": "^3.0.0", + "ansi-styles": "^3.1.0", + "arr-flatten": "^1.0.1", + "array-union": "^1.0.1", + "array-uniq": "^1.0.2", + "arrify": "^1.0.0", + "auto-bind": "^1.1.0", + "ava-init": "^0.2.0", + "babel-core": "^6.17.0", + "babel-generator": "^6.26.0", + "babel-plugin-syntax-object-rest-spread": "^6.13.0", + "bluebird": "^3.0.0", + "caching-transform": "^1.0.0", + "chalk": "^2.0.1", + "chokidar": "^1.4.2", + "clean-stack": "^1.1.1", + "clean-yaml-object": "^0.1.0", + "cli-cursor": "^2.1.0", + "cli-spinners": "^1.0.0", + "cli-truncate": "^1.0.0", + "co-with-promise": "^4.6.0", + "code-excerpt": "^2.1.1", + "common-path-prefix": "^1.0.0", + "concordance": "^3.0.0", + "convert-source-map": "^1.5.1", + "core-assert": "^0.2.0", + "currently-unhandled": "^0.4.1", + "debug": "^3.0.1", + "dot-prop": "^4.1.0", + "empower-core": "^0.6.1", + "equal-length": "^1.0.0", + "figures": "^2.0.0", + "find-cache-dir": "^1.0.0", + "fn-name": "^2.0.0", + "get-port": "^3.0.0", + "globby": "^6.0.0", + "has-flag": "^2.0.0", + "hullabaloo-config-manager": "^1.1.0", + "ignore-by-default": "^1.0.0", + "import-local": "^0.1.1", + "indent-string": "^3.0.0", + "is-ci": "^1.0.7", + "is-generator-fn": "^1.0.0", + "is-obj": "^1.0.0", + "is-observable": "^1.0.0", + "is-promise": "^2.1.0", + "last-line-stream": "^1.0.0", + "lodash.clonedeepwith": "^4.5.0", + "lodash.debounce": "^4.0.3", + "lodash.difference": "^4.3.0", + "lodash.flatten": "^4.2.0", + "loud-rejection": "^1.2.0", + "make-dir": "^1.0.0", + "matcher": "^1.0.0", + "md5-hex": "^2.0.0", + "meow": "^3.7.0", + "ms": "^2.0.0", + "multimatch": "^2.1.0", + "observable-to-promise": "^0.5.0", + "option-chain": "^1.0.0", + "package-hash": "^2.0.0", + "pkg-conf": "^2.0.0", + "plur": "^2.0.0", + "pretty-ms": "^3.0.0", + "require-precompiled": "^0.1.0", + "resolve-cwd": "^2.0.0", + "safe-buffer": "^5.1.1", + "semver": "^5.4.1", + "slash": "^1.0.0", + "source-map-support": "^0.5.0", + "stack-utils": "^1.0.1", + "strip-ansi": "^4.0.0", + "strip-bom-buf": "^1.0.0", + "supertap": "^1.0.0", + "supports-color": "^5.0.0", + "trim-off-newlines": "^1.0.1", + "unique-temp-dir": "^1.0.0", + "update-notifier": "^2.3.0" } }, "ava-init": { @@ -3738,11 +3456,11 @@ "integrity": "sha512-lXwK5LM+2g1euDRqW1mcSX/tqzY1QU7EjKpqayFPPtNRmbSYZ8RzPO5tqluTToijmtjp2M+pNpVdbcHssC4glg==", "dev": true, "requires": { - "arr-exclude": "1.0.0", - "execa": "0.7.0", - "has-yarn": "1.0.0", - "read-pkg-up": "2.0.0", - "write-pkg": "3.2.0" + "arr-exclude": "^1.0.0", + "execa": "^0.7.0", + "has-yarn": "^1.0.0", + "read-pkg-up": "^2.0.0", + "write-pkg": "^3.1.0" } }, "aws-sign2": { @@ -3751,17 +3469,17 @@ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", - "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" }, "axios": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz", "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=", "requires": { - "follow-redirects": "1.5.1", - "is-buffer": "1.1.6" + "follow-redirects": "^1.3.0", + "is-buffer": "^1.1.5" } }, "b64": { @@ -3776,9 +3494,9 @@ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" }, "dependencies": { "ansi-styles": { @@ -3793,11 +3511,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "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" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "strip-ansi": { @@ -3806,7 +3524,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -3823,25 +3541,25 @@ "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.1", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.5.1", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.5", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" }, "dependencies": { "debug": { @@ -3861,14 +3579,14 @@ "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "dev": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.5", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" }, "dependencies": { "jsesc": { @@ -3885,9 +3603,9 @@ "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "dev": true, "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-call-delegate": { @@ -3896,10 +3614,10 @@ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "dev": true, "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-explode-assignable-expression": { @@ -3908,9 +3626,9 @@ "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-function-name": { @@ -3919,11 +3637,11 @@ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "dev": true, "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-get-function-arity": { @@ -3932,8 +3650,8 @@ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-hoist-variables": { @@ -3942,8 +3660,8 @@ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-regex": { @@ -3952,9 +3670,9 @@ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.5" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-remap-async-to-generator": { @@ -3963,11 +3681,11 @@ "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helpers": { @@ -3976,8 +3694,8 @@ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-messages": { @@ -3986,7 +3704,7 @@ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { @@ -3995,7 +3713,7 @@ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-espower": { @@ -4004,13 +3722,13 @@ "integrity": "sha512-/+SRpy7pKgTI28oEHfn1wkuM5QFAdRq8WNsOOih1dVrdV6A/WbNbRZyl0eX5eyDgtb0lOE27PeDFuCX2j8OxVg==", "dev": true, "requires": { - "babel-generator": "6.26.1", - "babylon": "6.18.0", - "call-matcher": "1.0.1", - "core-js": "2.5.7", - "espower-location-detector": "1.0.0", - "espurify": "1.8.1", - "estraverse": "4.2.0" + "babel-generator": "^6.1.0", + "babylon": "^6.1.0", + "call-matcher": "^1.0.0", + "core-js": "^2.0.0", + "espower-location-detector": "^1.0.0", + "espurify": "^1.6.0", + "estraverse": "^4.1.1" } }, "babel-plugin-syntax-async-functions": { @@ -4043,9 +3761,9 @@ "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "dev": true, "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-destructuring": { @@ -4054,7 +3772,7 @@ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -4063,9 +3781,9 @@ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -4074,10 +3792,10 @@ "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "dev": true, "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -4086,12 +3804,12 @@ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "dev": true, "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-spread": { @@ -4100,7 +3818,7 @@ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -4109,9 +3827,9 @@ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "dev": true, "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -4120,9 +3838,9 @@ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "dev": true, "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -4131,9 +3849,9 @@ "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "dev": true, "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-strict-mode": { @@ -4142,8 +3860,8 @@ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-register": { @@ -4152,13 +3870,13 @@ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "dev": true, "requires": { - "babel-core": "6.26.3", - "babel-runtime": "6.26.0", - "core-js": "2.5.7", - "home-or-tmp": "2.0.0", - "lodash": "4.17.5", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" }, "dependencies": { "source-map-support": { @@ -4167,7 +3885,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } } } @@ -4178,8 +3896,8 @@ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.5.7", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -4188,11 +3906,11 @@ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.5" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { @@ -4201,15 +3919,15 @@ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.5" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" }, "dependencies": { "debug": { @@ -4229,10 +3947,10 @@ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.5", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -4253,13 +3971,13 @@ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { "define-property": { @@ -4268,7 +3986,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -4277,7 +3995,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -4286,7 +4004,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -4295,9 +4013,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -4320,7 +4038,7 @@ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "big-time": { @@ -4348,15 +4066,15 @@ "dev": true, "requires": { "bytes": "3.0.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.3", + "depd": "~1.1.2", + "http-errors": "~1.6.3", "iconv-lite": "0.4.23", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.5.2", "raw-body": "2.3.3", - "type-is": "1.6.16" + "type-is": "~1.6.16" }, "dependencies": { "debug": { @@ -4376,7 +4094,7 @@ "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "bounce": { @@ -4385,8 +4103,8 @@ "integrity": "sha512-8syCGe8B2/WC53118/F/tFy5aW00j+eaGPXmAUP7iBhxc+EBZZxS1vKelWyBCH6IqojgS2t1gF0glH30qAJKEw==", "dev": true, "requires": { - "boom": "7.2.0", - "hoek": "5.0.3" + "boom": "7.x.x", + "hoek": "5.x.x" } }, "boxen": { @@ -4395,13 +4113,13 @@ "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", "dev": true, "requires": { - "ansi-align": "2.0.0", - "camelcase": "4.1.0", - "chalk": "2.4.1", - "cli-boxes": "1.0.0", - "string-width": "2.1.1", - "term-size": "1.2.0", - "widest-line": "2.0.0" + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" }, "dependencies": { "camelcase": { @@ -4418,7 +4136,7 @@ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -4428,9 +4146,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "browser-stdout": { @@ -4474,10 +4192,10 @@ "integrity": "sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=", "dev": true, "requires": { - "dtrace-provider": "0.8.7", - "moment": "2.22.2", - "mv": "2.1.1", - "safe-json-stringify": "1.2.0" + "dtrace-provider": "~0.8", + "moment": "^2.10.6", + "mv": "~2", + "safe-json-stringify": "~1" } }, "bytes": { @@ -4492,15 +4210,15 @@ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" }, "dependencies": { "isobject": { @@ -4517,8 +4235,8 @@ "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", "dev": true, "requires": { - "mime-types": "2.1.19", - "ylru": "1.2.1" + "mime-types": "^2.1.18", + "ylru": "^1.2.0" } }, "cacheable-request": { @@ -4550,9 +4268,9 @@ "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", "dev": true, "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" }, "dependencies": { "md5-hex": { @@ -4561,7 +4279,7 @@ "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "write-file-atomic": { @@ -4570,9 +4288,9 @@ "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } } } @@ -4583,8 +4301,8 @@ "integrity": "sha512-ollfFPSshiuYLp7AsrmpkQJ/PxCi6AzV81rCjBwWhyF2QGyUY/vPDMzoh4aUcWyucheRglG2LaS5qkIEfLRh6A==", "dev": true, "requires": { - "boom": "7.2.0", - "hoek": "5.0.3" + "boom": "7.x.x", + "hoek": "5.x.x" } }, "call-matcher": { @@ -4593,10 +4311,10 @@ "integrity": "sha1-UTTQd5hPcSpU2tPL9i3ijc5BbKg=", "dev": true, "requires": { - "core-js": "2.5.7", - "deep-equal": "1.0.1", - "espurify": "1.8.1", - "estraverse": "4.2.0" + "core-js": "^2.0.0", + "deep-equal": "^1.0.0", + "espurify": "^1.6.0", + "estraverse": "^4.0.0" } }, "call-me-maybe": { @@ -4617,7 +4335,7 @@ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsites": { @@ -4638,8 +4356,8 @@ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" } }, "capture-stack-trace": { @@ -4659,10 +4377,10 @@ "integrity": "sha512-cTQTQeKMhWHU0lX8CADE3g1koGJu+AlcWFzAjMX/8P+XbkScGYw3tJsQpe2Oh8q68vOQbOLacz9k+6V/F3Z9DA==", "dev": true, "requires": { - "boom": "7.2.0", - "bounce": "1.2.0", - "hoek": "5.0.3", - "joi": "13.5.2" + "boom": "7.x.x", + "bounce": "1.x.x", + "hoek": "5.x.x", + "joi": "13.x.x" } }, "catbox-memory": { @@ -4671,9 +4389,9 @@ "integrity": "sha512-lhWtutLVhsq3Mucxk2McxBPPibJ34WcHuWFz3xqub9u9Ve/IQYpZv3ijLhQXfQped9DXozURiaq9O3aZpP91eg==", "dev": true, "requires": { - "big-time": "2.0.1", - "boom": "7.2.0", - "hoek": "5.0.3" + "big-time": "2.x.x", + "boom": "7.x.x", + "hoek": "5.x.x" } }, "catharsis": { @@ -4682,7 +4400,7 @@ "integrity": "sha1-mMyJDKZS3S7w5ws3klMQ/56Q/Is=", "dev": true, "requires": { - "underscore-contrib": "0.3.0" + "underscore-contrib": "~0.3.0" } }, "center-align": { @@ -4692,8 +4410,8 @@ "dev": true, "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chai": { @@ -4702,12 +4420,12 @@ "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", "dev": true, "requires": { - "assertion-error": "1.1.0", - "check-error": "1.0.2", - "deep-eql": "3.0.1", - "get-func-name": "2.0.0", - "pathval": "1.1.0", - "type-detect": "4.0.8" + "assertion-error": "^1.0.1", + "check-error": "^1.0.1", + "deep-eql": "^3.0.0", + "get-func-name": "^2.0.0", + "pathval": "^1.0.0", + "type-detect": "^4.0.0" } }, "chalk": { @@ -4716,9 +4434,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "chardet": { @@ -4739,15 +4457,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "dev": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.2.4", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" } }, "ci-info": { @@ -4768,9 +4486,9 @@ "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", "dev": true, "requires": { - "async": "1.5.2", - "glob": "7.1.2", - "resolve": "1.1.7" + "async": "^1.5.2", + "glob": "^7.0.0", + "resolve": "^1.1.6" } }, "class-utils": { @@ -4779,10 +4497,10 @@ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -4791,7 +4509,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "isobject": { @@ -4826,7 +4544,7 @@ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-spinners": { @@ -4841,8 +4559,8 @@ "integrity": "sha512-bAtZo0u82gCfaAGfSNxUdTI9mNyza7D8w4CVCcaOsy7sgwDzvx6ekr6cuWJqY3UGzgnQ1+4wgENup5eIhgxEYA==", "dev": true, "requires": { - "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "slice-ansi": "^1.0.0", + "string-width": "^2.0.0" } }, "cli-width": { @@ -4858,8 +4576,8 @@ "dev": true, "optional": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" }, "dependencies": { @@ -4878,7 +4596,7 @@ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "dev": true, "requires": { - "mimic-response": "1.0.1" + "mimic-response": "^1.0.0" } }, "co": { @@ -4892,7 +4610,7 @@ "integrity": "sha1-QT59tvWJOmC5Qs9JLEvsk9tBWrc=", "dev": true, "requires": { - "pinkie-promise": "1.0.0" + "pinkie-promise": "^1.0.0" } }, "code-excerpt": { @@ -4901,7 +4619,7 @@ "integrity": "sha512-tJLhH3EpFm/1x7heIW0hemXJTUU5EWl2V0EIX558jp05Mt1U6DVryCgkp3l37cxqs+DNbNgxG43SkwJXpQ14Jw==", "dev": true, "requires": { - "convert-to-spaces": "1.0.2" + "convert-to-spaces": "^1.0.1" } }, "code-point-at": { @@ -4916,10 +4634,10 @@ "integrity": "sha512-KJyzHdg9B8U9LxXa7hS6jnEW5b1cNckLYc2YpnJ1nEFiOW+/iSzDHp+5MYEIQd9fN3/tC6WmGZmYiwxzkuGp/A==", "dev": true, "requires": { - "argv": "0.0.2", - "ignore-walk": "3.0.1", - "request": "2.87.0", - "urlgrey": "0.4.4" + "argv": "^0.0.2", + "ignore-walk": "^3.0.1", + "request": "^2.87.0", + "urlgrey": "^0.4.4" } }, "collection-visit": { @@ -4928,8 +4646,8 @@ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "color-convert": { @@ -4958,13 +4676,13 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz", - "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==", + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.0.tgz", + "integrity": "sha512-477o1hdVORiFlZxw8wgsXYCef3lh0zl/OV0FTftqiDxJSWw6dPQ2ipS4k20J2qBcsmsmLKSyr2iFrf9e3JGi4w==", "dev": true }, "common-path-prefix": { @@ -4997,17 +4715,17 @@ "integrity": "sha512-CZBzJ3/l5QJjlZM20WY7+5GP5pMTw+1UEbThcpMw8/rojsi5sBCiD8ZbBLtD+jYpRGAkwuKuqk108c154V9eyQ==", "dev": true, "requires": { - "date-time": "2.1.0", - "esutils": "2.0.2", - "fast-diff": "1.1.2", - "function-name-support": "0.2.0", - "js-string-escape": "1.0.1", - "lodash.clonedeep": "4.5.0", - "lodash.flattendeep": "4.4.0", - "lodash.merge": "4.6.1", - "md5-hex": "2.0.0", - "semver": "5.5.0", - "well-known-symbols": "1.0.0" + "date-time": "^2.1.0", + "esutils": "^2.0.2", + "fast-diff": "^1.1.1", + "function-name-support": "^0.2.0", + "js-string-escape": "^1.0.1", + "lodash.clonedeep": "^4.5.0", + "lodash.flattendeep": "^4.4.0", + "lodash.merge": "^4.6.0", + "md5-hex": "^2.0.0", + "semver": "^5.3.0", + "well-known-symbols": "^1.0.0" }, "dependencies": { "date-time": { @@ -5016,7 +4734,7 @@ "integrity": "sha512-/9+C44X7lot0IeiyfgJmETtRMhBidBYM2QFFIkGa0U1k+hSyY87Nw7PY3eDqpvCBm7I3WCSfPeZskW/YYq6m4g==", "dev": true, "requires": { - "time-zone": "1.0.0" + "time-zone": "^1.0.0" } } } @@ -5027,12 +4745,12 @@ "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", "dev": true, "requires": { - "dot-prop": "4.2.0", - "graceful-fs": "4.1.11", - "make-dir": "1.3.0", - "unique-string": "1.0.0", - "write-file-atomic": "2.3.0", - "xdg-basedir": "3.0.0" + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" } }, "console-log-level": { @@ -5046,7 +4764,7 @@ "integrity": "sha512-wDP6CTWDpwCf791fNxlCCkZGRkrNzSEU/8ju9Hnr3Uc5mF/gFR5W+fcoGm6zUSlVPdSXYn5pCbySADKj7YM4Cg==", "dev": true, "requires": { - "boom": "7.2.0" + "boom": "7.x.x" } }, "content-disposition": { @@ -5097,8 +4815,8 @@ "integrity": "sha1-fIphX1SBxhq58WyDNzG8uPZjuZs=", "dev": true, "requires": { - "depd": "1.1.2", - "keygrip": "1.0.2" + "depd": "~1.1.1", + "keygrip": "~1.0.2" } }, "copy-descriptor": { @@ -5113,8 +4831,8 @@ "integrity": "sha1-+F4s+b/tKPdzzIs/pcW2m9wC/j8=", "dev": true, "requires": { - "buf-compare": "1.0.1", - "is-error": "2.2.1" + "buf-compare": "^1.0.0", + "is-error": "^2.2.0" } }, "core-js": { @@ -5134,11 +4852,11 @@ "integrity": "sha512-OtHMgPugkgwHlbph25wlMKd358lZNhX1Y2viUpPoFmlBPlEiPIRhztYWha11grbGPnlM+urp5saVmwsChCIOEg==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "make-dir": "1.3.0", - "nested-error-stacks": "2.0.1", - "pify": "3.0.0", - "safe-buffer": "5.1.2" + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "nested-error-stacks": "^2.0.0", + "pify": "^3.0.0", + "safe-buffer": "^5.0.1" } }, "cpy": { @@ -5147,10 +4865,10 @@ "integrity": "sha512-Zo52tXKLJcgy/baacn6KaNoRAakkl2wb+R4u6qJ4wlD0uchncwRQcIk66PlGlkzuToCJO6A6PWX27Tdwc8LU2g==", "dev": true, "requires": { - "arrify": "1.0.1", - "cp-file": "6.0.0", - "globby": "8.0.1", - "nested-error-stacks": "2.0.1" + "arrify": "^1.0.1", + "cp-file": "^6.0.0", + "globby": "^8.0.1", + "nested-error-stacks": "^2.0.0" }, "dependencies": { "globby": { @@ -5159,13 +4877,13 @@ "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", "dev": true, "requires": { - "array-union": "1.0.2", - "dir-glob": "2.0.0", - "fast-glob": "2.2.2", - "glob": "7.1.2", - "ignore": "3.3.10", - "pify": "3.0.0", - "slash": "1.0.0" + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" } } } @@ -5176,8 +4894,8 @@ "integrity": "sha512-LzrtY3lBWvFZcw4lXgkEbbDUd7y78juC3C5l7gj3UyezMEZF0Be9fjCVLN1HoZAzdMDeC3KHehWpHBJvgVAPkw==", "dev": true, "requires": { - "cpy": "7.0.1", - "meow": "5.0.0" + "cpy": "^7.0.0", + "meow": "^5.0.0" }, "dependencies": { "camelcase": { @@ -5192,9 +4910,9 @@ "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", "dev": true, "requires": { - "camelcase": "4.1.0", - "map-obj": "2.0.0", - "quick-lru": "1.1.0" + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" } }, "load-json-file": { @@ -5203,10 +4921,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "map-obj": { @@ -5221,15 +4939,15 @@ "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", "dev": true, "requires": { - "camelcase-keys": "4.2.0", - "decamelize-keys": "1.1.0", - "loud-rejection": "1.6.0", - "minimist-options": "3.0.2", - "normalize-package-data": "2.4.0", - "read-pkg-up": "3.0.0", - "redent": "2.0.0", - "trim-newlines": "2.0.0", - "yargs-parser": "10.1.0" + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0", + "yargs-parser": "^10.0.0" } }, "parse-json": { @@ -5238,8 +4956,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "path-type": { @@ -5248,7 +4966,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "read-pkg": { @@ -5257,9 +4975,9 @@ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.4.0", - "path-type": "3.0.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" } }, "read-pkg-up": { @@ -5268,8 +4986,8 @@ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "3.0.0" + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" } }, "redent": { @@ -5278,8 +4996,8 @@ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", "dev": true, "requires": { - "indent-string": "3.2.0", - "strip-indent": "2.0.0" + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" } }, "strip-indent": { @@ -5302,7 +5020,7 @@ "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "dev": true, "requires": { - "capture-stack-trace": "1.0.0" + "capture-stack-trace": "^1.0.0" } }, "cross-spawn": { @@ -5311,9 +5029,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "cryptiles": { @@ -5322,7 +5040,7 @@ "integrity": "sha512-U2ALcoAHvA1oO2xOreyHvtkQ+IELqDG2WVWRI1GH/XEmmfGIOalnM5MU5Dd2ITyWfr3m6kNqXiy8XuYyd4wKJw==", "dev": true, "requires": { - "boom": "7.2.0" + "boom": "7.x.x" } }, "crypto-random-string": { @@ -5337,10 +5055,10 @@ "integrity": "sha1-UjHt/BxxUlEuxFeBB2p6l/9SXAw=", "dev": true, "requires": { - "csv-generate": "1.1.2", - "csv-parse": "1.3.3", - "csv-stringify": "1.1.2", - "stream-transform": "0.2.2" + "csv-generate": "^1.1.2", + "csv-parse": "^1.3.3", + "csv-stringify": "^1.1.2", + "stream-transform": "^0.2.2" } }, "csv-generate": { @@ -5361,7 +5079,7 @@ "integrity": "sha1-d6QVJlgbzjOA8SsA18W7rHDIK1g=", "dev": true, "requires": { - "lodash.get": "4.4.2" + "lodash.get": "~4.4.2" } }, "currently-unhandled": { @@ -5370,7 +5088,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "array-find-index": "1.0.2" + "array-find-index": "^1.0.1" } }, "d": { @@ -5379,7 +5097,7 @@ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "dev": true, "requires": { - "es5-ext": "0.10.45" + "es5-ext": "^0.10.9" } }, "dashdash": { @@ -5387,7 +5105,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "date-time": { @@ -5416,8 +5134,8 @@ "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", "dev": true, "requires": { - "decamelize": "1.2.0", - "map-obj": "1.0.1" + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" } }, "decode-uri-component": { @@ -5432,7 +5150,7 @@ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "dev": true, "requires": { - "mimic-response": "1.0.1" + "mimic-response": "^1.0.0" } }, "deep-eql": { @@ -5441,7 +5159,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "4.0.8" + "type-detect": "^4.0.0" } }, "deep-equal": { @@ -5468,8 +5186,8 @@ "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "dev": true, "requires": { - "foreach": "2.0.5", - "object-keys": "1.0.12" + "foreach": "^2.0.5", + "object-keys": "^1.0.8" } }, "define-property": { @@ -5478,8 +5196,8 @@ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -5488,7 +5206,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -5497,7 +5215,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -5506,9 +5224,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -5531,13 +5249,13 @@ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.2" + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" }, "dependencies": { "globby": { @@ -5546,12 +5264,12 @@ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -5572,7 +5290,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } } } @@ -5606,7 +5324,7 @@ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "detect-node": { @@ -5633,8 +5351,8 @@ "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", "dev": true, "requires": { - "arrify": "1.0.1", - "path-type": "3.0.0" + "arrify": "^1.0.1", + "path-type": "^3.0.0" }, "dependencies": { "path-type": { @@ -5643,7 +5361,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } } } @@ -5654,7 +5372,7 @@ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "esutils": "2.0.2" + "esutils": "^2.0.2" } }, "dom-serializer": { @@ -5663,8 +5381,8 @@ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "dev": true, "requires": { - "domelementtype": "1.1.3", - "entities": "1.1.1" + "domelementtype": "~1.1.1", + "entities": "~1.1.1" }, "dependencies": { "domelementtype": { @@ -5687,7 +5405,7 @@ "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "dev": true, "requires": { - "domelementtype": "1.3.0" + "domelementtype": "1" } }, "domutils": { @@ -5696,8 +5414,8 @@ "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "dev": true, "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" + "dom-serializer": "0", + "domelementtype": "1" } }, "dot-prop": { @@ -5706,7 +5424,7 @@ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", "dev": true, "requires": { - "is-obj": "1.0.1" + "is-obj": "^1.0.0" } }, "dtrace-provider": { @@ -5716,7 +5434,7 @@ "dev": true, "optional": true, "requires": { - "nan": "2.10.0" + "nan": "^2.10.0" } }, "duplexer3": { @@ -5730,10 +5448,10 @@ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" } }, "eastasianwidth": { @@ -5748,8 +5466,8 @@ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "optional": true, "requires": { - "jsbn": "0.1.1", - "safer-buffer": "2.1.2" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "ecdsa-sig-formatter": { @@ -5757,7 +5475,7 @@ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz", "integrity": "sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "ee-first": { @@ -5772,8 +5490,8 @@ "integrity": "sha512-tP2WqM7QzrPguCCQEQfFFDF+6Pw6YWLQal3+GHQaV+0uIr0S+jyREQPWljE02zFCYPFYLZ3LosiRV+OzTrxPpQ==", "dev": true, "requires": { - "core-js": "2.5.7", - "empower-core": "1.2.0" + "core-js": "^2.0.0", + "empower-core": "^1.2.0" }, "dependencies": { "empower-core": { @@ -5783,7 +5501,7 @@ "dev": true, "requires": { "call-signature": "0.0.2", - "core-js": "2.5.7" + "core-js": "^2.0.0" } } } @@ -5794,7 +5512,7 @@ "integrity": "sha512-Ylck0Q6p8y/LpNzYeBccaxAPm2ZyuqBgErgZpO9KT0HuQWF0sJckBKCLmgS1/DEXEiyBi9XtYh3clZm5cAdARw==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.2.0" } }, "empower-core": { @@ -5804,7 +5522,7 @@ "dev": true, "requires": { "call-signature": "0.0.2", - "core-js": "2.5.7" + "core-js": "^2.0.0" } }, "encodeurl": { @@ -5818,7 +5536,7 @@ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "requires": { - "once": "1.4.0" + "once": "^1.4.0" } }, "ent": { @@ -5844,7 +5562,7 @@ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "error-inject": { @@ -5859,11 +5577,11 @@ "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "dev": true, "requires": { - "es-to-primitive": "1.1.1", - "function-bind": "1.1.1", - "has": "1.0.3", - "is-callable": "1.1.4", - "is-regex": "1.0.4" + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" } }, "es-to-primitive": { @@ -5872,9 +5590,9 @@ "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", "dev": true, "requires": { - "is-callable": "1.1.4", - "is-date-object": "1.0.1", - "is-symbol": "1.0.1" + "is-callable": "^1.1.1", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.1" } }, "es5-ext": { @@ -5883,9 +5601,9 @@ "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", "dev": true, "requires": { - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1", - "next-tick": "1.0.0" + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "1" } }, "es6-error": { @@ -5900,9 +5618,9 @@ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" } }, "es6-map": { @@ -5911,12 +5629,12 @@ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45", - "es6-iterator": "2.0.3", - "es6-set": "0.1.5", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" } }, "es6-set": { @@ -5925,11 +5643,11 @@ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45", - "es6-iterator": "2.0.3", + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "event-emitter": "~0.3.5" } }, "es6-symbol": { @@ -5938,8 +5656,8 @@ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45" + "d": "1", + "es5-ext": "~0.10.14" } }, "es6-weak-map": { @@ -5948,10 +5666,10 @@ "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" } }, "escallmatch": { @@ -5960,8 +5678,8 @@ "integrity": "sha1-UAmdhugJGwkt+N37w/mm+wWgJNA=", "dev": true, "requires": { - "call-matcher": "1.0.1", - "esprima": "2.7.3" + "call-matcher": "^1.0.0", + "esprima": "^2.0.0" }, "dependencies": { "esprima": { @@ -5996,11 +5714,11 @@ "integrity": "sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==", "dev": true, "requires": { - "esprima": "3.1.3", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.6.1" + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" }, "dependencies": { "esprima": { @@ -6024,57 +5742,57 @@ "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", "dev": true, "requires": { - "es6-map": "0.1.5", - "es6-weak-map": "2.0.2", - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.2.0.tgz", - "integrity": "sha512-zlggW1qp7/TBjwLfouRoY7eWXrXwJZFqCdIxxh0/LVB/QuuKuIMkzyUZEcDo6LBadsry5JcEMxIqd3H/66CXVg==", - "dev": true, - "requires": { - "ajv": "6.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.4.1", - "cross-spawn": "6.0.5", - "debug": "3.1.0", - "doctrine": "2.1.0", - "eslint-scope": "4.0.0", - "eslint-utils": "1.3.1", - "eslint-visitor-keys": "1.0.0", - "espree": "4.0.0", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.2", - "globals": "11.7.0", - "ignore": "4.0.3", - "imurmurhash": "0.1.4", - "inquirer": "5.2.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.12.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.5", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.0", - "regexpp": "1.1.0", - "require-uncached": "1.0.3", - "semver": "5.5.0", - "string.prototype.matchall": "2.0.0", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", - "table": "4.0.3", - "text-table": "0.2.0" + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.3.0.tgz", + "integrity": "sha512-N/tCqlMKkyNvAvLu+zI9AqDasnSLt00K+Hu8kdsERliC9jYEc8ck12XtjvOXrBKu8fK6RrBcN9bat6Xk++9jAg==", + "dev": true, + "requires": { + "ajv": "^6.5.0", + "babel-code-frame": "^6.26.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^4.0.0", + "eslint-utils": "^1.3.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^4.0.0", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.7.0", + "ignore": "^4.0.2", + "imurmurhash": "^0.1.4", + "inquirer": "^5.2.0", + "is-resolvable": "^1.1.0", + "js-yaml": "^3.11.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.5", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^2.0.0", + "require-uncached": "^1.0.3", + "semver": "^5.5.0", + "string.prototype.matchall": "^2.0.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "^2.0.1", + "table": "^4.0.3", + "text-table": "^0.2.0" }, "dependencies": { "ajv": { @@ -6083,10 +5801,10 @@ "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", "dev": true, "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.1" } }, "cross-spawn": { @@ -6095,11 +5813,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "1.0.4", - "path-key": "2.0.1", - "semver": "5.5.0", - "shebang-command": "1.2.0", - "which": "1.3.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "fast-deep-equal": { @@ -6134,7 +5852,7 @@ "integrity": "sha512-ag8YEyBXsm3nmOv1Hz991VtNNDMRa+MNy8cY47Pl4bw6iuzqKbJajXdqUpiw13STdLLrznxgm1hj9NhxeOYq0A==", "dev": true, "requires": { - "get-stdin": "5.0.1" + "get-stdin": "^5.0.1" }, "dependencies": { "get-stdin": { @@ -6151,16 +5869,8 @@ "integrity": "sha512-9XcVyZiQRVeFjqHw8qHNDAZcQLqaHlOGGpeYqzYh8S4JYCWTCO3yzyen8yVmA5PratfzTRWDwCOFphtDEG+w/w==", "dev": true, "requires": { - "eslint-utils": "1.3.1", - "regexpp": "2.0.0" - }, - "dependencies": { - "regexpp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.0.tgz", - "integrity": "sha512-g2FAVtR8Uh8GO1Nv5wpxW7VFVwHcCEr4wyA8/MHiRkO8uHoR5ntAA8Uq3P1vvMTX/BeQiRVSpDGLd+Wn5HNOTA==", - "dev": true - } + "eslint-utils": "^1.3.0", + "regexpp": "^2.0.0" } }, "eslint-plugin-node": { @@ -6169,12 +5879,12 @@ "integrity": "sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw==", "dev": true, "requires": { - "eslint-plugin-es": "1.3.1", - "eslint-utils": "1.3.1", - "ignore": "4.0.3", - "minimatch": "3.0.4", - "resolve": "1.8.1", - "semver": "5.5.0" + "eslint-plugin-es": "^1.3.1", + "eslint-utils": "^1.3.1", + "ignore": "^4.0.2", + "minimatch": "^3.0.4", + "resolve": "^1.8.1", + "semver": "^5.5.0" }, "dependencies": { "ignore": { @@ -6189,7 +5899,7 @@ "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } } } @@ -6200,8 +5910,8 @@ "integrity": "sha512-tGek5clmW5swrAx1mdPYM8oThrBE83ePh7LeseZHBWfHVGrHPhKn7Y5zgRMbU/9D5Td9K4CEmUPjGxA7iw98Og==", "dev": true, "requires": { - "fast-diff": "1.1.2", - "jest-docblock": "21.2.0" + "fast-diff": "^1.1.1", + "jest-docblock": "^21.0.0" } }, "eslint-scope": { @@ -6210,8 +5920,8 @@ "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", "dev": true, "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint-utils": { @@ -6232,16 +5942,16 @@ "integrity": "sha512-F4TY1qYJB1aUyzB03NsZksZzUQmQoEBaTUjRJGR30GxbkbjKI41NhCyYjrF+bGgWN7x/ZsczYppRpz/0WdI0ug==", "dev": true, "requires": { - "array-find": "1.0.0", - "escallmatch": "1.5.0", - "escodegen": "1.11.0", - "escope": "3.6.0", - "espower-location-detector": "1.0.0", - "espurify": "1.8.1", - "estraverse": "4.2.0", - "source-map": "0.5.7", - "type-name": "2.0.2", - "xtend": "4.0.1" + "array-find": "^1.0.0", + "escallmatch": "^1.5.0", + "escodegen": "^1.7.0", + "escope": "^3.3.0", + "espower-location-detector": "^1.0.0", + "espurify": "^1.3.0", + "estraverse": "^4.1.0", + "source-map": "^0.5.0", + "type-name": "^2.0.0", + "xtend": "^4.0.0" } }, "espower-loader": { @@ -6250,11 +5960,11 @@ "integrity": "sha1-7bRsPFmga6yOpzppXIblxaC8gto=", "dev": true, "requires": { - "convert-source-map": "1.5.1", - "espower-source": "2.3.0", - "minimatch": "3.0.4", - "source-map-support": "0.4.18", - "xtend": "4.0.1" + "convert-source-map": "^1.1.0", + "espower-source": "^2.0.0", + "minimatch": "^3.0.0", + "source-map-support": "^0.4.0", + "xtend": "^4.0.0" }, "dependencies": { "source-map-support": { @@ -6263,7 +5973,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } } } @@ -6274,10 +5984,10 @@ "integrity": "sha1-oXt+zFnTDheeK+9z+0E3cEyzMbU=", "dev": true, "requires": { - "is-url": "1.2.4", - "path-is-absolute": "1.0.1", - "source-map": "0.5.7", - "xtend": "4.0.1" + "is-url": "^1.2.1", + "path-is-absolute": "^1.0.0", + "source-map": "^0.5.0", + "xtend": "^4.0.0" } }, "espower-source": { @@ -6286,17 +5996,17 @@ "integrity": "sha512-Wc4kC4zUAEV7Qt31JRPoBUc5jjowHRylml2L2VaDQ1XEbnqQofGWx+gPR03TZAPokAMl5dqyL36h3ITyMXy3iA==", "dev": true, "requires": { - "acorn": "5.7.1", - "acorn-es7-plugin": "1.1.7", - "convert-source-map": "1.5.1", - "empower-assert": "1.1.0", - "escodegen": "1.11.0", - "espower": "2.1.1", - "estraverse": "4.2.0", - "merge-estraverse-visitors": "1.0.0", - "multi-stage-sourcemap": "0.2.1", - "path-is-absolute": "1.0.1", - "xtend": "4.0.1" + "acorn": "^5.0.0", + "acorn-es7-plugin": "^1.0.10", + "convert-source-map": "^1.1.1", + "empower-assert": "^1.0.0", + "escodegen": "^1.10.0", + "espower": "^2.1.1", + "estraverse": "^4.0.0", + "merge-estraverse-visitors": "^1.0.0", + "multi-stage-sourcemap": "^0.2.1", + "path-is-absolute": "^1.0.0", + "xtend": "^4.0.0" } }, "espree": { @@ -6305,8 +6015,8 @@ "integrity": "sha512-kapdTCt1bjmspxStVKX6huolXVV5ZfyZguY1lcfhVVZstce3bqxH9mcLzNn3/mlgW6wQ732+0fuG9v7h0ZQoKg==", "dev": true, "requires": { - "acorn": "5.7.1", - "acorn-jsx": "4.1.1" + "acorn": "^5.6.0", + "acorn-jsx": "^4.1.1" } }, "esprima": { @@ -6321,7 +6031,7 @@ "integrity": "sha512-ZDko6eY/o+D/gHCWyHTU85mKDgYcS4FJj7S+YD6WIInm7GQ6AnOjmcL4+buFV/JOztVLELi/7MmuGU5NHta0Mg==", "dev": true, "requires": { - "core-js": "2.5.7" + "core-js": "^2.0.0" } }, "esquery": { @@ -6330,7 +6040,7 @@ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "esrecurse": { @@ -6339,7 +6049,7 @@ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.1.0" } }, "estraverse": { @@ -6366,8 +6076,8 @@ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45" + "d": "1", + "es5-ext": "~0.10.14" } }, "ewma": { @@ -6376,7 +6086,7 @@ "integrity": "sha512-MYYK17A76cuuyvkR7MnqLW4iFYPEi5Isl2qb8rXiWpLiwFS9dxW/rncuNnjjgSENuVqZQkIuR4+DChVL4g1lnw==", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "execa": { @@ -6385,13 +6095,13 @@ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } }, "expand-brackets": { @@ -6400,7 +6110,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -6409,7 +6119,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "2.2.4" + "fill-range": "^2.1.0" } }, "express": { @@ -6418,36 +6128,36 @@ "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", "dev": true, "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.5", "array-flatten": "1.1.1", "body-parser": "1.18.2", "content-disposition": "0.5.2", - "content-type": "1.0.4", + "content-type": "~1.0.4", "cookie": "0.3.1", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "1.1.2", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "finalhandler": "1.1.1", "fresh": "0.5.2", "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.4", + "proxy-addr": "~2.0.3", "qs": "6.5.1", - "range-parser": "1.2.0", + "range-parser": "~1.2.0", "safe-buffer": "5.1.1", "send": "0.16.2", "serve-static": "1.13.2", "setprototypeof": "1.1.0", - "statuses": "1.4.0", - "type-is": "1.6.16", + "statuses": "~1.4.0", + "type-is": "~1.6.16", "utils-merge": "1.0.1", - "vary": "1.1.2" + "vary": "~1.1.2" }, "dependencies": { "body-parser": { @@ -6457,15 +6167,15 @@ "dev": true, "requires": { "bytes": "3.0.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.3", + "depd": "~1.1.1", + "http-errors": "~1.6.2", "iconv-lite": "0.4.19", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.5.1", "raw-body": "2.3.2", - "type-is": "1.6.16" + "type-is": "~1.6.15" } }, "debug": { @@ -6522,7 +6232,7 @@ "depd": "1.1.1", "inherits": "2.0.3", "setprototypeof": "1.0.3", - "statuses": "1.4.0" + "statuses": ">= 1.3.1 < 2" } }, "setprototypeof": { @@ -6564,8 +6274,8 @@ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -6574,7 +6284,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -6585,9 +6295,9 @@ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.23", - "tmp": "0.0.33" + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" } }, "extglob": { @@ -6596,7 +6306,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "extsprintf": { @@ -6627,12 +6337,12 @@ "integrity": "sha512-TR6zxCKftDQnUAPvkrCWdBgDq/gbqx8A3ApnBrR5rMvpp6+KMJI0Igw7fkWPgeVK0uhRXTXdvO3O+YP0CaUX2g==", "dev": true, "requires": { - "@mrmlnc/readdir-enhanced": "2.2.1", - "@nodelib/fs.stat": "1.1.0", - "glob-parent": "3.1.0", - "is-glob": "4.0.0", - "merge2": "1.2.2", - "micromatch": "3.1.10" + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.0.1", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.1", + "micromatch": "^3.1.10" }, "dependencies": { "arr-diff": { @@ -6653,16 +6363,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "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.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "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.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -6671,7 +6381,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -6691,13 +6401,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "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" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -6706,7 +6416,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -6715,7 +6425,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -6724,7 +6434,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -6733,7 +6443,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -6744,7 +6454,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -6753,7 +6463,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -6764,9 +6474,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -6783,14 +6493,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "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" + "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.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -6799,7 +6509,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -6808,7 +6518,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -6819,10 +6529,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -6831,7 +6541,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -6842,8 +6552,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { @@ -6852,7 +6562,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -6863,7 +6573,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -6872,7 +6582,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -6881,9 +6591,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-extglob": { @@ -6898,7 +6608,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "is-number": { @@ -6907,7 +6617,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -6916,7 +6626,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -6939,19 +6649,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "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.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } @@ -6973,7 +6683,7 @@ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -6982,8 +6692,8 @@ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "dev": true, "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" } }, "filename-regex": { @@ -6998,8 +6708,8 @@ "integrity": "sha1-mo+jb06K1jTjv2tPPIiCVRRS6yA=", "dev": true, "requires": { - "is-object": "1.0.1", - "merge-descriptors": "1.0.1" + "is-object": "~1.0.1", + "merge-descriptors": "~1.0.0" } }, "fill-range": { @@ -7008,11 +6718,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "dev": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.0.0", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" } }, "finalhandler": { @@ -7022,12 +6732,12 @@ "dev": true, "requires": { "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.4.0", - "unpipe": "1.0.0" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" }, "dependencies": { "debug": { @@ -7053,9 +6763,9 @@ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", "dev": true, "requires": { - "commondir": "1.0.1", - "make-dir": "1.3.0", - "pkg-dir": "2.0.0" + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" } }, "find-my-way": { @@ -7064,9 +6774,9 @@ "integrity": "sha512-cwR1IxkB1JIIGxWpX3TQC1U/51htT4dps536rno7fkszeSSevvZGkl1dpIANRNq+X6/VDSF/S4JAuDPSTepHBA==", "dev": true, "requires": { - "fast-decode-uri-component": "1.0.0", - "safe-regex": "1.1.0", - "semver-store": "0.3.0" + "fast-decode-uri-component": "^1.0.0", + "safe-regex": "^1.1.0", + "semver-store": "^0.3.0" } }, "find-up": { @@ -7075,7 +6785,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "flat-cache": { @@ -7084,10 +6794,10 @@ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "dev": true, "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" } }, "fn-name": { @@ -7097,11 +6807,11 @@ "dev": true }, "follow-redirects": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.1.tgz", - "integrity": "sha512-v9GI1hpaqq1ZZR6pBD1+kI7O24PhDvNGNodjS3MdcEqyrahCp8zbtpv+2B/krUnSmUH80lbAS7MrdeK5IylgKg==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.2.tgz", + "integrity": "sha512-kssLorP/9acIdpQ2udQVTiCS5LQmdEz9mvdIfDcl1gYX2tPKFADHSyFdvJS040XdFsPzemWtgI3q8mFVCxtX8A==", "requires": { - "debug": "3.1.0" + "debug": "^3.1.0" } }, "for-in": { @@ -7116,7 +6826,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "foreach": { @@ -7135,9 +6845,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "requires": { - "asynckit": "0.4.0", + "asynckit": "^0.4.0", "combined-stream": "1.0.6", - "mime-types": "2.1.19" + "mime-types": "^2.1.12" } }, "formidable": { @@ -7158,7 +6868,7 @@ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fresh": { @@ -7173,8 +6883,8 @@ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" } }, "fs-extra": { @@ -7183,9 +6893,9 @@ "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "4.0.0", - "universalify": "0.1.2" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, "fs.realpath": { @@ -7201,8 +6911,8 @@ "dev": true, "optional": true, "requires": { - "nan": "2.10.0", - "node-pre-gyp": "0.10.0" + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { "abbrev": { @@ -7228,8 +6938,8 @@ "dev": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "balanced-match": { @@ -7242,7 +6952,7 @@ "bundled": true, "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -7306,7 +7016,7 @@ "dev": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "fs.realpath": { @@ -7321,14 +7031,14 @@ "dev": true, "optional": true, "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" } }, "glob": { @@ -7337,12 +7047,12 @@ "dev": true, "optional": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "has-unicode": { @@ -7357,7 +7067,7 @@ "dev": true, "optional": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "^2.1.0" } }, "ignore-walk": { @@ -7366,7 +7076,7 @@ "dev": true, "optional": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "inflight": { @@ -7375,8 +7085,8 @@ "dev": true, "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -7395,7 +7105,7 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "isarray": { @@ -7409,7 +7119,7 @@ "bundled": true, "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -7422,8 +7132,8 @@ "bundled": true, "dev": true, "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" } }, "minizlib": { @@ -7432,7 +7142,7 @@ "dev": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "mkdirp": { @@ -7455,9 +7165,9 @@ "dev": true, "optional": true, "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, "node-pre-gyp": { @@ -7466,16 +7176,16 @@ "dev": true, "optional": true, "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" } }, "nopt": { @@ -7484,8 +7194,8 @@ "dev": true, "optional": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npm-bundled": { @@ -7500,8 +7210,8 @@ "dev": true, "optional": true, "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npmlog": { @@ -7510,10 +7220,10 @@ "dev": true, "optional": true, "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "number-is-nan": { @@ -7532,7 +7242,7 @@ "bundled": true, "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -7553,8 +7263,8 @@ "dev": true, "optional": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { @@ -7575,10 +7285,10 @@ "dev": true, "optional": true, "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -7595,13 +7305,13 @@ "dev": true, "optional": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "rimraf": { @@ -7610,7 +7320,7 @@ "dev": true, "optional": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { @@ -7653,9 +7363,9 @@ "bundled": true, "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { @@ -7664,7 +7374,7 @@ "dev": true, "optional": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -7672,7 +7382,7 @@ "bundled": true, "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -7687,13 +7397,13 @@ "dev": true, "optional": true, "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" } }, "util-deprecate": { @@ -7708,7 +7418,7 @@ "dev": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { @@ -7746,8 +7456,8 @@ "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.6.3.tgz", "integrity": "sha512-MSmczZctbz91AxCvqp9GHBoZOSbJKAICV7Ow/AIWSJZRrRchUd5NL1b2P4OfP+4m490BEUPhhARfpHdqCxuCvg==", "requires": { - "axios": "0.18.0", - "extend": "3.0.2", + "axios": "^0.18.0", + "extend": "^3.0.1", "retry-axios": "0.3.2" } }, @@ -7792,7 +7502,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "glob": { @@ -7801,12 +7511,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-base": { @@ -7815,8 +7525,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -7825,7 +7535,7 @@ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "glob-to-regexp": { @@ -7840,7 +7550,7 @@ "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "dev": true, "requires": { - "ini": "1.3.5" + "ini": "^1.3.4" } }, "globals": { @@ -7855,11 +7565,11 @@ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "dev": true, "requires": { - "array-union": "1.0.2", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "pify": { @@ -7880,7 +7590,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } } } @@ -7890,13 +7600,13 @@ "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-1.6.1.tgz", "integrity": "sha512-jYiWC8NA9n9OtQM7ANn0Tk464do9yhKEtaJ72pKcaBiEwn4LwcGYIYOfwtfsSm3aur/ed3tlSxbmg24IAT6gAg==", "requires": { - "axios": "0.18.0", - "gcp-metadata": "0.6.3", - "gtoken": "2.3.0", - "jws": "3.1.5", - "lodash.isstring": "4.0.1", - "lru-cache": "4.1.3", - "retry-axios": "0.3.2" + "axios": "^0.18.0", + "gcp-metadata": "^0.6.3", + "gtoken": "^2.3.0", + "jws": "^3.1.5", + "lodash.isstring": "^4.0.1", + "lru-cache": "^4.1.3", + "retry-axios": "^0.3.2" } }, "google-p12-pem": { @@ -7904,8 +7614,8 @@ "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-1.0.2.tgz", "integrity": "sha512-+EuKr4CLlGsnXx4XIJIVkcKYrsa2xkAmCvxRhX2HsazJzUBAJ35wARGeApHUn4nNfPD03Vl057FskNr20VaCyg==", "requires": { - "node-forge": "0.7.5", - "pify": "3.0.0" + "node-forge": "^0.7.4", + "pify": "^3.0.0" } }, "got": { @@ -7914,23 +7624,23 @@ "integrity": "sha512-kBNy/S2CGwrYgDSec5KTWGKUvupwkkTVAjIsVFF2shXO13xpZdFP4d4kxa//CLX2tN/rV0aYwK8vY6UKWGn2vQ==", "dev": true, "requires": { - "@sindresorhus/is": "0.7.0", - "cacheable-request": "2.1.4", - "decompress-response": "3.3.0", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "into-stream": "3.1.0", - "is-retry-allowed": "1.1.0", - "isurl": "1.0.0", - "lowercase-keys": "1.0.1", - "mimic-response": "1.0.1", - "p-cancelable": "0.4.1", - "p-timeout": "2.0.1", - "pify": "3.0.0", - "safe-buffer": "5.1.2", - "timed-out": "4.0.1", - "url-parse-lax": "3.0.0", - "url-to-options": "1.0.1" + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.4.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" }, "dependencies": { "prepend-http": { @@ -7945,7 +7655,7 @@ "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "dev": true, "requires": { - "prepend-http": "2.0.0" + "prepend-http": "^2.0.0" } } } @@ -7967,11 +7677,11 @@ "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-2.3.0.tgz", "integrity": "sha512-Jc9/8mV630cZE9FC5tIlJCZNdUjwunvlwOtCz6IDlaiB4Sz68ki29a1+q97sWTnTYroiuF9B135rod9zrQdHLw==", "requires": { - "axios": "0.18.0", - "google-p12-pem": "1.0.2", - "jws": "3.1.5", - "mime": "2.3.1", - "pify": "3.0.0" + "axios": "^0.18.0", + "google-p12-pem": "^1.0.0", + "jws": "^3.1.4", + "mime": "^2.2.0", + "pify": "^3.0.0" } }, "gts": { @@ -7980,15 +7690,15 @@ "integrity": "sha512-VB9LQLFR+10cJhDBLYu9i2t7vTkewTXeBJbvw5+M2LqGgjiaKIUTIFbVBLjIknDpuaRpAzVcvhiHWy/30c09jg==", "dev": true, "requires": { - "chalk": "2.4.1", + "chalk": "^2.4.1", "clang-format": "1.2.3", - "inquirer": "6.0.0", - "meow": "5.0.0", - "pify": "3.0.0", - "rimraf": "2.6.2", - "tslint": "5.11.0", - "update-notifier": "2.5.0", - "write-file-atomic": "2.3.0" + "inquirer": "^6.0.0", + "meow": "^5.0.0", + "pify": "^3.0.0", + "rimraf": "^2.6.2", + "tslint": "^5.9.1", + "update-notifier": "^2.5.0", + "write-file-atomic": "^2.3.0" }, "dependencies": { "camelcase": { @@ -8003,9 +7713,9 @@ "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", "dev": true, "requires": { - "camelcase": "4.1.0", - "map-obj": "2.0.0", - "quick-lru": "1.1.0" + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" } }, "chardet": { @@ -8020,9 +7730,9 @@ "integrity": "sha512-mpkfj0FEdxrIhOC04zk85X7StNtr0yXnG7zCb+8ikO8OJi2jsHh5YGoknNTyXgsbHOf1WOOcVU3kPFWT2WgCkQ==", "dev": true, "requires": { - "chardet": "0.5.0", - "iconv-lite": "0.4.23", - "tmp": "0.0.33" + "chardet": "^0.5.0", + "iconv-lite": "^0.4.22", + "tmp": "^0.0.33" } }, "inquirer": { @@ -8031,19 +7741,19 @@ "integrity": "sha512-tISQWRwtcAgrz+SHPhTH7d3e73k31gsOy6i1csonLc0u1dVK/wYvuOnFeiWqC5OXFIYbmrIFInef31wbT8MEJg==", "dev": true, "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "3.0.0", - "figures": "2.0.0", - "lodash": "4.17.5", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.0", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rxjs": "6.2.2", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rxjs": "^6.1.0", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" } }, "load-json-file": { @@ -8052,10 +7762,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "map-obj": { @@ -8070,15 +7780,15 @@ "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", "dev": true, "requires": { - "camelcase-keys": "4.2.0", - "decamelize-keys": "1.1.0", - "loud-rejection": "1.6.0", - "minimist-options": "3.0.2", - "normalize-package-data": "2.4.0", - "read-pkg-up": "3.0.0", - "redent": "2.0.0", - "trim-newlines": "2.0.0", - "yargs-parser": "10.1.0" + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0", + "yargs-parser": "^10.0.0" } }, "parse-json": { @@ -8087,8 +7797,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "path-type": { @@ -8097,7 +7807,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "read-pkg": { @@ -8106,9 +7816,9 @@ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.4.0", - "path-type": "3.0.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" } }, "read-pkg-up": { @@ -8117,8 +7827,8 @@ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "3.0.0" + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" } }, "redent": { @@ -8127,8 +7837,8 @@ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", "dev": true, "requires": { - "indent-string": "3.2.0", - "strip-indent": "2.0.0" + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" } }, "rxjs": { @@ -8137,7 +7847,7 @@ "integrity": "sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==", "dev": true, "requires": { - "tslib": "1.9.3" + "tslib": "^1.9.0" } }, "strip-indent": { @@ -8166,10 +7876,10 @@ "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" }, "dependencies": { "source-map": { @@ -8178,34 +7888,34 @@ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } }, "hapi": { - "version": "17.5.2", - "resolved": "https://registry.npmjs.org/hapi/-/hapi-17.5.2.tgz", - "integrity": "sha512-UxMKYzrjfXlcztJQPEB3os5rM3SKgSQVxoOym4KI3JdP4pxl5WUdZYF8it4Kga2OMTGwB+ZTy+DU9b/oDaQHRQ==", - "dev": true, - "requires": { - "accept": "3.0.2", - "ammo": "3.0.1", - "boom": "7.2.0", - "bounce": "1.2.0", - "call": "5.0.1", - "catbox": "10.0.2", - "catbox-memory": "3.1.2", - "heavy": "6.1.0", - "hoek": "5.0.3", - "joi": "13.5.2", - "mimos": "4.0.0", - "podium": "3.1.2", - "shot": "4.0.5", - "statehood": "6.0.6", - "subtext": "6.0.7", - "teamwork": "3.0.1", - "topo": "3.0.0" + "version": "17.5.3", + "resolved": "https://registry.npmjs.org/hapi/-/hapi-17.5.3.tgz", + "integrity": "sha512-1sb73YkoUfSEBaVe5QWhHnUYuSyJfo+J27ZgA8DGQSqHASlOwuLl28QBzZ3rVnE06AbOYnD18hLKVI4c8IlGLA==", + "dev": true, + "requires": { + "accept": "3.x.x", + "ammo": "3.x.x", + "boom": "7.x.x", + "bounce": "1.x.x", + "call": "5.x.x", + "catbox": "10.x.x", + "catbox-memory": "3.x.x", + "heavy": "6.x.x", + "hoek": "5.x.x", + "joi": "13.x.x", + "mimos": "4.x.x", + "podium": "3.x.x", + "shot": "4.x.x", + "statehood": "6.x.x", + "subtext": "6.x.x", + "teamwork": "3.x.x", + "topo": "3.x.x" } }, "har-schema": { @@ -8218,8 +7928,8 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" + "ajv": "^5.1.0", + "har-schema": "^2.0.0" } }, "has": { @@ -8228,7 +7938,7 @@ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.1.1" } }, "has-ansi": { @@ -8237,7 +7947,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-color": { @@ -8270,7 +7980,7 @@ "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", "dev": true, "requires": { - "has-symbol-support-x": "1.4.2" + "has-symbol-support-x": "^1.4.1" } }, "has-value": { @@ -8279,9 +7989,9 @@ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -8298,8 +8008,8 @@ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { @@ -8308,7 +8018,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -8317,7 +8027,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -8328,7 +8038,7 @@ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -8351,9 +8061,9 @@ "integrity": "sha512-TKS9DC9NOTGulHQI31Lx+bmeWmNOstbJbGMiN3pX6bF+Zc2GKSpbbym4oasNnB6yPGkqJ9TQXXYDGohqNSJRxA==", "dev": true, "requires": { - "boom": "7.2.0", - "hoek": "5.0.3", - "joi": "13.5.2" + "boom": "7.x.x", + "hoek": "5.x.x", + "joi": "13.x.x" } }, "hoek": { @@ -8368,8 +8078,8 @@ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" } }, "hosted-git-info": { @@ -8384,10 +8094,10 @@ "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "dev": true, "requires": { - "inherits": "2.0.3", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "wbuf": "1.7.3" + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" } }, "htmlparser2": { @@ -8396,12 +8106,12 @@ "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", "dev": true, "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.4.2", - "domutils": "1.7.0", - "entities": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "domelementtype": "^1.3.0", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" } }, "http-assert": { @@ -8410,8 +8120,8 @@ "integrity": "sha1-oxpc+IyHPsu1eWkH1NbxMujAHko=", "dev": true, "requires": { - "deep-equal": "1.0.1", - "http-errors": "1.6.3" + "deep-equal": "~1.0.1", + "http-errors": "~1.6.1" } }, "http-cache-semantics": { @@ -8432,10 +8142,10 @@ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, "requires": { - "depd": "1.1.2", + "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", - "statuses": "1.5.0" + "statuses": ">= 1.4.0 < 2" } }, "http-signature": { @@ -8443,9 +8153,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.14.2" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "hullabaloo-config-manager": { @@ -8454,20 +8164,20 @@ "integrity": "sha512-ztKnkZV0TmxnumCDHHgLGNiDnotu4EHCp9YMkznWuo4uTtCyJ+cu+RNcxUeXYKTllpvLFWnbfWry09yzszgg+A==", "dev": true, "requires": { - "dot-prop": "4.2.0", - "es6-error": "4.1.1", - "graceful-fs": "4.1.11", - "indent-string": "3.2.0", - "json5": "0.5.1", - "lodash.clonedeep": "4.5.0", - "lodash.clonedeepwith": "4.5.0", - "lodash.isequal": "4.5.0", - "lodash.merge": "4.6.1", - "md5-hex": "2.0.0", - "package-hash": "2.0.0", - "pkg-dir": "2.0.0", - "resolve-from": "3.0.0", - "safe-buffer": "5.1.2" + "dot-prop": "^4.1.0", + "es6-error": "^4.0.2", + "graceful-fs": "^4.1.11", + "indent-string": "^3.1.0", + "json5": "^0.5.1", + "lodash.clonedeep": "^4.5.0", + "lodash.clonedeepwith": "^4.5.0", + "lodash.isequal": "^4.5.0", + "lodash.merge": "^4.6.0", + "md5-hex": "^2.0.0", + "package-hash": "^2.0.0", + "pkg-dir": "^2.0.0", + "resolve-from": "^3.0.0", + "safe-buffer": "^5.0.1" } }, "iconv-lite": { @@ -8476,7 +8186,7 @@ "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "dev": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ignore": { @@ -8497,7 +8207,7 @@ "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "dev": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "import-lazy": { @@ -8512,8 +8222,8 @@ "integrity": "sha1-sReVcqrNwRxqkQCftDDbyrX2aKg=", "dev": true, "requires": { - "pkg-dir": "2.0.0", - "resolve-cwd": "2.0.0" + "pkg-dir": "^2.0.0", + "resolve-cwd": "^2.0.0" } }, "imurmurhash": { @@ -8540,8 +8250,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -8561,8 +8271,8 @@ "integrity": "sha512-STx5orGQU1gfrkoI/fMU7lX6CSP7LBGO10gXNgOZhwKhUqbtNjCkYSewJtNnLmWP1tAGN6oyEpG1HFPw5vpa5Q==", "dev": true, "requires": { - "moment": "2.22.2", - "sanitize-html": "1.18.2" + "moment": "^2.14.1", + "sanitize-html": "^1.13.0" } }, "inquirer": { @@ -8571,19 +8281,19 @@ "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==", "dev": true, "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.5", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.1.0", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rxjs": "5.5.11", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rxjs": "^5.5.2", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" } }, "intelli-espower-loader": { @@ -8592,7 +8302,7 @@ "integrity": "sha1-LHsDFGvB1GvyENCgOXxckatMorA=", "dev": true, "requires": { - "espower-loader": "1.2.2" + "espower-loader": "^1.0.0" } }, "into-stream": { @@ -8601,8 +8311,8 @@ "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", "dev": true, "requires": { - "from2": "2.3.0", - "p-is-promise": "1.1.0" + "from2": "^2.1.1", + "p-is-promise": "^1.1.0" } }, "invariant": { @@ -8611,7 +8321,7 @@ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -8632,9 +8342,9 @@ "integrity": "sha512-7iQ5/xFMIYaNt9g2oiNiWdhrOTdRUMFaWENUd0KghxwPUhrIH8DUY8FEyLNTTzf75jaII+jMexLdY/2HfV61RQ==", "dev": true, "requires": { - "boom": "7.2.0", - "cryptiles": "4.1.2", - "hoek": "5.0.3" + "boom": "7.x.x", + "cryptiles": "4.x.x", + "hoek": "5.x.x" } }, "irregular-plurals": { @@ -8654,7 +8364,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { @@ -8669,7 +8379,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "binary-extensions": "1.11.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -8683,7 +8393,7 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-callable": { @@ -8698,7 +8408,7 @@ "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", "dev": true, "requires": { - "ci-info": "1.1.3" + "ci-info": "^1.0.0" } }, "is-data-descriptor": { @@ -8707,7 +8417,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-date-object": { @@ -8722,9 +8432,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { @@ -8747,7 +8457,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-error": { @@ -8774,7 +8484,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -8801,7 +8511,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-installed-globally": { @@ -8810,8 +8520,8 @@ "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "dev": true, "requires": { - "global-dirs": "0.1.1", - "is-path-inside": "1.0.1" + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" } }, "is-npm": { @@ -8826,7 +8536,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-obj": { @@ -8847,7 +8557,7 @@ "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", "dev": true, "requires": { - "symbol-observable": "1.2.0" + "symbol-observable": "^1.1.0" } }, "is-path-cwd": { @@ -8862,7 +8572,7 @@ "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, "requires": { - "is-path-inside": "1.0.1" + "is-path-inside": "^1.0.0" } }, "is-path-inside": { @@ -8871,7 +8581,7 @@ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" } }, "is-plain-obj": { @@ -8886,7 +8596,7 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -8927,7 +8637,7 @@ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "requires": { - "has": "1.0.3" + "has": "^1.0.1" } }, "is-resolvable": { @@ -8993,7 +8703,7 @@ "integrity": "sha512-5xbsG5wYADIcB+mfLsd+nst1V/D+I7EU7LEZPo2GOIMu4JzfcRs5yQoypP4avA7QtUqgxYLKBYNv4IdzBmbhdw==", "dev": true, "requires": { - "punycode": "2.1.1" + "punycode": "2.x.x" }, "dependencies": { "punycode": { @@ -9041,8 +8751,8 @@ "@babel/template": "7.0.0-beta.51", "@babel/traverse": "7.0.0-beta.51", "@babel/types": "7.0.0-beta.51", - "istanbul-lib-coverage": "2.0.1", - "semver": "5.5.0" + "istanbul-lib-coverage": "^2.0.1", + "semver": "^5.5.0" } }, "isurl": { @@ -9051,8 +8761,8 @@ "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", "dev": true, "requires": { - "has-to-string-tag-x": "1.4.1", - "is-object": "1.0.1" + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" } }, "jest-docblock": { @@ -9067,9 +8777,9 @@ "integrity": "sha512-3HrFXLC57iU5CzYth3cJRdYEo4/Dr+tXmCQ+BHyiTTKnKxJ9ICkI/WJGPwUUXj3dWA4tO2hwZO5oCdBNhAYuRg==", "dev": true, "requires": { - "hoek": "5.0.3", - "isemail": "3.1.3", - "topo": "3.0.0" + "hoek": "5.x.x", + "isemail": "3.x.x", + "topo": "3.x.x" } }, "js-green-licenses": { @@ -9078,14 +8788,14 @@ "integrity": "sha512-HM/SKwAl1R0y9kkBili6GqKc31ZnjzY7JHC2uO9bAHJNRmY5c/s+2cETyaqX0kBD8gX8QVhS4dJjRtY1nAwb4w==", "dev": true, "requires": { - "argparse": "1.0.10", - "axios": "0.18.0", - "npm-package-arg": "6.1.0", - "package-json": "4.0.1", - "pify": "3.0.0", - "spdx-correct": "3.0.0", - "spdx-satisfies": "4.0.0", - "strip-json-comments": "2.0.1" + "argparse": "^1.0.9", + "axios": "^0.18.0", + "npm-package-arg": "^6.0.0", + "package-json": "^4.0.1", + "pify": "^3.0.0", + "spdx-correct": "^3.0.0", + "spdx-satisfies": "^4.0.0", + "strip-json-comments": "^2.0.1" } }, "js-string-escape": { @@ -9106,8 +8816,8 @@ "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "dev": true, "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "js2xmlparser": { @@ -9116,7 +8826,7 @@ "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", "dev": true, "requires": { - "xmlcreate": "1.0.2" + "xmlcreate": "^1.0.1" } }, "jsbn": { @@ -9132,17 +8842,17 @@ "dev": true, "requires": { "babylon": "7.0.0-beta.19", - "bluebird": "3.5.1", - "catharsis": "0.8.9", - "escape-string-regexp": "1.0.5", - "js2xmlparser": "3.0.0", - "klaw": "2.0.0", - "marked": "0.3.19", - "mkdirp": "0.5.1", - "requizzle": "0.2.1", - "strip-json-comments": "2.0.1", + "bluebird": "~3.5.0", + "catharsis": "~0.8.9", + "escape-string-regexp": "~1.0.5", + "js2xmlparser": "~3.0.0", + "klaw": "~2.0.0", + "marked": "~0.3.6", + "mkdirp": "~0.5.1", + "requizzle": "~0.2.1", + "strip-json-comments": "~2.0.1", "taffydb": "2.6.2", - "underscore": "1.8.3" + "underscore": "~1.8.3" }, "dependencies": { "babylon": { @@ -9204,7 +8914,7 @@ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } }, "jsprim": { @@ -9231,7 +8941,7 @@ "requires": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.10", - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "jws": { @@ -9239,8 +8949,8 @@ "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz", "integrity": "sha512-GsCSexFADNQUr8T5HPJvayTjvPIfoyJPtLQBwn5a4WZQchcrPMPMAWcC1AzJVRDKyD6ZPROPAxgv6rfHViO4uQ==", "requires": { - "jwa": "1.1.6", - "safe-buffer": "5.1.2" + "jwa": "^1.1.5", + "safe-buffer": "^5.0.1" } }, "keygrip": { @@ -9264,7 +8974,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "klaw": { @@ -9273,7 +8983,7 @@ "integrity": "sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.9" } }, "koa": { @@ -9282,30 +8992,30 @@ "integrity": "sha512-MoVGWre9g3p35pCqXNhOT/a4trwK5CGvalIoPi7qOA2RCZaep3GCsa/G/tD9QMjQI7bmVWn3XF3SOau8RkPh6w==", "dev": true, "requires": { - "accepts": "1.3.5", - "cache-content-type": "1.0.1", - "content-disposition": "0.5.2", - "content-type": "1.0.4", - "cookies": "0.7.1", - "debug": "3.1.0", - "delegates": "1.0.0", - "depd": "1.1.2", - "destroy": "1.0.4", - "error-inject": "1.0.0", - "escape-html": "1.0.3", - "fresh": "0.5.2", - "http-assert": "1.3.0", - "http-errors": "1.6.3", - "is-generator-function": "1.0.7", - "koa-compose": "4.1.0", - "koa-convert": "1.2.0", - "koa-is-json": "1.0.0", - "on-finished": "2.3.0", - "only": "0.0.2", - "parseurl": "1.3.2", - "statuses": "1.5.0", - "type-is": "1.6.16", - "vary": "1.1.2" + "accepts": "^1.3.5", + "cache-content-type": "^1.0.0", + "content-disposition": "~0.5.2", + "content-type": "^1.0.4", + "cookies": "~0.7.1", + "debug": "^3.1.0", + "delegates": "^1.0.0", + "depd": "^1.1.2", + "destroy": "^1.0.4", + "error-inject": "^1.0.0", + "escape-html": "^1.0.3", + "fresh": "~0.5.2", + "http-assert": "^1.3.0", + "http-errors": "^1.6.3", + "is-generator-function": "^1.0.7", + "koa-compose": "^4.1.0", + "koa-convert": "^1.2.0", + "koa-is-json": "^1.0.0", + "on-finished": "^2.3.0", + "only": "~0.0.2", + "parseurl": "^1.3.2", + "statuses": "^1.5.0", + "type-is": "^1.6.16", + "vary": "^1.1.2" } }, "koa-compose": { @@ -9320,8 +9030,8 @@ "integrity": "sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA=", "dev": true, "requires": { - "co": "4.6.0", - "koa-compose": "3.2.1" + "co": "^4.6.0", + "koa-compose": "^3.0.0" }, "dependencies": { "koa-compose": { @@ -9330,7 +9040,7 @@ "integrity": "sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec=", "dev": true, "requires": { - "any-promise": "1.3.0" + "any-promise": "^1.1.0" } } } @@ -9347,7 +9057,7 @@ "integrity": "sha1-0bZNafhv8kry0EiDos7uFFIKVgA=", "dev": true, "requires": { - "through2": "2.0.3" + "through2": "^2.0.0" } }, "latest-version": { @@ -9356,7 +9066,7 @@ "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", "dev": true, "requires": { - "package-json": "4.0.1" + "package-json": "^4.0.0" } }, "lazy-cache": { @@ -9372,7 +9082,7 @@ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "levn": { @@ -9381,8 +9091,8 @@ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "load-json-file": { @@ -9391,10 +9101,10 @@ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" }, "dependencies": { "pify": { @@ -9411,8 +9121,8 @@ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -9563,7 +9273,7 @@ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0 || ^4.0.0" } }, "loud-rejection": { @@ -9572,8 +9282,8 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, "lowercase-keys": { @@ -9587,8 +9297,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "make-dir": { @@ -9597,7 +9307,7 @@ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "map-cache": { @@ -9618,7 +9328,7 @@ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "marked": { @@ -9633,7 +9343,7 @@ "integrity": "sha512-+BmqxWIubKTRKNWx/ahnCkk3mG8m7OturVlqq6HiojGJTd5hVYbgZm6WzcYPCoB+KBT4Vd6R7WSRG2OADNaCjg==", "dev": true, "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.4" } }, "math-random": { @@ -9648,7 +9358,7 @@ "integrity": "sha1-0FiOnxx0lUSS7NJKwKxs6ZfZLjM=", "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { @@ -9669,7 +9379,7 @@ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "meow": { @@ -9678,16 +9388,16 @@ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" }, "dependencies": { "find-up": { @@ -9696,8 +9406,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "load-json-file": { @@ -9706,11 +9416,11 @@ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" } }, "minimist": { @@ -9725,7 +9435,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-type": { @@ -9734,9 +9444,9 @@ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -9757,7 +9467,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "read-pkg": { @@ -9766,9 +9476,9 @@ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -9777,8 +9487,8 @@ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" } }, "strip-bom": { @@ -9787,7 +9497,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } } } @@ -9804,7 +9514,7 @@ "integrity": "sha1-65aDOLXe1c7tgs7AMH3sui2OqZQ=", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "merge2": { @@ -9825,19 +9535,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" } }, "mime": { @@ -9855,7 +9565,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", "requires": { - "mime-db": "1.35.0" + "mime-db": "~1.35.0" } }, "mimic-fn": { @@ -9876,8 +9586,8 @@ "integrity": "sha512-JvlvRLqGIlk+AYypWrbrDmhsM+6JVx/xBM5S3AMwTBz1trPCEoPN/swO2L4Wu653fL7oJdgk8DMQyG/Gq3JkZg==", "dev": true, "requires": { - "hoek": "5.0.3", - "mime-db": "1.35.0" + "hoek": "5.x.x", + "mime-db": "1.x.x" } }, "minimalistic-assert": { @@ -9892,7 +9602,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -9907,8 +9617,8 @@ "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", "dev": true, "requires": { - "arrify": "1.0.1", - "is-plain-obj": "1.1.0" + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0" } }, "mixin-deep": { @@ -9917,8 +9627,8 @@ "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "dev": true, "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -9927,7 +9637,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -9991,7 +9701,7 @@ "integrity": "sha1-sJ/IWG6qF/gdV1xK0C4Pej9rEQU=", "dev": true, "requires": { - "source-map": "0.1.43" + "source-map": "^0.1.34" }, "dependencies": { "source-map": { @@ -10000,7 +9710,7 @@ "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -10011,10 +9721,10 @@ "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", "dev": true, "requires": { - "array-differ": "1.0.0", - "array-union": "1.0.2", - "arrify": "1.0.1", - "minimatch": "3.0.4" + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "minimatch": "^3.0.0" } }, "mute-stream": { @@ -10030,9 +9740,9 @@ "dev": true, "optional": true, "requires": { - "mkdirp": "0.5.1", - "ncp": "2.0.0", - "rimraf": "2.4.5" + "mkdirp": "~0.5.1", + "ncp": "~2.0.0", + "rimraf": "~2.4.0" }, "dependencies": { "glob": { @@ -10042,11 +9752,11 @@ "dev": true, "optional": true, "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "rimraf": { @@ -10056,7 +9766,7 @@ "dev": true, "optional": true, "requires": { - "glob": "6.0.4" + "glob": "^6.0.1" } } } @@ -10074,17 +9784,17 @@ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, "requires": { - "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.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "arr-diff": { @@ -10149,8 +9859,8 @@ "integrity": "sha512-kCVtUG9JyD//tsYrZY+/Y+2gUrANVSba8y23QkM5Znx0FOxlnl9Z4OVPBODmstKWTOvigfTO+Va1VPOu3eWSOQ==", "dev": true, "requires": { - "hoek": "5.0.3", - "vise": "3.0.0" + "hoek": "5.x.x", + "vise": "3.x.x" } }, "nise": { @@ -10159,28 +9869,28 @@ "integrity": "sha512-BxH/DxoQYYdhKgVAfqVy4pzXRZELHOIewzoesxpjYvpU+7YOalQhGNPf7wAx8pLrTNPrHRDlLOkAl8UI0ZpXjw==", "dev": true, "requires": { - "@sinonjs/formatio": "2.0.0", - "just-extend": "1.1.27", - "lolex": "2.7.1", - "path-to-regexp": "1.7.0", - "text-encoding": "0.6.4" + "@sinonjs/formatio": "^2.0.0", + "just-extend": "^1.1.27", + "lolex": "^2.3.2", + "path-to-regexp": "^1.7.0", + "text-encoding": "^0.6.4" } }, "nock": { - "version": "9.4.3", - "resolved": "https://registry.npmjs.org/nock/-/nock-9.4.3.tgz", - "integrity": "sha512-inJFXR3REBvHbZy6nVVwaoKbVTR8Y4Ag051Y/pd2pNPy7HDYtQkenfilBwxToNsW9p1RTeBUml4SPK/mWrFihA==", + "version": "9.4.4", + "resolved": "https://registry.npmjs.org/nock/-/nock-9.4.4.tgz", + "integrity": "sha512-HrF96ecwONEv7tW8bk79kwc9mshxWAw8WfEPv5LStc0X25bsoWgescTtmevFSetu3gdjOypnUtniubYSz+5DNA==", "dev": true, "requires": { - "chai": "4.1.2", - "debug": "3.1.0", - "deep-equal": "1.0.1", - "json-stringify-safe": "5.0.1", - "lodash": "4.17.5", - "mkdirp": "0.5.1", - "propagate": "1.0.0", - "qs": "6.5.2", - "semver": "5.5.0" + "chai": "^4.1.2", + "debug": "^3.1.0", + "deep-equal": "^1.0.0", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.5", + "mkdirp": "^0.5.0", + "propagate": "^1.0.0", + "qs": "^6.5.1", + "semver": "^5.5.0" } }, "node-forge": { @@ -10194,10 +9904,10 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "2.7.1", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { @@ -10206,7 +9916,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "normalize-url": { @@ -10215,9 +9925,9 @@ "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", "dev": true, "requires": { - "prepend-http": "2.0.0", - "query-string": "5.1.1", - "sort-keys": "2.0.0" + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" }, "dependencies": { "prepend-http": { @@ -10234,10 +9944,10 @@ "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", "dev": true, "requires": { - "hosted-git-info": "2.7.1", - "osenv": "0.1.5", - "semver": "5.5.0", - "validate-npm-package-name": "3.0.0" + "hosted-git-info": "^2.6.0", + "osenv": "^0.1.5", + "semver": "^5.5.0", + "validate-npm-package-name": "^3.0.0" } }, "npm-run-path": { @@ -10246,7 +9956,7 @@ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -10261,318 +9971,286 @@ "integrity": "sha1-ikpO1pCWbBHsWH/4fuoMEsl0upk=", "dev": true, "requires": { - "archy": "1.0.0", - "arrify": "1.0.1", - "caching-transform": "1.0.1", - "convert-source-map": "1.5.1", - "debug-log": "1.0.1", - "default-require-extensions": "1.0.0", - "find-cache-dir": "0.1.1", - "find-up": "2.1.0", - "foreground-child": "1.5.6", - "glob": "7.1.2", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "2.3.2", - "istanbul-lib-report": "1.1.3", - "istanbul-lib-source-maps": "1.2.5", - "istanbul-reports": "1.4.1", - "md5-hex": "1.3.0", - "merge-source-map": "1.1.0", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "resolve-from": "2.0.0", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "spawn-wrap": "1.4.2", - "test-exclude": "4.2.1", + "archy": "^1.0.0", + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.5.1", + "debug-log": "^1.0.1", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^2.1.0", + "foreground-child": "^1.5.3", + "glob": "^7.0.6", + "istanbul-lib-coverage": "^1.2.0", + "istanbul-lib-hook": "^1.1.0", + "istanbul-lib-instrument": "^2.1.0", + "istanbul-lib-report": "^1.1.3", + "istanbul-lib-source-maps": "^1.2.5", + "istanbul-reports": "^1.4.1", + "md5-hex": "^1.2.0", + "merge-source-map": "^1.1.0", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.1", + "spawn-wrap": "^1.4.2", + "test-exclude": "^4.2.0", "yargs": "11.1.0", - "yargs-parser": "8.1.0" + "yargs-parser": "^8.0.0" }, "dependencies": { "align-text": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" } }, "amdefine": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "bundled": true, "dev": true }, "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "bundled": true, "dev": true }, "append-transform": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "bundled": true, "dev": true, "requires": { - "default-require-extensions": "1.0.0" + "default-require-extensions": "^1.0.0" } }, "archy": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "bundled": true, "dev": true }, "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "bundled": true, "dev": true }, "arr-flatten": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=", + "bundled": true, "dev": true }, "arr-union": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "bundled": true, "dev": true }, "array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "bundled": true, "dev": true }, "arrify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "bundled": true, "dev": true }, "assign-symbols": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "bundled": true, "dev": true }, "async": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "bundled": true, "dev": true }, "atob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", - "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", + "bundled": true, "dev": true }, "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "bundled": true, "dev": true }, "base": { "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", + "bundled": true, "dev": true, "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", + "bundled": true, "dev": true } } }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "bundled": true, "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "braces": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", - "dev": true, - "requires": { - "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.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "bundled": true, + "dev": true, + "requires": { + "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.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "builtin-modules": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "bundled": true, "dev": true }, "cache-base": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", + "bundled": true, "dev": true, "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" } }, "caching-transform": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", - "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", + "bundled": true, "dev": true, "requires": { - "md5-hex": "1.3.0", - "mkdirp": "0.5.1", - "write-file-atomic": "1.3.4" + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" } }, "camelcase": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "bundled": true, "dev": true, "optional": true }, "center-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "bundled": true, "dev": true, "optional": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "class-utils": { "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", + "bundled": true, "dev": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } }, "cliui": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "bundled": true, "dev": true, "optional": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" }, "dependencies": { "wordwrap": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "bundled": true, "dev": true, "optional": true } @@ -10580,64 +10258,55 @@ }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "bundled": true, "dev": true }, "collection-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "bundled": true, "dev": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "bundled": true, "dev": true }, "component-emitter": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "bundled": true, "dev": true }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "bundled": true, "dev": true }, "convert-source-map": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "bundled": true, "dev": true }, "copy-descriptor": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "bundled": true, "dev": true }, "cross-spawn": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.3", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, "debug": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", + "bundled": true, "dev": true, "requires": { "ms": "2.0.0" @@ -10645,134 +10314,120 @@ }, "debug-log": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz", - "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", + "bundled": true, "dev": true }, "decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "bundled": true, "dev": true }, "decode-uri-component": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "bundled": true, "dev": true }, "default-require-extensions": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "bundled": true, "dev": true, "requires": { - "strip-bom": "2.0.0" + "strip-bom": "^2.0.0" } }, "define-property": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", + "bundled": true, "dev": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", + "bundled": true, "dev": true } } }, "error-ex": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "bundled": true, "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "execa": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "bundled": true, "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" }, "dependencies": { "cross-spawn": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } } } }, "expand-brackets": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "bundled": true, "dev": true, "requires": { - "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" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "bundled": true, "dev": true, "requires": { "ms": "2.0.0" @@ -10780,727 +10435,644 @@ }, "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "extend-shallow": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "bundled": true, "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "bundled": true, "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } }, "extglob": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", + "bundled": true, "dev": true, "requires": { - "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" + "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.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", + "bundled": true, "dev": true } } }, "fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "bundled": true, "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "find-cache-dir": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "bundled": true, "dev": true, "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" } }, "find-up": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "bundled": true, "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "for-in": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "bundled": true, "dev": true }, "foreground-child": { "version": "1.5.6", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", - "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "bundled": true, "dev": true, "requires": { - "cross-spawn": "4.0.2", - "signal-exit": "3.0.2" + "cross-spawn": "^4", + "signal-exit": "^3.0.0" } }, "fragment-cache": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "bundled": true, "dev": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "bundled": true, "dev": true }, "get-caller-file": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "bundled": true, "dev": true }, "get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "bundled": true, "dev": true }, "get-value": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "bundled": true, "dev": true }, "glob": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", + "bundled": true, "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "graceful-fs": { "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "bundled": true, "dev": true }, "handlebars": { "version": "4.0.11", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", - "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "bundled": true, "dev": true, "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" }, "dependencies": { "source-map": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "bundled": true, "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } }, "has-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "bundled": true, "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" } }, "has-values": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "bundled": true, "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "kind-of": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "hosted-git-info": { "version": "2.6.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", - "integrity": "sha1-IyNbKasjDFdqqw1PE/wEawsDgiI=", + "bundled": true, "dev": true }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "bundled": true, "dev": true }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "bundled": true, "dev": true }, "invert-kv": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "bundled": true, "dev": true }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "bundled": true, "dev": true }, "is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", + "bundled": true, "dev": true }, "is-builtin-module": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "bundled": true, "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", + "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", + "bundled": true, "dev": true } } }, "is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "bundled": true, "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "bundled": true, "dev": true }, "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-odd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", - "integrity": "sha1-dkZiRnH9fqVYzNmieVGC8pWPGyQ=", + "bundled": true, "dev": true, "requires": { - "is-number": "4.0.0" + "is-number": "^4.0.0" }, "dependencies": { "is-number": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha1-ACbjf1RU1z41bf5lZGmYZ8an8P8=", + "bundled": true, "dev": true } } }, "is-plain-object": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", + "bundled": true, "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "is-stream": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "bundled": true, "dev": true }, "is-utf8": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "bundled": true, "dev": true }, "is-windows": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=", + "bundled": true, "dev": true }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "bundled": true, "dev": true }, "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "bundled": true, "dev": true }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "bundled": true, "dev": true }, "istanbul-lib-coverage": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", - "integrity": "sha1-99jy5CuX43/nlhFMsPnWi146Q0E=", + "bundled": true, "dev": true }, "istanbul-lib-hook": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", - "integrity": "sha1-hTjZcDcss3FtU+VVI91UtVeo2Js=", + "bundled": true, "dev": true, "requires": { - "append-transform": "0.4.0" + "append-transform": "^0.4.0" } }, "istanbul-lib-report": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz", - "integrity": "sha1-LfEhiMD6d5kMDSF20tC6M5QYglk=", + "bundled": true, "dev": true, "requires": { - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" + "istanbul-lib-coverage": "^1.1.2", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" }, "dependencies": { "has-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "bundled": true, "dev": true }, "supports-color": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "bundled": true, "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } }, "istanbul-lib-source-maps": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.5.tgz", - "integrity": "sha1-/+a+Tnq4bTYD5CkNVJkLFFBvybE=", + "bundled": true, "dev": true, "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.2.0", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" } }, "istanbul-reports": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.4.1.tgz", - "integrity": "sha1-Ty6OkoqnoF0dpsQn1AmLJlXsczQ=", + "bundled": true, "dev": true, "requires": { - "handlebars": "4.0.11" + "handlebars": "^4.0.3" } }, "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "bundled": true, "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lazy-cache": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "bundled": true, "dev": true, "optional": true }, "lcid": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "bundled": true, "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "load-json-file": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" } }, "locate-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "bundled": true, "dev": true, "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" }, "dependencies": { "path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "bundled": true, "dev": true } } }, "longest": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "bundled": true, "dev": true }, "lru-cache": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha1-oRdc80lt/IQ2wVbDNLSVWZK85pw=", + "bundled": true, "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "map-cache": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "bundled": true, "dev": true }, "map-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "bundled": true, "dev": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "md5-hex": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", - "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", + "bundled": true, "dev": true, "requires": { - "md5-o-matic": "0.1.1" + "md5-o-matic": "^0.1.1" } }, "md5-o-matic": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", - "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=", + "bundled": true, "dev": true }, "mem": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "bundled": true, "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "merge-source-map": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha1-L93n5gIJOfcJBqaPLXrmheTIxkY=", + "bundled": true, "dev": true, "requires": { - "source-map": "0.6.1" + "source-map": "^0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "bundled": true, "dev": true } } }, "micromatch": { "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", - "dev": true, - "requires": { - "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.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "bundled": true, + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", + "bundled": true, "dev": true } } }, "mimic-fn": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=", + "bundled": true, "dev": true }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "bundled": true, "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "bundled": true, "dev": true }, "mixin-deep": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha1-pJ5yaNzhoNlpjkUybFYm3zVD0P4=", + "bundled": true, "dev": true, "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "bundled": true, "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "dev": true, "requires": { "minimist": "0.0.8" @@ -11508,479 +11080,422 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "bundled": true, "dev": true }, "nanomatch": { "version": "1.2.9", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", - "integrity": "sha1-h59xUMstq3pHElkGbBBO7m4Pp8I=", - "dev": true, - "requires": { - "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-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "bundled": true, + "dev": true, + "requires": { + "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-odd": "^2.0.0", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", + "bundled": true, "dev": true } } }, "normalize-package-data": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha1-EvlaMH1YNSB1oEkHuErIvpisAS8=", + "bundled": true, "dev": true, "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "npm-run-path": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "bundled": true, "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "bundled": true, "dev": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "bundled": true, "dev": true }, "object-copy": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "bundled": true, "dev": true, "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } }, "object-visit": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "bundled": true, "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" } }, "object.pick": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "bundled": true, "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "optimist": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "bundled": true, "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "bundled": true, "dev": true }, "os-locale": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha1-QrwpAKa1uL0XN2yOiCtlr8zyS/I=", + "bundled": true, "dev": true, "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" } }, "p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "bundled": true, "dev": true }, "p-limit": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha1-DpK2vty1nwIsE9DxlJ3ILRWQnxw=", + "bundled": true, "dev": true, "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "bundled": true, "dev": true, "requires": { - "p-limit": "1.2.0" + "p-limit": "^1.1.0" } }, "p-try": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "bundled": true, "dev": true }, "parse-json": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "bundled": true, "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "pascalcase": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "bundled": true, "dev": true }, "path-exists": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "bundled": true, "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "bundled": true, "dev": true }, "path-key": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "bundled": true, "dev": true }, "path-parse": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "bundled": true, "dev": true }, "path-type": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "bundled": true, "dev": true }, "pinkie": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "bundled": true, "dev": true }, "pinkie-promise": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "bundled": true, "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "bundled": true, "dev": true, "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" }, "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "bundled": true, "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } }, "posix-character-classes": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "bundled": true, "dev": true }, "pseudomap": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "bundled": true, "dev": true }, "read-pkg": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "bundled": true, "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "bundled": true, "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" }, "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "bundled": true, "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } }, "regex-not": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", + "bundled": true, "dev": true, "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "repeat-element": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "bundled": true, "dev": true }, "repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "bundled": true, "dev": true }, "require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "bundled": true, "dev": true }, "require-main-filename": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "bundled": true, "dev": true }, "resolve-from": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", + "bundled": true, "dev": true }, "resolve-url": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "bundled": true, "dev": true }, "ret": { "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=", + "bundled": true, "dev": true }, "right-align": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "bundled": true, "dev": true, "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha1-LtgVDSShbqhlHm1u8PR8QVjOejY=", + "bundled": true, "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "bundled": true, "dev": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "semver": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha1-3Eu8emyp2Rbe5dQ1FvAJK1j3uKs=", + "bundled": true, "dev": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "bundled": true, "dev": true }, "set-value": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha1-ca5KiPD+77v1LR6mBPP7MV67YnQ=", + "bundled": true, "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "shebang-command": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "bundled": true, "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "bundled": true, "dev": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "bundled": true, "dev": true }, "slide": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "bundled": true, "dev": true }, "snapdragon": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", + "bundled": true, "dev": true, "requires": { - "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.2", - "use": "3.1.0" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "bundled": true, "dev": true, "requires": { "ms": "2.0.0" @@ -11988,291 +11503,261 @@ }, "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } }, "snapdragon-node": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", + "bundled": true, "dev": true, "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "bundled": true, "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "bundled": true, "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", + "bundled": true, "dev": true } } }, "snapdragon-util": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", + "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "bundled": true, "dev": true }, "source-map-resolve": { "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha1-cuLMNAlVQ+Q7LGKyxMENSpBU8lk=", + "bundled": true, "dev": true, "requires": { - "atob": "2.1.1", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-url": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "bundled": true, "dev": true }, "spawn-wrap": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.2.tgz", - "integrity": "sha1-z/WOc6giRhe2Vhq9wyWG6gyCJIw=", + "bundled": true, "dev": true, "requires": { - "foreground-child": "1.5.6", - "mkdirp": "0.5.1", - "os-homedir": "1.0.2", - "rimraf": "2.6.2", - "signal-exit": "3.0.2", - "which": "1.3.1" + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" } }, "spdx-correct": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha1-BaW01xU6GVvJLDxCW2nzsqlSTII=", + "bundled": true, "dev": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha1-LHrmEFbHFKW5ubKyr30xHvXHj+k=", + "bundled": true, "dev": true }, "spdx-expression-parse": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=", + "bundled": true, "dev": true, "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha1-enzShHDMbToc/m1miG9rxDDTrIc=", + "bundled": true, "dev": true }, "split-string": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", + "bundled": true, "dev": true, "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "static-extend": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "bundled": true, "dev": true, "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "bundled": true, "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } }, "string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "bundled": true, "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "bundled": true, "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "strip-bom": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "bundled": true, "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "bundled": true, "dev": true }, "test-exclude": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", - "integrity": "sha1-36Ii8DSAvKaSB8pyizfXS0X3JPo=", + "bundled": true, "dev": true, "requires": { - "arrify": "1.0.1", - "micromatch": "3.1.10", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" + "arrify": "^1.0.1", + "micromatch": "^3.1.8", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" } }, "to-object-path": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "bundled": true, "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", + "bundled": true, "dev": true, "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "bundled": true, "dev": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } }, "uglify-js": { "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "bundled": true, "dev": true, "optional": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "yargs": { "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "bundled": true, "dev": true, "optional": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" } } @@ -12280,71 +11765,64 @@ }, "uglify-to-browserify": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "bundled": true, "dev": true, "optional": true }, "union-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "bundled": true, "dev": true, "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "bundled": true, "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "bundled": true, "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" } } } }, "unset-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "bundled": true, "dev": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "bundled": true, "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { "isobject": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "bundled": true, "dev": true, "requires": { "isarray": "1.0.0" @@ -12354,210 +11832,186 @@ }, "has-values": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "bundled": true, "dev": true } } }, "urix": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "bundled": true, "dev": true }, "use": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", - "integrity": "sha1-FHFr8D/f79AwQK71jYtLhfOnxUQ=", + "bundled": true, "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.2" }, "dependencies": { "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", + "bundled": true, "dev": true } } }, "validate-npm-package-license": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha1-gWQ7y+8b3+zUYjeT3EZIlIupgzg=", + "bundled": true, "dev": true, "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "which": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "bundled": true, "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "bundled": true, "dev": true }, "window-size": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "bundled": true, "dev": true, "optional": true }, "wordwrap": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "bundled": true, "dev": true }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "bundled": true, "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "bundled": true, "dev": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } } } }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "bundled": true, "dev": true }, "write-file-atomic": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", - "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", + "bundled": true, "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, "y18n": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "bundled": true, "dev": true }, "yallist": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "bundled": true, "dev": true }, "yargs": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", - "integrity": "sha1-kLhpk07W6HERXqL/WLA/RyTtLXc=", - "dev": true, - "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "9.0.2" + "bundled": true, + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" }, "dependencies": { "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "bundled": true, "dev": true }, "cliui": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha1-NIQi2+gtgAswIu709qwQvy5NG0k=", + "bundled": true, "dev": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } }, "yargs-parser": { "version": "9.0.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "bundled": true, "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } }, "yargs-parser": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", - "integrity": "sha1-8TdqM7Ziml0GN4KUTacyYx6WaVA=", + "bundled": true, "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "bundled": true, "dev": true } } @@ -12581,9 +12035,9 @@ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { "define-property": { @@ -12592,7 +12046,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -12609,7 +12063,7 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -12626,8 +12080,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "object.pick": { @@ -12636,7 +12090,7 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -12653,8 +12107,8 @@ "integrity": "sha1-yCjw8NxH6fhq+KSXfF1VB2znqR8=", "dev": true, "requires": { - "is-observable": "0.2.0", - "symbol-observable": "1.2.0" + "is-observable": "^0.2.0", + "symbol-observable": "^1.0.4" }, "dependencies": { "is-observable": { @@ -12663,7 +12117,7 @@ "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=", "dev": true, "requires": { - "symbol-observable": "0.2.4" + "symbol-observable": "^0.2.2" }, "dependencies": { "symbol-observable": { @@ -12696,7 +12150,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -12705,7 +12159,7 @@ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "only": { @@ -12720,8 +12174,8 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "option-chain": { @@ -12736,12 +12190,12 @@ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" }, "dependencies": { "wordwrap": { @@ -12764,9 +12218,9 @@ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" } }, "os-tmpdir": { @@ -12781,8 +12235,8 @@ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "p-cancelable": { @@ -12809,7 +12263,7 @@ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -12818,7 +12272,7 @@ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "1.3.0" + "p-limit": "^1.1.0" } }, "p-timeout": { @@ -12827,7 +12281,7 @@ "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", "dev": true, "requires": { - "p-finally": "1.0.0" + "p-finally": "^1.0.0" } }, "p-try": { @@ -12842,10 +12296,10 @@ "integrity": "sha1-eK4ybIngWk2BO2hgGXevBcANKg0=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "lodash.flattendeep": "4.4.0", - "md5-hex": "2.0.0", - "release-zalgo": "1.0.0" + "graceful-fs": "^4.1.11", + "lodash.flattendeep": "^4.4.0", + "md5-hex": "^2.0.0", + "release-zalgo": "^1.0.0" } }, "package-json": { @@ -12854,10 +12308,10 @@ "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "dev": true, "requires": { - "got": "6.7.1", - "registry-auth-token": "3.3.2", - "registry-url": "3.1.0", - "semver": "5.5.0" + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" }, "dependencies": { "got": { @@ -12866,17 +12320,17 @@ "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "requires": { - "create-error-class": "3.0.2", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "is-redirect": "1.0.0", - "is-retry-allowed": "1.1.0", - "is-stream": "1.1.0", - "lowercase-keys": "1.0.1", - "safe-buffer": "5.1.2", - "timed-out": "4.0.1", - "unzip-response": "2.0.1", - "url-parse-lax": "1.0.0" + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" } } } @@ -12887,10 +12341,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" } }, "parse-json": { @@ -12899,7 +12353,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "1.3.2" + "error-ex": "^1.2.0" } }, "parse-ms": { @@ -12951,9 +12405,9 @@ "dev": true }, "path-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "dev": true }, "path-to-regexp": { @@ -12979,7 +12433,7 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" }, "dependencies": { "pify": { @@ -13007,11 +12461,11 @@ "integrity": "sha512-HuPxmGxHsEFPWhdkwBs2gIrHhFqktIxMtudISTFN95RQ85ZZAOl8Ki6u3nnN/X8OUaGlIGldk/l8p2IR4/i76w==", "dev": true, "requires": { - "b64": "4.0.0", - "boom": "7.2.0", - "content": "4.0.5", - "hoek": "5.0.3", - "nigel": "3.0.1" + "b64": "4.x.x", + "boom": "7.x.x", + "content": "4.x.x", + "hoek": "5.x.x", + "nigel": "3.x.x" } }, "pidusage": { @@ -13037,7 +12491,7 @@ "integrity": "sha1-0dpn9UglY7t89X8oauKCLs+/NnA=", "dev": true, "requires": { - "pinkie": "1.0.0" + "pinkie": "^1.0.0" } }, "pkg-conf": { @@ -13046,8 +12500,8 @@ "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", "dev": true, "requires": { - "find-up": "2.1.0", - "load-json-file": "4.0.0" + "find-up": "^2.0.0", + "load-json-file": "^4.0.0" }, "dependencies": { "load-json-file": { @@ -13056,10 +12510,10 @@ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "parse-json": { @@ -13068,8 +12522,8 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } } } @@ -13080,7 +12534,7 @@ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "2.1.0" + "find-up": "^2.1.0" } }, "plur": { @@ -13089,7 +12543,7 @@ "integrity": "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo=", "dev": true, "requires": { - "irregular-plurals": "1.4.0" + "irregular-plurals": "^1.0.0" } }, "pluralize": { @@ -13104,8 +12558,8 @@ "integrity": "sha512-18VrjJAduIdPv7d9zWsfmKxTj3cQTYC5Pv5gtKxcWujYBpGbV+mhNSPYhlHW5xeWoazYyKfB9FEsPT12r5rY1A==", "dev": true, "requires": { - "hoek": "5.0.3", - "joi": "13.5.2" + "hoek": "5.x.x", + "joi": "13.x.x" } }, "posix-character-classes": { @@ -13120,10 +12574,10 @@ "integrity": "sha512-8tmaqjYxwJAumhsg8p31P5jG4sKRYUhfO0WaSBcPTeAmMlOxB3AK/rS6xqmJwpVAXt+fuyRLZ3WJxsgMRCHcQQ==", "dev": true, "requires": { - "glob": "7.1.2", - "once": "1.4.0", - "pify": "3.0.0", - "rimraf": "2.6.2", + "glob": "^7.1.2", + "once": "^1.4.0", + "pify": "^3.0.0", + "rimraf": "^2.6.2", "tmp": "0.0.33" } }, @@ -13133,9 +12587,9 @@ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" }, "dependencies": { "source-map": { @@ -13152,11 +12606,11 @@ "integrity": "sha512-nDb6a+p2C7Wj8Y2zmFtLpuv+xobXz4+bzT5s7dr0nn71tLozn7nRMQqzwbefzwZN5qOm0N7Cxhw4kXP75xboKA==", "dev": true, "requires": { - "define-properties": "1.1.2", - "empower": "1.3.0", - "power-assert-formatter": "1.4.1", - "universal-deep-strict-equal": "1.2.2", - "xtend": "4.0.1" + "define-properties": "^1.1.2", + "empower": "^1.3.0", + "power-assert-formatter": "^1.4.1", + "universal-deep-strict-equal": "^1.2.1", + "xtend": "^4.0.0" } }, "power-assert-context-formatter": { @@ -13165,8 +12619,8 @@ "integrity": "sha512-HLNEW8Bin+BFCpk/zbyKwkEu9W8/zThIStxGo7weYcFkKgMuGCHUJhvJeBGXDZf0Qm2xis4pbnnciGZiX0EpSg==", "dev": true, "requires": { - "core-js": "2.5.7", - "power-assert-context-traversal": "1.2.0" + "core-js": "^2.0.0", + "power-assert-context-traversal": "^1.2.0" } }, "power-assert-context-reducer-ast": { @@ -13175,11 +12629,11 @@ "integrity": "sha512-EgOxmZ/Lb7tw4EwSKX7ZnfC0P/qRZFEG28dx/690qvhmOJ6hgThYFm5TUWANDLK5NiNKlPBi5WekVGd2+5wPrw==", "dev": true, "requires": { - "acorn": "5.7.1", - "acorn-es7-plugin": "1.1.7", - "core-js": "2.5.7", - "espurify": "1.8.1", - "estraverse": "4.2.0" + "acorn": "^5.0.0", + "acorn-es7-plugin": "^1.0.12", + "core-js": "^2.0.0", + "espurify": "^1.6.0", + "estraverse": "^4.2.0" } }, "power-assert-context-traversal": { @@ -13188,8 +12642,8 @@ "integrity": "sha512-NFoHU6g2umNajiP2l4qb0BRWD773Aw9uWdWYH9EQsVwIZnog5bd2YYLFCVvaxWpwNzWeEfZIon2xtyc63026pQ==", "dev": true, "requires": { - "core-js": "2.5.7", - "estraverse": "4.2.0" + "core-js": "^2.0.0", + "estraverse": "^4.1.0" } }, "power-assert-formatter": { @@ -13198,13 +12652,13 @@ "integrity": "sha1-XcEl7VCj37HdomwZNH879Y7CiEo=", "dev": true, "requires": { - "core-js": "2.5.7", - "power-assert-context-formatter": "1.2.0", - "power-assert-context-reducer-ast": "1.2.0", - "power-assert-renderer-assertion": "1.2.0", - "power-assert-renderer-comparison": "1.2.0", - "power-assert-renderer-diagram": "1.2.0", - "power-assert-renderer-file": "1.2.0" + "core-js": "^2.0.0", + "power-assert-context-formatter": "^1.0.7", + "power-assert-context-reducer-ast": "^1.0.7", + "power-assert-renderer-assertion": "^1.0.7", + "power-assert-renderer-comparison": "^1.0.7", + "power-assert-renderer-diagram": "^1.0.7", + "power-assert-renderer-file": "^1.0.7" } }, "power-assert-renderer-assertion": { @@ -13213,8 +12667,8 @@ "integrity": "sha512-3F7Q1ZLmV2ZCQv7aV7NJLNK9G7QsostrhOU7U0RhEQS/0vhEqrRg2jEJl1jtUL4ZyL2dXUlaaqrmPv5r9kRvIg==", "dev": true, "requires": { - "power-assert-renderer-base": "1.1.1", - "power-assert-util-string-width": "1.2.0" + "power-assert-renderer-base": "^1.1.1", + "power-assert-util-string-width": "^1.2.0" } }, "power-assert-renderer-base": { @@ -13229,11 +12683,11 @@ "integrity": "sha512-7c3RKPDBKK4E3JqdPtYRE9cM8AyX4LC4yfTvvTYyx8zSqmT5kJnXwzR0yWQLOavACllZfwrAGQzFiXPc5sWa+g==", "dev": true, "requires": { - "core-js": "2.5.7", - "diff-match-patch": "1.0.1", - "power-assert-renderer-base": "1.1.1", - "stringifier": "1.3.0", - "type-name": "2.0.2" + "core-js": "^2.0.0", + "diff-match-patch": "^1.0.0", + "power-assert-renderer-base": "^1.1.1", + "stringifier": "^1.3.0", + "type-name": "^2.0.1" } }, "power-assert-renderer-diagram": { @@ -13242,10 +12696,10 @@ "integrity": "sha512-JZ6PC+DJPQqfU6dwSmpcoD7gNnb/5U77bU5KgNwPPa+i1Pxiz6UuDeM3EUBlhZ1HvH9tMjI60anqVyi5l2oNdg==", "dev": true, "requires": { - "core-js": "2.5.7", - "power-assert-renderer-base": "1.1.1", - "power-assert-util-string-width": "1.2.0", - "stringifier": "1.3.0" + "core-js": "^2.0.0", + "power-assert-renderer-base": "^1.1.1", + "power-assert-util-string-width": "^1.2.0", + "stringifier": "^1.3.0" } }, "power-assert-renderer-file": { @@ -13254,7 +12708,7 @@ "integrity": "sha512-/oaVrRbeOtGoyyd7e4IdLP/jIIUFJdqJtsYzP9/88R39CMnfF/S/rUc8ZQalENfUfQ/wQHu+XZYRMaCEZmEesg==", "dev": true, "requires": { - "power-assert-renderer-base": "1.1.1" + "power-assert-renderer-base": "^1.1.1" } }, "power-assert-util-string-width": { @@ -13263,7 +12717,7 @@ "integrity": "sha512-lX90G0igAW0iyORTILZ/QjZWsa1MZ6VVY3L0K86e2eKun3S4LKPH4xZIl8fdeMYLfOjkaszbNSzf1uugLeAm2A==", "dev": true, "requires": { - "eastasianwidth": "0.2.0" + "eastasianwidth": "^0.2.0" } }, "prelude-ls": { @@ -13296,7 +12750,7 @@ "integrity": "sha512-ZypexbfVUGTFxb0v+m1bUyy92DHe5SyYlnyY0msyms5zd3RwyvNgyxZZsXXgoyzlxjx5MiqtXUdhUfvQbe0A2Q==", "dev": true, "requires": { - "parse-ms": "1.0.1" + "parse-ms": "^1.0.0" }, "dependencies": { "parse-ms": { @@ -13336,7 +12790,7 @@ "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", "dev": true, "requires": { - "forwarded": "0.1.2", + "forwarded": "~0.1.2", "ipaddr.js": "1.8.0" } }, @@ -13346,9 +12800,9 @@ "integrity": "sha512-fQr3VQrbdzHrdaDn3XuisVoJlJNDJizHAvUXw9IuXRR8BpV2x0N7LsCxrpJkeKfPbNjiNU/V5vc008cI0TmzzQ==", "dev": true, "requires": { - "fill-keys": "1.0.2", - "module-not-found-error": "1.0.1", - "resolve": "1.5.0" + "fill-keys": "^1.0.2", + "module-not-found-error": "^1.0.0", + "resolve": "~1.5.0" }, "dependencies": { "resolve": { @@ -13357,7 +12811,7 @@ "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } } } @@ -13383,9 +12837,9 @@ "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", "dev": true, "requires": { - "decode-uri-component": "0.2.0", - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" } }, "quick-lru": { @@ -13400,9 +12854,9 @@ "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", "dev": true, "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.1" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { "is-number": { @@ -13443,10 +12897,10 @@ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "requires": { - "deep-extend": "0.6.0", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -13463,9 +12917,9 @@ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" } }, "read-pkg-up": { @@ -13474,8 +12928,8 @@ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" } }, "readable-stream": { @@ -13483,13 +12937,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "readdirp": { @@ -13498,10 +12952,10 @@ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.6", - "set-immediate-shim": "1.0.1" + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" } }, "redent": { @@ -13510,8 +12964,8 @@ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" }, "dependencies": { "indent-string": { @@ -13520,7 +12974,7 @@ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } } } @@ -13543,7 +12997,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regex-not": { @@ -13552,8 +13006,8 @@ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regexp.prototype.flags": { @@ -13562,13 +13016,13 @@ "integrity": "sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==", "dev": true, "requires": { - "define-properties": "1.1.2" + "define-properties": "^1.1.2" } }, "regexpp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", - "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.0.tgz", + "integrity": "sha512-g2FAVtR8Uh8GO1Nv5wpxW7VFVwHcCEr4wyA8/MHiRkO8uHoR5ntAA8Uq3P1vvMTX/BeQiRVSpDGLd+Wn5HNOTA==", "dev": true }, "regexpu-core": { @@ -13577,9 +13031,9 @@ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "dev": true, "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "registry-auth-token": { @@ -13588,8 +13042,8 @@ "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", "dev": true, "requires": { - "rc": "1.2.8", - "safe-buffer": "5.1.2" + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" } }, "registry-url": { @@ -13598,7 +13052,7 @@ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "dev": true, "requires": { - "rc": "1.2.8" + "rc": "^1.0.1" } }, "regjsgen": { @@ -13613,7 +13067,7 @@ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" } }, "release-zalgo": { @@ -13622,7 +13076,7 @@ "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", "dev": true, "requires": { - "es6-error": "4.1.1" + "es6-error": "^4.0.1" } }, "remove-trailing-separator": { @@ -13649,7 +13103,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "request": { @@ -13657,26 +13111,26 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.7.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.2", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.0.3", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.19", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" + "aws-sign2": "~0.7.0", + "aws4": "^1.6.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.1", + "forever-agent": "~0.6.1", + "form-data": "~2.3.1", + "har-validator": "~5.0.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.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" } }, "require-directory": { @@ -13703,8 +13157,8 @@ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "dev": true, "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" }, "dependencies": { "resolve-from": { @@ -13721,7 +13175,7 @@ "integrity": "sha1-aUPDUwxNmn5G8c3dUcFY/GcM294=", "dev": true, "requires": { - "underscore": "1.6.0" + "underscore": "~1.6.0" }, "dependencies": { "underscore": { @@ -13744,7 +13198,7 @@ "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", "dev": true, "requires": { - "resolve-from": "3.0.0" + "resolve-from": "^3.0.0" } }, "resolve-from": { @@ -13765,7 +13219,7 @@ "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", "dev": true, "requires": { - "lowercase-keys": "1.0.1" + "lowercase-keys": "^1.0.0" } }, "restify": { @@ -13774,28 +13228,28 @@ "integrity": "sha512-xygVfQn/FiyzSPNIiOlzos6+RVcmTTK/bN0/m4z6vQwUY1yXntAsXM8ckq6hMxYfkhZfbPMM5hvBf75B8zLE1g==", "dev": true, "requires": { - "assert-plus": "1.0.0", - "bunyan": "1.8.12", - "csv": "1.2.1", - "dtrace-provider": "0.8.7", - "escape-regexp-component": "1.0.2", - "ewma": "2.0.1", - "find-my-way": "1.15.1", - "formidable": "1.2.1", - "http-signature": "1.2.0", - "lodash": "4.17.10", - "lru-cache": "4.1.3", - "mime": "1.6.0", - "negotiator": "0.6.1", - "once": "1.4.0", - "pidusage": "1.2.0", - "qs": "6.5.2", - "restify-errors": "5.0.0", - "semver": "5.5.0", - "spdy": "3.4.7", - "uuid": "3.3.2", - "vasync": "1.6.4", - "verror": "1.10.0" + "assert-plus": "^1.0.0", + "bunyan": "^1.8.12", + "csv": "^1.1.1", + "dtrace-provider": "^0.8.1", + "escape-regexp-component": "^1.0.2", + "ewma": "^2.0.1", + "find-my-way": "^1.13.0", + "formidable": "^1.2.1", + "http-signature": "^1.2.0", + "lodash": "^4.17.10", + "lru-cache": "^4.1.3", + "mime": "^1.5.0", + "negotiator": "^0.6.1", + "once": "^1.4.0", + "pidusage": "^1.2.0", + "qs": "^6.5.2", + "restify-errors": "^5.0.0", + "semver": "^5.4.1", + "spdy": "^3.4.7", + "uuid": "^3.1.0", + "vasync": "^1.6.4", + "verror": "^1.10.0" }, "dependencies": { "lodash": { @@ -13818,10 +13272,10 @@ "integrity": "sha512-+vby9Kxf7qlzvbZSTIEGkIixkeHG+pVCl34dk6eKnL+ua4pCezpdLT/1/eabzPZb65ADrgoc04jeWrrF1E1pvQ==", "dev": true, "requires": { - "assert-plus": "1.0.0", - "lodash": "4.17.5", - "safe-json-stringify": "1.2.0", - "verror": "1.10.0" + "assert-plus": "^1.0.0", + "lodash": "^4.2.1", + "safe-json-stringify": "^1.0.3", + "verror": "^1.8.1" } }, "restore-cursor": { @@ -13830,8 +13284,8 @@ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "ret": { @@ -13850,7 +13304,7 @@ "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.0.0.tgz", "integrity": "sha512-S4HNLaWcMP6r8E4TMH52Y7/pM8uNayOcTDDQNBwsCccL1uI+Ol2TljxRDPzaNfbhOB30+XWP5NnZkB3LiJxi1w==", "requires": { - "through2": "2.0.3" + "through2": "^2.0.0" } }, "right-align": { @@ -13860,7 +13314,7 @@ "dev": true, "optional": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { @@ -13869,7 +13323,7 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "run-async": { @@ -13878,7 +13332,7 @@ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "rxjs": { @@ -13916,7 +13370,7 @@ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "safer-buffer": { @@ -13931,21 +13385,21 @@ "dev": true }, "sanitize-html": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.18.2.tgz", - "integrity": "sha512-52ThA+Z7h6BnvpSVbURwChl10XZrps5q7ytjTwWcIe9bmJwnVP6cpEVK2NvDOUhGupoqAvNbUz3cpnJDp4+/pg==", + "version": "1.18.4", + "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.18.4.tgz", + "integrity": "sha512-hjyDYCYrQuhnEjq+5lenLlIfdPBtnZ7z0DkQOC8YGxvkuOInH+1SrkNTj30t4f2/SSv9c5kLniB+uCIpBvYuew==", "dev": true, "requires": { - "chalk": "2.4.1", - "htmlparser2": "3.9.2", - "lodash.clonedeep": "4.5.0", - "lodash.escaperegexp": "4.1.2", - "lodash.isplainobject": "4.0.6", - "lodash.isstring": "4.0.1", - "lodash.mergewith": "4.6.1", - "postcss": "6.0.23", - "srcset": "1.0.0", - "xtend": "4.0.1" + "chalk": "^2.3.0", + "htmlparser2": "^3.9.0", + "lodash.clonedeep": "^4.5.0", + "lodash.escaperegexp": "^4.1.2", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.mergewith": "^4.6.0", + "postcss": "^6.0.14", + "srcset": "^1.0.0", + "xtend": "^4.0.0" } }, "select-hose": { @@ -13966,7 +13420,7 @@ "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "dev": true, "requires": { - "semver": "5.5.0" + "semver": "^5.0.3" } }, "semver-store": { @@ -13982,18 +13436,18 @@ "dev": true, "requires": { "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.6.3", + "http-errors": "~1.6.2", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.4.0" + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" }, "dependencies": { "debug": { @@ -14031,9 +13485,9 @@ "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "dev": true, "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", "send": "0.16.2" } }, @@ -14055,10 +13509,10 @@ "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -14067,7 +13521,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -14084,7 +13538,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -14099,8 +13553,8 @@ "integrity": "sha1-x+dFXRHWD2ts08Q+FaO0McF+VWY=", "dev": true, "requires": { - "hoek": "5.0.3", - "joi": "13.5.2" + "hoek": "5.x.x", + "joi": "13.x.x" } }, "signal-exit": { @@ -14115,13 +13569,13 @@ "integrity": "sha512-rfszhNcfamK2+ofIPi9XqeH89pH7KGDcAtM+F9CsjHXOK3jzWG99vyhyD2V+r7s4IipmWcWUFYq4ftZ9/Eu2Wg==", "dev": true, "requires": { - "@sinonjs/formatio": "2.0.0", - "diff": "3.5.0", - "lodash.get": "4.4.2", - "lolex": "2.7.1", - "nise": "1.4.2", - "supports-color": "5.4.0", - "type-detect": "4.0.8" + "@sinonjs/formatio": "^2.0.0", + "diff": "^3.5.0", + "lodash.get": "^4.4.2", + "lolex": "^2.4.2", + "nise": "^1.3.3", + "supports-color": "^5.4.0", + "type-detect": "^4.0.8" } }, "slash": { @@ -14136,7 +13590,7 @@ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0" + "is-fullwidth-code-point": "^2.0.0" } }, "slide": { @@ -14151,14 +13605,14 @@ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { - "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.2", - "use": "3.1.1" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "debug": { @@ -14176,7 +13630,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -14185,7 +13639,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -14196,9 +13650,9 @@ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { @@ -14207,7 +13661,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -14216,7 +13670,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -14225,7 +13679,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -14234,9 +13688,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -14259,7 +13713,7 @@ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "sort-keys": { @@ -14268,7 +13722,7 @@ "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", "dev": true, "requires": { - "is-plain-obj": "1.1.0" + "is-plain-obj": "^1.0.0" } }, "source-map": { @@ -14283,11 +13737,11 @@ "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "dev": true, "requires": { - "atob": "2.1.1", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -14296,8 +13750,8 @@ "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", "dev": true, "requires": { - "buffer-from": "1.1.1", - "source-map": "0.6.1" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" }, "dependencies": { "source-map": { @@ -14320,9 +13774,9 @@ "integrity": "sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==", "dev": true, "requires": { - "array-find-index": "1.0.2", - "spdx-expression-parse": "3.0.0", - "spdx-ranges": "2.0.0" + "array-find-index": "^1.0.2", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" } }, "spdx-correct": { @@ -14331,8 +13785,8 @@ "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "dev": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -14347,8 +13801,8 @@ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -14369,9 +13823,9 @@ "integrity": "sha512-OcARj6U1OuVv98SVrRqgrR30sVocONtoPpnX8Xz4vXNrFVedqtbgkA+0KmQoXIQ2xjfltPPRVIMeNzKEFLWWKQ==", "dev": true, "requires": { - "spdx-compare": "1.0.0", - "spdx-expression-parse": "3.0.0", - "spdx-ranges": "2.0.0" + "spdx-compare": "^1.0.0", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" } }, "spdy": { @@ -14380,12 +13834,12 @@ "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", "dev": true, "requires": { - "debug": "2.6.9", - "handle-thing": "1.2.5", - "http-deceiver": "1.2.7", - "safe-buffer": "5.1.2", - "select-hose": "2.0.0", - "spdy-transport": "2.1.0" + "debug": "^2.6.8", + "handle-thing": "^1.2.5", + "http-deceiver": "^1.2.7", + "safe-buffer": "^5.0.1", + "select-hose": "^2.0.0", + "spdy-transport": "^2.0.18" }, "dependencies": { "debug": { @@ -14405,13 +13859,13 @@ "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", "dev": true, "requires": { - "debug": "2.6.9", - "detect-node": "2.0.3", - "hpack.js": "2.1.6", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "safe-buffer": "5.1.2", - "wbuf": "1.7.3" + "debug": "^2.6.8", + "detect-node": "^2.0.3", + "hpack.js": "^2.1.6", + "obuf": "^1.1.1", + "readable-stream": "^2.2.9", + "safe-buffer": "^5.0.1", + "wbuf": "^1.7.2" }, "dependencies": { "debug": { @@ -14430,7 +13884,7 @@ "resolved": "https://registry.npmjs.org/split-array-stream/-/split-array-stream-2.0.0.tgz", "integrity": "sha512-hmMswlVY91WvGMxs0k8MRgq8zb2mSen4FmDNc5AFiTWtrBpdZN6nwD6kROVe4vNL+ywrvbCKsWVCnEd4riELIg==", "requires": { - "is-stream-ended": "0.1.4" + "is-stream-ended": "^0.1.4" } }, "split-string": { @@ -14439,7 +13893,7 @@ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "sprintf-js": { @@ -14454,8 +13908,8 @@ "integrity": "sha1-pWad4StC87HV6D7QPHEEb8SPQe8=", "dev": true, "requires": { - "array-uniq": "1.0.3", - "number-is-nan": "1.0.1" + "array-uniq": "^1.0.2", + "number-is-nan": "^1.0.0" } }, "sshpk": { @@ -14463,15 +13917,15 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "requires": { - "asn1": "0.2.3", - "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" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, "stack-utils": { @@ -14486,12 +13940,12 @@ "integrity": "sha512-jR45n5ZMAkasw0xoE9j9TuLmJv4Sa3AkXe+6yIFT6a07kXYHgSbuD2OVGECdZGFxTmvNqLwL1iRIgvq6O6rq+A==", "dev": true, "requires": { - "boom": "7.2.0", - "bounce": "1.2.0", - "cryptiles": "4.1.2", - "hoek": "5.0.3", - "iron": "5.0.4", - "joi": "13.5.2" + "boom": "7.x.x", + "bounce": "1.x.x", + "cryptiles": "4.x.x", + "hoek": "5.x.x", + "iron": "5.x.x", + "joi": "13.x.x" } }, "static-extend": { @@ -14500,8 +13954,8 @@ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -14510,7 +13964,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -14526,7 +13980,7 @@ "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.4.tgz", "integrity": "sha512-D243NJaYs/xBN2QnoiMDY7IesJFIK7gEhnvAYqJa5JvDdnh2dC4qDBwlCf0ohPpX2QRlA/4gnbnPd3rs3KxVcA==", "requires": { - "stubs": "3.0.0" + "stubs": "^3.0.0" } }, "stream-shift": { @@ -14558,8 +14012,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "string.prototype.matchall": { @@ -14568,11 +14022,11 @@ "integrity": "sha512-WoZ+B2ypng1dp4iFLF2kmZlwwlE19gmjgKuhL1FJfDgCREWb3ye3SDVHSzLH6bxfnvYmkCxbzkmWcQZHA4P//Q==", "dev": true, "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.12.0", - "function-bind": "1.1.1", - "has-symbols": "1.0.0", - "regexp.prototype.flags": "1.2.0" + "define-properties": "^1.1.2", + "es-abstract": "^1.10.0", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "regexp.prototype.flags": "^1.2.0" } }, "string_decoder": { @@ -14580,7 +14034,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "stringifier": { @@ -14589,9 +14043,9 @@ "integrity": "sha1-3vGDQvaTPbDy2/yaoCF1tEjBeVk=", "dev": true, "requires": { - "core-js": "2.5.7", - "traverse": "0.6.6", - "type-name": "2.0.2" + "core-js": "^2.0.0", + "traverse": "^0.6.6", + "type-name": "^2.0.1" } }, "strip-ansi": { @@ -14600,7 +14054,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" }, "dependencies": { "ansi-regex": { @@ -14623,7 +14077,7 @@ "integrity": "sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.1" } }, "strip-eof": { @@ -14638,7 +14092,7 @@ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, "requires": { - "get-stdin": "4.0.1" + "get-stdin": "^4.0.1" } }, "strip-json-comments": { @@ -14658,11 +14112,11 @@ "integrity": "sha512-IcJUvRjeR+NB437Iq+LORFNJW4L6Knqkj3oQrBrkdhIaS2VKJvx/9aYEq7vi+PEx5/OuehOL/40SkSZotLi/MA==", "dev": true, "requires": { - "boom": "7.2.0", - "content": "4.0.5", - "hoek": "5.0.3", - "pez": "4.0.2", - "wreck": "14.0.2" + "boom": "7.x.x", + "content": "4.x.x", + "hoek": "5.x.x", + "pez": "4.x.x", + "wreck": "14.x.x" } }, "superagent": { @@ -14671,16 +14125,16 @@ "integrity": "sha512-gVH4QfYHcY3P0f/BZzavLreHW3T1v7hG9B+hpMQotGQqurOvhv87GcMCd6LWySmBuf+BDR44TQd0aISjVHLeNQ==", "dev": true, "requires": { - "component-emitter": "1.2.1", - "cookiejar": "2.1.2", - "debug": "3.1.0", - "extend": "3.0.2", - "form-data": "2.3.2", - "formidable": "1.2.1", - "methods": "1.1.2", - "mime": "1.6.0", - "qs": "6.5.2", - "readable-stream": "2.3.6" + "component-emitter": "^1.2.0", + "cookiejar": "^2.1.0", + "debug": "^3.1.0", + "extend": "^3.0.0", + "form-data": "^2.3.1", + "formidable": "^1.1.1", + "methods": "^1.1.1", + "mime": "^1.4.1", + "qs": "^6.5.1", + "readable-stream": "^2.0.5" }, "dependencies": { "mime": { @@ -14697,11 +14151,11 @@ "integrity": "sha512-HZJ3geIMPgVwKk2VsmO5YHqnnJYl6bV5A9JW2uzqV43WmpgliNEYbuvukfor7URpaqpxuw3CfZ3ONdVbZjCgIA==", "dev": true, "requires": { - "arrify": "1.0.1", - "indent-string": "3.2.0", - "js-yaml": "3.12.0", - "serialize-error": "2.1.0", - "strip-ansi": "4.0.0" + "arrify": "^1.0.1", + "indent-string": "^3.2.0", + "js-yaml": "^3.10.0", + "serialize-error": "^2.1.0", + "strip-ansi": "^4.0.0" } }, "supertest": { @@ -14710,7 +14164,7 @@ "integrity": "sha512-O44AMnmJqx294uJQjfUmEyYOg7d9mylNFsMw/Wkz4evKd1njyPrtCN+U6ZIC7sKtfEVQhfTqFFijlXx8KP/Czw==", "dev": true, "requires": { - "methods": "1.1.2", + "methods": "~1.1.2", "superagent": "3.8.2" } }, @@ -14720,7 +14174,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" }, "dependencies": { "has-flag": { @@ -14743,12 +14197,12 @@ "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", "dev": true, "requires": { - "ajv": "6.5.2", - "ajv-keywords": "3.2.0", - "chalk": "2.4.1", - "lodash": "4.17.5", + "ajv": "^6.0.1", + "ajv-keywords": "^3.0.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "string-width": "^2.1.1" }, "dependencies": { "ajv": { @@ -14757,10 +14211,10 @@ "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", "dev": true, "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.1" } }, "fast-deep-equal": { @@ -14795,7 +14249,7 @@ "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "dev": true, "requires": { - "execa": "0.7.0" + "execa": "^0.7.0" } }, "text-encoding": { @@ -14821,8 +14275,8 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" } }, "time-zone": { @@ -14843,7 +14297,7 @@ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-fast-properties": { @@ -14858,7 +14312,7 @@ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { @@ -14867,10 +14321,10 @@ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { @@ -14879,8 +14333,8 @@ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "dependencies": { "is-number": { @@ -14889,7 +14343,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } @@ -14900,7 +14354,7 @@ "integrity": "sha512-Tlu1fGlR90iCdIPURqPiufqAlCZYzLjHYVVbcFWDMcX7+tK8hdZWAfsMrD/pBul9jqHHwFjNdf1WaxA9vTRRhw==", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "tough-cookie": { @@ -14908,7 +14362,7 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" } }, "traverse": { @@ -14947,18 +14401,18 @@ "integrity": "sha1-mPMMAurjzecAYgHkwzywi0hYHu0=", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "builtin-modules": "1.1.1", - "chalk": "2.4.1", - "commander": "2.16.0", - "diff": "3.5.0", - "glob": "7.1.2", - "js-yaml": "3.12.0", - "minimatch": "3.0.4", - "resolve": "1.8.1", - "semver": "5.5.0", - "tslib": "1.9.3", - "tsutils": "2.29.0" + "babel-code-frame": "^6.22.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^3.2.0", + "glob": "^7.1.1", + "js-yaml": "^3.7.0", + "minimatch": "^3.0.4", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.27.2" }, "dependencies": { "resolve": { @@ -14967,7 +14421,7 @@ "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } } } @@ -14978,7 +14432,7 @@ "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", "dev": true, "requires": { - "tslib": "1.9.3" + "tslib": "^1.8.1" } }, "tunnel-agent": { @@ -14986,7 +14440,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -15001,7 +14455,7 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-detect": { @@ -15017,7 +14471,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.19" + "mime-types": "~2.1.18" } }, "type-name": { @@ -15039,9 +14493,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "camelcase": { @@ -15058,9 +14512,9 @@ "dev": true, "optional": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" } } @@ -15108,10 +14562,10 @@ "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "dev": true, "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" }, "dependencies": { "extend-shallow": { @@ -15120,7 +14574,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { @@ -15129,10 +14583,10 @@ "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" } } } @@ -15143,7 +14597,7 @@ "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", "dev": true, "requires": { - "crypto-random-string": "1.0.0" + "crypto-random-string": "^1.0.0" } }, "unique-temp-dir": { @@ -15152,8 +14606,8 @@ "integrity": "sha1-bc6VsmgcoAPuv7MEpBX5y6vMU4U=", "dev": true, "requires": { - "mkdirp": "0.5.1", - "os-tmpdir": "1.0.2", + "mkdirp": "^0.5.1", + "os-tmpdir": "^1.0.1", "uid2": "0.0.3" } }, @@ -15163,9 +14617,9 @@ "integrity": "sha1-DaSsL3PP95JMgfpN4BjKViyisKc=", "dev": true, "requires": { - "array-filter": "1.0.0", + "array-filter": "^1.0.0", "indexof": "0.0.1", - "object-keys": "1.0.12" + "object-keys": "^1.0.0" } }, "universalify": { @@ -15186,8 +14640,8 @@ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -15196,9 +14650,9 @@ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { "isobject": { @@ -15238,16 +14692,16 @@ "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", "dev": true, "requires": { - "boxen": "1.3.0", - "chalk": "2.4.1", - "configstore": "3.1.2", - "import-lazy": "2.1.0", - "is-ci": "1.1.0", - "is-installed-globally": "0.1.0", - "is-npm": "1.0.0", - "latest-version": "3.1.0", - "semver-diff": "2.1.0", - "xdg-basedir": "3.0.0" + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" } }, "uri-js": { @@ -15256,7 +14710,7 @@ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { - "punycode": "2.1.1" + "punycode": "^2.1.0" }, "dependencies": { "punycode": { @@ -15279,7 +14733,7 @@ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "dev": true, "requires": { - "prepend-http": "1.0.4" + "prepend-http": "^1.0.1" } }, "url-to-options": { @@ -15317,13 +14771,13 @@ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" }, "validate-npm-package-license": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", - "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "validate-npm-package-name": { @@ -15332,7 +14786,7 @@ "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "dev": true, "requires": { - "builtins": "1.0.3" + "builtins": "^1.0.3" } }, "vary": { @@ -15372,9 +14826,9 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" } }, "vise": { @@ -15383,7 +14837,7 @@ "integrity": "sha512-kBFZLmiL1Vm3rHXphkhvvAcsjgeQXRrOFCbJb0I50YZZP4HGRNH+xGzK3matIMcpbsfr3I02u9odj4oCD0TWgA==", "dev": true, "requires": { - "hoek": "5.0.3" + "hoek": "5.x.x" } }, "wbuf": { @@ -15392,7 +14846,7 @@ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, "requires": { - "minimalistic-assert": "1.0.1" + "minimalistic-assert": "^1.0.0" } }, "well-known-symbols": { @@ -15407,7 +14861,7 @@ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -15422,7 +14876,7 @@ "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", "dev": true, "requires": { - "string-width": "2.1.1" + "string-width": "^2.1.1" } }, "window-size": { @@ -15444,8 +14898,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -15454,7 +14908,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { @@ -15463,9 +14917,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "strip-ansi": { @@ -15474,7 +14928,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } } } @@ -15490,8 +14944,8 @@ "integrity": "sha512-QCm3omWNJUseqrSzwX2QZi1rBbmCfbFHJAXputLLyZ37VSiFnSYQB0ms/mPnSvrlIu7GVm89Y/gBNhSY26uVIQ==", "dev": true, "requires": { - "boom": "7.2.0", - "hoek": "5.0.3" + "boom": "7.x.x", + "hoek": "5.x.x" } }, "write": { @@ -15500,7 +14954,7 @@ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "write-file-atomic": { @@ -15509,9 +14963,9 @@ "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" } }, "write-json-file": { @@ -15520,12 +14974,12 @@ "integrity": "sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=", "dev": true, "requires": { - "detect-indent": "5.0.0", - "graceful-fs": "4.1.11", - "make-dir": "1.3.0", - "pify": "3.0.0", - "sort-keys": "2.0.0", - "write-file-atomic": "2.3.0" + "detect-indent": "^5.0.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "pify": "^3.0.0", + "sort-keys": "^2.0.0", + "write-file-atomic": "^2.0.0" }, "dependencies": { "detect-indent": { @@ -15542,8 +14996,8 @@ "integrity": "sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw==", "dev": true, "requires": { - "sort-keys": "2.0.0", - "write-json-file": "2.3.0" + "sort-keys": "^2.0.0", + "write-json-file": "^2.2.0" } }, "xdg-basedir": { @@ -15580,18 +15034,18 @@ "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", "dev": true, "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.3", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "9.0.2" + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" }, "dependencies": { "camelcase": { @@ -15606,9 +15060,9 @@ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } }, "yargs-parser": { @@ -15617,7 +15071,7 @@ "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" } } } @@ -15628,7 +15082,7 @@ "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { From d36057e1b0be02cb845b3aafdd9854f38d3e1efb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Tue, 7 Aug 2018 07:46:57 -0700 Subject: [PATCH 144/527] fix(deps): update dependency @google-cloud/common to ^0.21.0 (#192) --- handwritten/error-reporting/package-lock.json | 66 +++++++++++-------- handwritten/error-reporting/package.json | 2 +- 2 files changed, 40 insertions(+), 28 deletions(-) diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json index 13fea18c482..cd8e445c319 100644 --- a/handwritten/error-reporting/package-lock.json +++ b/handwritten/error-reporting/package-lock.json @@ -214,10 +214,11 @@ } }, "@google-cloud/common": { - "version": "0.20.3", - "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.20.3.tgz", - "integrity": "sha512-jt8/R4EqDTQccv5WA9AEaS65llM5+mlxsuWu57G5Os8HTIpgPbcsOVMUeIvmTrBuPUYSoRIMW8d/pvv/95n0+g==", + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.21.0.tgz", + "integrity": "sha512-oJxKimj3Rf9U4R/LOPAirBPnbHUBykY6NUpf2vPKNAW9yLrNgYwOk5ZZiiXWQ6Zy2WodGEDo2b75JZLk8kyheg==", "requires": { + "@google-cloud/promisify": "^0.3.0", "@types/duplexify": "^3.5.0", "@types/request": "^2.47.0", "arrify": "^1.0.1", @@ -230,7 +231,6 @@ "pify": "^3.0.0", "request": "^2.87.0", "retry-request": "^4.0.0", - "split-array-stream": "^2.0.0", "stream-events": "^1.0.4", "through2": "^2.0.3" } @@ -296,6 +296,7 @@ "version": "0.1.4", "bundled": true, "dev": true, + "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -1424,7 +1425,8 @@ "longest": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "loose-envify": { "version": "1.3.1", @@ -2552,6 +2554,11 @@ } } }, + "@google-cloud/promisify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-0.3.0.tgz", + "integrity": "sha512-5xfpwK9iIAwZrKtG+SnEKZkgnce9Hsew1dkeYNyP/slAxTIdS9wjSUJ5Waq/dfsYphkHSGyH6F9lwqJlD5Zsyw==" + }, "@ladjs/time-require": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/@ladjs/time-require/-/time-require-0.1.4.tgz", @@ -3140,6 +3147,7 @@ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, + "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -6945,12 +6953,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -6965,17 +6975,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -7092,7 +7105,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -7104,6 +7118,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -7118,6 +7133,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -7125,12 +7141,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.2.4", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -7149,6 +7167,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -7229,7 +7248,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -7241,6 +7261,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -7362,6 +7383,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -8658,11 +8680,6 @@ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, - "is-stream-ended": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz", - "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==" - }, "is-symbol": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", @@ -9265,7 +9282,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true + "dev": true, + "optional": true }, "loose-envify": { "version": "1.4.0", @@ -10004,6 +10022,7 @@ "version": "0.1.4", "bundled": true, "dev": true, + "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -10946,7 +10965,8 @@ "longest": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "lru-cache": { "version": "4.1.3", @@ -13879,14 +13899,6 @@ } } }, - "split-array-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/split-array-stream/-/split-array-stream-2.0.0.tgz", - "integrity": "sha512-hmMswlVY91WvGMxs0k8MRgq8zb2mSen4FmDNc5AFiTWtrBpdZN6nwD6kROVe4vNL+ywrvbCKsWVCnEd4riELIg==", - "requires": { - "is-stream-ended": "^0.1.4" - } - }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 2e64787164a..7ab84946e8f 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -54,7 +54,7 @@ "license-check": "jsgl --local ." }, "dependencies": { - "@google-cloud/common": "^0.20.3", + "@google-cloud/common": "^0.21.0", "console-log-level": "^1.4.0", "is": "^3.2.1", "lodash.has": "^4.5.2" From 468a827d2dfdc8874bc93773c791e6293858e839 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Tue, 7 Aug 2018 13:59:26 -0700 Subject: [PATCH 145/527] chore: ignore package-lock.json (#193) * chore: ignore package-log.json * remove locky * renovateeee --- .../error-reporting/.circleci/config.yml | 17 +- .../.circleci/get_workflow_name.py | 67 - handwritten/error-reporting/.gitignore | 1 + handwritten/error-reporting/package-lock.json | 15115 ---------------- 4 files changed, 2 insertions(+), 15198 deletions(-) delete mode 100644 handwritten/error-reporting/.circleci/get_workflow_name.py delete mode 100644 handwritten/error-reporting/package-lock.json diff --git a/handwritten/error-reporting/.circleci/config.yml b/handwritten/error-reporting/.circleci/config.yml index e578a9589f4..9a148bf18de 100644 --- a/handwritten/error-reporting/.circleci/config.yml +++ b/handwritten/error-reporting/.circleci/config.yml @@ -72,18 +72,7 @@ jobs: - image: 'node:6' user: node steps: &unit_tests_steps - - checkout - - run: &remove_package_lock - name: Remove package-lock.json if needed. - command: | - WORKFLOW_NAME=`python .circleci/get_workflow_name.py` - echo "Workflow name: $WORKFLOW_NAME" - if [ "$WORKFLOW_NAME" = "nightly" ]; then - echo "Nightly build detected, removing package-lock.json." - rm -f package-lock.json samples/package-lock.json - else - echo "Not a nightly build, skipping this step." - fi + - checkout - run: &npm_install_and_link name: Install and link the module. command: npm install @@ -108,7 +97,6 @@ jobs: user: node steps: - checkout - - run: *remove_package_lock - run: *npm_install_and_link - run: &samples_npm_install_and_link name: Link the module being tested to the samples. @@ -131,7 +119,6 @@ jobs: user: node steps: - checkout - - run: *remove_package_lock - run: *npm_install_and_link - run: name: Build documentation. @@ -142,7 +129,6 @@ jobs: user: node steps: - checkout - - run: *remove_package_lock - run: name: Decrypt credentials. command: | @@ -169,7 +155,6 @@ jobs: user: node steps: - checkout - - run: *remove_package_lock - run: name: Decrypt credentials. command: | diff --git a/handwritten/error-reporting/.circleci/get_workflow_name.py b/handwritten/error-reporting/.circleci/get_workflow_name.py deleted file mode 100644 index ff6b58fd24f..00000000000 --- a/handwritten/error-reporting/.circleci/get_workflow_name.py +++ /dev/null @@ -1,67 +0,0 @@ -# Copyright 2018 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -""" -Get workflow name for the current build using CircleCI API. -Would be great if this information is available in one of -CircleCI environment variables, but it's not there. -https://circleci.ideas.aha.io/ideas/CCI-I-295 -""" - -import json -import os -import sys -import urllib2 - - -def main(): - try: - username = os.environ['CIRCLE_PROJECT_USERNAME'] - reponame = os.environ['CIRCLE_PROJECT_REPONAME'] - build_num = os.environ['CIRCLE_BUILD_NUM'] - except: - sys.stderr.write( - 'Looks like we are not inside CircleCI container. Exiting...\n') - return 1 - - try: - request = urllib2.Request( - "https://circleci.com/api/v1.1/project/github/%s/%s/%s" % - (username, reponame, build_num), - headers={"Accept": "application/json"}) - contents = urllib2.urlopen(request).read() - except: - sys.stderr.write('Cannot query CircleCI API. Exiting...\n') - return 1 - - try: - build_info = json.loads(contents) - except: - sys.stderr.write( - 'Cannot parse JSON received from CircleCI API. Exiting...\n') - return 1 - - try: - workflow_name = build_info['workflows']['workflow_name'] - except: - sys.stderr.write( - 'Cannot get workflow name from CircleCI build info. Exiting...\n') - return 1 - - print workflow_name - return 0 - - -retval = main() -exit(retval) diff --git a/handwritten/error-reporting/.gitignore b/handwritten/error-reporting/.gitignore index 1405466a5f7..bb2732f1f9a 100644 --- a/handwritten/error-reporting/.gitignore +++ b/handwritten/error-reporting/.gitignore @@ -10,3 +10,4 @@ system-test/secrets.js system-test/*key.json build .vscode +package-lock.json diff --git a/handwritten/error-reporting/package-lock.json b/handwritten/error-reporting/package-lock.json deleted file mode 100644 index cd8e445c319..00000000000 --- a/handwritten/error-reporting/package-lock.json +++ /dev/null @@ -1,15115 +0,0 @@ -{ - "name": "@google-cloud/error-reporting", - "version": "0.5.1", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@ava/babel-plugin-throws-helper": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@ava/babel-plugin-throws-helper/-/babel-plugin-throws-helper-2.0.0.tgz", - "integrity": "sha1-L8H+PCEacQcaTsp7j3r1hCzRrnw=", - "dev": true - }, - "@ava/babel-preset-stage-4": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@ava/babel-preset-stage-4/-/babel-preset-stage-4-1.1.0.tgz", - "integrity": "sha512-oWqTnIGXW3k72UFidXzW0ONlO7hnO9x02S/QReJ7NBGeiBH9cUHY9+EfV6C8PXC6YJH++WrliEq03wMSJGNZFg==", - "dev": true, - "requires": { - "babel-plugin-check-es2015-constants": "^6.8.0", - "babel-plugin-syntax-trailing-function-commas": "^6.20.0", - "babel-plugin-transform-async-to-generator": "^6.16.0", - "babel-plugin-transform-es2015-destructuring": "^6.19.0", - "babel-plugin-transform-es2015-function-name": "^6.9.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.18.0", - "babel-plugin-transform-es2015-parameters": "^6.21.0", - "babel-plugin-transform-es2015-spread": "^6.8.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.8.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.11.0", - "babel-plugin-transform-exponentiation-operator": "^6.8.0", - "package-hash": "^1.2.0" - }, - "dependencies": { - "md5-hex": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", - "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", - "dev": true, - "requires": { - "md5-o-matic": "^0.1.1" - } - }, - "package-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-1.2.0.tgz", - "integrity": "sha1-AD5WzVe3NqbtYRTMK4FUJnJ3DkQ=", - "dev": true, - "requires": { - "md5-hex": "^1.3.0" - } - } - } - }, - "@ava/babel-preset-transform-test-files": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@ava/babel-preset-transform-test-files/-/babel-preset-transform-test-files-3.0.0.tgz", - "integrity": "sha1-ze0RlqjY2TgaUJJAq5LpGl7Aafc=", - "dev": true, - "requires": { - "@ava/babel-plugin-throws-helper": "^2.0.0", - "babel-plugin-espower": "^2.3.2" - } - }, - "@ava/write-file-atomic": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ava/write-file-atomic/-/write-file-atomic-2.2.0.tgz", - "integrity": "sha512-BTNB3nGbEfJT+69wuqXFr/bQH7Vr7ihx2xGOMNqPgDGhwspoZhiWumDDZNjBy7AScmqS5CELIOGtPVXESyrnDA==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" - } - }, - "@babel/code-frame": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz", - "integrity": "sha1-vXHZsZKvl435FYKdOdQJRFZDmgw=", - "dev": true, - "requires": { - "@babel/highlight": "7.0.0-beta.51" - } - }, - "@babel/generator": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.51.tgz", - "integrity": "sha1-bHV1/952HQdIXgS67cA5LG2eMPY=", - "dev": true, - "requires": { - "@babel/types": "7.0.0-beta.51", - "jsesc": "^2.5.1", - "lodash": "^4.17.5", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" - }, - "dependencies": { - "jsesc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", - "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=", - "dev": true - } - } - }, - "@babel/helper-function-name": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.51.tgz", - "integrity": "sha1-IbSHSiJ8+Z7K/MMKkDAtpaJkBWE=", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "7.0.0-beta.51", - "@babel/template": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.51.tgz", - "integrity": "sha1-MoGy0EWvlcFyzpGyCCXYXqRnZBE=", - "dev": true, - "requires": { - "@babel/types": "7.0.0-beta.51" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.51.tgz", - "integrity": "sha1-imw/ZsTSZTUvwHdIT59ugKUauXg=", - "dev": true, - "requires": { - "@babel/types": "7.0.0-beta.51" - } - }, - "@babel/highlight": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.51.tgz", - "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^3.0.0" - } - }, - "@babel/parser": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.0.0-beta.51.tgz", - "integrity": "sha1-J87C30Cd9gr1gnDtj2qlVAnqhvY=", - "dev": true - }, - "@babel/template": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.51.tgz", - "integrity": "sha1-lgKkCuvPNXrpZ34lMu9fyBD1+/8=", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0-beta.51", - "@babel/parser": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "lodash": "^4.17.5" - } - }, - "@babel/traverse": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.51.tgz", - "integrity": "sha1-mB2vLOw0emIx06odnhgDsDqqpKg=", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0-beta.51", - "@babel/generator": "7.0.0-beta.51", - "@babel/helper-function-name": "7.0.0-beta.51", - "@babel/helper-split-export-declaration": "7.0.0-beta.51", - "@babel/parser": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "debug": "^3.1.0", - "globals": "^11.1.0", - "invariant": "^2.2.0", - "lodash": "^4.17.5" - }, - "dependencies": { - "globals": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", - "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.0.0-beta.51", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.51.tgz", - "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.5", - "to-fast-properties": "^2.0.0" - }, - "dependencies": { - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - } - } - }, - "@concordance/react": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@concordance/react/-/react-1.0.0.tgz", - "integrity": "sha512-htrsRaQX8Iixlsek8zQU7tE8wcsTQJ5UhZkSPEA8slCDAisKpC/2VgU/ucPn32M5/LjGGXRaUEKvEw1Wiuu4zQ==", - "dev": true, - "requires": { - "arrify": "^1.0.1" - } - }, - "@google-cloud/common": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.21.0.tgz", - "integrity": "sha512-oJxKimj3Rf9U4R/LOPAirBPnbHUBykY6NUpf2vPKNAW9yLrNgYwOk5ZZiiXWQ6Zy2WodGEDo2b75JZLk8kyheg==", - "requires": { - "@google-cloud/promisify": "^0.3.0", - "@types/duplexify": "^3.5.0", - "@types/request": "^2.47.0", - "arrify": "^1.0.1", - "axios": "^0.18.0", - "duplexify": "^3.6.0", - "ent": "^2.2.0", - "extend": "^3.0.1", - "google-auth-library": "^1.6.0", - "is": "^3.2.1", - "pify": "^3.0.0", - "request": "^2.87.0", - "retry-request": "^4.0.0", - "stream-events": "^1.0.4", - "through2": "^2.0.3" - } - }, - "@google-cloud/nodejs-repo-tools": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/@google-cloud/nodejs-repo-tools/-/nodejs-repo-tools-2.3.3.tgz", - "integrity": "sha512-aow6Os43uhdgshSe/fr43ESHNl/kHhikim9AOqIMUzEb6mip6H4d8GFKgpO/yoqUUTIhCN3sbpkKktMI5mOQHw==", - "dev": true, - "requires": { - "ava": "0.25.0", - "colors": "1.1.2", - "fs-extra": "5.0.0", - "got": "8.3.0", - "handlebars": "4.0.11", - "lodash": "4.17.5", - "nyc": "11.7.2", - "proxyquire": "1.8.0", - "semver": "^5.5.0", - "sinon": "6.0.1", - "string": "3.3.3", - "supertest": "3.1.0", - "yargs": "11.0.0", - "yargs-parser": "10.1.0" - }, - "dependencies": { - "nyc": { - "version": "11.7.2", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.7.2.tgz", - "integrity": "sha512-gBt7qwsR1vryYfglVjQRx1D+AtMZW5NbUKxb+lZe8SN8KsheGCPGWEsSC9AGQG+r2+te1+10uPHUCahuqm1nGQ==", - "dev": true, - "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^1.0.0", - "convert-source-map": "^1.5.1", - "debug-log": "^1.0.1", - "default-require-extensions": "^1.0.0", - "find-cache-dir": "^0.1.1", - "find-up": "^2.1.0", - "foreground-child": "^1.5.3", - "glob": "^7.0.6", - "istanbul-lib-coverage": "^1.1.2", - "istanbul-lib-hook": "^1.1.0", - "istanbul-lib-instrument": "^1.10.0", - "istanbul-lib-report": "^1.1.3", - "istanbul-lib-source-maps": "^1.2.3", - "istanbul-reports": "^1.4.0", - "md5-hex": "^1.2.0", - "merge-source-map": "^1.1.0", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.0", - "resolve-from": "^2.0.0", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.1", - "spawn-wrap": "^1.4.2", - "test-exclude": "^4.2.0", - "yargs": "11.1.0", - "yargs-parser": "^8.0.0" - }, - "dependencies": { - "align-text": { - "version": "0.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - } - }, - "amdefine": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "bundled": true, - "dev": true - }, - "append-transform": { - "version": "0.4.0", - "bundled": true, - "dev": true, - "requires": { - "default-require-extensions": "^1.0.0" - } - }, - "archy": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "arr-diff": { - "version": "4.0.0", - "bundled": true, - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "bundled": true, - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "bundled": true, - "dev": true - }, - "arrify": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "async": { - "version": "1.5.2", - "bundled": true, - "dev": true - }, - "atob": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "bundled": true, - "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "babel-generator": { - "version": "6.26.1", - "bundled": true, - "dev": true, - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - } - }, - "babel-messages": { - "version": "6.23.0", - "bundled": true, - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-runtime": { - "version": "6.26.0", - "bundled": true, - "dev": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "babel-template": { - "version": "6.26.0", - "bundled": true, - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "bundled": true, - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - } - }, - "babel-types": { - "version": "6.26.0", - "bundled": true, - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "bundled": true, - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "base": { - "version": "0.11.2", - "bundled": true, - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "bundled": true, - "dev": true, - "requires": { - "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "builtin-modules": { - "version": "1.1.1", - "bundled": true, - "dev": true - }, - "cache-base": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "caching-transform": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" - } - }, - "camelcase": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "optional": true - }, - "center-align": { - "version": "0.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - } - }, - "chalk": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "class-utils": { - "version": "0.3.6", - "bundled": true, - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "cliui": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "commondir": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "component-emitter": { - "version": "1.2.1", - "bundled": true, - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "convert-source-map": { - "version": "1.5.1", - "bundled": true, - "dev": true - }, - "copy-descriptor": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "core-js": { - "version": "2.5.6", - "bundled": true, - "dev": true - }, - "cross-spawn": { - "version": "4.0.2", - "bundled": true, - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "debug": { - "version": "2.6.9", - "bundled": true, - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "debug-log": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "decamelize": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "bundled": true, - "dev": true - }, - "default-require-extensions": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "strip-bom": "^2.0.0" - } - }, - "define-property": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "detect-indent": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "error-ex": { - "version": "1.3.1", - "bundled": true, - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "bundled": true, - "dev": true - }, - "esutils": { - "version": "2.0.2", - "bundled": true, - "dev": true - }, - "execa": { - "version": "0.7.0", - "bundled": true, - "dev": true, - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "bundled": true, - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "bundled": true, - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "extend-shallow": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "bundled": true, - "dev": true, - "requires": { - "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.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "fill-range": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "find-cache-dir": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "for-in": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "foreground-child": { - "version": "1.5.6", - "bundled": true, - "dev": true, - "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" - } - }, - "fragment-cache": { - "version": "0.2.1", - "bundled": true, - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "get-caller-file": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "get-value": { - "version": "2.0.6", - "bundled": true, - "dev": true - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "globals": { - "version": "9.18.0", - "bundled": true, - "dev": true - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true, - "dev": true - }, - "handlebars": { - "version": "4.0.11", - "bundled": true, - "dev": true, - "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "bundled": true, - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - } - } - }, - "has-ansi": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-flag": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "has-value": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hosted-git-info": { - "version": "2.6.0", - "bundled": true, - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "bundled": true, - "dev": true - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true - }, - "invariant": { - "version": "2.2.4", - "bundled": true, - "dev": true, - "requires": { - "loose-envify": "^1.0.0" - } - }, - "invert-kv": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-arrayish": { - "version": "0.2.1", - "bundled": true, - "dev": true - }, - "is-buffer": { - "version": "1.1.6", - "bundled": true, - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "bundled": true, - "dev": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "is-finite": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "is-number": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-odd": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "bundled": true, - "dev": true - } - } - }, - "is-plain-object": { - "version": "2.0.4", - "bundled": true, - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-stream": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "is-utf8": { - "version": "0.2.1", - "bundled": true, - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "isexe": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "isobject": { - "version": "3.0.1", - "bundled": true, - "dev": true - }, - "istanbul-lib-coverage": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, - "istanbul-lib-hook": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "append-transform": "^0.4.0" - } - }, - "istanbul-lib-instrument": { - "version": "1.10.1", - "bundled": true, - "dev": true, - "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.2.0", - "semver": "^5.3.0" - } - }, - "istanbul-lib-report": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "requires": { - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" - }, - "dependencies": { - "supports-color": { - "version": "3.2.3", - "bundled": true, - "dev": true, - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "1.2.3", - "bundled": true, - "dev": true, - "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "istanbul-reports": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "handlebars": "^4.0.3" - } - }, - "js-tokens": { - "version": "3.0.2", - "bundled": true, - "dev": true - }, - "jsesc": { - "version": "1.3.0", - "bundled": true, - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "lazy-cache": { - "version": "1.0.4", - "bundled": true, - "dev": true, - "optional": true - }, - "lcid": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "invert-kv": "^1.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "bundled": true, - "dev": true - } - } - }, - "lodash": { - "version": "4.17.10", - "bundled": true, - "dev": true - }, - "longest": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "loose-envify": { - "version": "1.3.1", - "bundled": true, - "dev": true, - "requires": { - "js-tokens": "^3.0.0" - } - }, - "lru-cache": { - "version": "4.1.3", - "bundled": true, - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "map-cache": { - "version": "0.2.2", - "bundled": true, - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "md5-hex": { - "version": "1.3.0", - "bundled": true, - "dev": true, - "requires": { - "md5-o-matic": "^0.1.1" - } - }, - "md5-o-matic": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "mem": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "merge-source-map": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true, - "dev": true - } - } - }, - "micromatch": { - "version": "3.1.10", - "bundled": true, - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "mimic-fn": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - }, - "mixin-deep": { - "version": "1.3.1", - "bundled": true, - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "nanomatch": { - "version": "1.2.9", - "bundled": true, - "dev": true, - "requires": { - "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-odd": "^2.0.0", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "normalize-package-data": { - "version": "2.4.0", - "bundled": true, - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "npm-run-path": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "bundled": true, - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "object-visit": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "bundled": true, - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "optimist": { - "version": "0.6.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "os-locale": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } - }, - "p-finally": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "p-limit": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "parse-json": { - "version": "2.2.0", - "bundled": true, - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "pascalcase": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "path-exists": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "path-key": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, - "path-parse": { - "version": "1.0.5", - "bundled": true, - "dev": true - }, - "path-type": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "bundled": true, - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "bundled": true, - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-dir": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "find-up": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "read-pkg": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - } - } - }, - "regenerator-runtime": { - "version": "0.11.1", - "bundled": true, - "dev": true - }, - "regex-not": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "repeat-element": { - "version": "1.1.2", - "bundled": true, - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "bundled": true, - "dev": true - }, - "repeating": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, - "require-directory": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "resolve-from": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "bundled": true, - "dev": true - }, - "ret": { - "version": "0.1.15", - "bundled": true, - "dev": true - }, - "right-align": { - "version": "0.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "align-text": "^0.1.1" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "dev": true, - "requires": { - "glob": "^7.0.5" - } - }, - "safe-regex": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "semver": { - "version": "5.5.0", - "bundled": true, - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "set-value": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "shebang-command": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true - }, - "slide": { - "version": "1.1.6", - "bundled": true, - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "bundled": true, - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.2.0" - } - }, - "source-map": { - "version": "0.5.7", - "bundled": true, - "dev": true - }, - "source-map-resolve": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "requires": { - "atob": "^2.0.0", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "bundled": true, - "dev": true - }, - "spawn-wrap": { - "version": "1.4.2", - "bundled": true, - "dev": true, - "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" - } - }, - "spdx-correct": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "bundled": true, - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "split-string": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "static-extend": { - "version": "0.1.2", - "bundled": true, - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "string-width": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-eof": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "test-exclude": { - "version": "4.2.1", - "bundled": true, - "dev": true, - "requires": { - "arrify": "^1.0.1", - "micromatch": "^3.1.8", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" - } - }, - "to-fast-properties": { - "version": "1.0.3", - "bundled": true, - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "to-regex": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "trim-right": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "uglify-js": { - "version": "2.8.29", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - }, - "dependencies": { - "yargs": { - "version": "3.10.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "union-value": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "set-value": { - "version": "0.4.3", - "bundled": true, - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } - } - } - }, - "unset-value": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "bundled": true, - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "bundled": true, - "dev": true - } - } - }, - "urix": { - "version": "0.1.0", - "bundled": true, - "dev": true - }, - "use": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "validate-npm-package-license": { - "version": "3.0.3", - "bundled": true, - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "which": { - "version": "1.3.0", - "bundled": true, - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "window-size": { - "version": "0.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "wordwrap": { - "version": "0.0.3", - "bundled": true, - "dev": true - }, - "wrap-ansi": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "write-file-atomic": { - "version": "1.3.4", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" - } - }, - "y18n": { - "version": "3.2.1", - "bundled": true, - "dev": true - }, - "yallist": { - "version": "2.1.2", - "bundled": true, - "dev": true - }, - "yargs": { - "version": "11.1.0", - "bundled": true, - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^9.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "camelcase": { - "version": "4.1.0", - "bundled": true, - "dev": true - }, - "cliui": { - "version": "4.1.0", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "yargs-parser": { - "version": "9.0.2", - "bundled": true, - "dev": true, - "requires": { - "camelcase": "^4.1.0" - } - } - } - }, - "yargs-parser": { - "version": "8.1.0", - "bundled": true, - "dev": true, - "requires": { - "camelcase": "^4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "bundled": true, - "dev": true - } - } - } - } - }, - "proxyquire": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/proxyquire/-/proxyquire-1.8.0.tgz", - "integrity": "sha1-AtUUpb7ZhvBMuyCTrxZ0FTX3ntw=", - "dev": true, - "requires": { - "fill-keys": "^1.0.2", - "module-not-found-error": "^1.0.0", - "resolve": "~1.1.7" - } - } - } - }, - "@google-cloud/promisify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-0.3.0.tgz", - "integrity": "sha512-5xfpwK9iIAwZrKtG+SnEKZkgnce9Hsew1dkeYNyP/slAxTIdS9wjSUJ5Waq/dfsYphkHSGyH6F9lwqJlD5Zsyw==" - }, - "@ladjs/time-require": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@ladjs/time-require/-/time-require-0.1.4.tgz", - "integrity": "sha512-weIbJqTMfQ4r1YX85u54DKfjLZs2jwn1XZ6tIOP/pFgMwhIN5BAtaCp/1wn9DzyLsDR9tW0R2NIePcVJ45ivQQ==", - "dev": true, - "requires": { - "chalk": "^0.4.0", - "date-time": "^0.1.1", - "pretty-ms": "^0.2.1", - "text-table": "^0.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", - "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=", - "dev": true - }, - "chalk": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", - "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", - "dev": true, - "requires": { - "ansi-styles": "~1.0.0", - "has-color": "~0.1.0", - "strip-ansi": "~0.1.0" - } - }, - "pretty-ms": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-0.2.2.tgz", - "integrity": "sha1-2oeaaC/zOjcBEEbxPWJ/Z8c7hPY=", - "dev": true, - "requires": { - "parse-ms": "^0.1.0" - } - }, - "strip-ansi": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", - "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=", - "dev": true - } - } - }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", - "dev": true, - "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" - } - }, - "@nodelib/fs.stat": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.0.tgz", - "integrity": "sha512-LAQ1d4OPfSJ/BMbI2DuizmYrrkD9JMaTdi2hQTlI53lQ4kRQPyZQRS4CYQ7O66bnBBnP/oYdRxbk++X0xuFU6A==", - "dev": true - }, - "@sindresorhus/is": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", - "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", - "dev": true - }, - "@sinonjs/formatio": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", - "integrity": "sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg==", - "dev": true, - "requires": { - "samsam": "1.3.0" - } - }, - "@types/accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/body-parser": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.17.0.tgz", - "integrity": "sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w==", - "dev": true, - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/boom": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/boom/-/boom-7.2.0.tgz", - "integrity": "sha512-HonbGsHFbskh9zRAzA6tabcw18mCOsSEOL2ibGAuVqk6e7nElcRmWO5L4UfIHpDbWBWw+eZYFdsQ1+MEGgpcVA==", - "dev": true - }, - "@types/bunyan": { - "version": "1.8.4", - "resolved": "https://registry.npmjs.org/@types/bunyan/-/bunyan-1.8.4.tgz", - "integrity": "sha512-bxOF3fsm69ezKxdcJ7Oo/PsZMOJ+JIV/QJO2IADfScmR3sLulR88dpSnz6+q+9JJ1kD7dXFFgUrGRSKHLkOX7w==", - "dev": true, - "requires": { - "@types/events": "*", - "@types/node": "*" - } - }, - "@types/caseless": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.1.tgz", - "integrity": "sha512-FhlMa34NHp9K5MY1Uz8yb+ZvuX0pnvn3jScRSNAb75KHGB8d3rEU6hqMs3Z2vjuytcMfRg6c5CHMc3wtYyD2/A==" - }, - "@types/catbox": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@types/catbox/-/catbox-10.0.0.tgz", - "integrity": "sha512-FVnKcN80WTKLTaCfUqd+L4h8j/SQdA66MMe1mOrWqOpEMnM0aHbBw1qNbRO1Bfhc4i4YXkFv27QAsP5L4VAgXg==", - "dev": true - }, - "@types/connect": { - "version": "3.4.32", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.32.tgz", - "integrity": "sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/console-log-level": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@types/console-log-level/-/console-log-level-1.4.0.tgz", - "integrity": "sha512-x+OscEQwcx5Biair4enH7ov9W+clcqUWaZRaxn5IkT4yNWWjRr2oiYDkY/x1uXSTVZOQ2xlbFQySaQGB+VdXGQ==", - "dev": true - }, - "@types/cookies": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.1.tgz", - "integrity": "sha512-ku6IvbucEyuC6i4zAVK/KnuzWNXdbFd1HkXlNLg/zhWDGTtQT5VhumiPruB/BHW34PWVFwyfwGftDQHfWNxu3Q==", - "dev": true, - "requires": { - "@types/connect": "*", - "@types/express": "*", - "@types/keygrip": "*", - "@types/node": "*" - } - }, - "@types/duplexify": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@types/duplexify/-/duplexify-3.5.0.tgz", - "integrity": "sha512-+aZCCdxuR/Q6n58CBkXyqGqimIqpYUcFLfBXagXv7e9TdJUevqkKhzopBuRz3RB064sQxnJnhttHOkK/O93Ouw==", - "requires": { - "@types/node": "*" - } - }, - "@types/events": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", - "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", - "dev": true - }, - "@types/express": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.16.0.tgz", - "integrity": "sha512-TtPEYumsmSTtTetAPXlJVf3kEqb6wZK0bZojpJQrnD/djV4q1oB6QQ8aKvKqwNPACoe02GNiy5zDzcYivR5Z2w==", - "dev": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.16.0.tgz", - "integrity": "sha512-lTeoCu5NxJU4OD9moCgm0ESZzweAx0YqsAcab6OB0EB3+As1OaHtKnaGJvcngQxYsi9UNv0abn4/DRavrRxt4w==", - "dev": true, - "requires": { - "@types/events": "*", - "@types/node": "*", - "@types/range-parser": "*" - } - }, - "@types/extend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/extend/-/extend-3.0.0.tgz", - "integrity": "sha512-Eo8NQCbgjlMPQarlFAE3vpyCvFda4dg1Ob5ZJb6BJI9x4NAZVWowyMNB8GJJDgDI4lr2oqiQvXlPB0Fn1NoXnQ==", - "dev": true - }, - "@types/form-data": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz", - "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", - "requires": { - "@types/node": "*" - } - }, - "@types/glob": { - "version": "5.0.35", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.35.tgz", - "integrity": "sha512-wc+VveszMLyMWFvXLkloixT4n0harUIVZjnpzztaZ0nKLuul7Z32iMt2fUFGAaZ4y1XWjFRMtCI5ewvyh4aIeg==", - "dev": true, - "requires": { - "@types/events": "*", - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/hapi": { - "version": "17.0.17", - "resolved": "https://registry.npmjs.org/@types/hapi/-/hapi-17.0.17.tgz", - "integrity": "sha512-/tPHWSEwEp8qP5ImqDymqWgREIpv7MNuBnOGRIK8Tx1xn0+2VGnbD13FAg5Nui6gOFvKW5LqxLVeoR8tCsCESw==", - "dev": true, - "requires": { - "@types/boom": "*", - "@types/catbox": "*", - "@types/iron": "*", - "@types/joi": "*", - "@types/mimos": "*", - "@types/node": "*", - "@types/podium": "*", - "@types/shot": "*" - } - }, - "@types/http-assert": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.3.0.tgz", - "integrity": "sha512-RObYTpPMo0IY+ZksPtKHsXlYFRxsYIvUqd68e89Y7otDrXsjBy1VgMd53kxVV0JMsNlkCASjllFOlLlhxEv0iw==", - "dev": true - }, - "@types/iron": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@types/iron/-/iron-5.0.1.tgz", - "integrity": "sha512-Ng5BkVGPt7Tw9k1OJ6qYwuD9+dmnWgActmsnnrdvs4075N8V2go1f6Pz8omG3q5rbHjXN6yzzZDYo3JOgAE/Ug==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/is": { - "version": "0.0.20", - "resolved": "https://registry.npmjs.org/@types/is/-/is-0.0.20.tgz", - "integrity": "sha512-013vMJ4cpYRm1GavhN8HqSKRWD/txm2BLcy/Qw9hAoSNJwp60ezLH+/QlX3JouGTPJcmxvbDUWGANxjS52jRaw==", - "dev": true - }, - "@types/joi": { - "version": "13.4.0", - "resolved": "https://registry.npmjs.org/@types/joi/-/joi-13.4.0.tgz", - "integrity": "sha512-CZ4HR1j555+ttsFy2r4qGxZmbGWY0vpPCmu+0EPW+MIGGW6tm8OEyEeS8Y/yAhpcqvSE01tV+mNC2cF9oQUAUg==", - "dev": true - }, - "@types/keygrip": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.1.tgz", - "integrity": "sha1-/1QEYtL7TQqIRBzq8n0oewHD2Hg=", - "dev": true - }, - "@types/koa": { - "version": "2.0.46", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.0.46.tgz", - "integrity": "sha512-Dw10hYKv3exrc71GmH/Fqnc7dCLzdiP8bM1MLelPYjgIH5kQ6mPFreM3Z0uLK9EFaeCZZUYqsedDLCf3Urrysg==", - "dev": true, - "requires": { - "@types/accepts": "*", - "@types/cookies": "*", - "@types/events": "*", - "@types/http-assert": "*", - "@types/keygrip": "*", - "@types/koa-compose": "*", - "@types/node": "*" - } - }, - "@types/koa-compose": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.2.tgz", - "integrity": "sha1-3BBuAAu/kqOskA91bfRzRIh+6Ec=", - "dev": true - }, - "@types/lodash": { - "version": "4.14.116", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.116.tgz", - "integrity": "sha512-lRnAtKnxMXcYYXqOiotTmJd74uawNWuPnsnPrrO7HiFuE3npE2iQhfABatbYDyxTNqZNuXzcKGhw37R7RjBFLg==", - "dev": true - }, - "@types/lodash.assign": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/@types/lodash.assign/-/lodash.assign-4.2.4.tgz", - "integrity": "sha512-vQZhkRxzcp8WfOCN5ss/MJRnReJlyS5bRL7eChoUp38edH04UefqSXwSa873SUwbF87USU4J5iCZi+oc1Jhu2A==", - "dev": true, - "requires": { - "@types/lodash": "*" - } - }, - "@types/lodash.has": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/@types/lodash.has/-/lodash.has-4.5.4.tgz", - "integrity": "sha512-TFhnjl9ggVe/ZDjcgUWlvu3ULkysXJ+9OasNd7dqXHWcRzULzZyVr7n021ds3ygSX1kcxvf/7wanVD19g+tdsA==", - "dev": true, - "requires": { - "@types/lodash": "*" - } - }, - "@types/lodash.maxby": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/@types/lodash.maxby/-/lodash.maxby-4.6.4.tgz", - "integrity": "sha512-2YNhKemFkV0LgR2MxET/QQvrUYcBeNpesfSu072hI4q2V3BqVkVebvjd0ZTNy8D15vu47xVQVqcgOm59xTuO/w==", - "dev": true, - "requires": { - "@types/lodash": "*" - } - }, - "@types/lodash.merge": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/@types/lodash.merge/-/lodash.merge-4.6.4.tgz", - "integrity": "sha512-usLWpRAicaNbx0VfNDREEgGWvp88inclJLXLJ3NpT83eUE4O05LJdYNRTofHq6pb/NiMZjzNVJHdgPvPzMfu6g==", - "dev": true, - "requires": { - "@types/lodash": "*" - } - }, - "@types/lodash.omit": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/@types/lodash.omit/-/lodash.omit-4.5.4.tgz", - "integrity": "sha512-hv7Q3zXtRW+ruFC4Dp2y8AwMEyj6jiJHumDSnfCHNzE6HmFT8p7moTklM7Jzk+RJNKHfioJDnWHpv8GTnGXRnQ==", - "dev": true, - "requires": { - "@types/lodash": "*" - } - }, - "@types/lodash.omitby": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/@types/lodash.omitby/-/lodash.omitby-4.6.4.tgz", - "integrity": "sha512-d47RYf2KA/Re0rDUWHfYPMSeOLHUt7tLPOfo0DcaKrcpPRqh/FphIf4NEPmxZ2kuXeHgW064YnFLffWQVfr42A==", - "dev": true, - "requires": { - "@types/lodash": "*" - } - }, - "@types/lodash.pick": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/@types/lodash.pick/-/lodash.pick-4.4.4.tgz", - "integrity": "sha512-54nf0ndJlN3ULz9fLceKhYJZfwf50jAqqPJyI3/UbU/qxyuMSgNC3niWhFqmVAnGPoxMwAwNQCYTXG0Gv2lfPg==", - "dev": true, - "requires": { - "@types/lodash": "*" - } - }, - "@types/lodash.random": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@types/lodash.random/-/lodash.random-3.2.4.tgz", - "integrity": "sha512-iU+HQzaZPP6aTqb0PkLq8P8VRw8TrRP72DvVd/C0YSZHuYRjwvrjD8AabzK82c5xrFSxddv5ur9ptKRFa5HEYQ==", - "dev": true, - "requires": { - "@types/lodash": "*" - } - }, - "@types/lodash.without": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/@types/lodash.without/-/lodash.without-4.4.4.tgz", - "integrity": "sha512-WAhnX3b36nB38Du32TCgBElHPJrm0BQCeOy4vfTMsVz4d5daCqSfGIvi6TcGvY0Q0l2or9wwvBt6m0X2xwxjqw==", - "dev": true, - "requires": { - "@types/lodash": "*" - } - }, - "@types/mime": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.0.tgz", - "integrity": "sha512-A2TAGbTFdBw9azHbpVd+/FkdW2T6msN1uct1O9bH3vTerEHKZhTXJUQXy+hNq1B0RagfU8U+KBdqiZpxjhOUQA==", - "dev": true - }, - "@types/mime-db": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/@types/mime-db/-/mime-db-1.27.0.tgz", - "integrity": "sha1-m8AUof0f30dknBpUxt15ZrgoR5I=", - "dev": true - }, - "@types/mimos": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/mimos/-/mimos-3.0.1.tgz", - "integrity": "sha512-MATIRH4VMIJki8lcYUZdNQEHuAG7iQ1FWwoLgxV+4fUOly2xZYdhHtGgvQyWiTeJqq2tZbE0nOOgZD6pR0FpNQ==", - "dev": true, - "requires": { - "@types/mime-db": "*" - } - }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true - }, - "@types/mocha": { - "version": "5.2.5", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.5.tgz", - "integrity": "sha512-lAVp+Kj54ui/vLUFxsJTMtWvZraZxum3w3Nwkble2dNuV5VnPA+Mi2oGX9XYJAaIvZi3tn3cbjS/qcJXRb6Bww==", - "dev": true - }, - "@types/ncp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/ncp/-/ncp-2.0.1.tgz", - "integrity": "sha512-TeiJ7uvv/92ugSqZ0v9l0eNXzutlki0aK+R1K5bfA5SYUil46ITlxLW4iNTCf55P4L5weCmaOdtxGeGWvudwPg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/nock": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@types/nock/-/nock-9.3.0.tgz", - "integrity": "sha512-ZHf/X8rTQ5Tb1rHjxIJYqm55uO265agE3G7NoSXVa2ep+EcJXgB2fsme+zBvK7MhrxTwkC/xkB6THyv50u0MGw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/node": { - "version": "10.5.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.7.tgz", - "integrity": "sha512-VkKcfuitP+Nc/TaTFH0B8qNmn+6NbI6crLkQonbedViVz7O2w8QV/GERPlkJ4bg42VGHiEWa31CoTOPs1q6z1w==" - }, - "@types/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@types/once/-/once-1.4.0.tgz", - "integrity": "sha512-cnEvTAVVRqF6OQg/4SLnbxQ0slZJHqZQDve5BzGhcIQtuMpPv8T5QNS2cBPa/W0jTxciqwn7bmJAIGe/bOJ5Kw==", - "dev": true - }, - "@types/pify": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/pify/-/pify-3.0.2.tgz", - "integrity": "sha512-a5AKF1/9pCU3HGMkesgY6LsBdXHUY3WU+I2qgpU0J+I8XuJA1aFr59eS84/HP0+dxsyBSNbt+4yGI2adUpHwSg==", - "dev": true - }, - "@types/podium": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/podium/-/podium-1.0.0.tgz", - "integrity": "sha1-v6ohUb4rHWEJzGn3+qnawsujuyA=", - "dev": true - }, - "@types/proxyquire": { - "version": "1.3.28", - "resolved": "https://registry.npmjs.org/@types/proxyquire/-/proxyquire-1.3.28.tgz", - "integrity": "sha512-SQaNzWQ2YZSr7FqAyPPiA3FYpux2Lqh3HWMZQk47x3xbMCqgC/w0dY3dw9rGqlweDDkrySQBcaScXWeR+Yb11Q==", - "dev": true - }, - "@types/range-parser": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.2.tgz", - "integrity": "sha512-HtKGu+qG1NPvYe1z7ezLsyIaXYyi8SoAVqWDZgDQ8dLrsZvSzUNCwZyfX33uhWxL/SU0ZDQZ3nwZ0nimt507Kw==", - "dev": true - }, - "@types/request": { - "version": "2.47.1", - "resolved": "https://registry.npmjs.org/@types/request/-/request-2.47.1.tgz", - "integrity": "sha512-TV3XLvDjQbIeVxJ1Z3oCTDk/KuYwwcNKVwz2YaT0F5u86Prgc4syDAp6P96rkTQQ4bIdh+VswQIC9zS6NjY7/g==", - "requires": { - "@types/caseless": "*", - "@types/form-data": "*", - "@types/node": "*", - "@types/tough-cookie": "*" - } - }, - "@types/restify": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/@types/restify/-/restify-7.2.3.tgz", - "integrity": "sha512-k4O09swQnADEoj9B+ug7xBWkAdo7smv5W2IChW4wvC0ye2LUgyfbTjzzLTQLjd1OoLh/DdQACq0kOyZyjvNcrQ==", - "dev": true, - "requires": { - "@types/bunyan": "*", - "@types/node": "*", - "@types/spdy": "*" - } - }, - "@types/rimraf": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/rimraf/-/rimraf-2.0.2.tgz", - "integrity": "sha512-Hm/bnWq0TCy7jmjeN5bKYij9vw5GrDFWME4IuxV08278NtU/VdGbzsBohcCUJ7+QMqmUq5hpRKB39HeQWJjztQ==", - "dev": true, - "requires": { - "@types/glob": "*", - "@types/node": "*" - } - }, - "@types/serve-static": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.2.tgz", - "integrity": "sha512-/BZ4QRLpH/bNYgZgwhKEh+5AsboDBcUdlBYgzoLX0fpj3Y2gp6EApyOlM3bK53wQS/OE1SrdSYBAbux2D1528Q==", - "dev": true, - "requires": { - "@types/express-serve-static-core": "*", - "@types/mime": "*" - } - }, - "@types/shot": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@types/shot/-/shot-3.4.0.tgz", - "integrity": "sha1-RZR3xRh9Pr0wNmCrCZ5+ng87ZW8=", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/spdy": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@types/spdy/-/spdy-3.4.4.tgz", - "integrity": "sha512-N9LBlbVRRYq6HgYpPkqQc3a9HJ/iEtVZToW6xlTtJiMhmRJ7jJdV7TaZQJw/Ve/1ePUsQiCTDc4JMuzzag94GA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha1-EHPEvIJHVK49EM+riKsCN7qWTk0=", - "dev": true - }, - "@types/tough-cookie": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.3.tgz", - "integrity": "sha512-MDQLxNFRLasqS4UlkWMSACMKeSm1x4Q3TxzUC7KQUsh6RK1ZrQ0VEyE3yzXcBu+K8ejVj4wuX32eUG02yNp+YQ==" - }, - "accept": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/accept/-/accept-3.0.2.tgz", - "integrity": "sha512-bghLXFkCOsC1Y2TZ51etWfKDs6q249SAoHTZVfzWWdlZxoij+mgkj9AmUJWQpDY48TfnrTDIe43Xem4zdMe7mQ==", - "dev": true, - "requires": { - "boom": "7.x.x", - "hoek": "5.x.x" - } - }, - "accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", - "dev": true, - "requires": { - "mime-types": "~2.1.18", - "negotiator": "0.6.1" - } - }, - "acorn": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", - "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", - "dev": true - }, - "acorn-es7-plugin": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/acorn-es7-plugin/-/acorn-es7-plugin-1.1.7.tgz", - "integrity": "sha1-8u4fMiipDurRJF+asZIusucdM2s=", - "dev": true - }, - "acorn-jsx": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-4.1.1.tgz", - "integrity": "sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw==", - "dev": true, - "requires": { - "acorn": "^5.0.3" - } - }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true - }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - } - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true - }, - "ammo": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ammo/-/ammo-3.0.1.tgz", - "integrity": "sha512-4UqoM8xQjwkQ78oiU4NbBK0UgYqeKMAKmwE4ec7Rz3rGU8ZEBFxzgF2sUYKOAlqIXExBDYLN6y1ShF5yQ4hwLQ==", - "dev": true, - "requires": { - "hoek": "5.x.x" - } - }, - "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", - "dev": true, - "requires": { - "string-width": "^2.0.0" - } - }, - "ansi-escapes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", - "dev": true - }, - "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", - "dev": true, - "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "argv": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz", - "integrity": "sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas=", - "dev": true - }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "arr-exclude": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/arr-exclude/-/arr-exclude-1.0.0.tgz", - "integrity": "sha1-38fC5VKicHI8zaBM8xKMjL/lxjE=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", - "dev": true - }, - "array-filter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", - "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=", - "dev": true - }, - "array-find": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", - "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=", - "dev": true - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "async-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "atob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", - "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", - "dev": true - }, - "auto-bind": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-1.2.1.tgz", - "integrity": "sha512-/W9yj1yKmBLwpexwAujeD9YHwYmRuWFGV8HWE7smQab797VeHa4/cnE2NFeDhA+E+5e/OGBI8763EhLjfZ/MXA==", - "dev": true - }, - "ava": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/ava/-/ava-0.25.0.tgz", - "integrity": "sha512-4lGNJCf6xL8SvsKVEKxEE46se7JAUIAZoKHw9itTQuwcsydhpAMkBs5gOOiWiwt0JKNIuXWc2/r4r8ZdcNrBEw==", - "dev": true, - "requires": { - "@ava/babel-preset-stage-4": "^1.1.0", - "@ava/babel-preset-transform-test-files": "^3.0.0", - "@ava/write-file-atomic": "^2.2.0", - "@concordance/react": "^1.0.0", - "@ladjs/time-require": "^0.1.4", - "ansi-escapes": "^3.0.0", - "ansi-styles": "^3.1.0", - "arr-flatten": "^1.0.1", - "array-union": "^1.0.1", - "array-uniq": "^1.0.2", - "arrify": "^1.0.0", - "auto-bind": "^1.1.0", - "ava-init": "^0.2.0", - "babel-core": "^6.17.0", - "babel-generator": "^6.26.0", - "babel-plugin-syntax-object-rest-spread": "^6.13.0", - "bluebird": "^3.0.0", - "caching-transform": "^1.0.0", - "chalk": "^2.0.1", - "chokidar": "^1.4.2", - "clean-stack": "^1.1.1", - "clean-yaml-object": "^0.1.0", - "cli-cursor": "^2.1.0", - "cli-spinners": "^1.0.0", - "cli-truncate": "^1.0.0", - "co-with-promise": "^4.6.0", - "code-excerpt": "^2.1.1", - "common-path-prefix": "^1.0.0", - "concordance": "^3.0.0", - "convert-source-map": "^1.5.1", - "core-assert": "^0.2.0", - "currently-unhandled": "^0.4.1", - "debug": "^3.0.1", - "dot-prop": "^4.1.0", - "empower-core": "^0.6.1", - "equal-length": "^1.0.0", - "figures": "^2.0.0", - "find-cache-dir": "^1.0.0", - "fn-name": "^2.0.0", - "get-port": "^3.0.0", - "globby": "^6.0.0", - "has-flag": "^2.0.0", - "hullabaloo-config-manager": "^1.1.0", - "ignore-by-default": "^1.0.0", - "import-local": "^0.1.1", - "indent-string": "^3.0.0", - "is-ci": "^1.0.7", - "is-generator-fn": "^1.0.0", - "is-obj": "^1.0.0", - "is-observable": "^1.0.0", - "is-promise": "^2.1.0", - "last-line-stream": "^1.0.0", - "lodash.clonedeepwith": "^4.5.0", - "lodash.debounce": "^4.0.3", - "lodash.difference": "^4.3.0", - "lodash.flatten": "^4.2.0", - "loud-rejection": "^1.2.0", - "make-dir": "^1.0.0", - "matcher": "^1.0.0", - "md5-hex": "^2.0.0", - "meow": "^3.7.0", - "ms": "^2.0.0", - "multimatch": "^2.1.0", - "observable-to-promise": "^0.5.0", - "option-chain": "^1.0.0", - "package-hash": "^2.0.0", - "pkg-conf": "^2.0.0", - "plur": "^2.0.0", - "pretty-ms": "^3.0.0", - "require-precompiled": "^0.1.0", - "resolve-cwd": "^2.0.0", - "safe-buffer": "^5.1.1", - "semver": "^5.4.1", - "slash": "^1.0.0", - "source-map-support": "^0.5.0", - "stack-utils": "^1.0.1", - "strip-ansi": "^4.0.0", - "strip-bom-buf": "^1.0.0", - "supertap": "^1.0.0", - "supports-color": "^5.0.0", - "trim-off-newlines": "^1.0.1", - "unique-temp-dir": "^1.0.0", - "update-notifier": "^2.3.0" - } - }, - "ava-init": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ava-init/-/ava-init-0.2.1.tgz", - "integrity": "sha512-lXwK5LM+2g1euDRqW1mcSX/tqzY1QU7EjKpqayFPPtNRmbSYZ8RzPO5tqluTToijmtjp2M+pNpVdbcHssC4glg==", - "dev": true, - "requires": { - "arr-exclude": "^1.0.0", - "execa": "^0.7.0", - "has-yarn": "^1.0.0", - "read-pkg-up": "^2.0.0", - "write-pkg": "^3.1.0" - } - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" - }, - "axios": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz", - "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=", - "requires": { - "follow-redirects": "^1.3.0", - "is-buffer": "^1.1.5" - } - }, - "b64": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/b64/-/b64-4.0.0.tgz", - "integrity": "sha512-EhmUQodKB0sdzPPrbIWbGqA5cQeTWxYrAgNeeT1rLZWtD3tbNTnphz8J4vkXI3cPgBNlXBjzEbzDzq0Nwi4f9A==", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "dev": true, - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - }, - "dependencies": { - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true - } - } - }, - "babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "dev": true, - "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "dev": true, - "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "dev": true, - "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", - "dev": true, - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-espower": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/babel-plugin-espower/-/babel-plugin-espower-2.4.0.tgz", - "integrity": "sha512-/+SRpy7pKgTI28oEHfn1wkuM5QFAdRq8WNsOOih1dVrdV6A/WbNbRZyl0eX5eyDgtb0lOE27PeDFuCX2j8OxVg==", - "dev": true, - "requires": { - "babel-generator": "^6.1.0", - "babylon": "^6.1.0", - "call-matcher": "^1.0.0", - "core-js": "^2.0.0", - "espower-location-detector": "^1.0.0", - "espurify": "^1.6.0", - "estraverse": "^4.1.1" - } - }, - "babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", - "dev": true - }, - "babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", - "dev": true - }, - "babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", - "dev": true - }, - "babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", - "dev": true - }, - "babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", - "dev": true, - "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "dev": true, - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", - "dev": true, - "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" - } - }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "dev": true, - "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "dev": true, - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "dev": true, - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" - } - }, - "babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "dev": true, - "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "dev": true, - "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - }, - "dependencies": { - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "requires": { - "source-map": "^0.5.6" - } - } - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "optional": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "big-time": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/big-time/-/big-time-2.0.1.tgz", - "integrity": "sha1-aMffjcMPl+lT8lpnp2rJcTwWyd4=", - "dev": true - }, - "binary-extensions": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", - "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", - "dev": true - }, - "bluebird": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", - "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", - "dev": true - }, - "body-parser": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", - "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", - "dev": true, - "requires": { - "bytes": "3.0.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "~1.6.3", - "iconv-lite": "0.4.23", - "on-finished": "~2.3.0", - "qs": "6.5.2", - "raw-body": "2.3.3", - "type-is": "~1.6.16" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "boom": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-7.2.0.tgz", - "integrity": "sha1-K/8kpVVldn/ehp7ICDF+sQxI6WY=", - "dev": true, - "requires": { - "hoek": "5.x.x" - } - }, - "bounce": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bounce/-/bounce-1.2.0.tgz", - "integrity": "sha512-8syCGe8B2/WC53118/F/tFy5aW00j+eaGPXmAUP7iBhxc+EBZZxS1vKelWyBCH6IqojgS2t1gF0glH30qAJKEw==", - "dev": true, - "requires": { - "boom": "7.x.x", - "hoek": "5.x.x" - } - }, - "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", - "dev": true, - "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "buf-compare": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buf-compare/-/buf-compare-1.0.1.tgz", - "integrity": "sha1-/vKNqLgROgoNtEMLC2Rntpcws0o=", - "dev": true - }, - "buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", - "dev": true - }, - "bunyan": { - "version": "1.8.12", - "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.12.tgz", - "integrity": "sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=", - "dev": true, - "requires": { - "dtrace-provider": "~0.8", - "moment": "^2.10.6", - "mv": "~2", - "safe-json-stringify": "~1" - } - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "cache-content-type": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", - "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", - "dev": true, - "requires": { - "mime-types": "^2.1.18", - "ylru": "^1.2.0" - } - }, - "cacheable-request": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", - "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", - "dev": true, - "requires": { - "clone-response": "1.0.2", - "get-stream": "3.0.0", - "http-cache-semantics": "3.8.1", - "keyv": "3.0.0", - "lowercase-keys": "1.0.0", - "normalize-url": "2.0.1", - "responselike": "1.0.2" - }, - "dependencies": { - "lowercase-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", - "dev": true - } - } - }, - "caching-transform": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", - "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", - "dev": true, - "requires": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" - }, - "dependencies": { - "md5-hex": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", - "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", - "dev": true, - "requires": { - "md5-o-matic": "^0.1.1" - } - }, - "write-file-atomic": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", - "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" - } - } - } - }, - "call": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/call/-/call-5.0.1.tgz", - "integrity": "sha512-ollfFPSshiuYLp7AsrmpkQJ/PxCi6AzV81rCjBwWhyF2QGyUY/vPDMzoh4aUcWyucheRglG2LaS5qkIEfLRh6A==", - "dev": true, - "requires": { - "boom": "7.x.x", - "hoek": "5.x.x" - } - }, - "call-matcher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-matcher/-/call-matcher-1.0.1.tgz", - "integrity": "sha1-UTTQd5hPcSpU2tPL9i3ijc5BbKg=", - "dev": true, - "requires": { - "core-js": "^2.0.0", - "deep-equal": "^1.0.0", - "espurify": "^1.6.0", - "estraverse": "^4.0.0" - } - }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true - }, - "call-signature": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/call-signature/-/call-signature-0.0.2.tgz", - "integrity": "sha1-qEq8glpV70yysCi9dOIFpluaSZY=", - "dev": true - }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "dev": true, - "requires": { - "callsites": "^0.2.0" - } - }, - "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", - "dev": true - }, - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - } - }, - "capture-stack-trace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", - "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "catbox": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/catbox/-/catbox-10.0.2.tgz", - "integrity": "sha512-cTQTQeKMhWHU0lX8CADE3g1koGJu+AlcWFzAjMX/8P+XbkScGYw3tJsQpe2Oh8q68vOQbOLacz9k+6V/F3Z9DA==", - "dev": true, - "requires": { - "boom": "7.x.x", - "bounce": "1.x.x", - "hoek": "5.x.x", - "joi": "13.x.x" - } - }, - "catbox-memory": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/catbox-memory/-/catbox-memory-3.1.2.tgz", - "integrity": "sha512-lhWtutLVhsq3Mucxk2McxBPPibJ34WcHuWFz3xqub9u9Ve/IQYpZv3ijLhQXfQped9DXozURiaq9O3aZpP91eg==", - "dev": true, - "requires": { - "big-time": "2.x.x", - "boom": "7.x.x", - "hoek": "5.x.x" - } - }, - "catharsis": { - "version": "0.8.9", - "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.9.tgz", - "integrity": "sha1-mMyJDKZS3S7w5ws3klMQ/56Q/Is=", - "dev": true, - "requires": { - "underscore-contrib": "~0.3.0" - } - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true, - "optional": true, - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - } - }, - "chai": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", - "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", - "dev": true, - "requires": { - "assertion-error": "^1.0.1", - "check-error": "^1.0.1", - "deep-eql": "^3.0.0", - "get-func-name": "^2.0.0", - "pathval": "^1.0.0", - "type-detect": "^4.0.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", - "dev": true - }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true - }, - "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "dev": true, - "requires": { - "anymatch": "^1.3.0", - "async-each": "^1.0.0", - "fsevents": "^1.0.0", - "glob-parent": "^2.0.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0" - } - }, - "ci-info": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz", - "integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==", - "dev": true - }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", - "dev": true - }, - "clang-format": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", - "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", - "dev": true, - "requires": { - "async": "^1.5.2", - "glob": "^7.0.0", - "resolve": "^1.1.6" - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "clean-stack": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-1.3.0.tgz", - "integrity": "sha1-noIVAa6XmYbEax1m0tQy2y/UrjE=", - "dev": true - }, - "clean-yaml-object": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz", - "integrity": "sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g=", - "dev": true - }, - "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", - "dev": true - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-spinners": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz", - "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==", - "dev": true - }, - "cli-truncate": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-1.1.0.tgz", - "integrity": "sha512-bAtZo0u82gCfaAGfSNxUdTI9mNyza7D8w4CVCcaOsy7sgwDzvx6ekr6cuWJqY3UGzgnQ1+4wgENup5eIhgxEYA==", - "dev": true, - "requires": { - "slice-ansi": "^1.0.0", - "string-width": "^2.0.0" - } - }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "optional": true, - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true, - "optional": true - } - } - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "co-with-promise": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co-with-promise/-/co-with-promise-4.6.0.tgz", - "integrity": "sha1-QT59tvWJOmC5Qs9JLEvsk9tBWrc=", - "dev": true, - "requires": { - "pinkie-promise": "^1.0.0" - } - }, - "code-excerpt": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-2.1.1.tgz", - "integrity": "sha512-tJLhH3EpFm/1x7heIW0hemXJTUU5EWl2V0EIX558jp05Mt1U6DVryCgkp3l37cxqs+DNbNgxG43SkwJXpQ14Jw==", - "dev": true, - "requires": { - "convert-to-spaces": "^1.0.1" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "codecov": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.0.4.tgz", - "integrity": "sha512-KJyzHdg9B8U9LxXa7hS6jnEW5b1cNckLYc2YpnJ1nEFiOW+/iSzDHp+5MYEIQd9fN3/tC6WmGZmYiwxzkuGp/A==", - "dev": true, - "requires": { - "argv": "^0.0.2", - "ignore-walk": "^3.0.1", - "request": "^2.87.0", - "urlgrey": "^0.4.4" - } - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true - }, - "combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.0.tgz", - "integrity": "sha512-477o1hdVORiFlZxw8wgsXYCef3lh0zl/OV0FTftqiDxJSWw6dPQ2ipS4k20J2qBcsmsmLKSyr2iFrf9e3JGi4w==", - "dev": true - }, - "common-path-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-1.0.0.tgz", - "integrity": "sha1-zVL28HEuC6q5fW+XModPIvR3UsA=", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concordance": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/concordance/-/concordance-3.0.0.tgz", - "integrity": "sha512-CZBzJ3/l5QJjlZM20WY7+5GP5pMTw+1UEbThcpMw8/rojsi5sBCiD8ZbBLtD+jYpRGAkwuKuqk108c154V9eyQ==", - "dev": true, - "requires": { - "date-time": "^2.1.0", - "esutils": "^2.0.2", - "fast-diff": "^1.1.1", - "function-name-support": "^0.2.0", - "js-string-escape": "^1.0.1", - "lodash.clonedeep": "^4.5.0", - "lodash.flattendeep": "^4.4.0", - "lodash.merge": "^4.6.0", - "md5-hex": "^2.0.0", - "semver": "^5.3.0", - "well-known-symbols": "^1.0.0" - }, - "dependencies": { - "date-time": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/date-time/-/date-time-2.1.0.tgz", - "integrity": "sha512-/9+C44X7lot0IeiyfgJmETtRMhBidBYM2QFFIkGa0U1k+hSyY87Nw7PY3eDqpvCBm7I3WCSfPeZskW/YYq6m4g==", - "dev": true, - "requires": { - "time-zone": "^1.0.0" - } - } - } - }, - "configstore": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", - "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", - "dev": true, - "requires": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" - } - }, - "console-log-level": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/console-log-level/-/console-log-level-1.4.0.tgz", - "integrity": "sha1-QDWBi+6jflhQoMA8jUUMpfLNEhc=" - }, - "content": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/content/-/content-4.0.5.tgz", - "integrity": "sha512-wDP6CTWDpwCf791fNxlCCkZGRkrNzSEU/8ju9Hnr3Uc5mF/gFR5W+fcoGm6zUSlVPdSXYn5pCbySADKj7YM4Cg==", - "dev": true, - "requires": { - "boom": "7.x.x" - } - }, - "content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", - "dev": true - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, - "convert-source-map": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", - "dev": true - }, - "convert-to-spaces": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-1.0.2.tgz", - "integrity": "sha1-fj5Iu+bZl7FBfdyihoIEtNPYVxU=", - "dev": true - }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "cookiejar": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", - "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==", - "dev": true - }, - "cookies": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.7.1.tgz", - "integrity": "sha1-fIphX1SBxhq58WyDNzG8uPZjuZs=", - "dev": true, - "requires": { - "depd": "~1.1.1", - "keygrip": "~1.0.2" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "core-assert": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/core-assert/-/core-assert-0.2.1.tgz", - "integrity": "sha1-+F4s+b/tKPdzzIs/pcW2m9wC/j8=", - "dev": true, - "requires": { - "buf-compare": "^1.0.0", - "is-error": "^2.2.0" - } - }, - "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cp-file": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-6.0.0.tgz", - "integrity": "sha512-OtHMgPugkgwHlbph25wlMKd358lZNhX1Y2viUpPoFmlBPlEiPIRhztYWha11grbGPnlM+urp5saVmwsChCIOEg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "nested-error-stacks": "^2.0.0", - "pify": "^3.0.0", - "safe-buffer": "^5.0.1" - } - }, - "cpy": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cpy/-/cpy-7.0.1.tgz", - "integrity": "sha512-Zo52tXKLJcgy/baacn6KaNoRAakkl2wb+R4u6qJ4wlD0uchncwRQcIk66PlGlkzuToCJO6A6PWX27Tdwc8LU2g==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "cp-file": "^6.0.0", - "globby": "^8.0.1", - "nested-error-stacks": "^2.0.0" - }, - "dependencies": { - "globby": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.1.tgz", - "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "dir-glob": "^2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - } - } - } - }, - "cpy-cli": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cpy-cli/-/cpy-cli-2.0.0.tgz", - "integrity": "sha512-LzrtY3lBWvFZcw4lXgkEbbDUd7y78juC3C5l7gj3UyezMEZF0Be9fjCVLN1HoZAzdMDeC3KHehWpHBJvgVAPkw==", - "dev": true, - "requires": { - "cpy": "^7.0.0", - "meow": "^5.0.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "camelcase-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", - "dev": true, - "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "map-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", - "dev": true - }, - "meow": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", - "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", - "dev": true, - "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0", - "yargs-parser": "^10.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - } - }, - "redent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", - "dev": true, - "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" - } - }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true - }, - "trim-newlines": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", - "dev": true - } - } - }, - "create-error-class": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", - "dev": true, - "requires": { - "capture-stack-trace": "^1.0.0" - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "cryptiles": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-4.1.2.tgz", - "integrity": "sha512-U2ALcoAHvA1oO2xOreyHvtkQ+IELqDG2WVWRI1GH/XEmmfGIOalnM5MU5Dd2ITyWfr3m6kNqXiy8XuYyd4wKJw==", - "dev": true, - "requires": { - "boom": "7.x.x" - } - }, - "crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", - "dev": true - }, - "csv": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/csv/-/csv-1.2.1.tgz", - "integrity": "sha1-UjHt/BxxUlEuxFeBB2p6l/9SXAw=", - "dev": true, - "requires": { - "csv-generate": "^1.1.2", - "csv-parse": "^1.3.3", - "csv-stringify": "^1.1.2", - "stream-transform": "^0.2.2" - } - }, - "csv-generate": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-1.1.2.tgz", - "integrity": "sha1-7GsA7a7W5ZrZwgWC9MNk4osUYkA=", - "dev": true - }, - "csv-parse": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-1.3.3.tgz", - "integrity": "sha1-0c/YdDwvhJoKuy/VRNtWaV0ZpJA=", - "dev": true - }, - "csv-stringify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-1.1.2.tgz", - "integrity": "sha1-d6QVJlgbzjOA8SsA18W7rHDIK1g=", - "dev": true, - "requires": { - "lodash.get": "~4.4.2" - } - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "^1.0.1" - } - }, - "d": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "dev": true, - "requires": { - "es5-ext": "^0.10.9" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "date-time": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/date-time/-/date-time-0.1.1.tgz", - "integrity": "sha1-7S9tk9l5DOL9ZtW1/z7dW7y/Owc=", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "dev": true, - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - } - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } - }, - "deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", - "dev": true - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "define-properties": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", - "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", - "dev": true, - "requires": { - "foreach": "^2.0.5", - "object-keys": "^1.0.8" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "dev": true, - "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" - }, - "dependencies": { - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "detect-node": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz", - "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=", - "dev": true - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "diff-match-patch": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.1.tgz", - "integrity": "sha512-A0QEhr4PxGUMEtKxd6X+JLnOTFd3BfIPSDpsc4dMvj+CbSaErDwTpoTo/nFJDMSrjxLW4BiNq+FbNisAAHhWeQ==", - "dev": true - }, - "dir-glob": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "path-type": "^3.0.0" - }, - "dependencies": { - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - } - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-serializer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", - "dev": true, - "requires": { - "domelementtype": "~1.1.1", - "entities": "~1.1.1" - }, - "dependencies": { - "domelementtype": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", - "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", - "dev": true - } - } - }, - "domelementtype": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", - "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", - "dev": true - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "dev": true, - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "dev": true, - "requires": { - "is-obj": "^1.0.0" - } - }, - "dtrace-provider": { - "version": "0.8.7", - "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.7.tgz", - "integrity": "sha1-3JObTT4GIM/gwc2APQ0tftBP/QQ=", - "dev": true, - "optional": true, - "requires": { - "nan": "^2.10.0" - } - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, - "duplexify": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", - "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "optional": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ecdsa-sig-formatter": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz", - "integrity": "sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "empower": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/empower/-/empower-1.3.0.tgz", - "integrity": "sha512-tP2WqM7QzrPguCCQEQfFFDF+6Pw6YWLQal3+GHQaV+0uIr0S+jyREQPWljE02zFCYPFYLZ3LosiRV+OzTrxPpQ==", - "dev": true, - "requires": { - "core-js": "^2.0.0", - "empower-core": "^1.2.0" - }, - "dependencies": { - "empower-core": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/empower-core/-/empower-core-1.2.0.tgz", - "integrity": "sha512-g6+K6Geyc1o6FdXs9HwrXleCFan7d66G5xSCfSF7x1mJDCes6t0om9lFQG3zOrzh3Bkb/45N0cZ5Gqsf7YrzGQ==", - "dev": true, - "requires": { - "call-signature": "0.0.2", - "core-js": "^2.0.0" - } - } - } - }, - "empower-assert": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/empower-assert/-/empower-assert-1.1.0.tgz", - "integrity": "sha512-Ylck0Q6p8y/LpNzYeBccaxAPm2ZyuqBgErgZpO9KT0HuQWF0sJckBKCLmgS1/DEXEiyBi9XtYh3clZm5cAdARw==", - "dev": true, - "requires": { - "estraverse": "^4.2.0" - } - }, - "empower-core": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/empower-core/-/empower-core-0.6.2.tgz", - "integrity": "sha1-Wt71ZgiOMfuoC6CjbfR9cJQWkUQ=", - "dev": true, - "requires": { - "call-signature": "0.0.2", - "core-js": "^2.0.0" - } - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "requires": { - "once": "^1.4.0" - } - }, - "ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=" - }, - "entities": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", - "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", - "dev": true - }, - "equal-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/equal-length/-/equal-length-1.0.1.tgz", - "integrity": "sha1-IcoRLUirJLTh5//A5TOdMf38J0w=", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "error-inject": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/error-inject/-/error-inject-1.0.0.tgz", - "integrity": "sha1-4rPZG1Su1nLzCdlQ0VSFD6EdTzc=", - "dev": true - }, - "es-abstract": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", - "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", - "dev": true, - "requires": { - "es-to-primitive": "^1.1.1", - "function-bind": "^1.1.1", - "has": "^1.0.1", - "is-callable": "^1.1.3", - "is-regex": "^1.0.4" - } - }, - "es-to-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", - "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", - "dev": true, - "requires": { - "is-callable": "^1.1.1", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.1" - } - }, - "es5-ext": { - "version": "0.10.45", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz", - "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", - "dev": true, - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.1", - "next-tick": "1" - } - }, - "es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-set": "~0.1.5", - "es6-symbol": "~3.1.1", - "event-emitter": "~0.3.5" - } - }, - "es6-set": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", - "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-symbol": "3.1.1", - "event-emitter": "~0.3.5" - } - }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "es6-weak-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", - "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.14", - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, - "escallmatch": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/escallmatch/-/escallmatch-1.5.0.tgz", - "integrity": "sha1-UAmdhugJGwkt+N37w/mm+wWgJNA=", - "dev": true, - "requires": { - "call-matcher": "^1.0.0", - "esprima": "^2.0.0" - }, - "dependencies": { - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true - } - } - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-regexp-component": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/escape-regexp-component/-/escape-regexp-component-1.0.2.tgz", - "integrity": "sha1-nGO20LJf8qiMOtvRjFthrMO5+qI=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "escodegen": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.0.tgz", - "integrity": "sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==", - "dev": true, - "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - } - } - }, - "escope": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", - "dev": true, - "requires": { - "es6-map": "^0.1.3", - "es6-weak-map": "^2.0.1", - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.3.0.tgz", - "integrity": "sha512-N/tCqlMKkyNvAvLu+zI9AqDasnSLt00K+Hu8kdsERliC9jYEc8ck12XtjvOXrBKu8fK6RrBcN9bat6Xk++9jAg==", - "dev": true, - "requires": { - "ajv": "^6.5.0", - "babel-code-frame": "^6.26.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^4.0.0", - "eslint-utils": "^1.3.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^4.0.0", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.7.0", - "ignore": "^4.0.2", - "imurmurhash": "^0.1.4", - "inquirer": "^5.2.0", - "is-resolvable": "^1.1.0", - "js-yaml": "^3.11.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.5", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "regexpp": "^2.0.0", - "require-uncached": "^1.0.3", - "semver": "^5.5.0", - "string.prototype.matchall": "^2.0.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "^2.0.1", - "table": "^4.0.3", - "text-table": "^0.2.0" - }, - "dependencies": { - "ajv": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz", - "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.1" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "globals": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", - "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", - "dev": true - }, - "ignore": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.3.tgz", - "integrity": "sha512-Z/vAH2GGIEATQnBVXMclE2IGV6i0GyVngKThcGZ5kHgHMxLo9Ow2+XHRq1aEKEej5vOF1TPJNbvX6J/anT0M7A==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - } - } - }, - "eslint-config-prettier": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-2.9.0.tgz", - "integrity": "sha512-ag8YEyBXsm3nmOv1Hz991VtNNDMRa+MNy8cY47Pl4bw6iuzqKbJajXdqUpiw13STdLLrznxgm1hj9NhxeOYq0A==", - "dev": true, - "requires": { - "get-stdin": "^5.0.1" - }, - "dependencies": { - "get-stdin": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", - "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=", - "dev": true - } - } - }, - "eslint-plugin-es": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-1.3.1.tgz", - "integrity": "sha512-9XcVyZiQRVeFjqHw8qHNDAZcQLqaHlOGGpeYqzYh8S4JYCWTCO3yzyen8yVmA5PratfzTRWDwCOFphtDEG+w/w==", - "dev": true, - "requires": { - "eslint-utils": "^1.3.0", - "regexpp": "^2.0.0" - } - }, - "eslint-plugin-node": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-7.0.1.tgz", - "integrity": "sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw==", - "dev": true, - "requires": { - "eslint-plugin-es": "^1.3.1", - "eslint-utils": "^1.3.1", - "ignore": "^4.0.2", - "minimatch": "^3.0.4", - "resolve": "^1.8.1", - "semver": "^5.5.0" - }, - "dependencies": { - "ignore": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.3.tgz", - "integrity": "sha512-Z/vAH2GGIEATQnBVXMclE2IGV6i0GyVngKThcGZ5kHgHMxLo9Ow2+XHRq1aEKEej5vOF1TPJNbvX6J/anT0M7A==", - "dev": true - }, - "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", - "dev": true, - "requires": { - "path-parse": "^1.0.5" - } - } - } - }, - "eslint-plugin-prettier": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.2.tgz", - "integrity": "sha512-tGek5clmW5swrAx1mdPYM8oThrBE83ePh7LeseZHBWfHVGrHPhKn7Y5zgRMbU/9D5Td9K4CEmUPjGxA7iw98Og==", - "dev": true, - "requires": { - "fast-diff": "^1.1.1", - "jest-docblock": "^21.0.0" - } - }, - "eslint-scope": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", - "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz", - "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==", - "dev": true - }, - "eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", - "dev": true - }, - "espower": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/espower/-/espower-2.1.1.tgz", - "integrity": "sha512-F4TY1qYJB1aUyzB03NsZksZzUQmQoEBaTUjRJGR30GxbkbjKI41NhCyYjrF+bGgWN7x/ZsczYppRpz/0WdI0ug==", - "dev": true, - "requires": { - "array-find": "^1.0.0", - "escallmatch": "^1.5.0", - "escodegen": "^1.7.0", - "escope": "^3.3.0", - "espower-location-detector": "^1.0.0", - "espurify": "^1.3.0", - "estraverse": "^4.1.0", - "source-map": "^0.5.0", - "type-name": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "espower-loader": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/espower-loader/-/espower-loader-1.2.2.tgz", - "integrity": "sha1-7bRsPFmga6yOpzppXIblxaC8gto=", - "dev": true, - "requires": { - "convert-source-map": "^1.1.0", - "espower-source": "^2.0.0", - "minimatch": "^3.0.0", - "source-map-support": "^0.4.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "requires": { - "source-map": "^0.5.6" - } - } - } - }, - "espower-location-detector": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/espower-location-detector/-/espower-location-detector-1.0.0.tgz", - "integrity": "sha1-oXt+zFnTDheeK+9z+0E3cEyzMbU=", - "dev": true, - "requires": { - "is-url": "^1.2.1", - "path-is-absolute": "^1.0.0", - "source-map": "^0.5.0", - "xtend": "^4.0.0" - } - }, - "espower-source": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/espower-source/-/espower-source-2.3.0.tgz", - "integrity": "sha512-Wc4kC4zUAEV7Qt31JRPoBUc5jjowHRylml2L2VaDQ1XEbnqQofGWx+gPR03TZAPokAMl5dqyL36h3ITyMXy3iA==", - "dev": true, - "requires": { - "acorn": "^5.0.0", - "acorn-es7-plugin": "^1.0.10", - "convert-source-map": "^1.1.1", - "empower-assert": "^1.0.0", - "escodegen": "^1.10.0", - "espower": "^2.1.1", - "estraverse": "^4.0.0", - "merge-estraverse-visitors": "^1.0.0", - "multi-stage-sourcemap": "^0.2.1", - "path-is-absolute": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "espree": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-4.0.0.tgz", - "integrity": "sha512-kapdTCt1bjmspxStVKX6huolXVV5ZfyZguY1lcfhVVZstce3bqxH9mcLzNn3/mlgW6wQ732+0fuG9v7h0ZQoKg==", - "dev": true, - "requires": { - "acorn": "^5.6.0", - "acorn-jsx": "^4.1.1" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "espurify": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/espurify/-/espurify-1.8.1.tgz", - "integrity": "sha512-ZDko6eY/o+D/gHCWyHTU85mKDgYcS4FJj7S+YD6WIInm7GQ6AnOjmcL4+buFV/JOztVLELi/7MmuGU5NHta0Mg==", - "dev": true, - "requires": { - "core-js": "^2.0.0" - } - }, - "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", - "dev": true, - "requires": { - "estraverse": "^4.0.0" - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "dev": true, - "requires": { - "estraverse": "^4.1.0" - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true - }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "ewma": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ewma/-/ewma-2.0.1.tgz", - "integrity": "sha512-MYYK17A76cuuyvkR7MnqLW4iFYPEi5Isl2qb8rXiWpLiwFS9dxW/rncuNnjjgSENuVqZQkIuR4+DChVL4g1lnw==", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true, - "requires": { - "fill-range": "^2.1.0" - } - }, - "express": { - "version": "4.16.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz", - "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", - "dev": true, - "requires": { - "accepts": "~1.3.5", - "array-flatten": "1.1.1", - "body-parser": "1.18.2", - "content-disposition": "0.5.2", - "content-type": "~1.0.4", - "cookie": "0.3.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.1.1", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.3", - "qs": "6.5.1", - "range-parser": "~1.2.0", - "safe-buffer": "5.1.1", - "send": "0.16.2", - "serve-static": "1.13.2", - "setprototypeof": "1.1.0", - "statuses": "~1.4.0", - "type-is": "~1.6.16", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "body-parser": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", - "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", - "dev": true, - "requires": { - "bytes": "3.0.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.1", - "http-errors": "~1.6.2", - "iconv-lite": "0.4.19", - "on-finished": "~2.3.0", - "qs": "6.5.1", - "raw-body": "2.3.2", - "type-is": "~1.6.15" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "iconv-lite": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", - "dev": true - }, - "raw-body": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", - "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", - "dev": true, - "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.2", - "iconv-lite": "0.4.19", - "unpipe": "1.0.0" - }, - "dependencies": { - "depd": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", - "dev": true - }, - "http-errors": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", - "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", - "dev": true, - "requires": { - "depd": "1.1.1", - "inherits": "2.0.3", - "setprototypeof": "1.0.3", - "statuses": ">= 1.3.1 < 2" - } - }, - "setprototypeof": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", - "dev": true - } - } - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true - }, - "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", - "dev": true - } - } - }, - "express-serve-static-core": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/express-serve-static-core/-/express-serve-static-core-0.1.1.tgz", - "integrity": "sha1-IiNYESp5vJ++AIOCMujNLjEy7zc=", - "dev": true - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "dev": true, - "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "fast-decode-uri-component": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.0.tgz", - "integrity": "sha512-WQSYVKn6tDW/3htASeUkrx5LcnuTENQIZQPCVlwdnvIJ7bYtSpoJYq38MgUJnx1CQIR1gjZ8HJxAEcN4gqugBg==", - "dev": true - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" - }, - "fast-diff": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz", - "integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==", - "dev": true - }, - "fast-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.2.tgz", - "integrity": "sha512-TR6zxCKftDQnUAPvkrCWdBgDq/gbqx8A3ApnBrR5rMvpp6+KMJI0Igw7fkWPgeVK0uhRXTXdvO3O+YP0CaUX2g==", - "dev": true, - "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.0.1", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.1", - "micromatch": "^3.1.10" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "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.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "dev": true, - "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" - } - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true - }, - "fill-keys": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fill-keys/-/fill-keys-1.0.2.tgz", - "integrity": "sha1-mo+jb06K1jTjv2tPPIiCVRRS6yA=", - "dev": true, - "requires": { - "is-object": "~1.0.1", - "merge-descriptors": "~1.0.0" - } - }, - "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", - "dev": true, - "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" - } - }, - "finalhandler": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", - "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "statuses": "~1.4.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", - "dev": true - } - } - }, - "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^2.0.0" - } - }, - "find-my-way": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-1.15.1.tgz", - "integrity": "sha512-cwR1IxkB1JIIGxWpX3TQC1U/51htT4dps536rno7fkszeSSevvZGkl1dpIANRNq+X6/VDSF/S4JAuDPSTepHBA==", - "dev": true, - "requires": { - "fast-decode-uri-component": "^1.0.0", - "safe-regex": "^1.1.0", - "semver-store": "^0.3.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "flat-cache": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", - "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", - "dev": true, - "requires": { - "circular-json": "^0.3.1", - "del": "^2.0.2", - "graceful-fs": "^4.1.2", - "write": "^0.2.1" - } - }, - "fn-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fn-name/-/fn-name-2.0.1.tgz", - "integrity": "sha1-UhTXU3pNBqSjAcDMJi/rhBiAAuc=", - "dev": true - }, - "follow-redirects": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.2.tgz", - "integrity": "sha512-kssLorP/9acIdpQ2udQVTiCS5LQmdEz9mvdIfDcl1gYX2tPKFADHSyFdvJS040XdFsPzemWtgI3q8mFVCxtX8A==", - "requires": { - "debug": "^3.1.0" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "1.0.6", - "mime-types": "^2.1.12" - } - }, - "formidable": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz", - "integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==", - "dev": true - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-extra": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", - "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", - "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", - "dev": true, - "optional": true, - "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "2.6.9", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.21", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": "^2.1.0" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.2.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.1", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.2.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "^2.1.2", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.10.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.0", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.1.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.1.10", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "^7.0.5" - } - }, - "safe-buffer": { - "version": "5.1.1", - "bundled": true, - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.5.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.0.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.2.4", - "minizlib": "^1.1.0", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.1", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "yallist": { - "version": "3.0.2", - "bundled": true, - "dev": true - } - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "function-name-support": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/function-name-support/-/function-name-support-0.2.0.tgz", - "integrity": "sha1-VdO/qm6v1QWlD5vIH99XVkoLsHE=", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "gcp-metadata": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.6.3.tgz", - "integrity": "sha512-MSmczZctbz91AxCvqp9GHBoZOSbJKAICV7Ow/AIWSJZRrRchUd5NL1b2P4OfP+4m490BEUPhhARfpHdqCxuCvg==", - "requires": { - "axios": "^0.18.0", - "extend": "^3.0.1", - "retry-axios": "0.3.2" - } - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true - }, - "get-port": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", - "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=", - "dev": true - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, - "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" - } - }, - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "^2.0.0" - } - }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", - "dev": true - }, - "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", - "dev": true, - "requires": { - "ini": "^1.3.4" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - } - } - }, - "google-auth-library": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-1.6.1.tgz", - "integrity": "sha512-jYiWC8NA9n9OtQM7ANn0Tk464do9yhKEtaJ72pKcaBiEwn4LwcGYIYOfwtfsSm3aur/ed3tlSxbmg24IAT6gAg==", - "requires": { - "axios": "^0.18.0", - "gcp-metadata": "^0.6.3", - "gtoken": "^2.3.0", - "jws": "^3.1.5", - "lodash.isstring": "^4.0.1", - "lru-cache": "^4.1.3", - "retry-axios": "^0.3.2" - } - }, - "google-p12-pem": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-1.0.2.tgz", - "integrity": "sha512-+EuKr4CLlGsnXx4XIJIVkcKYrsa2xkAmCvxRhX2HsazJzUBAJ35wARGeApHUn4nNfPD03Vl057FskNr20VaCyg==", - "requires": { - "node-forge": "^0.7.4", - "pify": "^3.0.0" - } - }, - "got": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/got/-/got-8.3.0.tgz", - "integrity": "sha512-kBNy/S2CGwrYgDSec5KTWGKUvupwkkTVAjIsVFF2shXO13xpZdFP4d4kxa//CLX2tN/rV0aYwK8vY6UKWGn2vQ==", - "dev": true, - "requires": { - "@sindresorhus/is": "^0.7.0", - "cacheable-request": "^2.1.1", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "into-stream": "^3.1.0", - "is-retry-allowed": "^1.1.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "mimic-response": "^1.0.0", - "p-cancelable": "^0.4.0", - "p-timeout": "^2.0.1", - "pify": "^3.0.0", - "safe-buffer": "^5.1.1", - "timed-out": "^4.0.1", - "url-parse-lax": "^3.0.0", - "url-to-options": "^1.0.1" - }, - "dependencies": { - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true - }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, - "requires": { - "prepend-http": "^2.0.0" - } - } - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, - "gtoken": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-2.3.0.tgz", - "integrity": "sha512-Jc9/8mV630cZE9FC5tIlJCZNdUjwunvlwOtCz6IDlaiB4Sz68ki29a1+q97sWTnTYroiuF9B135rod9zrQdHLw==", - "requires": { - "axios": "^0.18.0", - "google-p12-pem": "^1.0.0", - "jws": "^3.1.4", - "mime": "^2.2.0", - "pify": "^3.0.0" - } - }, - "gts": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/gts/-/gts-0.8.0.tgz", - "integrity": "sha512-VB9LQLFR+10cJhDBLYu9i2t7vTkewTXeBJbvw5+M2LqGgjiaKIUTIFbVBLjIknDpuaRpAzVcvhiHWy/30c09jg==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "clang-format": "1.2.3", - "inquirer": "^6.0.0", - "meow": "^5.0.0", - "pify": "^3.0.0", - "rimraf": "^2.6.2", - "tslint": "^5.9.1", - "update-notifier": "^2.5.0", - "write-file-atomic": "^2.3.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "camelcase-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", - "dev": true, - "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" - } - }, - "chardet": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.5.0.tgz", - "integrity": "sha512-9ZTaoBaePSCFvNlNGrsyI8ZVACP2svUtq0DkM7t4K2ClAa96sqOIRjAzDTc8zXzFt1cZR46rRzLTiHFSJ+Qw0g==", - "dev": true - }, - "external-editor": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.0.tgz", - "integrity": "sha512-mpkfj0FEdxrIhOC04zk85X7StNtr0yXnG7zCb+8ikO8OJi2jsHh5YGoknNTyXgsbHOf1WOOcVU3kPFWT2WgCkQ==", - "dev": true, - "requires": { - "chardet": "^0.5.0", - "iconv-lite": "^0.4.22", - "tmp": "^0.0.33" - } - }, - "inquirer": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.0.0.tgz", - "integrity": "sha512-tISQWRwtcAgrz+SHPhTH7d3e73k31gsOy6i1csonLc0u1dVK/wYvuOnFeiWqC5OXFIYbmrIFInef31wbT8MEJg==", - "dev": true, - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.0", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.1.0", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "map-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", - "dev": true - }, - "meow": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", - "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", - "dev": true, - "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0", - "yargs-parser": "^10.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - } - }, - "redent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", - "dev": true, - "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" - } - }, - "rxjs": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.2.tgz", - "integrity": "sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true - }, - "trim-newlines": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", - "dev": true - } - } - }, - "handle-thing": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", - "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", - "dev": true - }, - "handlebars": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", - "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", - "dev": true, - "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - } - } - }, - "hapi": { - "version": "17.5.3", - "resolved": "https://registry.npmjs.org/hapi/-/hapi-17.5.3.tgz", - "integrity": "sha512-1sb73YkoUfSEBaVe5QWhHnUYuSyJfo+J27ZgA8DGQSqHASlOwuLl28QBzZ3rVnE06AbOYnD18hLKVI4c8IlGLA==", - "dev": true, - "requires": { - "accept": "3.x.x", - "ammo": "3.x.x", - "boom": "7.x.x", - "bounce": "1.x.x", - "call": "5.x.x", - "catbox": "10.x.x", - "catbox-memory": "3.x.x", - "heavy": "6.x.x", - "hoek": "5.x.x", - "joi": "13.x.x", - "mimos": "4.x.x", - "podium": "3.x.x", - "shot": "4.x.x", - "statehood": "6.x.x", - "subtext": "6.x.x", - "teamwork": "3.x.x", - "topo": "3.x.x" - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "requires": { - "ajv": "^5.1.0", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-color": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", - "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=", - "dev": true - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, - "has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", - "dev": true - }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true - }, - "has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "dev": true, - "requires": { - "has-symbol-support-x": "^1.4.1" - } - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "has-yarn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-1.0.0.tgz", - "integrity": "sha1-ieJdtgS3Jcj1l2//Ct3JIbgopac=", - "dev": true - }, - "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", - "dev": true - }, - "heavy": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/heavy/-/heavy-6.1.0.tgz", - "integrity": "sha512-TKS9DC9NOTGulHQI31Lx+bmeWmNOstbJbGMiN3pX6bF+Zc2GKSpbbym4oasNnB6yPGkqJ9TQXXYDGohqNSJRxA==", - "dev": true, - "requires": { - "boom": "7.x.x", - "hoek": "5.x.x", - "joi": "13.x.x" - } - }, - "hoek": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==", - "dev": true - }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" - } - }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", - "dev": true - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "htmlparser2": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", - "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", - "dev": true, - "requires": { - "domelementtype": "^1.3.0", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^2.0.2" - } - }, - "http-assert": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.3.0.tgz", - "integrity": "sha1-oxpc+IyHPsu1eWkH1NbxMujAHko=", - "dev": true, - "requires": { - "deep-equal": "~1.0.1", - "http-errors": "~1.6.1" - } - }, - "http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", - "dev": true - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "hullabaloo-config-manager": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/hullabaloo-config-manager/-/hullabaloo-config-manager-1.1.1.tgz", - "integrity": "sha512-ztKnkZV0TmxnumCDHHgLGNiDnotu4EHCp9YMkznWuo4uTtCyJ+cu+RNcxUeXYKTllpvLFWnbfWry09yzszgg+A==", - "dev": true, - "requires": { - "dot-prop": "^4.1.0", - "es6-error": "^4.0.2", - "graceful-fs": "^4.1.11", - "indent-string": "^3.1.0", - "json5": "^0.5.1", - "lodash.clonedeep": "^4.5.0", - "lodash.clonedeepwith": "^4.5.0", - "lodash.isequal": "^4.5.0", - "lodash.merge": "^4.6.0", - "md5-hex": "^2.0.0", - "package-hash": "^2.0.0", - "pkg-dir": "^2.0.0", - "resolve-from": "^3.0.0", - "safe-buffer": "^5.0.1" - } - }, - "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true - }, - "ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", - "dev": true - }, - "ignore-walk": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", - "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", - "dev": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true - }, - "import-local": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-0.1.1.tgz", - "integrity": "sha1-sReVcqrNwRxqkQCftDDbyrX2aKg=", - "dev": true, - "requires": { - "pkg-dir": "^2.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true - }, - "ink-docstrap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/ink-docstrap/-/ink-docstrap-1.3.2.tgz", - "integrity": "sha512-STx5orGQU1gfrkoI/fMU7lX6CSP7LBGO10gXNgOZhwKhUqbtNjCkYSewJtNnLmWP1tAGN6oyEpG1HFPw5vpa5Q==", - "dev": true, - "requires": { - "moment": "^2.14.1", - "sanitize-html": "^1.13.0" - } - }, - "inquirer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz", - "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==", - "dev": true, - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.1.0", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^5.5.2", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - } - }, - "intelli-espower-loader": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/intelli-espower-loader/-/intelli-espower-loader-1.0.1.tgz", - "integrity": "sha1-LHsDFGvB1GvyENCgOXxckatMorA=", - "dev": true, - "requires": { - "espower-loader": "^1.0.0" - } - }, - "into-stream": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", - "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", - "dev": true, - "requires": { - "from2": "^2.1.1", - "p-is-promise": "^1.1.0" - } - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "requires": { - "loose-envify": "^1.0.0" - } - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, - "ipaddr.js": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", - "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=", - "dev": true - }, - "iron": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/iron/-/iron-5.0.4.tgz", - "integrity": "sha512-7iQ5/xFMIYaNt9g2oiNiWdhrOTdRUMFaWENUd0KghxwPUhrIH8DUY8FEyLNTTzf75jaII+jMexLdY/2HfV61RQ==", - "dev": true, - "requires": { - "boom": "7.x.x", - "cryptiles": "4.x.x", - "hoek": "5.x.x" - } - }, - "irregular-plurals": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-1.4.0.tgz", - "integrity": "sha1-LKmwM2UREYVUEvFr5dd8YqRYp2Y=", - "dev": true - }, - "is": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is/-/is-3.2.1.tgz", - "integrity": "sha1-0Kwq1V63sL7JJqUmb2xmKqqD3KU=" - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true - }, - "is-ci": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz", - "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", - "dev": true, - "requires": { - "ci-info": "^1.0.0" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true, - "requires": { - "is-primitive": "^2.0.0" - } - }, - "is-error": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-error/-/is-error-2.2.1.tgz", - "integrity": "sha1-aEqW2EB2V3yY9M20DG0mpRI78Zw=", - "dev": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-generator-fn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-1.0.0.tgz", - "integrity": "sha1-lp1J4bszKfa7fwkIm+JleLLd1Go=", - "dev": true - }, - "is-generator-function": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.7.tgz", - "integrity": "sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw==", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", - "dev": true, - "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" - } - }, - "is-npm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", - "dev": true - }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, - "is-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", - "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", - "dev": true - }, - "is-observable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", - "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", - "dev": true, - "requires": { - "symbol-observable": "^1.1.0" - } - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true - }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", - "dev": true, - "requires": { - "is-path-inside": "^1.0.0" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, - "is-redirect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", - "dev": true - }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "dev": true, - "requires": { - "has": "^1.0.1" - } - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, - "is-retry-allowed": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-symbol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", - "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isemail": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.1.3.tgz", - "integrity": "sha512-5xbsG5wYADIcB+mfLsd+nst1V/D+I7EU7LEZPo2GOIMu4JzfcRs5yQoypP4avA7QtUqgxYLKBYNv4IdzBmbhdw==", - "dev": true, - "requires": { - "punycode": "2.x.x" - }, - "dependencies": { - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - } - } - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "istanbul-lib-coverage": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", - "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.2.tgz", - "integrity": "sha512-l7TD/VnBsIB2OJvSyxaLW/ab1+92dxZNH9wLH7uHPPioy3JZ8tnx2UXUdKmdkgmP2EFPzg64CToUP6dAS3U32Q==", - "dev": true, - "requires": { - "@babel/generator": "7.0.0-beta.51", - "@babel/parser": "7.0.0-beta.51", - "@babel/template": "7.0.0-beta.51", - "@babel/traverse": "7.0.0-beta.51", - "@babel/types": "7.0.0-beta.51", - "istanbul-lib-coverage": "^2.0.1", - "semver": "^5.5.0" - } - }, - "isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "dev": true, - "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - } - }, - "jest-docblock": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz", - "integrity": "sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw==", - "dev": true - }, - "joi": { - "version": "13.5.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-13.5.2.tgz", - "integrity": "sha512-3HrFXLC57iU5CzYth3cJRdYEo4/Dr+tXmCQ+BHyiTTKnKxJ9ICkI/WJGPwUUXj3dWA4tO2hwZO5oCdBNhAYuRg==", - "dev": true, - "requires": { - "hoek": "5.x.x", - "isemail": "3.x.x", - "topo": "3.x.x" - } - }, - "js-green-licenses": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/js-green-licenses/-/js-green-licenses-0.5.0.tgz", - "integrity": "sha512-HM/SKwAl1R0y9kkBili6GqKc31ZnjzY7JHC2uO9bAHJNRmY5c/s+2cETyaqX0kBD8gX8QVhS4dJjRtY1nAwb4w==", - "dev": true, - "requires": { - "argparse": "^1.0.9", - "axios": "^0.18.0", - "npm-package-arg": "^6.0.0", - "package-json": "^4.0.1", - "pify": "^3.0.0", - "spdx-correct": "^3.0.0", - "spdx-satisfies": "^4.0.0", - "strip-json-comments": "^2.0.1" - } - }, - "js-string-escape": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", - "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=", - "dev": true - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "js2xmlparser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-3.0.0.tgz", - "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", - "dev": true, - "requires": { - "xmlcreate": "^1.0.1" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "optional": true - }, - "jsdoc": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.5.5.tgz", - "integrity": "sha512-6PxB65TAU4WO0Wzyr/4/YhlGovXl0EVYfpKbpSroSj0qBxT4/xod/l40Opkm38dRHRdQgdeY836M0uVnJQG7kg==", - "dev": true, - "requires": { - "babylon": "7.0.0-beta.19", - "bluebird": "~3.5.0", - "catharsis": "~0.8.9", - "escape-string-regexp": "~1.0.5", - "js2xmlparser": "~3.0.0", - "klaw": "~2.0.0", - "marked": "~0.3.6", - "mkdirp": "~0.5.1", - "requizzle": "~0.2.1", - "strip-json-comments": "~2.0.1", - "taffydb": "2.6.2", - "underscore": "~1.8.3" - }, - "dependencies": { - "babylon": { - "version": "7.0.0-beta.19", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.19.tgz", - "integrity": "sha512-Vg0C9s/REX6/WIXN37UKpv5ZhRi6A4pjHlpkE34+8/a6c2W1Q692n3hmc+SZG5lKRnaExLUbxtJ1SVT+KaCQ/A==", - "dev": true - } - } - }, - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "just-extend": { - "version": "1.1.27", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-1.1.27.tgz", - "integrity": "sha512-mJVp13Ix6gFo3SBAy9U/kL+oeZqzlYYYLQBwXVBlVzIsZwBqGREnOro24oC/8s8aox+rJhtZ2DiQof++IrkA+g==", - "dev": true - }, - "jwa": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.6.tgz", - "integrity": "sha512-tBO/cf++BUsJkYql/kBbJroKOgHWEigTKBAjjBEmrMGYd1QMBC74Hr4Wo2zCZw6ZrVhlJPvoMrkcOnlWR/DJfw==", - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.10", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz", - "integrity": "sha512-GsCSexFADNQUr8T5HPJvayTjvPIfoyJPtLQBwn5a4WZQchcrPMPMAWcC1AzJVRDKyD6ZPROPAxgv6rfHViO4uQ==", - "requires": { - "jwa": "^1.1.5", - "safe-buffer": "^5.0.1" - } - }, - "keygrip": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.0.2.tgz", - "integrity": "sha1-rTKXxVcGneqLz+ek+kkbdcXd65E=", - "dev": true - }, - "keyv": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", - "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", - "dev": true, - "requires": { - "json-buffer": "3.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "klaw": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-2.0.0.tgz", - "integrity": "sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.9" - } - }, - "koa": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/koa/-/koa-2.5.2.tgz", - "integrity": "sha512-MoVGWre9g3p35pCqXNhOT/a4trwK5CGvalIoPi7qOA2RCZaep3GCsa/G/tD9QMjQI7bmVWn3XF3SOau8RkPh6w==", - "dev": true, - "requires": { - "accepts": "^1.3.5", - "cache-content-type": "^1.0.0", - "content-disposition": "~0.5.2", - "content-type": "^1.0.4", - "cookies": "~0.7.1", - "debug": "^3.1.0", - "delegates": "^1.0.0", - "depd": "^1.1.2", - "destroy": "^1.0.4", - "error-inject": "^1.0.0", - "escape-html": "^1.0.3", - "fresh": "~0.5.2", - "http-assert": "^1.3.0", - "http-errors": "^1.6.3", - "is-generator-function": "^1.0.7", - "koa-compose": "^4.1.0", - "koa-convert": "^1.2.0", - "koa-is-json": "^1.0.0", - "on-finished": "^2.3.0", - "only": "~0.0.2", - "parseurl": "^1.3.2", - "statuses": "^1.5.0", - "type-is": "^1.6.16", - "vary": "^1.1.2" - } - }, - "koa-compose": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", - "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", - "dev": true - }, - "koa-convert": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-1.2.0.tgz", - "integrity": "sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA=", - "dev": true, - "requires": { - "co": "^4.6.0", - "koa-compose": "^3.0.0" - }, - "dependencies": { - "koa-compose": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-3.2.1.tgz", - "integrity": "sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec=", - "dev": true, - "requires": { - "any-promise": "^1.1.0" - } - } - } - }, - "koa-is-json": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/koa-is-json/-/koa-is-json-1.0.0.tgz", - "integrity": "sha1-JzwH7c3Ljfaiwat9We52SRRR7BQ=", - "dev": true - }, - "last-line-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/last-line-stream/-/last-line-stream-1.0.0.tgz", - "integrity": "sha1-0bZNafhv8kry0EiDos7uFFIKVgA=", - "dev": true, - "requires": { - "through2": "^2.0.0" - } - }, - "latest-version": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", - "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", - "dev": true, - "requires": { - "package-json": "^4.0.0" - } - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true, - "optional": true - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "requires": { - "invert-kv": "^1.0.0" - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", - "dev": true - }, - "lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", - "dev": true - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, - "lodash.clonedeepwith": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeepwith/-/lodash.clonedeepwith-4.5.0.tgz", - "integrity": "sha1-buMFc6A6GmDWcKYu8zwQzxr9vdQ=", - "dev": true - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", - "dev": true - }, - "lodash.escaperegexp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", - "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=", - "dev": true - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", - "dev": true - }, - "lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", - "dev": true - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true - }, - "lodash.has": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/lodash.has/-/lodash.has-4.5.2.tgz", - "integrity": "sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI=" - }, - "lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", - "dev": true - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", - "dev": true - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" - }, - "lodash.maxby": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.maxby/-/lodash.maxby-4.6.0.tgz", - "integrity": "sha1-CCJABo88eiJ6oAqDgOTzjPB4bj0=", - "dev": true - }, - "lodash.merge": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.1.tgz", - "integrity": "sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ==", - "dev": true - }, - "lodash.mergewith": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", - "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==", - "dev": true - }, - "lodash.omit": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", - "integrity": "sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=", - "dev": true - }, - "lodash.omitby": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.omitby/-/lodash.omitby-4.6.0.tgz", - "integrity": "sha1-XBX/R1StVVAWtTwEExHo8HkgR5E=", - "dev": true - }, - "lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", - "dev": true - }, - "lodash.random": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.random/-/lodash.random-3.2.0.tgz", - "integrity": "sha1-luJOdjMzGZEw0sni/Vf5FwPMJi0=", - "dev": true - }, - "lodash.without": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.without/-/lodash.without-4.4.0.tgz", - "integrity": "sha1-PNRXSgC2e643OpS3SHcmQFB7eqw=", - "dev": true - }, - "lolex": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.1.tgz", - "integrity": "sha512-Oo2Si3RMKV3+lV5MsSWplDQFoTClz/24S0MMHYcgGWWmFXr6TMlqcqk/l1GtH+d5wLBwNRiqGnwDRMirtFalJw==", - "dev": true - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true, - "optional": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true - }, - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "marked": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.19.tgz", - "integrity": "sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==", - "dev": true - }, - "matcher": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/matcher/-/matcher-1.1.1.tgz", - "integrity": "sha512-+BmqxWIubKTRKNWx/ahnCkk3mG8m7OturVlqq6HiojGJTd5hVYbgZm6WzcYPCoB+KBT4Vd6R7WSRG2OADNaCjg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.4" - } - }, - "math-random": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", - "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", - "dev": true - }, - "md5-hex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-2.0.0.tgz", - "integrity": "sha1-0FiOnxx0lUSS7NJKwKxs6ZfZLjM=", - "dev": true, - "requires": { - "md5-o-matic": "^0.1.1" - } - }, - "md5-o-matic": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", - "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=", - "dev": true - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - } - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "merge-estraverse-visitors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/merge-estraverse-visitors/-/merge-estraverse-visitors-1.0.0.tgz", - "integrity": "sha1-65aDOLXe1c7tgs7AMH3sui2OqZQ=", - "dev": true, - "requires": { - "estraverse": "^4.0.0" - } - }, - "merge2": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.2.tgz", - "integrity": "sha512-bgM8twH86rWni21thii6WCMQMRMmwqqdW3sGWi9IipnVAszdLXRjwDwAnyrVXo6DuP3AjRMMttZKUB48QWIFGg==", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } - }, - "mime": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", - "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==" - }, - "mime-db": { - "version": "1.35.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz", - "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==" - }, - "mime-types": { - "version": "2.1.19", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", - "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", - "requires": { - "mime-db": "~1.35.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true - }, - "mimos": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimos/-/mimos-4.0.0.tgz", - "integrity": "sha512-JvlvRLqGIlk+AYypWrbrDmhsM+6JVx/xBM5S3AMwTBz1trPCEoPN/swO2L4Wu653fL7oJdgk8DMQyG/Gq3JkZg==", - "dev": true, - "requires": { - "hoek": "5.x.x", - "mime-db": "1.x.x" - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "minimist-options": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", - "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0" - } - }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", - "dev": true, - "requires": { - "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.5", - "he": "1.1.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "supports-color": "5.4.0" - }, - "dependencies": { - "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true - } - } - }, - "module-not-found-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/module-not-found-error/-/module-not-found-error-1.0.1.tgz", - "integrity": "sha1-z4tP9PKWQGdNbN0CsOO8UjwrvcA=", - "dev": true - }, - "moment": { - "version": "2.22.2", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", - "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "multi-stage-sourcemap": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/multi-stage-sourcemap/-/multi-stage-sourcemap-0.2.1.tgz", - "integrity": "sha1-sJ/IWG6qF/gdV1xK0C4Pej9rEQU=", - "dev": true, - "requires": { - "source-map": "^0.1.34" - }, - "dependencies": { - "source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - } - } - }, - "multimatch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", - "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", - "dev": true, - "requires": { - "array-differ": "^1.0.0", - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "minimatch": "^3.0.0" - } - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "mv": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", - "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=", - "dev": true, - "optional": true, - "requires": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" - }, - "dependencies": { - "glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", - "dev": true, - "optional": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "rimraf": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", - "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=", - "dev": true, - "optional": true, - "requires": { - "glob": "^6.0.1" - } - } - } - }, - "nan": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", - "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", - "dev": true, - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "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.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "ncp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", - "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=", - "dev": true - }, - "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", - "dev": true - }, - "nested-error-stacks": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz", - "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==", - "dev": true - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - }, - "nice-try": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz", - "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==", - "dev": true - }, - "nigel": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/nigel/-/nigel-3.0.1.tgz", - "integrity": "sha512-kCVtUG9JyD//tsYrZY+/Y+2gUrANVSba8y23QkM5Znx0FOxlnl9Z4OVPBODmstKWTOvigfTO+Va1VPOu3eWSOQ==", - "dev": true, - "requires": { - "hoek": "5.x.x", - "vise": "3.x.x" - } - }, - "nise": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.2.tgz", - "integrity": "sha512-BxH/DxoQYYdhKgVAfqVy4pzXRZELHOIewzoesxpjYvpU+7YOalQhGNPf7wAx8pLrTNPrHRDlLOkAl8UI0ZpXjw==", - "dev": true, - "requires": { - "@sinonjs/formatio": "^2.0.0", - "just-extend": "^1.1.27", - "lolex": "^2.3.2", - "path-to-regexp": "^1.7.0", - "text-encoding": "^0.6.4" - } - }, - "nock": { - "version": "9.4.4", - "resolved": "https://registry.npmjs.org/nock/-/nock-9.4.4.tgz", - "integrity": "sha512-HrF96ecwONEv7tW8bk79kwc9mshxWAw8WfEPv5LStc0X25bsoWgescTtmevFSetu3gdjOypnUtniubYSz+5DNA==", - "dev": true, - "requires": { - "chai": "^4.1.2", - "debug": "^3.1.0", - "deep-equal": "^1.0.0", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.5", - "mkdirp": "^0.5.0", - "propagate": "^1.0.0", - "qs": "^6.5.1", - "semver": "^5.5.0" - } - }, - "node-forge": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz", - "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==" - }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "normalize-url": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", - "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", - "dev": true, - "requires": { - "prepend-http": "^2.0.0", - "query-string": "^5.0.1", - "sort-keys": "^2.0.0" - }, - "dependencies": { - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true - } - } - }, - "npm-package-arg": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.0.tgz", - "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.6.0", - "osenv": "^0.1.5", - "semver": "^5.5.0", - "validate-npm-package-name": "^3.0.0" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "nyc": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-12.0.2.tgz", - "integrity": "sha1-ikpO1pCWbBHsWH/4fuoMEsl0upk=", - "dev": true, - "requires": { - "archy": "^1.0.0", - "arrify": "^1.0.1", - "caching-transform": "^1.0.0", - "convert-source-map": "^1.5.1", - "debug-log": "^1.0.1", - "default-require-extensions": "^1.0.0", - "find-cache-dir": "^0.1.1", - "find-up": "^2.1.0", - "foreground-child": "^1.5.3", - "glob": "^7.0.6", - "istanbul-lib-coverage": "^1.2.0", - "istanbul-lib-hook": "^1.1.0", - "istanbul-lib-instrument": "^2.1.0", - "istanbul-lib-report": "^1.1.3", - "istanbul-lib-source-maps": "^1.2.5", - "istanbul-reports": "^1.4.1", - "md5-hex": "^1.2.0", - "merge-source-map": "^1.1.0", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.0", - "resolve-from": "^2.0.0", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.1", - "spawn-wrap": "^1.4.2", - "test-exclude": "^4.2.0", - "yargs": "11.1.0", - "yargs-parser": "^8.0.0" - }, - "dependencies": { - "align-text": { - "version": "0.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - } - }, - "amdefine": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "ansi-regex": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "append-transform": { - "version": "0.4.0", - "bundled": true, - "dev": true, - "requires": { - "default-require-extensions": "^1.0.0" - } - }, - "archy": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "arr-diff": { - "version": "4.0.0", - "bundled": true, - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "bundled": true, - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "bundled": true, - "dev": true - }, - "arrify": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "async": { - "version": "1.5.2", - "bundled": true, - "dev": true - }, - "atob": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "base": { - "version": "0.11.2", - "bundled": true, - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "bundled": true, - "dev": true, - "requires": { - "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "builtin-modules": { - "version": "1.1.1", - "bundled": true, - "dev": true - }, - "cache-base": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "caching-transform": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" - } - }, - "camelcase": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "optional": true - }, - "center-align": { - "version": "0.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - } - }, - "class-utils": { - "version": "0.3.6", - "bundled": true, - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "cliui": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "commondir": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "component-emitter": { - "version": "1.2.1", - "bundled": true, - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "convert-source-map": { - "version": "1.5.1", - "bundled": true, - "dev": true - }, - "copy-descriptor": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "cross-spawn": { - "version": "4.0.2", - "bundled": true, - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "debug": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "debug-log": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "decamelize": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "bundled": true, - "dev": true - }, - "default-require-extensions": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "strip-bom": "^2.0.0" - } - }, - "define-property": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "error-ex": { - "version": "1.3.1", - "bundled": true, - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "execa": { - "version": "0.7.0", - "bundled": true, - "dev": true, - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "bundled": true, - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "bundled": true, - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "bundled": true, - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "extend-shallow": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "bundled": true, - "dev": true, - "requires": { - "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.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "fill-range": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "find-cache-dir": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "for-in": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "foreground-child": { - "version": "1.5.6", - "bundled": true, - "dev": true, - "requires": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" - } - }, - "fragment-cache": { - "version": "0.2.1", - "bundled": true, - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "get-caller-file": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "get-value": { - "version": "2.0.6", - "bundled": true, - "dev": true - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true, - "dev": true - }, - "handlebars": { - "version": "4.0.11", - "bundled": true, - "dev": true, - "requires": { - "async": "^1.4.0", - "optimist": "^0.6.1", - "source-map": "^0.4.4", - "uglify-js": "^2.6" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "bundled": true, - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - } - } - }, - "has-value": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hosted-git-info": { - "version": "2.6.0", - "bundled": true, - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "bundled": true, - "dev": true - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true - }, - "invert-kv": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-arrayish": { - "version": "0.2.1", - "bundled": true, - "dev": true - }, - "is-buffer": { - "version": "1.1.6", - "bundled": true, - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "bundled": true, - "dev": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "is-number": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-odd": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "bundled": true, - "dev": true - } - } - }, - "is-plain-object": { - "version": "2.0.4", - "bundled": true, - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-stream": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "is-utf8": { - "version": "0.2.1", - "bundled": true, - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "isexe": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "isobject": { - "version": "3.0.1", - "bundled": true, - "dev": true - }, - "istanbul-lib-coverage": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, - "istanbul-lib-hook": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "append-transform": "^0.4.0" - } - }, - "istanbul-lib-report": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "requires": { - "istanbul-lib-coverage": "^1.1.2", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "bundled": true, - "dev": true, - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.2.0", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" - } - }, - "istanbul-reports": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "requires": { - "handlebars": "^4.0.3" - } - }, - "kind-of": { - "version": "3.2.2", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "lazy-cache": { - "version": "1.0.4", - "bundled": true, - "dev": true, - "optional": true - }, - "lcid": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "invert-kv": "^1.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "bundled": true, - "dev": true - } - } - }, - "longest": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "lru-cache": { - "version": "4.1.3", - "bundled": true, - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "map-cache": { - "version": "0.2.2", - "bundled": true, - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "md5-hex": { - "version": "1.3.0", - "bundled": true, - "dev": true, - "requires": { - "md5-o-matic": "^0.1.1" - } - }, - "md5-o-matic": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "mem": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "merge-source-map": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "bundled": true, - "dev": true - } - } - }, - "micromatch": { - "version": "3.1.10", - "bundled": true, - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "mimic-fn": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - }, - "mixin-deep": { - "version": "1.3.1", - "bundled": true, - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "nanomatch": { - "version": "1.2.9", - "bundled": true, - "dev": true, - "requires": { - "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-odd": "^2.0.0", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "normalize-package-data": { - "version": "2.4.0", - "bundled": true, - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "npm-run-path": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "bundled": true, - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "object-visit": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "bundled": true, - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "optimist": { - "version": "0.6.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "os-locale": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } - }, - "p-finally": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "p-limit": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "parse-json": { - "version": "2.2.0", - "bundled": true, - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "pascalcase": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "path-exists": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "path-key": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, - "path-parse": { - "version": "1.0.5", - "bundled": true, - "dev": true - }, - "path-type": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "bundled": true, - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "bundled": true, - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-dir": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "find-up": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "read-pkg": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - } - } - }, - "regex-not": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "repeat-element": { - "version": "1.1.2", - "bundled": true, - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "bundled": true, - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "resolve-from": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "bundled": true, - "dev": true - }, - "ret": { - "version": "0.1.15", - "bundled": true, - "dev": true - }, - "right-align": { - "version": "0.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "align-text": "^0.1.1" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "dev": true, - "requires": { - "glob": "^7.0.5" - } - }, - "safe-regex": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "semver": { - "version": "5.5.0", - "bundled": true, - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "set-value": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "shebang-command": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true - }, - "slide": { - "version": "1.1.6", - "bundled": true, - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "bundled": true, - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "bundled": true, - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.2.0" - } - }, - "source-map": { - "version": "0.5.7", - "bundled": true, - "dev": true - }, - "source-map-resolve": { - "version": "0.5.2", - "bundled": true, - "dev": true, - "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "bundled": true, - "dev": true - }, - "spawn-wrap": { - "version": "1.4.2", - "bundled": true, - "dev": true, - "requires": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" - } - }, - "spdx-correct": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "bundled": true, - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "split-string": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "static-extend": { - "version": "0.1.2", - "bundled": true, - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "bundled": true, - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "string-width": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-eof": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "test-exclude": { - "version": "4.2.1", - "bundled": true, - "dev": true, - "requires": { - "arrify": "^1.0.1", - "micromatch": "^3.1.8", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" - } - }, - "to-object-path": { - "version": "0.3.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "to-regex": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "uglify-js": { - "version": "2.8.29", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - }, - "dependencies": { - "yargs": { - "version": "3.10.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "union-value": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "set-value": { - "version": "0.4.3", - "bundled": true, - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } - } - } - }, - "unset-value": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "bundled": true, - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "bundled": true, - "dev": true - } - } - }, - "urix": { - "version": "0.1.0", - "bundled": true, - "dev": true - }, - "use": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "^6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "bundled": true, - "dev": true - } - } - }, - "validate-npm-package-license": { - "version": "3.0.3", - "bundled": true, - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "bundled": true, - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "window-size": { - "version": "0.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "wordwrap": { - "version": "0.0.3", - "bundled": true, - "dev": true - }, - "wrap-ansi": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "write-file-atomic": { - "version": "1.3.4", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" - } - }, - "y18n": { - "version": "3.2.1", - "bundled": true, - "dev": true - }, - "yallist": { - "version": "2.1.2", - "bundled": true, - "dev": true - }, - "yargs": { - "version": "11.1.0", - "bundled": true, - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^9.0.2" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "bundled": true, - "dev": true - }, - "cliui": { - "version": "4.1.0", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "yargs-parser": { - "version": "9.0.2", - "bundled": true, - "dev": true, - "requires": { - "camelcase": "^4.1.0" - } - } - } - }, - "yargs-parser": { - "version": "8.1.0", - "bundled": true, - "dev": true, - "requires": { - "camelcase": "^4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "bundled": true, - "dev": true - } - } - } - } - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "object-keys": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true, - "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "observable-to-promise": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/observable-to-promise/-/observable-to-promise-0.5.0.tgz", - "integrity": "sha1-yCjw8NxH6fhq+KSXfF1VB2znqR8=", - "dev": true, - "requires": { - "is-observable": "^0.2.0", - "symbol-observable": "^1.0.4" - }, - "dependencies": { - "is-observable": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-0.2.0.tgz", - "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=", - "dev": true, - "requires": { - "symbol-observable": "^0.2.2" - }, - "dependencies": { - "symbol-observable": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-0.2.4.tgz", - "integrity": "sha1-lag9smGG1q9+ehjb2XYKL4bQj0A=", - "dev": true - } - } - } - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "only": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", - "integrity": "sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=", - "dev": true - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - } - }, - "option-chain": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/option-chain/-/option-chain-1.0.0.tgz", - "integrity": "sha1-k41zvU4Xg/lI00AjZEraI2aeMPI=", - "dev": true - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" - }, - "dependencies": { - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - } - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "p-cancelable": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", - "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-is-promise": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", - "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", - "dev": true - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-timeout": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", - "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", - "dev": true, - "requires": { - "p-finally": "^1.0.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "package-hash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-2.0.0.tgz", - "integrity": "sha1-eK4ybIngWk2BO2hgGXevBcANKg0=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "lodash.flattendeep": "^4.4.0", - "md5-hex": "^2.0.0", - "release-zalgo": "^1.0.0" - } - }, - "package-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", - "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", - "dev": true, - "requires": { - "got": "^6.7.1", - "registry-auth-token": "^3.0.1", - "registry-url": "^3.0.3", - "semver": "^5.1.0" - }, - "dependencies": { - "got": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", - "dev": true, - "requires": { - "create-error-class": "^3.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" - } - } - } - }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "dev": true, - "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "parse-ms": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-0.1.2.tgz", - "integrity": "sha1-3T+iXtbC78e93hKtm0bBY6opIk4=", - "dev": true - }, - "parseurl": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "path-to-regexp": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", - "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", - "dev": true, - "requires": { - "isarray": "0.0.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - } - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "pez": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/pez/-/pez-4.0.2.tgz", - "integrity": "sha512-HuPxmGxHsEFPWhdkwBs2gIrHhFqktIxMtudISTFN95RQ85ZZAOl8Ki6u3nnN/X8OUaGlIGldk/l8p2IR4/i76w==", - "dev": true, - "requires": { - "b64": "4.x.x", - "boom": "7.x.x", - "content": "4.x.x", - "hoek": "5.x.x", - "nigel": "3.x.x" - } - }, - "pidusage": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-1.2.0.tgz", - "integrity": "sha512-OGo+iSOk44HRJ8q15AyG570UYxcm5u+R99DI8Khu8P3tKGkVu5EZX4ywHglWSTMNNXQ274oeGpYrvFEhDIFGPg==", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - }, - "pinkie": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-1.0.0.tgz", - "integrity": "sha1-Wkfyi6EBXQIBvae/DzWOR77Ix+Q=", - "dev": true - }, - "pinkie-promise": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-1.0.0.tgz", - "integrity": "sha1-0dpn9UglY7t89X8oauKCLs+/NnA=", - "dev": true, - "requires": { - "pinkie": "^1.0.0" - } - }, - "pkg-conf": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", - "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "load-json-file": "^4.0.0" - }, - "dependencies": { - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - } - } - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - }, - "plur": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/plur/-/plur-2.1.2.tgz", - "integrity": "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo=", - "dev": true, - "requires": { - "irregular-plurals": "^1.0.0" - } - }, - "pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", - "dev": true - }, - "podium": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/podium/-/podium-3.1.2.tgz", - "integrity": "sha512-18VrjJAduIdPv7d9zWsfmKxTj3cQTYC5Pv5gtKxcWujYBpGbV+mhNSPYhlHW5xeWoazYyKfB9FEsPT12r5rY1A==", - "dev": true, - "requires": { - "hoek": "5.x.x", - "joi": "13.x.x" - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "post-install-check": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/post-install-check/-/post-install-check-0.0.1.tgz", - "integrity": "sha512-8tmaqjYxwJAumhsg8p31P5jG4sKRYUhfO0WaSBcPTeAmMlOxB3AK/rS6xqmJwpVAXt+fuyRLZ3WJxsgMRCHcQQ==", - "dev": true, - "requires": { - "glob": "^7.1.2", - "once": "^1.4.0", - "pify": "^3.0.0", - "rimraf": "^2.6.2", - "tmp": "0.0.33" - } - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "power-assert": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/power-assert/-/power-assert-1.6.0.tgz", - "integrity": "sha512-nDb6a+p2C7Wj8Y2zmFtLpuv+xobXz4+bzT5s7dr0nn71tLozn7nRMQqzwbefzwZN5qOm0N7Cxhw4kXP75xboKA==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "empower": "^1.3.0", - "power-assert-formatter": "^1.4.1", - "universal-deep-strict-equal": "^1.2.1", - "xtend": "^4.0.0" - } - }, - "power-assert-context-formatter": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/power-assert-context-formatter/-/power-assert-context-formatter-1.2.0.tgz", - "integrity": "sha512-HLNEW8Bin+BFCpk/zbyKwkEu9W8/zThIStxGo7weYcFkKgMuGCHUJhvJeBGXDZf0Qm2xis4pbnnciGZiX0EpSg==", - "dev": true, - "requires": { - "core-js": "^2.0.0", - "power-assert-context-traversal": "^1.2.0" - } - }, - "power-assert-context-reducer-ast": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/power-assert-context-reducer-ast/-/power-assert-context-reducer-ast-1.2.0.tgz", - "integrity": "sha512-EgOxmZ/Lb7tw4EwSKX7ZnfC0P/qRZFEG28dx/690qvhmOJ6hgThYFm5TUWANDLK5NiNKlPBi5WekVGd2+5wPrw==", - "dev": true, - "requires": { - "acorn": "^5.0.0", - "acorn-es7-plugin": "^1.0.12", - "core-js": "^2.0.0", - "espurify": "^1.6.0", - "estraverse": "^4.2.0" - } - }, - "power-assert-context-traversal": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/power-assert-context-traversal/-/power-assert-context-traversal-1.2.0.tgz", - "integrity": "sha512-NFoHU6g2umNajiP2l4qb0BRWD773Aw9uWdWYH9EQsVwIZnog5bd2YYLFCVvaxWpwNzWeEfZIon2xtyc63026pQ==", - "dev": true, - "requires": { - "core-js": "^2.0.0", - "estraverse": "^4.1.0" - } - }, - "power-assert-formatter": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/power-assert-formatter/-/power-assert-formatter-1.4.1.tgz", - "integrity": "sha1-XcEl7VCj37HdomwZNH879Y7CiEo=", - "dev": true, - "requires": { - "core-js": "^2.0.0", - "power-assert-context-formatter": "^1.0.7", - "power-assert-context-reducer-ast": "^1.0.7", - "power-assert-renderer-assertion": "^1.0.7", - "power-assert-renderer-comparison": "^1.0.7", - "power-assert-renderer-diagram": "^1.0.7", - "power-assert-renderer-file": "^1.0.7" - } - }, - "power-assert-renderer-assertion": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/power-assert-renderer-assertion/-/power-assert-renderer-assertion-1.2.0.tgz", - "integrity": "sha512-3F7Q1ZLmV2ZCQv7aV7NJLNK9G7QsostrhOU7U0RhEQS/0vhEqrRg2jEJl1jtUL4ZyL2dXUlaaqrmPv5r9kRvIg==", - "dev": true, - "requires": { - "power-assert-renderer-base": "^1.1.1", - "power-assert-util-string-width": "^1.2.0" - } - }, - "power-assert-renderer-base": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/power-assert-renderer-base/-/power-assert-renderer-base-1.1.1.tgz", - "integrity": "sha1-lqZQxv0F7hvB9mtUrWFELIs/Y+s=", - "dev": true - }, - "power-assert-renderer-comparison": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/power-assert-renderer-comparison/-/power-assert-renderer-comparison-1.2.0.tgz", - "integrity": "sha512-7c3RKPDBKK4E3JqdPtYRE9cM8AyX4LC4yfTvvTYyx8zSqmT5kJnXwzR0yWQLOavACllZfwrAGQzFiXPc5sWa+g==", - "dev": true, - "requires": { - "core-js": "^2.0.0", - "diff-match-patch": "^1.0.0", - "power-assert-renderer-base": "^1.1.1", - "stringifier": "^1.3.0", - "type-name": "^2.0.1" - } - }, - "power-assert-renderer-diagram": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/power-assert-renderer-diagram/-/power-assert-renderer-diagram-1.2.0.tgz", - "integrity": "sha512-JZ6PC+DJPQqfU6dwSmpcoD7gNnb/5U77bU5KgNwPPa+i1Pxiz6UuDeM3EUBlhZ1HvH9tMjI60anqVyi5l2oNdg==", - "dev": true, - "requires": { - "core-js": "^2.0.0", - "power-assert-renderer-base": "^1.1.1", - "power-assert-util-string-width": "^1.2.0", - "stringifier": "^1.3.0" - } - }, - "power-assert-renderer-file": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/power-assert-renderer-file/-/power-assert-renderer-file-1.2.0.tgz", - "integrity": "sha512-/oaVrRbeOtGoyyd7e4IdLP/jIIUFJdqJtsYzP9/88R39CMnfF/S/rUc8ZQalENfUfQ/wQHu+XZYRMaCEZmEesg==", - "dev": true, - "requires": { - "power-assert-renderer-base": "^1.1.1" - } - }, - "power-assert-util-string-width": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/power-assert-util-string-width/-/power-assert-util-string-width-1.2.0.tgz", - "integrity": "sha512-lX90G0igAW0iyORTILZ/QjZWsa1MZ6VVY3L0K86e2eKun3S4LKPH4xZIl8fdeMYLfOjkaszbNSzf1uugLeAm2A==", - "dev": true, - "requires": { - "eastasianwidth": "^0.2.0" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true - }, - "prettier": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.14.0.tgz", - "integrity": "sha512-KtQ2EGaUwf2EyDfp1fxyEb0PqGKakVm0WyXwDt6u+cAoxbO2Z2CwKvOe3+b4+F2IlO9lYHi1kqFuRM70ddBnow==", - "dev": true - }, - "pretty-ms": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-3.2.0.tgz", - "integrity": "sha512-ZypexbfVUGTFxb0v+m1bUyy92DHe5SyYlnyY0msyms5zd3RwyvNgyxZZsXXgoyzlxjx5MiqtXUdhUfvQbe0A2Q==", - "dev": true, - "requires": { - "parse-ms": "^1.0.0" - }, - "dependencies": { - "parse-ms": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-1.0.1.tgz", - "integrity": "sha1-VjRtR0nXjyNDDKDHE4UK75GqNh0=", - "dev": true - } - } - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" - }, - "progress": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", - "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", - "dev": true - }, - "propagate": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-1.0.0.tgz", - "integrity": "sha1-AMLa7t2iDofjeCs0Stuhzd1q1wk=", - "dev": true - }, - "proxy-addr": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", - "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", - "dev": true, - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.8.0" - } - }, - "proxyquire": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/proxyquire/-/proxyquire-2.0.1.tgz", - "integrity": "sha512-fQr3VQrbdzHrdaDn3XuisVoJlJNDJizHAvUXw9IuXRR8BpV2x0N7LsCxrpJkeKfPbNjiNU/V5vc008cI0TmzzQ==", - "dev": true, - "requires": { - "fill-keys": "^1.0.2", - "module-not-found-error": "^1.0.0", - "resolve": "~1.5.0" - }, - "dependencies": { - "resolve": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", - "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", - "dev": true, - "requires": { - "path-parse": "^1.0.5" - } - } - } - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - }, - "query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "dev": true, - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "quick-lru": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", - "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", - "dev": true - }, - "randomatic": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz", - "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", - "dev": true, - "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", - "dev": true - }, - "raw-body": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", - "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", - "dev": true, - "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.3", - "iconv-lite": "0.4.23", - "unpipe": "1.0.0" - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "minimatch": "^3.0.2", - "readable-stream": "^2.0.2", - "set-immediate-shim": "^1.0.1" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - }, - "dependencies": { - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - } - } - }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", - "dev": true - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "dev": true, - "requires": { - "is-equal-shallow": "^0.1.3" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexp.prototype.flags": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz", - "integrity": "sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==", - "dev": true, - "requires": { - "define-properties": "^1.1.2" - } - }, - "regexpp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.0.tgz", - "integrity": "sha512-g2FAVtR8Uh8GO1Nv5wpxW7VFVwHcCEr4wyA8/MHiRkO8uHoR5ntAA8Uq3P1vvMTX/BeQiRVSpDGLd+Wn5HNOTA==", - "dev": true - }, - "regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "dev": true, - "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "registry-auth-token": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", - "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", - "dev": true, - "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" - } - }, - "registry-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", - "dev": true, - "requires": { - "rc": "^1.0.1" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - } - }, - "release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", - "dev": true, - "requires": { - "es6-error": "^4.0.1" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, - "request": { - "version": "2.87.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", - "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", - "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.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.17", - "oauth-sign": "~0.8.2", - "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "require-precompiled": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/require-precompiled/-/require-precompiled-0.1.0.tgz", - "integrity": "sha1-WhtS63Dr7UPrmC6XTIWrWVceVvo=", - "dev": true - }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true, - "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", - "dev": true - } - } - }, - "requizzle": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.1.tgz", - "integrity": "sha1-aUPDUwxNmn5G8c3dUcFY/GcM294=", - "dev": true, - "requires": { - "underscore": "~1.6.0" - }, - "dependencies": { - "underscore": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", - "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", - "dev": true - } - } - }, - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "restify": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/restify/-/restify-7.2.1.tgz", - "integrity": "sha512-xygVfQn/FiyzSPNIiOlzos6+RVcmTTK/bN0/m4z6vQwUY1yXntAsXM8ckq6hMxYfkhZfbPMM5hvBf75B8zLE1g==", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "bunyan": "^1.8.12", - "csv": "^1.1.1", - "dtrace-provider": "^0.8.1", - "escape-regexp-component": "^1.0.2", - "ewma": "^2.0.1", - "find-my-way": "^1.13.0", - "formidable": "^1.2.1", - "http-signature": "^1.2.0", - "lodash": "^4.17.10", - "lru-cache": "^4.1.3", - "mime": "^1.5.0", - "negotiator": "^0.6.1", - "once": "^1.4.0", - "pidusage": "^1.2.0", - "qs": "^6.5.2", - "restify-errors": "^5.0.0", - "semver": "^5.4.1", - "spdy": "^3.4.7", - "uuid": "^3.1.0", - "vasync": "^1.6.4", - "verror": "^1.10.0" - }, - "dependencies": { - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - } - } - }, - "restify-errors": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/restify-errors/-/restify-errors-5.0.0.tgz", - "integrity": "sha512-+vby9Kxf7qlzvbZSTIEGkIixkeHG+pVCl34dk6eKnL+ua4pCezpdLT/1/eabzPZb65ADrgoc04jeWrrF1E1pvQ==", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "lodash": "^4.2.1", - "safe-json-stringify": "^1.0.3", - "verror": "^1.8.1" - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "retry-axios": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/retry-axios/-/retry-axios-0.3.2.tgz", - "integrity": "sha512-jp4YlI0qyDFfXiXGhkCOliBN1G7fRH03Nqy8YdShzGqbY5/9S2x/IR6C88ls2DFkbWuL3ASkP7QD3pVrNpPgwQ==" - }, - "retry-request": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.0.0.tgz", - "integrity": "sha512-S4HNLaWcMP6r8E4TMH52Y7/pM8uNayOcTDDQNBwsCccL1uI+Ol2TljxRDPzaNfbhOB30+XWP5NnZkB3LiJxi1w==", - "requires": { - "through2": "^2.0.0" - } - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dev": true, - "optional": true, - "requires": { - "align-text": "^0.1.1" - } - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "requires": { - "glob": "^7.0.5" - } - }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } - }, - "rxjs": { - "version": "5.5.11", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.11.tgz", - "integrity": "sha512-3bjO7UwWfA2CV7lmwYMBzj4fQ6Cq+ftHc2MvUe+WMS7wcdJ1LosDWmdjPQanYp2dBRj572p7PeU81JUxHKOcBA==", - "dev": true, - "requires": { - "symbol-observable": "1.0.1" - }, - "dependencies": { - "symbol-observable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", - "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", - "dev": true - } - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safe-json-stringify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", - "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", - "dev": true, - "optional": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "samsam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz", - "integrity": "sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg==", - "dev": true - }, - "sanitize-html": { - "version": "1.18.4", - "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.18.4.tgz", - "integrity": "sha512-hjyDYCYrQuhnEjq+5lenLlIfdPBtnZ7z0DkQOC8YGxvkuOInH+1SrkNTj30t4f2/SSv9c5kLniB+uCIpBvYuew==", - "dev": true, - "requires": { - "chalk": "^2.3.0", - "htmlparser2": "^3.9.0", - "lodash.clonedeep": "^4.5.0", - "lodash.escaperegexp": "^4.1.2", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.mergewith": "^4.6.0", - "postcss": "^6.0.14", - "srcset": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true - }, - "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true - }, - "semver-diff": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", - "dev": true, - "requires": { - "semver": "^5.0.3" - } - }, - "semver-store": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/semver-store/-/semver-store-0.3.0.tgz", - "integrity": "sha512-TcZvGMMy9vodEFSse30lWinkj+JgOBvPn8wRItpQRSayhc+4ssDs335uklkfvQQJgL/WvmHLVj4Ycv2s7QCQMg==", - "dev": true - }, - "send": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", - "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.6.2", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.4.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", - "dev": true - }, - "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", - "dev": true - } - } - }, - "serialize-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", - "integrity": "sha1-ULZ51WNc34Rme9yOWa9OW4HV9go=", - "dev": true - }, - "serve-static": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", - "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.2", - "send": "0.16.2" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true - }, - "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "shot": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/shot/-/shot-4.0.5.tgz", - "integrity": "sha1-x+dFXRHWD2ts08Q+FaO0McF+VWY=", - "dev": true, - "requires": { - "hoek": "5.x.x", - "joi": "13.x.x" - } - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "sinon": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-6.0.1.tgz", - "integrity": "sha512-rfszhNcfamK2+ofIPi9XqeH89pH7KGDcAtM+F9CsjHXOK3jzWG99vyhyD2V+r7s4IipmWcWUFYq4ftZ9/Eu2Wg==", - "dev": true, - "requires": { - "@sinonjs/formatio": "^2.0.0", - "diff": "^3.5.0", - "lodash.get": "^4.4.2", - "lolex": "^2.4.2", - "nise": "^1.3.3", - "supports-color": "^5.4.0", - "type-detect": "^4.0.8" - } - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0" - } - }, - "slide": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - } - }, - "sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", - "dev": true, - "requires": { - "is-plain-obj": "^1.0.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", - "dev": true, - "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.6.tgz", - "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "spdx-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/spdx-compare/-/spdx-compare-1.0.0.tgz", - "integrity": "sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==", - "dev": true, - "requires": { - "array-find-index": "^1.0.2", - "spdx-expression-parse": "^3.0.0", - "spdx-ranges": "^2.0.0" - } - }, - "spdx-correct": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", - "dev": true - }, - "spdx-ranges": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spdx-ranges/-/spdx-ranges-2.0.0.tgz", - "integrity": "sha512-AUUXLfqkwD7GlzZkXv8ePPCpPjeVWI9xJCfysL8re/uKb6H10umMnC7bFRsHmLJan4fslUtekAgpHlSgLc/7mA==", - "dev": true - }, - "spdx-satisfies": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/spdx-satisfies/-/spdx-satisfies-4.0.0.tgz", - "integrity": "sha512-OcARj6U1OuVv98SVrRqgrR30sVocONtoPpnX8Xz4vXNrFVedqtbgkA+0KmQoXIQ2xjfltPPRVIMeNzKEFLWWKQ==", - "dev": true, - "requires": { - "spdx-compare": "^1.0.0", - "spdx-expression-parse": "^3.0.0", - "spdx-ranges": "^2.0.0" - } - }, - "spdy": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", - "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", - "dev": true, - "requires": { - "debug": "^2.6.8", - "handle-thing": "^1.2.5", - "http-deceiver": "^1.2.7", - "safe-buffer": "^5.0.1", - "select-hose": "^2.0.0", - "spdy-transport": "^2.0.18" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "spdy-transport": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.0.tgz", - "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", - "dev": true, - "requires": { - "debug": "^2.6.8", - "detect-node": "^2.0.3", - "hpack.js": "^2.1.6", - "obuf": "^1.1.1", - "readable-stream": "^2.2.9", - "safe-buffer": "^5.0.1", - "wbuf": "^1.7.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "srcset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/srcset/-/srcset-1.0.0.tgz", - "integrity": "sha1-pWad4StC87HV6D7QPHEEb8SPQe8=", - "dev": true, - "requires": { - "array-uniq": "^1.0.2", - "number-is-nan": "^1.0.0" - } - }, - "sshpk": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "stack-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz", - "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=", - "dev": true - }, - "statehood": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/statehood/-/statehood-6.0.6.tgz", - "integrity": "sha512-jR45n5ZMAkasw0xoE9j9TuLmJv4Sa3AkXe+6yIFT6a07kXYHgSbuD2OVGECdZGFxTmvNqLwL1iRIgvq6O6rq+A==", - "dev": true, - "requires": { - "boom": "7.x.x", - "bounce": "1.x.x", - "cryptiles": "4.x.x", - "hoek": "5.x.x", - "iron": "5.x.x", - "joi": "13.x.x" - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - }, - "stream-events": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.4.tgz", - "integrity": "sha512-D243NJaYs/xBN2QnoiMDY7IesJFIK7gEhnvAYqJa5JvDdnh2dC4qDBwlCf0ohPpX2QRlA/4gnbnPd3rs3KxVcA==", - "requires": { - "stubs": "^3.0.0" - } - }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" - }, - "stream-transform": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-0.2.2.tgz", - "integrity": "sha1-dYZ0h/SVKPi/HYJJllh1PQLfeDg=", - "dev": true - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true - }, - "string": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/string/-/string-3.3.3.tgz", - "integrity": "sha1-XqIRzZLSKOGEKUmQpsyXs2anfLA=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "string.prototype.matchall": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-2.0.0.tgz", - "integrity": "sha512-WoZ+B2ypng1dp4iFLF2kmZlwwlE19gmjgKuhL1FJfDgCREWb3ye3SDVHSzLH6bxfnvYmkCxbzkmWcQZHA4P//Q==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.10.0", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "regexp.prototype.flags": "^1.2.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "stringifier": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/stringifier/-/stringifier-1.3.0.tgz", - "integrity": "sha1-3vGDQvaTPbDy2/yaoCF1tEjBeVk=", - "dev": true, - "requires": { - "core-js": "^2.0.0", - "traverse": "^0.6.6", - "type-name": "^2.0.1" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - } - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-bom-buf": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz", - "integrity": "sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=", - "dev": true, - "requires": { - "is-utf8": "^0.2.1" - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "stubs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", - "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=" - }, - "subtext": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/subtext/-/subtext-6.0.7.tgz", - "integrity": "sha512-IcJUvRjeR+NB437Iq+LORFNJW4L6Knqkj3oQrBrkdhIaS2VKJvx/9aYEq7vi+PEx5/OuehOL/40SkSZotLi/MA==", - "dev": true, - "requires": { - "boom": "7.x.x", - "content": "4.x.x", - "hoek": "5.x.x", - "pez": "4.x.x", - "wreck": "14.x.x" - } - }, - "superagent": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.2.tgz", - "integrity": "sha512-gVH4QfYHcY3P0f/BZzavLreHW3T1v7hG9B+hpMQotGQqurOvhv87GcMCd6LWySmBuf+BDR44TQd0aISjVHLeNQ==", - "dev": true, - "requires": { - "component-emitter": "^1.2.0", - "cookiejar": "^2.1.0", - "debug": "^3.1.0", - "extend": "^3.0.0", - "form-data": "^2.3.1", - "formidable": "^1.1.1", - "methods": "^1.1.1", - "mime": "^1.4.1", - "qs": "^6.5.1", - "readable-stream": "^2.0.5" - }, - "dependencies": { - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - } - } - }, - "supertap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supertap/-/supertap-1.0.0.tgz", - "integrity": "sha512-HZJ3geIMPgVwKk2VsmO5YHqnnJYl6bV5A9JW2uzqV43WmpgliNEYbuvukfor7URpaqpxuw3CfZ3ONdVbZjCgIA==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "indent-string": "^3.2.0", - "js-yaml": "^3.10.0", - "serialize-error": "^2.1.0", - "strip-ansi": "^4.0.0" - } - }, - "supertest": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/supertest/-/supertest-3.1.0.tgz", - "integrity": "sha512-O44AMnmJqx294uJQjfUmEyYOg7d9mylNFsMw/Wkz4evKd1njyPrtCN+U6ZIC7sKtfEVQhfTqFFijlXx8KP/Czw==", - "dev": true, - "requires": { - "methods": "~1.1.2", - "superagent": "3.8.2" - } - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - }, - "dependencies": { - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - } - } - }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "dev": true - }, - "table": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.3.tgz", - "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", - "dev": true, - "requires": { - "ajv": "^6.0.1", - "ajv-keywords": "^3.0.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", - "slice-ansi": "1.0.0", - "string-width": "^2.1.1" - }, - "dependencies": { - "ajv": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz", - "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.1" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - } - } - }, - "taffydb": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", - "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=", - "dev": true - }, - "teamwork": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/teamwork/-/teamwork-3.0.1.tgz", - "integrity": "sha512-hEkJIpDOfOYe9NYaLFk00zQbzZeKNCY8T2pRH3I13Y1mJwxaSQ6NEsjY5rCp+11ezCiZpWGoGFTbOuhg4qKevQ==", - "dev": true - }, - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", - "dev": true, - "requires": { - "execa": "^0.7.0" - } - }, - "text-encoding": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", - "integrity": "sha1-45mpgiV6J22uQou5KEXLcb3CbRk=", - "dev": true - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "requires": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" - } - }, - "time-zone": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz", - "integrity": "sha1-mcW/VZWJZq9tBtg73zgA3IL67F0=", - "dev": true - }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "dev": true - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - } - } - }, - "topo": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.0.tgz", - "integrity": "sha512-Tlu1fGlR90iCdIPURqPiufqAlCZYzLjHYVVbcFWDMcX7+tK8hdZWAfsMrD/pBul9jqHHwFjNdf1WaxA9vTRRhw==", - "dev": true, - "requires": { - "hoek": "5.x.x" - } - }, - "tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", - "requires": { - "punycode": "^1.4.1" - } - }, - "traverse": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", - "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", - "dev": true - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true - }, - "trim-off-newlines": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz", - "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", - "dev": true - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, - "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", - "dev": true - }, - "tslint": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.11.0.tgz", - "integrity": "sha1-mPMMAurjzecAYgHkwzywi0hYHu0=", - "dev": true, - "requires": { - "babel-code-frame": "^6.22.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^3.2.0", - "glob": "^7.1.1", - "js-yaml": "^3.7.0", - "minimatch": "^3.0.4", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.8.0", - "tsutils": "^2.27.2" - }, - "dependencies": { - "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", - "dev": true, - "requires": { - "path-parse": "^1.0.5" - } - } - } - }, - "tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "optional": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-is": { - "version": "1.6.16", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", - "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.18" - } - }, - "type-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/type-name/-/type-name-2.0.2.tgz", - "integrity": "sha1-7+fUEj2KxSr/9/QMfk3sUmYAj7Q=", - "dev": true - }, - "typescript": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.0.1.tgz", - "integrity": "sha512-zQIMOmC+372pC/CCVLqnQ0zSBiY7HHodU7mpQdjiZddek4GMj31I3dUJ7gAs9o65X7mnRma6OokOkc6f9jjfBg==", - "dev": true - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "optional": true, - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - }, - "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true, - "optional": true - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "optional": true, - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true, - "optional": true - }, - "uid2": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz", - "integrity": "sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I=", - "dev": true - }, - "underscore": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", - "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", - "dev": true - }, - "underscore-contrib": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/underscore-contrib/-/underscore-contrib-0.3.0.tgz", - "integrity": "sha1-ZltmwkeD+PorGMn4y7Dix9SMJsc=", - "dev": true, - "requires": { - "underscore": "1.6.0" - }, - "dependencies": { - "underscore": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", - "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", - "dev": true - } - } - }, - "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } - } - } - }, - "unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", - "dev": true, - "requires": { - "crypto-random-string": "^1.0.0" - } - }, - "unique-temp-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz", - "integrity": "sha1-bc6VsmgcoAPuv7MEpBX5y6vMU4U=", - "dev": true, - "requires": { - "mkdirp": "^0.5.1", - "os-tmpdir": "^1.0.1", - "uid2": "0.0.3" - } - }, - "universal-deep-strict-equal": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/universal-deep-strict-equal/-/universal-deep-strict-equal-1.2.2.tgz", - "integrity": "sha1-DaSsL3PP95JMgfpN4BjKViyisKc=", - "dev": true, - "requires": { - "array-filter": "^1.0.0", - "indexof": "0.0.1", - "object-keys": "^1.0.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "unzip-response": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", - "dev": true - }, - "update-notifier": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", - "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", - "dev": true, - "requires": { - "boxen": "^1.2.1", - "chalk": "^2.0.1", - "configstore": "^3.0.0", - "import-lazy": "^2.1.0", - "is-ci": "^1.0.10", - "is-installed-globally": "^0.1.0", - "is-npm": "^1.0.0", - "latest-version": "^3.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" - } - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - } - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dev": true, - "requires": { - "prepend-http": "^1.0.1" - } - }, - "url-to-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", - "dev": true - }, - "urlgrey": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-0.4.4.tgz", - "integrity": "sha1-iS/pWWCAXoVRnxzUOJ8stMu3ZS8=", - "dev": true - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "dev": true, - "requires": { - "builtins": "^1.0.3" - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true - }, - "vasync": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/vasync/-/vasync-1.6.4.tgz", - "integrity": "sha1-3+k2Fq0OeugBszKp2Iv8XNyOHR8=", - "dev": true, - "requires": { - "verror": "1.6.0" - }, - "dependencies": { - "extsprintf": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.2.0.tgz", - "integrity": "sha1-WtlGwi9bMrp/jNdCZxHG6KP8JSk=", - "dev": true - }, - "verror": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.6.0.tgz", - "integrity": "sha1-fROyex+swuLakEBetepuW90lLqU=", - "dev": true, - "requires": { - "extsprintf": "1.2.0" - } - } - } - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vise": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vise/-/vise-3.0.0.tgz", - "integrity": "sha512-kBFZLmiL1Vm3rHXphkhvvAcsjgeQXRrOFCbJb0I50YZZP4HGRNH+xGzK3matIMcpbsfr3I02u9odj4oCD0TWgA==", - "dev": true, - "requires": { - "hoek": "5.x.x" - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "well-known-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-1.0.0.tgz", - "integrity": "sha1-c8eK6Bp3Jqj6WY4ogIAcixYiVRg=", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "widest-line": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz", - "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", - "dev": true, - "requires": { - "string-width": "^2.1.1" - } - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true, - "optional": true - }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "wreck": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/wreck/-/wreck-14.0.2.tgz", - "integrity": "sha512-QCm3omWNJUseqrSzwX2QZi1rBbmCfbFHJAXputLLyZ37VSiFnSYQB0ms/mPnSvrlIu7GVm89Y/gBNhSY26uVIQ==", - "dev": true, - "requires": { - "boom": "7.x.x", - "hoek": "5.x.x" - } - }, - "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, - "write-file-atomic": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", - "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "write-json-file": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-2.3.0.tgz", - "integrity": "sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=", - "dev": true, - "requires": { - "detect-indent": "^5.0.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "pify": "^3.0.0", - "sort-keys": "^2.0.0", - "write-file-atomic": "^2.0.0" - }, - "dependencies": { - "detect-indent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", - "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=", - "dev": true - } - } - }, - "write-pkg": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-3.2.0.tgz", - "integrity": "sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw==", - "dev": true, - "requires": { - "sort-keys": "^2.0.0", - "write-json-file": "^2.2.0" - } - }, - "xdg-basedir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", - "dev": true - }, - "xmlcreate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-1.0.2.tgz", - "integrity": "sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8=", - "dev": true - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, - "yargs": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.0.0.tgz", - "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^9.0.2" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "yargs-parser": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", - "dev": true, - "requires": { - "camelcase": "^4.1.0" - } - } - } - }, - "yargs-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", - "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", - "dev": true, - "requires": { - "camelcase": "^4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - } - } - }, - "ylru": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.2.1.tgz", - "integrity": "sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ==", - "dev": true - } - } -} From 66fcbc8b9fc071b2b17b02ea4fc33bd970a76da3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Fri, 10 Aug 2018 07:12:00 -0700 Subject: [PATCH 146/527] chore(deps): update dependency pify to v4 (#194) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 7ab84946e8f..3d4d9034610 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -122,7 +122,7 @@ "nock": "^9.2.6", "nyc": "^12.0.2", "once": "^1.4.0", - "pify": "^3.0.0", + "pify": "^4.0.0", "post-install-check": "0.0.1", "power-assert": "^1.5.0", "prettier": "^1.12.1", From df4bd362e3c1703420c7bde46bd62efa84bfe8d5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Thu, 16 Aug 2018 16:28:41 -0700 Subject: [PATCH 147/527] chore(deps): update dependency eslint-config-prettier to v3 (#195) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 3d4d9034610..d7a195e92d9 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -95,7 +95,7 @@ "codecov": "^3.0.2", "cpy-cli": "^2.0.0", "eslint": "^5.0.0", - "eslint-config-prettier": "^2.9.0", + "eslint-config-prettier": "^3.0.0", "eslint-plugin-node": "^7.0.0", "eslint-plugin-prettier": "^2.6.0", "express": "^4.16.3", From 24b093e8a369ed773e86eb844ba73bd94f7eb73c Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Fri, 24 Aug 2018 07:45:55 -0700 Subject: [PATCH 148/527] test: fix a node 10 test failure (#199) --- .../test/unit/google-apis/auth-client.ts | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts index 121da557fa9..4b0ca7bb3e4 100644 --- a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts +++ b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts @@ -65,20 +65,18 @@ function verifyReportedMessage( }); } describe('RequestHandler', () => { - it('should not request OAuth2 token if key is provided', - (done: () => void) => { - const config = { - ignoreEnvironmentCheck: true, - key: 'key', - }; - const message = 'Made OAuth2 Token Request'; - verifyReportedMessage( - config, new Error(message), { - info: 'API key provided; skipping OAuth2 token request.', - }, - done); - }) - .timeout(4000); + it('should not request OAuth2 token if key is provided', done => { + const config = { + ignoreEnvironmentCheck: true, + key: 'key', + }; + const message = 'Made OAuth2 Token Request'; + verifyReportedMessage( + config, new Error(message), { + info: 'API key provided; skipping OAuth2 token request.', + }, + done); + }).timeout(8000); it('should issue a warning if it cannot communicate with the API', (done: () => void) => { From 1b0a27d0bf6ed730545c9ef3a53fe4365509862b Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Fri, 24 Aug 2018 10:32:15 -0700 Subject: [PATCH 149/527] chore: assert.deepEqual => assert.deepStrictEqual (#179) --- handwritten/error-reporting/package.json | 2 + .../system-test/error-reporting.ts | 3 +- .../test/unit/classes/error-message.ts | 24 ++++++------ .../classes/request-information-container.ts | 23 ++++++------ .../test/unit/configuration.ts | 11 +++--- .../test/unit/google-apis/auth-client.ts | 4 +- .../test/unit/interfaces/express.ts | 3 +- .../test/unit/populate-error-message.ts | 19 +++++----- .../test/unit/request-extractors/express.ts | 10 ++--- .../test/unit/request-extractors/hapi.ts | 10 ++--- .../test/unit/request-extractors/koa.ts | 6 +-- .../test/unit/request-extractors/manual.ts | 18 ++++----- .../test/unit/service-configuration.ts | 37 ++++++++++--------- handwritten/error-reporting/test/util.ts | 24 ++++++++++++ 14 files changed, 114 insertions(+), 80 deletions(-) create mode 100644 handwritten/error-reporting/test/util.ts diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index d7a195e92d9..0c700b3358d 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -69,6 +69,7 @@ "@types/glob": "^5.0.35", "@types/hapi": "^17.0.12", "@types/is": "0.0.20", + "@types/json-stable-stringify": "^1.0.32", "@types/koa": "^2.0.45", "@types/lodash.assign": "^4.2.3", "@types/lodash.has": "^4.5.3", @@ -108,6 +109,7 @@ "intelli-espower-loader": "^1.0.1", "js-green-licenses": "^0.5.0", "jsdoc": "^3.5.5", + "json-stable-stringify": "^1.0.1", "koa": "^2.5.1", "lodash.assign": "^4.2.0", "lodash.maxby": "^4.6.0", diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index def5319751a..66f2609ab6c 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -24,6 +24,7 @@ import {RequestHandler} from '../src/google-apis/auth-client'; import {createLogger} from '../src/logger'; import {FakeConfiguration as Configuration} from '../test/fixtures/configuration'; import {ErrorGroupStats, ErrorsApiTransport} from '../utils/errors-api-transport'; +import {deepStrictEqual} from '../test/util'; import assign = require('lodash.assign'); import pick = require('lodash.pick'); @@ -551,7 +552,7 @@ describe('error-reporting', () => { errors.report(errOb, undefined, undefined, (err, response, body) => { assert.ifError(err); assert(is.object(response)); - assert.deepEqual(body, {}); + deepStrictEqual(body, {}); verifyServerResponse(messageTest, timeout, cb); }); })(); diff --git a/handwritten/error-reporting/test/unit/classes/error-message.ts b/handwritten/error-reporting/test/unit/classes/error-message.ts index 889b222f507..a7cdbf8e26e 100644 --- a/handwritten/error-reporting/test/unit/classes/error-message.ts +++ b/handwritten/error-reporting/test/unit/classes/error-message.ts @@ -17,6 +17,7 @@ import * as assert from 'assert'; import {ErrorMessage} from '../../../src/classes/error-message'; import {RequestInformationContainer} from '../../../src/classes/request-information-container'; +import {deepStrictEqual} from '../../util'; describe('Instantiating a new ErrorMessage', () => { let em: ErrorMessage; @@ -25,13 +26,14 @@ describe('Instantiating a new ErrorMessage', () => { }); it('Should have a default service context', () => { - assert.deepEqual(em.serviceContext, {service: 'node', version: undefined}); + deepStrictEqual( + em.serviceContext, {service: 'node', version: undefined}); }); it('Should have a default message', () => { assert.strictEqual(em.message, ''); }); it('Should have a default http context', () => { - assert.deepEqual(em.context.httpRequest, { + deepStrictEqual(em.context.httpRequest, { method: '', url: '', userAgent: '', @@ -41,7 +43,7 @@ describe('Instantiating a new ErrorMessage', () => { }); }); it('Should have a default reportLocation', () => { - assert.deepEqual(em.context.reportLocation, { + deepStrictEqual(em.context.reportLocation, { filePath: '', lineNumber: 0, functionName: '', @@ -72,7 +74,7 @@ describe('Fuzzing against setServiceContext', () => { it('Should set the value for service context', () => { em.setServiceContext(AFFIRMATIVE_TEST_VALUE, AFFIRMATIVE_TEST_VALUE); - assert.deepEqual( + deepStrictEqual( em.serviceContext, { service: AFFIRMATIVE_TEST_VALUE, version: AFFIRMATIVE_TEST_VALUE, @@ -84,7 +86,7 @@ describe('Fuzzing against setServiceContext', () => { }); it('Should set the default values', () => { em.setServiceContext(DEFAULT_TEST_VALUE, DEFAULT_TEST_VALUE); - assert.deepEqual( + deepStrictEqual( em.serviceContext, { service: DEFAULT_TEST_VALUE, version: DEFAULT_TEST_VALUE, @@ -96,7 +98,7 @@ describe('Fuzzing against setServiceContext', () => { }); it('Should still set version with affirmative value', () => { em.setServiceContext(null!, AFFIRMATIVE_TEST_VALUE); - assert.deepEqual( + deepStrictEqual( em.serviceContext, { service: DEFAULT_SERVICE_VALUE, version: AFFIRMATIVE_TEST_VALUE, @@ -109,7 +111,7 @@ describe('Fuzzing against setServiceContext', () => { }); it('Should still set service with affirmative value', () => { em.setServiceContext(AFFIRMATIVE_TEST_VALUE, null!); - assert.deepEqual( + deepStrictEqual( em.serviceContext, { service: AFFIRMATIVE_TEST_VALUE, version: DEFAULT_VERSION_VALUE, @@ -122,7 +124,7 @@ describe('Fuzzing against setServiceContext', () => { }); it('Should set default values on both', () => { em.setServiceContext(null!, null!); - assert.deepEqual( + deepStrictEqual( em.serviceContext, { service: DEFAULT_SERVICE_VALUE, version: DEFAULT_VERSION_VALUE, @@ -134,7 +136,7 @@ describe('Fuzzing against setServiceContext', () => { }); it('Should set default values on both', () => { em.setServiceContext(2 as {} as string, 1.3 as {} as string); - assert.deepEqual( + deepStrictEqual( em.serviceContext, { service: DEFAULT_SERVICE_VALUE, version: DEFAULT_VERSION_VALUE, @@ -146,7 +148,7 @@ describe('Fuzzing against setServiceContext', () => { }); it('Should set as default', () => { em.setServiceContext({test: 'true'} as {} as string, [] as {} as string); - assert.deepEqual( + deepStrictEqual( em.serviceContext, { service: DEFAULT_SERVICE_VALUE, version: DEFAULT_VERSION_VALUE, @@ -158,7 +160,7 @@ describe('Fuzzing against setServiceContext', () => { }); it('Should set as default', () => { em.setServiceContext(); - assert.deepEqual( + deepStrictEqual( em.serviceContext, { service: DEFAULT_SERVICE_VALUE, version: DEFAULT_VERSION_VALUE, diff --git a/handwritten/error-reporting/test/unit/classes/request-information-container.ts b/handwritten/error-reporting/test/unit/classes/request-information-container.ts index bfc7f339e10..56fc8010fa2 100644 --- a/handwritten/error-reporting/test/unit/classes/request-information-container.ts +++ b/handwritten/error-reporting/test/unit/classes/request-information-container.ts @@ -17,6 +17,7 @@ import * as assert from 'assert'; import {RequestInformationContainer} from '../../../src/classes/request-information-container'; import {Fuzzer} from '../../../utils/fuzzer'; +import {deepStrictEqual} from '../../util'; describe('RequestInformationContainer', () => { const f = new Fuzzer(); @@ -27,31 +28,31 @@ describe('RequestInformationContainer', () => { describe('Fuzzing against RequestInformationContainer', () => { it('Should return the property as an empty string', () => { cbFn = () => { - assert.deepEqual(ric.url, ''); + deepStrictEqual(ric.url, ''); }; f.fuzzFunctionForTypes(ric.setUrl, ['string'], cbFn, ric); }); it('Should return the method property as an empty string', () => { cbFn = () => { - assert.deepEqual(ric.method, ''); + deepStrictEqual(ric.method, ''); }; f.fuzzFunctionForTypes(ric.setMethod, ['string'], cbFn, ric); }); it('Should return the referrer property as an empty string', () => { cbFn = () => { - assert.deepEqual(ric.referrer, ''); + deepStrictEqual(ric.referrer, ''); }; f.fuzzFunctionForTypes(ric.setReferrer, ['string'], cbFn, ric); }); it('Should return the userAgent property as an empty string', () => { cbFn = () => { - assert.deepEqual(ric.userAgent, ''); + deepStrictEqual(ric.userAgent, ''); }; f.fuzzFunctionForTypes(ric.setUserAgent, ['string'], cbFn, ric); }); it('Should return the property as an empty string', () => { cbFn = () => { - assert.deepEqual(ric.remoteAddress, ''); + deepStrictEqual(ric.remoteAddress, ''); }; f.fuzzFunctionForTypes(ric.setRemoteAddress, ['string'], cbFn, ric); }); @@ -67,27 +68,27 @@ describe('RequestInformationContainer', () => { const VALID_NUMBER_INPUT = 500; it('Should assign the value to the url property', () => { ric.setUrl(VALID_STRING_INPUT); - assert.deepEqual(ric.url, VALID_STRING_INPUT); + assert.strictEqual(ric.url, VALID_STRING_INPUT); }); it('Should assign the value to the method property', () => { ric.setMethod(VALID_STRING_INPUT); - assert.deepEqual(ric.method, VALID_STRING_INPUT); + assert.strictEqual(ric.method, VALID_STRING_INPUT); }); it('Should assign the value to the referrer property', () => { ric.setReferrer(VALID_STRING_INPUT); - assert.deepEqual(ric.referrer, VALID_STRING_INPUT); + assert.strictEqual(ric.referrer, VALID_STRING_INPUT); }); it('Should assign the value to the userAgent property', () => { ric.setUserAgent(VALID_STRING_INPUT); - assert.deepEqual(ric.userAgent, VALID_STRING_INPUT); + assert.strictEqual(ric.userAgent, VALID_STRING_INPUT); }); it('Should assign the value to remoteAddress property', () => { ric.setRemoteAddress(VALID_STRING_INPUT); - assert.deepEqual(ric.remoteAddress, VALID_STRING_INPUT); + assert.strictEqual(ric.remoteAddress, VALID_STRING_INPUT); }); it('Should assign the value to statusCode property', () => { ric.setStatusCode(VALID_NUMBER_INPUT); - assert.deepEqual(ric.statusCode, VALID_NUMBER_INPUT); + assert.strictEqual(ric.statusCode, VALID_NUMBER_INPUT); }); }); }); diff --git a/handwritten/error-reporting/test/unit/configuration.ts b/handwritten/error-reporting/test/unit/configuration.ts index 4c2ac5e73c3..23129b441db 100644 --- a/handwritten/error-reporting/test/unit/configuration.ts +++ b/handwritten/error-reporting/test/unit/configuration.ts @@ -21,6 +21,7 @@ import merge = require('lodash.merge'); import {FakeConfiguration as Configuration} from '../fixtures/configuration'; import {ConfigurationOptions} from '../../src/configuration'; import {Fuzzer} from '../../utils/fuzzer'; +import {deepStrictEqual} from '../util'; const level = process.env.GCLOUD_ERRORS_LOGLEVEL; import {createLogger} from '../../src/logger'; const logger = createLogger({ @@ -67,7 +68,7 @@ describe('Configuration class', () => { let c; f.fuzzFunctionForTypes((givenConfigFuzz: ConfigurationOptions) => { c = new Configuration(givenConfigFuzz, logger); - assert.deepEqual(c._givenConfiguration, {}); + deepStrictEqual(c._givenConfiguration, {}); }, ['object']); }); }); @@ -86,7 +87,7 @@ describe('Configuration class', () => { }); }); it('Should have a property reflecting the config argument', () => { - assert.deepEqual(c._givenConfiguration, validConfig); + deepStrictEqual(c._givenConfiguration, validConfig); }); it('Should not have a project id', () => { assert.strictEqual(c._projectId, null); @@ -95,7 +96,7 @@ describe('Configuration class', () => { assert.strictEqual(c.getKey(), null); }); it('Should have a default service context', () => { - assert.deepEqual(c.getServiceContext(), { + deepStrictEqual(c.getServiceContext(), { service: 'node', version: undefined, }); @@ -299,7 +300,7 @@ describe('Configuration class', () => { c = new Configuration(undefined, logger); }); it('Should assign', () => { - assert.deepEqual(c.getServiceContext(), serviceContext); + deepStrictEqual(c.getServiceContext(), serviceContext); }); }); }); @@ -321,7 +322,7 @@ describe('Configuration class', () => { }); }); it('Should assign', () => { - assert.deepEqual(c.getServiceContext(), serviceContext); + deepStrictEqual(c.getServiceContext(), serviceContext); }); }); describe('api key', () => { diff --git a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts index 4b0ca7bb3e4..500a7f81e0b 100644 --- a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts +++ b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts @@ -14,10 +14,10 @@ * limitations under the License. */ -import * as assert from 'assert'; import * as proxyquire from 'proxyquire'; import {Configuration, ConfigurationOptions, Logger} from '../../../src/configuration'; +import {deepStrictEqual} from '../../util'; function verifyReportedMessage( config1: ConfigurationOptions, errToReturn: Error|null|undefined, @@ -60,7 +60,7 @@ function verifyReportedMessage( // tslint:disable-next-line:no-unused-expression new RequestHandler(config2, logger); setImmediate(() => { - assert.deepStrictEqual(logs, expectedLogs); + deepStrictEqual(logs, expectedLogs); done(); }); } diff --git a/handwritten/error-reporting/test/unit/interfaces/express.ts b/handwritten/error-reporting/test/unit/interfaces/express.ts index ca1e8bae245..ad0312a65e4 100644 --- a/handwritten/error-reporting/test/unit/interfaces/express.ts +++ b/handwritten/error-reporting/test/unit/interfaces/express.ts @@ -23,6 +23,7 @@ import {makeExpressHandler as expressInterface} from '../../../src/interfaces/ex import {createLogger} from '../../../src/logger'; import {Fuzzer} from '../../../utils/fuzzer'; import {FakeConfiguration as Configuration} from '../../fixtures/configuration'; +import {deepStrictEqual} from '../../util'; describe('expressInterface', () => { describe('Exception handling', () => { @@ -59,7 +60,7 @@ describe('expressInterface', () => { expressInterface(client as {} as RequestHandler, stubbedConfig); it('Should return the error message', () => { const res = validBoundHandler(testError, null!, null!, null!); - assert.deepEqual( + deepStrictEqual( res, merge( new ErrorMessage() diff --git a/handwritten/error-reporting/test/unit/populate-error-message.ts b/handwritten/error-reporting/test/unit/populate-error-message.ts index 5612b0b4ffe..63c44fcc287 100644 --- a/handwritten/error-reporting/test/unit/populate-error-message.ts +++ b/handwritten/error-reporting/test/unit/populate-error-message.ts @@ -18,6 +18,7 @@ import * as assert from 'assert'; import {ErrorMessage} from '../../src/classes/error-message'; import {populateErrorMessage} from '../../src/populate-error-message'; +import {deepStrictEqual} from '../util'; const TEST_USER_INVALID = 12; const TEST_MESSAGE = 'This is a test'; @@ -95,7 +96,7 @@ describe('populate-error-message', () => { () => { const err = new Error(TEST_MESSAGE); populateErrorMessage(err, em); - assert.deepEqual( + deepStrictEqual( em.message, err.stack, 'Given a valid message the ' + 'error message should absorb the error stack as the message'); @@ -159,7 +160,7 @@ describe('populate-error-message', () => { const TEST_SERVICE_VALID = {service: 'test', version: 'test'}; err.serviceContext = TEST_SERVICE_VALID; populateErrorMessage(err, em); - assert.deepEqual(err.serviceContext, TEST_SERVICE_VALID); + deepStrictEqual(err.serviceContext, TEST_SERVICE_VALID); }); it('ServiceContext Field: Should default the field given invalid input ' + @@ -169,7 +170,7 @@ describe('populate-error-message', () => { const TEST_SERVICE_INVALID = 12; err.serviceContext = TEST_SERVICE_INVALID; populateErrorMessage(err, em); - assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); + deepStrictEqual(em.serviceContext, TEST_SERVICE_DEFAULT); }); it('ServiceContext Field: Should default the field if not given input ' + @@ -177,7 +178,7 @@ describe('populate-error-message', () => { () => { const err = new Error(); populateErrorMessage(err, em); - assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); + deepStrictEqual(em.serviceContext, TEST_SERVICE_DEFAULT); }); it('ServiceContext Field: Should set the field given valid input given an ' + @@ -187,7 +188,7 @@ describe('populate-error-message', () => { const TEST_SERVICE_VALID = {service: 'test', version: 'test'}; err.serviceContext = TEST_SERVICE_VALID; populateErrorMessage(err, em); - assert.deepEqual(em.serviceContext, TEST_SERVICE_VALID); + deepStrictEqual(em.serviceContext, TEST_SERVICE_VALID); }); it('ServiceContext Field: Should default the field given invalid input ' + @@ -197,7 +198,7 @@ describe('populate-error-message', () => { const TEST_SERVICE_INVALID = 12; err.serviceContext = TEST_SERVICE_INVALID; populateErrorMessage(err, em); - assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); + deepStrictEqual(em.serviceContext, TEST_SERVICE_DEFAULT); }); it('ServiceContext Field: Should default the field given lack-of input ' + @@ -205,7 +206,7 @@ describe('populate-error-message', () => { () => { const err = {}; populateErrorMessage(err, em); - assert.deepEqual(em.serviceContext, TEST_SERVICE_DEFAULT); + deepStrictEqual(em.serviceContext, TEST_SERVICE_DEFAULT); }); it('Report location Field: Should default the field if given invalid input ' + @@ -219,7 +220,7 @@ describe('populate-error-message', () => { const err: AnnotatedError = new Error(); err.stack = TEST_STACK_INVALID_CONTENTS; populateErrorMessage(err, em); - assert.deepEqual(em.context.reportLocation, TEST_STACK_DEFAULT); + deepStrictEqual(em.context.reportLocation, TEST_STACK_DEFAULT); }); it('Report location Field: Should default field if not given a valid type ' + @@ -229,7 +230,7 @@ describe('populate-error-message', () => { const TEST_STACK_INVALID_TYPE = [] as {}; err.stack = TEST_STACK_INVALID_TYPE; populateErrorMessage(err, em); - assert.deepEqual(em.context.reportLocation, TEST_STACK_DEFAULT); + deepStrictEqual(em.context.reportLocation, TEST_STACK_DEFAULT); }); it('FilePath Field: Should set the field given valid input given an object', diff --git a/handwritten/error-reporting/test/unit/request-extractors/express.ts b/handwritten/error-reporting/test/unit/request-extractors/express.ts index 9cb00775861..daf70507288 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/express.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/express.ts @@ -14,12 +14,12 @@ * limitations under the License. */ -import * as assert from 'assert'; import {Response} from 'express-serve-static-core'; import * as extend from 'extend'; import {expressRequestInformationExtractor} from '../../../src/request-extractors/express'; import {Fuzzer} from '../../../utils/fuzzer'; +import {deepStrictEqual} from '../../util'; describe('Behaviour under varying input', () => { let f: Fuzzer; @@ -36,7 +36,7 @@ describe('Behaviour under varying input', () => { }); it('Should return a default value given invalid input', () => { const cbFn = (value: {}) => { - assert.deepEqual(value, DEFAULT_RETURN_VALUE); + deepStrictEqual(value, DEFAULT_RETURN_VALUE); }; f.fuzzFunctionForTypes( expressRequestInformationExtractor, ['object', 'object'], cbFn); @@ -116,7 +116,7 @@ describe('Behaviour under varying input', () => { let tmpOutput = expressRequestInformationExtractor( headerFactory(FULL_REQ_DERIVATION_VALUE), FULL_RES_DERIVATION_VALUE as Response); - assert.deepEqual(tmpOutput, FULL_REQ_EXPECTED_VALUE, [ + deepStrictEqual(tmpOutput, FULL_REQ_EXPECTED_VALUE, [ 'Given a valid object input for the request parameter and an', '\'x-forwarded-for\' parameter the request extractor should return', 'the expected full req output and the \'x-forwarded-for\' value', @@ -125,7 +125,7 @@ describe('Behaviour under varying input', () => { tmpOutput = expressRequestInformationExtractor( headerFactory(PARTIAL_REQ_DERIVATION_VALUE), PARTIAL_RES_DERIVATION_VALUE as Response); - assert.deepEqual(tmpOutput, PARTIAL_REQ_EXPECTED_VALUE, [ + deepStrictEqual(tmpOutput, PARTIAL_REQ_EXPECTED_VALUE, [ 'Given a valid object input for the request parameter but sans an', '\'x-forwarded-for\' parameter the request extractor should return', 'the expected parital req output and the remoteAddress value', @@ -134,7 +134,7 @@ describe('Behaviour under varying input', () => { tmpOutput = expressRequestInformationExtractor( headerFactory(ANOTHER_PARTIAL_REQ_DERIVATION_VALUE), ANOTHER_PARTIAL_RES_DERIVATION_VALUE as Response); - assert.deepEqual(tmpOutput, ANOTHER_PARTIAL_REQ_EXPECTED_VALUE, [ + deepStrictEqual(tmpOutput, ANOTHER_PARTIAL_REQ_EXPECTED_VALUE, [ 'Given a valid object input for the request parameter but sans an', '\'x-forwarded-for\' parameter or a remoteAddress parameter', 'the request extractor should return an empty string', diff --git a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts index e658eb55601..c8b84b8c0ea 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts @@ -14,11 +14,11 @@ * limitations under the License. */ -import * as assert from 'assert'; import * as hapi from 'hapi'; import {hapiRequestInformationExtractor} from '../../../src/request-extractors/hapi'; import {Fuzzer} from '../../../utils/fuzzer'; +import {deepStrictEqual} from '../../util'; describe('hapiRequestInformationExtractor behaviour', () => { describe('behaviour given invalid input', () => { @@ -33,7 +33,7 @@ describe('hapiRequestInformationExtractor behaviour', () => { }; const f = new Fuzzer(); const cbFn = (value: {}) => { - assert.deepEqual(value, DEFAULT_RETURN_VALUE); + deepStrictEqual(value, DEFAULT_RETURN_VALUE); }; f.fuzzFunctionForTypes(hapiRequestInformationExtractor, ['object'], cbFn); }); @@ -103,19 +103,19 @@ describe('hapiRequestInformationExtractor behaviour', () => { statusCode: 0, }; it('Should produce the full request input', () => { - assert.deepEqual( + deepStrictEqual( hapiRequestInformationExtractor( FULL_REQ_DERIVATION_VALUE as {} as hapi.Request), FULL_REQ_EXPECTED_VALUE); }); it('Should produce the partial request input', () => { - assert.deepEqual( + deepStrictEqual( hapiRequestInformationExtractor( PARTIAL_REQ_DERIVATION_VALUE as {} as hapi.Request), PARTIAL_REQ_EXPECTED_VALUE); }); it('Should produce the second partial request input', () => { - assert.deepEqual( + deepStrictEqual( hapiRequestInformationExtractor( ANOTHER_PARTIAL_REQ_DERIVATION_VALUE as {} as hapi.Request), ANOTHER_PARTIAL_REQ_EXPECTED_VALUE); diff --git a/handwritten/error-reporting/test/unit/request-extractors/koa.ts b/handwritten/error-reporting/test/unit/request-extractors/koa.ts index a99ea0615ed..c25f378bf54 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/koa.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/koa.ts @@ -14,11 +14,11 @@ * limitations under the License. */ -import * as assert from 'assert'; import {Request, Response} from 'koa'; import {koaRequestInformationExtractor} from '../../../src/request-extractors/koa'; import {Fuzzer} from '../../../utils/fuzzer'; +import {deepStrictEqual} from '../../util'; describe('koaRequestInformationExtractor', () => { describe('Behaviour under invalid input', () => { @@ -33,7 +33,7 @@ describe('koaRequestInformationExtractor', () => { }; const f = new Fuzzer(); const cbFn = (value: {}) => { - assert.deepEqual(value, DEFAULT_RETURN_VALUE); + deepStrictEqual(value, DEFAULT_RETURN_VALUE); }; f.fuzzFunctionForTypes( koaRequestInformationExtractor, ['object', 'object'], cbFn); @@ -61,7 +61,7 @@ describe('koaRequestInformationExtractor', () => { remoteAddress: '0.0.0.0', statusCode: 200, }; - assert.deepEqual( + deepStrictEqual( koaRequestInformationExtractor( FULL_REQ_DERIVATION_VALUE as Request, FULL_RES_DERIVATION_VALUE as Response), diff --git a/handwritten/error-reporting/test/unit/request-extractors/manual.ts b/handwritten/error-reporting/test/unit/request-extractors/manual.ts index 5de9d868ff5..7cc49213743 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/manual.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/manual.ts @@ -14,12 +14,12 @@ * limitations under the License. */ -import * as assert from 'assert'; import * as extend from 'extend'; import omit = require('lodash.omit'); import {manualRequestInformationExtractor} from '../../../src/request-extractors/manual'; import {Fuzzer} from '../../../utils/fuzzer'; +import {deepStrictEqual} from '../../util'; describe('manualRequestInformationExtractor', () => { describe('Behaviour given invalid input', () => { @@ -34,7 +34,7 @@ describe('manualRequestInformationExtractor', () => { }; const f = new Fuzzer(); const cbFn = (value: {}) => { - assert.deepEqual(value, DEFAULT_RETURN_VALUE); + deepStrictEqual(value, DEFAULT_RETURN_VALUE); }; f.fuzzFunctionForTypes( manualRequestInformationExtractor, ['object'], cbFn); @@ -50,45 +50,45 @@ describe('manualRequestInformationExtractor', () => { remoteAddress: '0.0.0.1', }; it('Should return expected output', () => { - assert.deepEqual( + deepStrictEqual( manualRequestInformationExtractor(FULL_VALID_INPUT), FULL_VALID_INPUT, [ 'Given a full valid input object these values should be reflected by', 'the output of the request extraction', ].join(' ')); - assert.deepEqual( + deepStrictEqual( manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'method')), extend({}, FULL_VALID_INPUT, {method: ''}), [ 'Given a full valid input object sans the method property values', 'should be reflected by the output of the request extraction', ].join(' ')); - assert.deepEqual( + deepStrictEqual( manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'url')), extend({}, FULL_VALID_INPUT, {url: ''}), [ 'Given a valid input sans the url property these values should be', 'reflected by the output of the request extraction', ].join('')); - assert.deepEqual( + deepStrictEqual( manualRequestInformationExtractor( omit(FULL_VALID_INPUT, 'userAgent')), extend({}, FULL_VALID_INPUT, {userAgent: ''}), [ 'Given a full valid input sans the userAgent property these values', 'should be reflected by the output of the request extraction', ].join('')); - assert.deepEqual( + deepStrictEqual( manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'referrer')), extend({}, FULL_VALID_INPUT, {referrer: ''}), [ 'Given a full valid input sans the referrer property these values', 'should be reflected by the output of the request extraction', ].join('')); - assert.deepEqual( + deepStrictEqual( manualRequestInformationExtractor( omit(FULL_VALID_INPUT, 'statusCode')), extend({}, FULL_VALID_INPUT, {statusCode: 0}), [ 'Given a full valid input sans the statusCode property these values', 'should be reflected by the output of the request extraction', ].join('')); - assert.deepEqual( + deepStrictEqual( manualRequestInformationExtractor( omit(FULL_VALID_INPUT, 'remoteAddress')), extend({}, FULL_VALID_INPUT, {remoteAddress: ''}), [ diff --git a/handwritten/error-reporting/test/unit/service-configuration.ts b/handwritten/error-reporting/test/unit/service-configuration.ts index 38e9b77204b..9044338d12f 100644 --- a/handwritten/error-reporting/test/unit/service-configuration.ts +++ b/handwritten/error-reporting/test/unit/service-configuration.ts @@ -21,6 +21,7 @@ const isNumber = is.number; import assign = require('lodash.assign'); import omitBy = require('lodash.omitby'); import {FakeConfiguration as Configuration} from '../fixtures/configuration'; +import {deepStrictEqual} from '../util'; const level = process.env.GCLOUD_ERRORS_LOGLEVEL; import {createLogger} from '../../src/logger'; const logger = createLogger({ @@ -73,10 +74,10 @@ describe('Testing service configuration', () => { 'someModuleName', '1.0', 'InvalidName', 'InvalidVersion', 'someFunction'); const c = new Configuration({}, logger); - assert.deepEqual(c.getServiceContext().service, 'someFunction'); + deepStrictEqual(c.getServiceContext().service, 'someFunction'); // FUNCTION_NAME is set and the user didn't specify a version, and so // the version should not be defined - assert.deepEqual(c.getServiceContext().version, undefined); + deepStrictEqual(c.getServiceContext().version, undefined); }); it('A Configuration uses the function name as the service name on GCF ' + 'if the service name is not given in the given config ' + @@ -84,10 +85,10 @@ describe('Testing service configuration', () => { () => { setEnv(null, '1.0', null, 'InvalidVersion', 'someFunction'); const c = new Configuration({}, logger); - assert.deepEqual(c.getServiceContext().service, 'someFunction'); + deepStrictEqual(c.getServiceContext().service, 'someFunction'); // The user didn't specify a version and FUNCTION_NAME is defined, and // so the version should not be defined - assert.deepEqual(c.getServiceContext().version, undefined); + deepStrictEqual(c.getServiceContext().version, undefined); }); it('A Configuration uses the GAE_SERVICE env value as the service name ' + 'if the FUNCTION_NAME env variable is not set and the given config ' + @@ -95,10 +96,10 @@ describe('Testing service configuration', () => { () => { setEnv('someModuleName', '1.0', 'InvalidName', 'InvalidVersion', null); const c = new Configuration({}, logger); - assert.deepEqual(c.getServiceContext().service, 'someModuleName'); + deepStrictEqual(c.getServiceContext().service, 'someModuleName'); // The user didn't specify a version, and FUNCTION_NAME is not defined, // and so use the GAE_MODULE_VERSION - assert.deepEqual(c.getServiceContext().version, '1.0'); + deepStrictEqual(c.getServiceContext().version, '1.0'); }); it('A Configuration uses the service name in the given config if it ' + 'was specified and both the GAE_SERVICE and FUNCTION_NAME ' + @@ -114,10 +115,10 @@ describe('Testing service configuration', () => { }, }, logger); - assert.deepEqual(c.getServiceContext().service, 'customService'); + deepStrictEqual(c.getServiceContext().service, 'customService'); // The user didn't specify a version, but FUNCTION_NAME is defined, and // so the version should not be defined - assert.deepEqual(c.getServiceContext().version, undefined); + deepStrictEqual(c.getServiceContext().version, undefined); }); it('A Configuration uses the service name and version in the given config' + 'they were both specified and both the GAE_SERVICE and FUNCTION_NAME ' + @@ -134,9 +135,9 @@ describe('Testing service configuration', () => { }, }, logger); - assert.deepEqual(c.getServiceContext().service, 'customService'); + deepStrictEqual(c.getServiceContext().service, 'customService'); // The user specified version should be used - assert.deepEqual(c.getServiceContext().version, '2.0'); + deepStrictEqual(c.getServiceContext().version, '2.0'); }); it('A Configuration uses the service name in the given config if it ' + 'was specified and only the GAE_SERVICE env const is set', @@ -149,10 +150,10 @@ describe('Testing service configuration', () => { }, }, logger); - assert.deepEqual(c.getServiceContext().service, 'customService'); + deepStrictEqual(c.getServiceContext().service, 'customService'); // The user didn't specify a version and FUNCTION_NAME is not defined // and so the GAE_MODULE_VERSION should be used - assert.deepEqual(c.getServiceContext().version, '1.0'); + deepStrictEqual(c.getServiceContext().version, '1.0'); }); it('A Configuration uses the service name and version in the given config ' + 'they were both specified and only the GAE_SERVICE env const is set', @@ -166,9 +167,9 @@ describe('Testing service configuration', () => { }, }, logger); - assert.deepEqual(c.getServiceContext().service, 'customService'); + deepStrictEqual(c.getServiceContext().service, 'customService'); // The user specified version should be used - assert.deepEqual(c.getServiceContext().version, '2.0'); + deepStrictEqual(c.getServiceContext().version, '2.0'); }); it('A Configuration uses the service name in the given config if it ' + 'was specified and only the FUNCTION_NAME env const is set', @@ -181,10 +182,10 @@ describe('Testing service configuration', () => { }, }, logger); - assert.deepEqual(c.getServiceContext().service, 'customService'); + deepStrictEqual(c.getServiceContext().service, 'customService'); // The user didn't specify a version and thus because FUNCTION_NAME is // defined the version should not be defined - assert.deepEqual(c.getServiceContext().version, undefined); + deepStrictEqual(c.getServiceContext().version, undefined); }); it('A Configuration uses the service name and version in the given config ' + 'if they were both specified and only the FUNCTION_NAME env const is set', @@ -231,7 +232,7 @@ describe('Testing service configuration', () => { }, }, logger); - assert.deepEqual(c.getServiceContext().service, 'node'); - assert.deepEqual(c.getServiceContext().version, '2.0'); + deepStrictEqual(c.getServiceContext().service, 'node'); + deepStrictEqual(c.getServiceContext().version, '2.0'); }); }); diff --git a/handwritten/error-reporting/test/util.ts b/handwritten/error-reporting/test/util.ts new file mode 100644 index 00000000000..b99691ce811 --- /dev/null +++ b/handwritten/error-reporting/test/util.ts @@ -0,0 +1,24 @@ +/** + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the 'License'); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an 'AS IS' BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import * as assert from 'assert'; +import * as stringify from 'json-stable-stringify'; + +export type Anything = {}|undefined|null; + +export function deepStrictEqual(actual: Anything, expected: Anything, message?: string) { + assert.deepStrictEqual(stringify(actual), stringify(expected), message); +} From 85de85c407398f6f4e33eda6a3d3ab5f0af89fc4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Tue, 28 Aug 2018 07:59:10 -0700 Subject: [PATCH 150/527] chore(deps): update dependency nyc to v13 (#200) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 0c700b3358d..6e1837c85b3 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -122,7 +122,7 @@ "mocha": "^5.1.1", "ncp": "^2.0.0", "nock": "^9.2.6", - "nyc": "^12.0.2", + "nyc": "^13.0.0", "once": "^1.4.0", "pify": "^4.0.0", "post-install-check": "0.0.1", From 4fb06795f17e1a5c3366a03a5e7f1d1356ec3535 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Thu, 30 Aug 2018 09:06:26 -0400 Subject: [PATCH 151/527] fix(deps): update dependency @google-cloud/common to ^0.23.0 (#198) * fix(deps): update dependency @google-cloud/common to ^0.23.0 * chore: specify `requestModule` * chore: run `gts fix` * chore: make `request` a non-dev dependency --- handwritten/error-reporting/package.json | 8 ++++---- .../error-reporting/src/google-apis/auth-client.ts | 2 ++ .../error-reporting/system-test/error-reporting.ts | 2 +- .../error-reporting/test/unit/classes/error-message.ts | 3 +-- handwritten/error-reporting/test/util.ts | 3 ++- 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 6e1837c85b3..8a55ec9c050 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -54,10 +54,11 @@ "license-check": "jsgl --local ." }, "dependencies": { - "@google-cloud/common": "^0.21.0", + "@google-cloud/common": "^0.23.0", "console-log-level": "^1.4.0", "is": "^3.2.1", - "lodash.has": "^4.5.2" + "lodash.has": "^4.5.2", + "request": "^2.88.0" }, "devDependencies": { "@google-cloud/nodejs-repo-tools": "^2.3.0", @@ -87,7 +88,7 @@ "@types/once": "^1.4.0", "@types/pify": "^3.0.2", "@types/proxyquire": "^1.3.28", - "@types/request": "^2.47.0", + "@types/request": "^2.47.1", "@types/restify": "^7.2.0", "@types/rimraf": "^2.0.2", "@types/tmp": "0.0.33", @@ -129,7 +130,6 @@ "power-assert": "^1.5.0", "prettier": "^1.12.1", "proxyquire": "^2.0.1", - "request": "^2.86.0", "restify": "^7.2.0", "rimraf": "^2.6.2", "source-map-support": "^0.5.6", diff --git a/handwritten/error-reporting/src/google-apis/auth-client.ts b/handwritten/error-reporting/src/google-apis/auth-client.ts index c60d8f142d9..41ae0146e6f 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.ts +++ b/handwritten/error-reporting/src/google-apis/auth-client.ts @@ -20,6 +20,7 @@ import {Configuration, Logger} from '../configuration'; import {ErrorMessage} from '../classes/error-message'; import * as http from 'http'; import {Service, ServiceOptions} from '@google-cloud/common'; +import * as request from 'request'; /* @const {Array} list of scopes needed to work with the errors api. */ const SCOPES = ['https://www.googleapis.com/auth/cloud-platform']; @@ -99,6 +100,7 @@ export class RequestHandler extends Service { }); super( { + requestModule: request, packageJson: pkg, baseUrl: API, scopes: SCOPES, diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index 66f2609ab6c..92190a2d74d 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -23,8 +23,8 @@ import {ErrorMessage} from '../src/classes/error-message'; import {RequestHandler} from '../src/google-apis/auth-client'; import {createLogger} from '../src/logger'; import {FakeConfiguration as Configuration} from '../test/fixtures/configuration'; -import {ErrorGroupStats, ErrorsApiTransport} from '../utils/errors-api-transport'; import {deepStrictEqual} from '../test/util'; +import {ErrorGroupStats, ErrorsApiTransport} from '../utils/errors-api-transport'; import assign = require('lodash.assign'); import pick = require('lodash.pick'); diff --git a/handwritten/error-reporting/test/unit/classes/error-message.ts b/handwritten/error-reporting/test/unit/classes/error-message.ts index a7cdbf8e26e..708d1142281 100644 --- a/handwritten/error-reporting/test/unit/classes/error-message.ts +++ b/handwritten/error-reporting/test/unit/classes/error-message.ts @@ -26,8 +26,7 @@ describe('Instantiating a new ErrorMessage', () => { }); it('Should have a default service context', () => { - deepStrictEqual( - em.serviceContext, {service: 'node', version: undefined}); + deepStrictEqual(em.serviceContext, {service: 'node', version: undefined}); }); it('Should have a default message', () => { assert.strictEqual(em.message, ''); diff --git a/handwritten/error-reporting/test/util.ts b/handwritten/error-reporting/test/util.ts index b99691ce811..beda6b8ab6e 100644 --- a/handwritten/error-reporting/test/util.ts +++ b/handwritten/error-reporting/test/util.ts @@ -19,6 +19,7 @@ import * as stringify from 'json-stable-stringify'; export type Anything = {}|undefined|null; -export function deepStrictEqual(actual: Anything, expected: Anything, message?: string) { +export function deepStrictEqual( + actual: Anything, expected: Anything, message?: string) { assert.deepStrictEqual(stringify(actual), stringify(expected), message); } From c03364aa4e559b32f93c0238fe26f5fb9e8d9c47 Mon Sep 17 00:00:00 2001 From: "F. Hinkelmann" Date: Thu, 30 Aug 2018 10:39:00 -0400 Subject: [PATCH 152/527] feat: use small HTTP dependency (#201) --- handwritten/error-reporting/package.json | 2 +- handwritten/error-reporting/src/google-apis/auth-client.ts | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 8a55ec9c050..70e82e54024 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -58,7 +58,7 @@ "console-log-level": "^1.4.0", "is": "^3.2.1", "lodash.has": "^4.5.2", - "request": "^2.88.0" + "teeny-request": "^3.6.0" }, "devDependencies": { "@google-cloud/nodejs-repo-tools": "^2.3.0", diff --git a/handwritten/error-reporting/src/google-apis/auth-client.ts b/handwritten/error-reporting/src/google-apis/auth-client.ts index 41ae0146e6f..72d00554a5a 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.ts +++ b/handwritten/error-reporting/src/google-apis/auth-client.ts @@ -20,7 +20,7 @@ import {Configuration, Logger} from '../configuration'; import {ErrorMessage} from '../classes/error-message'; import * as http from 'http'; import {Service, ServiceOptions} from '@google-cloud/common'; -import * as request from 'request'; +import {teenyRequest} from 'teeny-request'; /* @const {Array} list of scopes needed to work with the errors api. */ const SCOPES = ['https://www.googleapis.com/auth/cloud-platform']; @@ -100,7 +100,8 @@ export class RequestHandler extends Service { }); super( { - requestModule: request, + // tslint:disable-next-line:no-any + requestModule: teenyRequest as any, packageJson: pkg, baseUrl: API, scopes: SCOPES, From f42dc4465646197941a7f09f886cc9bde9f70c4e Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Tue, 4 Sep 2018 10:54:53 -0700 Subject: [PATCH 153/527] Retry npm install in CI (#203) --- .../error-reporting/.circleci/config.yml | 105 ++++++++---------- .../.circleci/npm-install-retry.js | 60 ++++++++++ 2 files changed, 109 insertions(+), 56 deletions(-) create mode 100755 handwritten/error-reporting/.circleci/npm-install-retry.js diff --git a/handwritten/error-reporting/.circleci/config.yml b/handwritten/error-reporting/.circleci/config.yml index 9a148bf18de..80dcf7e67d9 100644 --- a/handwritten/error-reporting/.circleci/config.yml +++ b/handwritten/error-reporting/.circleci/config.yml @@ -4,51 +4,39 @@ workflows: tests: jobs: &workflow_jobs - node6: - filters: + filters: &all_commits tags: only: /.*/ - node8: - filters: - tags: - only: /.*/ + filters: *all_commits - node10: - filters: - tags: - only: /.*/ + filters: *all_commits - lint: requires: - node6 - node8 - node10 - filters: - tags: - only: /.*/ + filters: *all_commits - docs: requires: - node6 - node8 - node10 - filters: - tags: - only: /.*/ + filters: *all_commits - system_tests: requires: - lint - docs - filters: + filters: &master_and_releases branches: only: master - tags: + tags: &releases only: '/^v[\d.]+$/' - sample_tests: requires: - lint - docs - filters: - branches: - only: master - tags: - only: '/^v[\d.]+$/' + filters: *master_and_releases - publish_npm: requires: - system_tests @@ -56,8 +44,7 @@ workflows: filters: branches: ignore: /.*/ - tags: - only: '/^v[\d.]+$/' + tags: *releases nightly: triggers: - schedule: @@ -72,15 +59,17 @@ jobs: - image: 'node:6' user: node steps: &unit_tests_steps - - checkout + - checkout - run: &npm_install_and_link - name: Install and link the module. - command: npm install + name: Install and link the module + command: |- + mkdir -p /home/node/.npm-global + ./.circleci/npm-install-retry.js environment: NPM_CONFIG_PREFIX: /home/node/.npm-global - - run: - name: Run unit tests. - command: npm run test-only + - run: npm test + - run: node_modules/.bin/codecov + node8: docker: - image: 'node:8' @@ -100,19 +89,17 @@ jobs: - run: *npm_install_and_link - run: &samples_npm_install_and_link name: Link the module being tested to the samples. - command: echo 'Disabled' -# command: | -# cd samples/ -# npm link ../ -# npm install -# cd .. -# environment: -# NPM_CONFIG_PREFIX: /home/node/.npm-global -# - run: -# name: Run linting. -# command: npm run lint -# environment: -# NPM_CONFIG_PREFIX: /home/node/.npm-global + command: | + cd samples/ + npm link ../ + ./../.circleci/npm-install-retry.js + environment: + NPM_CONFIG_PREFIX: /home/node/.npm-global + - run: + name: Run linting. + command: npm run lint + environment: + NPM_CONFIG_PREFIX: /home/node/.npm-global docs: docker: - image: 'node:8' @@ -120,9 +107,7 @@ jobs: steps: - checkout - run: *npm_install_and_link - - run: - name: Build documentation. - command: npm run docs + - run: npm run docs sample_tests: docker: - image: 'node:8' @@ -132,9 +117,11 @@ jobs: - run: name: Decrypt credentials. command: | - openssl aes-256-cbc -d -in .circleci/key.json.enc \ + if ! [[ -z "${SYSTEM_TESTS_ENCRYPTION_KEY}" ]]; then + openssl aes-256-cbc -d -in .circleci/key.json.enc \ -out .circleci/key.json \ -k "${SYSTEM_TESTS_ENCRYPTION_KEY}" + fi - run: *npm_install_and_link - run: *samples_npm_install_and_link - run: @@ -142,13 +129,16 @@ jobs: command: npm run samples-test environment: GCLOUD_PROJECT: long-door-651 - GOOGLE_APPLICATION_CREDENTIALS: /home/node/error-reporting/.circleci/key.json + GOOGLE_APPLICATION_CREDENTIALS: /home/node/samples/.circleci/key.json NPM_CONFIG_PREFIX: /home/node/.npm-global - run: name: Remove unencrypted key. - command: rm .circleci/key.json + command: | + if ! [[ -z "${SYSTEM_TESTS_ENCRYPTION_KEY}" ]]; then + rm .circleci/key.json + fi when: always - working_directory: /home/node/error-reporting/ + working_directory: /home/node/samples/ system_tests: docker: - image: 'node:8' @@ -158,27 +148,30 @@ jobs: - run: name: Decrypt credentials. command: | - openssl aes-256-cbc -d -in .circleci/key.json.enc \ + if ! [[ -z "${SYSTEM_TESTS_ENCRYPTION_KEY}" ]]; then + openssl aes-256-cbc -d -in .circleci/key.json.enc \ -out .circleci/key.json \ -k "${SYSTEM_TESTS_ENCRYPTION_KEY}" + fi - run: *npm_install_and_link - run: name: Run system tests. command: npm run system-test environment: - GOOGLE_APPLICATION_CREDENTIALS: /home/node/error-reporting/.circleci/key.json - GCLOUD_TESTS_KEY: /home/node/error-reporting/.circleci/key.json + GOOGLE_APPLICATION_CREDENTIALS: .circleci/key.json - run: name: Remove unencrypted key. - command: rm .circleci/key.json + command: | + if ! [[ -z "${SYSTEM_TESTS_ENCRYPTION_KEY}" ]]; then + rm .circleci/key.json + fi when: always - working_directory: /home/node/error-reporting/ publish_npm: docker: - image: 'node:8' user: node steps: - checkout - - run: 'echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc' - - run: *npm_install_and_link - - run: npm publish + - run: ./.circleci/npm-install-retry.js + - run: echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc + - run: npm publish --access=public diff --git a/handwritten/error-reporting/.circleci/npm-install-retry.js b/handwritten/error-reporting/.circleci/npm-install-retry.js new file mode 100755 index 00000000000..ae3220d7348 --- /dev/null +++ b/handwritten/error-reporting/.circleci/npm-install-retry.js @@ -0,0 +1,60 @@ +#!/usr/bin/env node + +let spawn = require('child_process').spawn; + +// +//USE: ./index.js [... NPM ARGS] +// + +let timeout = process.argv[2] || 60000; +let attempts = process.argv[3] || 3; +let args = process.argv.slice(4); +if (args.length === 0) { + args = ['install']; +} + +(function npm() { + let timer; + args.push('--verbose'); + let proc = spawn('npm', args); + proc.stdout.pipe(process.stdout); + proc.stderr.pipe(process.stderr); + proc.stdin.end(); + proc.stdout.on('data', () => { + setTimer(); + }); + proc.stderr.on('data', () => { + setTimer(); + }); + + // side effect: this also restarts when npm exits with a bad code even if it + // didnt timeout + proc.on('close', (code, signal) => { + clearTimeout(timer); + if (code || signal) { + console.log('[npm-are-you-sleeping] npm exited with code ' + code + ''); + + if (--attempts) { + console.log('[npm-are-you-sleeping] restarting'); + npm(); + } else { + console.log('[npm-are-you-sleeping] i tried lots of times. giving up.'); + throw new Error("npm install fails"); + } + } + }); + + function setTimer() { + clearTimeout(timer); + timer = setTimeout(() => { + console.log('[npm-are-you-sleeping] killing npm with SIGTERM'); + proc.kill('SIGTERM'); + // wait a couple seconds + timer = setTimeout(() => { + // its it's still not closed sigkill + console.log('[npm-are-you-sleeping] killing npm with SIGKILL'); + proc.kill('SIGKILL'); + }, 2000); + }, timeout); + } +})(); From 2432fc698f093e8747c7018739d81c08aac6be35 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Wed, 5 Sep 2018 12:47:10 -0700 Subject: [PATCH 154/527] Add a synth file and update CI (#204) --- handwritten/error-reporting/.appveyor.yml | 1 - .../error-reporting/.circleci/config.yml | 11 +++--- .../error-reporting/.github/ISSUE_TEMPLATE.md | 5 ++- handwritten/error-reporting/.jsdoc.js | 20 ++++++----- .../error-reporting/.kokoro/common.cfg | 24 +++++++++++++ .../.kokoro/continuous/node10/common.cfg | 24 +++++++++++++ .../.kokoro/continuous/node10/test.cfg | 0 .../.kokoro/continuous/node6/common.cfg | 24 +++++++++++++ .../.kokoro/continuous/node6/test.cfg | 0 .../.kokoro/continuous/node8/common.cfg | 24 +++++++++++++ .../.kokoro/continuous/node8/docs.cfg | 4 +++ .../.kokoro/continuous/node8/lint.cfg | 4 +++ .../.kokoro/continuous/node8/samples-test.cfg | 7 ++++ .../.kokoro/continuous/node8/system-test.cfg | 7 ++++ .../.kokoro/continuous/node8/test.cfg | 0 handwritten/error-reporting/.kokoro/docs.sh | 25 +++++++++++++ handwritten/error-reporting/.kokoro/lint.sh | 31 ++++++++++++++++ .../.kokoro/presubmit/node10/common.cfg | 24 +++++++++++++ .../.kokoro/presubmit/node10/test.cfg | 0 .../.kokoro/presubmit/node6/common.cfg | 24 +++++++++++++ .../.kokoro/presubmit/node6/test.cfg | 0 .../.kokoro/presubmit/node8/common.cfg | 24 +++++++++++++ .../.kokoro/presubmit/node8/docs.cfg | 4 +++ .../.kokoro/presubmit/node8/lint.cfg | 4 +++ .../.kokoro/presubmit/node8/test.cfg | 0 .../.kokoro/presubmit/windows/common.cfg | 9 +++++ .../.kokoro/presubmit/windows/test.cfg | 2 ++ .../error-reporting/.kokoro/samples-test.sh | 35 +++++++++++++++++++ .../error-reporting/.kokoro/system-test.sh | 33 +++++++++++++++++ handwritten/error-reporting/.kokoro/test.bat | 26 ++++++++++++++ handwritten/error-reporting/.kokoro/test.sh | 25 +++++++++++++ .../error-reporting/.kokoro/trampoline.sh | 27 ++++++++++++++ handwritten/error-reporting/synth.py | 22 ++++++++++++ 33 files changed, 454 insertions(+), 16 deletions(-) create mode 100644 handwritten/error-reporting/.kokoro/common.cfg create mode 100644 handwritten/error-reporting/.kokoro/continuous/node10/common.cfg create mode 100644 handwritten/error-reporting/.kokoro/continuous/node10/test.cfg create mode 100644 handwritten/error-reporting/.kokoro/continuous/node6/common.cfg create mode 100644 handwritten/error-reporting/.kokoro/continuous/node6/test.cfg create mode 100644 handwritten/error-reporting/.kokoro/continuous/node8/common.cfg create mode 100644 handwritten/error-reporting/.kokoro/continuous/node8/docs.cfg create mode 100644 handwritten/error-reporting/.kokoro/continuous/node8/lint.cfg create mode 100644 handwritten/error-reporting/.kokoro/continuous/node8/samples-test.cfg create mode 100644 handwritten/error-reporting/.kokoro/continuous/node8/system-test.cfg create mode 100644 handwritten/error-reporting/.kokoro/continuous/node8/test.cfg create mode 100755 handwritten/error-reporting/.kokoro/docs.sh create mode 100755 handwritten/error-reporting/.kokoro/lint.sh create mode 100644 handwritten/error-reporting/.kokoro/presubmit/node10/common.cfg create mode 100644 handwritten/error-reporting/.kokoro/presubmit/node10/test.cfg create mode 100644 handwritten/error-reporting/.kokoro/presubmit/node6/common.cfg create mode 100644 handwritten/error-reporting/.kokoro/presubmit/node6/test.cfg create mode 100644 handwritten/error-reporting/.kokoro/presubmit/node8/common.cfg create mode 100644 handwritten/error-reporting/.kokoro/presubmit/node8/docs.cfg create mode 100644 handwritten/error-reporting/.kokoro/presubmit/node8/lint.cfg create mode 100644 handwritten/error-reporting/.kokoro/presubmit/node8/test.cfg create mode 100644 handwritten/error-reporting/.kokoro/presubmit/windows/common.cfg create mode 100644 handwritten/error-reporting/.kokoro/presubmit/windows/test.cfg create mode 100755 handwritten/error-reporting/.kokoro/samples-test.sh create mode 100755 handwritten/error-reporting/.kokoro/system-test.sh create mode 100644 handwritten/error-reporting/.kokoro/test.bat create mode 100755 handwritten/error-reporting/.kokoro/test.sh create mode 100755 handwritten/error-reporting/.kokoro/trampoline.sh create mode 100644 handwritten/error-reporting/synth.py diff --git a/handwritten/error-reporting/.appveyor.yml b/handwritten/error-reporting/.appveyor.yml index 75c7f9f84bc..24082152655 100644 --- a/handwritten/error-reporting/.appveyor.yml +++ b/handwritten/error-reporting/.appveyor.yml @@ -18,4 +18,3 @@ build: off matrix: fast_finish: true - diff --git a/handwritten/error-reporting/.circleci/config.yml b/handwritten/error-reporting/.circleci/config.yml index 80dcf7e67d9..8af6a4d0489 100644 --- a/handwritten/error-reporting/.circleci/config.yml +++ b/handwritten/error-reporting/.circleci/config.yml @@ -149,21 +149,24 @@ jobs: name: Decrypt credentials. command: | if ! [[ -z "${SYSTEM_TESTS_ENCRYPTION_KEY}" ]]; then - openssl aes-256-cbc -d -in .circleci/key.json.enc \ - -out .circleci/key.json \ - -k "${SYSTEM_TESTS_ENCRYPTION_KEY}" + for encrypted_key in .circleci/*.json.enc; do + openssl aes-256-cbc -d -in $encrypted_key \ + -out $(echo $encrypted_key | sed 's/\.enc//') \ + -k "${SYSTEM_TESTS_ENCRYPTION_KEY}" + done fi - run: *npm_install_and_link - run: name: Run system tests. command: npm run system-test environment: + GCLOUD_PROJECT: long-door-651 GOOGLE_APPLICATION_CREDENTIALS: .circleci/key.json - run: name: Remove unencrypted key. command: | if ! [[ -z "${SYSTEM_TESTS_ENCRYPTION_KEY}" ]]; then - rm .circleci/key.json + rm .circleci/*.json fi when: always publish_npm: diff --git a/handwritten/error-reporting/.github/ISSUE_TEMPLATE.md b/handwritten/error-reporting/.github/ISSUE_TEMPLATE.md index 474f5924992..4d5a2050d3e 100644 --- a/handwritten/error-reporting/.github/ISSUE_TEMPLATE.md +++ b/handwritten/error-reporting/.github/ISSUE_TEMPLATE.md @@ -4,9 +4,8 @@ Please run down the following list and make sure you've tried the usual "quick fixes": - Search the issues already opened: https://github.com/googleapis/nodejs-error-reporting/issues + - Search the issues on our "catch-all" repository: https://github.com/GoogleCloudPlatform/google-cloud-node - Search StackOverflow: http://stackoverflow.com/questions/tagged/google-cloud-platform+node.js - - Check our Troubleshooting guide: https://googlecloudplatform.github.io/google-cloud-node/#/docs/guides/troubleshooting - - Check our FAQ: https://googlecloudplatform.github.io/google-cloud-node/#/docs/guides/faq If you are still having issues, please be sure to include as much information as possible: @@ -16,7 +15,7 @@ possible: - OS: - Node.js version: - npm version: - - @google-cloud/error-reporting version: + - `@google-cloud/error-reporting` version: #### Steps to reproduce diff --git a/handwritten/error-reporting/.jsdoc.js b/handwritten/error-reporting/.jsdoc.js index 2f6acd6730a..f71ea4a8869 100644 --- a/handwritten/error-reporting/.jsdoc.js +++ b/handwritten/error-reporting/.jsdoc.js @@ -1,5 +1,5 @@ /*! - * Copyright 2017 Google Inc. All Rights Reserved. + * Copyright 2018 Google LLC. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,19 +23,23 @@ module.exports = { template: './node_modules/ink-docstrap/template', recurse: true, verbose: true, - destination: './docs/', + destination: './docs/' }, - plugins: ['plugins/markdown'], + plugins: [ + 'plugins/markdown' + ], source: { excludePattern: '(^|\\/|\\\\)[._]', - include: ['src'], - includePattern: '\\.js$', + include: [ + 'src' + ], + includePattern: '\\.js$' }, templates: { - copyright: 'Copyright 2017 Google, Inc.', + copyright: 'Copyright 2018 Google, LLC.', includeDate: false, sourceFiles: false, systemName: '@google-cloud/error-reporting', - theme: 'lumen', - }, + theme: 'lumen' + } }; diff --git a/handwritten/error-reporting/.kokoro/common.cfg b/handwritten/error-reporting/.kokoro/common.cfg new file mode 100644 index 00000000000..46a485cb122 --- /dev/null +++ b/handwritten/error-reporting/.kokoro/common.cfg @@ -0,0 +1,24 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" +} +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-error-reporting/.kokoro/test.sh" +} diff --git a/handwritten/error-reporting/.kokoro/continuous/node10/common.cfg b/handwritten/error-reporting/.kokoro/continuous/node10/common.cfg new file mode 100644 index 00000000000..46a485cb122 --- /dev/null +++ b/handwritten/error-reporting/.kokoro/continuous/node10/common.cfg @@ -0,0 +1,24 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" +} +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-error-reporting/.kokoro/test.sh" +} diff --git a/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg b/handwritten/error-reporting/.kokoro/continuous/node10/test.cfg new file mode 100644 index 00000000000..e69de29bb2d diff --git a/handwritten/error-reporting/.kokoro/continuous/node6/common.cfg b/handwritten/error-reporting/.kokoro/continuous/node6/common.cfg new file mode 100644 index 00000000000..c13f0197a0c --- /dev/null +++ b/handwritten/error-reporting/.kokoro/continuous/node6/common.cfg @@ -0,0 +1,24 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:6-user" +} +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-error-reporting/.kokoro/test.sh" +} diff --git a/handwritten/error-reporting/.kokoro/continuous/node6/test.cfg b/handwritten/error-reporting/.kokoro/continuous/node6/test.cfg new file mode 100644 index 00000000000..e69de29bb2d diff --git a/handwritten/error-reporting/.kokoro/continuous/node8/common.cfg b/handwritten/error-reporting/.kokoro/continuous/node8/common.cfg new file mode 100644 index 00000000000..a605e42f84e --- /dev/null +++ b/handwritten/error-reporting/.kokoro/continuous/node8/common.cfg @@ -0,0 +1,24 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:8-user" +} +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-error-reporting/.kokoro/test.sh" +} diff --git a/handwritten/error-reporting/.kokoro/continuous/node8/docs.cfg b/handwritten/error-reporting/.kokoro/continuous/node8/docs.cfg new file mode 100644 index 00000000000..6205bfd6827 --- /dev/null +++ b/handwritten/error-reporting/.kokoro/continuous/node8/docs.cfg @@ -0,0 +1,4 @@ +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-error-reporting/.kokoro/docs.sh" +} diff --git a/handwritten/error-reporting/.kokoro/continuous/node8/lint.cfg b/handwritten/error-reporting/.kokoro/continuous/node8/lint.cfg new file mode 100644 index 00000000000..1a6295c7bd4 --- /dev/null +++ b/handwritten/error-reporting/.kokoro/continuous/node8/lint.cfg @@ -0,0 +1,4 @@ +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-error-reporting/.kokoro/lint.sh" +} diff --git a/handwritten/error-reporting/.kokoro/continuous/node8/samples-test.cfg b/handwritten/error-reporting/.kokoro/continuous/node8/samples-test.cfg new file mode 100644 index 00000000000..6a1de8dfd17 --- /dev/null +++ b/handwritten/error-reporting/.kokoro/continuous/node8/samples-test.cfg @@ -0,0 +1,7 @@ +# Download resources for system tests (service account key, etc.) +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-error-reporting/.kokoro/samples-test.sh" +} diff --git a/handwritten/error-reporting/.kokoro/continuous/node8/system-test.cfg b/handwritten/error-reporting/.kokoro/continuous/node8/system-test.cfg new file mode 100644 index 00000000000..9551f136d7a --- /dev/null +++ b/handwritten/error-reporting/.kokoro/continuous/node8/system-test.cfg @@ -0,0 +1,7 @@ +# Download resources for system tests (service account key, etc.) +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-error-reporting/.kokoro/system-test.sh" +} diff --git a/handwritten/error-reporting/.kokoro/continuous/node8/test.cfg b/handwritten/error-reporting/.kokoro/continuous/node8/test.cfg new file mode 100644 index 00000000000..e69de29bb2d diff --git a/handwritten/error-reporting/.kokoro/docs.sh b/handwritten/error-reporting/.kokoro/docs.sh new file mode 100755 index 00000000000..3af3193411a --- /dev/null +++ b/handwritten/error-reporting/.kokoro/docs.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +# Copyright 2018 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -xeo pipefail + +export NPM_CONFIG_PREFIX=/home/node/.npm-global + +cd $(dirname $0)/.. + +npm install + +npm run docs diff --git a/handwritten/error-reporting/.kokoro/lint.sh b/handwritten/error-reporting/.kokoro/lint.sh new file mode 100755 index 00000000000..7c2ea2a28f9 --- /dev/null +++ b/handwritten/error-reporting/.kokoro/lint.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +# Copyright 2018 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -xeo pipefail + +export NPM_CONFIG_PREFIX=/home/node/.npm-global + +cd $(dirname $0)/.. + +npm install + +# Install and link samples +cd samples/ +npm link ../ +npm install +cd .. + +npm run lint diff --git a/handwritten/error-reporting/.kokoro/presubmit/node10/common.cfg b/handwritten/error-reporting/.kokoro/presubmit/node10/common.cfg new file mode 100644 index 00000000000..46a485cb122 --- /dev/null +++ b/handwritten/error-reporting/.kokoro/presubmit/node10/common.cfg @@ -0,0 +1,24 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" +} +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-error-reporting/.kokoro/test.sh" +} diff --git a/handwritten/error-reporting/.kokoro/presubmit/node10/test.cfg b/handwritten/error-reporting/.kokoro/presubmit/node10/test.cfg new file mode 100644 index 00000000000..e69de29bb2d diff --git a/handwritten/error-reporting/.kokoro/presubmit/node6/common.cfg b/handwritten/error-reporting/.kokoro/presubmit/node6/common.cfg new file mode 100644 index 00000000000..c13f0197a0c --- /dev/null +++ b/handwritten/error-reporting/.kokoro/presubmit/node6/common.cfg @@ -0,0 +1,24 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:6-user" +} +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-error-reporting/.kokoro/test.sh" +} diff --git a/handwritten/error-reporting/.kokoro/presubmit/node6/test.cfg b/handwritten/error-reporting/.kokoro/presubmit/node6/test.cfg new file mode 100644 index 00000000000..e69de29bb2d diff --git a/handwritten/error-reporting/.kokoro/presubmit/node8/common.cfg b/handwritten/error-reporting/.kokoro/presubmit/node8/common.cfg new file mode 100644 index 00000000000..a605e42f84e --- /dev/null +++ b/handwritten/error-reporting/.kokoro/presubmit/node8/common.cfg @@ -0,0 +1,24 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:8-user" +} +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-error-reporting/.kokoro/test.sh" +} diff --git a/handwritten/error-reporting/.kokoro/presubmit/node8/docs.cfg b/handwritten/error-reporting/.kokoro/presubmit/node8/docs.cfg new file mode 100644 index 00000000000..6205bfd6827 --- /dev/null +++ b/handwritten/error-reporting/.kokoro/presubmit/node8/docs.cfg @@ -0,0 +1,4 @@ +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-error-reporting/.kokoro/docs.sh" +} diff --git a/handwritten/error-reporting/.kokoro/presubmit/node8/lint.cfg b/handwritten/error-reporting/.kokoro/presubmit/node8/lint.cfg new file mode 100644 index 00000000000..1a6295c7bd4 --- /dev/null +++ b/handwritten/error-reporting/.kokoro/presubmit/node8/lint.cfg @@ -0,0 +1,4 @@ +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-error-reporting/.kokoro/lint.sh" +} diff --git a/handwritten/error-reporting/.kokoro/presubmit/node8/test.cfg b/handwritten/error-reporting/.kokoro/presubmit/node8/test.cfg new file mode 100644 index 00000000000..e69de29bb2d diff --git a/handwritten/error-reporting/.kokoro/presubmit/windows/common.cfg b/handwritten/error-reporting/.kokoro/presubmit/windows/common.cfg new file mode 100644 index 00000000000..7320db792a4 --- /dev/null +++ b/handwritten/error-reporting/.kokoro/presubmit/windows/common.cfg @@ -0,0 +1,9 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + diff --git a/handwritten/error-reporting/.kokoro/presubmit/windows/test.cfg b/handwritten/error-reporting/.kokoro/presubmit/windows/test.cfg new file mode 100644 index 00000000000..5167acf51c1 --- /dev/null +++ b/handwritten/error-reporting/.kokoro/presubmit/windows/test.cfg @@ -0,0 +1,2 @@ +# Use the test file directly +build_file: "nodejs-error-reporting/.kokoro/test.bat" diff --git a/handwritten/error-reporting/.kokoro/samples-test.sh b/handwritten/error-reporting/.kokoro/samples-test.sh new file mode 100755 index 00000000000..76edbbbb247 --- /dev/null +++ b/handwritten/error-reporting/.kokoro/samples-test.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +# Copyright 2018 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -xeo pipefail + +export NPM_CONFIG_PREFIX=/home/node/.npm-global + +# Setup service account credentials. +export GOOGLE_APPLICATION_CREDENTIALS=${KOKORO_GFILE_DIR}/service-account.json +export GCLOUD_PROJECT=long-door-651 + +cd $(dirname $0)/.. + +npm install + +# Install and link samples +cd samples/ +npm link ../ +npm install +cd .. + +npm run samples-test diff --git a/handwritten/error-reporting/.kokoro/system-test.sh b/handwritten/error-reporting/.kokoro/system-test.sh new file mode 100755 index 00000000000..a76c3ab4aed --- /dev/null +++ b/handwritten/error-reporting/.kokoro/system-test.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +# Copyright 2018 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -xeo pipefail + +export NPM_CONFIG_PREFIX=/home/node/.npm-global + +# Setup service account credentials. +export GOOGLE_APPLICATION_CREDENTIALS=${KOKORO_GFILE_DIR}/service-account.json + +cd $(dirname $0)/.. + +# Run a pre-test hook, if a pre-system-test.sh is in the project +if [ -f .kokoro/pre-system-test.sh ]; then + . .kokoro/pre-system-test.sh +fi + +npm install + +npm run system-test diff --git a/handwritten/error-reporting/.kokoro/test.bat b/handwritten/error-reporting/.kokoro/test.bat new file mode 100644 index 00000000000..a8534ba801c --- /dev/null +++ b/handwritten/error-reporting/.kokoro/test.bat @@ -0,0 +1,26 @@ +@rem Copyright 2018 gRPC authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem http://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. + +@echo "Starting Windows build" + +cd /d %~dp0 +cd .. + +call npm install || goto :error +call npm run test || goto :error + +goto :EOF + +:error +exit /b 1 diff --git a/handwritten/error-reporting/.kokoro/test.sh b/handwritten/error-reporting/.kokoro/test.sh new file mode 100755 index 00000000000..51f29589b19 --- /dev/null +++ b/handwritten/error-reporting/.kokoro/test.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +# Copyright 2018 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -xeo pipefail + +export NPM_CONFIG_PREFIX=/home/node/.npm-global + +cd $(dirname $0)/.. + +npm install +npm test +node_modules/.bin/codecov diff --git a/handwritten/error-reporting/.kokoro/trampoline.sh b/handwritten/error-reporting/.kokoro/trampoline.sh new file mode 100755 index 00000000000..87ffd2ca960 --- /dev/null +++ b/handwritten/error-reporting/.kokoro/trampoline.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -xeo pipefail + +# Always run the cleanup script, regardless of the success of bouncing into +# the container. +function cleanup() { + chmod +x ${KOKORO_GFILE_DIR}/trampoline_cleanup.sh + ${KOKORO_GFILE_DIR}/trampoline_cleanup.sh + echo "cleanup"; +} +trap cleanup EXIT + +python3 "${KOKORO_GFILE_DIR}/trampoline_v1.py" diff --git a/handwritten/error-reporting/synth.py b/handwritten/error-reporting/synth.py new file mode 100644 index 00000000000..be345236f2d --- /dev/null +++ b/handwritten/error-reporting/synth.py @@ -0,0 +1,22 @@ +# Copyright 2018 Google LLC. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import synthtool as s +import synthtool.gcp as gcp +import logging + +logging.basicConfig(level=logging.DEBUG) +common_templates = gcp.CommonTemplates() +templates = common_templates.node_library() +s.copy(templates) From a77735af53f09548dc5b54d3789db5a6feabf624 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Thu, 6 Sep 2018 06:52:59 -0700 Subject: [PATCH 155/527] fix(deps): update dependency @google-cloud/common to ^0.24.0 (#206) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 70e82e54024..861a6cc39e4 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -54,7 +54,7 @@ "license-check": "jsgl --local ." }, "dependencies": { - "@google-cloud/common": "^0.23.0", + "@google-cloud/common": "^0.24.0", "console-log-level": "^1.4.0", "is": "^3.2.1", "lodash.has": "^4.5.2", From 43969dff2c5c90e398754377991110115a069fa5 Mon Sep 17 00:00:00 2001 From: DPE bot Date: Mon, 10 Sep 2018 08:09:42 -0700 Subject: [PATCH 156/527] Update CI config (#207) --- handwritten/error-reporting/.kokoro/system-test.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/handwritten/error-reporting/.kokoro/system-test.sh b/handwritten/error-reporting/.kokoro/system-test.sh index a76c3ab4aed..a954b79429d 100755 --- a/handwritten/error-reporting/.kokoro/system-test.sh +++ b/handwritten/error-reporting/.kokoro/system-test.sh @@ -20,6 +20,7 @@ export NPM_CONFIG_PREFIX=/home/node/.npm-global # Setup service account credentials. export GOOGLE_APPLICATION_CREDENTIALS=${KOKORO_GFILE_DIR}/service-account.json +export GCLOUD_PROJECT=long-door-651 cd $(dirname $0)/.. From 2c97b40fdddd7c7daa0e1bf923eb454bc60e7c2a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Sat, 15 Sep 2018 07:27:39 -0700 Subject: [PATCH 157/527] chore(deps): update dependency nock to v10 (#208) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 861a6cc39e4..a4a0d09b364 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -122,7 +122,7 @@ "lodash.without": "^4.4.0", "mocha": "^5.1.1", "ncp": "^2.0.0", - "nock": "^9.2.6", + "nock": "^10.0.0", "nyc": "^13.0.0", "once": "^1.4.0", "pify": "^4.0.0", From 7e5d450036caa8d932005480e8265d7d60dd54be Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Tue, 18 Sep 2018 06:55:54 -0700 Subject: [PATCH 158/527] fix(deps): update dependency @google-cloud/common to ^0.25.0 (#210) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index a4a0d09b364..a7ab9f50d87 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -54,7 +54,7 @@ "license-check": "jsgl --local ." }, "dependencies": { - "@google-cloud/common": "^0.24.0", + "@google-cloud/common": "^0.25.0", "console-log-level": "^1.4.0", "is": "^3.2.1", "lodash.has": "^4.5.2", From 4fb702cbd49405b21b7c2c912ca2c1ea06a4570a Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Tue, 18 Sep 2018 10:50:49 -0700 Subject: [PATCH 159/527] Enable no-var in eslint (#209) --- handwritten/error-reporting/.eslintrc.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/handwritten/error-reporting/.eslintrc.yml b/handwritten/error-reporting/.eslintrc.yml index bed57fbc42c..65f1dce6c0c 100644 --- a/handwritten/error-reporting/.eslintrc.yml +++ b/handwritten/error-reporting/.eslintrc.yml @@ -11,3 +11,4 @@ rules: block-scoped-var: error eqeqeq: error no-warning-comments: warn + no-var: error From cc79f750376a25ceac711e703a3aed0bbe13f583 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Thu, 20 Sep 2018 08:16:27 -0700 Subject: [PATCH 160/527] chore(deps): update dependency @types/glob to v7 (#212) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index a7ab9f50d87..83c18d192cc 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -67,7 +67,7 @@ "@types/express": "^4.11.1", "@types/express-serve-static-core": "^4.11.1", "@types/extend": "^3.0.0", - "@types/glob": "^5.0.35", + "@types/glob": "^7.0.0", "@types/hapi": "^17.0.12", "@types/is": "0.0.20", "@types/json-stable-stringify": "^1.0.32", From 6080993e6030c0137b4d7efae595f74382d4972b Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Thu, 20 Sep 2018 12:32:11 -0700 Subject: [PATCH 161/527] Enable prefer-const in the eslint config (#211) --- handwritten/error-reporting/.eslintrc.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/handwritten/error-reporting/.eslintrc.yml b/handwritten/error-reporting/.eslintrc.yml index 65f1dce6c0c..73eeec27612 100644 --- a/handwritten/error-reporting/.eslintrc.yml +++ b/handwritten/error-reporting/.eslintrc.yml @@ -12,3 +12,4 @@ rules: eqeqeq: error no-warning-comments: warn no-var: error + prefer-const: error From f91e9d118a0163e5aa94093ddaafdce2c46f71cb Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Mon, 24 Sep 2018 17:00:09 -0700 Subject: [PATCH 162/527] test: remove appveyor config (#215) --- handwritten/error-reporting/.appveyor.yml | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 handwritten/error-reporting/.appveyor.yml diff --git a/handwritten/error-reporting/.appveyor.yml b/handwritten/error-reporting/.appveyor.yml deleted file mode 100644 index 24082152655..00000000000 --- a/handwritten/error-reporting/.appveyor.yml +++ /dev/null @@ -1,20 +0,0 @@ -environment: - matrix: - - nodejs_version: 8 - -install: - - ps: Install-Product node $env:nodejs_version - - npm install -g npm # Force using the latest npm to get dedupe during install - - set PATH=%APPDATA%\npm;%PATH% - - npm install --force --ignore-scripts - -test_script: - - node --version - - npm --version - - npm rebuild - - npm test - -build: off - -matrix: - fast_finish: true From 0b06a42dae2cc5e3fb4317e50139a38d2f170914 Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Thu, 27 Sep 2018 12:05:39 -0700 Subject: [PATCH 163/527] Don't publish sourcemaps (#217) --- handwritten/error-reporting/package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 83c18d192cc..25b78b1f07b 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -16,7 +16,8 @@ ] }, "files": [ - "build/src" + "build/src", + "!build/src/**/*.map" ], "contributors": [ "Ace Nassri ", From bbc09abbd52247700d4c0b8d76db06f81c14f6ac Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Mon, 1 Oct 2018 05:02:20 -0700 Subject: [PATCH 164/527] chore(deps): update dependency eslint-plugin-prettier to v3 (#219) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 25b78b1f07b..fc8cfc90d5b 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -100,7 +100,7 @@ "eslint": "^5.0.0", "eslint-config-prettier": "^3.0.0", "eslint-plugin-node": "^7.0.0", - "eslint-plugin-prettier": "^2.6.0", + "eslint-plugin-prettier": "^3.0.0", "express": "^4.16.3", "express-serve-static-core": "^0.1.1", "extend": "^3.0.1", From a2cf21bc2579dc27b7868069f34e792b25494e58 Mon Sep 17 00:00:00 2001 From: DPE bot Date: Tue, 2 Oct 2018 08:21:54 -0700 Subject: [PATCH 165/527] Update kokoro config (#220) --- handwritten/error-reporting/.circleci/config.yml | 2 -- .../error-reporting/.circleci/npm-install-retry.js | 2 +- handwritten/error-reporting/.kokoro/common.cfg | 11 +++++++++++ .../.kokoro/presubmit/node8/samples-test.cfg | 7 +++++++ .../.kokoro/presubmit/node8/system-test.cfg | 7 +++++++ handwritten/error-reporting/.kokoro/samples-test.sh | 7 +++++++ handwritten/error-reporting/.kokoro/system-test.sh | 2 ++ handwritten/error-reporting/.kokoro/test.bat | 2 ++ handwritten/error-reporting/.kokoro/test.sh | 3 ++- handwritten/error-reporting/codecov.yaml | 4 ++++ 10 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 handwritten/error-reporting/.kokoro/presubmit/node8/samples-test.cfg create mode 100644 handwritten/error-reporting/.kokoro/presubmit/node8/system-test.cfg create mode 100644 handwritten/error-reporting/codecov.yaml diff --git a/handwritten/error-reporting/.circleci/config.yml b/handwritten/error-reporting/.circleci/config.yml index 8af6a4d0489..da54155fc57 100644 --- a/handwritten/error-reporting/.circleci/config.yml +++ b/handwritten/error-reporting/.circleci/config.yml @@ -68,8 +68,6 @@ jobs: environment: NPM_CONFIG_PREFIX: /home/node/.npm-global - run: npm test - - run: node_modules/.bin/codecov - node8: docker: - image: 'node:8' diff --git a/handwritten/error-reporting/.circleci/npm-install-retry.js b/handwritten/error-reporting/.circleci/npm-install-retry.js index ae3220d7348..3240aa2cbf2 100755 --- a/handwritten/error-reporting/.circleci/npm-install-retry.js +++ b/handwritten/error-reporting/.circleci/npm-install-retry.js @@ -6,7 +6,7 @@ let spawn = require('child_process').spawn; //USE: ./index.js [... NPM ARGS] // -let timeout = process.argv[2] || 60000; +let timeout = process.argv[2] || process.env.NPM_INSTALL_TIMEOUT || 60000; let attempts = process.argv[3] || 3; let args = process.argv.slice(4); if (args.length === 0) { diff --git a/handwritten/error-reporting/.kokoro/common.cfg b/handwritten/error-reporting/.kokoro/common.cfg index 46a485cb122..e439e14ec5f 100644 --- a/handwritten/error-reporting/.kokoro/common.cfg +++ b/handwritten/error-reporting/.kokoro/common.cfg @@ -13,6 +13,17 @@ gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" +# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "dpebot_codecov_token" + backend_type: FASTCONFIGPUSH + } + } +} + # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" diff --git a/handwritten/error-reporting/.kokoro/presubmit/node8/samples-test.cfg b/handwritten/error-reporting/.kokoro/presubmit/node8/samples-test.cfg new file mode 100644 index 00000000000..6a1de8dfd17 --- /dev/null +++ b/handwritten/error-reporting/.kokoro/presubmit/node8/samples-test.cfg @@ -0,0 +1,7 @@ +# Download resources for system tests (service account key, etc.) +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-error-reporting/.kokoro/samples-test.sh" +} diff --git a/handwritten/error-reporting/.kokoro/presubmit/node8/system-test.cfg b/handwritten/error-reporting/.kokoro/presubmit/node8/system-test.cfg new file mode 100644 index 00000000000..9551f136d7a --- /dev/null +++ b/handwritten/error-reporting/.kokoro/presubmit/node8/system-test.cfg @@ -0,0 +1,7 @@ +# Download resources for system tests (service account key, etc.) +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-error-reporting/.kokoro/system-test.sh" +} diff --git a/handwritten/error-reporting/.kokoro/samples-test.sh b/handwritten/error-reporting/.kokoro/samples-test.sh index 76edbbbb247..5a81ec01fcc 100755 --- a/handwritten/error-reporting/.kokoro/samples-test.sh +++ b/handwritten/error-reporting/.kokoro/samples-test.sh @@ -24,6 +24,13 @@ export GCLOUD_PROJECT=long-door-651 cd $(dirname $0)/.. +# Run a pre-test hook, if a pre-samples-test.sh is in the project +if [ -f .kokoro/pre-samples-test.sh ]; then + set +x + . .kokoro/pre-samples-test.sh + set -x +fi + npm install # Install and link samples diff --git a/handwritten/error-reporting/.kokoro/system-test.sh b/handwritten/error-reporting/.kokoro/system-test.sh index a954b79429d..fd8f0b638d0 100755 --- a/handwritten/error-reporting/.kokoro/system-test.sh +++ b/handwritten/error-reporting/.kokoro/system-test.sh @@ -26,7 +26,9 @@ cd $(dirname $0)/.. # Run a pre-test hook, if a pre-system-test.sh is in the project if [ -f .kokoro/pre-system-test.sh ]; then + set +x . .kokoro/pre-system-test.sh + set -x fi npm install diff --git a/handwritten/error-reporting/.kokoro/test.bat b/handwritten/error-reporting/.kokoro/test.bat index a8534ba801c..d60473666b0 100644 --- a/handwritten/error-reporting/.kokoro/test.bat +++ b/handwritten/error-reporting/.kokoro/test.bat @@ -17,6 +17,8 @@ cd /d %~dp0 cd .. +call npm install -g npm@5 || goto :error + call npm install || goto :error call npm run test || goto :error diff --git a/handwritten/error-reporting/.kokoro/test.sh b/handwritten/error-reporting/.kokoro/test.sh index 51f29589b19..eb25b89b95e 100755 --- a/handwritten/error-reporting/.kokoro/test.sh +++ b/handwritten/error-reporting/.kokoro/test.sh @@ -22,4 +22,5 @@ cd $(dirname $0)/.. npm install npm test -node_modules/.bin/codecov + +bash $KOKORO_GFILE_DIR/codecov.sh diff --git a/handwritten/error-reporting/codecov.yaml b/handwritten/error-reporting/codecov.yaml new file mode 100644 index 00000000000..5724ea9478d --- /dev/null +++ b/handwritten/error-reporting/codecov.yaml @@ -0,0 +1,4 @@ +--- +codecov: + ci: + - source.cloud.google.com From a57b0d48929fb5afffd8a3bb1e442b7f40f220f8 Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Mon, 15 Oct 2018 14:42:53 -0700 Subject: [PATCH 166/527] build: fix codecov uploading on Kokoro (#224) * build: fix codecov uploading on Kokoro * build: fix codecov uploading on Kokoro --- handwritten/error-reporting/.kokoro/common.cfg | 11 ----------- .../error-reporting/.kokoro/presubmit/node8/test.cfg | 9 +++++++++ 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/handwritten/error-reporting/.kokoro/common.cfg b/handwritten/error-reporting/.kokoro/common.cfg index e439e14ec5f..46a485cb122 100644 --- a/handwritten/error-reporting/.kokoro/common.cfg +++ b/handwritten/error-reporting/.kokoro/common.cfg @@ -13,17 +13,6 @@ gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" -# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "dpebot_codecov_token" - backend_type: FASTCONFIGPUSH - } - } -} - # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" diff --git a/handwritten/error-reporting/.kokoro/presubmit/node8/test.cfg b/handwritten/error-reporting/.kokoro/presubmit/node8/test.cfg index e69de29bb2d..468b8c7197a 100644 --- a/handwritten/error-reporting/.kokoro/presubmit/node8/test.cfg +++ b/handwritten/error-reporting/.kokoro/presubmit/node8/test.cfg @@ -0,0 +1,9 @@ +# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "dpebot_codecov_token" + } + } +} From 32d1e9002e25858d3f9872a6daa9992864f99061 Mon Sep 17 00:00:00 2001 From: DPE bot Date: Sat, 20 Oct 2018 12:52:31 -0700 Subject: [PATCH 167/527] chore: update new issue template (#227) chore: update new issue template --- .../error-reporting/.github/bug_report.md | 33 +++++++++++++++++++ .../.github/feature_request.md | 18 ++++++++++ .../.github/support_request.md | 7 ++++ 3 files changed, 58 insertions(+) create mode 100644 handwritten/error-reporting/.github/bug_report.md create mode 100644 handwritten/error-reporting/.github/feature_request.md create mode 100644 handwritten/error-reporting/.github/support_request.md diff --git a/handwritten/error-reporting/.github/bug_report.md b/handwritten/error-reporting/.github/bug_report.md new file mode 100644 index 00000000000..55691a8b7cc --- /dev/null +++ b/handwritten/error-reporting/.github/bug_report.md @@ -0,0 +1,33 @@ +--- +name: Bug report +about: Create a report to help us improve + +--- + +Thanks for stopping by to let us know something could be better! + +**PLEASE READ**: If you have a support contract with Google, please create an issue in the [support console](https://cloud.google.com/support/) instead of filing on GitHub. This will ensure a timely response. + +Please run down the following list and make sure you've tried the usual "quick fixes": + + - Search the issues already opened: https://github.com/googleapis/nodejs-error-reporting/issues + - Search the issues on our "catch-all" repository: https://github.com/googleapis/google-cloud-node + - Search StackOverflow: http://stackoverflow.com/questions/tagged/google-cloud-platform+node.js + +If you are still having issues, please be sure to include as much information as possible: + +#### Environment details + + - OS: + - Node.js version: + - npm version: + - `@google-cloud/error-reporting` version: + +#### Steps to reproduce + + 1. ? + 2. ? + +Making sure to follow these steps will guarantee the quickest resolution possible. + +Thanks! diff --git a/handwritten/error-reporting/.github/feature_request.md b/handwritten/error-reporting/.github/feature_request.md new file mode 100644 index 00000000000..6365857f33c --- /dev/null +++ b/handwritten/error-reporting/.github/feature_request.md @@ -0,0 +1,18 @@ +--- +name: Feature request +about: Suggest an idea for this library + +--- + +Thanks for stopping by to let us know something could be better! + +**PLEASE READ**: If you have a support contract with Google, please create an issue in the [support console](https://cloud.google.com/support/) instead of filing on GitHub. This will ensure a timely response. + + **Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + **Describe the solution you'd like** +A clear and concise description of what you want to happen. + **Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + **Additional context** +Add any other context or screenshots about the feature request here. diff --git a/handwritten/error-reporting/.github/support_request.md b/handwritten/error-reporting/.github/support_request.md new file mode 100644 index 00000000000..99586903212 --- /dev/null +++ b/handwritten/error-reporting/.github/support_request.md @@ -0,0 +1,7 @@ +--- +name: Support request +about: If you have a support contract with Google, please create an issue in the Google Cloud Support console. + +--- + +**PLEASE READ**: If you have a support contract with Google, please create an issue in the [support console](https://cloud.google.com/support/) instead of filing on GitHub. This will ensure a timely response. From 83d0d8f2cc6da4cc23fa9e8c608d193d8354932e Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Mon, 22 Oct 2018 11:26:45 -0700 Subject: [PATCH 168/527] chores(build): run codecov on continuous builds (#228) --- .../error-reporting/.kokoro/continuous/node8/test.cfg | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/handwritten/error-reporting/.kokoro/continuous/node8/test.cfg b/handwritten/error-reporting/.kokoro/continuous/node8/test.cfg index e69de29bb2d..468b8c7197a 100644 --- a/handwritten/error-reporting/.kokoro/continuous/node8/test.cfg +++ b/handwritten/error-reporting/.kokoro/continuous/node8/test.cfg @@ -0,0 +1,9 @@ +# Bring in codecov.io master token into the build as $KOKORO_KEYSTORE_DIR/73713_dpebot_codecov_token +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "dpebot_codecov_token" + } + } +} From 188d2623c48baeec7b09030032bac2f274bfa48f Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Mon, 22 Oct 2018 16:02:29 -0700 Subject: [PATCH 169/527] chore: update nock path in system tests (#216) The updated path and the following environment variables ``` GCLOUD_TESTS_PROJECT_ID GCLOUD_PROJECT GCLOUD_TESTS_API_KEY GCLOUD_TESTS_PROJECT_NUMBER GCLOUD_TESTS_KEY GOOGLE_APPLICATION_CREDENTIALS ``` are needed for the systems tests to pass. --- .../.kokoro/pre-system-test.sh | 24 +++++++++++++++++++ handwritten/error-reporting/package.json | 14 +++++------ .../system-test/error-reporting.ts | 2 +- .../test/unit/request-extractors/express.ts | 2 +- 4 files changed, 32 insertions(+), 10 deletions(-) create mode 100755 handwritten/error-reporting/.kokoro/pre-system-test.sh diff --git a/handwritten/error-reporting/.kokoro/pre-system-test.sh b/handwritten/error-reporting/.kokoro/pre-system-test.sh new file mode 100755 index 00000000000..24f496cb724 --- /dev/null +++ b/handwritten/error-reporting/.kokoro/pre-system-test.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# Copyright 2018 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set +x + +export GCLOUD_TESTS_PROJECT_ID='long-door-651' +export GCLOUD_TESTS_PROJECT_NUMBER='1046198160504' +export GCLOUD_TESTS_KEY=$GOOGLE_APPLICATION_CREDENTIALS +export GCLOUD_TESTS_API_KEY=$(cat $KOKORO_GFILE_DIR/error-reporting-GCLOUD_TESTS_API_KEY) + +set -x diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index fc8cfc90d5b..220bc88ad79 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -37,11 +37,11 @@ "lint": "eslint samples/ && gts check && jsgl --local .", "prettier": "prettier --write samples/*.js samples/*/*.js", "presystem-test": "npm run compile", - "system-test": "nyc --exclude=\"error-message.js\" mocha build/system-test", - "cover": "nyc --exclude=\"fuzzer.js\" --reporter=lcov mocha build/test/unit build/test/unit/**/ && nyc report", + "system-test": "nyc --exclude=\"error-message.js\" mocha build/system-test/**/*.js", + "cover": "nyc --exclude=\"fuzzer.js\" --reporter=lcov mocha build/test/unit/**/*.js && nyc report", "presamples-test": "npm run compile", "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", - "test-no-cover": "mocha build/test/unit build/test/unit/**/ --timeout 20000", + "test-no-cover": "mocha build/test/unit/**/*.js --timeout 20000", "test-only": "npm run cover", "test": "npm run test-only", "check": "gts check", @@ -66,7 +66,6 @@ "@types/boom": "^7.2.0", "@types/console-log-level": "^1.4.0", "@types/express": "^4.11.1", - "@types/express-serve-static-core": "^4.11.1", "@types/extend": "^3.0.0", "@types/glob": "^7.0.0", "@types/hapi": "^17.0.12", @@ -102,7 +101,6 @@ "eslint-plugin-node": "^7.0.0", "eslint-plugin-prettier": "^3.0.0", "express": "^4.16.3", - "express-serve-static-core": "^0.1.1", "extend": "^3.0.1", "glob": "^7.1.2", "gts": "^0.8.0", @@ -121,10 +119,10 @@ "lodash.pick": "^4.4.0", "lodash.random": "^3.2.0", "lodash.without": "^4.4.0", - "mocha": "^5.1.1", + "mocha": "^5.2.0", "ncp": "^2.0.0", "nock": "^10.0.0", - "nyc": "^13.0.0", + "nyc": "^13.0.1", "once": "^1.4.0", "pify": "^4.0.0", "post-install-check": "0.0.1", @@ -133,7 +131,7 @@ "proxyquire": "^2.0.1", "restify": "^7.2.0", "rimraf": "^2.6.2", - "source-map-support": "^0.5.6", + "source-map-support": "^0.5.9", "tmp": "0.0.33", "typescript": "~3.0.0" } diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index 92190a2d74d..f355ac856d0 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -157,7 +157,7 @@ describe('Request/Response lifecycle mocking', () => { 'https://clouderrorreporting.googleapis.com/v1beta1/projects/' + process.env.GCLOUD_PROJECT) .persist() - .post('/events:report'); + .post('/events:report?'); logger = createLogger({logLevel: 5}); client = new RequestHandler( new Configuration({ignoreEnvironmentCheck: true}, logger), logger); diff --git a/handwritten/error-reporting/test/unit/request-extractors/express.ts b/handwritten/error-reporting/test/unit/request-extractors/express.ts index daf70507288..e11c4c7ee6a 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/express.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/express.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import {Response} from 'express-serve-static-core'; +import {Response} from 'express'; import * as extend from 'extend'; import {expressRequestInformationExtractor} from '../../../src/request-extractors/express'; From 7d9ac44df7ce1c653f68aae928ca7c679129e219 Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Mon, 22 Oct 2018 16:43:21 -0700 Subject: [PATCH 170/527] chores(build): do not collect sponge.xml from windows builds (#229) --- .../error-reporting/.kokoro/presubmit/windows/common.cfg | 7 ------- 1 file changed, 7 deletions(-) diff --git a/handwritten/error-reporting/.kokoro/presubmit/windows/common.cfg b/handwritten/error-reporting/.kokoro/presubmit/windows/common.cfg index 7320db792a4..d6e25e0b1b8 100644 --- a/handwritten/error-reporting/.kokoro/presubmit/windows/common.cfg +++ b/handwritten/error-reporting/.kokoro/presubmit/windows/common.cfg @@ -1,9 +1,2 @@ # Format: //devtools/kokoro/config/proto/build.proto -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - } -} - From 2225f001ffda70774b1d404afb73fd071371d9d3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Tue, 23 Oct 2018 10:43:23 -0700 Subject: [PATCH 171/527] chore(deps): update dependency typescript to ~3.1.0 (#218) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 220bc88ad79..ad564a5dade 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -133,6 +133,6 @@ "rimraf": "^2.6.2", "source-map-support": "^0.5.9", "tmp": "0.0.33", - "typescript": "~3.0.0" + "typescript": "~3.1.0" } } From 0e588b30b18bdc31fcf5ef114d372701e7d411e5 Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Tue, 23 Oct 2018 20:04:37 -0700 Subject: [PATCH 172/527] build: run tests on node11 (#231) * build: run tests on node11 * build: run tests on node11 * build: run tests on node11 * build: run tests on node11 --- .../.kokoro/continuous/node11/common.cfg | 24 +++++++++++++++++++ .../.kokoro/continuous/node11/test.cfg | 0 .../.kokoro/presubmit/node11/common.cfg | 24 +++++++++++++++++++ .../.kokoro/presubmit/node11/test.cfg | 0 4 files changed, 48 insertions(+) create mode 100644 handwritten/error-reporting/.kokoro/continuous/node11/common.cfg create mode 100644 handwritten/error-reporting/.kokoro/continuous/node11/test.cfg create mode 100644 handwritten/error-reporting/.kokoro/presubmit/node11/common.cfg create mode 100644 handwritten/error-reporting/.kokoro/presubmit/node11/test.cfg diff --git a/handwritten/error-reporting/.kokoro/continuous/node11/common.cfg b/handwritten/error-reporting/.kokoro/continuous/node11/common.cfg new file mode 100644 index 00000000000..9e5d6ef820a --- /dev/null +++ b/handwritten/error-reporting/.kokoro/continuous/node11/common.cfg @@ -0,0 +1,24 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:11-user" +} +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-error-reporting/.kokoro/test.sh" +} diff --git a/handwritten/error-reporting/.kokoro/continuous/node11/test.cfg b/handwritten/error-reporting/.kokoro/continuous/node11/test.cfg new file mode 100644 index 00000000000..e69de29bb2d diff --git a/handwritten/error-reporting/.kokoro/presubmit/node11/common.cfg b/handwritten/error-reporting/.kokoro/presubmit/node11/common.cfg new file mode 100644 index 00000000000..9e5d6ef820a --- /dev/null +++ b/handwritten/error-reporting/.kokoro/presubmit/node11/common.cfg @@ -0,0 +1,24 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:11-user" +} +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-error-reporting/.kokoro/test.sh" +} diff --git a/handwritten/error-reporting/.kokoro/presubmit/node11/test.cfg b/handwritten/error-reporting/.kokoro/presubmit/node11/test.cfg new file mode 100644 index 00000000000..e69de29bb2d From ed41fb9a4c2b076c48ae94766851cda7992f38eb Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Wed, 24 Oct 2018 13:31:47 -0700 Subject: [PATCH 173/527] chore: remove old issue template (#232) --- .../error-reporting/.github/ISSUE_TEMPLATE.md | 27 ------------------- 1 file changed, 27 deletions(-) delete mode 100644 handwritten/error-reporting/.github/ISSUE_TEMPLATE.md diff --git a/handwritten/error-reporting/.github/ISSUE_TEMPLATE.md b/handwritten/error-reporting/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 4d5a2050d3e..00000000000 --- a/handwritten/error-reporting/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,27 +0,0 @@ -Thanks for stopping by to let us know something could be better! - -Please run down the following list and make sure you've tried the usual "quick -fixes": - - - Search the issues already opened: https://github.com/googleapis/nodejs-error-reporting/issues - - Search the issues on our "catch-all" repository: https://github.com/GoogleCloudPlatform/google-cloud-node - - Search StackOverflow: http://stackoverflow.com/questions/tagged/google-cloud-platform+node.js - -If you are still having issues, please be sure to include as much information as -possible: - -#### Environment details - - - OS: - - Node.js version: - - npm version: - - `@google-cloud/error-reporting` version: - -#### Steps to reproduce - - 1. ??? - 2. ??? - -Following these steps will guarantee the quickest resolution possible. - -Thanks! From 521053789ec8f5ac33eb7723f9199cd761712c38 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Thu, 25 Oct 2018 11:33:45 -0700 Subject: [PATCH 174/527] chore: update issue templates (#234) --- .../error-reporting/.github/{ => ISSUE_TEMPLATE}/bug_report.md | 0 .../.github/{ => ISSUE_TEMPLATE}/feature_request.md | 0 .../.github/{ => ISSUE_TEMPLATE}/support_request.md | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename handwritten/error-reporting/.github/{ => ISSUE_TEMPLATE}/bug_report.md (100%) rename handwritten/error-reporting/.github/{ => ISSUE_TEMPLATE}/feature_request.md (100%) rename handwritten/error-reporting/.github/{ => ISSUE_TEMPLATE}/support_request.md (100%) diff --git a/handwritten/error-reporting/.github/bug_report.md b/handwritten/error-reporting/.github/ISSUE_TEMPLATE/bug_report.md similarity index 100% rename from handwritten/error-reporting/.github/bug_report.md rename to handwritten/error-reporting/.github/ISSUE_TEMPLATE/bug_report.md diff --git a/handwritten/error-reporting/.github/feature_request.md b/handwritten/error-reporting/.github/ISSUE_TEMPLATE/feature_request.md similarity index 100% rename from handwritten/error-reporting/.github/feature_request.md rename to handwritten/error-reporting/.github/ISSUE_TEMPLATE/feature_request.md diff --git a/handwritten/error-reporting/.github/support_request.md b/handwritten/error-reporting/.github/ISSUE_TEMPLATE/support_request.md similarity index 100% rename from handwritten/error-reporting/.github/support_request.md rename to handwritten/error-reporting/.github/ISSUE_TEMPLATE/support_request.md From aca2b2b2a1c11de61d37e3f9054207d54e987bc7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Sun, 28 Oct 2018 08:34:05 -0700 Subject: [PATCH 175/527] chore(deps): update dependency eslint-plugin-node to v8 (#235) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index ad564a5dade..b5a6a02898f 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -98,7 +98,7 @@ "cpy-cli": "^2.0.0", "eslint": "^5.0.0", "eslint-config-prettier": "^3.0.0", - "eslint-plugin-node": "^7.0.0", + "eslint-plugin-node": "^8.0.0", "eslint-plugin-prettier": "^3.0.0", "express": "^4.16.3", "extend": "^3.0.1", From 07f9b76136d199f3b189bfb5d8712bb315007bff Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Tue, 30 Oct 2018 10:00:38 -0700 Subject: [PATCH 176/527] chore: include build in eslintignore (#241) --- handwritten/error-reporting/.eslintignore | 1 + 1 file changed, 1 insertion(+) diff --git a/handwritten/error-reporting/.eslintignore b/handwritten/error-reporting/.eslintignore index f6fac98b0a8..f08b0fd1c65 100644 --- a/handwritten/error-reporting/.eslintignore +++ b/handwritten/error-reporting/.eslintignore @@ -1,3 +1,4 @@ node_modules/* samples/node_modules/* src/**/doc/* +build/ From 76fe4c6634a9c93e9d21b9df0d4575902405fdce Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Thu, 1 Nov 2018 12:03:02 -0700 Subject: [PATCH 177/527] chore: update CircleCI config (#244) --- handwritten/error-reporting/.circleci/config.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/.circleci/config.yml b/handwritten/error-reporting/.circleci/config.yml index da54155fc57..6735ebdaaa1 100644 --- a/handwritten/error-reporting/.circleci/config.yml +++ b/handwritten/error-reporting/.circleci/config.yml @@ -159,7 +159,8 @@ jobs: command: npm run system-test environment: GCLOUD_PROJECT: long-door-651 - GOOGLE_APPLICATION_CREDENTIALS: .circleci/key.json + GOOGLE_APPLICATION_CREDENTIALS: /home/node/project/.circleci/key.json + NPM_CONFIG_PREFIX: /home/node/.npm-global - run: name: Remove unencrypted key. command: | From 4b1c846a19492c2e4e88a11f58015961d57a0bd6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Thu, 1 Nov 2018 13:22:01 -0700 Subject: [PATCH 178/527] fix(deps): update dependency @google-cloud/common to ^0.26.0 (#230) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index b5a6a02898f..9c25788c648 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -55,7 +55,7 @@ "license-check": "jsgl --local ." }, "dependencies": { - "@google-cloud/common": "^0.25.0", + "@google-cloud/common": "^0.26.0", "console-log-level": "^1.4.0", "is": "^3.2.1", "lodash.has": "^4.5.2", From 4adfeb6e1ff6c22ee4061791e0ff63fea881eef5 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Thu, 1 Nov 2018 14:41:17 -0700 Subject: [PATCH 179/527] chore: increase system test timeout (#245) --- handwritten/error-reporting/system-test/error-reporting.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index f355ac856d0..f685c603b3a 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -34,7 +34,7 @@ import * as util from 'util'; import * as path from 'path'; const ERR_TOKEN = '_@google_STACKDRIVER_INTEGRATION_TEST_ERROR__'; -const TIMEOUT = 30000; +const TIMEOUT = 60000; const envKeys = [ 'GOOGLE_APPLICATION_CREDENTIALS', @@ -411,7 +411,7 @@ describe('Error Reporting API', () => { ].forEach(testCase => { it(`should return an expected message ${testCase.name}`, function(this, done) { - this.timeout(30000); + this.timeout(60000); const API = 'https://clouderrorreporting.googleapis.com/v1beta1'; const key = testCase.getKey(); request.post( From ae783e70c7fb586040c1f74ce159ae33863e808a Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Wed, 7 Nov 2018 13:52:35 -0800 Subject: [PATCH 180/527] chore: use latest npm on Windows (#246) --- handwritten/error-reporting/.kokoro/test.bat | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/.kokoro/test.bat b/handwritten/error-reporting/.kokoro/test.bat index d60473666b0..767320757e0 100644 --- a/handwritten/error-reporting/.kokoro/test.bat +++ b/handwritten/error-reporting/.kokoro/test.bat @@ -1,4 +1,4 @@ -@rem Copyright 2018 gRPC authors. +@rem Copyright 2018 Google LLC. All rights reserved. @rem @rem Licensed under the Apache License, Version 2.0 (the "License"); @rem you may not use this file except in compliance with the License. @@ -17,8 +17,7 @@ cd /d %~dp0 cd .. -call npm install -g npm@5 || goto :error - +call npm install -g npm@latest || goto :error call npm install || goto :error call npm run test || goto :error From a467c51e0f6c74db186b0fd63085fec6bd22ce8a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Thu, 8 Nov 2018 08:38:23 -0800 Subject: [PATCH 181/527] chore(deps): update dependency @types/is to v0.0.21 (#247) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 9c25788c648..6af4eca3011 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -69,7 +69,7 @@ "@types/extend": "^3.0.0", "@types/glob": "^7.0.0", "@types/hapi": "^17.0.12", - "@types/is": "0.0.20", + "@types/is": "0.0.21", "@types/json-stable-stringify": "^1.0.32", "@types/koa": "^2.0.45", "@types/lodash.assign": "^4.2.3", From cd5cd5690139cb6be44e85ff97d3bcdd7e79e105 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Fri, 9 Nov 2018 10:00:33 -0800 Subject: [PATCH 182/527] chore: drop contributors from multiple places (#249) --- handwritten/error-reporting/.mailmap | 5 ----- handwritten/error-reporting/CONTRIBUTORS | 15 --------------- handwritten/error-reporting/package.json | 12 ------------ 3 files changed, 32 deletions(-) delete mode 100644 handwritten/error-reporting/.mailmap delete mode 100644 handwritten/error-reporting/CONTRIBUTORS diff --git a/handwritten/error-reporting/.mailmap b/handwritten/error-reporting/.mailmap deleted file mode 100644 index 480e8418a06..00000000000 --- a/handwritten/error-reporting/.mailmap +++ /dev/null @@ -1,5 +0,0 @@ -Jason Dobry Jason Dobry -Jason Dobry Jason Dobry -Luke Sneeringer Luke Sneeringer -Stephen Sawchuk Stephen Sawchuk -Stephen Sawchuk Stephen Sawchuk diff --git a/handwritten/error-reporting/CONTRIBUTORS b/handwritten/error-reporting/CONTRIBUTORS deleted file mode 100644 index 87859d44351..00000000000 --- a/handwritten/error-reporting/CONTRIBUTORS +++ /dev/null @@ -1,15 +0,0 @@ -# The names of individuals who have contributed to this project. -# -# Names are formatted as: -# name -# -Ace Nassri -Ali Ijaz Sheikh -Cristian Cavalli -Dominic Kramer -Eric Uldall -Jason Dobry -Kelvin Jin -Luke Sneeringer -Stephen Sawchuk -Tomoaki Abe diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 6af4eca3011..c492ee06c82 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -19,18 +19,6 @@ "build/src", "!build/src/**/*.map" ], - "contributors": [ - "Ace Nassri ", - "Ali Ijaz Sheikh ", - "Cristian Cavalli ", - "Dominic Kramer ", - "Eric Uldall ", - "Jason Dobry ", - "Kelvin Jin ", - "Luke Sneeringer ", - "Stephen Sawchuk ", - "Tomoaki Abe " - ], "scripts": { "docs": "jsdoc -c .jsdoc.js", "generate-scaffolding": "node node_modules/.bin/repo-tools generate all && node node_modules/.bin/repo-tools generate lib_samples_readme -l samples/ --config ../.cloud-repo-tools.json", From d970f924f04ef4980eb8346611635ffb32b00ea6 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Fri, 9 Nov 2018 15:01:32 -0800 Subject: [PATCH 183/527] refactor: remove unused deps and simplify (#248) --- handwritten/error-reporting/package.json | 15 - .../src/classes/error-message.ts | 34 +- .../classes/request-information-container.ts | 14 +- .../error-reporting/src/configuration.ts | 32 +- .../error-reporting/src/interfaces/express.ts | 27 +- .../error-reporting/src/interfaces/hapi.ts | 38 +- .../error-reporting/src/interfaces/restify.ts | 47 ++- .../src/populate-error-message.ts | 8 +- .../src/request-extractors/express.ts | 27 +- .../src/request-extractors/hapi.ts | 3 - .../src/request-extractors/koa.ts | 28 +- .../src/request-extractors/manual.ts | 48 +-- .../system-test/error-reporting.ts | 15 +- .../test/unit/configuration.ts | 3 +- .../test/unit/interfaces/hapi.ts | 391 +++++++++--------- .../test/unit/request-extractors/express.ts | 4 +- .../test/unit/request-extractors/manual.ts | 14 +- .../test/unit/service-configuration.ts | 11 +- handwritten/error-reporting/utils/fuzzer.ts | 39 +- 19 files changed, 370 insertions(+), 428 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index c492ee06c82..f8314ad3320 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -54,13 +54,10 @@ "@types/boom": "^7.2.0", "@types/console-log-level": "^1.4.0", "@types/express": "^4.11.1", - "@types/extend": "^3.0.0", - "@types/glob": "^7.0.0", "@types/hapi": "^17.0.12", "@types/is": "0.0.21", "@types/json-stable-stringify": "^1.0.32", "@types/koa": "^2.0.45", - "@types/lodash.assign": "^4.2.3", "@types/lodash.has": "^4.5.3", "@types/lodash.maxby": "^4.6.3", "@types/lodash.merge": "^4.6.3", @@ -70,16 +67,12 @@ "@types/lodash.random": "^3.2.3", "@types/lodash.without": "^4.4.3", "@types/mocha": "^5.2.0", - "@types/ncp": "^2.0.1", "@types/nock": "^9.1.3", "@types/node": "^10.1.1", "@types/once": "^1.4.0", - "@types/pify": "^3.0.2", "@types/proxyquire": "^1.3.28", "@types/request": "^2.47.1", "@types/restify": "^7.2.0", - "@types/rimraf": "^2.0.2", - "@types/tmp": "0.0.33", "body-parser": "^1.18.3", "boom": "^7.2.0", "codecov": "^3.0.2", @@ -89,8 +82,6 @@ "eslint-plugin-node": "^8.0.0", "eslint-plugin-prettier": "^3.0.0", "express": "^4.16.3", - "extend": "^3.0.1", - "glob": "^7.1.2", "gts": "^0.8.0", "hapi": "^17.4.0", "ink-docstrap": "^1.3.2", @@ -99,7 +90,6 @@ "jsdoc": "^3.5.5", "json-stable-stringify": "^1.0.1", "koa": "^2.5.1", - "lodash.assign": "^4.2.0", "lodash.maxby": "^4.6.0", "lodash.merge": "^4.6.1", "lodash.omit": "^4.5.0", @@ -108,19 +98,14 @@ "lodash.random": "^3.2.0", "lodash.without": "^4.4.0", "mocha": "^5.2.0", - "ncp": "^2.0.0", "nock": "^10.0.0", "nyc": "^13.0.1", - "once": "^1.4.0", - "pify": "^4.0.0", "post-install-check": "0.0.1", "power-assert": "^1.5.0", "prettier": "^1.12.1", "proxyquire": "^2.0.1", "restify": "^7.2.0", - "rimraf": "^2.6.2", "source-map-support": "^0.5.9", - "tmp": "0.0.33", "typescript": "~3.1.0" } } diff --git a/handwritten/error-reporting/src/classes/error-message.ts b/handwritten/error-reporting/src/classes/error-message.ts index e5232acb649..3e97fb6741e 100644 --- a/handwritten/error-reporting/src/classes/error-message.ts +++ b/handwritten/error-reporting/src/classes/error-message.ts @@ -15,13 +15,11 @@ */ import * as is from 'is'; -const isString = is.string; -const isNumber = is.number; -const isObject = is.object; -import {RequestInformationContainer} from './request-information-container'; import {ServiceContext} from '../configuration'; +import {RequestInformationContainer} from './request-information-container'; + export interface Context { httpRequest: { method: string; url: string; userAgent: string; referrer: string; @@ -124,8 +122,8 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setServiceContext(service?: string, version?: string) { - this.serviceContext.service = (isString(service) ? service : 'node')!; - this.serviceContext.version = isString(version) ? version : undefined; + this.serviceContext.service = (is.string(service) ? service : 'node')!; + this.serviceContext.version = is.string(version) ? version : undefined; return this; } @@ -137,7 +135,7 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setMessage(message?: string) { - this.message = (isString(message) ? message : '')!; + this.message = (is.string(message) ? message : '')!; return this; } @@ -150,7 +148,7 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setHttpMethod(method?: string) { - this.context.httpRequest.method = (isString(method) ? method : '')!; + this.context.httpRequest.method = (is.string(method) ? method : '')!; return this; } @@ -162,7 +160,7 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setUrl(url?: string) { - this.context.httpRequest.url = (isString(url) ? url : '')!; + this.context.httpRequest.url = (is.string(url) ? url : '')!; return this; } @@ -175,7 +173,7 @@ export class ErrorMessage { */ setUserAgent(userAgent?: string) { this.context.httpRequest.userAgent = - (isString(userAgent) ? userAgent : '')!; + (is.string(userAgent) ? userAgent : '')!; return this; } @@ -187,7 +185,7 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setReferrer(referrer?: string) { - this.context.httpRequest.referrer = (isString(referrer) ? referrer : '')!; + this.context.httpRequest.referrer = (is.string(referrer) ? referrer : '')!; return this; } @@ -200,7 +198,7 @@ export class ErrorMessage { */ setResponseStatusCode(responseStatusCode?: number) { this.context.httpRequest.responseStatusCode = - (isNumber(responseStatusCode) ? responseStatusCode : 0)!; + (is.number(responseStatusCode) ? responseStatusCode : 0)!; return this; } @@ -212,7 +210,7 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setRemoteIp(remoteIp?: string) { - this.context.httpRequest.remoteIp = (isString(remoteIp) ? remoteIp : '')!; + this.context.httpRequest.remoteIp = (is.string(remoteIp) ? remoteIp : '')!; return this; } @@ -224,7 +222,7 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ setUser(user?: string) { - this.context.user = (isString(user) ? user : '')!; + this.context.user = (is.string(user) ? user : '')!; return this; } @@ -237,7 +235,7 @@ export class ErrorMessage { */ setFilePath(filePath?: string) { this.context.reportLocation.filePath = - (isString(filePath) ? filePath : '')!; + (is.string(filePath) ? filePath : '')!; return this; } @@ -250,7 +248,7 @@ export class ErrorMessage { */ setLineNumber(lineNumber?: number) { this.context.reportLocation.lineNumber = - (isNumber(lineNumber) ? lineNumber : 0)!; + (is.number(lineNumber) ? lineNumber : 0)!; return this; } @@ -263,7 +261,7 @@ export class ErrorMessage { */ setFunctionName(functionName?: string) { this.context.reportLocation.functionName = - (isString(functionName) ? functionName : '')!; + (is.string(functionName) ? functionName : '')!; return this; } @@ -277,7 +275,7 @@ export class ErrorMessage { * @returns {this} - returns the instance for chaining */ consumeRequestInformation(requestInformation: RequestInformationContainer) { - if (!isObject(requestInformation)) { + if (!is.object(requestInformation)) { return this; } diff --git a/handwritten/error-reporting/src/classes/request-information-container.ts b/handwritten/error-reporting/src/classes/request-information-container.ts index 3469c290870..87e57a25442 100644 --- a/handwritten/error-reporting/src/classes/request-information-container.ts +++ b/handwritten/error-reporting/src/classes/request-information-container.ts @@ -15,8 +15,6 @@ */ import * as is from 'is'; -const isString = is.string; -const isNumber = is.number; export class RequestInformationContainer { url: string; @@ -62,7 +60,7 @@ export class RequestInformationContainer { * @returns {this} - returns the instance for chaining */ setUrl(url: string) { - this.url = isString(url) ? url : ''; + this.url = is.string(url) ? url : ''; return this; } @@ -74,7 +72,7 @@ export class RequestInformationContainer { * @returns {this} - returns the instance for chaining */ setMethod(method: string) { - this.method = isString(method) ? method : ''; + this.method = is.string(method) ? method : ''; return this; } @@ -86,7 +84,7 @@ export class RequestInformationContainer { * @returns {this} - returns the instance for chaining */ setReferrer(referrer?: string) { - this.referrer = (isString(referrer) ? referrer : '')!; + this.referrer = (is.string(referrer) ? referrer : '')!; return this; } @@ -98,7 +96,7 @@ export class RequestInformationContainer { * @returns {this} - returns the instance for chaining */ setUserAgent(userAgent?: string) { - this.userAgent = (isString(userAgent) ? userAgent : '')!; + this.userAgent = (is.string(userAgent) ? userAgent : '')!; return this; } @@ -110,7 +108,7 @@ export class RequestInformationContainer { * @returns {this} - returns the instance for chaining */ setRemoteAddress(remoteIp?: string) { - this.remoteAddress = (isString(remoteIp) ? remoteIp : '')!; + this.remoteAddress = (is.string(remoteIp) ? remoteIp : '')!; return this; } @@ -122,7 +120,7 @@ export class RequestInformationContainer { * @returns {this} - returns the instance for chaining */ setStatusCode(statusCode: number) { - this.statusCode = isNumber(statusCode) ? statusCode : 0; + this.statusCode = is.number(statusCode) ? statusCode : 0; return this; } diff --git a/handwritten/error-reporting/src/configuration.ts b/handwritten/error-reporting/src/configuration.ts index 21f1f1da752..5dee3a264fe 100644 --- a/handwritten/error-reporting/src/configuration.ts +++ b/handwritten/error-reporting/src/configuration.ts @@ -17,10 +17,6 @@ import * as is from 'is'; import has = require('lodash.has'); -const isObject = is.object; -const isBoolean = is.boolean; -const isString = is.string; -const isNumber = is.number; const env = process.env; // The Logger interface defined below matches the interface @@ -193,7 +189,7 @@ export class Configuration { * @type {Object|Null} * @defaultvalue null */ - this._givenConfiguration = isObject(givenConfig) ? givenConfig! : {}; + this._givenConfiguration = is.object(givenConfig) ? givenConfig! : {}; this._checkLocalServiceContext(); this._gatherLocalConfiguration(); } @@ -244,18 +240,18 @@ export class Configuration { version = env.GAE_MODULE_VERSION; } - this._serviceContext.service = (isString(service) ? service : 'node')!; - this._serviceContext.version = isString(version) ? version : undefined; + this._serviceContext.service = (is.string(service) ? service : 'node')!; + this._serviceContext.version = is.string(version) ? version : undefined; - if (isObject(this._givenConfiguration.serviceContext)) { - if (isString(this._givenConfiguration.serviceContext!.service)) { + if (is.object(this._givenConfiguration.serviceContext)) { + if (is.string(this._givenConfiguration.serviceContext!.service)) { this._serviceContext.service = this._givenConfiguration.serviceContext!.service!; } else if (has(this._givenConfiguration.serviceContext, 'service')) { throw new Error('config.serviceContext.service must be a string'); } - if (isString(this._givenConfiguration.serviceContext!.version)) { + if (is.string(this._givenConfiguration.serviceContext!.version)) { this._serviceContext.version = this._givenConfiguration.serviceContext!.version; } else if (has(this._givenConfiguration.serviceContext, 'version')) { @@ -281,7 +277,7 @@ export class Configuration { this._shouldReportErrorsToAPI = true; } else if ( has(this._givenConfiguration, 'ignoreEnvironmentCheck') && - !isBoolean(this._givenConfiguration.ignoreEnvironmentCheck)) { + !is.boolean(this._givenConfiguration.ignoreEnvironmentCheck)) { throw new Error('config.ignoreEnvironmentCheck must be a boolean'); } else { this._shouldReportErrorsToAPI = env.NODE_ENV === 'production'; @@ -294,22 +290,22 @@ export class Configuration { 'true in the runtime configuration object', ].join(' ')); } - if (isString(this._givenConfiguration.key)) { + if (is.string(this._givenConfiguration.key)) { this._key = this._givenConfiguration.key!; } else if (has(this._givenConfiguration, 'key')) { throw new Error('config.key must be a string'); } - if (isString(this._givenConfiguration.keyFilename)) { + if (is.string(this._givenConfiguration.keyFilename)) { this.keyFilename = this._givenConfiguration.keyFilename!; } else if (has(this._givenConfiguration, 'keyFilename')) { throw new Error('config.keyFilename must be a string'); } - if (isObject(this._givenConfiguration.credentials)) { + if (is.object(this._givenConfiguration.credentials)) { this.credentials = this._givenConfiguration.credentials!; } else if (has(this._givenConfiguration, 'credentials')) { throw new Error('config.credentials must be a valid credentials object'); } - if (isBoolean(this._givenConfiguration.reportUnhandledRejections)) { + if (is.boolean(this._givenConfiguration.reportUnhandledRejections)) { this._reportUnhandledRejections = this._givenConfiguration.reportUnhandledRejections!; } else if (has(this._givenConfiguration, 'reportUnhandledRejections')) { @@ -339,14 +335,14 @@ export class Configuration { * @returns {Undefined} - does not return anything */ _checkLocalProjectId() { - if (isString(this._projectId)) { + if (is.string(this._projectId)) { // already has been set by the metadata service return this._projectId; } if (has(this._givenConfiguration, 'projectId')) { - if (isString(this._givenConfiguration.projectId)) { + if (is.string(this._givenConfiguration.projectId)) { this._projectId = this._givenConfiguration.projectId!; - } else if (isNumber(this._givenConfiguration.projectId)) { + } else if (is.number(this._givenConfiguration.projectId)) { this._projectId = this._givenConfiguration.projectId!.toString(); } } diff --git a/handwritten/error-reporting/src/interfaces/express.ts b/handwritten/error-reporting/src/interfaces/express.ts index de97ed47ed9..391114a445a 100644 --- a/handwritten/error-reporting/src/interfaces/express.ts +++ b/handwritten/error-reporting/src/interfaces/express.ts @@ -14,17 +14,14 @@ * limitations under the License. */ +import * as express from 'express'; import * as is from 'is'; -const isObject = is.object; -// TODO: Address the error where `is` does not have a `fn` property -const isFunction = (is as {} as {fn: Function}).fn; -import {ErrorMessage} from '../classes/error-message'; -import {expressRequestInformationExtractor} from '../request-extractors/express'; -import {populateErrorMessage} from '../populate-error-message'; -import {RequestHandler} from '../google-apis/auth-client'; +import {ErrorMessage} from '../classes/error-message'; import {Configuration} from '../configuration'; -import * as express from 'express'; +import {RequestHandler} from '../google-apis/auth-client'; +import {populateErrorMessage} from '../populate-error-message'; +import {expressRequestInformationExtractor} from '../request-extractors/express'; /** * Returns a function that can be used as an express error handling middleware. @@ -52,7 +49,7 @@ export function makeExpressHandler( let ctxService = ''; let ctxVersion: string|undefined = ''; - if (isObject(config)) { + if (is.object(config)) { ctxService = config.getServiceContext().service; ctxVersion = config.getServiceContext().version; } @@ -65,15 +62,13 @@ export function makeExpressHandler( populateErrorMessage(err, em); - if (isObject(client) && isFunction(client.sendError)) { - client.sendError(em); - } + if (is.object(client) && is.function(client.sendError)) + { client.sendError(em); } - if (isFunction(next)) { - next(err); - } + if (is.function(next)) + { next(err); } - return em; + return em; } return expressErrorHandler; diff --git a/handwritten/error-reporting/src/interfaces/hapi.ts b/handwritten/error-reporting/src/interfaces/hapi.ts index 436e6d64e6f..745380bfa28 100644 --- a/handwritten/error-reporting/src/interfaces/hapi.ts +++ b/handwritten/error-reporting/src/interfaces/hapi.ts @@ -17,11 +17,10 @@ import * as boom from 'boom'; import * as is from 'is'; -const isObject = is.object; -const isFunction = is.fn; import {ErrorMessage} from '../classes/error-message'; -import {hapiRequestInformationExtractor} from '../request-extractors/hapi'; import {populateErrorMessage} from '../populate-error-message'; +import {hapiRequestInformationExtractor} from '../request-extractors/hapi'; + const packageJson = require('../../../package.json'); import {RequestHandler} from '../google-apis/auth-client'; @@ -42,7 +41,7 @@ function hapiErrorHandler(err: {}, req?: hapi.Request, config?: Configuration) { let service = ''; let version: string|undefined = ''; - if (isObject(config)) { + if (is.object(config)) { service = config!.getServiceContext().service; version = config!.getServiceContext().version; } @@ -101,18 +100,20 @@ export function makeHapiPlugin(client: RequestHandler, config: Configuration) { } }); } else { - if (isFunction(server.on)) { - server.on('request-error', (req: hapi.Request, err: {}) => { - client.sendError(hapiErrorHandler(err, req, config)); - }); - } + if (is.function(server.on)) + { + server.on('request-error', (req: hapi.Request, err: {}) => { + client.sendError(hapiErrorHandler(err, req, config)); + }); + } - if (isFunction(server.ext)) { + if (is.function(server.ext)) + { server.ext( 'onPreResponse', (request: hapi.Request, reply: any) => { // tslint:disable-line:no-any - if (isObject(request) && request.response && + if (is.object(request) && request.response && (request.response as boom).isBoom) { // Cast to {} is necessary, as@types/hapi@16 incorrectly types // response as 'Response | null' instead of 'Response | Boom | @@ -123,17 +124,16 @@ export function makeHapiPlugin(client: RequestHandler, config: Configuration) { client.sendError(em); } - if (reply && isFunction(reply.continue)) { - reply.continue(); - } - }); + if (reply && is.function(reply.continue)) + { reply.continue(); } + }) + ; } - } + } } - if (isFunction(next)) { - return next!(); - } + if (is.function(next)) + { return next!(); } } const hapiPlugin = { diff --git a/handwritten/error-reporting/src/interfaces/restify.ts b/handwritten/error-reporting/src/interfaces/restify.ts index 582eb8b7988..63d000de8af 100644 --- a/handwritten/error-reporting/src/interfaces/restify.ts +++ b/handwritten/error-reporting/src/interfaces/restify.ts @@ -14,16 +14,15 @@ * limitations under the License. */ +import * as express from 'express'; import * as is from 'is'; -const isObject = is.object; -const isFunction = is.function; +import * as restify from 'restify'; + import {ErrorMessage} from '../classes/error-message'; -import * as expressRequestInformationExtractor from '../request-extractors/express'; -import {populateErrorMessage} from '../populate-error-message'; -import {RequestHandler} from '../google-apis/auth-client'; import {Configuration} from '../configuration'; -import * as restify from 'restify'; -import * as express from 'express'; +import {RequestHandler} from '../google-apis/auth-client'; +import {populateErrorMessage} from '../populate-error-message'; +import * as expressRequestInformationExtractor from '../request-extractors/express'; /** * The restifyErrorHandler is responsible for taking the captured error, setting @@ -106,17 +105,17 @@ function restifyRequestHandler( // TODO: Address the fact that a cast is needed to use `listener` let listener = {}; - if (isObject(res) && isFunction(res.on) && isFunction(res.removeListener)) { - listener = () => { - restifyRequestFinishHandler(client, config, req, res); - res.removeListener( - 'finish', listener as {} as (...args: Array<{}>) => void); - }; + if (is.object(res) && is.function(res.on) && is.function(res.removeListener)) { + listener = () => { + restifyRequestFinishHandler(client, config, req, res); + res.removeListener( + 'finish', listener as {} as (...args: Array<{}>) => void); + }; - res.on('finish', listener as {} as (...args: Array<{}>) => void); - } + res.on('finish', listener as {} as (...args: Array<{}>) => void); + } - return next(); + return next(); } /** @@ -138,15 +137,15 @@ function restifyRequestHandler( */ function serverErrorHandler( client: RequestHandler, config: Configuration, server: restify.Server) { - server.on('uncaughtException', (req, res, reqConfig, err) => { - const em = new ErrorMessage().consumeRequestInformation( - expressRequestInformationExtractor.expressRequestInformationExtractor( - req, res)); + server.on('uncaughtException', (req, res, reqConfig, err) => { + const em = new ErrorMessage().consumeRequestInformation( + expressRequestInformationExtractor.expressRequestInformationExtractor( + req, res)); - restifyErrorHandler(client, config, err, em); - }); + restifyErrorHandler(client, config, err, em); + }); - return restifyRequestHandler.bind(null, client, config); + return restifyRequestHandler.bind(null, client, config); } /** @@ -161,5 +160,5 @@ function serverErrorHandler( * restify middleware stack */ export function handlerSetup(client: RequestHandler, config: Configuration) { - return serverErrorHandler.bind(null, client, config); + return serverErrorHandler.bind(null, client, config); } diff --git a/handwritten/error-reporting/src/populate-error-message.ts b/handwritten/error-reporting/src/populate-error-message.ts index d0bffb1bd41..244d4287699 100644 --- a/handwritten/error-reporting/src/populate-error-message.ts +++ b/handwritten/error-reporting/src/populate-error-message.ts @@ -17,9 +17,7 @@ import * as is from 'is'; import has = require('lodash.has'); -const isObject = is.object; import {buildStackTrace} from './build-stack-trace'; - import {ErrorMessage} from './classes/error-message'; export interface PopulatedObject { @@ -48,7 +46,7 @@ export function populateErrorMessage(ob: any, em: ErrorMessage) { em.setMessage(buildStackTrace('' + ob)); } else if ((ob as {stack: {}}).stack) { populateFromError(ob as Error, em); - } else if (typeof ob === 'object' && isObject(ob)) { + } else if (typeof ob === 'object' && is.object(ob)) { populateFromObject(ob, em); } else { em.setMessage(buildStackTrace(ob.toString())); @@ -77,7 +75,7 @@ function populateFromError( errorMessage.setUser(err.user!); } - if (has(err, 'serviceContext') && isObject(err.serviceContext)) { + if (has(err, 'serviceContext') && is.object(err.serviceContext)) { errorMessage.setServiceContext( err.serviceContext!.service!, err.serviceContext!.version); } @@ -130,7 +128,7 @@ function populateFromObject(ob: PopulatedObject, errorMessage: ErrorMessage) { errorMessage.setFunctionName(ob.functionName!); } - if (has(ob, 'serviceContext') && isObject(ob.serviceContext)) { + if (has(ob, 'serviceContext') && is.object(ob.serviceContext)) { errorMessage.setServiceContext( ob.serviceContext!.service!, ob.serviceContext!.version); } diff --git a/handwritten/error-reporting/src/request-extractors/express.ts b/handwritten/error-reporting/src/request-extractors/express.ts index ab55a5819db..9dce8b0f19e 100644 --- a/handwritten/error-reporting/src/request-extractors/express.ts +++ b/handwritten/error-reporting/src/request-extractors/express.ts @@ -14,11 +14,10 @@ * limitations under the License. */ +import * as express from 'express'; import * as is from 'is'; -const isFunction = is.fn; -const isObject = is.object; + import {RequestInformationContainer} from '../classes/request-information-container'; -import * as express from 'express'; /** * This function checks for the presence of an `x-forwarded-for` header on the @@ -33,7 +32,7 @@ import * as express from 'express'; function extractRemoteAddressFromRequest(req: express.Request) { if (typeof req.header('x-forwarded-for') !== 'undefined') { return req.header('x-forwarded-for'); - } else if (isObject(req.connection)) { + } else if (is.object(req.connection)) { return req.connection.remoteAddress; } @@ -55,16 +54,16 @@ export function expressRequestInformationExtractor( req: express.Request, res: express.Response) { const returnObject = new RequestInformationContainer(); - if (!isObject(req) || !isFunction(req.header) || !isObject(res)) { - return returnObject; - } + if (!is.object(req) || !is.function(req.header) || !is.object(res)) { + return returnObject; + } - returnObject.setMethod(req.method) - .setUrl(req.url) - .setUserAgent(req.header('user-agent')) - .setReferrer(req.header('referrer')) - .setStatusCode(res.statusCode) - .setRemoteAddress(extractRemoteAddressFromRequest(req)); + returnObject.setMethod(req.method) + .setUrl(req.url) + .setUserAgent(req.header('user-agent')) + .setReferrer(req.header('referrer')) + .setStatusCode(res.statusCode) + .setRemoteAddress(extractRemoteAddressFromRequest(req)); - return returnObject; + return returnObject; } diff --git a/handwritten/error-reporting/src/request-extractors/hapi.ts b/handwritten/error-reporting/src/request-extractors/hapi.ts index d0095a9dfeb..151ba56e425 100644 --- a/handwritten/error-reporting/src/request-extractors/hapi.ts +++ b/handwritten/error-reporting/src/request-extractors/hapi.ts @@ -18,9 +18,6 @@ import * as boom from 'boom'; import * as is from 'is'; import has = require('lodash.has'); -const isObject = is.object; -const isFunction = is.function; -const isArray = is.array; import {RequestInformationContainer} from '../classes/request-information-container'; import * as hapi from 'hapi'; diff --git a/handwritten/error-reporting/src/request-extractors/koa.ts b/handwritten/error-reporting/src/request-extractors/koa.ts index 8caef8aa276..d679a1de0a1 100644 --- a/handwritten/error-reporting/src/request-extractors/koa.ts +++ b/handwritten/error-reporting/src/request-extractors/koa.ts @@ -15,12 +15,10 @@ */ import * as is from 'is'; -const isObject = is.object; -const isFunction = is.function; -const isArray = is.array; -import {RequestInformationContainer} from '../classes/request-information-container'; import * as koa from 'koa'; +import {RequestInformationContainer} from '../classes/request-information-container'; + /** * The koaRequestInformationExtractor attempts to extract information from a Koa * request/reponse set and marshal it into a RequestInformationContainer @@ -35,17 +33,17 @@ export function koaRequestInformationExtractor( req: koa.Request, res: koa.Response) { const returnObject = new RequestInformationContainer(); - if (!isObject(req) || !isObject(res) || isFunction(req) || isFunction(res) || - isArray(req) || isArray(res) || !isObject(req.headers)) { - return returnObject; - } + if (!is.object(req) || !is.object(res) || is.function(req) || is.function(res) || + is.array(req) || is.array(res) || !is.object(req.headers)) { + return returnObject; + } - returnObject.setMethod(req.method) - .setUrl(req.url) - .setUserAgent(req.headers['user-agent']) - .setReferrer(req.headers.referrer) - .setStatusCode(res.status) - .setRemoteAddress(req.ip); + returnObject.setMethod(req.method) + .setUrl(req.url) + .setUserAgent(req.headers['user-agent']) + .setReferrer(req.headers.referrer) + .setStatusCode(res.status) + .setRemoteAddress(req.ip); - return returnObject; + return returnObject; } diff --git a/handwritten/error-reporting/src/request-extractors/manual.ts b/handwritten/error-reporting/src/request-extractors/manual.ts index 6992e3e0f1f..c56781a0af1 100644 --- a/handwritten/error-reporting/src/request-extractors/manual.ts +++ b/handwritten/error-reporting/src/request-extractors/manual.ts @@ -16,11 +16,6 @@ import * as is from 'is'; import has = require('lodash.has'); - -const isObject = is.object; -const isArray = is.array; -// TODO: Address the error where `is` does not have a `fn` property -const isFunction = (is as {} as {fn: Function}).fn; import {RequestInformationContainer} from '../classes/request-information-container'; export interface Request { @@ -53,33 +48,32 @@ export interface Request { export function manualRequestInformationExtractor(req: Request) { const returnObject = new RequestInformationContainer(); - if (!isObject(req) || isArray(req) || isFunction(req)) { - return returnObject; - } + if (!is.object(req) || is.array(req) || is.function(req)) + { return returnObject; } - if (has(req, 'method')) { - returnObject.setMethod(req.method!); - } + if (has(req, 'method')) { + returnObject.setMethod(req.method!); + } - if (has(req, 'url')) { - returnObject.setUrl(req.url!); - } + if (has(req, 'url')) { + returnObject.setUrl(req.url!); + } - if (has(req, 'userAgent')) { - returnObject.setUserAgent(req.userAgent); - } + if (has(req, 'userAgent')) { + returnObject.setUserAgent(req.userAgent); + } - if (has(req, 'referrer')) { - returnObject.setReferrer(req.referrer); - } + if (has(req, 'referrer')) { + returnObject.setReferrer(req.referrer); + } - if (has(req, 'statusCode')) { - returnObject.setStatusCode(req.statusCode!); - } + if (has(req, 'statusCode')) { + returnObject.setStatusCode(req.statusCode!); + } - if (has(req, 'remoteAddress')) { - returnObject.setRemoteAddress(req.remoteAddress); - } + if (has(req, 'remoteAddress')) { + returnObject.setRemoteAddress(req.remoteAddress); + } - return returnObject; + return returnObject; } diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index f685c603b3a..9729f979b55 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -26,7 +26,6 @@ import {FakeConfiguration as Configuration} from '../test/fixtures/configuration import {deepStrictEqual} from '../test/util'; import {ErrorGroupStats, ErrorsApiTransport} from '../utils/errors-api-transport'; -import assign = require('lodash.assign'); import pick = require('lodash.pick'); import omitBy = require('lodash.omitby'); import * as request from 'request'; @@ -49,7 +48,7 @@ class InstancedEnv { projectId!: string; constructor(injectedEnv: {[key: string]: string|undefined}) { - assign(this, injectedEnv); + Object.assign(this, injectedEnv); this.injectedEnv = injectedEnv; this._originalEnv = this._captureProcessProperties(); } @@ -64,40 +63,40 @@ class InstancedEnv { } setProjectId() { - assign(process.env, { + Object.assign(process.env, { GCLOUD_PROJECT: this.injectedEnv.projectId, }); return this; } setProjectNumber() { - assign(process.env, { + Object.assign(process.env, { GCLOUD_PROJECT: this.injectedEnv.projectNumber, }); return this; } setKeyFilename() { - assign(process.env, { + Object.assign(process.env, { GOOGLE_APPLICATION_CREDENTIALS: this.injectedEnv.keyFilename, }); return this; } setProduction() { - assign(process.env, { + Object.assign(process.env, { NODE_ENV: 'production', }); return this; } restoreProcessToOriginalState() { - assign(process.env, this._originalEnv); + Object.assign(process.env, this._originalEnv); return this; } injected() { - return assign({}, this.injectedEnv); + return Object.assign({}, this.injectedEnv); } } diff --git a/handwritten/error-reporting/test/unit/configuration.ts b/handwritten/error-reporting/test/unit/configuration.ts index 23129b441db..3011a25f336 100644 --- a/handwritten/error-reporting/test/unit/configuration.ts +++ b/handwritten/error-reporting/test/unit/configuration.ts @@ -16,7 +16,6 @@ import * as assert from 'assert'; import * as is from 'is'; -const isNumber = is.number; import merge = require('lodash.merge'); import {FakeConfiguration as Configuration} from '../fixtures/configuration'; import {ConfigurationOptions} from '../../src/configuration'; @@ -25,7 +24,7 @@ import {deepStrictEqual} from '../util'; const level = process.env.GCLOUD_ERRORS_LOGLEVEL; import {createLogger} from '../../src/logger'; const logger = createLogger({ - logLevel: isNumber(level) ? level : 4, + logLevel: is.number(level) ? level : 4, }); import * as nock from 'nock'; diff --git a/handwritten/error-reporting/test/unit/interfaces/hapi.ts b/handwritten/error-reporting/test/unit/interfaces/hapi.ts index 2f3e58a6b9c..a234a1769d8 100644 --- a/handwritten/error-reporting/test/unit/interfaces/hapi.ts +++ b/handwritten/error-reporting/test/unit/interfaces/hapi.ts @@ -16,9 +16,6 @@ import * as is from 'is'; import has = require('lodash.has'); - -const isFunction = (is as {} as {fn: Function}).fn; -const isObject = is.object; import * as assert from 'assert'; import {makeHapiPlugin as hapiInterface} from '../../../src/interfaces/hapi'; import {ErrorMessage} from '../../../src/classes/error-message'; @@ -61,225 +58,229 @@ describe('Hapi interface', () => { plugin = hapiInterface(null!, givenConfig as {} as config.Configuration); }); it('should have plain object as plugin', () => { - assert(isObject(plugin)); + assert(is.object(plugin)); }); it('plugin should have a register function property', () => { - assert(has(plugin, 'register') && isFunction(plugin.register)); + assert(has(plugin, 'register') && is.function(plugin.register)) + ; }); - it('the plugin\'s register property should have an attributes property', - () => { - assert( - has(plugin.register, 'attributes') && - isObject(plugin.register.attributes)); - }); - it('the plugin\'s attribute property should have a name property', () => { - assert(has(plugin.register.attributes, 'name')); - assert.strictEqual( - plugin.register !.attributes!.name, '@google-cloud/error-reporting'); + it('the plugin\'s register property should have an attributes property', + () => { + assert( + has(plugin.register, 'attributes') && + is.object(plugin.register.attributes)); + }); + it('the plugin\'s attribute property should have a name property', () => { + assert(has(plugin.register.attributes, 'name')); + assert.strictEqual( + plugin.register !.attributes!.name, + '@google-cloud/error-reporting'); + }); + it('the plugin\'s attribute property should have a version property', + () => { + assert(has(plugin.register.attributes, 'version')); + }); }); - it('the plugin\'s attribute property should have a version property', - () => { - assert(has(plugin.register.attributes, 'version')); - }); - }); - describe('hapiRegisterFunction behaviour', () => { - let fakeServer: EventEmitter; - beforeEach(() => { - fakeServer = new EventEmitter(); + describe('hapiRegisterFunction behaviour', () => { + let fakeServer: EventEmitter; + beforeEach(() => { + fakeServer = new EventEmitter(); + }); + it('Should call fn when the request-error event is emitted', () => { + const fakeClient = { + sendError(errMsg: ErrorMessage) { + assert( + errMsg instanceof ErrorMessage, + 'should be an instance of Error message'); + }, + } as {} as RequestHandler; + const plugin = hapiInterface(fakeClient, { + lacksCredentials() { + return false; + }, + getVersion() { + return '1'; + }, + getServiceContext() { + return {service: 'node'}; + }, + } as {} as config.Configuration); + plugin.register(fakeServer, null!, null!); + fakeServer.emit('request-error'); + }); }); - it('Should call fn when the request-error event is emitted', () => { - const fakeClient = { - sendError(errMsg: ErrorMessage) { - assert( - errMsg instanceof ErrorMessage, - 'should be an instance of Error message'); - }, - } as {} as RequestHandler; - const plugin = hapiInterface(fakeClient, { - lacksCredentials() { + describe('Behaviour around the request/response lifecycle', () => { + const EVENT = 'onPreResponse'; + const fakeClient = {sendError() {}} as {} as RequestHandler; + let fakeServer: EventEmitter&{ext?: Function}, + config: Configuration&{lacksCredentials?: () => boolean}, + plugin: HapiPlugin; + before(() => { + config = new Configuration({ + projectId: 'xyz', + serviceContext: { + service: 'x', + version: '1.x', + }, + }); + config.lacksCredentials = () => { return false; - }, - getVersion() { - return '1'; - }, - getServiceContext() { - return {service: 'node'}; - }, - } as {} as config.Configuration); - plugin.register(fakeServer, null!, null!); - fakeServer.emit('request-error'); - }); - }); - describe('Behaviour around the request/response lifecycle', () => { - const EVENT = 'onPreResponse'; - const fakeClient = {sendError() {}} as {} as RequestHandler; - let fakeServer: EventEmitter&{ext?: Function}, - config: Configuration&{lacksCredentials?: () => boolean}, - plugin: HapiPlugin; - before(() => { - config = new Configuration({ - projectId: 'xyz', - serviceContext: { - service: 'x', - version: '1.x', - }, + }; + plugin = hapiInterface(fakeClient, config); }); - config.lacksCredentials = () => { - return false; - }; - plugin = hapiInterface(fakeClient, config); - }); - beforeEach(() => { - fakeServer = new EventEmitter(); - fakeServer.ext = fakeServer.on; - }); - afterEach(() => { - fakeServer.removeAllListeners(); - }); - it('Should call continue when a boom is emitted if reply is an object', - done => { - plugin.register(fakeServer, null!, () => {}); - fakeServer.emit( - EVENT, {response: new boom('message', {statusCode: 427})}, { - continue() { - // The continue function should be called - done(); - }, - }); - }); - it('Should call continue when a boom is emitted if reply is a function', - done => { - // Manually testing has shown that in actual usage the `reply` object - // provided to listeners of the `onPreResponse` event can be a function - // that has a `continue` property that is a function. - // If `reply.continue()` is not invoked in this situation, the Hapi - // app will become unresponsive. - plugin.register(fakeServer, null!, () => {}); - const reply: Function&{continue?: Function} = () => {}; - reply.continue = () => { - // The continue function should be called - done(); - }; - fakeServer.emit( - EVENT, {response: new boom('message', {statusCode: 427})}, reply); - }); - it('Should call sendError when a boom is received', done => { - const fakeClient = { - sendError(err: ErrorMessage) { - assert(err instanceof ErrorMessage); + beforeEach(() => { + fakeServer = new EventEmitter(); + fakeServer.ext = fakeServer.on; + }); + afterEach(() => { + fakeServer.removeAllListeners(); + }); + it('Should call continue when a boom is emitted if reply is an object', + done => { + plugin.register(fakeServer, null!, () => {}); + fakeServer.emit( + EVENT, {response: new boom('message', {statusCode: 427})}, { + continue() { + // The continue function should be called + done(); + }, + }); + }); + it('Should call continue when a boom is emitted if reply is a function', + done => { + // Manually testing has shown that in actual usage the `reply` object + // provided to listeners of the `onPreResponse` event can be a + // function that has a `continue` property that is a function. If + // `reply.continue()` is not invoked in this situation, the Hapi app + // will become unresponsive. + plugin.register(fakeServer, null!, () => {}); + const reply: Function&{continue?: Function} = () => {}; + reply.continue = () => { + // The continue function should be called + done(); + }; + fakeServer.emit( + EVENT, {response: new boom('message', {statusCode: 427})}, + reply); + }); + it('Should call sendError when a boom is received', done => { + const fakeClient = { + sendError(err: ErrorMessage) { + assert(err instanceof ErrorMessage); + done(); + }, + } as {} as RequestHandler; + const plugin = hapiInterface(fakeClient, config); + plugin.register(fakeServer, null!, () => {}); + fakeServer.emit( + 'onPreResponse', + {response: new boom('message', {statusCode: 427})}); + }); + it('Should call next when completing a request', done => { + plugin.register(fakeServer, null!, () => { + // The next function should be called done(); - }, - } as {} as RequestHandler; - const plugin = hapiInterface(fakeClient, config); - plugin.register(fakeServer, null!, () => {}); - fakeServer.emit( - 'onPreResponse', {response: new boom('message', {statusCode: 427})}); - }); - it('Should call next when completing a request', done => { - plugin.register(fakeServer, null!, () => { - // The next function should be called - done(); + }); + fakeServer.emit( + EVENT, {response: new boom('message', {statusCode: 427})}, + {continue() {}}); }); - fakeServer.emit( - EVENT, {response: new boom('message', {statusCode: 427})}, - {continue() {}}); }); - }); - describe('Hapi17', () => { - const errorsSent: ErrorMessage[] = []; - // the only method in the client that should be used is `sendError` - const fakeClient = { - sendError: - (errorMessage: ErrorMessage, - userCb?: ( - err: Error|null, response: http.ServerResponse|null, body: {}) => - void) => { - errorsSent.push(errorMessage); - } - } as {} as RequestHandler; + describe('Hapi17', () => { + const errorsSent: ErrorMessage[] = []; + // the only method in the client that should be used is `sendError` + const fakeClient = { + sendError: + (errorMessage: ErrorMessage, + userCb?: ( + err: Error|null, response: http.ServerResponse|null, + body: {}) => void) => { + errorsSent.push(errorMessage); + } + } as {} as RequestHandler; - // the configuration should be not be needed to send errors correctly - const plugin = hapiInterface(fakeClient, {} as Configuration); + // the configuration should be not be needed to send errors correctly + const plugin = hapiInterface(fakeClient, {} as Configuration); - afterEach(() => { - errorsSent.length = 0; - }); + afterEach(() => { + errorsSent.length = 0; + }); - it('Plugin should have name and version properties', () => { - assert.strictEqual(plugin.name, packageJson.name); - assert.strictEqual(plugin.version, packageJson.version); - }); + it('Plugin should have name and version properties', () => { + assert.strictEqual(plugin.name, packageJson.name); + assert.strictEqual(plugin.version, packageJson.version); + }); - it(`Should record 'log' events correctly`, () => { - const fakeServer = {events: new EventEmitter()}; + it(`Should record 'log' events correctly`, () => { + const fakeServer = {events: new EventEmitter()}; - // emulate how the hapi server would register itself - plugin.register(fakeServer, {}); + // emulate how the hapi server would register itself + plugin.register(fakeServer, {}); - // emulate the hapi server emitting a log event - const testError = new Error('Error emitted through a log event'); + // emulate the hapi server emitting a log event + const testError = new Error('Error emitted through a log event'); - // this event should not be recorded - fakeServer.events.emit('log', {error: testError, channel: 'internal'}); + // this event should not be recorded + fakeServer.events.emit('log', {error: testError, channel: 'internal'}); - // this event should be recorded - fakeServer.events.emit('log', {error: testError, channel: 'app'}); + // this event should be recorded + fakeServer.events.emit('log', {error: testError, channel: 'app'}); - assert.strictEqual(errorsSent.length, 1); - const errorMessage = errorsSent[0]; + assert.strictEqual(errorsSent.length, 1); + const errorMessage = errorsSent[0]; - // note: the error's stack contains the error message - assert.strictEqual(errorMessage.message, testError.stack); - }); + // note: the error's stack contains the error message + assert.strictEqual(errorMessage.message, testError.stack); + }); - it(`Should record 'request' events correctly`, () => { - const fakeServer = {events: new EventEmitter()}; + it(`Should record 'request' events correctly`, () => { + const fakeServer = {events: new EventEmitter()}; - // emulate how the hapi server would register itself - plugin.register(fakeServer, {}); + // emulate how the hapi server would register itself + plugin.register(fakeServer, {}); - // emulate the hapi server emitting a request event - // a cast to hapi.Request is being done since only the listed - // properties are the properties that are being tested. In - // addition other properties of hapi.Request should be needed - // to properly send the error. - const fakeRequest = { - method: 'custom-method', - url: 'custom-url', - headers: { - 'user-agent': 'custom-user-agent', - referrer: 'custom-referrer', - 'x-forwarded-for': 'some-remote-address' - }, - response: {statusCode: 42} - } as {} as hapi.Request; + // emulate the hapi server emitting a request event + // a cast to hapi.Request is being done since only the listed + // properties are the properties that are being tested. In + // addition other properties of hapi.Request should be needed + // to properly send the error. + const fakeRequest = { + method: 'custom-method', + url: 'custom-url', + headers: { + 'user-agent': 'custom-user-agent', + referrer: 'custom-referrer', + 'x-forwarded-for': 'some-remote-address' + }, + response: {statusCode: 42} + } as {} as hapi.Request; - const testError = new Error('Error emitted through a request event'); + const testError = new Error('Error emitted through a request event'); - // this event should not be recorded - fakeServer.events.emit( - 'request', fakeRequest, {error: testError, channel: 'internal'}); + // this event should not be recorded + fakeServer.events.emit( + 'request', fakeRequest, {error: testError, channel: 'internal'}); - // this event should be recorded - fakeServer.events.emit( - 'request', fakeRequest, {error: testError, channel: 'error'}); + // this event should be recorded + fakeServer.events.emit( + 'request', fakeRequest, {error: testError, channel: 'error'}); - assert.strictEqual(errorsSent.length, 1); - const errorMessage = errorsSent[0]; + assert.strictEqual(errorsSent.length, 1); + const errorMessage = errorsSent[0]; - // note: the error's stack contains the error message - assert.strictEqual(errorMessage.message, testError.stack); - assert.strictEqual( - errorMessage.context.httpRequest.method, 'custom-method'); - assert.strictEqual(errorMessage.context.httpRequest.url, 'custom-url'); - assert.strictEqual( - errorMessage.context.httpRequest.userAgent, 'custom-user-agent'); - assert.strictEqual( - errorMessage.context.httpRequest.referrer, 'custom-referrer'); - assert.strictEqual( - errorMessage.context.httpRequest.remoteIp, 'some-remote-address'); - assert.strictEqual( - errorMessage.context.httpRequest.responseStatusCode, 42); + // note: the error's stack contains the error message + assert.strictEqual(errorMessage.message, testError.stack); + assert.strictEqual( + errorMessage.context.httpRequest.method, 'custom-method'); + assert.strictEqual(errorMessage.context.httpRequest.url, 'custom-url'); + assert.strictEqual( + errorMessage.context.httpRequest.userAgent, 'custom-user-agent'); + assert.strictEqual( + errorMessage.context.httpRequest.referrer, 'custom-referrer'); + assert.strictEqual( + errorMessage.context.httpRequest.remoteIp, 'some-remote-address'); + assert.strictEqual( + errorMessage.context.httpRequest.responseStatusCode, 42); + }); }); }); -}); diff --git a/handwritten/error-reporting/test/unit/request-extractors/express.ts b/handwritten/error-reporting/test/unit/request-extractors/express.ts index e11c4c7ee6a..c1d916eba46 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/express.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/express.ts @@ -15,8 +15,6 @@ */ import {Response} from 'express'; -import * as extend from 'extend'; - import {expressRequestInformationExtractor} from '../../../src/request-extractors/express'; import {Fuzzer} from '../../../utils/fuzzer'; import {deepStrictEqual} from '../../util'; @@ -104,7 +102,7 @@ describe('Behaviour under varying input', () => { }; // tslint:disable-next-line:no-any const headerFactory = (toDeriveFrom: any) => { - const lrn = extend({}, toDeriveFrom); + const lrn = Object.assign({}, toDeriveFrom); lrn.header = (toRet: string) => { if (lrn.hasOwnProperty(toRet)) { return lrn[toRet]; diff --git a/handwritten/error-reporting/test/unit/request-extractors/manual.ts b/handwritten/error-reporting/test/unit/request-extractors/manual.ts index 7cc49213743..c00d07acba8 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/manual.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/manual.ts @@ -14,9 +14,7 @@ * limitations under the License. */ -import * as extend from 'extend'; import omit = require('lodash.omit'); - import {manualRequestInformationExtractor} from '../../../src/request-extractors/manual'; import {Fuzzer} from '../../../utils/fuzzer'; import {deepStrictEqual} from '../../util'; @@ -58,40 +56,40 @@ describe('manualRequestInformationExtractor', () => { ].join(' ')); deepStrictEqual( manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'method')), - extend({}, FULL_VALID_INPUT, {method: ''}), [ + Object.assign({}, FULL_VALID_INPUT, {method: ''}), [ 'Given a full valid input object sans the method property values', 'should be reflected by the output of the request extraction', ].join(' ')); deepStrictEqual( manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'url')), - extend({}, FULL_VALID_INPUT, {url: ''}), [ + Object.assign({}, FULL_VALID_INPUT, {url: ''}), [ 'Given a valid input sans the url property these values should be', 'reflected by the output of the request extraction', ].join('')); deepStrictEqual( manualRequestInformationExtractor( omit(FULL_VALID_INPUT, 'userAgent')), - extend({}, FULL_VALID_INPUT, {userAgent: ''}), [ + Object.assign({}, FULL_VALID_INPUT, {userAgent: ''}), [ 'Given a full valid input sans the userAgent property these values', 'should be reflected by the output of the request extraction', ].join('')); deepStrictEqual( manualRequestInformationExtractor(omit(FULL_VALID_INPUT, 'referrer')), - extend({}, FULL_VALID_INPUT, {referrer: ''}), [ + Object.assign({}, FULL_VALID_INPUT, {referrer: ''}), [ 'Given a full valid input sans the referrer property these values', 'should be reflected by the output of the request extraction', ].join('')); deepStrictEqual( manualRequestInformationExtractor( omit(FULL_VALID_INPUT, 'statusCode')), - extend({}, FULL_VALID_INPUT, {statusCode: 0}), [ + Object.assign({}, FULL_VALID_INPUT, {statusCode: 0}), [ 'Given a full valid input sans the statusCode property these values', 'should be reflected by the output of the request extraction', ].join('')); deepStrictEqual( manualRequestInformationExtractor( omit(FULL_VALID_INPUT, 'remoteAddress')), - extend({}, FULL_VALID_INPUT, {remoteAddress: ''}), [ + Object.assign({}, FULL_VALID_INPUT, {remoteAddress: ''}), [ 'Given a valid input sans the remoteAddress property these values', 'should be reflected by the output of the request extraction', ].join('')); diff --git a/handwritten/error-reporting/test/unit/service-configuration.ts b/handwritten/error-reporting/test/unit/service-configuration.ts index 9044338d12f..0487b0cea77 100644 --- a/handwritten/error-reporting/test/unit/service-configuration.ts +++ b/handwritten/error-reporting/test/unit/service-configuration.ts @@ -16,16 +16,13 @@ import * as assert from 'assert'; import * as is from 'is'; -const isString = is.string; -const isNumber = is.number; -import assign = require('lodash.assign'); import omitBy = require('lodash.omitby'); import {FakeConfiguration as Configuration} from '../fixtures/configuration'; import {deepStrictEqual} from '../util'; const level = process.env.GCLOUD_ERRORS_LOGLEVEL; import {createLogger} from '../../src/logger'; const logger = createLogger({ - logLevel: isNumber(level) ? level : 4, + logLevel: is.number(level) ? level : 4, }); const serviceConfigEnv = { GAE_SERVICE: process.env.GAE_SERVICE, @@ -42,7 +39,7 @@ function sterilizeServiceConfigEnv() { function setEnv( serviceName: string|null, serviceVersion: string, moduleName: string|null, mv: string, fn: string|null) { - assign( + Object.assign( process.env, omitBy( { @@ -53,11 +50,11 @@ function setEnv( FUNCTION_NAME: fn, }, val => { - return !isString(val); + return !is.string(val); })); } function restoreServiceConfigEnv() { - assign(process.env, serviceConfigEnv); + Object.assign(process.env, serviceConfigEnv); } describe('Testing service configuration', () => { diff --git a/handwritten/error-reporting/utils/fuzzer.ts b/handwritten/error-reporting/utils/fuzzer.ts index 3672d74f042..17f955aff9c 100644 --- a/handwritten/error-reporting/utils/fuzzer.ts +++ b/handwritten/error-reporting/utils/fuzzer.ts @@ -19,12 +19,6 @@ import maxBy = require('lodash.maxby'); import random = require('lodash.random'); import * as is from 'is'; -const isNumber = is.number; -const isString = is.string; -const isArray = is.array; -const isFunction = is.function; - - export class Fuzzer { generate = { types() { @@ -41,7 +35,7 @@ export class Fuzzer { }, string(len?: number) { - const lenChecked = (isNumber(len) ? len : 10)!; + const lenChecked = (is.number(len) ? len : 10)!; const chars: string[] = []; for (let i = 0; i < lenChecked; i++) { @@ -56,7 +50,7 @@ export class Fuzzer { }, alphaNumericString(len?: number) { - const lenChecked = (isNumber(len) ? len : 10)!; + const lenChecked = (is.number(len) ? len : 10)!; const chars: string[] = []; let thisRange: number[] = []; const ranges = [[48, 57], [65, 90], [97, 122]]; @@ -80,8 +74,8 @@ export class Fuzzer { }, number(lower?: number, upper?: number) { - const lowerChecked = (isNumber(lower) ? lower : 0)!; - const upperChecked = (isNumber(upper) ? upper : 100)!; + const lowerChecked = (is.number(lower) ? lower : 0)!; + const upperChecked = (is.number(upper) ? upper : 100)!; return random(lowerChecked, upperChecked); }, @@ -97,13 +91,13 @@ export class Fuzzer { array( len?: number, ofOneType?: string, currentDepth?: number, allowedDepth?: number) { - const lenChecked = (isNumber(len) ? len : random(1, 10))!; + const lenChecked = (is.number(len) ? len : random(1, 10))!; let availableTypes = - (isString(ofOneType) && this.types().indexOf(ofOneType!) > -1 ? + (is.string(ofOneType) && this.types().indexOf(ofOneType!) > -1 ? [ofOneType] : this.types())!; - let currentDepthChecked = (isNumber(currentDepth) ? currentDepth : 0)!; - const allowedDepthChecked = (isNumber(allowedDepth) ? allowedDepth : 3)!; + let currentDepthChecked = (is.number(currentDepth) ? currentDepth : 0)!; + const allowedDepthChecked = (is.number(allowedDepth) ? allowedDepth : 3)!; const arr: Array<{}> = []; let currentTypeBeingGenerated: string|undefined = ''; currentDepthChecked += 1; @@ -135,9 +129,9 @@ export class Fuzzer { object( numProperties?: number, currentDepth?: number, allowedDepth?: number) { const numPropertiesChecked = - (isNumber(numProperties) ? numProperties : random(1, 10))!; - let currentDepthChecked = (isNumber(currentDepth) ? currentDepth : 0)!; - const allowedDepthChecked = (isNumber(allowedDepth) ? allowedDepth : 3)!; + (is.number(numProperties) ? numProperties : random(1, 10))!; + let currentDepthChecked = (is.number(currentDepth) ? currentDepth : 0)!; + const allowedDepthChecked = (is.number(allowedDepth) ? allowedDepth : 3)!; const obj: {[key: string]: {}} = {}; currentDepthChecked += 1; @@ -212,7 +206,7 @@ export class Fuzzer { let tmpArray = this.generate.types(); for (let i = 0; i < expectsArgTypes.length; i++) { - if (!isArray(expectsArgTypes[i])) { + if (!is.array(expectsArgTypes[i])) { argsTypesArray.push(without(this.generate.types(), expectsArgTypes[i])); } else { for (let j = 0; j < expectsArgTypes[i].length; j++) { @@ -246,7 +240,7 @@ export class Fuzzer { fnToFuzz: Function, expectsArgTypes?: string[], cb?: Function, withContext?: {}) { const expectsArgTypesChecked = - (isArray(expectsArgTypes) ? expectsArgTypes : [])!; + (is.array(expectsArgTypes) ? expectsArgTypes : [])!; const typesToFuzzOnEach = this._generateTypesToFuzzWith(expectsArgTypesChecked) as string[][]; @@ -256,11 +250,10 @@ export class Fuzzer { returnValue = fnToFuzz.apply( withContext, this._generateValuesForFuzzTyping(typesToFuzzOnEach, i)); - if (isFunction(cb)) { - cb!(returnValue); - } + if (is.function(cb)) + { cb!(returnValue); } } return true; + } } -} From ba58bcfb6af85ee1e285f231ed1572e75afee222 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Sat, 10 Nov 2018 10:49:45 -0800 Subject: [PATCH 184/527] chore(deps): update dependency @google-cloud/nodejs-repo-tools to v3 (#250) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index f8314ad3320..ce9f7521ac9 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -50,7 +50,7 @@ "teeny-request": "^3.6.0" }, "devDependencies": { - "@google-cloud/nodejs-repo-tools": "^2.3.0", + "@google-cloud/nodejs-repo-tools": "^3.0.0", "@types/boom": "^7.2.0", "@types/console-log-level": "^1.4.0", "@types/express": "^4.11.1", From a9dadc077c40765aef4487fe34c2bf14a6ffd6f8 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Mon, 12 Nov 2018 15:54:18 -0800 Subject: [PATCH 185/527] chore: update eslintignore config (#254) --- handwritten/error-reporting/.eslintignore | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/handwritten/error-reporting/.eslintignore b/handwritten/error-reporting/.eslintignore index f08b0fd1c65..2f642cb6044 100644 --- a/handwritten/error-reporting/.eslintignore +++ b/handwritten/error-reporting/.eslintignore @@ -1,4 +1,3 @@ -node_modules/* -samples/node_modules/* +**/node_modules src/**/doc/* build/ From fb943b2c98f5d342a4ec485aa1ab07a3e9292822 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Tue, 13 Nov 2018 08:13:20 -0800 Subject: [PATCH 186/527] chore(deps): update dependency gts to ^0.9.0 (#255) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index ce9f7521ac9..62b5f88d278 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -82,7 +82,7 @@ "eslint-plugin-node": "^8.0.0", "eslint-plugin-prettier": "^3.0.0", "express": "^4.16.3", - "gts": "^0.8.0", + "gts": "^0.9.0", "hapi": "^17.4.0", "ink-docstrap": "^1.3.2", "intelli-espower-loader": "^1.0.1", From e87ca9215027833faa54e78e9d286e3b4e444fd7 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Fri, 16 Nov 2018 11:41:04 -0800 Subject: [PATCH 187/527] fix: sys tests use async/await to allow a fix (#253) --- handwritten/error-reporting/package.json | 4 +- .../system-test/error-reporting.ts | 302 ++++++++++-------- .../utils/errors-api-transport.ts | 35 +- 3 files changed, 187 insertions(+), 154 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 62b5f88d278..df42141dfed 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -73,6 +73,7 @@ "@types/proxyquire": "^1.3.28", "@types/request": "^2.47.1", "@types/restify": "^7.2.0", + "@types/uuid": "^3.4.4", "body-parser": "^1.18.3", "boom": "^7.2.0", "codecov": "^3.0.2", @@ -106,6 +107,7 @@ "proxyquire": "^2.0.1", "restify": "^7.2.0", "source-map-support": "^0.5.9", - "typescript": "~3.1.0" + "typescript": "~3.1.0", + "uuid": "^3.3.2" } } diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index 9729f979b55..cea60349ce8 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -29,11 +29,12 @@ import {ErrorGroupStats, ErrorsApiTransport} from '../utils/errors-api-transport import pick = require('lodash.pick'); import omitBy = require('lodash.omitby'); import * as request from 'request'; +import * as uuid from 'uuid'; import * as util from 'util'; import * as path from 'path'; const ERR_TOKEN = '_@google_STACKDRIVER_INTEGRATION_TEST_ERROR__'; -const TIMEOUT = 60000; +const TIMEOUT = 120000; const envKeys = [ 'GOOGLE_APPLICATION_CREDENTIALS', @@ -139,6 +140,12 @@ if (!shouldRun()) { process.exit(1); } +function sleep(timeout: number) { + return new Promise((resolve) => { + setTimeout(resolve, timeout); + }); +} + describe('Request/Response lifecycle mocking', () => { const sampleError = new Error(ERR_TOKEN); const errorMessage = new ErrorMessage().setMessage(sampleError.message); @@ -430,10 +437,10 @@ describe('Error Reporting API', () => { describe('error-reporting', () => { const SRC_ROOT = path.join(__dirname, '..', 'src'); - const TIMESTAMP = Date.now(); + const UUID = uuid.v4(); const BASE_NAME = 'error-reporting-system-test'; function buildName(suffix: string) { - return [TIMESTAMP, BASE_NAME, suffix].join('_'); + return [UUID, BASE_NAME, suffix].join('_'); } const SERVICE = buildName('service-name'); @@ -443,7 +450,7 @@ describe('error-reporting', () => { let transport: ErrorsApiTransport; let oldLogger: (text: string) => void; let logOutput = ''; - before(() => { + before(async () => { // This test assumes that only the error-reporting library will be // adding listeners to the 'unhandledRejection' event. Thus we need to // make sure that no listeners for that event exist. If this check @@ -458,6 +465,7 @@ describe('error-reporting', () => { logOutput += text; }; reinitialize(); + await transport.deleteAllEvents(); }); function reinitialize(extraConfig?: {}) { @@ -470,7 +478,7 @@ describe('error-reporting', () => { version: VERSION, }, projectId: env.projectId, - keyFilename: process.env.GCLOUD_TESTS_KEY, + keyFilename: process.env.GCLOUD_TESTS_KEY }, extraConfig || {}); errors = new ErrorReporting(initConfiguration); @@ -479,13 +487,9 @@ describe('error-reporting', () => { transport = new ErrorsApiTransport(configuration, logger); } - after(done => { - console.error = oldLogger; + after(async () => { if (transport) { - transport.deleteAllEvents(err => { - assert.ifError(err); - done(); - }); + await transport.deleteAllEvents(); } }); @@ -493,68 +497,90 @@ describe('error-reporting', () => { logOutput = ''; }); - function verifyAllGroups( - messageTest: (message: string) => void, timeout: number, - cb: (matchedErrors: ErrorGroupStats[]) => void) { - setTimeout(() => { - transport.getAllGroups((err, groups) => { - assert.ifError(err); - assert.ok(groups); - - const matchedErrors = groups!.filter(errItem => { - return ( - errItem && errItem.representative && - errItem.representative.serviceContext && - errItem.representative.serviceContext.service === SERVICE && - errItem.representative.serviceContext.version === VERSION && - messageTest(errItem.representative.message)); - }); - - cb(matchedErrors); + async function verifyAllGroups( + messageTest: (message: string) => void, maxCount: number, + timeout: number) { + const start = Date.now(); + let groups: ErrorGroupStats[] = []; + while (groups.length < maxCount && (Date.now() - start) <= timeout) { + const allGroups = await transport.getAllGroups(); + assert.ok(allGroups, 'Failed to get groups from the Error Reporting API'); + + const filteredGroups = allGroups!.filter(errItem => { + return ( + errItem && errItem.representative && + errItem.representative.serviceContext && + errItem.representative.serviceContext.service === SERVICE && + errItem.representative.serviceContext.version === VERSION && + messageTest(errItem.representative.message)); }); - }, timeout); + groups = groups.concat(filteredGroups); + await sleep(1000); + } + + return groups; } - function verifyServerResponse( - messageTest: (message: string) => void, timeout: number, cb: () => void) { - verifyAllGroups(messageTest, timeout, matchedErrors => { - // The error should have been reported exactly once - assert.strictEqual(matchedErrors.length, 1); - const errItem = matchedErrors[0]; - assert.ok(errItem); - assert.strictEqual(errItem.count, '1'); - const rep = errItem.representative; - assert.ok(rep); - // Ensure the stack trace in the message does not contain any frames - // specific to the error-reporting library. - assert.strictEqual(rep.message.indexOf(SRC_ROOT), -1); - // Ensure the stack trace in the mssage contains the frame corresponding - // to the 'expectedTopOfStack' function because that is the name of - // function used in this file that is the topmost function in the call - // stack that is not internal to the error-reporting library. - // This ensures that only the frames specific to the - // error-reporting library are removed from the stack trace. - assert.notStrictEqual(rep.message.indexOf('expectedTopOfStack'), -1); - const context = rep.serviceContext; - assert.ok(context); - assert.strictEqual(context.service, SERVICE); - assert.strictEqual(context.version, VERSION); - cb(); - }); + async function verifyServerResponse( + messageTest: (message: string) => void, maxCount: number, + timeout: number) { + const matchedErrors = await verifyAllGroups(messageTest, maxCount, timeout); + assert.strictEqual( + matchedErrors.length, maxCount, + `Expected to find ${maxCount} error items but found ${ + matchedErrors.length}: ${JSON.stringify(matchedErrors, null, 2)}`); + const errItem = matchedErrors[0]; + assert.ok( + errItem, + 'Retrieved an error item from the Error Reporting API but it is falsy.'); + const rep = errItem.representative; + assert.ok(rep, 'Expected the error item to have representative'); + // Ensure the stack trace in the message does not contain any frames + // specific to the error-reporting library. + assert.strictEqual( + rep.message.indexOf(SRC_ROOT), -1, + `Expected the error item's representative's message to start with ${ + SRC_ROOT} but found '${rep.message}'`); + // Ensure the stack trace in the mssage contains the frame corresponding + // to the 'expectedTopOfStack' function because that is the name of + // function used in this file that is the topmost function in the call + // stack that is not internal to the error-reporting library. + // This ensures that only the frames specific to the + // error-reporting library are removed from the stack trace. + const expectedTopOfStack = 'expectedTopOfStack'; + assert.notStrictEqual( + rep.message.indexOf(expectedTopOfStack), -1, + `Expected the error item's representative's message to not contain ${ + expectedTopOfStack} but found '${rep.message}'`); + const context = rep.serviceContext; + assert.ok( + context, `Expected the error item's representative to have a context`); + assert.strictEqual(context.service, SERVICE); + assert.strictEqual(context.version, VERSION); } // the `errOb` argument can be anything, including `null` and `undefined` - function verifyReporting( + async function verifyReporting( errOb: any, // tslint:disable-line:no-any - messageTest: (message: string) => void, timeout: number, cb: () => void) { - (function expectedTopOfStack() { - errors.report(errOb, undefined, undefined, (err, response, body) => { - assert.ifError(err); - assert(is.object(response)); - deepStrictEqual(body, {}); - verifyServerResponse(messageTest, timeout, cb); + messageTest: (message: string) => void, maxCount: number, + timeout: number) { + function expectedTopOfStack() { + return new Promise((resolve, reject) => { + errors.report( + errOb, undefined, undefined, async (err, response, body) => { + try { + assert.ifError(err); + assert(is.object(response)); + deepStrictEqual(body, {}); + await verifyServerResponse(messageTest, maxCount, timeout); + resolve(); + } catch (e) { + reject(e); + } + }); }); - })(); + } + await expectedTopOfStack(); } // For each test below, after an error is reported, the test waits @@ -564,69 +590,70 @@ describe('error-reporting', () => { // more than TIMEOUT ms has elapsed to avoid test fragility. it('Should correctly publish an error that is an Error object', - function verifyErrors(done) { + async function verifyErrors() { this.timeout(TIMEOUT * 2); const errorId = buildName('with-error-constructor'); - const errOb = (function expectedTopOfStack() { + function expectedTopOfStack() { return new Error(errorId); - })(); - verifyReporting(errOb, message => { + } + const errOb = expectedTopOfStack(); + await verifyReporting(errOb, message => { return message.startsWith('Error: ' + errorId + '\n'); - }, TIMEOUT, done); + }, 1, TIMEOUT); }); it('Should correctly publish an error that is a string', - function(this, done) { + async function(this) { this.timeout(TIMEOUT * 2); const errorId = buildName('with-string'); - verifyReporting(errorId, message => { + await verifyReporting(errorId, message => { return message.startsWith(errorId + '\n'); - }, TIMEOUT, done); + }, 1, TIMEOUT); }); it('Should correctly publish an error that is undefined', - function(this, done) { + async function(this) { this.timeout(TIMEOUT * 2); - verifyReporting(undefined, message => { + await verifyReporting(undefined, message => { return message.startsWith('undefined\n'); - }, TIMEOUT, done); + }, 1, TIMEOUT); }); - it('Should correctly publish an error that is null', function(this, done) { + it('Should correctly publish an error that is null', async function(this) { this.timeout(TIMEOUT * 2); - verifyReporting(null, message => { + await verifyReporting(null, message => { return message.startsWith('null\n'); - }, TIMEOUT, done); + }, 1, TIMEOUT); }); it('Should correctly publish an error that is a plain object', - function(this, done) { + async function(this) { this.timeout(TIMEOUT * 2); - verifyReporting({someKey: 'someValue'}, message => { + await verifyReporting({someKey: 'someValue'}, message => { return message.startsWith('[object Object]\n'); - }, TIMEOUT, done); + }, 1, TIMEOUT); }); it('Should correctly publish an error that is a number', - function(this, done) { + async function(this) { this.timeout(TIMEOUT * 2); const num = new Date().getTime(); - verifyReporting(num, message => { + await verifyReporting(num, message => { return message.startsWith('' + num + '\n'); - }, TIMEOUT, done); + }, 1, TIMEOUT); }); it('Should correctly publish an error that is of an unknown type', - function(this, done) { + async function(this) { this.timeout(TIMEOUT * 2); const bool = true; - verifyReporting(bool, message => { + await verifyReporting(bool, message => { return message.startsWith('true\n'); - }, TIMEOUT, done); + }, 1, TIMEOUT); }); it('Should correctly publish errors using an error builder', - function(this, done) { + async function(this) { this.timeout(TIMEOUT * 2); const errorId = buildName('with-error-builder'); // Use an IIFE with the name `definitionSiteFunction` to use later to @@ -634,13 +661,15 @@ describe('error-reporting', () => { // constructed is used. Use an IIFE with the name `expectedTopOfStack` so // that the test can verify that the stack trace used does not contain // any frames specific to the error-reporting library. - const errOb = (function definitionSiteFunction() { - return (function expectedTopOfStack() { + function definitionSiteFunction() { + function expectedTopOfStack() { return errors.event().setMessage(errorId); - })(); - })(); - (function callingSiteFunction() { - verifyReporting(errOb, message => { + } + return expectedTopOfStack(); + } + const errOb = definitionSiteFunction(); + async function callingSiteFunction() { + await verifyReporting(errOb, message => { // Verify that the stack trace of the constructed error // uses the stack trace at the point where the error was constructed // and not the stack trace at the point where the `report` method @@ -649,59 +678,72 @@ describe('error-reporting', () => { message.startsWith(errorId) && message.indexOf('callingSiteFunction') === -1 && message.indexOf('definitionSiteFunction') !== -1); - }, TIMEOUT, done); - })(); + }, 1, TIMEOUT); + } + await callingSiteFunction(); }); - it('Should report unhandledRejections if enabled', function(this, done) { - this.timeout(TIMEOUT * 2); + it('Should report unhandledRejections if enabled', async function(this) { + this.timeout(TIMEOUT * 4); reinitialize({reportUnhandledRejections: true}); const rejectValue = buildName('promise-rejection'); - (function expectedTopOfStack() { + function expectedTopOfStack() { // An Error is used for the rejection value so that it's stack // contains the stack trace at the point the rejection occured and is // rejected within a function named `expectedTopOfStack` so that the // test can verify that the collected stack is correct. Promise.reject(new Error(rejectValue)); - })(); + } + expectedTopOfStack(); const rejectText = 'Error: ' + rejectValue; - setImmediate(() => { - const expected = 'UnhandledPromiseRejectionWarning: Unhandled ' + - 'promise rejection: ' + rejectText + - '. This rejection has been reported to the ' + - 'Google Cloud Platform error-reporting console.'; - assert.notStrictEqual(logOutput.indexOf(expected), -1); - verifyServerResponse(message => { - return message.startsWith(rejectText); - }, TIMEOUT, done); + await new Promise((resolve, reject) => { + setImmediate(async () => { + try { + const expected = 'UnhandledPromiseRejectionWarning: Unhandled ' + + 'promise rejection: ' + rejectText + + '. This rejection has been reported to the ' + + 'Google Cloud Platform error-reporting console.'; + assert.notStrictEqual(logOutput.indexOf(expected), -1); + await verifyServerResponse(message => { + return message.startsWith(rejectText); + }, 1, TIMEOUT); + resolve(); + } catch (err) { + reject(err); + } + }); }); }); - it('Should not report unhandledRejections if disabled', function(this, done) { + it('Should not report unhandledRejections if disabled', async function(this) { this.timeout(TIMEOUT * 2); reinitialize({reportUnhandledRejections: false}); const rejectValue = buildName('promise-rejection'); - (function expectedTopOfStack() { + function expectedTopOfStack() { Promise.reject(rejectValue); - })(); - setImmediate(() => { - const notExpected = 'UnhandledPromiseRejectionWarning: Unhandled ' + - 'promise rejection: ' + rejectValue + - '. This rejection has been reported to the error-reporting console.'; - assert.strictEqual(logOutput.indexOf(notExpected), -1); - // Get all groups that that start with the rejection value and hence all - // of the groups corresponding to the above rejection (Since the - // buildName() creates a string unique enough to single out only the - // above rejection.) and verify that there are no such groups reported. - verifyAllGroups( - message => { + } + expectedTopOfStack(); + await new Promise((resolve, reject) => { + setImmediate(async () => { + try { + const notExpected = 'UnhandledPromiseRejectionWarning: Unhandled ' + + 'promise rejection: ' + rejectValue + + '. This rejection has been reported to the error-reporting console.'; + assert.strictEqual(logOutput.indexOf(notExpected), -1); + // Get all groups that that start with the rejection value and hence + // all of the groups corresponding to the above rejection (Since the + // buildName() creates a string unique enough to single out only the + // above rejection.) and verify that there are no such groups + // reported. + const matchedErrors = await verifyAllGroups(message => { return message.startsWith(rejectValue); - }, - TIMEOUT, - matchedErrors => { - assert.strictEqual(matchedErrors.length, 0); - done(); - }); + }, 1, TIMEOUT); + assert.strictEqual(matchedErrors.length, 0); + resolve(); + } catch (err) { + reject(err); + } + }); }); }); }); diff --git a/handwritten/error-reporting/utils/errors-api-transport.ts b/handwritten/error-reporting/utils/errors-api-transport.ts index 815335e61ae..bb2ab5332c0 100644 --- a/handwritten/error-reporting/utils/errors-api-transport.ts +++ b/handwritten/error-reporting/utils/errors-api-transport.ts @@ -52,30 +52,19 @@ export class ErrorsApiTransport extends AuthClient { super(config, logger); } - deleteAllEvents(cb: (err: Error|null) => void) { - this.getProjectId((err, id) => { - if (err) { - return cb(err); - } - const options = {uri: [API, id, 'events'].join('/'), method: 'DELETE'}; - this.request_(options).then(r => { - cb(null); - }, e => cb); - }); + async deleteAllEvents() { + const id = await this.getProjectId(); + const options = {uri: [API, id, 'events'].join('/'), method: 'DELETE'}; + return this.request_(options); } - getAllGroups(cb: (err: Error|null, data?: ErrorGroupStats[]) => void) { - this.getProjectId((err, id) => { - if (err) { - return cb(err); - } - const options = { - uri: [API, id, 'groupStats?' + ONE_HOUR_API].join('/'), - method: 'GET' - }; - this.request_(options).then(r => { - cb(null, r.body.errorGroupStats || []); - }, cb); - }); + async getAllGroups(): Promise { + const id = await this.getProjectId(); + const options = { + uri: [API, id, 'groupStats?' + ONE_HOUR_API].join('/'), + method: 'GET' + }; + const r = await this.request_(options); + return r.body.errorGroupStats || []; } } From c6e6d21bac0795fdf6028922571c7a4256608d90 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot <44816363+yoshi-automation@users.noreply.github.com> Date: Mon, 19 Nov 2018 09:12:04 -0800 Subject: [PATCH 188/527] chore: add a synth.metadata chore: add a synth.metadata --- handwritten/error-reporting/synth.metadata | 1 + 1 file changed, 1 insertion(+) create mode 100644 handwritten/error-reporting/synth.metadata diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata new file mode 100644 index 00000000000..9e26dfeeb6e --- /dev/null +++ b/handwritten/error-reporting/synth.metadata @@ -0,0 +1 @@ +{} \ No newline at end of file From 8033c355d4f82e9e36270ca600da78257f56bf7d Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Thu, 29 Nov 2018 23:43:04 -0800 Subject: [PATCH 189/527] chore: update key for system tests (#265) --- .../error-reporting/.circleci/key.json.enc | Bin 2384 -> 2368 bytes handwritten/error-reporting/.gitignore | 1 + 2 files changed, 1 insertion(+) diff --git a/handwritten/error-reporting/.circleci/key.json.enc b/handwritten/error-reporting/.circleci/key.json.enc index 7453128c9f17320390a76eab60e8df5568d6b27a..f9b9648b42ede2bb1cc2e8fc41393b23850afb8b 100644 GIT binary patch literal 2368 zcmV-G3BUGJVQh3|WM5zF8UEP&7Y9Q2;jGD zp6RZG$@jHC1Jwsd0y($od+4)xS9aSBX7pe=i&MzOc{jC1`%F=WDaO1zJ`uEKYLwgO zd|;FAZjfgLa@BM#*rU7{`7&9im0O=<1MrDO~)ZpWG{-f}h^#s3@}RW^|W&2N(e?v&dPtq6a= zu#inq*<116H)SS~N7RXv!M!C&Kycq{CbMS)u+k`uUwa_8XeN{5=9pZ_Z!AlFsD{Ky z6lcJX*cU)(T)p)6T5OFrc#gUYfNa#A436NBQ*h5mh(JU~1p{@u2gb;ULD$>A1^Ti$6U(RGBYmz z)WWrD@Mi=I+^o361eAg;8iVs}^#g2~lUxtox8tGiP!O+*yK2||rudVPxU{N{X|@wx zXw}7`O{vn`zvONC)#sGsb`()4t<|9W;N8?AkHbn`eT2tFYcCJ$Bt3mZSNG1a zEt}MrbZ6zk=P9(vH!8MLWU)&e+qSt_!5-lUuTF8Maqtl5NSRV$$|=K4m4o9^8A{a; zc(JHRDut`cf8(;h&{<19+7J9YKom%(Nz5m&^aJ?E@m(UTd~>f;jAELi1?pnqmeg3u z@302fzc5#sv%;)^XKc#Iz0j>TVtfUCgDJB=qyhe>=qZ#7{}(9@f=nuCc;Aqb;0Q`hdrG_;x zsXOD6Hy~eOS&47Cc?~m$z=Br}- zIim0tc4Pb*JZUG66(aLc%FjSADZ0~FBN`zMsl{wF^j6F}f$ z;nyaR3rg--IS8|de;wT`ERD{KfO|Qj-DGvyXLke~_RV3fx&pSeOyKIvh=BS@Rh(~> zqGa`ZaBXsSFNE|8fBPxt>T^bPH4Y^B&Yox%WXfjglp=!2!7IwItHG-3FurU%;a#k9&&Y;Y2e;*TyKn=m%fAcEUPJ_Azv zh8kV88ag>)rO96}K%#(dBPAQemi0j+djADa`yhBIrM+abmMyid{8%>Lbik9zCTJ1O z3*{#CA@^#!kh&YD&a32sNj6U?62?^0%C5BEvy!8{$nVK3Ks~Z*<0D_uCGoB3zZ#qn z{MHKcSz*JvbchgvDQs(b{?ixtE8yXpWM#yC3)xaam#l}b*W zNz)-@z%eXnY9#U6-&VEvjhT%cR{RUEBQgh(E_<_1GB;wLiR;u}jGhn!F+=|*Gn7gq zR1Cpv|1r_QK2%f2wWi^Q8LIp_L`F1f_I*09O+s-d7y>mm9~Q`bWtH+7Z@x9zy$us6 z?5pU}_TuL%IreK_NoZ%xnfP&`<45a-n4u7Mb4Fris{I1~*;Q_9#g=u7zQi^cUT^DT z%(f=zj;!|X?EW^|?}KpN>o0z2msNd_t11`j*A3cuMQER^xkKCZ&c7qD?Q4SEul;S0 zAz$(KNju4-FX~kwkPv^u=We7tL%2Z8gaZ`wRBPO=jppIF!NJ(b2MY4uUkuu=zM!lA z&X>?I^0oHX)Z{3hynqGtVz*AU!kM93Rt7`>F0Z7wKs1igfsV%R8Fg5q z|6>KZ@yNYkI2VcbtE2{AiX<0fyVvzk(Z0z01m412U91|^PfDoQ{6VCkZMW82i(R}= z7lB+Gy^!OE^(LF~k9&%E=pLE^DH4B+)Ld2SL5tN@7g{8?G#`fP?wUxY4O>m(y>ri| zyGJ2C$&cXAyRzIU3qs&l&EV5k1R*)D<)CHA9rkcNd6UQ?AV9PIl8jI*1&NMMUGF7I zH98&!367TJO*y`&s3yw(-&d5t%A7x!0Ic zvj?Dp-AIE*bPn)dbjqAknu5r{3OI~9t%ZB!`G5j>bQxFYfrjc=M|ZNxm+78?C&7RZ m{RRtAfx{N3NynyEAB$%1=zfCmjW5S?DqnWlVv@4hh0m22Ewal1 literal 2384 zcmV-W39t53VQh3|WM5xN)F{dHKYX<#N3uXQ2q&$OBDZ16#~t|jd3IxQWUym8`ZGi{D$JGq3K{dT{{Rzva$^4+^IJ=t|@x;^suR68lZ5#?A#hKPU`TNTz zjHr)z zkLh`(`u15EeBHgmZ;)FTFi8t|(=9Wl-g@DUEj?gNb->TM<2p$;h{3?O3C~!Qt@o4z zZUnOn;g^_aL{!wKmpca)qo}s5Bgh8i8)xUDw1rt6y}niyx_OCd>`kZT=W?64vuRuX zq;-*eu?_|kfxb=w%PL;i=KH9me$-DlQKpBgN?#OycB{~iyWd$9kcc(5$|t%TqEN;I zWd0ej6az&=sce z#edp+7wGHXM#RZf`tu01k_NLyDlOO520b!g3zvQz|DHoe`e@@$UMvtqjqdiPtCu^0 zMn)bWRY;)c4ljLwUJ1z|M-c)DVMS1klPG9}cVo06yNhdXeCFEHEC(yoD=E?F zW!BkZO^4i7Z9ft&Gas?N0;*=^%4;RwoUO8-y_$?jAMY^hzlDF#ei0?V+ILBipYGT= zx@>11)jTBlY7!)enc)zdZ``_W=fgmD^(0HOHxq(L;RzReX{p0(XlJfU=#Xhg$lzh5 zk|E;CZ`TP1O{^f_67n`l(=RT7vvjT1afirVgp$yU7SqSw8ghzQ`@ONERI1=bF&bBc z4T8^-Iju0VsH_kZ;!Qu3UqGepw$n2zrLqA08Nt9I%fE{*3^l+zgur(!YM9p=v-ofs z*_0M1@y3OxiJ8nK33!GzrNKFlWzHYzX1-oSKe9^$kqXL6{S3=rdJ62?qidWoM2{me>qh+l)3%-!avZXIR0!K zl%1IZq)MEzPsyCFGN^XQn$tYkns(P)WpQ*ujhnMIP8vQ+?AFLl^8HqPD<$#Jra}l&-}!>7aT-oJ z(-d}x!ANK%&eF0oIyefXD$GDm)${!c*1m z6dN_m!9|L#Sj@dA4hm`FmVrIBvg#A7pm6+Q1+6~AWB2pleC`qpjVP%Ff3O7zbq)Ju z@@n^^N+kfi1s0#r+Y;_rGVF+k3jJP584@~>d)w9LrxeZjqp+4pLw-u%zdCK0m{C{I z#A16mlX1*WX}$NMaf^rfeXiA0%PQbO@9$ZgrinNQ(v!SMgN-R7PO0C~fLXv%zT?o@ z@_Ms12oi_?TKORXxyZgyupxAHvpz1XuIqM~b>15uQf=WS1Ql=%y5`I!s!yh)S_iyo@DYG`u?cisVgKdk(KJx@46dIQRveAa=z%D^$vdD2QLip*pSt~i(iNa&BFZP_AB^4ozgYM9{I z9JkDRrK$;!u3DQLKhg3}tHLRe*zS!31+gVqrN z-G~n2mCN^yv~W76d2{OdX{_yMh1wDM={E(JOclpa#6EX$E6P1@{6a)!%8TP2e1f0t z0I2&ENIP(4ACt;mq)jrR{%L64xp@`+i1n+^ww)uz^q~xTlWQW@2H28a>6{J*ZX28L zXLnLSq#$R&$C+ZOKmKzpLUA|aA_PG^_k!NG!1et8&>AGs7aL=-A5m z@;~_jOc-D5$_I*wem2LRwaXDb8}sl=HXN4etdwu4KaL%%A}Bgtv9ne)F880Pj7!gJ zgeXMM6CrrYO>`MwTn!0?skX)6V^!aQyxd`Jef^YeEO1otOFUw}RFme#VLh8`=DKTS930 zp!Mc~e`KPB-xfA{!3z|G*urvR_vFiZ+LwE&8$+QS9yu6f|}FRt#(cUlXTCRyJZ zCcQ3v{BzwAOEMlw4W7=KhfD?lJXxM*F?fDWgQ3O)B};mHy`AIJ6QKjf$JzQT8S-Sm zUEWgnI7Y!Od(7EFJ^{%E+Up40pzNLt8;m>cviwC}cAckwd5m_f!Hptl#gTXsYco9y zd}-1#V{4YtC?Qmn=I{^ry})Ex-|{0E$QiN~!IfdlBtkjaw(8Nl`+) Date: Sat, 1 Dec 2018 18:41:36 -0800 Subject: [PATCH 190/527] fix(build): fix system key decryption (#267) * fix(build): fix system key decryption * Revert "chore: update key for system tests (#265)" This reverts commit 845a3f4600907b593110c1cb4ff898c9699582db. --- .../error-reporting/.circleci/config.yml | 4 ++-- .../error-reporting/.circleci/key.json.enc | Bin 2368 -> 2384 bytes handwritten/error-reporting/.gitignore | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/.circleci/config.yml b/handwritten/error-reporting/.circleci/config.yml index 6735ebdaaa1..86c63432242 100644 --- a/handwritten/error-reporting/.circleci/config.yml +++ b/handwritten/error-reporting/.circleci/config.yml @@ -116,7 +116,7 @@ jobs: name: Decrypt credentials. command: | if ! [[ -z "${SYSTEM_TESTS_ENCRYPTION_KEY}" ]]; then - openssl aes-256-cbc -d -in .circleci/key.json.enc \ + openssl aes-256-cbc -d -md md5 -in .circleci/key.json.enc \ -out .circleci/key.json \ -k "${SYSTEM_TESTS_ENCRYPTION_KEY}" fi @@ -148,7 +148,7 @@ jobs: command: | if ! [[ -z "${SYSTEM_TESTS_ENCRYPTION_KEY}" ]]; then for encrypted_key in .circleci/*.json.enc; do - openssl aes-256-cbc -d -in $encrypted_key \ + openssl aes-256-cbc -d -md md5 -in $encrypted_key \ -out $(echo $encrypted_key | sed 's/\.enc//') \ -k "${SYSTEM_TESTS_ENCRYPTION_KEY}" done diff --git a/handwritten/error-reporting/.circleci/key.json.enc b/handwritten/error-reporting/.circleci/key.json.enc index f9b9648b42ede2bb1cc2e8fc41393b23850afb8b..7453128c9f17320390a76eab60e8df5568d6b27a 100644 GIT binary patch literal 2384 zcmV-W39t53VQh3|WM5xN)F{dHKYX<#N3uXQ2q&$OBDZ16#~t|jd3IxQWUym8`ZGi{D$JGq3K{dT{{Rzva$^4+^IJ=t|@x;^suR68lZ5#?A#hKPU`TNTz zjHr)z zkLh`(`u15EeBHgmZ;)FTFi8t|(=9Wl-g@DUEj?gNb->TM<2p$;h{3?O3C~!Qt@o4z zZUnOn;g^_aL{!wKmpca)qo}s5Bgh8i8)xUDw1rt6y}niyx_OCd>`kZT=W?64vuRuX zq;-*eu?_|kfxb=w%PL;i=KH9me$-DlQKpBgN?#OycB{~iyWd$9kcc(5$|t%TqEN;I zWd0ej6az&=sce z#edp+7wGHXM#RZf`tu01k_NLyDlOO520b!g3zvQz|DHoe`e@@$UMvtqjqdiPtCu^0 zMn)bWRY;)c4ljLwUJ1z|M-c)DVMS1klPG9}cVo06yNhdXeCFEHEC(yoD=E?F zW!BkZO^4i7Z9ft&Gas?N0;*=^%4;RwoUO8-y_$?jAMY^hzlDF#ei0?V+ILBipYGT= zx@>11)jTBlY7!)enc)zdZ``_W=fgmD^(0HOHxq(L;RzReX{p0(XlJfU=#Xhg$lzh5 zk|E;CZ`TP1O{^f_67n`l(=RT7vvjT1afirVgp$yU7SqSw8ghzQ`@ONERI1=bF&bBc z4T8^-Iju0VsH_kZ;!Qu3UqGepw$n2zrLqA08Nt9I%fE{*3^l+zgur(!YM9p=v-ofs z*_0M1@y3OxiJ8nK33!GzrNKFlWzHYzX1-oSKe9^$kqXL6{S3=rdJ62?qidWoM2{me>qh+l)3%-!avZXIR0!K zl%1IZq)MEzPsyCFGN^XQn$tYkns(P)WpQ*ujhnMIP8vQ+?AFLl^8HqPD<$#Jra}l&-}!>7aT-oJ z(-d}x!ANK%&eF0oIyefXD$GDm)${!c*1m z6dN_m!9|L#Sj@dA4hm`FmVrIBvg#A7pm6+Q1+6~AWB2pleC`qpjVP%Ff3O7zbq)Ju z@@n^^N+kfi1s0#r+Y;_rGVF+k3jJP584@~>d)w9LrxeZjqp+4pLw-u%zdCK0m{C{I z#A16mlX1*WX}$NMaf^rfeXiA0%PQbO@9$ZgrinNQ(v!SMgN-R7PO0C~fLXv%zT?o@ z@_Ms12oi_?TKORXxyZgyupxAHvpz1XuIqM~b>15uQf=WS1Ql=%y5`I!s!yh)S_iyo@DYG`u?cisVgKdk(KJx@46dIQRveAa=z%D^$vdD2QLip*pSt~i(iNa&BFZP_AB^4ozgYM9{I z9JkDRrK$;!u3DQLKhg3}tHLRe*zS!31+gVqrN z-G~n2mCN^yv~W76d2{OdX{_yMh1wDM={E(JOclpa#6EX$E6P1@{6a)!%8TP2e1f0t z0I2&ENIP(4ACt;mq)jrR{%L64xp@`+i1n+^ww)uz^q~xTlWQW@2H28a>6{J*ZX28L zXLnLSq#$R&$C+ZOKmKzpLUA|aA_PG^_k!NG!1et8&>AGs7aL=-A5m z@;~_jOc-D5$_I*wem2LRwaXDb8}sl=HXN4etdwu4KaL%%A}Bgtv9ne)F880Pj7!gJ zgeXMM6CrrYO>`MwTn!0?skX)6V^!aQyxd`Jef^YeEO1otOFUw}RFme#VLh8`=DKTS930 zp!Mc~e`KPB-xfA{!3z|G*urvR_vFiZ+LwE&8$+QS9yu6f|}FRt#(cUlXTCRyJZ zCcQ3v{BzwAOEMlw4W7=KhfD?lJXxM*F?fDWgQ3O)B};mHy`AIJ6QKjf$JzQT8S-Sm zUEWgnI7Y!Od(7EFJ^{%E+Up40pzNLt8;m>cviwC}cAckwd5m_f!Hptl#gTXsYco9y zd}-1#V{4YtC?Qmn=I{^ry})Ex-|{0E$QiN~!IfdlBtkjaw(8Nl`+)9Q2;jGD zp6RZG$@jHC1Jwsd0y($od+4)xS9aSBX7pe=i&MzOc{jC1`%F=WDaO1zJ`uEKYLwgO zd|;FAZjfgLa@BM#*rU7{`7&9im0O=<1MrDO~)ZpWG{-f}h^#s3@}RW^|W&2N(e?v&dPtq6a= zu#inq*<116H)SS~N7RXv!M!C&Kycq{CbMS)u+k`uUwa_8XeN{5=9pZ_Z!AlFsD{Ky z6lcJX*cU)(T)p)6T5OFrc#gUYfNa#A436NBQ*h5mh(JU~1p{@u2gb;ULD$>A1^Ti$6U(RGBYmz z)WWrD@Mi=I+^o361eAg;8iVs}^#g2~lUxtox8tGiP!O+*yK2||rudVPxU{N{X|@wx zXw}7`O{vn`zvONC)#sGsb`()4t<|9W;N8?AkHbn`eT2tFYcCJ$Bt3mZSNG1a zEt}MrbZ6zk=P9(vH!8MLWU)&e+qSt_!5-lUuTF8Maqtl5NSRV$$|=K4m4o9^8A{a; zc(JHRDut`cf8(;h&{<19+7J9YKom%(Nz5m&^aJ?E@m(UTd~>f;jAELi1?pnqmeg3u z@302fzc5#sv%;)^XKc#Iz0j>TVtfUCgDJB=qyhe>=qZ#7{}(9@f=nuCc;Aqb;0Q`hdrG_;x zsXOD6Hy~eOS&47Cc?~m$z=Br}- zIim0tc4Pb*JZUG66(aLc%FjSADZ0~FBN`zMsl{wF^j6F}f$ z;nyaR3rg--IS8|de;wT`ERD{KfO|Qj-DGvyXLke~_RV3fx&pSeOyKIvh=BS@Rh(~> zqGa`ZaBXsSFNE|8fBPxt>T^bPH4Y^B&Yox%WXfjglp=!2!7IwItHG-3FurU%;a#k9&&Y;Y2e;*TyKn=m%fAcEUPJ_Azv zh8kV88ag>)rO96}K%#(dBPAQemi0j+djADa`yhBIrM+abmMyid{8%>Lbik9zCTJ1O z3*{#CA@^#!kh&YD&a32sNj6U?62?^0%C5BEvy!8{$nVK3Ks~Z*<0D_uCGoB3zZ#qn z{MHKcSz*JvbchgvDQs(b{?ixtE8yXpWM#yC3)xaam#l}b*W zNz)-@z%eXnY9#U6-&VEvjhT%cR{RUEBQgh(E_<_1GB;wLiR;u}jGhn!F+=|*Gn7gq zR1Cpv|1r_QK2%f2wWi^Q8LIp_L`F1f_I*09O+s-d7y>mm9~Q`bWtH+7Z@x9zy$us6 z?5pU}_TuL%IreK_NoZ%xnfP&`<45a-n4u7Mb4Fris{I1~*;Q_9#g=u7zQi^cUT^DT z%(f=zj;!|X?EW^|?}KpN>o0z2msNd_t11`j*A3cuMQER^xkKCZ&c7qD?Q4SEul;S0 zAz$(KNju4-FX~kwkPv^u=We7tL%2Z8gaZ`wRBPO=jppIF!NJ(b2MY4uUkuu=zM!lA z&X>?I^0oHX)Z{3hynqGtVz*AU!kM93Rt7`>F0Z7wKs1igfsV%R8Fg5q z|6>KZ@yNYkI2VcbtE2{AiX<0fyVvzk(Z0z01m412U91|^PfDoQ{6VCkZMW82i(R}= z7lB+Gy^!OE^(LF~k9&%E=pLE^DH4B+)Ld2SL5tN@7g{8?G#`fP?wUxY4O>m(y>ri| zyGJ2C$&cXAyRzIU3qs&l&EV5k1R*)D<)CHA9rkcNd6UQ?AV9PIl8jI*1&NMMUGF7I zH98&!367TJO*y`&s3yw(-&d5t%A7x!0Ic zvj?Dp-AIE*bPn)dbjqAknu5r{3OI~9t%ZB!`G5j>bQxFYfrjc=M|ZNxm+78?C&7RZ m{RRtAfx{N3NynyEAB$%1=zfCmjW5S?DqnWlVv@4hh0m22Ewal1 diff --git a/handwritten/error-reporting/.gitignore b/handwritten/error-reporting/.gitignore index 15a1347d47e..bb2732f1f9a 100644 --- a/handwritten/error-reporting/.gitignore +++ b/handwritten/error-reporting/.gitignore @@ -11,4 +11,3 @@ system-test/*key.json build .vscode package-lock.json -key.json From b66301d66de441ed33428870aaa4a8de2d920f87 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Mon, 3 Dec 2018 15:50:41 -0800 Subject: [PATCH 191/527] docs: update readme badges (#269) --- handwritten/error-reporting/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index f0421ba10db..e5fab09e25d 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -3,8 +3,7 @@ # Stackdriver Error Reporting: Node.js Client [![release level](https://img.shields.io/badge/release%20level-beta-yellow.svg?style=flat)](https://cloud.google.com/terms/launch-stages) -[![CircleCI](https://img.shields.io/circleci/project/github/googleapis/nodejs-error-reporting.svg?style=flat)](https://circleci.com/gh/googleapis/nodejs-error-reporting) -[![AppVeyor](https://ci.appveyor.com/api/projects/status/github/googleapis/nodejs-error-reporting?branch=master&svg=true)](https://ci.appveyor.com/project/googleapis/nodejs-error-reporting) +[![npm version](https://img.shields.io/npm/v/@google-cloud/error-reporting.svg)](https://www.npmjs.org/package/@google-cloud/error-reporting) [![codecov](https://img.shields.io/codecov/c/github/googleapis/nodejs-error-reporting/master.svg?style=flat)](https://codecov.io/gh/googleapis/nodejs-error-reporting) > Node.js idiomatic client for [Error Reporting][product-docs]. @@ -113,3 +112,4 @@ See [LICENSE](LICENSE) [client-docs]: https://cloud.google.com/nodejs/docs/reference/error-reporting/latest/ [product-docs]: https://cloud.google.com/error-reporting/docs/ + From 4d6970eecc540767b9128e078c2bddbe0f2025ae Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Mon, 3 Dec 2018 15:51:03 -0800 Subject: [PATCH 192/527] fix(deps): update dependency @google-cloud/common to ^0.27.0 (#264) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index df42141dfed..54a0aff0844 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -43,7 +43,7 @@ "license-check": "jsgl --local ." }, "dependencies": { - "@google-cloud/common": "^0.26.0", + "@google-cloud/common": "^0.27.0", "console-log-level": "^1.4.0", "is": "^3.2.1", "lodash.has": "^4.5.2", From a86ec3797d82611fc6248ad8d7e656855e5cd15f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Mon, 3 Dec 2018 21:04:13 -0800 Subject: [PATCH 193/527] chore(deps): update dependency typescript to ~3.2.0 (#266) --- handwritten/error-reporting/package.json | 2 +- handwritten/error-reporting/src/index.ts | 24 ++++++++++--------- .../system-test/error-reporting.ts | 2 +- .../test/unit/interfaces/restify.ts | 15 +++++++----- .../error-reporting/test/unit/logger.ts | 4 ++-- 5 files changed, 26 insertions(+), 21 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 54a0aff0844..0a2f8e2f530 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -107,7 +107,7 @@ "proxyquire": "^2.0.1", "restify": "^7.2.0", "source-map-support": "^0.5.9", - "typescript": "~3.1.0", + "typescript": "~3.2.0", "uuid": "^3.3.2" } } diff --git a/handwritten/error-reporting/src/index.ts b/handwritten/error-reporting/src/index.ts index 97f61377036..4d1a8adbfef 100644 --- a/handwritten/error-reporting/src/index.ts +++ b/handwritten/error-reporting/src/index.ts @@ -32,7 +32,8 @@ import * as restifyInterface from './interfaces/restify'; import {createLogger} from './logger'; import * as manualRequestExtractor from './request-extractors/manual'; -export type RestifyRequestHandler = (req: {}, res: {}, next: {}) => {}; +// tslint:disable-next-line:no-any +export type RestifyRequestHandler = (req: any, res: any, next: Function) => any; /** * @typedef ConfigurationOptions @@ -92,25 +93,26 @@ export type RestifyRequestHandler = (req: {}, res: {}, next: {}) => {}; * reporting configuration. */ export class ErrorReporting { - private _logger: Logger; - private _config: Configuration; - private _client: AuthClient; + private _logger!: Logger; + private _config!: Configuration; + private _client!: AuthClient; // the `err` argument can be anything, including `null` and `undefined` - report: + report!: (err: any, // tslint:disable-line:no-any request?: manualRequestExtractor.Request, additionalMessage?: string|{}, callback?: manualInterface.Callback|{}|string) => ErrorMessage; - event: () => ErrorMessage; - hapi: { + event!: () => ErrorMessage; + hapi!: { register: (server: {}, options: {}, next?: Function) => void; name: string; version?: string; }; - express: (err: {}, req: {}, res: {}, next: Function) => void; - restify: (server: {}) => RestifyRequestHandler | RestifyRequestHandler[]; + express!: (err: {}, req: {}, res: {}, next: Function) => void; // tslint:disable-next-line:no-any - koa: (context: any, next: {}) => IterableIterator<{}>; + restify!: (server: any) => RestifyRequestHandler | RestifyRequestHandler[]; // tslint:disable-next-line:no-any - koa2: (context: any, next: {}) => Promise; + koa!: (context: any, next: {}) => IterableIterator<{}>; + // tslint:disable-next-line:no-any + koa2!: (context: any, next: {}) => Promise; constructor(initConfiguration?: ConfigurationOptions) { if (!(this instanceof ErrorReporting)) { diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index cea60349ce8..bed4241c357 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -460,7 +460,7 @@ describe('error-reporting', () => { assert.strictEqual(process.listenerCount('unhandledRejection'), 0); oldLogger = console.error; console.error = function(this) { - const text = util.format.apply(null, arguments); + const text = util.format.apply(null, arguments as {} as [{}, Array<{}>]); oldLogger(text); logOutput += text; }; diff --git a/handwritten/error-reporting/test/unit/interfaces/restify.ts b/handwritten/error-reporting/test/unit/interfaces/restify.ts index b196f7caa30..5ac8a64d1b9 100644 --- a/handwritten/error-reporting/test/unit/interfaces/restify.ts +++ b/handwritten/error-reporting/test/unit/interfaces/restify.ts @@ -16,6 +16,7 @@ import * as assert from 'assert'; import {EventEmitter} from 'events'; +import * as restify from 'restify'; import {Configuration} from '../../../src/configuration'; import {RequestHandler} from '../../../src/google-apis/auth-client'; @@ -44,7 +45,7 @@ describe('restifyInterface', () => { // return the bound function which the user will actually interface with const errorHandlerInstance = restifyInterface(null!, null!); // execute the handler the user will use with the stubbed server instance - errorHandlerInstance(ee); + errorHandlerInstance(ee as restify.Server); assert.strictEqual( ee.listenerCount(UNCAUGHT_EVENT), 1, 'Listeners on event should now be one'); @@ -53,11 +54,11 @@ describe('restifyInterface', () => { describe('Request handler lifecycle events', () => { const ee = new EventEmitter(); const errorHandlerInstance = restifyInterface(null!, null!); - const requestHandlerInstance = errorHandlerInstance(ee); + const requestHandlerInstance = errorHandlerInstance(ee as restify.Server); describe('default path on invalid input', () => { it('Should not throw', () => { assert.doesNotThrow(() => { - requestHandlerInstance(null, null, noOp); + requestHandlerInstance(null!, null!, noOp); }); }); }); @@ -71,7 +72,8 @@ describe('restifyInterface', () => { }); it('Should not throw while handling the req/res objects', () => { assert.doesNotThrow(() => { - requestHandlerInstance(req, res, noOp); + requestHandlerInstance( + req as restify.Request, res as restify.Response, noOp); }); }); it('Should have 1 listener', () => { @@ -107,7 +109,7 @@ describe('restifyInterface', () => { } as {} as Configuration; const errorHandlerInstance = restifyInterface(client as {} as RequestHandler, config); - const requestHandlerInstance = errorHandlerInstance(ee); + const requestHandlerInstance = errorHandlerInstance(ee as restify.Server); const req = new EventEmitter(); const res = new EventEmitter(); (res as {} as {statusCode: number}).statusCode = 500; @@ -116,7 +118,8 @@ describe('restifyInterface', () => { }); it('Should not throw on instantiation', () => { assert.doesNotThrow(() => { - requestHandlerInstance(req, res, noOp); + requestHandlerInstance( + req as restify.Request, res as restify.Response, noOp); }); }); it('Should have 1 listener on the finish event', () => { diff --git a/handwritten/error-reporting/test/unit/logger.ts b/handwritten/error-reporting/test/unit/logger.ts index a4794d583ea..d983a583531 100644 --- a/handwritten/error-reporting/test/unit/logger.ts +++ b/handwritten/error-reporting/test/unit/logger.ts @@ -55,7 +55,7 @@ describe('logger', () => { delete process.env.GCLOUD_ERRORS_LOGLEVEL; }); it('Should thow given logLevel as null', () => { - assert.throws(createLogger.bind(null, {logLevel: null}), undefined); + assert.throws(createLogger.bind(null, {logLevel: null!}), undefined); }); }); describe('Default log level', () => { @@ -67,7 +67,7 @@ describe('logger', () => { text = ''; // eslint-disable-next-line no-console console.error = function(this) { - oldLog.apply(this, arguments); + oldLog.apply(this, arguments as {} as [string]); for (let i = 0; i < arguments.length; i++) { text += arguments[i]; } From 6631323c42751e573903ef8e8844c3b110de4b54 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Tue, 4 Dec 2018 08:54:54 -0800 Subject: [PATCH 194/527] chore: update license file (#271) --- handwritten/error-reporting/LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/LICENSE b/handwritten/error-reporting/LICENSE index 7a4a3ea2424..d6456956733 100644 --- a/handwritten/error-reporting/LICENSE +++ b/handwritten/error-reporting/LICENSE @@ -199,4 +199,4 @@ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and - limitations under the License. \ No newline at end of file + limitations under the License. From 3d7d4e243c915995571ee5d9ae4bdf6c72a72b46 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Tue, 4 Dec 2018 13:21:10 -0800 Subject: [PATCH 195/527] chore: update system tests key (#272) --- .../error-reporting/.circleci/key.json.enc | Bin 2384 -> 2368 bytes handwritten/error-reporting/.gitignore | 1 + 2 files changed, 1 insertion(+) diff --git a/handwritten/error-reporting/.circleci/key.json.enc b/handwritten/error-reporting/.circleci/key.json.enc index 7453128c9f17320390a76eab60e8df5568d6b27a..b3e110b78396a7c7c6ac21d8b8c07c5c0649aae0 100644 GIT binary patch literal 2368 zcmV-G3BUGJVQh3|WM5xyE17_;KNZL5r}e80FoO%*$5NV!YcBupT%TJwZdmV7A`Inv zGYyJS^;(FUF46mL;;0H{D&-ytoHr|PqB!Ox!#rJsd=jv#SvPAXNgAY%!Y>+DT9g$( zJ7?>Z`06A&(8q8yMM-|JL^Y*b`IKGjM;>B-cd=y#y`o||3D+>{NBW66dr#)DVh+*1 z?C0>p0q;}B+Cj?2eZ&V9Iw$-wi79;<66c7T67JsUrobX1y9%gVfyjQScUGVG)PIn4 z;^wvB1$5wkr9vt}$4qEQ`<7e~b8ZW0Q%=x#ip&hGvoqg$UDL}WhK#>@PE1%H56(+k zdw6{Ib;14NTq~)469V&pT;o=qq7L}vG3BQ?;iV)ay;jkM*p7WxZ8mFpup*YmT6Gb4 z-r)6pjti1TsX^rtLkfhB(~;=JE_-lm`y2Ie#>~)Fb}ME|DE7r2$x$C_2Z$!aP?`9} zjN*2>hv}5}19L@o(c!)%P*r6v0eZVV`sjsgL=Ea{y}xa93lYb)IqS9?5Bw=?D2C48 z>r4 zZSu?|htS+t*L!E2{6cN{5bn*(F-ELCmyg^@ws_&))#`TmuSZaa#ty~E<7gMCS6ZRb z__lHmL4c;Ex2rZt3n8Ve4qKO5vrrY!C%;^06S$(ZZf;!DO=qg?GS4w-?XpPCkkP*; zsBj7-3Z#OAX&u3()GFPKTK*r1#(}H3nD>)AT@Lfe*F$MD(R-KRevS~oG@}CTBK*?% zZUez3p-3#Ju%GZw6AbmiAi)J#mC8r!E9%LCTo%Mulf3GuUUuNM{oGjno(}9UYes+4 z)#QLF0LK3^TE(yJ2~rur_Rf7uLO+aN#nu;f&3g6IDM;Z)Bak#bNL&FHF@`-^Bh-KW zFz+--YvbuIs@O{kT>A!vP(ND&a|sgz<>vCh1Rh<(!hpc4#^BrdR4xlXEID=k6n3hl zr71tJpc%I-z8{Pnsd#8LV1!bzpDAawfy3oDN{Yv0NmBKORUz$4B^5khe`%#SY+oU6 zMN%x@g#EN9Di%KerZX3r;eNqZX;{pdi8dl3OGqXv1v=aijkoP(W^WuR!YC_63(NP2 z89Yu|8witNJ^YoCDPrDyxh3Az4}_l&DyY=!6wZ-9-=l=zNcw+<<5LZV4z62f%`6?< zCyqt*wN$1_nrkA{n`J55vFG4E6RF)Oh|}EVoe64Io&1@7hv&%m#x?hy^j*SvUdG{J zL9+)&+4*7%OfW`hTmrB(7lSP(3x1bkG8S0=f59x&XO4?S5?&>IUys1w%i@^zJ`FkP zPcUV)`L-@JJUsTUhmtJT?>KaL4ksNWmd?F{W)6rMQ^Oj=g>_ zG?4`)r3CSXp{cSMEGe zITaMJf`niFb4Q06>dEHbYgJ!Bf3ke`YVkIX7rE+?dc~LlV!{+xQP1fNugKK}H;;$!{?lX(ah5g}E0g3ae^37JOWQoN zO*M#$bKC?h)PO}Ar%c`YWgqpq1(xZ%;4Hw5Q(2X_!5hlLx^<(9KOF=fTWf81S~Knx zx~>sP|1Yn_+=*WK{)iWFq~awBh+`C8!?0yEubaG>#5s-Sf0DV*7hXy>lMa@!*#GDW z)Hs6FcOk%sk+#DXuF^mlN0$S_=nQbnsXz0{S&u|D3qi5^+RLZ1XG#KmMk>K7U!Uj| zX3dl*P#vlMi#xyvk! z5hy`$X0cWi&cWFw9mMr}vI?r+>+_@8Uc5+m6z`HU%#koGw{=D978w2B6wPaGV!Uaz zBcWX9m8JWQ_LW8Ku>=VZ217MPOd87b%_J|Mt;s1nX=K;xjpc~Lt*oTxoFfzaLY8OV zudRPPR+Q)6P||CrrFz#YcJHvdF{NPY^{@j>%EFmCY*e9DQt~*}8=717G@n%%li+$i z;PNjSBvR8Y^>QFuaNEt-(g#mGcv)EA~UYY=-qP?SMu z^W`fYqIg^2v%w;ZZRBKjRJJE6;!)s_F{~hJ3$HVowz3*C-Wvey3BFIFT6R}RComO@ zCN_OwWschC<$L>q!D~CNieXUrO119cGaE?IbQQn%Cx8#V9ih%jZH?Bzkeel_sYROO zBoFAdEpl{8KcHr(`=Rg)XqcWjIVl}RI;1M@G^g7! mK~#5G*Z^4rJo`6RI&VU;udM~b1FZ%a2@klZu%9L9=F#tiyP1Cg literal 2384 zcmV-W39t53VQh3|WM5xN)F{dHKYX<#N3uXQ2q&$OBDZ16#~t|jd3IxQWUym8`ZGi{D$JGq3K{dT{{Rzva$^4+^IJ=t|@x;^suR68lZ5#?A#hKPU`TNTz zjHr)z zkLh`(`u15EeBHgmZ;)FTFi8t|(=9Wl-g@DUEj?gNb->TM<2p$;h{3?O3C~!Qt@o4z zZUnOn;g^_aL{!wKmpca)qo}s5Bgh8i8)xUDw1rt6y}niyx_OCd>`kZT=W?64vuRuX zq;-*eu?_|kfxb=w%PL;i=KH9me$-DlQKpBgN?#OycB{~iyWd$9kcc(5$|t%TqEN;I zWd0ej6az&=sce z#edp+7wGHXM#RZf`tu01k_NLyDlOO520b!g3zvQz|DHoe`e@@$UMvtqjqdiPtCu^0 zMn)bWRY;)c4ljLwUJ1z|M-c)DVMS1klPG9}cVo06yNhdXeCFEHEC(yoD=E?F zW!BkZO^4i7Z9ft&Gas?N0;*=^%4;RwoUO8-y_$?jAMY^hzlDF#ei0?V+ILBipYGT= zx@>11)jTBlY7!)enc)zdZ``_W=fgmD^(0HOHxq(L;RzReX{p0(XlJfU=#Xhg$lzh5 zk|E;CZ`TP1O{^f_67n`l(=RT7vvjT1afirVgp$yU7SqSw8ghzQ`@ONERI1=bF&bBc z4T8^-Iju0VsH_kZ;!Qu3UqGepw$n2zrLqA08Nt9I%fE{*3^l+zgur(!YM9p=v-ofs z*_0M1@y3OxiJ8nK33!GzrNKFlWzHYzX1-oSKe9^$kqXL6{S3=rdJ62?qidWoM2{me>qh+l)3%-!avZXIR0!K zl%1IZq)MEzPsyCFGN^XQn$tYkns(P)WpQ*ujhnMIP8vQ+?AFLl^8HqPD<$#Jra}l&-}!>7aT-oJ z(-d}x!ANK%&eF0oIyefXD$GDm)${!c*1m z6dN_m!9|L#Sj@dA4hm`FmVrIBvg#A7pm6+Q1+6~AWB2pleC`qpjVP%Ff3O7zbq)Ju z@@n^^N+kfi1s0#r+Y;_rGVF+k3jJP584@~>d)w9LrxeZjqp+4pLw-u%zdCK0m{C{I z#A16mlX1*WX}$NMaf^rfeXiA0%PQbO@9$ZgrinNQ(v!SMgN-R7PO0C~fLXv%zT?o@ z@_Ms12oi_?TKORXxyZgyupxAHvpz1XuIqM~b>15uQf=WS1Ql=%y5`I!s!yh)S_iyo@DYG`u?cisVgKdk(KJx@46dIQRveAa=z%D^$vdD2QLip*pSt~i(iNa&BFZP_AB^4ozgYM9{I z9JkDRrK$;!u3DQLKhg3}tHLRe*zS!31+gVqrN z-G~n2mCN^yv~W76d2{OdX{_yMh1wDM={E(JOclpa#6EX$E6P1@{6a)!%8TP2e1f0t z0I2&ENIP(4ACt;mq)jrR{%L64xp@`+i1n+^ww)uz^q~xTlWQW@2H28a>6{J*ZX28L zXLnLSq#$R&$C+ZOKmKzpLUA|aA_PG^_k!NG!1et8&>AGs7aL=-A5m z@;~_jOc-D5$_I*wem2LRwaXDb8}sl=HXN4etdwu4KaL%%A}Bgtv9ne)F880Pj7!gJ zgeXMM6CrrYO>`MwTn!0?skX)6V^!aQyxd`Jef^YeEO1otOFUw}RFme#VLh8`=DKTS930 zp!Mc~e`KPB-xfA{!3z|G*urvR_vFiZ+LwE&8$+QS9yu6f|}FRt#(cUlXTCRyJZ zCcQ3v{BzwAOEMlw4W7=KhfD?lJXxM*F?fDWgQ3O)B};mHy`AIJ6QKjf$JzQT8S-Sm zUEWgnI7Y!Od(7EFJ^{%E+Up40pzNLt8;m>cviwC}cAckwd5m_f!Hptl#gTXsYco9y zd}-1#V{4YtC?Qmn=I{^ry})Ex-|{0E$QiN~!IfdlBtkjaw(8Nl`+) Date: Wed, 5 Dec 2018 13:55:06 -0800 Subject: [PATCH 196/527] chore: clean up usage of prettier and eslint (#274) --- handwritten/error-reporting/package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 0a2f8e2f530..ac6eb724fd2 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -23,7 +23,6 @@ "docs": "jsdoc -c .jsdoc.js", "generate-scaffolding": "node node_modules/.bin/repo-tools generate all && node node_modules/.bin/repo-tools generate lib_samples_readme -l samples/ --config ../.cloud-repo-tools.json", "lint": "eslint samples/ && gts check && jsgl --local .", - "prettier": "prettier --write samples/*.js samples/*/*.js", "presystem-test": "npm run compile", "system-test": "nyc --exclude=\"error-message.js\" mocha build/system-test/**/*.js", "cover": "nyc --exclude=\"fuzzer.js\" --reporter=lcov mocha build/test/unit/**/*.js && nyc report", From 4137025d35da681bfd935d16dcee5815379e3bf3 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Wed, 5 Dec 2018 15:54:43 -0800 Subject: [PATCH 197/527] chore: nyc ignore build/test by default (#276) --- handwritten/error-reporting/.nycrc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/.nycrc b/handwritten/error-reporting/.nycrc index a1a8e6920ce..feb032400d4 100644 --- a/handwritten/error-reporting/.nycrc +++ b/handwritten/error-reporting/.nycrc @@ -3,7 +3,8 @@ "exclude": [ "src/*{/*,/**/*}.js", "src/*/v*/*.js", - "test/**/*.js" + "test/**/*.js", + "build/test" ], "watermarks": { "branches": [ From 8299ad75e09d5a6a398bb12db45035403cded96f Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Wed, 5 Dec 2018 17:44:00 -0800 Subject: [PATCH 198/527] chore: always nyc report before calling codecov (#277) --- handwritten/error-reporting/.kokoro/test.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/handwritten/error-reporting/.kokoro/test.sh b/handwritten/error-reporting/.kokoro/test.sh index eb25b89b95e..4d6c3f83188 100755 --- a/handwritten/error-reporting/.kokoro/test.sh +++ b/handwritten/error-reporting/.kokoro/test.sh @@ -22,5 +22,6 @@ cd $(dirname $0)/.. npm install npm test +./node_modules/nyc/bin/nyc.js report bash $KOKORO_GFILE_DIR/codecov.sh From 7eb392d81fd84b404cd7f1a64ba1d5d21403d7af Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Thu, 6 Dec 2018 11:41:41 -0800 Subject: [PATCH 199/527] chore: address system test flakiness (#275) * The timeout used for waiting for the API to report an error event has been increased. * The system tests only poll for error events for a specific service and version. * The page size has been increased when requesting reported errors. * Increase polling timeout to avoid using the API too much to hit quota exceeded errors. * Error items are not deleted after the test. This is needed to avoid conflicting with concurrent runs of the system test because it is not possible to delete error items only associated with a particular test. --- handwritten/error-reporting/package.json | 1 + .../system-test/error-reporting.ts | 46 ++++++++++--------- .../utils/errors-api-transport.ts | 16 +++---- 3 files changed, 33 insertions(+), 30 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index ac6eb724fd2..c0be742ab39 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -77,6 +77,7 @@ "boom": "^7.2.0", "codecov": "^3.0.2", "cpy-cli": "^2.0.0", + "delay": "^4.1.0", "eslint": "^5.0.0", "eslint-config-prettier": "^3.0.0", "eslint-plugin-node": "^8.0.0", diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index bed4241c357..bfb18c5842b 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -15,6 +15,7 @@ */ import * as assert from 'assert'; +import delay from 'delay'; import * as is from 'is'; import * as nock from 'nock'; @@ -34,7 +35,7 @@ import * as util from 'util'; import * as path from 'path'; const ERR_TOKEN = '_@google_STACKDRIVER_INTEGRATION_TEST_ERROR__'; -const TIMEOUT = 120000; +const TIMEOUT = 10 * 60 * 1000; const envKeys = [ 'GOOGLE_APPLICATION_CREDENTIALS', @@ -140,12 +141,6 @@ if (!shouldRun()) { process.exit(1); } -function sleep(timeout: number) { - return new Promise((resolve) => { - setTimeout(resolve, timeout); - }); -} - describe('Request/Response lifecycle mocking', () => { const sampleError = new Error(ERR_TOKEN); const errorMessage = new ErrorMessage().setMessage(sampleError.message); @@ -445,6 +440,7 @@ describe('error-reporting', () => { const SERVICE = buildName('service-name'); const VERSION = buildName('service-version'); + const PAGE_SIZE = 100; let errors: ErrorReporting; let transport: ErrorsApiTransport; @@ -465,7 +461,6 @@ describe('error-reporting', () => { logOutput += text; }; reinitialize(); - await transport.deleteAllEvents(); }); function reinitialize(extraConfig?: {}) { @@ -487,12 +482,6 @@ describe('error-reporting', () => { transport = new ErrorsApiTransport(configuration, logger); } - after(async () => { - if (transport) { - await transport.deleteAllEvents(); - } - }); - afterEach(() => { logOutput = ''; }); @@ -503,7 +492,8 @@ describe('error-reporting', () => { const start = Date.now(); let groups: ErrorGroupStats[] = []; while (groups.length < maxCount && (Date.now() - start) <= timeout) { - const allGroups = await transport.getAllGroups(); + const allGroups = + await transport.getAllGroups(SERVICE, VERSION, PAGE_SIZE); assert.ok(allGroups, 'Failed to get groups from the Error Reporting API'); const filteredGroups = allGroups!.filter(errItem => { @@ -515,7 +505,7 @@ describe('error-reporting', () => { messageTest(errItem.representative.message)); }); groups = groups.concat(filteredGroups); - await sleep(1000); + await delay(5000); } return groups; @@ -684,9 +674,9 @@ describe('error-reporting', () => { }); it('Should report unhandledRejections if enabled', async function(this) { - this.timeout(TIMEOUT * 4); + this.timeout(TIMEOUT * 5); reinitialize({reportUnhandledRejections: true}); - const rejectValue = buildName('promise-rejection'); + const rejectValue = buildName('report-promise-rejection'); function expectedTopOfStack() { // An Error is used for the rejection value so that it's stack // contains the stack trace at the point the rejection occured and is @@ -718,11 +708,13 @@ describe('error-reporting', () => { it('Should not report unhandledRejections if disabled', async function(this) { this.timeout(TIMEOUT * 2); reinitialize({reportUnhandledRejections: false}); - const rejectValue = buildName('promise-rejection'); + const rejectValue = buildName('do-not-report-promise-rejection'); + const canaryValue = buildName('canary-value'); function expectedTopOfStack() { Promise.reject(rejectValue); } expectedTopOfStack(); + errors.report(new Error(canaryValue)); await new Promise((resolve, reject) => { setImmediate(async () => { try { @@ -734,11 +726,21 @@ describe('error-reporting', () => { // all of the groups corresponding to the above rejection (Since the // buildName() creates a string unique enough to single out only the // above rejection.) and verify that there are no such groups - // reported. + // reported. This is done by looking for the canary value. If the + // canary value is found, but the rejection value has not, then the + // rejection was not reported to the API. + const rejectPrefix = `Error: ${rejectValue}`; + const canaryPrefix = `Error: ${canaryValue}`; const matchedErrors = await verifyAllGroups(message => { - return message.startsWith(rejectValue); + return message.startsWith(rejectPrefix) || + message.startsWith(canaryPrefix); }, 1, TIMEOUT); - assert.strictEqual(matchedErrors.length, 0); + assert.strictEqual(matchedErrors.length, 1); + const message = matchedErrors[0].representative.message; + assert( + message.startsWith(canaryPrefix), + `Expected the error message to start with ${ + canaryPrefix} but found ${message}`); resolve(); } catch (err) { reject(err); diff --git a/handwritten/error-reporting/utils/errors-api-transport.ts b/handwritten/error-reporting/utils/errors-api-transport.ts index bb2ab5332c0..64a1c08349d 100644 --- a/handwritten/error-reporting/utils/errors-api-transport.ts +++ b/handwritten/error-reporting/utils/errors-api-transport.ts @@ -52,16 +52,16 @@ export class ErrorsApiTransport extends AuthClient { super(config, logger); } - async deleteAllEvents() { - const id = await this.getProjectId(); - const options = {uri: [API, id, 'events'].join('/'), method: 'DELETE'}; - return this.request_(options); - } - - async getAllGroups(): Promise { + async getAllGroups(service: string, version: string, pageSize: number): + Promise { const id = await this.getProjectId(); const options = { - uri: [API, id, 'groupStats?' + ONE_HOUR_API].join('/'), + uri: [ + API, id, + 'groupStats?' + ONE_HOUR_API + + `&serviceFilter.service=${service}&serviceFilter.version=${ + version}&pageSize=${pageSize}` + ].join('/'), method: 'GET' }; const r = await this.request_(options); From ccab693a2f70e732d4a6c750a4026e2513b2dfbc Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Mon, 10 Dec 2018 13:34:06 -0800 Subject: [PATCH 200/527] build: add Kokoro configs for autorelease (#280) * build: add Kokoro configs for autorelease * build: add Kokoro configs for autorelease * chore: remove CircleCI config --- .../error-reporting/.circleci/config.yml | 179 ------------------ .../error-reporting/.circleci/key.json.enc | Bin 2368 -> 0 bytes .../.circleci/npm-install-retry.js | 60 ------ .../error-reporting/.kokoro/publish.sh | 31 +++ .../.kokoro/release/publish.cfg | 28 +++ 5 files changed, 59 insertions(+), 239 deletions(-) delete mode 100644 handwritten/error-reporting/.circleci/config.yml delete mode 100644 handwritten/error-reporting/.circleci/key.json.enc delete mode 100755 handwritten/error-reporting/.circleci/npm-install-retry.js create mode 100644 handwritten/error-reporting/.kokoro/publish.sh create mode 100644 handwritten/error-reporting/.kokoro/release/publish.cfg diff --git a/handwritten/error-reporting/.circleci/config.yml b/handwritten/error-reporting/.circleci/config.yml deleted file mode 100644 index 86c63432242..00000000000 --- a/handwritten/error-reporting/.circleci/config.yml +++ /dev/null @@ -1,179 +0,0 @@ -version: 2 -workflows: - version: 2 - tests: - jobs: &workflow_jobs - - node6: - filters: &all_commits - tags: - only: /.*/ - - node8: - filters: *all_commits - - node10: - filters: *all_commits - - lint: - requires: - - node6 - - node8 - - node10 - filters: *all_commits - - docs: - requires: - - node6 - - node8 - - node10 - filters: *all_commits - - system_tests: - requires: - - lint - - docs - filters: &master_and_releases - branches: - only: master - tags: &releases - only: '/^v[\d.]+$/' - - sample_tests: - requires: - - lint - - docs - filters: *master_and_releases - - publish_npm: - requires: - - system_tests - - sample_tests - filters: - branches: - ignore: /.*/ - tags: *releases - nightly: - triggers: - - schedule: - cron: 0 7 * * * - filters: - branches: - only: master - jobs: *workflow_jobs -jobs: - node6: - docker: - - image: 'node:6' - user: node - steps: &unit_tests_steps - - checkout - - run: &npm_install_and_link - name: Install and link the module - command: |- - mkdir -p /home/node/.npm-global - ./.circleci/npm-install-retry.js - environment: - NPM_CONFIG_PREFIX: /home/node/.npm-global - - run: npm test - node8: - docker: - - image: 'node:8' - user: node - steps: *unit_tests_steps - node10: - docker: - - image: 'node:10' - user: node - steps: *unit_tests_steps - lint: - docker: - - image: 'node:8' - user: node - steps: - - checkout - - run: *npm_install_and_link - - run: &samples_npm_install_and_link - name: Link the module being tested to the samples. - command: | - cd samples/ - npm link ../ - ./../.circleci/npm-install-retry.js - environment: - NPM_CONFIG_PREFIX: /home/node/.npm-global - - run: - name: Run linting. - command: npm run lint - environment: - NPM_CONFIG_PREFIX: /home/node/.npm-global - docs: - docker: - - image: 'node:8' - user: node - steps: - - checkout - - run: *npm_install_and_link - - run: npm run docs - sample_tests: - docker: - - image: 'node:8' - user: node - steps: - - checkout - - run: - name: Decrypt credentials. - command: | - if ! [[ -z "${SYSTEM_TESTS_ENCRYPTION_KEY}" ]]; then - openssl aes-256-cbc -d -md md5 -in .circleci/key.json.enc \ - -out .circleci/key.json \ - -k "${SYSTEM_TESTS_ENCRYPTION_KEY}" - fi - - run: *npm_install_and_link - - run: *samples_npm_install_and_link - - run: - name: Run sample tests. - command: npm run samples-test - environment: - GCLOUD_PROJECT: long-door-651 - GOOGLE_APPLICATION_CREDENTIALS: /home/node/samples/.circleci/key.json - NPM_CONFIG_PREFIX: /home/node/.npm-global - - run: - name: Remove unencrypted key. - command: | - if ! [[ -z "${SYSTEM_TESTS_ENCRYPTION_KEY}" ]]; then - rm .circleci/key.json - fi - when: always - working_directory: /home/node/samples/ - system_tests: - docker: - - image: 'node:8' - user: node - steps: - - checkout - - run: - name: Decrypt credentials. - command: | - if ! [[ -z "${SYSTEM_TESTS_ENCRYPTION_KEY}" ]]; then - for encrypted_key in .circleci/*.json.enc; do - openssl aes-256-cbc -d -md md5 -in $encrypted_key \ - -out $(echo $encrypted_key | sed 's/\.enc//') \ - -k "${SYSTEM_TESTS_ENCRYPTION_KEY}" - done - fi - - run: *npm_install_and_link - - run: - name: Run system tests. - command: npm run system-test - environment: - GCLOUD_PROJECT: long-door-651 - GOOGLE_APPLICATION_CREDENTIALS: /home/node/project/.circleci/key.json - NPM_CONFIG_PREFIX: /home/node/.npm-global - - run: - name: Remove unencrypted key. - command: | - if ! [[ -z "${SYSTEM_TESTS_ENCRYPTION_KEY}" ]]; then - rm .circleci/*.json - fi - when: always - publish_npm: - docker: - - image: 'node:8' - user: node - steps: - - checkout - - run: ./.circleci/npm-install-retry.js - - run: echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc - - run: npm publish --access=public diff --git a/handwritten/error-reporting/.circleci/key.json.enc b/handwritten/error-reporting/.circleci/key.json.enc deleted file mode 100644 index b3e110b78396a7c7c6ac21d8b8c07c5c0649aae0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2368 zcmV-G3BUGJVQh3|WM5xyE17_;KNZL5r}e80FoO%*$5NV!YcBupT%TJwZdmV7A`Inv zGYyJS^;(FUF46mL;;0H{D&-ytoHr|PqB!Ox!#rJsd=jv#SvPAXNgAY%!Y>+DT9g$( zJ7?>Z`06A&(8q8yMM-|JL^Y*b`IKGjM;>B-cd=y#y`o||3D+>{NBW66dr#)DVh+*1 z?C0>p0q;}B+Cj?2eZ&V9Iw$-wi79;<66c7T67JsUrobX1y9%gVfyjQScUGVG)PIn4 z;^wvB1$5wkr9vt}$4qEQ`<7e~b8ZW0Q%=x#ip&hGvoqg$UDL}WhK#>@PE1%H56(+k zdw6{Ib;14NTq~)469V&pT;o=qq7L}vG3BQ?;iV)ay;jkM*p7WxZ8mFpup*YmT6Gb4 z-r)6pjti1TsX^rtLkfhB(~;=JE_-lm`y2Ie#>~)Fb}ME|DE7r2$x$C_2Z$!aP?`9} zjN*2>hv}5}19L@o(c!)%P*r6v0eZVV`sjsgL=Ea{y}xa93lYb)IqS9?5Bw=?D2C48 z>r4 zZSu?|htS+t*L!E2{6cN{5bn*(F-ELCmyg^@ws_&))#`TmuSZaa#ty~E<7gMCS6ZRb z__lHmL4c;Ex2rZt3n8Ve4qKO5vrrY!C%;^06S$(ZZf;!DO=qg?GS4w-?XpPCkkP*; zsBj7-3Z#OAX&u3()GFPKTK*r1#(}H3nD>)AT@Lfe*F$MD(R-KRevS~oG@}CTBK*?% zZUez3p-3#Ju%GZw6AbmiAi)J#mC8r!E9%LCTo%Mulf3GuUUuNM{oGjno(}9UYes+4 z)#QLF0LK3^TE(yJ2~rur_Rf7uLO+aN#nu;f&3g6IDM;Z)Bak#bNL&FHF@`-^Bh-KW zFz+--YvbuIs@O{kT>A!vP(ND&a|sgz<>vCh1Rh<(!hpc4#^BrdR4xlXEID=k6n3hl zr71tJpc%I-z8{Pnsd#8LV1!bzpDAawfy3oDN{Yv0NmBKORUz$4B^5khe`%#SY+oU6 zMN%x@g#EN9Di%KerZX3r;eNqZX;{pdi8dl3OGqXv1v=aijkoP(W^WuR!YC_63(NP2 z89Yu|8witNJ^YoCDPrDyxh3Az4}_l&DyY=!6wZ-9-=l=zNcw+<<5LZV4z62f%`6?< zCyqt*wN$1_nrkA{n`J55vFG4E6RF)Oh|}EVoe64Io&1@7hv&%m#x?hy^j*SvUdG{J zL9+)&+4*7%OfW`hTmrB(7lSP(3x1bkG8S0=f59x&XO4?S5?&>IUys1w%i@^zJ`FkP zPcUV)`L-@JJUsTUhmtJT?>KaL4ksNWmd?F{W)6rMQ^Oj=g>_ zG?4`)r3CSXp{cSMEGe zITaMJf`niFb4Q06>dEHbYgJ!Bf3ke`YVkIX7rE+?dc~LlV!{+xQP1fNugKK}H;;$!{?lX(ah5g}E0g3ae^37JOWQoN zO*M#$bKC?h)PO}Ar%c`YWgqpq1(xZ%;4Hw5Q(2X_!5hlLx^<(9KOF=fTWf81S~Knx zx~>sP|1Yn_+=*WK{)iWFq~awBh+`C8!?0yEubaG>#5s-Sf0DV*7hXy>lMa@!*#GDW z)Hs6FcOk%sk+#DXuF^mlN0$S_=nQbnsXz0{S&u|D3qi5^+RLZ1XG#KmMk>K7U!Uj| zX3dl*P#vlMi#xyvk! z5hy`$X0cWi&cWFw9mMr}vI?r+>+_@8Uc5+m6z`HU%#koGw{=D978w2B6wPaGV!Uaz zBcWX9m8JWQ_LW8Ku>=VZ217MPOd87b%_J|Mt;s1nX=K;xjpc~Lt*oTxoFfzaLY8OV zudRPPR+Q)6P||CrrFz#YcJHvdF{NPY^{@j>%EFmCY*e9DQt~*}8=717G@n%%li+$i z;PNjSBvR8Y^>QFuaNEt-(g#mGcv)EA~UYY=-qP?SMu z^W`fYqIg^2v%w;ZZRBKjRJJE6;!)s_F{~hJ3$HVowz3*C-Wvey3BFIFT6R}RComO@ zCN_OwWschC<$L>q!D~CNieXUrO119cGaE?IbQQn%Cx8#V9ih%jZH?Bzkeel_sYROO zBoFAdEpl{8KcHr(`=Rg)XqcWjIVl}RI;1M@G^g7! mK~#5G*Z^4rJo`6RI&VU;udM~b1FZ%a2@klZu%9L9=F#tiyP1Cg diff --git a/handwritten/error-reporting/.circleci/npm-install-retry.js b/handwritten/error-reporting/.circleci/npm-install-retry.js deleted file mode 100755 index 3240aa2cbf2..00000000000 --- a/handwritten/error-reporting/.circleci/npm-install-retry.js +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env node - -let spawn = require('child_process').spawn; - -// -//USE: ./index.js [... NPM ARGS] -// - -let timeout = process.argv[2] || process.env.NPM_INSTALL_TIMEOUT || 60000; -let attempts = process.argv[3] || 3; -let args = process.argv.slice(4); -if (args.length === 0) { - args = ['install']; -} - -(function npm() { - let timer; - args.push('--verbose'); - let proc = spawn('npm', args); - proc.stdout.pipe(process.stdout); - proc.stderr.pipe(process.stderr); - proc.stdin.end(); - proc.stdout.on('data', () => { - setTimer(); - }); - proc.stderr.on('data', () => { - setTimer(); - }); - - // side effect: this also restarts when npm exits with a bad code even if it - // didnt timeout - proc.on('close', (code, signal) => { - clearTimeout(timer); - if (code || signal) { - console.log('[npm-are-you-sleeping] npm exited with code ' + code + ''); - - if (--attempts) { - console.log('[npm-are-you-sleeping] restarting'); - npm(); - } else { - console.log('[npm-are-you-sleeping] i tried lots of times. giving up.'); - throw new Error("npm install fails"); - } - } - }); - - function setTimer() { - clearTimeout(timer); - timer = setTimeout(() => { - console.log('[npm-are-you-sleeping] killing npm with SIGTERM'); - proc.kill('SIGTERM'); - // wait a couple seconds - timer = setTimeout(() => { - // its it's still not closed sigkill - console.log('[npm-are-you-sleeping] killing npm with SIGKILL'); - proc.kill('SIGKILL'); - }, 2000); - }, timeout); - } -})(); diff --git a/handwritten/error-reporting/.kokoro/publish.sh b/handwritten/error-reporting/.kokoro/publish.sh new file mode 100644 index 00000000000..f2a8adc0b43 --- /dev/null +++ b/handwritten/error-reporting/.kokoro/publish.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +# Copyright 2018 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -eo pipefail + +export NPM_CONFIG_PREFIX=/home/node/.npm-global + +# Start the releasetool reporter +python3 -m pip install gcp-releasetool +python3 -m releasetool publish-reporter-script > /tmp/publisher-script; source /tmp/publisher-script + +cd $(dirname $0)/.. + +NPM_TOKEN=$(cat $KOKORO_KEYSTORE_DIR/73713_google_cloud_npm_token) +echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc + +npm install +npm publish --access=public diff --git a/handwritten/error-reporting/.kokoro/release/publish.cfg b/handwritten/error-reporting/.kokoro/release/publish.cfg new file mode 100644 index 00000000000..5c969abdb0c --- /dev/null +++ b/handwritten/error-reporting/.kokoro/release/publish.cfg @@ -0,0 +1,28 @@ +# Get npm token from Keystore +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "google_cloud_npm_token" + backend_type: FASTCONFIGPUSH + } + } +} + + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "nodejs-scheduler/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:8-user" +} + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-scheduler/.kokoro/publish.sh" +} From fb833e47710c3a56d44d90f378ee46fbe62fae0b Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Mon, 10 Dec 2018 16:10:29 -0800 Subject: [PATCH 201/527] fix(build): fix Kokoro release script (#281) --- handwritten/error-reporting/.kokoro/release/publish.cfg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/.kokoro/release/publish.cfg b/handwritten/error-reporting/.kokoro/release/publish.cfg index 5c969abdb0c..e44b71a9008 100644 --- a/handwritten/error-reporting/.kokoro/release/publish.cfg +++ b/handwritten/error-reporting/.kokoro/release/publish.cfg @@ -14,7 +14,7 @@ before_action { gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" # Use the trampoline script to run in docker. -build_file: "nodejs-scheduler/.kokoro/trampoline.sh" +build_file: "nodejs-error-reporting/.kokoro/trampoline.sh" # Configure the docker image for kokoro-trampoline. env_vars: { @@ -24,5 +24,5 @@ env_vars: { env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/nodejs-scheduler/.kokoro/publish.sh" + value: "github/nodejs-error-reporting/.kokoro/publish.sh" } From 1f733e4ff3ab79ba552bf549e96eb546b4870e68 Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Mon, 10 Dec 2018 19:35:35 -0800 Subject: [PATCH 202/527] chore: fix publish.sh permission +x (#282) --- handwritten/error-reporting/.kokoro/publish.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 handwritten/error-reporting/.kokoro/publish.sh diff --git a/handwritten/error-reporting/.kokoro/publish.sh b/handwritten/error-reporting/.kokoro/publish.sh old mode 100644 new mode 100755 From 054ff0e7c3ab79044475c69bee325a8819c46e46 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Tue, 11 Dec 2018 10:33:27 -0800 Subject: [PATCH 203/527] chore: update nyc and eslint configs (#284) --- handwritten/error-reporting/.eslintignore | 1 + handwritten/error-reporting/.nycrc | 1 + 2 files changed, 2 insertions(+) diff --git a/handwritten/error-reporting/.eslintignore b/handwritten/error-reporting/.eslintignore index 2f642cb6044..f0c7aead4bf 100644 --- a/handwritten/error-reporting/.eslintignore +++ b/handwritten/error-reporting/.eslintignore @@ -1,3 +1,4 @@ **/node_modules src/**/doc/* build/ +docs/ diff --git a/handwritten/error-reporting/.nycrc b/handwritten/error-reporting/.nycrc index feb032400d4..88b001cb587 100644 --- a/handwritten/error-reporting/.nycrc +++ b/handwritten/error-reporting/.nycrc @@ -1,5 +1,6 @@ { "report-dir": "./.coverage", + "reporter": "lcov", "exclude": [ "src/*{/*,/**/*}.js", "src/*/v*/*.js", From dd4acffbe27433f6f9e93ba7a2ffdfcb75c649b8 Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Tue, 11 Dec 2018 18:37:18 -0800 Subject: [PATCH 204/527] chore(build): inject yoshi automation key (#285) --- handwritten/error-reporting/.kokoro/release/publish.cfg | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/handwritten/error-reporting/.kokoro/release/publish.cfg b/handwritten/error-reporting/.kokoro/release/publish.cfg index e44b71a9008..ad381c4e907 100644 --- a/handwritten/error-reporting/.kokoro/release/publish.cfg +++ b/handwritten/error-reporting/.kokoro/release/publish.cfg @@ -9,6 +9,14 @@ before_action { } } +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "yoshi-automation-github-key" + } + } +} # Download trampoline resources. gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" From d2836b2b1dd4366ae075be00c2be46e020e3455b Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Tue, 18 Dec 2018 17:52:51 -0800 Subject: [PATCH 205/527] chore: change sort order for retrieving err items (#289) This is being done to address the system test flakiness by having the most recently created error item listed first in the list of error items retrieved from the error reporting service. --- .../system-test/error-reporting.ts | 134 +++++++----------- .../utils/errors-api-transport.ts | 16 ++- 2 files changed, 64 insertions(+), 86 deletions(-) diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index bfb18c5842b..5194bd00cb6 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -35,7 +35,7 @@ import * as util from 'util'; import * as path from 'path'; const ERR_TOKEN = '_@google_STACKDRIVER_INTEGRATION_TEST_ERROR__'; -const TIMEOUT = 10 * 60 * 1000; +const TIMEOUT = 20 * 60 * 1000; const envKeys = [ 'GOOGLE_APPLICATION_CREDENTIALS', @@ -440,7 +440,7 @@ describe('error-reporting', () => { const SERVICE = buildName('service-name'); const VERSION = buildName('service-version'); - const PAGE_SIZE = 100; + const PAGE_SIZE = 1000; let errors: ErrorReporting; let transport: ErrorsApiTransport; @@ -491,21 +491,31 @@ describe('error-reporting', () => { timeout: number) { const start = Date.now(); let groups: ErrorGroupStats[] = []; - while (groups.length < maxCount && (Date.now() - start) <= timeout) { - const allGroups = - await transport.getAllGroups(SERVICE, VERSION, PAGE_SIZE); - assert.ok(allGroups, 'Failed to get groups from the Error Reporting API'); - - const filteredGroups = allGroups!.filter(errItem => { - return ( - errItem && errItem.representative && - errItem.representative.serviceContext && - errItem.representative.serviceContext.service === SERVICE && - errItem.representative.serviceContext.version === VERSION && - messageTest(errItem.representative.message)); - }); - groups = groups.concat(filteredGroups); - await delay(5000); + const shouldContinue = () => + groups.length < maxCount && (Date.now() - start) <= timeout; + while (shouldContinue()) { + let prevPageToken: string|undefined; + let allGroups: ErrorGroupStats[]|undefined; + const page = 1; + while (shouldContinue() && (!allGroups || allGroups.length > 0)) { + const response = await transport.getAllGroups( + SERVICE, VERSION, PAGE_SIZE, prevPageToken); + prevPageToken = response.nextPageToken; + allGroups = response.errorGroupStats || []; + assert.ok( + allGroups, 'Failed to get groups from the Error Reporting API'); + + const filteredGroups = allGroups!.filter(errItem => { + return ( + errItem && errItem.representative && + errItem.representative.serviceContext && + errItem.representative.serviceContext.service === SERVICE && + errItem.representative.serviceContext.version === VERSION && + messageTest(errItem.representative.message)); + }); + groups = groups.concat(filteredGroups); + await delay(5000); + } } return groups; @@ -581,7 +591,7 @@ describe('error-reporting', () => { it('Should correctly publish an error that is an Error object', async function verifyErrors() { - this.timeout(TIMEOUT * 2); + this.timeout(TIMEOUT); const errorId = buildName('with-error-constructor'); function expectedTopOfStack() { return new Error(errorId); @@ -594,7 +604,7 @@ describe('error-reporting', () => { it('Should correctly publish an error that is a string', async function(this) { - this.timeout(TIMEOUT * 2); + this.timeout(TIMEOUT); const errorId = buildName('with-string'); await verifyReporting(errorId, message => { return message.startsWith(errorId + '\n'); @@ -603,14 +613,14 @@ describe('error-reporting', () => { it('Should correctly publish an error that is undefined', async function(this) { - this.timeout(TIMEOUT * 2); + this.timeout(TIMEOUT); await verifyReporting(undefined, message => { return message.startsWith('undefined\n'); }, 1, TIMEOUT); }); it('Should correctly publish an error that is null', async function(this) { - this.timeout(TIMEOUT * 2); + this.timeout(TIMEOUT); await verifyReporting(null, message => { return message.startsWith('null\n'); }, 1, TIMEOUT); @@ -618,7 +628,7 @@ describe('error-reporting', () => { it('Should correctly publish an error that is a plain object', async function(this) { - this.timeout(TIMEOUT * 2); + this.timeout(TIMEOUT); await verifyReporting({someKey: 'someValue'}, message => { return message.startsWith('[object Object]\n'); }, 1, TIMEOUT); @@ -626,7 +636,7 @@ describe('error-reporting', () => { it('Should correctly publish an error that is a number', async function(this) { - this.timeout(TIMEOUT * 2); + this.timeout(TIMEOUT); const num = new Date().getTime(); await verifyReporting(num, message => { return message.startsWith('' + num + '\n'); @@ -635,7 +645,7 @@ describe('error-reporting', () => { it('Should correctly publish an error that is of an unknown type', async function(this) { - this.timeout(TIMEOUT * 2); + this.timeout(TIMEOUT); const bool = true; await verifyReporting(bool, message => { return message.startsWith('true\n'); @@ -644,7 +654,7 @@ describe('error-reporting', () => { it('Should correctly publish errors using an error builder', async function(this) { - this.timeout(TIMEOUT * 2); + this.timeout(TIMEOUT); const errorId = buildName('with-error-builder'); // Use an IIFE with the name `definitionSiteFunction` to use later to // ensure the stack trace of the point where the error message was @@ -674,7 +684,7 @@ describe('error-reporting', () => { }); it('Should report unhandledRejections if enabled', async function(this) { - this.timeout(TIMEOUT * 5); + this.timeout(TIMEOUT); reinitialize({reportUnhandledRejections: true}); const rejectValue = buildName('report-promise-rejection'); function expectedTopOfStack() { @@ -686,66 +696,32 @@ describe('error-reporting', () => { } expectedTopOfStack(); const rejectText = 'Error: ' + rejectValue; - await new Promise((resolve, reject) => { - setImmediate(async () => { - try { - const expected = 'UnhandledPromiseRejectionWarning: Unhandled ' + - 'promise rejection: ' + rejectText + - '. This rejection has been reported to the ' + - 'Google Cloud Platform error-reporting console.'; - assert.notStrictEqual(logOutput.indexOf(expected), -1); - await verifyServerResponse(message => { - return message.startsWith(rejectText); - }, 1, TIMEOUT); - resolve(); - } catch (err) { - reject(err); - } - }); - }); + const expected = 'UnhandledPromiseRejectionWarning: Unhandled ' + + 'promise rejection: ' + rejectText + + '. This rejection has been reported to the ' + + 'Google Cloud Platform error-reporting console.'; + await delay(10000); + assert.notStrictEqual(logOutput.indexOf(expected), -1); }); it('Should not report unhandledRejections if disabled', async function(this) { - this.timeout(TIMEOUT * 2); + this.timeout(TIMEOUT); reinitialize({reportUnhandledRejections: false}); const rejectValue = buildName('do-not-report-promise-rejection'); - const canaryValue = buildName('canary-value'); function expectedTopOfStack() { - Promise.reject(rejectValue); + // An Error is used for the rejection value so that it's stack + // contains the stack trace at the point the rejection occured and is + // rejected within a function named `expectedTopOfStack` so that the + // test can verify that the collected stack is correct. + Promise.reject(new Error(rejectValue)); } expectedTopOfStack(); - errors.report(new Error(canaryValue)); - await new Promise((resolve, reject) => { - setImmediate(async () => { - try { - const notExpected = 'UnhandledPromiseRejectionWarning: Unhandled ' + - 'promise rejection: ' + rejectValue + - '. This rejection has been reported to the error-reporting console.'; - assert.strictEqual(logOutput.indexOf(notExpected), -1); - // Get all groups that that start with the rejection value and hence - // all of the groups corresponding to the above rejection (Since the - // buildName() creates a string unique enough to single out only the - // above rejection.) and verify that there are no such groups - // reported. This is done by looking for the canary value. If the - // canary value is found, but the rejection value has not, then the - // rejection was not reported to the API. - const rejectPrefix = `Error: ${rejectValue}`; - const canaryPrefix = `Error: ${canaryValue}`; - const matchedErrors = await verifyAllGroups(message => { - return message.startsWith(rejectPrefix) || - message.startsWith(canaryPrefix); - }, 1, TIMEOUT); - assert.strictEqual(matchedErrors.length, 1); - const message = matchedErrors[0].representative.message; - assert( - message.startsWith(canaryPrefix), - `Expected the error message to start with ${ - canaryPrefix} but found ${message}`); - resolve(); - } catch (err) { - reject(err); - } - }); - }); + const rejectText = 'Error: ' + rejectValue; + const expected = 'UnhandledPromiseRejectionWarning: Unhandled ' + + 'promise rejection: ' + rejectText + + '. This rejection has been reported to the ' + + 'Google Cloud Platform error-reporting console.'; + await delay(10000); + assert.strictEqual(logOutput.indexOf(expected), -1); }); }); diff --git a/handwritten/error-reporting/utils/errors-api-transport.ts b/handwritten/error-reporting/utils/errors-api-transport.ts index 64a1c08349d..65f617d13bb 100644 --- a/handwritten/error-reporting/utils/errors-api-transport.ts +++ b/handwritten/error-reporting/utils/errors-api-transport.ts @@ -37,8 +37,8 @@ export interface ErrorGroupStats { } export interface GroupStatesResponse { - errorGroupStats: ErrorGroupStats[]; - nextPageToken: string; + errorGroupStats?: ErrorGroupStats[]; + nextPageToken?: string; timeRangeBegin: string; } @@ -52,19 +52,21 @@ export class ErrorsApiTransport extends AuthClient { super(config, logger); } - async getAllGroups(service: string, version: string, pageSize: number): - Promise { + async getAllGroups( + service: string, version: string, pageSize: number, + pageToken?: string): Promise { const id = await this.getProjectId(); const options = { uri: [ API, id, 'groupStats?' + ONE_HOUR_API + `&serviceFilter.service=${service}&serviceFilter.version=${ - version}&pageSize=${pageSize}` + version}&pageSize=${pageSize}&order=LAST_SEEN_DESC` + + (pageToken ? `&pageToken=${pageToken}` : '') ].join('/'), method: 'GET' }; - const r = await this.request_(options); - return r.body.errorGroupStats || []; + const response = await this.request_(options); + return response.body; } } From bf4f4801e35536a378d227b0f46b96e2771125fb Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Tue, 18 Dec 2018 18:53:36 -0800 Subject: [PATCH 206/527] chore: fix test config to include skipped tests (#287) The test config was only running tests that were in directories within the `test/unit` directory. Now those tests as well as test files in the `test/unit` directory itself are run. --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index c0be742ab39..fcf2f4660f2 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -25,7 +25,7 @@ "lint": "eslint samples/ && gts check && jsgl --local .", "presystem-test": "npm run compile", "system-test": "nyc --exclude=\"error-message.js\" mocha build/system-test/**/*.js", - "cover": "nyc --exclude=\"fuzzer.js\" --reporter=lcov mocha build/test/unit/**/*.js && nyc report", + "cover": "nyc --exclude=\"fuzzer.js\" --reporter=lcov mocha build/test/unit/*.js build/test/unit/**/*.js && nyc report", "presamples-test": "npm run compile", "samples-test": "cd samples/ && npm link ../ && npm test && cd ../", "test-no-cover": "mocha build/test/unit/**/*.js --timeout 20000", From 8299976e589f19dc7edb2a9852dddd14b6b18488 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Wed, 19 Dec 2018 16:25:40 -0800 Subject: [PATCH 207/527] fix: improve error item message for plain objects (#286) Fixes: #252 --- handwritten/error-reporting/src/populate-error-message.ts | 3 ++- handwritten/error-reporting/system-test/error-reporting.ts | 2 +- .../error-reporting/test/unit/populate-error-message.ts | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/handwritten/error-reporting/src/populate-error-message.ts b/handwritten/error-reporting/src/populate-error-message.ts index 244d4287699..ad86f5a0cee 100644 --- a/handwritten/error-reporting/src/populate-error-message.ts +++ b/handwritten/error-reporting/src/populate-error-message.ts @@ -16,6 +16,7 @@ import * as is from 'is'; import has = require('lodash.has'); +import * as util from 'util'; import {buildStackTrace} from './build-stack-trace'; import {ErrorMessage} from './classes/error-message'; @@ -109,7 +110,7 @@ function populateFromObject(ob: PopulatedObject, errorMessage: ErrorMessage) { if (has(ob, 'message')) { errorMessage.setMessage(ob.message!); } else { - errorMessage.setMessage(buildStackTrace('' + ob)); + errorMessage.setMessage(buildStackTrace(util.inspect(ob))); } if (has(ob, 'user')) { diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index 5194bd00cb6..78f81fa459e 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -630,7 +630,7 @@ describe('error-reporting', () => { async function(this) { this.timeout(TIMEOUT); await verifyReporting({someKey: 'someValue'}, message => { - return message.startsWith('[object Object]\n'); + return message.startsWith('{ someKey: \'someValue\' }\n'); }, 1, TIMEOUT); }); diff --git a/handwritten/error-reporting/test/unit/populate-error-message.ts b/handwritten/error-reporting/test/unit/populate-error-message.ts index 63c44fcc287..607a7cb192f 100644 --- a/handwritten/error-reporting/test/unit/populate-error-message.ts +++ b/handwritten/error-reporting/test/unit/populate-error-message.ts @@ -114,9 +114,9 @@ describe('populate-error-message', () => { it('Message Field: Should default the field given lack-of input given ' + 'an object', () => { - const err = {}; + const err = {error: 'some error message'}; populateErrorMessage(err, em); - assert(em.message.startsWith('[object Object]')); + assert(em.message.startsWith('{ error: \'some error message\' }')); }); it('User Field: Should set the field given valid input given an Error', From e1568bacc27d34eccd67dd4d33e89dfbeea4d454 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Thu, 20 Dec 2018 11:33:45 -0800 Subject: [PATCH 208/527] chore: increase the system test delay (#291) This change is made to address the error: ``` Error: Quota exceeded for quota metric 'clouderrorreporting.googleapis.com/manage_error_events_data_requests' and limit 'ManageErrorEventsDataRequestsPerMinutePerUser' of service 'clouderrorreporting.googleapis.com' ``` --- handwritten/error-reporting/system-test/error-reporting.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index 78f81fa459e..9437c68fcaa 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -496,7 +496,6 @@ describe('error-reporting', () => { while (shouldContinue()) { let prevPageToken: string|undefined; let allGroups: ErrorGroupStats[]|undefined; - const page = 1; while (shouldContinue() && (!allGroups || allGroups.length > 0)) { const response = await transport.getAllGroups( SERVICE, VERSION, PAGE_SIZE, prevPageToken); @@ -514,7 +513,7 @@ describe('error-reporting', () => { messageTest(errItem.representative.message)); }); groups = groups.concat(filteredGroups); - await delay(5000); + await delay(15000); } } From ad104184ff572730948662fc769e527e4fc0df95 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Thu, 20 Dec 2018 12:51:24 -0800 Subject: [PATCH 209/527] Release v0.5.2 (#292) --- handwritten/error-reporting/CHANGELOG.md | 119 +++++++++++++++++++++++ handwritten/error-reporting/package.json | 2 +- 2 files changed, 120 insertions(+), 1 deletion(-) create mode 100644 handwritten/error-reporting/CHANGELOG.md diff --git a/handwritten/error-reporting/CHANGELOG.md b/handwritten/error-reporting/CHANGELOG.md new file mode 100644 index 00000000000..bd9cd5f23f0 --- /dev/null +++ b/handwritten/error-reporting/CHANGELOG.md @@ -0,0 +1,119 @@ +# Changelog + +[npm history][1] + +[1]: https://www.npmjs.com/package/@google-cloud/error-reporting?activeTab=versions + +## v0.5.2 + +12-20-2018 11:49 PST + +### Implementation Changes + +- fix: improve error item message for plain objects ([#286](https://github.com/googleapis/nodejs-error-reporting/pull/286)) + +### Dependencies + +- chore(deps): update dependency typescript to ~3.2.0 ([#266](https://github.com/googleapis/nodejs-error-reporting/pull/266)) +- fix(deps): update dependency @google-cloud/common to ^0.27.0 ([#264](https://github.com/googleapis/nodejs-error-reporting/pull/264)) +- chore(deps): update dependency gts to ^0.9.0 ([#255](https://github.com/googleapis/nodejs-error-reporting/pull/255)) +- chore(deps): update dependency @google-cloud/nodejs-repo-tools to v3 ([#250](https://github.com/googleapis/nodejs-error-reporting/pull/250)) +- chore(deps): update dependency @types/is to v0.0.21 ([#247](https://github.com/googleapis/nodejs-error-reporting/pull/247)) +- fix(deps): update dependency @google-cloud/common to ^0.26.0 ([#230](https://github.com/googleapis/nodejs-error-reporting/pull/230)) +- chore(deps): update dependency eslint-plugin-node to v8 ([#235](https://github.com/googleapis/nodejs-error-reporting/pull/235)) +- chore(deps): update dependency typescript to ~3.1.0 ([#218](https://github.com/googleapis/nodejs-error-reporting/pull/218)) +- chore(deps): update dependency sinon to v7 ([#223](https://github.com/googleapis/nodejs-error-reporting/pull/223)) +- chore(deps): update dependency eslint-plugin-prettier to v3 ([#219](https://github.com/googleapis/nodejs-error-reporting/pull/219)) +- chore(deps): update dependency @types/glob to v7 ([#212](https://github.com/googleapis/nodejs-error-reporting/pull/212)) +- fix(deps): update dependency @google-cloud/common to ^0.25.0 ([#210](https://github.com/googleapis/nodejs-error-reporting/pull/210)) +- chore(deps): update dependency nock to v10 ([#208](https://github.com/googleapis/nodejs-error-reporting/pull/208)) +- fix(deps): update dependency @google-cloud/common to ^0.24.0 ([#206](https://github.com/googleapis/nodejs-error-reporting/pull/206)) +- fix(deps): update dependency @google-cloud/common to ^0.23.0 ([#198](https://github.com/googleapis/nodejs-error-reporting/pull/198)) +- chore(deps): update dependency nyc to v13 ([#200](https://github.com/googleapis/nodejs-error-reporting/pull/200)) +- chore(deps): update dependency eslint-config-prettier to v3 ([#195](https://github.com/googleapis/nodejs-error-reporting/pull/195)) +- chore(deps): update dependency pify to v4 ([#194](https://github.com/googleapis/nodejs-error-reporting/pull/194)) +- fix(deps): update dependency @google-cloud/common to ^0.21.0 ([#192](https://github.com/googleapis/nodejs-error-reporting/pull/192)) +- chore(deps): lock file maintenance ([#191](https://github.com/googleapis/nodejs-error-reporting/pull/191)) +- chore(deps): lock file maintenance ([#181](https://github.com/googleapis/nodejs-error-reporting/pull/181)) +- chore(deps): update dependency typescript to v3 ([#180](https://github.com/googleapis/nodejs-error-reporting/pull/180)) +- chore(deps): lock file maintenance ([#175](https://github.com/googleapis/nodejs-error-reporting/pull/175)) +- chore(deps): lock file maintenance ([#174](https://github.com/googleapis/nodejs-error-reporting/pull/174)) +- chore(deps): lock file maintenance ([#173](https://github.com/googleapis/nodejs-error-reporting/pull/173)) +- chore(deps): lock file maintenance ([#172](https://github.com/googleapis/nodejs-error-reporting/pull/172)) +- chore(deps): update dependency eslint-plugin-node to v7 ([#170](https://github.com/googleapis/nodejs-error-reporting/pull/170)) +- chore(deps): lock file maintenance ([#169](https://github.com/googleapis/nodejs-error-reporting/pull/169)) +- chore(deps): update dependency gts to ^0.8.0 ([#167](https://github.com/googleapis/nodejs-error-reporting/pull/167)) +- chore(deps): lock file maintenance ([#165](https://github.com/googleapis/nodejs-error-reporting/pull/165)) +- chore(deps): lock file maintenance ([#164](https://github.com/googleapis/nodejs-error-reporting/pull/164)) +- chore(deps): lock file maintenance ([#163](https://github.com/googleapis/nodejs-error-reporting/pull/163)) +- chore(deps): lock file maintenance ([#160](https://github.com/googleapis/nodejs-error-reporting/pull/160)) + + +### Documentation + +- docs: update readme badges ([#269](https://github.com/googleapis/nodejs-error-reporting/pull/269)) + +### Internal / Testing Changes + +- chore: increase the system test delay ([#291](https://github.com/googleapis/nodejs-error-reporting/pull/291)) +- chore: fix test config to include skipped tests ([#287](https://github.com/googleapis/nodejs-error-reporting/pull/287)) +- chore: change sort order for retrieving err items ([#289](https://github.com/googleapis/nodejs-error-reporting/pull/289)) +- chore(build): inject yoshi automation key ([#285](https://github.com/googleapis/nodejs-error-reporting/pull/285)) +- chore: update nyc and eslint configs ([#284](https://github.com/googleapis/nodejs-error-reporting/pull/284)) +- chore: fix publish.sh permission +x ([#282](https://github.com/googleapis/nodejs-error-reporting/pull/282)) +- fix(build): fix Kokoro release script ([#281](https://github.com/googleapis/nodejs-error-reporting/pull/281)) +- build: add Kokoro configs for autorelease ([#280](https://github.com/googleapis/nodejs-error-reporting/pull/280)) +- chore: address system test flakiness ([#275](https://github.com/googleapis/nodejs-error-reporting/pull/275)) +- chore: always nyc report before calling codecov ([#277](https://github.com/googleapis/nodejs-error-reporting/pull/277)) +- chore: nyc ignore build/test by default ([#276](https://github.com/googleapis/nodejs-error-reporting/pull/276)) +- chore: clean up usage of prettier and eslint ([#274](https://github.com/googleapis/nodejs-error-reporting/pull/274)) +- chore: update system tests key ([#272](https://github.com/googleapis/nodejs-error-reporting/pull/272)) +- chore: update license file ([#271](https://github.com/googleapis/nodejs-error-reporting/pull/271)) +- fix(build): fix system key decryption ([#267](https://github.com/googleapis/nodejs-error-reporting/pull/267)) +- chore: update key for system tests ([#265](https://github.com/googleapis/nodejs-error-reporting/pull/265)) +- refactor(samples): convert sample tests from ava to mocha ([#257](https://github.com/googleapis/nodejs-error-reporting/pull/257)) +- Update region tags in samples ([#259](https://github.com/googleapis/nodejs-error-reporting/pull/259)) +- chore: add a synth.metadata +- fix: sys tests use async/await to allow a fix ([#253](https://github.com/googleapis/nodejs-error-reporting/pull/253)) +- chore: update eslintignore config ([#254](https://github.com/googleapis/nodejs-error-reporting/pull/254)) +- refactor: remove unused deps and simplify ([#248](https://github.com/googleapis/nodejs-error-reporting/pull/248)) +- chore: drop contributors from multiple places ([#249](https://github.com/googleapis/nodejs-error-reporting/pull/249)) +- chore: use latest npm on Windows ([#246](https://github.com/googleapis/nodejs-error-reporting/pull/246)) +- chore: increase system test timeout ([#245](https://github.com/googleapis/nodejs-error-reporting/pull/245)) +- chore: update CircleCI config ([#244](https://github.com/googleapis/nodejs-error-reporting/pull/244)) +- chore: include build in eslintignore ([#241](https://github.com/googleapis/nodejs-error-reporting/pull/241)) +- chore: update issue templates ([#234](https://github.com/googleapis/nodejs-error-reporting/pull/234)) +- chore: remove old issue template ([#232](https://github.com/googleapis/nodejs-error-reporting/pull/232)) +- build: run tests on node11 ([#231](https://github.com/googleapis/nodejs-error-reporting/pull/231)) +- chores(build): do not collect sponge.xml from windows builds ([#229](https://github.com/googleapis/nodejs-error-reporting/pull/229)) +- chore: update nock path in system tests ([#216](https://github.com/googleapis/nodejs-error-reporting/pull/216)) +- chores(build): run codecov on continuous builds ([#228](https://github.com/googleapis/nodejs-error-reporting/pull/228)) +- chore: update new issue template ([#227](https://github.com/googleapis/nodejs-error-reporting/pull/227)) +- build: fix codecov uploading on Kokoro ([#224](https://github.com/googleapis/nodejs-error-reporting/pull/224)) +- Update kokoro config ([#220](https://github.com/googleapis/nodejs-error-reporting/pull/220)) +- Don't publish sourcemaps ([#217](https://github.com/googleapis/nodejs-error-reporting/pull/217)) +- test: remove appveyor config ([#215](https://github.com/googleapis/nodejs-error-reporting/pull/215)) +- Enable prefer-const in the eslint config ([#211](https://github.com/googleapis/nodejs-error-reporting/pull/211)) +- Enable no-var in eslint ([#209](https://github.com/googleapis/nodejs-error-reporting/pull/209)) +- Update CI config ([#207](https://github.com/googleapis/nodejs-error-reporting/pull/207)) +- Add a synth file and update CI ([#204](https://github.com/googleapis/nodejs-error-reporting/pull/204)) +- Retry npm install in CI ([#203](https://github.com/googleapis/nodejs-error-reporting/pull/203)) +- feat: use small HTTP dependency ([#201](https://github.com/googleapis/nodejs-error-reporting/pull/201)) +- chore: assert.deepEqual => assert.deepStrictEqual ([#179](https://github.com/googleapis/nodejs-error-reporting/pull/179)) +- test: fix a node 10 test failure ([#199](https://github.com/googleapis/nodejs-error-reporting/pull/199)) +- chore: ignore package-lock.json ([#193](https://github.com/googleapis/nodejs-error-reporting/pull/193)) +- feat: add Koa2 support ([#117](https://github.com/googleapis/nodejs-error-reporting/pull/117)) +- chore: fix sys test failure caused by a type error ([#188](https://github.com/googleapis/nodejs-error-reporting/pull/188)) +- chore: update renovate config ([#189](https://github.com/googleapis/nodejs-error-reporting/pull/189)) +- chore: do not target `es5` ([#187](https://github.com/googleapis/nodejs-error-reporting/pull/187)) +- chore: fix `lodash.has` usage ([#185](https://github.com/googleapis/nodejs-error-reporting/pull/185)) +- chore: delete an unused file ([#184](https://github.com/googleapis/nodejs-error-reporting/pull/184)) +- fix: fix installation tests ([#183](https://github.com/googleapis/nodejs-error-reporting/pull/183)) +- chore: move mocha options to mocha.opts ([#177](https://github.com/googleapis/nodejs-error-reporting/pull/177)) +- chore: require node 8 for samples ([#178](https://github.com/googleapis/nodejs-error-reporting/pull/178)) +- chore: switch to console-log-level for logging ([#176](https://github.com/googleapis/nodejs-error-reporting/pull/176)) +- test: use strictEqual in tests ([#171](https://github.com/googleapis/nodejs-error-reporting/pull/171)) +- chore: use post-install-check ([#166](https://github.com/googleapis/nodejs-error-reporting/pull/166)) +- test: fix system tests ([#162](https://github.com/googleapis/nodejs-error-reporting/pull/162)) +- fix: drop support for nodejs 9.x ([#161](https://github.com/googleapis/nodejs-error-reporting/pull/161)) + diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index fcf2f4660f2..527bc4c851a 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/error-reporting", "description": "Stackdriver Error Reporting Client Library for Node.js", - "version": "0.5.1", + "version": "0.5.2", "license": "Apache-2.0", "author": "Google Inc.", "engines": { From 0e861d5d25e43418cfffb0adb42a5385bf1a217b Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Fri, 11 Jan 2019 13:14:00 -0800 Subject: [PATCH 210/527] feat: add a new `reportMode` configuration option (#295) Adds the `reportMode` configuration option. The `ignoreEnvironmentCheck` configuration option is now deprecated, and the `reportMode` option should be used instead. In particular, the `reportMode` can have one of three values: * 'production' (default) - Only report errors if NODE_ENV is set to "production".: * 'always' - Always report errors regardless of the value of NODE_ENV. * 'never' - Never report errors regardless of the value of NODE_ENV. Fixes #127 --- .../error-reporting/src/configuration.ts | 102 ++-- .../src/google-apis/auth-client.ts | 16 +- handwritten/error-reporting/src/index.ts | 8 + .../system-test/error-reporting.ts | 31 +- .../test/unit/configuration.ts | 522 +++++++++++------- .../test/unit/google-apis/auth-client.ts | 129 ++++- 6 files changed, 551 insertions(+), 257 deletions(-) diff --git a/handwritten/error-reporting/src/configuration.ts b/handwritten/error-reporting/src/configuration.ts index 5dee3a264fe..f750c1611b2 100644 --- a/handwritten/error-reporting/src/configuration.ts +++ b/handwritten/error-reporting/src/configuration.ts @@ -35,6 +35,8 @@ export interface Logger { fatal(...args: Array<{}>): void; } +export type ReportMode = 'production'|'always'|'never'; + export interface ConfigurationOptions { projectId?: string; keyFilename?: string; @@ -42,6 +44,7 @@ export interface ConfigurationOptions { key?: string; serviceContext?: {service?: string; version?: string;}; ignoreEnvironmentCheck?: boolean; + reportMode?: ReportMode; credentials?: {}; reportUnhandledRejections?: boolean; } @@ -74,7 +77,7 @@ export interface ServiceContext { */ export class Configuration { _logger: Logger; - _shouldReportErrorsToAPI: boolean; + _reportMode: ReportMode; _projectId: string|null; _key: string|null; keyFilename: string|null; @@ -89,23 +92,7 @@ export class Configuration { * for configuration logging purposes. */ this._logger = logger; - /** - * The _shouldReportErrorsToAPI property is meant to denote whether or not - * the Stackdriver error reporting library will actually try to report - * Errors to the Stackdriver Error API. The value of this property is - * derived from the `NODE_ENV` environmental variable or the value of - * ignoreEnvironmentChec property if present in the runtime configuration. - * If either the `NODE_ENV` variable is set to 'production' or the - * ignoreEnvironmentCheck propery on the runtime configuration is set to - * true then the error reporting library attempt to send errors to the Error - * API. Otherwise the value will remain false and errors will not be - * reported to the API. - * @memberof Configuration - * @private - * @type {Boolean} - * @defaultvalue false - */ - this._shouldReportErrorsToAPI = false; + this._reportMode = 'production'; /** * The _projectId property is meant to contain the string project id that * the hosting application is running under. The project id is a unique @@ -259,6 +246,12 @@ export class Configuration { } } } + _determineReportMode() { + if (this._givenConfiguration.reportMode) { + this._reportMode = + this._givenConfiguration.reportMode.toLowerCase() as ReportMode; + } + } /** * The _gatherLocalConfiguration function is responsible for determining * directly determing whether the properties `reportUncaughtExceptions` and @@ -273,23 +266,56 @@ export class Configuration { * @returns {Undefined} - does not return anything */ _gatherLocalConfiguration() { - if (this._givenConfiguration.ignoreEnvironmentCheck === true) { - this._shouldReportErrorsToAPI = true; - } else if ( - has(this._givenConfiguration, 'ignoreEnvironmentCheck') && - !is.boolean(this._givenConfiguration.ignoreEnvironmentCheck)) { - throw new Error('config.ignoreEnvironmentCheck must be a boolean'); - } else { - this._shouldReportErrorsToAPI = env.NODE_ENV === 'production'; + let isReportModeValid = true; + if (has(this._givenConfiguration, 'reportMode')) { + const reportMode = this._givenConfiguration.reportMode; + isReportModeValid = is.string(reportMode) && + (reportMode === 'production' || reportMode === 'always' || + reportMode === 'never'); + } + + if (!isReportModeValid) { + throw new Error( + 'config.reportMode must a string that is one ' + + 'of "production", "always", or "never".'); } - if (!this._shouldReportErrorsToAPI) { + + const hasEnvCheck = has(this._givenConfiguration, 'ignoreEnvironmentCheck'); + const hasReportMode = has(this._givenConfiguration, 'reportMode'); + if (hasEnvCheck) { + this._logger.warn( + 'The "ignoreEnvironmentCheck" config option is deprecated. ' + + 'Use the "reportMode" config option instead.'); + } + if (hasEnvCheck && hasReportMode) { this._logger.warn([ - 'Stackdriver error reporting client has not been configured to send', - 'errors, please check the NODE_ENV environment variable and make sure it', - 'is set to "production" or the ignoreEnvironmentCheck property is set to', - 'true in the runtime configuration object', + 'Both the "ignoreEnvironmentCheck" and "reportMode" configuration options', + 'have been specified. The "reportMode" option will take precedence.' ].join(' ')); + this._determineReportMode(); + } else if (hasEnvCheck) { + if (this._givenConfiguration.ignoreEnvironmentCheck === true) { + this._reportMode = 'always'; + } else if ( + has(this._givenConfiguration, 'ignoreEnvironmentCheck') && + !is.boolean(this._givenConfiguration.ignoreEnvironmentCheck)) { + throw new Error('config.ignoreEnvironmentCheck must be a boolean'); + } else { + this._reportMode = 'production'; + } + } else if (hasReportMode) { + this._determineReportMode(); } + + if (this.isReportingEnabled() && !this.getShouldReportErrorsToAPI()) { + this._logger.warn([ + 'The stackdriver error reporting client is configured to report errors', + 'if and only if the NODE_ENV environment variable is set to "production".', + 'Errors will not be reported. To have errors always reported, regardless of the', + 'value of NODE_ENV, set the reportMode configuration option to "always".' + ].join(' ')); + } + if (is.string(this._givenConfiguration.key)) { this._key = this._givenConfiguration.key!; } else if (has(this._givenConfiguration, 'key')) { @@ -349,14 +375,22 @@ export class Configuration { return this._projectId; } /** - * Returns the _shouldReportErrorsToAPI property on the instance. + * Returns whether this configuration specifies that errors should be + * reported to the error reporting API. That is, "reportMode" is + * either set to "always" or it is set to "production" and the value + * of the NODE_ENV environment variable is "production". * @memberof Configuration * @public * @function getShouldReportErrorsToAPI - * @returns {Boolean} - returns the _shouldReportErrorsToAPI property + * @returns {Boolean} - whether errors should be reported to the API */ getShouldReportErrorsToAPI() { - return this._shouldReportErrorsToAPI; + return this._reportMode === 'always' || + (this._reportMode === 'production' && + (process.env.NODE_ENV || '').toLowerCase() === 'production'); + } + isReportingEnabled() { + return this._reportMode !== 'never'; } /** * Returns the _projectId property on the instance. diff --git a/handwritten/error-reporting/src/google-apis/auth-client.ts b/handwritten/error-reporting/src/google-apis/auth-client.ts index 72d00554a5a..dc12fc5186c 100644 --- a/handwritten/error-reporting/src/google-apis/auth-client.ts +++ b/handwritten/error-reporting/src/google-apis/auth-client.ts @@ -159,7 +159,11 @@ export class RequestHandler extends Service { userCb?: (err: Error|null, response: http.ServerResponse|null, body: {}) => void) { - const cb: Function = (is.function(userCb) ? userCb : RequestHandler.noOp)!; + const cb: Function = (is.function(userCb) ? userCb : RequestHandler.noOp)!; + if (!this._config.isReportingEnabled()) { + cb(null, null, {}); + return; + } if (this._config.getShouldReportErrorsToAPI()) { this.request( { @@ -181,14 +185,14 @@ export class RequestHandler extends Service { }); } else { cb(new Error([ - 'Stackdriver error reporting client has not been configured to send', - 'errors, please check the NODE_ENV environment variable and make sure', - 'it is set to "production" or set the ignoreEnvironmentCheck property', - 'to true in the runtime configuration object', + 'The stackdriver error reporting client is configured to report errors', + 'if and only if the NODE_ENV environment variable is set to "production".', + 'Errors will not be reported. To have errors always reported, regardless of the', + 'value of NODE_ENV, set the reportMode configuration option to "always".' ].join(' ')), null, null); } - } + } } /** diff --git a/handwritten/error-reporting/src/index.ts b/handwritten/error-reporting/src/index.ts index 4d1a8adbfef..e8a00612255 100644 --- a/handwritten/error-reporting/src/index.ts +++ b/handwritten/error-reporting/src/index.ts @@ -55,6 +55,14 @@ export type RestifyRequestHandler = (req: any, res: any, next: Function) => any; * @property {Boolean} [ignoreEnvironmentCheck] - flag indicating whether or not * to communicate errors to the Stackdriver service even if NODE_ENV is not set * to production + * @property {String} [reportMode] - flag indicating whether or not + * to communicate errors to the Stackdriver service. Possible values are: + * -> 'production' (default) + * -> Only report errors if NODE_ENV is set to "production". + * -> 'always' + * -> Always report errors regardless of the value of NODE_ENV. + * -> 'never' + * -> Never report errors regardless of the value of NODE_ENV. */ /** diff --git a/handwritten/error-reporting/system-test/error-reporting.ts b/handwritten/error-reporting/system-test/error-reporting.ts index 9437c68fcaa..338deef1299 100644 --- a/handwritten/error-reporting/system-test/error-reporting.ts +++ b/handwritten/error-reporting/system-test/error-reporting.ts @@ -161,7 +161,7 @@ describe('Request/Response lifecycle mocking', () => { .post('/events:report?'); logger = createLogger({logLevel: 5}); client = new RequestHandler( - new Configuration({ignoreEnvironmentCheck: true}, logger), logger); + new Configuration({reportMode: 'always'}, logger), logger); }); afterEach(() => { @@ -207,8 +207,7 @@ describe('Request/Response lifecycle mocking', () => { const key = env.apiKey; const logger = createLogger({logLevel: 5}); const client = new RequestHandler( - new Configuration({key, ignoreEnvironmentCheck: true}, logger), - logger); + new Configuration({key, reportMode: 'always'}, logger), logger); fakeService.query({key}).reply(200, (uri: string) => { assert(uri.indexOf('key=' + key) > -1); return {}; @@ -242,7 +241,7 @@ describe('Client creation', () => { const cfg = new Configuration( { projectId: env.injected().projectId, - ignoreEnvironmentCheck: true, + reportMode: 'always', }, logger); this.timeout(10000); @@ -262,7 +261,7 @@ describe('Client creation', () => { function(this, done) { env.sterilizeProcess().setProjectId().setKeyFilename(); const logger = createLogger({logLevel: 5}); - const cfg = new Configuration({ignoreEnvironmentCheck: true}, logger); + const cfg = new Configuration({reportMode: 'always'}, logger); this.timeout(10000); assert.doesNotThrow(() => { new RequestHandler(cfg, logger) @@ -283,7 +282,7 @@ describe('Client creation', () => { const cfg = new Configuration( { projectId: '' + Number(env.injected().projectNumber), - ignoreEnvironmentCheck: true, + reportMode: 'always', }, logger); this.timeout(10000); @@ -303,7 +302,7 @@ describe('Client creation', () => { function(this, done) { env.sterilizeProcess().setKeyFilename().setProjectNumber(); const logger = createLogger({logLevel: 5}); - const cfg = new Configuration({ignoreEnvironmentCheck: true}, logger); + const cfg = new Configuration({reportMode: 'always'}, logger); this.timeout(10000); assert.doesNotThrow(() => { new RequestHandler(cfg, logger) @@ -319,10 +318,10 @@ describe('Client creation', () => { describe('Expected Behavior', () => { const ERROR_STRING = [ - 'Stackdriver error reporting client has not been configured to send', - 'errors, please check the NODE_ENV environment variable and make', - 'sure it is set to "production" or set the ignoreEnvironmentCheck', - 'property to true in the runtime configuration object', + 'The stackdriver error reporting client is configured to report errors', + 'if and only if the NODE_ENV environment variable is set to "production".', + 'Errors will not be reported. To have errors always reported, regardless of the', + 'value of NODE_ENV, set the reportMode configuration option to "always".' ].join(' '); const er = new Error(ERR_TOKEN); @@ -332,11 +331,11 @@ describe('Expected Behavior', () => { env.sterilizeProcess(); }); - it('Should callback with an error with a configuration to not report errors', + it('Should callback with an error with a configuration that cannot report errors', done => { env.sterilizeProcess().setKeyFilename().setProjectId(); process.env.NODE_ENV = 'null'; - const logger = createLogger({logLevel: 5}); + const logger = createLogger({logLevel: 5, reportMode: 'production'}); const client = new RequestHandler(new Configuration(undefined, logger), logger); client.sendError({} as ErrorMessage, (err, response) => { @@ -353,7 +352,7 @@ describe('Expected Behavior', () => { const cfg = new Configuration( { projectId: env.injected().projectId, - ignoreEnvironmentCheck: true, + reportMode: 'always', }, logger); const client = new RequestHandler(cfg, logger); @@ -373,7 +372,7 @@ describe('Expected Behavior', () => { const cfg = new Configuration( { projectId: '' + Number(env.injected().projectNumber), - ignoreEnvironmentCheck: true, + reportMode: 'always', }, logger); const client = new RequestHandler(cfg, logger); @@ -467,7 +466,7 @@ describe('error-reporting', () => { process.removeAllListeners('unhandledRejection'); const initConfiguration = Object.assign( { - ignoreEnvironmentCheck: true, + reportMode: 'always' as 'always', serviceContext: { service: SERVICE, version: VERSION, diff --git a/handwritten/error-reporting/test/unit/configuration.ts b/handwritten/error-reporting/test/unit/configuration.ts index 3011a25f336..fb0f588cab9 100644 --- a/handwritten/error-reporting/test/unit/configuration.ts +++ b/handwritten/error-reporting/test/unit/configuration.ts @@ -18,7 +18,7 @@ import * as assert from 'assert'; import * as is from 'is'; import merge = require('lodash.merge'); import {FakeConfiguration as Configuration} from '../fixtures/configuration'; -import {ConfigurationOptions} from '../../src/configuration'; +import {ConfigurationOptions, Logger} from '../../src/configuration'; import {Fuzzer} from '../../utils/fuzzer'; import {deepStrictEqual} from '../util'; const level = process.env.GCLOUD_ERRORS_LOGLEVEL; @@ -73,7 +73,7 @@ describe('Configuration class', () => { }); describe('valid config and default values', () => { let c: Configuration; - const validConfig = {ignoreEnvironmentCheck: true}; + const validConfig = {reportMode: 'always'} as {reportMode: 'always'}; before(() => { process.env.NODE_ENV = 'development'; }); @@ -104,6 +104,138 @@ describe('Configuration class', () => { assert.strictEqual(c.getReportUnhandledRejections(), false); }); }); + describe('reportMode', () => { + let nodeEnv: string|undefined; + beforeEach(() => { + nodeEnv = process.env.NODE_ENV; + }); + + afterEach(() => { + if (nodeEnv === undefined) { + delete process.env.NODE_ENV; + } else { + process.env.NODE_ENV = nodeEnv; + } + }); + + it('Should print a deprecation warning if "ignoreEvnironmentCheck" is used', + () => { + let warnText = ''; + const logger = { + warn: (text) => { + warnText += text + '\n'; + } + } as Logger; + // tslint:disable-next-line:no-unused-expression + new Configuration({ignoreEnvironmentCheck: true}, logger); + assert.strictEqual( + warnText, + 'The "ignoreEnvironmentCheck" config option is deprecated. ' + + 'Use the "reportMode" config option instead.\n'); + }); + + it('Should print a warning if both "ignoreEnvironmentCheck" and "reportMode" are specified', + () => { + let warnText = ''; + const logger = { + warn: (text) => { + warnText += text + '\n'; + } + } as Logger; + // tslint:disable-next-line:no-unused-expression + new Configuration( + {ignoreEnvironmentCheck: true, reportMode: 'never'}, logger); + assert.strictEqual( + warnText, + 'The "ignoreEnvironmentCheck" config option is deprecated. ' + + 'Use the "reportMode" config option instead.\nBoth the "ignoreEnvironmentCheck" ' + + 'and "reportMode" configuration options have been specified. The "reportMode" ' + + 'option will take precedence.\n'); + }); + + it('Should set "reportMode" to "always" if "ignoreEnvironmentCheck" is true', + () => { + const conf = + new Configuration({ignoreEnvironmentCheck: true}, logger); + assert.strictEqual(conf._reportMode, 'always'); + }); + + it('Should set "reportMode" to "production" if "ignoreEnvironmentCheck" is false', + () => { + const conf = + new Configuration({ignoreEnvironmentCheck: false}, logger); + assert.strictEqual(conf._reportMode, 'production'); + }); + + it('Should prefer "reportMode" config if "ignoreEnvironmentCheck" is also set', + () => { + const conf = new Configuration( + {ignoreEnvironmentCheck: true, reportMode: 'never'}, logger); + assert.strictEqual(conf._reportMode, 'never'); + }); + + it('Should be set to "production" by default', () => { + const conf = new Configuration({}, logger); + assert.strictEqual(conf._reportMode, 'production'); + }); + + it('Should state reporting is enabled with mode "production"', () => { + const conf = new Configuration({reportMode: 'production'}, logger); + assert.strictEqual(conf.isReportingEnabled(), true); + }); + + it('Should state reporting is enabled with mode "always"', () => { + const conf = new Configuration({reportMode: 'always'}, logger); + assert.strictEqual(conf.isReportingEnabled(), true); + }); + + it('Should state reporting is not enabled with mode "never"', () => { + const conf = new Configuration({reportMode: 'never'}, logger); + assert.strictEqual(conf.isReportingEnabled(), false); + }); + + it('Should state reporting should proceed with mode "production" and env "production"', + () => { + process.env.NODE_ENV = 'production'; + const conf = new Configuration({reportMode: 'production'}, logger); + assert.strictEqual(conf.getShouldReportErrorsToAPI(), true); + }); + + it('Should state reporting should not proceed with mode "production" and env not "production"', + () => { + process.env.NODE_ENV = 'dev'; + const conf = new Configuration({reportMode: 'production'}, logger); + assert.strictEqual(conf.getShouldReportErrorsToAPI(), false); + }); + + it('Should state reporting should proceed with mode "always" and env "production"', + () => { + process.env.NODE_ENV = 'production'; + const conf = new Configuration({reportMode: 'always'}, logger); + assert.strictEqual(conf.getShouldReportErrorsToAPI(), true); + }); + + it('Should state reporting should proceed with mode "always" and env not "production"', + () => { + process.env.NODE_ENV = 'dev'; + const conf = new Configuration({reportMode: 'always'}, logger); + assert.strictEqual(conf.getShouldReportErrorsToAPI(), true); + }); + + it('Should state reporting should not proceed with mode "never" and env "production"', + () => { + process.env.NODE_ENV = 'production'; + const conf = new Configuration({reportMode: 'never'}, logger); + assert.strictEqual(conf.getShouldReportErrorsToAPI(), false); + }); + + it('Should state reporting should not proceed with mode "never" and env not "production"', + () => { + process.env.NODE_ENV = 'dev'; + const conf = new Configuration({reportMode: 'never'}, logger); + assert.strictEqual(conf.getShouldReportErrorsToAPI(), false); + }); + }); describe('with ignoreEnvironmentCheck', () => { const conf = merge({}, {projectId: 'some-id'}, {ignoreEnvironmentCheck: true}); @@ -127,232 +259,246 @@ describe('Configuration class', () => { assert.strictEqual(c.getShouldReportErrorsToAPI(), true); }); }); - describe('exception behaviour', () => { - it('Should throw if invalid type for key', () => { - assert.throws(() => { - // we are intentionally providing an invalid configuration - // thus an explicit cast is needed - // tslint:disable-next-line:no-unused-expression - new Configuration( - {key: null} as {} as ConfigurationOptions, logger); - }); - }); - it('Should throw if invalid for ignoreEnvironmentCheck', () => { - assert.throws(() => { - // we are intentionally providing an invalid configuration - // thus an explicit cast is needed - // tslint:disable-next-line:no-unused-expression - new Configuration( - {ignoreEnvironmentCheck: null} as {} as ConfigurationOptions, - logger); - }); - }); - it('Should throw if invalid for serviceContext.service', () => { - assert.throws(() => { - // we are intentionally providing an invalid configuration - // thus an explicit cast is needed - // tslint:disable-next-line:no-unused-expression - new Configuration( - {serviceContext: {service: false}} as {} as - ConfigurationOptions, - logger); - }); - }); - it('Should throw if invalid for serviceContext.version', () => { - assert.throws(() => { - // we are intentionally providing an invalid configuration - // thus an explicit cast is needed - // tslint:disable-next-line:no-unused-expression - new Configuration( - {serviceContext: {version: true}} as {} as ConfigurationOptions, - logger); - }); - }); - it('Should throw if invalid for reportUnhandledRejections', () => { - assert.throws(() => { - // we are intentionally providing an invalid configuration - // thus an explicit cast is needed - // tslint:disable-next-line:no-unused-expression - new Configuration( - {reportUnhandledRejections: 'INVALID'} as {} as - ConfigurationOptions, - logger); - }); - }); - it('Should not throw given an empty object for serviceContext', () => { - assert.doesNotThrow(() => { - // tslint:disable-next-line:no-unused-expression - new Configuration({serviceContext: {}}, logger); - }); - }); - }); - }); - }); - describe('Configuration resource aquisition', () => { - before(() => { - sterilizeConfigEnv(); }); - describe('project id from configuration instance', () => { - const pi = 'test'; - let c: Configuration; - before(() => { - c = new Configuration({projectId: pi}, logger); - }); - after(() => { - nock.cleanAll(); + describe('exception behaviour', () => { + it('Should throw if invalid type for reportMode', () => { + assert.throws(() => { + // tslint:disable-next-line:no-unused-expression + new Configuration( + {reportMode: new Date()} as {} as ConfigurationOptions, logger); + }); }); - it('Should return the project id', () => { - assert.strictEqual(c.getProjectId(), pi); + it('Should throw if invalid value for reportMode', () => { + assert.throws(() => { + // tslint:disable-next-line:no-unused-expression + new Configuration( + {reportMode: 'invalid-mode'} as {} as ConfigurationOptions, + logger); + }); }); - }); - describe('project number from configuration instance', () => { - const pn = 1234; - let c: Configuration; - before(() => { - sterilizeConfigEnv(); - c = new Configuration( - {projectId: pn} as {} as ConfigurationOptions, logger); + it('Should throw if invalid type for key', () => { + assert.throws(() => { + // we are intentionally providing an invalid configuration + // thus an explicit cast is needed + // tslint:disable-next-line:no-unused-expression + new Configuration({key: null} as {} as ConfigurationOptions, logger); + }); }); - after(() => { - nock.cleanAll(); - sterilizeConfigEnv(); + it('Should throw if invalid for ignoreEnvironmentCheck', () => { + assert.throws(() => { + // we are intentionally providing an invalid configuration + // thus an explicit cast is needed + // tslint:disable-next-line:no-unused-expression + new Configuration( + {ignoreEnvironmentCheck: null} as {} as ConfigurationOptions, + logger); + }); }); - it('Should return the project number', () => { - assert.strictEqual(c.getProjectId(), pn.toString()); + it('Should throw if invalid for serviceContext.service', () => { + assert.throws(() => { + // we are intentionally providing an invalid configuration + // thus an explicit cast is needed + // tslint:disable-next-line:no-unused-expression + new Configuration( + {serviceContext: {service: false}} as {} as ConfigurationOptions, + logger); + }); }); - }); - }); - describe('Exception behaviour', () => { - describe('While lacking a project id', () => { - let c: Configuration; - before(() => { - sterilizeConfigEnv(); - createDeadMetadataService(); - c = new Configuration(undefined, logger); + it('Should throw if invalid for serviceContext.version', () => { + assert.throws(() => { + // we are intentionally providing an invalid configuration + // thus an explicit cast is needed + // tslint:disable-next-line:no-unused-expression + new Configuration( + {serviceContext: {version: true}} as {} as ConfigurationOptions, + logger); + }); }); - after(() => { - nock.cleanAll(); - sterilizeConfigEnv(); + it('Should throw if invalid for reportUnhandledRejections', () => { + assert.throws(() => { + // we are intentionally providing an invalid configuration + // thus an explicit cast is needed + // tslint:disable-next-line:no-unused-expression + new Configuration( + {reportUnhandledRejections: 'INVALID'} as {} as + ConfigurationOptions, + logger); + }); }); - it('Should return null', () => { - assert.strictEqual(c.getProjectId(), null); + it('Should not throw given an empty object for serviceContext', () => { + assert.doesNotThrow(() => { + // tslint:disable-next-line:no-unused-expression + new Configuration({serviceContext: {}}, logger); + }); }); }); - describe('Invalid type for projectId in runtime config', () => { - let c: Configuration; + describe('Configuration resource aquisition', () => { before(() => { sterilizeConfigEnv(); - createDeadMetadataService(); - // we are intentionally providing an invalid configuration - // thus an explicit cast is needed - c = new Configuration( - {projectId: null} as {} as ConfigurationOptions, logger); }); - after(() => { - nock.cleanAll(); - sterilizeConfigEnv(); + describe('project id from configuration instance', () => { + const pi = 'test'; + let c: Configuration; + before(() => { + c = new Configuration({projectId: pi}, logger); + }); + after(() => { + nock.cleanAll(); + }); + it('Should return the project id', () => { + assert.strictEqual(c.getProjectId(), pi); + }); }); - it('Should return null', () => { - assert.strictEqual(c.getProjectId(), null); + describe('project number from configuration instance', () => { + const pn = 1234; + let c: Configuration; + before(() => { + sterilizeConfigEnv(); + c = new Configuration( + {projectId: pn} as {} as ConfigurationOptions, logger); + }); + after(() => { + nock.cleanAll(); + sterilizeConfigEnv(); + }); + it('Should return the project number', () => { + assert.strictEqual(c.getProjectId(), pn.toString()); + }); }); }); - }); - describe('Resource aquisition', () => { - after(() => { - /* - * !! IMPORTANT !! - * THE restoreConfigEnv FUNCTION SHOULD BE CALLED LAST AS THIS TEST FILE - * EXITS AND SHOULD THEREFORE BE THE LAST THING TO EXECUTE FROM THIS FILE. - * !! IMPORTANT !! - */ - restoreConfigEnv(); - }); - describe('via env', () => { - before(() => { - sterilizeConfigEnv(); - }); - afterEach(() => { - sterilizeConfigEnv(); - }); - describe('no longer tests env itself', () => { + describe('Exception behaviour', () => { + describe('While lacking a project id', () => { let c: Configuration; - const projectId = 'test-xyz'; before(() => { - process.env.GCLOUD_PROJECT = projectId; + sterilizeConfigEnv(); + createDeadMetadataService(); c = new Configuration(undefined, logger); }); - it('Should assign', () => { + after(() => { + nock.cleanAll(); + sterilizeConfigEnv(); + }); + it('Should return null', () => { assert.strictEqual(c.getProjectId(), null); }); }); - describe('serviceContext', () => { + describe('Invalid type for projectId in runtime config', () => { let c: Configuration; - const projectId = 'test-abc'; - const serviceContext = { - service: 'test', - version: '1.x', - }; before(() => { - process.env.GCLOUD_PROJECT = projectId; - process.env.GAE_MODULE_NAME = serviceContext.service; - process.env.GAE_MODULE_VERSION = serviceContext.version; - c = new Configuration(undefined, logger); + sterilizeConfigEnv(); + createDeadMetadataService(); + // we are intentionally providing an invalid configuration + // thus an explicit cast is needed + c = new Configuration( + {projectId: null} as {} as ConfigurationOptions, logger); }); - it('Should assign', () => { - deepStrictEqual(c.getServiceContext(), serviceContext); + after(() => { + nock.cleanAll(); + sterilizeConfigEnv(); + }); + it('Should return null', () => { + assert.strictEqual(c.getProjectId(), null); }); }); }); - describe('via runtime configuration', () => { - before(() => { - sterilizeConfigEnv(); - }); - describe('serviceContext', () => { - let c: Configuration; - const projectId = 'xyz123'; - const serviceContext = { - service: 'evaluation', - version: '2.x', - }; + describe('Resource aquisition', () => { + after(() => { + /* + * !! IMPORTANT !! + * THE restoreConfigEnv FUNCTION SHOULD BE CALLED LAST AS THIS TEST FILE + * EXITS AND SHOULD THEREFORE BE THE LAST THING TO EXECUTE FROM THIS + * FILE. + * !! IMPORTANT !! + */ + restoreConfigEnv(); + }); + describe('via env', () => { before(() => { - c = new Configuration({ - projectId, - serviceContext, + sterilizeConfigEnv(); + }); + afterEach(() => { + sterilizeConfigEnv(); + }); + describe('no longer tests env itself', () => { + let c: Configuration; + const projectId = 'test-xyz'; + before(() => { + process.env.GCLOUD_PROJECT = projectId; + c = new Configuration(undefined, logger); + }); + it('Should assign', () => { + assert.strictEqual(c.getProjectId(), null); }); }); - it('Should assign', () => { - deepStrictEqual(c.getServiceContext(), serviceContext); + describe('serviceContext', () => { + let c: Configuration; + const projectId = 'test-abc'; + const serviceContext = { + service: 'test', + version: '1.x', + }; + before(() => { + process.env.GCLOUD_PROJECT = projectId; + process.env.GAE_MODULE_NAME = serviceContext.service; + process.env.GAE_MODULE_VERSION = serviceContext.version; + c = new Configuration(undefined, logger); + }); + it('Should assign', () => { + deepStrictEqual(c.getServiceContext(), serviceContext); + }); }); }); - describe('api key', () => { - let c: Configuration; - const projectId = '987abc'; - const key = '1337-api-key'; + describe('via runtime configuration', () => { before(() => { - c = new Configuration( - { - key, - projectId, - }, - logger); + sterilizeConfigEnv(); }); - it('Should assign', () => { - assert.strictEqual(c.getKey(), key); + describe('serviceContext', () => { + let c: Configuration; + const projectId = 'xyz123'; + const serviceContext = { + service: 'evaluation', + version: '2.x', + }; + before(() => { + c = new Configuration({ + projectId, + serviceContext, + }); + }); + it('Should assign', () => { + deepStrictEqual(c.getServiceContext(), serviceContext); + }); }); - }); - describe('reportUnhandledRejections', () => { - let c: Configuration; - const reportRejections = false; - before(() => { - c = new Configuration({ - reportUnhandledRejections: reportRejections, + describe('api key', () => { + let c: Configuration; + const projectId = '987abc'; + const key = '1337-api-key'; + before(() => { + c = new Configuration( + { + key, + projectId, + }, + logger); + }); + it('Should assign', () => { + assert.strictEqual(c.getKey(), key); }); }); - it('Should assign', () => { - assert.strictEqual( - c.getReportUnhandledRejections(), reportRejections); + describe('reportUnhandledRejections', () => { + let c: Configuration; + const reportRejections = false; + before(() => { + c = new Configuration({ + reportUnhandledRejections: reportRejections, + }); + }); + it('Should assign', () => { + assert.strictEqual( + c.getReportUnhandledRejections(), reportRejections); + }); }); }); }); }); -}); +}); \ No newline at end of file diff --git a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts index 500a7f81e0b..9de389c0d4a 100644 --- a/handwritten/error-reporting/test/unit/google-apis/auth-client.ts +++ b/handwritten/error-reporting/test/unit/google-apis/auth-client.ts @@ -21,14 +21,18 @@ import {deepStrictEqual} from '../../util'; function verifyReportedMessage( config1: ConfigurationOptions, errToReturn: Error|null|undefined, - expectedLogs: {error?: string; info?: string;}, done: () => void) { + expectedLogs: {error?: string; info?: string; warn?: string;}, + done: () => void) { class ServiceStub { authClient: {}; request: {}; constructor() { this.authClient = { async getAccessToken() { - throw errToReturn; + if (errToReturn) { + throw errToReturn; + } + return 'some-token'; }, }; this.request = () => {}; @@ -41,7 +45,7 @@ function verifyReportedMessage( }, }).RequestHandler; - const logs: {error?: string; info?: string;} = {}; + const logs: {error?: string; info?: string; warn?: string} = {}; const logger = { error(text: string) { if (!logs.error) { @@ -55,6 +59,12 @@ function verifyReportedMessage( } logs.info += text; }, + warn(text: string) { + if (!logs.warn) { + logs.warn = ''; + } + logs.warn += text; + } } as {} as Logger; const config2 = new Configuration(config1, logger); // tslint:disable-next-line:no-unused-expression @@ -65,9 +75,22 @@ function verifyReportedMessage( }); } describe('RequestHandler', () => { + let nodeEnv: string|undefined; + beforeEach(() => { + nodeEnv = process.env.NODE_ENV; + }); + + afterEach(() => { + if (nodeEnv === undefined) { + delete process.env.NODE_ENV; + } else { + process.env.NODE_ENV = nodeEnv; + } + }); + it('should not request OAuth2 token if key is provided', done => { - const config = { - ignoreEnvironmentCheck: true, + const config: ConfigurationOptions = { + reportMode: 'always', key: 'key', }; const message = 'Made OAuth2 Token Request'; @@ -78,6 +101,91 @@ describe('RequestHandler', () => { done); }).timeout(8000); + + it('should not issue a warning if disabled and can communicate with the API', + (done) => { + process.env.NODE_ENV = 'production'; + verifyReportedMessage( + {reportMode: 'never'}, + null, // no access token error + {}, // no expected logs + done); + }); + + it('should not issue a warning if disabled and cannot communicate with the API', + (done) => { + process.env.NODE_ENV = 'dev'; + verifyReportedMessage( + {reportMode: 'never'}, + null, // no access token error + {}, // no expected logs + done); + }); + + it('should not issue a warning if enabled and can communicate with the API', + (done) => { + process.env.NODE_ENV = 'production'; + verifyReportedMessage( + {reportMode: 'production'}, + null, // no access token error + {}, // no expected logs + done); + }); + + it('should not issue a warning with a default config and can communicate with the API', + (done) => { + process.env.NODE_ENV = 'production'; + verifyReportedMessage( + {}, + null, // no access token error + {}, // no expected logs + done); + }); + + it('should not issue a warning if it can communicate with the API', + (done: () => void) => { + const config = {ignoreEnvironmentCheck: true}; + const warn = + 'The "ignoreEnvironmentCheck" config option is deprecated. ' + + 'Use the "reportMode" config option instead.'; + verifyReportedMessage(config, null, {warn}, () => { + verifyReportedMessage(config, undefined, {warn}, done); + }); + }); + + it('should issue a warning if enabled and cannot communicate with the API', (done) => { + process.env.NODE_ENV = 'dev'; + verifyReportedMessage( + {reportMode: 'production'}, + null, // no access token error + { + warn: + 'The stackdriver error reporting client is configured to report ' + + 'errors if and only if the NODE_ENV environment variable is set to ' + + '"production". Errors will not be reported. To have errors always ' + + 'reported, regardless of the value of NODE_ENV, set the reportMode ' + + 'configuration option to "always".' + }, + done); + }); + + it('should issue a warning with a default config and cannot communicate with the API', + (done) => { + process.env.NODE_ENV = 'dev'; + verifyReportedMessage( + {}, + null, // no access token error + { + warn: + 'The stackdriver error reporting client is configured to report ' + + 'errors if and only if the NODE_ENV environment variable is set to ' + + '"production". Errors will not be reported. To have errors always ' + + 'reported, regardless of the value of NODE_ENV, set the reportMode ' + + 'configuration option to "always".' + }, + done); + }); + it('should issue a warning if it cannot communicate with the API', (done: () => void) => { const config = {ignoreEnvironmentCheck: true}; @@ -87,15 +195,10 @@ describe('RequestHandler', () => { error: 'Unable to find credential information on instance. This ' + 'library will be unable to communicate with the Stackdriver API to ' + 'save errors. Message: ' + message, + warn: + 'The "ignoreEnvironmentCheck" config option is deprecated. ' + + 'Use the "reportMode" config option instead.' }, done); }); - - it('should not issue a warning if it can communicate with the API', - (done: () => void) => { - const config = {ignoreEnvironmentCheck: true}; - verifyReportedMessage(config, null, {}, () => { - verifyReportedMessage(config, undefined, {}, done); - }); - }); }); From 5a85b0dc9fcfeef72fbaa602a1f354ec2d797055 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Tue, 22 Jan 2019 10:46:55 -0800 Subject: [PATCH 211/527] Release v0.6.0 (#298) --- handwritten/error-reporting/CHANGELOG.md | 7 +++++++ handwritten/error-reporting/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/handwritten/error-reporting/CHANGELOG.md b/handwritten/error-reporting/CHANGELOG.md index bd9cd5f23f0..e6e6cc21e65 100644 --- a/handwritten/error-reporting/CHANGELOG.md +++ b/handwritten/error-reporting/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/@google-cloud/error-reporting?activeTab=versions +## v0.6.0 + +01-22-2019 09:59 PST + +### New Features +- feat: add a new `reportMode` configuration option ([#295](https://github.com/googleapis/nodejs-error-reporting/pull/295)) + ## v0.5.2 12-20-2018 11:49 PST diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 527bc4c851a..aaaf6646534 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/error-reporting", "description": "Stackdriver Error Reporting Client Library for Node.js", - "version": "0.5.2", + "version": "0.6.0", "license": "Apache-2.0", "author": "Google Inc.", "engines": { From 1c430cac777c615141cb0f3d23c2f4c25b6a7a9c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Tue, 22 Jan 2019 11:23:57 -0800 Subject: [PATCH 212/527] chore(deps): update dependency @types/hapi to v18 (#297) --- handwritten/error-reporting/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index aaaf6646534..fb2b52c7138 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -53,7 +53,7 @@ "@types/boom": "^7.2.0", "@types/console-log-level": "^1.4.0", "@types/express": "^4.11.1", - "@types/hapi": "^17.0.12", + "@types/hapi": "^18.0.0", "@types/is": "0.0.21", "@types/json-stable-stringify": "^1.0.32", "@types/koa": "^2.0.45", @@ -84,7 +84,7 @@ "eslint-plugin-prettier": "^3.0.0", "express": "^4.16.3", "gts": "^0.9.0", - "hapi": "^17.4.0", + "hapi": "^18.0.0", "ink-docstrap": "^1.3.2", "intelli-espower-loader": "^1.0.1", "js-green-licenses": "^0.5.0", From 453b582728d0063b29c8faad41270267e6732557 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Fri, 25 Jan 2019 23:37:21 -0800 Subject: [PATCH 213/527] fix(deps): update dependency @google-cloud/common to ^0.30.0 (#293) --- handwritten/error-reporting/package.json | 2 +- .../error-reporting/utils/errors-api-transport.ts | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index fb2b52c7138..5bbc2ed4268 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -42,7 +42,7 @@ "license-check": "jsgl --local ." }, "dependencies": { - "@google-cloud/common": "^0.27.0", + "@google-cloud/common": "^0.30.0", "console-log-level": "^1.4.0", "is": "^3.2.1", "lodash.has": "^4.5.2", diff --git a/handwritten/error-reporting/utils/errors-api-transport.ts b/handwritten/error-reporting/utils/errors-api-transport.ts index 65f617d13bb..e018c729bab 100644 --- a/handwritten/error-reporting/utils/errors-api-transport.ts +++ b/handwritten/error-reporting/utils/errors-api-transport.ts @@ -66,7 +66,14 @@ export class ErrorsApiTransport extends AuthClient { ].join('/'), method: 'GET' }; - const response = await this.request_(options); - return response.body; + return new Promise((resolve, reject) => { + this.request(options, (err, body, res) => { + if (err) { + reject(err); + return; + } + resolve(body); + }); + }); } } From 348e1610c63614003200a43076bccfdd5fc75222 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Sat, 26 Jan 2019 15:47:03 -0800 Subject: [PATCH 214/527] chore(deps): update dependency eslint-config-prettier to v4 (#300) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 5bbc2ed4268..4a36bb9c52f 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -79,7 +79,7 @@ "cpy-cli": "^2.0.0", "delay": "^4.1.0", "eslint": "^5.0.0", - "eslint-config-prettier": "^3.0.0", + "eslint-config-prettier": "^4.0.0", "eslint-plugin-node": "^8.0.0", "eslint-plugin-prettier": "^3.0.0", "express": "^4.16.3", From 4bc3a9e5214df8ab202a2282825e7f05ee648d87 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot <44816363+yoshi-automation@users.noreply.github.com> Date: Sun, 27 Jan 2019 10:32:37 -0800 Subject: [PATCH 215/527] build: check for 404s when generating docs (#301) --- handwritten/error-reporting/.compodocrc | 10 ++++++++++ handwritten/error-reporting/.jsdoc.js | 2 +- handwritten/error-reporting/.kokoro/docs.sh | 8 ++++++++ handwritten/error-reporting/README.md | 9 ++------- handwritten/error-reporting/package.json | 5 ++--- handwritten/error-reporting/synth.metadata | 13 ++++++++++++- 6 files changed, 35 insertions(+), 12 deletions(-) create mode 100644 handwritten/error-reporting/.compodocrc diff --git a/handwritten/error-reporting/.compodocrc b/handwritten/error-reporting/.compodocrc new file mode 100644 index 00000000000..cd8b42152a6 --- /dev/null +++ b/handwritten/error-reporting/.compodocrc @@ -0,0 +1,10 @@ +--- +tsconfig: ./tsconfig.json +output: ./docs +theme: material +hideGenerator: true +disablePrivate: true +disableProtected: true +disableInternal: true +disableCoverage: true +disableGraph: true diff --git a/handwritten/error-reporting/.jsdoc.js b/handwritten/error-reporting/.jsdoc.js index f71ea4a8869..66ce7d634be 100644 --- a/handwritten/error-reporting/.jsdoc.js +++ b/handwritten/error-reporting/.jsdoc.js @@ -20,7 +20,7 @@ module.exports = { opts: { readme: './README.md', package: './package.json', - template: './node_modules/ink-docstrap/template', + template: './node_modules/jsdoc-baseline', recurse: true, verbose: true, destination: './docs/' diff --git a/handwritten/error-reporting/.kokoro/docs.sh b/handwritten/error-reporting/.kokoro/docs.sh index 3af3193411a..ea6e514f45d 100755 --- a/handwritten/error-reporting/.kokoro/docs.sh +++ b/handwritten/error-reporting/.kokoro/docs.sh @@ -23,3 +23,11 @@ cd $(dirname $0)/.. npm install npm run docs + +# Check broken links +BIN=./node_modules/.bin + +npm install broken-link-checker +npm install http-server +$BIN/http-server -p 8080 docs/ & +$BIN/blc http://localhost:8080 -r --exclude www.googleapis.com diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index e5fab09e25d..b11b97329e7 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -10,7 +10,6 @@ [Stackdriver Error Reporting](https://cloud.google.com/error-reporting/docs/) aggregates and displays errors produced in your running cloud services. -* [Error Reporting Node.js Client API Reference][client-docs] * [Error Reporting Documentation][product-docs] Read more about the client libraries for Cloud APIs, including the older @@ -84,9 +83,6 @@ has instructions for running the samples. | --------------------------- | --------------------------------- | | Examples | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/master/samples/snippets.js) | -The [Error Reporting Node.js Client API Reference][client-docs] documentation -also contains samples. - ## Versioning This library follows [Semantic Versioning](http://semver.org/). @@ -102,14 +98,13 @@ More Information: [Google Cloud Platform Launch Stages][launch_stages] ## Contributing -Contributions welcome! See the [Contributing Guide](.github/CONTRIBUTING.md). +Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/nodejs-error-reporting/blob/master/.github/CONTRIBUTING.md). ## License Apache Version 2.0 -See [LICENSE](LICENSE) +See [LICENSE](https://github.com/googleapis/nodejs-error-reporting/blob/master/LICENSE) -[client-docs]: https://cloud.google.com/nodejs/docs/reference/error-reporting/latest/ [product-docs]: https://cloud.google.com/error-reporting/docs/ diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 4a36bb9c52f..461c74ae0db 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -20,7 +20,7 @@ "!build/src/**/*.map" ], "scripts": { - "docs": "jsdoc -c .jsdoc.js", + "docs": "compodoc src/", "generate-scaffolding": "node node_modules/.bin/repo-tools generate all && node node_modules/.bin/repo-tools generate lib_samples_readme -l samples/ --config ../.cloud-repo-tools.json", "lint": "eslint samples/ && gts check && jsgl --local .", "presystem-test": "npm run compile", @@ -49,6 +49,7 @@ "teeny-request": "^3.6.0" }, "devDependencies": { + "@compodoc/compodoc": "^1.1.7", "@google-cloud/nodejs-repo-tools": "^3.0.0", "@types/boom": "^7.2.0", "@types/console-log-level": "^1.4.0", @@ -85,10 +86,8 @@ "express": "^4.16.3", "gts": "^0.9.0", "hapi": "^18.0.0", - "ink-docstrap": "^1.3.2", "intelli-espower-loader": "^1.0.1", "js-green-licenses": "^0.5.0", - "jsdoc": "^3.5.5", "json-stable-stringify": "^1.0.1", "koa": "^2.5.1", "lodash.maxby": "^4.6.0", diff --git a/handwritten/error-reporting/synth.metadata b/handwritten/error-reporting/synth.metadata index 9e26dfeeb6e..0e482d56432 100644 --- a/handwritten/error-reporting/synth.metadata +++ b/handwritten/error-reporting/synth.metadata @@ -1 +1,12 @@ -{} \ No newline at end of file +{ + "updateTime": "2019-01-26T12:10:21.278057Z", + "sources": [ + { + "template": { + "name": "node_library", + "origin": "synthtool.gcp", + "version": "2019.1.16" + } + } + ] +} \ No newline at end of file From d27439f0be6e0812dfe0d03e0a48fe14bba3d746 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Fri, 1 Feb 2019 10:10:16 -0800 Subject: [PATCH 216/527] Automerge by dpebot Automerge by dpebot --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 461c74ae0db..3cac901fb14 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -106,7 +106,7 @@ "proxyquire": "^2.0.1", "restify": "^7.2.0", "source-map-support": "^0.5.9", - "typescript": "~3.2.0", + "typescript": "~3.3.0", "uuid": "^3.3.2" } } From 18ab129f69dc3eabb758f8d8cd21c323db68afaa Mon Sep 17 00:00:00 2001 From: Dave Gramlich Date: Tue, 5 Feb 2019 13:51:36 -0800 Subject: [PATCH 217/527] docs: add lint/fix example to contributing guide (#303) --- handwritten/error-reporting/.github/CONTRIBUTING.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/handwritten/error-reporting/.github/CONTRIBUTING.md b/handwritten/error-reporting/.github/CONTRIBUTING.md index aaeac9f9483..b958f235007 100644 --- a/handwritten/error-reporting/.github/CONTRIBUTING.md +++ b/handwritten/error-reporting/.github/CONTRIBUTING.md @@ -50,4 +50,8 @@ accept your pull requests. npm test +1. Lint (and maybe fix) any changes: + + npm run fix + [setup]: https://cloud.google.com/nodejs/docs/setup From 7533670eafd88e281e7f679934802fc578f8cb38 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Wed, 6 Feb 2019 11:40:30 -0800 Subject: [PATCH 218/527] fix(deps): update dependency @google-cloud/common to ^0.31.0 (#304) --- handwritten/error-reporting/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 3cac901fb14..bd2450da76b 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -42,7 +42,7 @@ "license-check": "jsgl --local ." }, "dependencies": { - "@google-cloud/common": "^0.30.0", + "@google-cloud/common": "^0.31.0", "console-log-level": "^1.4.0", "is": "^3.2.1", "lodash.has": "^4.5.2", From 1b4cd57ef2fbeba6997d82e0cce40662b7c46fe9 Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Thu, 7 Feb 2019 15:37:32 -0800 Subject: [PATCH 219/527] chore: move CONTRIBUTING.md to root (#306) --- handwritten/error-reporting/{.github => }/CONTRIBUTING.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename handwritten/error-reporting/{.github => }/CONTRIBUTING.md (100%) diff --git a/handwritten/error-reporting/.github/CONTRIBUTING.md b/handwritten/error-reporting/CONTRIBUTING.md similarity index 100% rename from handwritten/error-reporting/.github/CONTRIBUTING.md rename to handwritten/error-reporting/CONTRIBUTING.md From 0b0886cb30466968d5b881a98e842440245bc629 Mon Sep 17 00:00:00 2001 From: Dave Gramlich Date: Thu, 7 Feb 2019 18:46:49 -0800 Subject: [PATCH 220/527] docs: update contributing path in README (#307) --- handwritten/error-reporting/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index b11b97329e7..46b3cb34b15 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -98,7 +98,7 @@ More Information: [Google Cloud Platform Launch Stages][launch_stages] ## Contributing -Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/nodejs-error-reporting/blob/master/.github/CONTRIBUTING.md). +Contributions welcome! See the [Contributing Guide](https://github.com/googleapis/nodejs-error-reporting/blob/master/CONTRIBUTING.md). ## License From 1a435b1263bd8c3a30437435ab417cbcc3348d1b Mon Sep 17 00:00:00 2001 From: Jonathan Lui Date: Fri, 8 Feb 2019 16:40:52 -0800 Subject: [PATCH 221/527] build: test using @grpc/grpc-js in CI (#308) * build: test using @grpc/grpc-js in CI * simplify configs --- .../.kokoro/continuous/node8/system-test-grpcjs.cfg | 12 ++++++++++++ .../.kokoro/presubmit/node8/system-test-grpcjs.cfg | 12 ++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 handwritten/error-reporting/.kokoro/continuous/node8/system-test-grpcjs.cfg create mode 100644 handwritten/error-reporting/.kokoro/presubmit/node8/system-test-grpcjs.cfg diff --git a/handwritten/error-reporting/.kokoro/continuous/node8/system-test-grpcjs.cfg b/handwritten/error-reporting/.kokoro/continuous/node8/system-test-grpcjs.cfg new file mode 100644 index 00000000000..b94fb9bb487 --- /dev/null +++ b/handwritten/error-reporting/.kokoro/continuous/node8/system-test-grpcjs.cfg @@ -0,0 +1,12 @@ +# Download resources for system tests (service account key, etc.) +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-error-reporting/.kokoro/system-test.sh" +} + +env_vars: { + key: "GOOGLE_CLOUD_USE_GRPC_JS" + value: "1" +} diff --git a/handwritten/error-reporting/.kokoro/presubmit/node8/system-test-grpcjs.cfg b/handwritten/error-reporting/.kokoro/presubmit/node8/system-test-grpcjs.cfg new file mode 100644 index 00000000000..b94fb9bb487 --- /dev/null +++ b/handwritten/error-reporting/.kokoro/presubmit/node8/system-test-grpcjs.cfg @@ -0,0 +1,12 @@ +# Download resources for system tests (service account key, etc.) +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-nodejs" + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/nodejs-error-reporting/.kokoro/system-test.sh" +} + +env_vars: { + key: "GOOGLE_CLOUD_USE_GRPC_JS" + value: "1" +} From ac4501b2679c4364a9fd05af15b6fc461318b7fb Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Sun, 10 Feb 2019 20:53:28 -0800 Subject: [PATCH 222/527] build: create docs test npm scripts (#309) --- handwritten/error-reporting/.kokoro/docs.sh | 10 +--------- handwritten/error-reporting/package.json | 7 +++++-- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/handwritten/error-reporting/.kokoro/docs.sh b/handwritten/error-reporting/.kokoro/docs.sh index ea6e514f45d..a4f318794e6 100755 --- a/handwritten/error-reporting/.kokoro/docs.sh +++ b/handwritten/error-reporting/.kokoro/docs.sh @@ -22,12 +22,4 @@ cd $(dirname $0)/.. npm install -npm run docs - -# Check broken links -BIN=./node_modules/.bin - -npm install broken-link-checker -npm install http-server -$BIN/http-server -p 8080 docs/ & -$BIN/blc http://localhost:8080 -r --exclude www.googleapis.com +npm run docs-test diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index bd2450da76b..25d7c01375a 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -39,7 +39,9 @@ "prepare": "npm run compile", "pretest-only": "npm run compile", "posttest": "npm run check && npm run license-check", - "license-check": "jsgl --local ." + "license-check": "jsgl --local .", + "docs-test": "blcl docs -r --exclude www.googleapis.com", + "predocs-test": "npm run docs" }, "dependencies": { "@google-cloud/common": "^0.31.0", @@ -107,6 +109,7 @@ "restify": "^7.2.0", "source-map-support": "^0.5.9", "typescript": "~3.3.0", - "uuid": "^3.3.2" + "uuid": "^3.3.2", + "broken-link-checker-local": "^0.2.0" } } From 576dc9545e634b76d1109d0f5477b0a8379d5ee1 Mon Sep 17 00:00:00 2001 From: Ali Ijaz Sheikh Date: Mon, 11 Feb 2019 14:15:44 -0800 Subject: [PATCH 223/527] refactor: cleanup types for reportManualError (#310) --- .../error-reporting/src/interfaces/manual.ts | 25 ++++++++++-- .../test/unit/interfaces/manual.ts | 39 ++++++++++++------- 2 files changed, 45 insertions(+), 19 deletions(-) diff --git a/handwritten/error-reporting/src/interfaces/manual.ts b/handwritten/error-reporting/src/interfaces/manual.ts index ccee56a092e..53dcf61de9f 100644 --- a/handwritten/error-reporting/src/interfaces/manual.ts +++ b/handwritten/error-reporting/src/interfaces/manual.ts @@ -27,6 +27,9 @@ import {Request} from '../request-extractors/manual'; export type Callback = (err: Error|null, response: http.ServerResponse|null, body: {}) => void; +// tslint:disable-next-line:no-any +type AnyError = any; + /** * The handler setup function serves to produce a bound instance of the * reportManualError function with no bound context, a bound first arugment @@ -60,11 +63,25 @@ export function handlerSetup( * @returns {ErrorMessage} - returns the error message created through with * the parameters given. */ - // the `err` argument can be anything, including `null` and `undefined` + function reportManualError(err: AnyError): ErrorMessage; + function reportManualError(err: AnyError, request: Request): ErrorMessage; + function reportManualError( + err: AnyError, additionalMessage: string): ErrorMessage; + function reportManualError(err: AnyError, callback: Callback): ErrorMessage; + function reportManualError( + err: AnyError, request: Request, callback: Callback): ErrorMessage; + function reportManualError( + err: AnyError, request: Request, additionalMessage: string): ErrorMessage; + function reportManualError( + err: AnyError, additionalMessage: string, + callback: Callback): ErrorMessage; + function reportManualError( + err: AnyError, request: Request, additionalMessage: string, + callback: Callback): ErrorMessage; function reportManualError( - err: any, // tslint:disable-line:no-any - request?: Request|Callback|string, additionalMessage?: Callback|string|{}, - callback?: Callback|{}|string) { + err: AnyError, request?: Request|Callback|string, + additionalMessage?: Callback|string|{}, + callback?: Callback|{}|string): ErrorMessage { let em; if (is.string(request)) { // no request given diff --git a/handwritten/error-reporting/test/unit/interfaces/manual.ts b/handwritten/error-reporting/test/unit/interfaces/manual.ts index d5b7e0b6390..d05b0a1278e 100644 --- a/handwritten/error-reporting/test/unit/interfaces/manual.ts +++ b/handwritten/error-reporting/test/unit/interfaces/manual.ts @@ -27,6 +27,7 @@ const config = new Configuration({}); import {ErrorMessage} from '../../../src/classes/error-message'; import {RequestHandler} from '../../../src/google-apis/auth-client'; import {RequestInformationContainer} from '../../../src/classes/request-information-container'; +import {Request} from '../../../src/request-extractors/manual'; describe('Manual handler', () => { // nock.disableNetConnect(); @@ -117,17 +118,21 @@ describe('Manual handler', () => { assert.strictEqual(r.context.httpRequest.method, 'TACKEY'); }); it('Should ignore arguments', done => { - const r = report('hockey', () => { - done(); - }, 'field'); + const r = report( + 'hockey', (() => { + done(); + }) as unknown as string, + 'field' as unknown as manual.Callback); assert( r.message.match('hockey') && !r.message.match('field'), 'string after callback should be ignored'); }); it('Should ignore arguments', done => { - const r = report('passkey', () => { - done(); - }, {method: 'HONK'}); + const r = report( + 'passkey', (() => { + done(); + }) as unknown as string, + {method: 'HONK'} as unknown as manual.Callback); assert.notEqual(r.context.httpRequest.method, 'HONK'); }); it('Should allow null arguments as placeholders', done => { @@ -137,21 +142,25 @@ describe('Manual handler', () => { assert(r.message.match(/pokey/), 'string error should propagate'); }); it('Should allow explicit undefined', done => { - const r = report('Turkey', undefined, undefined, () => { - done(); - }); + const r = report( + 'Turkey', undefined as unknown as Request, + undefined as unknown as string, () => { + done(); + }); assert(r.message.match(/Turkey/), 'string error should propagate'); }); it('Should allow request to be supplied as undefined', done => { - const r = report('turnkey', undefined, 'solution', () => { - done(); - }); + const r = + report('turnkey', undefined as unknown as Request, 'solution', () => { + done(); + }); assert.strictEqual(r.message, 'solution', 'error should propagate'); }); it('Should allow additional message', done => { - const r = report('Mickey', {method: 'SNIFF'}, undefined, () => { - done(); - }); + const r = report( + 'Mickey', {method: 'SNIFF'}, undefined as unknown as string, () => { + done(); + }); assert( r.message.match(/Mickey/) && !r.message.match(/SNIFF/), 'string error should propagate'); From b9cc80851ad1740970a9e2cb58718f7470ba45b1 Mon Sep 17 00:00:00 2001 From: Ali Ijaz Sheikh Date: Mon, 11 Feb 2019 17:03:40 -0800 Subject: [PATCH 224/527] fix: properly handle hapi v16+ req.url (#311) request.url can be a url.URL object. Fixes: https://github.com/googleapis/nodejs-error-reporting/issues/196 --- .../error-reporting/src/request-extractors/hapi.ts | 13 +++++++++---- .../test/unit/request-extractors/hapi.ts | 12 ++++++++++++ 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/handwritten/error-reporting/src/request-extractors/hapi.ts b/handwritten/error-reporting/src/request-extractors/hapi.ts index 151ba56e425..f3116a08c45 100644 --- a/handwritten/error-reporting/src/request-extractors/hapi.ts +++ b/handwritten/error-reporting/src/request-extractors/hapi.ts @@ -81,10 +81,15 @@ export function hapiRequestInformationExtractor(req?: hapi.Request) { return returnObject; } - returnObject - .setMethod(req!.method) - // TODO: Address the type conflict that requires a cast to string - .setUrl(req!.url as {} as string) + let urlString: string; + if (is.string(req!.url)) { + urlString = req!.url as {} as string; + } else { + urlString = req!.url.pathname; + } + + returnObject.setMethod(req!.method) + .setUrl(urlString) .setUserAgent(req!.headers['user-agent']) .setReferrer(req!.headers.referrer) .setStatusCode(attemptToExtractStatusCode(req!)) diff --git a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts index c8b84b8c0ea..7317c1febbe 100644 --- a/handwritten/error-reporting/test/unit/request-extractors/hapi.ts +++ b/handwritten/error-reporting/test/unit/request-extractors/hapi.ts @@ -15,6 +15,7 @@ */ import * as hapi from 'hapi'; +import {URL} from 'url'; import {hapiRequestInformationExtractor} from '../../../src/request-extractors/hapi'; import {Fuzzer} from '../../../utils/fuzzer'; @@ -120,5 +121,16 @@ describe('hapiRequestInformationExtractor behaviour', () => { ANOTHER_PARTIAL_REQ_DERIVATION_VALUE as {} as hapi.Request), ANOTHER_PARTIAL_REQ_EXPECTED_VALUE); }); + it('Should deal with hapi v16+ URL objects', () => { + const PATH = '/foo/bar'; + const REQUEST = { + ...FULL_REQ_DERIVATION_VALUE, + url: new URL(`https://www.SUPER-TEST.com${PATH}`) + }; + const EXPECTED = {...FULL_REQ_EXPECTED_VALUE, url: PATH}; + deepStrictEqual( + hapiRequestInformationExtractor(REQUEST as {} as hapi.Request), + EXPECTED); + }); }); }); From f219c013c21eef99263bddd2749afc3a92c89386 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Tue, 12 Feb 2019 12:44:06 -0800 Subject: [PATCH 225/527] docs: add custom documentation to the README (#313) --- handwritten/error-reporting/README.md | 274 ++++++++++++++++++ handwritten/error-reporting/README_OLD.md | 320 ---------------------- 2 files changed, 274 insertions(+), 320 deletions(-) delete mode 100644 handwritten/error-reporting/README_OLD.md diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 46b3cb34b15..04f6d5a8aa4 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -19,6 +19,7 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. **Table of contents:** +* [Overview](#overview) * [Quickstart](#quickstart) * [Before you begin](#before-you-begin) * [Installing the client library](#installing-the-client-library) @@ -28,6 +29,38 @@ Google APIs Client Libraries, in [Client Libraries Explained][explained]. * [Contributing](#contributing) * [License](#license) +## Overview + +This module provides custom Stackdriver Error Reporting support for Node.js applications. +[Stackdriver Error Reporting](https://cloud.google.com/error-reporting/) is a feature of +Google Cloud Platform that allows in-depth monitoring and viewing of errors reported by +applications running in almost any environment. + +However, note that [@google-cloud/logging-winston](https://github.com/googleapis/nodejs-logging-winston) and [@google-cloud/logging-bunyan](https://github.com/googleapis/nodejs-logging-bunyan) automatically integrate with the Error Reporting service for Error objects logged at severity `error` or higher, for applications running on Google Cloud Platform. + +Thus, if you are already using Winston or Bunyan in your application, and don't need custom error reporting capabilities, you do not need to use the `@google-cloud/error-reporting` library directly to report errors to the Error Reporting Console. + +![Stackdriver Error Reporting overview](https://raw.githubusercontent.com/googleapis/nodejs-error-reporting/master/doc/images/errors-overview.png) + +Here's an introductory video that provides some more details: + +[![Learn about Error Reporting in Stackdriver](https://img.youtube.com/vi/cVpWVD75Hs8/0.jpg)](https://www.youtube.com/watch?v=cVpWVD75Hs8) + +# When Errors Are Reported + +The `reportMode` configuration option is used to specify when errors are reported to the Error Reporting Console. It can have one of three values: +* `'production'` (default): Only report errors if the NODE_ENV environment variable is set to "production". +* `'always'`: Always report errors regardless of the value of NODE_ENV. +* `'never'`: Never report errors regardless of the value of NODE_ENV. + +The `reportMode` configuration option replaces the deprecated `ignoreEnvironmentCheck` configuration option. If both the `reportMode` and `ignoreEnvironmentCheck` options are specified, the `reportMode` configuration option takes precedence. + +The `ignoreEnvironmentCheck` option should not be used. However, if it is used, and the `reportMode` option is not specified, it can have the values: +* `false` (default): Only report errors if the NODE_ENV environment variable is set to "production". +* `true`: Always report errors regardless of the value of NODE_ENV. + +See the [Configuration](#configuration) section to learn how to specify configuration options. + ## Quickstart ### Before you begin @@ -83,6 +116,247 @@ has instructions for running the samples. | --------------------------- | --------------------------------- | | Examples | [source code](https://github.com/googleapis/nodejs-error-reporting/blob/master/samples/snippets.js) | +## Configuration + +The following code snippet lists available configuration options. All configuration options are optional. + +```js + // Node 6+ + const {ErrorReporting} = require('@google-cloud/error-reporting'); + + // Using ES6 style imports via TypeScript or Babel + // import {ErrorReporting} from '@google-cloud/error-reporting'; + + // Instantiates a client + const errors = new ErrorReporting({ + projectId: 'my-project-id', + keyFilename: '/path/to/keyfile.json', + credentials: require('./path/to/keyfile.json'), + // Specifies when errors are reported to the Error Reporting Console. + // See the "When Errors Are Reported" section for more information. + // Defaults to 'production' + reportMode: 'production', + // Determines the logging level internal to the library; levels range 0-5 + // where 0 indicates no logs should be reported and 5 indicates all logs + // should be reported. + // Defaults to 2 (warnings) + logLevel: 2, + serviceContext: { + service: 'my-service', + version: 'my-service-version' + } + }); +``` + +## Examples + +### Reporting Manually + +```js + // Node 6+ + const {ErrorReporting} = require('@google-cloud/error-reporting'); + + // Using ES6 style imports via TypeScript or Babel + // import {ErrorReporting} from '@google-cloud/error-reporting'; + + // Instantiates a client + const errors = new ErrorReporting(); + + // Use the error message builder to customize all fields ... + const errorEvt = errors.event() + .setMessage('My error message') + .setUser('root@nexus'); + errors.report(errorEvt, () => console.log('done!')); + + // or just use a regular error ... + errors.report(new Error('My error message'), () => console.log('done!')); + + // or one can even just use a string. + errors.report('My error message'); +``` + +The stack trace associated with an error can be viewed in the error reporting console. +* If the `errors.report` method is given an `ErrorMessage` object built using the `errors.event` method, the stack trace at the point where the error event was constructed will be used. +* If the `errors.report` method is given an `Error` object, the stack trace where the error was instantiated will be used. +* If the `errors.report` method is given a string, the stack trace at the point where `errors.report` is invoked will be used. + +### Using Express + +```js + const express = require('express'); + + // Node 6+ + const {ErrorReporting} = require('@google-cloud/error-reporting'); + + // Using ES6 style imports via TypeScript or Babel + // import {ErrorReporting} from '@google-cloud/error-reporting'; + + // Instantiates a client + const errors = new ErrorReporting(); + + const app = express(); + + app.get('/error', (req, res, next) => { + res.send('Something broke!'); + next(new Error('Custom error message')); + }); + + app.get('/exception', () => { + JSON.parse('{\"malformedJson\": true'); + }); + + // Note that express error handling middleware should be attached after all + // the other routes and use() calls. See [express docs][express-error-docs]. + app.use(errors.express); + + app.listen(3000); +``` + +### Using Hapi + +```js + const hapi = require('hapi'); + + // Node 6+ + const {ErrorReporting} = require('@google-cloud/error-reporting'); + + // Using ES6 style imports via TypeScript or Babel + // import {ErrorReporting} from '@google-cloud/error-reporting'; + + // Instantiates a client + const errors = new ErrorReporting(); + + const server = new hapi.Server(); + server.connection({ port: 3000 }); + server.start(); + + server.route({ + method: 'GET', + path: '/error', + handler: (request, reply) => { + reply('Something broke!'); + throw new Error('Custom error message'); + } + }); + + server.register(errors.hapi); +``` + +### Using Koa + +```js + const Koa = require('koa'); + + // Node 6+ + const {ErrorReporting} = require('@google-cloud/error-reporting'); + + // Using ES6 style imports via TypeScript or Babel + // import {ErrorReporting} from '@google-cloud/error-reporting'; + + // Instantiates a client + const errors = new ErrorReporting(); + + const app = new Koa(); + + app.use(errors.koa); + + app.use(function *(next) { + //This will set status and message + this.throw('Error Message', 500); + }); + + // response + app.use(function *(){ + this.body = 'Hello World'; + }); + + app.listen(3000); +``` + +### Using Restify + +```js + const restify = require('restify'); + + // Node 6+ + const {ErrorReporting} = require('@google-cloud/error-reporting'); + + // Using ES6 style imports via TypeScript or Babel + // import {ErrorReporting} from '@google-cloud/error-reporting'; + + // Instantiates a client + const errors = new ErrorReporting(); + + function respond(req, res, next) { + next(new Error('this is a restify error')); + } + + const server = restify.createServer(); + + server.use(errors.restify(server)); + server.get('/hello/:name', respond); + server.head('/hello/:name', respond); + + server.listen(3000); +``` + +## Unhandled Rejections + +Unhandled Rejections are not reported by default. The reporting of unhandled rejections can be enabled using the `reportUnhandledRejections` configuration option. See the [Configuration](#configuration) section for more details. + +If unhandled rejections are set to be reported, then, when an unhandled rejection occurs, a message is printed to standard out indicated that an unhandled rejection had occurred and is being reported, and the value causing the rejection is reported to the error-reporting console. + +## Catching and Reporting Application-wide Uncaught Errors + +Uncaught exceptions are not reported by default. *It is recommended to process `uncaughtException`s for production-deployed applications.* + +Note that uncaught exceptions are not reported by default because to do so would require adding a listener to the `uncaughtException` event. Adding such a listener without knowledge of other `uncaughtException` listeners can cause interference between the event handlers or prevent the process from terminating cleanly. As such, it is necessary for `uncaughtException`s to be reported manually. + +```js + // Node 6+ + const {ErrorReporting} = require('@google-cloud/error-reporting'); + + // Using ES6 style imports via TypeScript or Babel + // import {ErrorReporting} from '@google-cloud/error-reporting'; + + // Instantiates a client + const errors = new ErrorReporting(); + + process.on('uncaughtException', (e) => { + // Write the error to stderr. + console.error(e); + // Report that same error the Stackdriver Error Service + errors.report(e); + }); +``` + +More information about uncaught exception handling in Node.js and what it means for your application can be found [here](https://nodejs.org/api/process.html#process_event_uncaughtexception). + +### Using an API Key + +You may use an API key in lieu of locally-stored credentials. Please see [this document](https://support.google.com/cloud/answer/6158862) on how to set up an API key if you do not already have one. + +Once you have obtained an API key, you may provide it as part of the Error Reporting instance configuration: + +```js +// Node 6+ + const {ErrorReporting} = require('@google-cloud/error-reporting'); + + // Using ES6 style imports via TypeScript or Babel + // import {ErrorReporting} from '@google-cloud/error-reporting'; + + // Instantiates a client + const errors = new ErrorReporting({ + projectId: '{your project ID}', + key: '{your api key}' + }); +``` + +If a key is provided, the module will not attempt to authenticate using the methods associated with locally-stored credentials. We recommend using a file, environment variable, or another mechanism to store the API key rather than hard-coding it into your application's source. + +**Note:** The Error Reporting instance will check if the provided API key is invalid shortly after it is instantiated. If the key is invalid, an error-level message will be logged to stdout. + + ## Versioning This library follows [Semantic Versioning](http://semver.org/). diff --git a/handwritten/error-reporting/README_OLD.md b/handwritten/error-reporting/README_OLD.md deleted file mode 100644 index 33364d9b185..00000000000 --- a/handwritten/error-reporting/README_OLD.md +++ /dev/null @@ -1,320 +0,0 @@ -# Stackdriver Error Reporting for Node.js - -[![NPM Version][npm-image]][npm-url] -[![Known Vulnerabilities][snyk-image]][snyk-url] - -> **Beta** *This is a Beta release of the Stackdriver Error Reporting libraries for Node.js. These libraries might be changed in backward-incompatible ways and are not subject to any SLA or deprecation policy.* - -This module provides Stackdriver Error Reporting support for Node.js applications. -[Stackdriver Error Reporting](https://cloud.google.com/error-reporting/) is a feature of -Google Cloud Platform that allows in-depth monitoring and viewing of errors reported by -applications running in almost any environment. - -![Stackdriver Error Reporting overview](doc/images/errors-overview.png) - -Here's an introductory video that provides some more details: - -[![Learn about Error Reporting in Stackdriver](https://img.youtube.com/vi/cVpWVD75Hs8/0.jpg)](https://www.youtube.com/watch?v=cVpWVD75Hs8) - -Note that [@google-cloud/logging-winston][logging-winston] and -[@google-cloud/logging-bunyan][logging-bunyan] automatically integrate with the -Error Reporting service for Error objects logged at severity `error` or higher, -for applications running on Google Cloud Platform. If you are already using -Winston or Bunyan in your application, and don't need direct access/control of -error reporting, you may want to check those modules as well. - -## Prerequisites - -1. Your application needs to use Node.js version 4.x or greater. -1. You need a [Google Cloud project](https://console.cloud.google.com). Your application can run anywhere, but errors are reported to a particular project. -1. [Enable the Stackdriver Error Reporting API](https://console.cloud.google.com/apis/api/clouderrorreporting.googleapis.com/overview) for your project. - -**Note:** The module will only send errors when the `NODE_ENV` environment variable is -set to `production` or the `ignoreEnvironmentCheck` property given in the -runtime configuration object is set to `true`. See the [Configuration](#configuration) section for more details. - -## Quick Start - -1. **Install the module:** - - In your project, on the command line: - -```sh - # Install through npm while saving to the local 'package.json' - npm install --save @google-cloud/error-reporting -``` - -2. **Require the module:** - -```js -// Require the library and initialize the error handler -const errors = require('@google-cloud/error-reporting')({ - serviceContext: {service: 'my-service'} // not needed on Google Cloud -}); - -// Report an error to the Stackdriver Error Reporting API -errors.report(new Error('Something broke!')); - -// We also provide error handling middleware for express, hapi, restify & koa. -// See sections below. -``` - -3. **View reported errors:** - - Open Stackdriver Error Reporting at https://console.cloud.google.com/errors to view the reported errors. - -## Unhandled Rejections - -Unhandled Rejections are not reported by default. The reporting of unhandled rejections can be enabled using the `reportUnhandledRejections` configuration option. See the [Configuration](#configuration) section for more details. - -If unhandled rejections are set to be reported, then, when an unhandled rejection occurs, a message is printed to standard out indicated that an unhandled rejection had occurred and is being reported, and the value causing the rejection is reported to the error-reporting console. - -## Catching and Reporting Application-wide Uncaught Errors - -Uncaught exceptions are not reported by default. *It is recommended to process `uncaughtException`s for production-deployed applications.* - -Note that uncaught exceptions are not reported by default because to do so would require adding a listener to the `uncaughtException` event. Adding such a listener without knowledge of other `uncaughtException` listeners can cause interference between the event handlers or prevent the process from terminating cleanly. As such, it is necessary for `uncaughtException`s to be reported manually. - -```js -const errors = require('@google-cloud/error-reporting')(); -process.on('uncaughtException', (e) => { - // Write the error to stderr. - console.error(e); - // Report that same error the Stackdriver Error Service - errors.report(e); -}); -``` - -More information about uncaught exception handling in Node.js and what it means for your application can be found [here](https://nodejs.org/api/process.html#process_event_uncaughtexception). - -## Running on Google Cloud Platform - -All information in this section assumes that the items in the [Prerequisites](#prerequisites) section above have been completed. - -### Google App Engine Flexible environment - -If you are using [Google App Engine flexible environment](https://cloud.google.com/appengine/docs/flexible/), you do not have to do any additional configuration. - -### Google Compute Engine - -Your VM instances need to be created with the `https://www.googleapis.com/auth/cloud-platform` scope if created via the [gcloud](https://cloud.google.com/sdk) CLI or the Google Cloud Platform API, or by enabling at least one of the Stackdriver APIs if created through the browser-based console. - -If you already have VMs that were created without API access and do not wish to recreate it, you can follow the instructions for using a service account under [running elsewhere](#running-elsewhere). - -### Google Container Engine - -As with Compute Engine, Container Engine nodes need to be created with the `https://www.googleapis.com/auth/cloud-platform` scope, which is configurable during cluster creation: -* If the cluster is being created with the `gcloud` CLI, pass the scope to the command with the `--scopes` command (multiple scopes can be [delimited with a comma](https://cloud.google.com/sdk/gcloud/reference/container/clusters/create)): - - ```sh - gcloud container clusters create example-cluster-name --scopes https://www.googleapis.com/auth/cloud-platform - ``` - -* If the cluster is being created through the Cloud Console UI, ensure that the "Cloud Platform" project access is set to "Enabled" (it's disabled by default). - -Alternatively, you can also follow the instructions for using a service account under [running elsewhere](#running-elsewhere). It's recommended that you store the service account credentials as [Kubernetes Secret](http://kubernetes.io/v1.1/docs/user-guide/secrets.html). - -## Running Elsewhere - -If your application is running outside of Google Cloud Platform, such as locally, on-premise, or on another cloud provider, you can still use Stackdriver Errors either with locally-stored credentials or with an API Key. - -### Using Locally-Stored Credentials - -1. You will need to specify your project ID when starting the errors agent. - - ```sh - GCLOUD_PROJECT=particular-future-12345 node myapp.js - ``` - -1. You need to provide service account credentials to your application by using one of the three options below: - * The recommended way is via [Application Default Credentials][app-default-credentials]. - 1. [Create a new JSON service account key][service-account]. - 1. Copy the key somewhere your application can access it. Be sure not to expose the key publicly. - 1. Set the environment variable `GOOGLE_APPLICATION_CREDENTIALS` to the full path to the key. The Error Reporting library will automatically look for this environment variable. - * If you are running your application on a development machine or test environment where you are using the [`gcloud` command line tools][gcloud-sdk], and are logged using `gcloud beta auth application-default login`, you already have sufficient credentials, and a service account key is not required. - * Alternatively, you may set the `keyFilename` or `credentials` configuration field to the full path or contents to the key file, respectively. Setting either of these fields will override either setting `GOOGLE_APPLICATION_CREDENTIALS` or logging in using `gcloud`. For example: - - ```js - // Require and start the agent with configuration options - const errors = require('@google-cloud/error-reporting')({ - // The path to your key file: - keyFilename: '/path/to/keyfile.json', - - // Or the contents of the key file: - credentials: require('./path/to/keyfile.json') - }); - ``` - -When running on Google Cloud Platform, we handle these for you automatically. - -### Using an API Key - -You may use an API key in lieu of locally-stored credentials. Please see [this document][api-key] on how to set up an API key if you do not already have one. - -Once you have obtained an API key, you may provide it as part of the Error Reporting instance configuration: - -```js -const errors = require('@google-cloud/error-reporting')({ - projectId: '{your project ID}', - key: '{your api key}' -}); -``` - -If a key is provided, the module will not attempt to authenticate using the methods associated with locally-stored credentials as mentioned in the previous section. - -We recommend using a file, environment variable, or another mechanism to store the API key rather than hard-coding it into your application's source. - -**Note:** The Error Reporting instance will check if the provided API key is invalid shortly after it is instantiated. If the key is invalid, an error-level message will be logged to stdout. - -## Configuration - -The following code snippet lists all available configuration options. All configuration options are optional. - -```js -const errors = require('@google-cloud/error-reporting')({ - projectId: 'my-project-id', - keyFilename: '/path/to/keyfile.json', - credentials: require('./path/to/keyfile.json'), - // if true library will attempt to report errors to the service regardless - // of the value of NODE_ENV - // defaults to false - ignoreEnvironmentCheck: false, - // determines the logging level internal to the library; levels range 0-5 - // where 0 indicates no logs should be reported and 5 indicates all logs - // should be reported - // defaults to 2 (warnings) - logLevel: 2, - // determines whether or not unhandled rejections are reported to the - // error-reporting console - reportUnhandledRejections: true, - serviceContext: { - service: 'my-service', - version: 'my-service-version' - } -}); -``` - -## Examples - -### Reporting Manually - -```js -const errors = require('@google-cloud/error-reporting')(); - -// Use the error message builder to customize all fields ... -const errorEvt = errors.event() - .setMessage('My error message') - .setUser('root@nexus'); -errors.report(errorEvt, () => console.log('done!')); - -// or just use a regular error ... -errors.report(new Error('My error message'), () => console.log('done!')); - -// or one can even just use a string. -errors.report('My error message'); -``` - -The stack trace associated with an error can be viewed in the error reporting console. -* If the `errors.report` method is given an `ErrorMessage` object built using the `errors.event` method, the stack trace at the point where the error event was constructed will be used. -* If the `errors.report` method is given an `Error` object, the stack trace where the error was instantiated will be used. -* If the `errors.report` method is given a string, the stack trace at the point where `errors.report` is invoked will be used. - -### Using Express - -```js -const express = require('express'); -const errors = require('@google-cloud/error-reporting')(); - -const app = express(); - -app.get('/error', (req, res, next) => { - res.send('Something broke!'); - next(new Error('Custom error message')); -}); - -app.get('/exception', () => { - JSON.parse('{\"malformedJson\": true'); -}); - -// Note that express error handling middleware should be attached after all -// the other routes and use() calls. See [express docs][express-error-docs]. -app.use(errors.express); - -app.listen(3000); -``` - -### Using Hapi - -```js -const hapi = require('hapi'); -const errors = require('@google-cloud/error-reporting')(); - -const server = new hapi.Server(); -server.connection({ port: 3000 }); -server.start(); - -server.route({ - method: 'GET', - path: '/error', - handler: (request, reply) => { - reply('Something broke!'); - throw new Error('Custom error message'); - } -}); - -server.register(errors.hapi); -``` - -### Using Koa - -```js -const Koa = require('koa'); -const errors = require('@google-cloud/error-reporting')(); - -const app = new Koa(); - -app.use(errors.koa); - -app.use(function *(next) { - //This will set status and message - this.throw('Error Message', 500); -}); - -// response -app.use(function *(){ - this.body = 'Hello World'; -}); - -app.listen(3000); -``` - -### Using Restify - -```js -const restify = require('restify'); -const errors = require('@google-cloud/error-reporting')(); - -function respond(req, res, next) { - next(new Error('this is a restify error')); -} - -const server = restify.createServer(); - -server.use(errors.restify(server)); -server.get('/hello/:name', respond); -server.head('/hello/:name', respond); - -server.listen(3000); -``` - -[api-key]: https://support.google.com/cloud/answer/6158862 -[app-default-credentials]: https://developers.google.com/identity/protocols/application-default-credentials -[express-error-docs]: https://expressjs.com/en/guide/error-handling.html -[gcloud-sdk]: https://cloud.google.com/sdk/gcloud/ -[logging-bunyan]: https://www.npmjs.com/package/@google-cloud/logging-bunyan -[logging-winston]: https://www.npmjs.com/package/@google-cloud/logging-winston -[npm-image]: https://badge.fury.io/js/%40google-cloud%2Ferror-reporting.svg -[npm-url]: https://npmjs.org/package/@google-cloud/error-reporting -[service-account]: https://console.developers.google.com/apis/credentials/serviceaccountkey -[snyk-image]: https://snyk.io/test/npm/@google-cloud/error-reporting/badge.svg -[snyk-url]: https://snyk.io/test/npm/@google-cloud/error-reporting From 9d5aef0d5adcf7abc8431b9b88bed344c181ce05 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Thu, 14 Feb 2019 08:49:02 -0800 Subject: [PATCH 226/527] docs: update links in contrib guide (#316) --- handwritten/error-reporting/CONTRIBUTING.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/handwritten/error-reporting/CONTRIBUTING.md b/handwritten/error-reporting/CONTRIBUTING.md index b958f235007..78aaa61b269 100644 --- a/handwritten/error-reporting/CONTRIBUTING.md +++ b/handwritten/error-reporting/CONTRIBUTING.md @@ -16,11 +16,9 @@ Please fill out either the individual or corporate Contributor License Agreement (CLA). * If you are an individual writing original source code and you're sure you - own the intellectual property, then you'll need to sign an [individual CLA] - (https://developers.google.com/open-source/cla/individual). + own the intellectual property, then you'll need to sign an [individual CLA](https://developers.google.com/open-source/cla/individual). * If you work for a company that wants to allow you to contribute your work, - then you'll need to sign a [corporate CLA] - (https://developers.google.com/open-source/cla/corporate). + then you'll need to sign a [corporate CLA](https://developers.google.com/open-source/cla/corporate). Follow either of the two links above to access the appropriate CLA and instructions for how to sign and return it. Once we receive it, we'll be able to From c7dc6a007afea172d9e3338c2b03c29a195b3811 Mon Sep 17 00:00:00 2001 From: Dominic Kramer Date: Thu, 14 Feb 2019 10:25:16 -0800 Subject: [PATCH 227/527] chore: document how to get async stack traces (#314) --- handwritten/error-reporting/README.md | 32 ++++++++++++++---------- handwritten/error-reporting/package.json | 7 +++--- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/handwritten/error-reporting/README.md b/handwritten/error-reporting/README.md index 04f6d5a8aa4..8c1620352f9 100644 --- a/handwritten/error-reporting/README.md +++ b/handwritten/error-reporting/README.md @@ -93,8 +93,6 @@ See the [Configuration](#configuration) section to learn how to specify configur ```javascript // Imports the Google Cloud client library - - // Node 6+ const {ErrorReporting} = require('@google-cloud/error-reporting'); // Using ES6 style imports via TypeScript or Babel @@ -121,7 +119,6 @@ has instructions for running the samples. The following code snippet lists available configuration options. All configuration options are optional. ```js - // Node 6+ const {ErrorReporting} = require('@google-cloud/error-reporting'); // Using ES6 style imports via TypeScript or Babel @@ -153,7 +150,6 @@ The following code snippet lists available configuration options. All configura ### Reporting Manually ```js - // Node 6+ const {ErrorReporting} = require('@google-cloud/error-reporting'); // Using ES6 style imports via TypeScript or Babel @@ -185,7 +181,6 @@ The stack trace associated with an error can be viewed in the error reporting co ```js const express = require('express'); - // Node 6+ const {ErrorReporting} = require('@google-cloud/error-reporting'); // Using ES6 style imports via TypeScript or Babel @@ -216,8 +211,6 @@ The stack trace associated with an error can be viewed in the error reporting co ```js const hapi = require('hapi'); - - // Node 6+ const {ErrorReporting} = require('@google-cloud/error-reporting'); // Using ES6 style imports via TypeScript or Babel @@ -246,8 +239,6 @@ The stack trace associated with an error can be viewed in the error reporting co ```js const Koa = require('koa'); - - // Node 6+ const {ErrorReporting} = require('@google-cloud/error-reporting'); // Using ES6 style imports via TypeScript or Babel @@ -277,8 +268,6 @@ The stack trace associated with an error can be viewed in the error reporting co ```js const restify = require('restify'); - - // Node 6+ const {ErrorReporting} = require('@google-cloud/error-reporting'); // Using ES6 style imports via TypeScript or Babel @@ -313,7 +302,6 @@ Uncaught exceptions are not reported by default. *It is recommended to process Note that uncaught exceptions are not reported by default because to do so would require adding a listener to the `uncaughtException` event. Adding such a listener without knowledge of other `uncaughtException` listeners can cause interference between the event handlers or prevent the process from terminating cleanly. As such, it is necessary for `uncaughtException`s to be reported manually. ```js - // Node 6+ const {ErrorReporting} = require('@google-cloud/error-reporting'); // Using ES6 style imports via TypeScript or Babel @@ -339,7 +327,6 @@ You may use an API key in lieu of locally-stored credentials. Please see [this d Once you have obtained an API key, you may provide it as part of the Error Reporting instance configuration: ```js -// Node 6+ const {ErrorReporting} = require('@google-cloud/error-reporting'); // Using ES6 style imports via TypeScript or Babel @@ -356,6 +343,25 @@ If a key is provided, the module will not attempt to authenticate using the meth **Note:** The Error Reporting instance will check if the provided API key is invalid shortly after it is instantiated. If the key is invalid, an error-level message will be logged to stdout. +### Long Stack Traces + +The [longjohn](https://www.npmjs.com/package/longjohn) module can be used with this library to enable [long-stack-traces](https://github.com/tlrobinson/long-stack-traces) and updates an `Error` object's stack trace, by adding special line, to indicate an async jump. In `longjohn` version `0.2.12`, for example, a single line of dashes is included in a stack trace, by default, to indicate an async jump. + +Before reporting an `Error` object using the `report` method of the `@google-cloud/error-reporting` module, the stack trace needs to modified to remove this special line added by `longjohn`. Since the `longjohn` module can be configured to have a custom line indicating an async jump, the process of removing the custom line should be handled by the user of the `longjohn` module. + +The following code illustrates how to update an `Error`'s stack trace, to remove the default line of dashes added by `longjohn` to indicate an async jump, before reporting the error. +```js + const {ErrorReporting} = require('@google-cloud/error-reporting'); + + // Instantiates a client + const errors = new ErrorReporting(); + + const err = new Error('Some Error'); + err.stack = (err.stack || '').split('\n') + .filter(line => !!line.replace(/-/g, '').trim()) + .join('\n'); + errors.report(err); +``` ## Versioning diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 25d7c01375a..7a4676969a1 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -73,11 +73,12 @@ "@types/node": "^10.1.1", "@types/once": "^1.4.0", "@types/proxyquire": "^1.3.28", - "@types/request": "^2.47.1", + "@types/request": "^2.48.1", "@types/restify": "^7.2.0", "@types/uuid": "^3.4.4", "body-parser": "^1.18.3", "boom": "^7.2.0", + "broken-link-checker-local": "^0.2.0", "codecov": "^3.0.2", "cpy-cli": "^2.0.0", "delay": "^4.1.0", @@ -106,10 +107,10 @@ "power-assert": "^1.5.0", "prettier": "^1.12.1", "proxyquire": "^2.0.1", + "request": "^2.88.0", "restify": "^7.2.0", "source-map-support": "^0.5.9", "typescript": "~3.3.0", - "uuid": "^3.3.2", - "broken-link-checker-local": "^0.2.0" + "uuid": "^3.3.2" } } From 771afe7d90608ed5d76b38f1014690d9d1a73758 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Thu, 14 Feb 2019 12:07:37 -0800 Subject: [PATCH 228/527] build: use linkinator for docs test (#315) --- handwritten/error-reporting/package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index 7a4676969a1..253e6ae4bac 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -40,7 +40,7 @@ "pretest-only": "npm run compile", "posttest": "npm run check && npm run license-check", "license-check": "jsgl --local .", - "docs-test": "blcl docs -r --exclude www.googleapis.com", + "docs-test": "linkinator docs -r --skip www.googleapis.com", "predocs-test": "npm run docs" }, "dependencies": { @@ -111,6 +111,7 @@ "restify": "^7.2.0", "source-map-support": "^0.5.9", "typescript": "~3.3.0", - "uuid": "^3.3.2" + "uuid": "^3.3.2", + "linkinator": "^1.1.2" } } From 3713120ad4c291298588e748cb42c12d344eff83 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Tue, 19 Feb 2019 10:17:41 -0800 Subject: [PATCH 229/527] chore(deps): update dependency mocha to v6 chore(deps): update dependency mocha to v6 This PR contains the following updates: | Package | Type | Update | Change | References | |---|---|---|---|---| | mocha | devDependencies | major | `^5.2.0` -> `^6.0.0` | [homepage](https://mochajs.org/), [source](https://togithub.com/mochajs/mocha) | --- ### Release Notes